UNPKG

@atlaskit/global-search

Version:

A cross-product search component (batteries included)

108 lines (98 loc) 4.26 kB
import _defineProperty from "@babel/runtime/helpers/defineProperty"; 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) { _defineProperty(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; } import { messages } from '../../messages'; import { attachConfluenceContextIdentifiers } from '../common/contextIdentifiersHelper'; import { take } from '../SearchResultsUtil'; import { getConfluenceMaxObjects } from '../../util/experiment-utils'; import { CONF_OBJECTS_ITEMS_PER_PAGE } from '../../util/experiment-utils'; export var DEFAULT_MAX_OBJECTS = 10; export var MAX_SPACES = 3; export var MAX_PEOPLE = 3; export var MAX_RECENT_RESULTS_TO_SHOW = 3; var EMPTY_CONFLUENCE_RESULT = { people: { items: [], totalSize: 0 }, objects: { items: [], totalSize: 0 }, spaces: { items: [], totalSize: 0 } }; var sliceResults = function sliceResults(resultsMap, features) { if (!resultsMap) { return EMPTY_CONFLUENCE_RESULT; } var people = resultsMap.people, objects = resultsMap.objects, spaces = resultsMap.spaces; return { objects: _objectSpread(_objectSpread({}, objects), {}, { items: take(objects.items, getConfluenceMaxObjects(features.abTest, objects.numberOfCurrentItems || CONF_OBJECTS_ITEMS_PER_PAGE)), numberOfCurrentItems: objects.numberOfCurrentItems || Math.min(CONF_OBJECTS_ITEMS_PER_PAGE, objects.items.length || 0) }), spaces: _objectSpread(_objectSpread({}, spaces), {}, { items: take(spaces.items, MAX_SPACES) }), people: _objectSpread(_objectSpread({}, people), {}, { items: take(people.items, MAX_PEOPLE) }) }; }; export var mapRecentResultsToUIGroups = function mapRecentResultsToUIGroups(recentlyViewedObjects, features, searchSessionId) { var sliced = sliceResults(recentlyViewedObjects, features); var _attachConfluenceCont = attachConfluenceContextIdentifiers(searchSessionId, sliced), people = _attachConfluenceCont.people, objects = _attachConfluenceCont.objects, spaces = _attachConfluenceCont.spaces; return [{ items: objects.items, key: 'objects', title: messages.confluence_recent_pages_heading, totalSize: objects.totalSize, showTotalSize: false }, { items: spaces.items, key: 'spaces', title: messages.confluence_recent_spaces_heading, totalSize: spaces.totalSize, showTotalSize: false }, { items: people.items, key: 'people', title: messages.people_recent_people_heading, totalSize: people.totalSize, showTotalSize: false }]; }; export var mapSearchResultsToUIGroups = function mapSearchResultsToUIGroups(searchResultsObjects, features, searchSessionId, hideAllSizeLozenge) { var sliced = sliceResults(searchResultsObjects, features); var _attachConfluenceCont2 = attachConfluenceContextIdentifiers(searchSessionId, sliced), people = _attachConfluenceCont2.people, objects = _attachConfluenceCont2.objects, spaces = _attachConfluenceCont2.spaces; return [{ items: objects.items, key: 'objects', title: messages.confluence_confluence_objects_heading, totalSize: objects.totalSize, showTotalSize: !hideAllSizeLozenge }, { items: spaces.items, key: 'spaces', title: messages.confluence_spaces_heading, totalSize: spaces.totalSize, showTotalSize: false }, { items: people.items, key: 'people', title: messages.people_people_heading, totalSize: people.totalSize, showTotalSize: false }]; };