UNPKG

@atlaskit/global-search

Version:

A cross-product search component (batteries included)

122 lines (102 loc) 4.92 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.buildShownEventDetails = buildShownEventDetails; exports.buildScreenEvent = buildScreenEvent; exports.Screen = exports.sanitizeContainerId = exports.sanitizeSearchQuery = exports.GLOBAL_SEARCH_SCREEN_NAME = exports.DEFAULT_GAS_ATTRIBUTES = exports.DEFAULT_GAS_CHANNEL = exports.DEFAULT_GAS_SOURCE = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _Result = require("../model/Result"); function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } var DEFAULT_GAS_SOURCE = 'globalSearchDrawer'; exports.DEFAULT_GAS_SOURCE = DEFAULT_GAS_SOURCE; var DEFAULT_GAS_CHANNEL = 'fabric-elements'; exports.DEFAULT_GAS_CHANNEL = DEFAULT_GAS_CHANNEL; var DEFAULT_GAS_ATTRIBUTES = { packageName: 'global-search', packageVersion: '0.0.0', componentName: 'GlobalQuickSearch' }; exports.DEFAULT_GAS_ATTRIBUTES = DEFAULT_GAS_ATTRIBUTES; var GLOBAL_SEARCH_SCREEN_NAME = 'globalSearchDrawer'; exports.GLOBAL_SEARCH_SCREEN_NAME = GLOBAL_SEARCH_SCREEN_NAME; var sanitizeSearchQuery = function sanitizeSearchQuery(query) { return (query || '').replace(/\s+/g, ' ').trim(); }; exports.sanitizeSearchQuery = sanitizeSearchQuery; var sanitizeContainerId = function sanitizeContainerId(containerId) { var trimmedContainerId = (containerId || '').trim(); return trimmedContainerId.startsWith('~') ? 'UNAVAILABLE' : trimmedContainerId; }; exports.sanitizeContainerId = sanitizeContainerId; function mapResultsToShownSection(results) { return { sectionId: results[0].resultType, results: results.map(mapResultToShownResult) }; } function mapResultToShownResult(result) { if (result.resultType === _Result.ResultType.ConfluenceObjectResult) { var confluenceResult = result; return { resultContentId: result.resultId, resultType: confluenceResult.contentType, containerId: sanitizeContainerId(confluenceResult.containerId), isRecentResult: !!result.isRecentResult }; } else if (result.resultType === _Result.ResultType.JiraObjectResult) { var jiraResult = result; return { resultContentId: result.resultId, resultType: jiraResult.contentType, containerId: sanitizeContainerId(jiraResult.containerId) }; } return { resultContentId: result.resultId }; } /** * @param resultsArrays an ordered array of Result arrays, passed as arguments */ function buildShownEventDetails() { for (var _len = arguments.length, resultsArrays = new Array(_len), _key = 0; _key < _len; _key++) { resultsArrays[_key] = arguments[_key]; } var sectionsWithContent = resultsArrays.filter(function (section) { return section.length > 0; }); var totalResultCount = resultsArrays.reduce(function (prev, curr) { return prev + curr.length; }, 0); return { resultCount: totalResultCount, resultSectionCount: sectionsWithContent.length, resultContext: sectionsWithContent.map(mapResultsToShownSection) }; } var Screen; exports.Screen = Screen; (function (Screen) { Screen["PRE_QUERY"] = "GlobalSearchPreQueryDrawer"; Screen["POST_QUERY"] = "GlobalSearchPostQueryDrawer"; })(Screen || (exports.Screen = Screen = {})); function buildScreenEvent(screen, timesViewed, searchSessionId, referralContextIdentifiers) { return { action: 'viewed', actionSubject: GLOBAL_SEARCH_SCREEN_NAME, eventType: 'screen', source: DEFAULT_GAS_SOURCE, name: DEFAULT_GAS_SOURCE, attributes: _objectSpread({ subscreen: screen, timesViewed: timesViewed, searchSessionId: searchSessionId, searchReferrerId: referralContextIdentifiers && referralContextIdentifiers.searchReferrerId, currentContentId: referralContextIdentifiers && referralContextIdentifiers.currentContentId, currentContainerId: referralContextIdentifiers && referralContextIdentifiers.currentContainerId }, DEFAULT_GAS_ATTRIBUTES) }; }