UNPKG

@atlaskit/global-search

Version:

A cross-product search component (batteries included)

117 lines (97 loc) 4.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getConfluenceAdvancedSearchLink = getConfluenceAdvancedSearchLink; exports.getJiraAdvancedSearchUrl = getJiraAdvancedSearchUrl; exports.redirectToConfluenceAdvancedSearch = redirectToConfluenceAdvancedSearch; exports.redirectToJiraAdvancedSearch = redirectToJiraAdvancedSearch; exports.take = take; exports.isEmpty = isEmpty; exports.handlePromiseError = handlePromiseError; exports.isAdvancedSearchResult = exports.ConfluenceAdvancedSearchTypes = exports.JiraEntityTypes = exports.ADVANCED_PEOPLE_SEARCH_RESULT_ID = exports.ADVANCED_JIRA_SEARCH_RESULT_ID = exports.ADVANCED_CONFLUENCE_SEARCH_RESULT_ID = void 0; var ADVANCED_CONFLUENCE_SEARCH_RESULT_ID = 'search_confluence'; exports.ADVANCED_CONFLUENCE_SEARCH_RESULT_ID = ADVANCED_CONFLUENCE_SEARCH_RESULT_ID; var ADVANCED_JIRA_SEARCH_RESULT_ID = 'search_jira'; exports.ADVANCED_JIRA_SEARCH_RESULT_ID = ADVANCED_JIRA_SEARCH_RESULT_ID; var ADVANCED_PEOPLE_SEARCH_RESULT_ID = 'search_people'; exports.ADVANCED_PEOPLE_SEARCH_RESULT_ID = ADVANCED_PEOPLE_SEARCH_RESULT_ID; var JiraEntityTypes; exports.JiraEntityTypes = JiraEntityTypes; (function (JiraEntityTypes) { JiraEntityTypes["Projects"] = "projects"; JiraEntityTypes["Issues"] = "issues"; JiraEntityTypes["Boards"] = "boards"; JiraEntityTypes["Filters"] = "filters"; JiraEntityTypes["People"] = "people"; })(JiraEntityTypes || (exports.JiraEntityTypes = JiraEntityTypes = {})); var ConfluenceAdvancedSearchTypes; exports.ConfluenceAdvancedSearchTypes = ConfluenceAdvancedSearchTypes; (function (ConfluenceAdvancedSearchTypes) { ConfluenceAdvancedSearchTypes["Content"] = "content"; ConfluenceAdvancedSearchTypes["People"] = "people"; })(ConfluenceAdvancedSearchTypes || (exports.ConfluenceAdvancedSearchTypes = ConfluenceAdvancedSearchTypes = {})); var isAdvancedSearchResult = function isAdvancedSearchResult(resultId) { return [ADVANCED_CONFLUENCE_SEARCH_RESULT_ID, ADVANCED_JIRA_SEARCH_RESULT_ID, ADVANCED_PEOPLE_SEARCH_RESULT_ID].some(function (advancedResultId) { return advancedResultId === resultId; }); }; exports.isAdvancedSearchResult = isAdvancedSearchResult; function getConfluenceAdvancedSearchLink(query) { var queryString = query ? "?text=".concat(encodeURIComponent(query)) : ''; return "/wiki/search".concat(queryString); } function getJiraAdvancedSearchUrl(props) { var entityType = props.entityType, query = props.query, enableIssueKeySmartMode = props.enableIssueKeySmartMode, isJiraPeopleProfilesEnabled = props.isJiraPeopleProfilesEnabled; switch (entityType) { case JiraEntityTypes.Issues: return !enableIssueKeySmartMode && query && +query ? "/issues/?jql=order+by+created+DESC" : "/secure/QuickSearch.jspa?searchString=".concat(query); case JiraEntityTypes.Boards: return "/secure/ManageRapidViews.jspa?contains=".concat(query); case JiraEntityTypes.Filters: return "/secure/ManageFilters.jspa?Search=Search&filterView=search&name=".concat(query); case JiraEntityTypes.Projects: return "/projects?contains=".concat(query); case JiraEntityTypes.People: return !!isJiraPeopleProfilesEnabled ? "/jira/people/search?q=".concat(query) : "/people/search?q=".concat(query); } } function redirectToConfluenceAdvancedSearch() { var query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; // XPSRCH-891: this breaks SPA navigation. Consumer needs to pass in a redirect/navigate function. window.location.assign(getConfluenceAdvancedSearchLink(query)); } function redirectToJiraAdvancedSearch(entityType) { var query = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; window.location.assign(getJiraAdvancedSearchUrl({ entityType: entityType, query: query, enableIssueKeySmartMode: true })); } function take(array, n) { return (array || []).slice(0, n); } function isEmpty(array) { return array.length === 0; } /** * * Gracefully handle promise catch and returning default value * @param promise promise to handle its catch block * @param defaultValue value returned by the promise in case of error * @param errorHandler function to be called in case of promise rejection */ function handlePromiseError(promise, defaultValue, errorHandler) { return promise.catch(function (error) { try { if (errorHandler) { errorHandler(error); } } catch (e) {} return defaultValue; }); }