{"version":3,"file":"engine-438083ef.js","sources":["../../../../src/scripts/coveo/engine.ts"],"sourcesContent":["import { buildSearchEngine } from '@coveo/headless';\nimport {\n PostprocessFacetSearchResponseMiddleware,\n PostprocessQuerySuggestResponseMiddleware,\n PostprocessSearchResponseMiddleware\n} from '@coveo/headless/dist/definitions/api/search/search-api-client-middleware';\nimport { PreprocessRequest } from '@coveo/headless/dist/definitions/api/preprocess-request';\nimport { PlatformResponse } from '@coveo/headless/dist/definitions/api/platform-client';\nimport { SearchResponseSuccess } from '@coveo/headless/dist/definitions/api/search/search/search-response';\nimport { FacetSearchResponse } from '@coveo/headless/dist/definitions/api/search/facet-search/facet-search-response';\nimport { QuerySuggestSuccessResponse } from '@coveo/headless/dist/definitions/api/search/query-suggest/query-suggest-response';\n\nexport type ExtendedWindowType = Window &\n typeof globalThis & {\n preProcessRequest: CallableFunction;\n modalPreProcessRequest: CallableFunction;\n dataLayer: object[];\n };\n\nconst wrapper = document.getElementsByClassName(\n 'coveo-listing__data-wrapper'\n)?.[0];\n\nconst modalWrapper = document.getElementsByClassName(\n 'coveo-listing__data-wrapper-modal'\n)?.[0];\n\nconst searchWrapper = document.getElementsByClassName(\n 'coveo-listing__data-wrapper-search'\n)?.[0];\n\nconst dataset = wrapper ? (wrapper as HTMLElement).dataset : null;\n\nconst datasetModal = modalWrapper\n ? (modalWrapper as HTMLElement).dataset\n : null;\n\nconst datasetSearch = searchWrapper\n ? (searchWrapper as HTMLElement).dataset\n : null;\n\nconst coveoConfig = dataset ? JSON.parse(dataset.coveo as string) : null;\n\nconst coveoConfigModal = datasetModal\n ? JSON.parse(datasetModal.coveo as string)\n : null;\n\nconst coveoConfigSearch = datasetSearch\n ? JSON.parse(datasetSearch.coveo as string)\n : null;\n\nconst global = window as ExtendedWindowType;\n\nconst postprocessSearchResponse: PostprocessSearchResponseMiddleware = (\n response: PlatformResponse\n) => {\n response.body?.results.forEach(result => result);\n return response;\n};\n\nconst postprocessFacetSearchResponse: PostprocessFacetSearchResponseMiddleware =\n (response: PlatformResponse) => {\n return response;\n };\n\nconst postprocessQuerySuggestSearchResponse: PostprocessQuerySuggestResponseMiddleware =\n (response: PlatformResponse) => {\n return response;\n };\n\nconst preprocessRequest: PreprocessRequest = (request, clientOrigin) => {\n if (global.preProcessRequest) {\n if (clientOrigin === 'searchApiFetch' && request.body) {\n const body = global.preProcessRequest(request.body.toString());\n request.body = body;\n }\n // E.g., modify facet requests\n // body.facets = [...];\n }\n\n if (clientOrigin === 'analyticsFetch') {\n // E.g., send data to a third party\n }\n\n // Return the modified request\n return request;\n};\n\nconst modalPreprocessRequest: PreprocessRequest = (request, clientOrigin) => {\n if (global.modalPreProcessRequest) {\n if (clientOrigin === 'searchApiFetch' && request.body) {\n const body = global.modalPreProcessRequest(request.body.toString());\n request.body = body;\n }\n // E.g., modify facet requests\n // body.facets = [...];\n }\n\n if (clientOrigin === 'analyticsFetch') {\n // E.g., send data to a third party\n }\n\n // Return the modified request\n return request;\n};\n\nexport const config = coveoConfig && {\n organizationId: coveoConfig.OrganizationId,\n accessToken: coveoConfig.ApiKey,\n search: {\n searchHub: coveoConfig.SearchHubPipeline,\n pipeline: coveoConfig.SearchHubPipeline,\n preprocessSearchResponseMiddleware: postprocessSearchResponse,\n preprocessFacetSearchResponseMiddleware: postprocessFacetSearchResponse,\n preprocessQuerySuggestResponseMiddleware:\n postprocessQuerySuggestSearchResponse\n },\n analytics: {\n originLevel3: document?.referrer ? document.referrer : 'none'\n },\n preprocessRequest\n};\n\nexport const headlessEngine = coveoConfig\n ? buildSearchEngine({\n configuration: config\n })\n : null;\n\nexport const modalConfig = coveoConfigModal && {\n organizationId: coveoConfigModal.OrganizationId,\n accessToken: coveoConfigModal.ApiKey,\n search: {\n searchHub: coveoConfigModal.SearchHubPipeline,\n pipeline: coveoConfigModal.SearchHubPipeline,\n preprocessSearchResponseMiddleware: postprocessSearchResponse,\n preprocessFacetSearchResponseMiddleware: postprocessFacetSearchResponse,\n preprocessQuerySuggestResponseMiddleware:\n postprocessQuerySuggestSearchResponse\n },\n analytics: {\n originLevel3: document?.referrer ? document.referrer : undefined\n },\n preprocessRequest: modalPreprocessRequest\n};\n\nexport const searchConfig = coveoConfigSearch && {\n organizationId: coveoConfigSearch.OrganizationId,\n accessToken: coveoConfigSearch.ApiKey,\n search: {\n searchHub: coveoConfigSearch.SearchHubPipeline,\n pipeline: coveoConfigSearch.SearchHubPipeline\n }\n};\n\nexport const headlessEngineModal = modalConfig\n ? buildSearchEngine({\n configuration: modalConfig\n })\n : '';\n\nexport const headlessEngineSearch = searchConfig\n ? buildSearchEngine({\n configuration: searchConfig\n })\n : '';\n"],"names":["wrapper","_a","modalWrapper","searchWrapper","dataset","datasetModal","datasetSearch","coveoConfig","coveoConfigModal","coveoConfigSearch","global","postprocessSearchResponse","response","result","postprocessFacetSearchResponse","postprocessQuerySuggestSearchResponse","preprocessRequest","request","clientOrigin","body","modalPreprocessRequest","config","headlessEngine","buildSearchEngine","modalConfig","searchConfig","headlessEngineModal","headlessEngineSearch"],"mappings":"kDAmBA,MAAMA,GAAUC,EAAA,SAAS,uBACvB,6BACF,IAFgB,YAAAA,EAEZ,SAEJ,MAAMC,GAAeD,EAAA,SAAS,uBAC5B,mCACF,IAFqB,YAAAA,EAEjB,SAEJ,MAAME,GAAgBF,EAAA,SAAS,uBAC7B,oCACF,IAFsB,YAAAA,EAElB,GAEEG,EAAUJ,EAAWA,EAAwB,QAAU,KAEvDK,EAAeH,EAChBA,EAA6B,QAC9B,KAEEI,EAAgBH,EACjBA,EAA8B,QAC/B,KAEEI,EAAcH,EAAU,KAAK,MAAMA,EAAQ,KAAe,EAAI,KAE9DI,EAAmBH,EACrB,KAAK,MAAMA,EAAa,KAAe,EACvC,KAEEI,EAAoBH,EACtB,KAAK,MAAMA,EAAc,KAAe,EACxC,KAEEI,EAAS,OAETC,EACJC,GACG,OACH,OAAAX,EAAAW,EAAS,OAAT,MAAAX,EAAe,QAAQ,QAAQY,GAAUA,GAClCD,CACT,EAEME,EACHF,GACQA,EAGLG,EACHH,GACQA,EAGLI,EAAuC,CAACC,EAASC,IAAiB,CACtE,GAAIR,EAAO,mBACLQ,IAAiB,kBAAoBD,EAAQ,KAAM,CACrD,MAAME,EAAOT,EAAO,kBAAkBO,EAAQ,KAAK,UAAU,EAC7DA,EAAQ,KAAOE,EAWZ,OAAAF,CACT,EAEMG,EAA4C,CAACH,EAASC,IAAiB,CAC3E,GAAIR,EAAO,wBACLQ,IAAiB,kBAAoBD,EAAQ,KAAM,CACrD,MAAME,EAAOT,EAAO,uBAAuBO,EAAQ,KAAK,UAAU,EAClEA,EAAQ,KAAOE,EAWZ,OAAAF,CACT,EAEaI,EAASd,GAAe,CACnC,eAAgBA,EAAY,eAC5B,YAAaA,EAAY,OACzB,OAAQ,CACN,UAAWA,EAAY,kBACvB,SAAUA,EAAY,kBACtB,mCAAoCI,EACpC,wCAAyCG,EACzC,yCACEC,CACJ,EACA,UAAW,CACT,aAAc,yBAAU,SAAW,SAAS,SAAW,MACzD,EACA,kBAAAC,CACF,EAEaM,EAAiBf,EAC1BgB,EAAkB,CAChB,cAAeF,CACjB,CAAC,EACD,KAESG,EAAchB,GAAoB,CAC7C,eAAgBA,EAAiB,eACjC,YAAaA,EAAiB,OAC9B,OAAQ,CACN,UAAWA,EAAiB,kBAC5B,SAAUA,EAAiB,kBAC3B,mCAAoCG,EACpC,wCAAyCG,EACzC,yCACEC,CACJ,EACA,UAAW,CACT,aAAc,yBAAU,SAAW,SAAS,SAAW,MACzD,EACA,kBAAmBK,CACrB,EAEaK,EAAehB,GAAqB,CAC/C,eAAgBA,EAAkB,eAClC,YAAaA,EAAkB,OAC/B,OAAQ,CACN,UAAWA,EAAkB,kBAC7B,SAAUA,EAAkB,iBAC9B,CACF,EAEaiB,EAAsBF,EAC/BD,EAAkB,CAChB,cAAeC,CACjB,CAAC,EACD,GAESG,EAAuBF,EAChCF,EAAkB,CAChB,cAAeE,CACjB,CAAC,EACD"}