{"version":3,"file":"index.production.js","sources":["../../src/addHighlightedAttribute.ts","../../src/constants.ts","../../src/getLocalStorage.ts","../../src/createLocalStorage.ts","../../src/getTemplates.tsx","../../src/createRecentSearchesPlugin.ts","../../src/createStorageApi.ts","../../../autocomplete-shared/dist/esm/createRef.js","../../src/search.ts","../../src/createLocalStorageRecentSearchesPlugin.ts"],"sourcesContent":["import { Highlighted, HistoryItem } from './types';\n\ntype HighlightParams = {\n item: TItem;\n query: string;\n};\n\nexport function addHighlightedAttribute({\n item,\n query,\n}: HighlightParams): Highlighted {\n return {\n ...item,\n _highlightResult: {\n label: {\n value: query\n ? item.label.replace(\n new RegExp(query.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&'), 'gi'),\n (match) => {\n return `__aa-highlight__${match}__/aa-highlight__`;\n }\n )\n : item.label,\n },\n },\n };\n}\n","export const LOCAL_STORAGE_KEY = 'AUTOCOMPLETE_RECENT_SEARCHES';\nexport const LOCAL_STORAGE_KEY_TEST =\n '__AUTOCOMPLETE_RECENT_SEARCHES_PLUGIN_TEST_KEY__';\n","import { LOCAL_STORAGE_KEY_TEST } from './constants';\n\nfunction isLocalStorageSupported() {\n try {\n localStorage.setItem(LOCAL_STORAGE_KEY_TEST, '');\n localStorage.removeItem(LOCAL_STORAGE_KEY_TEST);\n\n return true;\n } catch (error) {\n return false;\n }\n}\n\ntype LocalStorageProps = {\n key: string;\n};\n\nexport function getLocalStorage({ key }: LocalStorageProps) {\n if (!isLocalStorageSupported()) {\n return {\n setItem() {},\n getItem() {\n return [];\n },\n };\n }\n\n return {\n setItem(items: TItem[]) {\n return window.localStorage.setItem(key, JSON.stringify(items));\n },\n getItem(): TItem[] {\n const items = window.localStorage.getItem(key);\n\n return items ? (JSON.parse(items) as TItem[]) : [];\n },\n };\n}\n","import { CreateRecentSearchesLocalStorageOptions } from './createLocalStorageRecentSearchesPlugin';\nimport { getLocalStorage } from './getLocalStorage';\nimport { HistoryItem, Storage } from './types';\n\nexport type CreateLocalStorageProps = Required<\n CreateRecentSearchesLocalStorageOptions\n>;\n\nexport function createLocalStorage({\n key,\n limit,\n search,\n}: CreateLocalStorageProps): Storage {\n const storage = getLocalStorage({ key });\n\n return {\n onAdd(item) {\n storage.setItem([item, ...storage.getItem()]);\n },\n onRemove(id) {\n storage.setItem(storage.getItem().filter((x) => x.id !== id));\n },\n getAll(query = '') {\n return search({ query, items: storage.getItem(), limit }).slice(0, limit);\n },\n };\n}\n","/** @jsxRuntime classic */\n/** @jsx createElement */\nimport { SourceTemplates } from '@algolia/autocomplete-js';\n\nimport { RecentSearchesItem } from './types';\n\nexport type GetTemplatesParams = {\n onRemove(id: string): void;\n onTapAhead(item: TItem): void;\n};\n\nexport function getTemplates({\n onRemove,\n onTapAhead,\n}: GetTemplatesParams): SourceTemplates {\n return {\n item({ item, createElement, components }) {\n return (\n
\n
\n
\n \n \n \n
\n
\n
\n \n {item.category && (\n \n in{' '}\n \n {item.category}\n \n \n )}\n
\n
\n
\n
\n {\n event.preventDefault();\n event.stopPropagation();\n onRemove(item.id);\n }}\n >\n \n \n \n \n {\n event.preventDefault();\n event.stopPropagation();\n onTapAhead(item);\n }}\n >\n \n \n \n \n
\n
\n );\n },\n };\n}\n","import { PluginSubscribeParams } from '@algolia/autocomplete-core';\nimport {\n AutocompleteSource,\n AutocompleteState,\n AutocompletePlugin,\n} from '@algolia/autocomplete-js';\nimport { createRef, MaybePromise, warn } from '@algolia/autocomplete-shared';\nimport { SearchOptions } from '@algolia/client-search';\n\nimport { createStorageApi } from './createStorageApi';\nimport { getTemplates } from './getTemplates';\nimport { RecentSearchesItem, Storage, StorageApi } from './types';\n\nexport interface RecentSearchesPluginData\n extends StorageApi {\n /**\n * Optimized [Algolia search parameters](https://www.algolia.com/doc/api-reference/search-api-parameters/). This is useful when using the plugin along with the [Query Suggestions](createQuerySuggestionsPlugin) plugin.\n *\n * This function enhances the provided search parameters by:\n * - Excluding Query Suggestions that are already displayed in recent searches.\n * - Using a shared `hitsPerPage` value to get a group limit of Query Suggestions and recent searches.\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-recent-searches/createLocalStorageRecentSearchesPlugin/#param-getalgoliasearchparams\n */\n getAlgoliaSearchParams(params?: SearchOptions): SearchOptions;\n}\n\nexport type CreateRecentSearchesPluginParams =\n {\n /**\n * The storage to fetch from and save recent searches into.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-recent-searches/createRecentSearchesPlugin/#param-storage\n */\n storage: Storage;\n /**\n * A function to transform the provided source.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-recent-searches/createRecentSearchesPlugin/#param-transformsource\n */\n transformSource?(params: {\n source: AutocompleteSource;\n state: AutocompleteState;\n onRemove(id: string): void;\n onTapAhead(item: TItem): void;\n }): AutocompleteSource;\n subscribe?(params: PluginSubscribeParams): void;\n };\n\nfunction getDefaultSubscribe(\n store: StorageApi\n) {\n return function subscribe({ onSelect }: PluginSubscribeParams) {\n onSelect(({ item, state, source }) => {\n const inputValue = source.getItemInputValue({ item, state });\n\n if (source.sourceId === 'querySuggestionsPlugin' && inputValue) {\n const recentItem: RecentSearchesItem = {\n id: inputValue,\n label: inputValue,\n category: (item as any).__autocomplete_qsCategory,\n };\n store.addItem(recentItem as TItem);\n }\n });\n };\n}\n\nexport function createRecentSearchesPlugin(\n options: CreateRecentSearchesPluginParams\n): AutocompletePlugin> {\n const { storage, transformSource, subscribe } = getOptions(options);\n const store = createStorageApi(storage);\n const lastItemsRef = createRef>([]);\n\n return {\n name: 'aa.recentSearchesPlugin',\n subscribe: subscribe ?? getDefaultSubscribe(store),\n onSubmit({ state }) {\n const { query } = state;\n\n if (query) {\n const recentItem: RecentSearchesItem = {\n id: query,\n label: query,\n };\n store.addItem(recentItem as TItem);\n }\n },\n getSources({ query, setQuery, refresh, state }) {\n lastItemsRef.current = store.getAll(query);\n\n function onRemove(id: string) {\n store.removeItem(id);\n refresh();\n }\n\n function onTapAhead(item: TItem) {\n setQuery(item.label);\n refresh();\n }\n\n return Promise.resolve(lastItemsRef.current).then((items) => {\n if (items.length === 0) {\n return [];\n }\n\n return [\n transformSource({\n source: {\n sourceId: 'recentSearchesPlugin',\n getItemInputValue({ item }) {\n return item.label;\n },\n getItems() {\n return items;\n },\n templates: getTemplates({ onRemove, onTapAhead }),\n },\n onRemove,\n onTapAhead,\n state: state as AutocompleteState,\n }),\n ];\n });\n },\n data: {\n ...store,\n // @ts-ignore SearchOptions `facetFilters` is ReadonlyArray\n getAlgoliaSearchParams(params = {}) {\n // If the items returned by `store.getAll` are contained in a Promise,\n // we cannot provide the search params in time when this function is called\n // because we need to resolve the promise before getting the value.\n if (!Array.isArray(lastItemsRef.current)) {\n warn(\n false,\n 'The `getAlgoliaSearchParams` function is not supported with storages that return promises in `getAll`.'\n );\n return params;\n }\n\n return {\n ...params,\n facetFilters: [\n ...(params.facetFilters ?? []),\n // @TODO: we need to base the filter on the `query` attribute, not\n // `objectID`, because the Query Suggestions index cannot ensure\n // that the `objectID` will always be equal to the query.\n ...lastItemsRef.current.map((item) => [`objectID:-${item.label}`]),\n ],\n hitsPerPage: Math.max(\n 1,\n (params.hitsPerPage ?? 10) - lastItemsRef.current.length\n ),\n };\n },\n },\n __autocomplete_pluginOptions: options,\n };\n}\n\nfunction getOptions(\n options: CreateRecentSearchesPluginParams\n) {\n return {\n transformSource: ({ source }) => source,\n ...options,\n };\n}\n","import { HistoryItem, Storage, StorageApi } from './types';\n\nexport function createStorageApi(\n storage: Storage\n): StorageApi {\n return {\n addItem(item) {\n storage.onRemove(item.id);\n storage.onAdd(item);\n },\n removeItem(id) {\n storage.onRemove(id);\n },\n getAll(query) {\n return storage.getAll(query);\n },\n };\n}\n","export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","import { addHighlightedAttribute } from './addHighlightedAttribute';\nimport { Highlighted, RecentSearchesItem } from './types';\n\nexport type SearchParams = {\n query: string;\n items: TItem[];\n limit: number;\n};\n\nexport function search({\n query,\n items,\n limit,\n}: SearchParams): Array> {\n if (!query) {\n return items\n .slice(0, limit)\n .map((item) => addHighlightedAttribute({ item, query }));\n }\n\n return items\n .filter((item) => item.label.toLowerCase().includes(query.toLowerCase()))\n .slice(0, limit)\n .map((item) => addHighlightedAttribute({ item, query }));\n}\n","import { AutocompletePlugin } from '@algolia/autocomplete-js';\n\nimport { LOCAL_STORAGE_KEY } from './constants';\nimport { createLocalStorage } from './createLocalStorage';\nimport {\n createRecentSearchesPlugin,\n CreateRecentSearchesPluginParams,\n RecentSearchesPluginData,\n} from './createRecentSearchesPlugin';\nimport { search as defaultSearch, SearchParams } from './search';\nimport { Highlighted, RecentSearchesItem } from './types';\n\nexport type CreateRecentSearchesLocalStorageOptions<\n TItem extends RecentSearchesItem\n> = {\n /**\n * A local storage key to identify where to save and retrieve the recent searches.\n *\n * For example:\n * - \"navbar\"\n * - \"search\"\n * - \"main\"\n *\n * The plugin namespaces all keys to avoid collisions.\n *\n * @example \"top_searchbar\"\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-recent-searches/createLocalStorageRecentSearchesPlugin/#param-key\n */\n key: string;\n\n /**\n * The number of recent searches to display.\n *\n * @default 5\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-recent-searches/createLocalStorageRecentSearchesPlugin/#param-limit\n */\n limit?: number;\n\n /**\n * A search function to retrieve recent searches from.\n *\n * This function is called in [`storage.getAll`](https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-recent-searches/createRecentSearchesPlugin/#param-storage) to retrieve recent searches and is useful to filter and highlight recent searches when typing a query.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-recent-searches/createLocalStorageRecentSearchesPlugin/#param-search\n */\n search?(params: SearchParams): Array>;\n};\n\ntype LocalStorageRecentSearchesPluginOptions =\n Pick<\n CreateRecentSearchesPluginParams,\n 'transformSource' | 'subscribe'\n > &\n CreateRecentSearchesLocalStorageOptions;\n\nexport function createLocalStorageRecentSearchesPlugin<\n TItem extends RecentSearchesItem\n>(\n options: LocalStorageRecentSearchesPluginOptions\n): AutocompletePlugin> {\n const { key, limit, transformSource, search, subscribe } =\n getOptions(options);\n const storage = createLocalStorage({\n key: [LOCAL_STORAGE_KEY, key].join(':'),\n limit,\n search,\n });\n\n const recentSearchesPlugin = createRecentSearchesPlugin({\n transformSource,\n storage,\n subscribe,\n });\n\n return {\n ...recentSearchesPlugin,\n name: 'aa.localStorageRecentSearchesPlugin',\n __autocomplete_pluginOptions: options,\n };\n}\n\nfunction getOptions(\n options: LocalStorageRecentSearchesPluginOptions\n) {\n return {\n limit: 5,\n search: defaultSearch,\n transformSource: ({ source }) => source,\n ...options,\n };\n}\n"],"names":["addHighlightedAttribute","_ref","item","query","_objectSpread","_highlightResult","label","value","replace","RegExp","match","concat","LOCAL_STORAGE_KEY","LOCAL_STORAGE_KEY_TEST","getLocalStorage","key","localStorage","setItem","removeItem","error","isLocalStorageSupported","items","window","JSON","stringify","getItem","parse","createLocalStorage","limit","search","storage","onAdd","_toConsumableArray","onRemove","id","filter","x","getAll","arguments","length","undefined","slice","getTemplates","onTapAhead","_ref2","createElement","components","className","viewBox","fill","d","ReverseHighlight","hit","attribute","category","title","onClick","event","preventDefault","stopPropagation","getDefaultSubscribe","store","onSelect","state","source","inputValue","getItemInputValue","sourceId","recentItem","__autocomplete_qsCategory","addItem","createRecentSearchesPlugin","options","_getOptions","transformSource","_ref6","getOptions","subscribe","createStorageApi","lastItemsRef","current","name","onSubmit","_ref3","getSources","_ref4","setQuery","refresh","Promise","resolve","then","_ref5","getItems","templates","data","getAlgoliaSearchParams","_params$facetFilters","_params$hitsPerPage","params","Array","isArray","facetFilters","map","hitsPerPage","Math","max","__autocomplete_pluginOptions","toLowerCase","includes","defaultSearch","join"],"mappings":"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"}