UNPKG

@empathyco/x-components

Version:
148 lines (145 loc) 4.98 kB
import { useStore } from 'vuex'; import '@vue/devtools-api'; import '../plugins/devtools/timeline.devtools.js'; import '@empathyco/x-utils'; import 'rxjs/operators'; import 'rxjs'; import '../plugins/devtools/colors.utils.js'; import '../plugins/x-bus.js'; import '../plugins/x-plugin.js'; import { getGetterPath } from '../plugins/x-plugin.utils.js'; /* eslint-disable ts/no-unsafe-return,ts/no-unsafe-member-access,ts/no-unsafe-assignment */ /** * Creates an object containing the alias part of {@link XComponentAPI}. * * @returns An object containing the alias part of the {@link XComponentAPI}. * * @internal */ function useAliasApi() { const queryModules = [ 'facets', 'searchBox', 'nextQueries', 'querySuggestions', 'relatedTags', 'search', ]; const statusModules = [ 'identifierResults', 'nextQueries', 'popularSearches', 'querySuggestions', 'recommendations', 'relatedTags', 'search', ]; const store = useStore(); const query = queryModules.reduce((acc, moduleName) => { return Object.defineProperty(acc, moduleName, { get() { return store.state.x[moduleName]?.query ?? ''; }, enumerable: true, }); }, {}); const status = statusModules.reduce((acc, moduleName) => { return Object.defineProperty(acc, moduleName, { get() { return store.state.x[moduleName]?.status; }, enumerable: true, }); }, {}); return { query, status, get device() { return store.state.x.device?.name ?? null; }, get facets() { return store.getters[getGetterPath('facets', 'facets')] ?? {}; }, get historyQueries() { return store.getters[getGetterPath('historyQueries', 'historyQueries')] ?? []; }, get historyQueriesWithResults() { return store.getters[getGetterPath('historyQueries', 'historyQueriesWithResults')] ?? []; }, get fullHistoryQueries() { return store.state.x.historyQueries?.historyQueries ?? []; }, get isHistoryQueriesEnabled() { return store.state.x.historyQueries?.isEnabled ?? false; }, get fromNoResultsWithFilters() { return store.state.x.search?.fromNoResultsWithFilters ?? false; }, get identifierResults() { return store.state.x.identifierResults?.identifierResults ?? []; }, get searchBoxStatus() { return store.state.x.searchBox?.inputStatus ?? undefined; }, get isEmpathizeOpen() { return store.state.x.empathize?.isOpen ?? false; }, get nextQueries() { return store.getters[getGetterPath('nextQueries', 'nextQueries')] ?? []; }, get noResults() { return store.state.x.search?.isNoResults ?? false; }, get partialResults() { return store.state.x.search?.partialResults ?? []; }, get popularSearches() { return store.state.x.popularSearches?.popularSearches ?? []; }, get querySuggestions() { return store.getters[getGetterPath('querySuggestions', 'querySuggestions')] ?? []; }, get fullQuerySuggestions() { return store.state.x.querySuggestions?.suggestions ?? []; }, get recommendations() { return store.state.x.recommendations?.recommendations ?? []; }, get redirections() { return store.state.x.search?.redirections ?? []; }, get relatedTags() { return store.getters[getGetterPath('relatedTags', 'relatedTags')] ?? []; }, get results() { return store.state.x.search?.results ?? []; }, get scroll() { return store.state.x.scroll?.data ?? {}; }, get selectedFilters() { return store.getters[getGetterPath('facets', 'selectedFilters')] ?? []; }, get selectedRelatedTags() { return store.state.x.relatedTags?.selectedRelatedTags ?? []; }, get semanticQueries() { return store.state.x.semanticQueries?.semanticQueries ?? []; }, get spellcheckedQuery() { return store.state.x.search?.spellcheckedQuery ?? null; }, get totalResults() { return store.state.x.search?.totalResults ?? 0; }, get selectedSort() { return store.state.x.search?.sort ?? ''; }, get priceStats() { return store.state.x.search?.stats?.price ?? {}; }, }; } /* eslint-enable ts/no-unsafe-return,ts/no-unsafe-member-access,ts/no-unsafe-assignment */ export { useAliasApi }; //# sourceMappingURL=use-alias-api.js.map