{"version":3,"file":"index.development.js","sources":["../../../autocomplete-shared/dist/esm/createRef.js","../../../autocomplete-shared/dist/esm/debounce.js","../../../autocomplete-shared/dist/esm/isEqual.js","../../../autocomplete-shared/dist/esm/noop.js","../../../autocomplete-shared/dist/esm/safelyRunOnBrowser.js","../../src/createClickedEvent.ts","../../src/isModernInsightsClient.ts","../../src/createSearchInsightsApi.ts","../../src/createViewedEvents.ts","../../src/isAlgoliaInsightsHit.ts","../../src/createAlgoliaInsightsPlugin.ts"],"sourcesContent":["export function createRef(initialValue) {\n return {\n current: initialValue\n };\n}","export function debounce(fn, time) {\n var timerId = undefined;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(function () {\n return fn.apply(void 0, args);\n }, time);\n };\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n if (!(key in second)) {\n return false;\n }\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n return true;\n}","export var noop = function noop() {};","/**\n * Safely runs code meant for browser environments only.\n */\nexport function safelyRunOnBrowser(callback) {\n if (typeof window !== 'undefined') {\n return callback({\n window: window\n });\n }\n return undefined;\n}","import type {\n AlgoliaInsightsHit,\n ClickedObjectIDsAfterSearchParams,\n InsightsParamsWithItems,\n} from './types';\n\ntype CreateClickedEventParams = {\n item: AlgoliaInsightsHit;\n items: AlgoliaInsightsHit[];\n};\n\nexport function createClickedEvent({\n item,\n items = [],\n}: CreateClickedEventParams): Omit<\n InsightsParamsWithItems,\n 'eventName'\n> & { algoliaSource?: string[] } {\n return {\n index: item.__autocomplete_indexName,\n items: [item],\n positions: [1 + items.findIndex((x) => x.objectID === item.objectID)],\n queryID: item.__autocomplete_queryID,\n algoliaSource: ['autocomplete'],\n };\n}\n","import type { InsightsClient } from './types';\n\n/**\n * Determines if a given insights `client` supports the optional call to `init`\n * and the ability to set credentials via extra parameters when sending events.\n */\nexport function isModernInsightsClient(client: InsightsClient): boolean {\n const [major, minor] = (client.version || '').split('.').map(Number);\n\n /* eslint-disable @typescript-eslint/camelcase */\n const v3 = major >= 3;\n const v2_4 = major === 2 && minor >= 4;\n const v1_10 = major === 1 && minor >= 10;\n\n return v3 || v2_4 || v1_10;\n /* eslint-enable @typescript-eslint/camelcase */\n}\n","import type { InsightsMethodMap } from 'search-insights';\n\nimport { isModernInsightsClient } from './isModernInsightsClient';\nimport {\n AlgoliaInsightsHit,\n ClickedFiltersParams,\n ClickedObjectIDsAfterSearchParams,\n ClickedObjectIDsParams,\n ConvertedFiltersParams,\n ConvertedObjectIDsAfterSearchParams,\n ConvertedObjectIDsParams,\n InsightsClient,\n InsightsClientMethod,\n WithArbitraryParams,\n InsightsParamsWithItems,\n ViewedFiltersParams,\n ViewedObjectIDsParams,\n} from './types';\n\nfunction chunk(\n item: TItem,\n chunkSize: number = 20\n): TItem[] {\n const chunks: TItem[] = [];\n for (let i = 0; i < item.objectIDs.length; i += chunkSize) {\n chunks.push({\n ...item,\n objectIDs: item.objectIDs.slice(i, i + chunkSize),\n });\n }\n return chunks;\n}\n\nfunction mapToInsightsParamsApi<\n TInsightsParamsType extends {\n items: AlgoliaInsightsHit[];\n objectIDs?: string[];\n }\n>(params: TInsightsParamsType[]) {\n return params.map(({ items, ...param }) => ({\n ...param,\n objectIDs: items?.map(({ objectID }) => objectID) || param.objectIDs,\n }));\n}\n\nexport function createSearchInsightsApi(searchInsights: InsightsClient) {\n const canSendHeaders = isModernInsightsClient(searchInsights);\n\n function sendToInsights(\n method: InsightsClientMethod,\n payloads: InsightsMethodMap[TInsightsMethod],\n items?: AlgoliaInsightsHit[]\n ) {\n if (canSendHeaders && typeof items !== 'undefined') {\n const { appId, apiKey } = items[0].__autocomplete_algoliaCredentials;\n const headers = {\n 'X-Algolia-Application-Id': appId,\n 'X-Algolia-API-Key': apiKey,\n };\n\n searchInsights(method, ...payloads, { headers });\n } else {\n searchInsights(method, ...payloads);\n }\n }\n\n return {\n /**\n * Initializes Insights with Algolia credentials.\n */\n init(appId: string, apiKey: string) {\n searchInsights('init', { appId, apiKey });\n },\n /**\n * Sets the authenticated user token to attach to events.\n * Unsets the authenticated token by passing `undefined`.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/set-authenticated-user-token/\n */\n setAuthenticatedUserToken(authenticatedUserToken: string | undefined) {\n searchInsights('setAuthenticatedUserToken', authenticatedUserToken);\n },\n /**\n * Sets the user token to attach to events.\n */\n setUserToken(userToken: string) {\n searchInsights('setUserToken', userToken);\n },\n /**\n * Sends click events to capture a query and its clicked items and positions.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids-after-search/\n */\n clickedObjectIDsAfterSearch(\n ...params: Array<\n WithArbitraryParams<\n InsightsParamsWithItems\n >\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'clickedObjectIDsAfterSearch',\n mapToInsightsParamsApi<\n InsightsParamsWithItems\n >(params),\n params[0].items\n );\n }\n },\n /**\n * Sends click events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-object-ids/\n */\n clickedObjectIDs(\n ...params: Array<\n WithArbitraryParams>\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'clickedObjectIDs',\n mapToInsightsParamsApi<\n InsightsParamsWithItems\n >(params),\n params[0].items\n );\n }\n },\n /**\n * Sends click events to capture the filters a user clicks on.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/clicked-filters/\n */\n clickedFilters(\n ...params: Array>\n ) {\n if (params.length > 0) {\n searchInsights('clickedFilters', ...params);\n }\n },\n /**\n * Sends conversion events to capture a query and its clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids-after-search/\n */\n convertedObjectIDsAfterSearch(\n ...params: Array<\n WithArbitraryParams<\n InsightsParamsWithItems\n >\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'convertedObjectIDsAfterSearch',\n mapToInsightsParamsApi<\n InsightsParamsWithItems\n >(params),\n params[0].items\n );\n }\n },\n /**\n * Sends conversion events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-object-ids/\n */\n convertedObjectIDs(\n ...params: Array<\n WithArbitraryParams>\n >\n ) {\n if (params.length > 0) {\n sendToInsights(\n 'convertedObjectIDs',\n mapToInsightsParamsApi<\n InsightsParamsWithItems\n >(params),\n params[0].items\n );\n }\n },\n /**\n * Sends conversion events to capture the filters a user uses when converting.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/converted-filters/\n */\n convertedFilters(\n ...params: Array>\n ) {\n if (params.length > 0) {\n searchInsights('convertedFilters', ...params);\n }\n },\n /**\n * Sends view events to capture clicked items.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-object-ids/\n */\n viewedObjectIDs(\n ...params: Array<\n WithArbitraryParams>\n >\n ) {\n if (params.length > 0) {\n params\n .reduce<\n Array<{\n items?: AlgoliaInsightsHit[];\n payload: ViewedObjectIDsParams;\n }>\n >(\n (acc, { items, ...param }) => [\n ...acc,\n ...chunk({\n ...param,\n objectIDs:\n items?.map(({ objectID }) => objectID) || param.objectIDs,\n }).map((payload) => {\n return { items, payload };\n }),\n ],\n []\n )\n .forEach(({ items, payload }) =>\n sendToInsights('viewedObjectIDs', [payload], items)\n );\n }\n },\n /**\n * Sends view events to capture the filters a user uses when viewing.\n *\n * @link https://www.algolia.com/doc/api-reference/api-methods/viewed-filters/\n */\n viewedFilters(...params: Array>) {\n if (params.length > 0) {\n searchInsights('viewedFilters', ...params);\n }\n },\n };\n}\n","import {\n AlgoliaInsightsHit,\n InsightsParamsWithItems,\n ViewedObjectIDsParams,\n} from './types';\n\ntype CreateViewedEventsParams = {\n items: AlgoliaInsightsHit[];\n};\n\nexport function createViewedEvents({\n items,\n}: CreateViewedEventsParams): Array<\n Omit, 'eventName'>\n> {\n const itemsByIndexName = items.reduce>(\n (acc, current) => {\n acc[current.__autocomplete_indexName] = (\n acc[current.__autocomplete_indexName] ?? []\n ).concat(current);\n\n return acc;\n },\n {}\n );\n\n return Object.keys(itemsByIndexName).map((indexName) => {\n const items = itemsByIndexName[indexName];\n\n return {\n index: indexName,\n items,\n algoliaSource: ['autocomplete'],\n };\n });\n}\n","import { AlgoliaInsightsHit } from './types';\n\nexport function isAlgoliaInsightsHit(hit: any): hit is AlgoliaInsightsHit {\n return (\n hit.objectID && hit.__autocomplete_indexName && hit.__autocomplete_queryID\n );\n}\n","import {\n AutocompleteState,\n AutocompletePlugin,\n createRef,\n debounce,\n isEqual,\n noop,\n safelyRunOnBrowser,\n} from '@algolia/autocomplete-shared';\nimport {\n AutocompleteContext,\n AutocompleteReshapeSource,\n} from '@algolia/autocomplete-shared/dist/esm/core';\n\nimport { createClickedEvent } from './createClickedEvent';\nimport { createSearchInsightsApi } from './createSearchInsightsApi';\nimport { createViewedEvents } from './createViewedEvents';\nimport { isAlgoliaInsightsHit } from './isAlgoliaInsightsHit';\nimport {\n AlgoliaInsightsHit,\n AutocompleteInsightsApi,\n InsightsClient,\n InsightsEvent,\n InsightsMethodMap,\n OnActiveParams,\n OnItemsChangeParams,\n OnSelectParams,\n} from './types';\n\nconst VIEW_EVENT_DELAY = 400;\nconst ALGOLIA_INSIGHTS_VERSION = '2.15.0';\nconst ALGOLIA_INSIGHTS_SRC = `https://cdn.jsdelivr.net/npm/search-insights@${ALGOLIA_INSIGHTS_VERSION}/dist/search-insights.min.js`;\n\ntype SendViewedObjectIDsParams = {\n onItemsChange(params: OnItemsChangeParams): void;\n items: AlgoliaInsightsHit[];\n insights: AutocompleteInsightsApi;\n state: AutocompleteState;\n};\n\nconst sendViewedObjectIDs = debounce(\n ({ onItemsChange, items, insights, state }) => {\n onItemsChange({\n insights,\n insightsEvents: createViewedEvents({ items }).map((event) => ({\n eventName: 'Items Viewed',\n ...event,\n })),\n state,\n });\n },\n VIEW_EVENT_DELAY\n);\n\nexport type CreateAlgoliaInsightsPluginParams = {\n /**\n * The initialized Search Insights client.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsclient\n */\n insightsClient?: InsightsClient;\n /**\n * Insights parameters to forward to the Insights client’s init method.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-insightsinitparams\n */\n insightsInitParams?: Partial;\n /**\n * Hook to send an Insights event when the items change.\n *\n * By default, it sends a `viewedObjectIDs` event.\n *\n * In as-you-type experiences, items change as the user types. This hook is debounced every 400ms to reflect actual items that users notice and avoid generating too many events for items matching \"in progress\" queries.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onitemschange\n */\n onItemsChange?(params: OnItemsChangeParams): void;\n /**\n * Hook to send an Insights event when an item is selected.\n *\n * By default, it sends a clickedObjectIDsAfterSearch event.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onselect\n */\n onSelect?(params: OnSelectParams): void;\n /**\n * Hook to send an Insights event when an item is active.\n *\n * By default, it doesn't send any events.\n *\n * @link https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-plugin-algolia-insights/createAlgoliaInsightsPlugin/#param-onactive\n */\n onActive?(params: OnActiveParams): void;\n /**\n * @internal\n */\n __autocomplete_clickAnalytics?: boolean;\n};\n\nexport function createAlgoliaInsightsPlugin(\n options: CreateAlgoliaInsightsPluginParams\n): AutocompletePlugin {\n const {\n insightsClient: providedInsightsClient,\n insightsInitParams,\n onItemsChange,\n onSelect: onSelectEvent,\n onActive: onActiveEvent,\n __autocomplete_clickAnalytics,\n } = getOptions(options);\n let insightsClient = providedInsightsClient as InsightsClient;\n\n if (!providedInsightsClient) {\n safelyRunOnBrowser(({ window }) => {\n const pointer = window.AlgoliaAnalyticsObject || 'aa';\n\n if (typeof pointer === 'string') {\n insightsClient = window[pointer];\n }\n\n if (!insightsClient) {\n window.AlgoliaAnalyticsObject = pointer;\n\n if (!window[pointer]) {\n window[pointer] = (...args: any[]) => {\n if (!window[pointer].queue) {\n window[pointer].queue = [];\n }\n\n window[pointer].queue.push(args);\n };\n }\n\n window[pointer].version = ALGOLIA_INSIGHTS_VERSION;\n\n insightsClient = window[pointer];\n\n loadInsights(window);\n }\n });\n }\n\n // We return an empty plugin if `insightsClient` is still undefined at\n // this stage, which can happen in server environments.\n if (!insightsClient) {\n return {};\n }\n\n if (insightsInitParams) {\n insightsClient('init', { partial: true, ...insightsInitParams });\n }\n\n const insights = createSearchInsightsApi(insightsClient);\n const previousItems = createRef([]);\n\n const debouncedOnStateChange = debounce<{\n state: AutocompleteState;\n }>(({ state }) => {\n if (!state.isOpen) {\n return;\n }\n\n const items = state.collections\n .reduce((acc, current) => {\n return [...acc, ...current.items];\n }, [])\n .filter(isAlgoliaInsightsHit);\n\n if (\n !isEqual(\n previousItems.current.map((x) => x.objectID),\n items.map((x) => x.objectID)\n )\n ) {\n previousItems.current = items;\n\n if (items.length > 0) {\n sendViewedObjectIDs({ onItemsChange, items, insights, state });\n }\n }\n }, 0);\n\n return {\n name: 'aa.algoliaInsightsPlugin',\n subscribe({ setContext, onSelect, onActive }) {\n let isAuthenticatedToken = false;\n function setInsightsContext(userToken?: InsightsEvent['userToken']) {\n setContext({\n algoliaInsightsPlugin: {\n __algoliaSearchParameters: {\n ...(__autocomplete_clickAnalytics\n ? { clickAnalytics: true }\n : {}),\n ...(userToken\n ? { userToken: normalizeUserToken(userToken) }\n : {}),\n },\n insights,\n },\n });\n }\n\n insightsClient('addAlgoliaAgent', 'insights-plugin');\n\n setInsightsContext();\n\n // Handles user token changes\n insightsClient('onUserTokenChange', (userToken) => {\n if (!isAuthenticatedToken) {\n setInsightsContext(userToken);\n }\n });\n insightsClient('getUserToken', null, (_error, userToken) => {\n if (!isAuthenticatedToken) {\n setInsightsContext(userToken);\n }\n });\n\n // Handles authenticated user token changes\n insightsClient(\n 'onAuthenticatedUserTokenChange',\n (authenticatedUserToken) => {\n if (authenticatedUserToken) {\n isAuthenticatedToken = true;\n setInsightsContext(authenticatedUserToken);\n } else {\n isAuthenticatedToken = false;\n insightsClient('getUserToken', null, (_error, userToken) =>\n setInsightsContext(userToken)\n );\n }\n }\n );\n insightsClient(\n 'getAuthenticatedUserToken',\n null,\n (_error, authenticatedUserToken) => {\n if (authenticatedUserToken) {\n isAuthenticatedToken = true;\n setInsightsContext(authenticatedUserToken);\n }\n }\n );\n\n onSelect(({ item, state, event, source }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onSelectEvent({\n state: state as AutocompleteState,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Selected',\n ...createClickedEvent({\n item,\n items: (source as AutocompleteReshapeSource)\n .getItems()\n .filter(isAlgoliaInsightsHit),\n }),\n },\n ],\n });\n });\n\n onActive(({ item, source, state, event }) => {\n if (!isAlgoliaInsightsHit(item)) {\n return;\n }\n\n onActiveEvent({\n state: state as AutocompleteState,\n event,\n insights,\n item,\n insightsEvents: [\n {\n eventName: 'Item Active',\n ...createClickedEvent({\n item,\n items: (source as AutocompleteReshapeSource)\n .getItems()\n .filter(isAlgoliaInsightsHit),\n }),\n },\n ],\n });\n });\n },\n onStateChange({ state }) {\n debouncedOnStateChange({ state: state as AutocompleteState });\n },\n __autocomplete_pluginOptions: options,\n };\n}\n\nfunction getAlgoliaSources(\n algoliaSourceBase: string[] = [],\n context: AutocompleteContext\n) {\n return [\n ...algoliaSourceBase,\n 'autocomplete-internal',\n ...((context.algoliaInsightsPlugin as Record)\n ?.__automaticInsights\n ? ['autocomplete-automatic']\n : []),\n ];\n}\n\nfunction getOptions(options: CreateAlgoliaInsightsPluginParams) {\n return {\n onItemsChange({ insights, insightsEvents, state }: OnItemsChangeParams) {\n insights.viewedObjectIDs(\n ...insightsEvents.map((event) => ({\n ...event,\n algoliaSource: getAlgoliaSources(event.algoliaSource, state.context),\n }))\n );\n },\n onSelect({ insights, insightsEvents, state }: OnSelectParams) {\n insights.clickedObjectIDsAfterSearch(\n ...insightsEvents.map((event) => ({\n ...event,\n algoliaSource: getAlgoliaSources(event.algoliaSource, state.context),\n }))\n );\n },\n onActive: noop,\n __autocomplete_clickAnalytics: true,\n ...options,\n };\n}\n\nfunction loadInsights(environment: typeof window) {\n const errorMessage = `[Autocomplete]: Could not load search-insights.js. Please load it manually following https://alg.li/insights-autocomplete`;\n\n try {\n const script = environment.document.createElement('script');\n script.async = true;\n script.src = ALGOLIA_INSIGHTS_SRC;\n\n script.onerror = () => {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n };\n\n document.body.appendChild(script);\n } catch (cause) {\n // eslint-disable-next-line no-console\n console.error(errorMessage);\n }\n}\n\n/**\n * While `search-insights` supports both string and number user tokens,\n * the Search API only accepts strings. This function normalizes the user token.\n */\nfunction normalizeUserToken(\n userToken: NonNullable\n): string {\n return typeof userToken === 'number' ? userToken.toString() : userToken;\n}\n"],"names":["createRef","initialValue","current","debounce","fn","time","timerId","undefined","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","isPrimitive","obj","Object","isEqual","first","second","keys","_i","_Object$keys","key","noop","safelyRunOnBrowser","callback","window","createClickedEvent","_ref","item","_ref$items","items","index","__autocomplete_indexName","positions","findIndex","x","objectID","queryID","__autocomplete_queryID","algoliaSource","isModernInsightsClient","client","_split$map","version","split","map","Number","_split$map2","_slicedToArray","major","minor","v3","v2_4","v1_10","chunk","chunkSize","chunks","i","objectIDs","push","_objectSpread","slice","mapToInsightsParamsApi","params","param","_objectWithoutProperties","_excluded","_ref2","createSearchInsightsApi","searchInsights","canSendHeaders","sendToInsights","method","payloads","_items$0$__autocomple","__autocomplete_algoliaCredentials","appId","apiKey","headers","concat","_toConsumableArray","init","setAuthenticatedUserToken","authenticatedUserToken","setUserToken","userToken","clickedObjectIDsAfterSearch","clickedObjectIDs","_len2","_key2","clickedFilters","_len3","_key3","convertedObjectIDsAfterSearch","_len4","_key4","convertedObjectIDs","_len5","_key5","convertedFilters","_len6","_key6","viewedObjectIDs","_len7","_key7","reduce","acc","_ref3","_excluded2","_ref4","payload","forEach","_ref5","viewedFilters","_len8","_key8","createViewedEvents","itemsByIndexName","_acc$current$__autoco","indexName","isAlgoliaInsightsHit","hit","VIEW_EVENT_DELAY","ALGOLIA_INSIGHTS_VERSION","ALGOLIA_INSIGHTS_SRC","sendViewedObjectIDs","onItemsChange","insights","state","insightsEvents","event","eventName","createAlgoliaInsightsPlugin","options","_getOptions","getOptions","providedInsightsClient","insightsClient","insightsInitParams","onSelectEvent","onSelect","onActiveEvent","onActive","__autocomplete_clickAnalytics","pointer","AlgoliaAnalyticsObject","queue","loadInsights","partial","previousItems","debouncedOnStateChange","isOpen","collections","filter","name","subscribe","setContext","isAuthenticatedToken","setInsightsContext","algoliaInsightsPlugin","__algoliaSearchParameters","clickAnalytics","normalizeUserToken","_error","source","getItems","_ref6","onStateChange","_ref7","__autocomplete_pluginOptions","getAlgoliaSources","_context$algoliaInsig","algoliaSourceBase","context","__automaticInsights","_ref8","_ref9","environment","errorMessage","script","document","createElement","async","src","onerror","console","error","body","appendChild","cause","toString"],"mappings":"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"}