{"version":3,"file":"index-c8dfdf29.js","sources":["../../../../src/scripts/coveo/modules/product-listing/card.tsx","../../../../src/scripts/coveo/modules/product-listing/templates.tsx","../../../../src/scripts/coveo/modules/product-listing/index.tsx"],"sourcesContent":["import React from 'react';\n\ntype ProductCardProps = {\n image: string;\n imageAlt: string;\n title: string;\n description: string;\n dataSheetLabel: string;\n safetyDataSheetLabel: string;\n allDocsLabel: string;\n downloadLabel: string;\n productDetailPageUrl: string;\n dataSheetCount: number;\n safetyDataSheetCount: number;\n singleDataSheetUrl: string;\n singleSafetyDataSheetUrl: string;\n warrantyLabel: string;\n warrantyCount?: number;\n singleWarrantyUrl?: string;\n};\n\nfunction ProductCard({\n image,\n imageAlt,\n title,\n description,\n dataSheetLabel,\n safetyDataSheetLabel,\n allDocsLabel,\n downloadLabel,\n productDetailPageUrl,\n dataSheetCount,\n safetyDataSheetCount,\n singleDataSheetUrl,\n singleSafetyDataSheetUrl,\n warrantyLabel,\n warrantyCount,\n singleWarrantyUrl\n}: ProductCardProps) {\n const renderDocumentLink = (\n downloadUrl: string,\n label: string,\n isDownload: boolean\n ) => {\n return (\n \n \n \n {isDownload ? downloadLabel : allDocsLabel}{' '}\n \n {label}\n \n \n );\n };\n\n return (\n
\n \n \n {imageAlt}\n \n \n
\n

\n \n {title}\n \n

\n \n
\n \n \n {imageAlt}\n \n \n
\n {dataSheetCount && dataSheetCount > 0 ? (\n <>\n {renderDocumentLink(\n singleDataSheetUrl,\n dataSheetLabel,\n dataSheetCount === 1\n )}\n \n ) : null}\n {safetyDataSheetCount && safetyDataSheetCount > 0 ? (\n <>\n {renderDocumentLink(\n singleSafetyDataSheetUrl,\n safetyDataSheetLabel,\n safetyDataSheetCount === 1\n )}\n \n ) : null}\n {warrantyCount && warrantyCount > 0 ? (\n <>\n {renderDocumentLink(\n singleWarrantyUrl as string,\n warrantyLabel,\n warrantyCount === 1\n )}\n \n ) : null}\n
\n
\n );\n}\n\nexport default ProductCard;\n","import React from 'react';\nimport {\n buildResultTemplatesManager,\n ResultTemplate,\n Result,\n SearchEngine\n} from '@coveo/headless';\nimport { headlessEngine } from '../../engine';\nimport {\n fieldsToInclude,\n labelsObj,\n fieldsObject\n} from '../../controllers/controller';\nimport ProductCard from './card';\n\ntype DocumentsListingResultProps = Result & {\n title: string;\n description: string;\n image: string;\n imageAlt: string;\n};\n\nexport const resultTemplatesManager = buildResultTemplatesManager(\n headlessEngine as SearchEngine\n);\n\nconst DocumentsListingResultTemplate: ResultTemplate = {\n conditions: [],\n fields: ['UniqueId', 'Uri', ...fieldsToInclude],\n content: (result: DocumentsListingResultProps) => (\n
  • \n \n
  • \n )\n};\n\nresultTemplatesManager.registerTemplates(DocumentsListingResultTemplate);\n","import React, { useRef, useEffect, useState } from 'react';\nimport ResultList from '../../components/result-list';\nimport { resultTemplatesManager } from './templates';\nimport { resultList, defaultQuery, facets } from '../../controllers/controller';\nimport Pagination from '../../components/pagination';\nimport {\n CategoryFacet,\n SearchEngine,\n buildCategoryFacet,\n buildFacet,\n loadAdvancedSearchQueryActions,\n loadSearchActions,\n loadSearchAnalyticsActions,\n ResultList as ResultListType,\n Facet as FacetType\n} from '@coveo/headless';\nimport { headlessEngine } from '../../engine';\nimport QuerySummary from '../../components/query-summary';\nimport { bindUrlManager } from '../../components/url-manager';\nimport MobileFilters from '../../components/mobile-filters';\nimport Facet from '../../components/facet';\nimport FacetBreadcrumbs from '../../components/facet-breadcrumbs';\nimport { Sort } from '../../components/sort';\nimport FacetTree from '../../components/category-facet';\nimport { dispatchPersonaViewEvent } from '../../../helpers/personalize';\n\ntype ProductListingProps = {\n labels: string;\n};\n\nconst facetsObj = facets.map(facet => {\n return {\n title: facet.title,\n certificationsLabel: facet.certificationsLabel,\n isCategory: facet.isCategory,\n controller: facet.isCategory\n ? buildCategoryFacet(headlessEngine as SearchEngine, {\n options: {\n field: facet.field as string,\n filterFacetCount: true,\n delimitingCharacter: '_',\n numberOfValues: 999\n }\n })\n : buildFacet(headlessEngine as SearchEngine, {\n options: {\n field: facet.field,\n filterFacetCount: true\n }\n }),\n customOrder: facet.customOrder\n };\n});\n\nfunction ProductListing({ labels }: ProductListingProps) {\n const labelsObj = JSON.parse(labels);\n const containerRef = useRef(null);\n const [promoCards, setPromoCards] = useState('');\n\n useEffect(() => {\n if (headlessEngine) {\n dispatchPersonaViewEvent();\n bindUrlManager(headlessEngine);\n\n if (defaultQuery) {\n const advancedQuerySearchActionCreator =\n loadAdvancedSearchQueryActions(headlessEngine);\n\n headlessEngine?.dispatch(\n advancedQuerySearchActionCreator.registerAdvancedSearchQueries({\n aq: defaultQuery\n })\n );\n\n const { logInterfaceLoad } = loadSearchAnalyticsActions(headlessEngine);\n const { executeSearch } = loadSearchActions(headlessEngine);\n headlessEngine.dispatch(executeSearch(logInterfaceLoad()));\n }\n\n headlessEngine.executeFirstSearch();\n }\n\n let observer: MutationObserver;\n\n const targetNode = document.querySelector('.coveo-listing__promo-cards');\n\n if (targetNode) {\n const targetInnerHtml = targetNode.innerHTML;\n\n setPromoCards(targetInnerHtml);\n\n const config = { attributes: true, childList: true, subtree: true };\n\n const callback = (mutationList: MutationRecord[]) => {\n for (const mutation of mutationList) {\n if (mutation.type === 'childList') {\n setPromoCards(targetNode.innerHTML);\n }\n }\n };\n\n observer = new MutationObserver(callback);\n observer.observe(targetNode, config);\n }\n\n return () => {\n if (observer) observer.disconnect();\n };\n }, []);\n\n const renderFilters = (isMobile?: boolean) => {\n return (\n \n {facetsObj.map((facet, index) => (\n \n {facet.isCategory ? (\n \n ) : (\n \n )}\n \n ))}\n \n );\n };\n\n return (\n
    \n
    \n \n {renderFilters(true)}\n \n {renderFilters()}\n \n
    \n
    \n
    \n
    \n \n \n
    \n \n
    \n \n \n \n
    \n
    \n );\n}\n\nexport default ProductListing;\n"],"names":["ProductCard","image","imageAlt","title","description","dataSheetLabel","safetyDataSheetLabel","allDocsLabel","downloadLabel","productDetailPageUrl","dataSheetCount","safetyDataSheetCount","singleDataSheetUrl","singleSafetyDataSheetUrl","warrantyLabel","warrantyCount","singleWarrantyUrl","renderDocumentLink","downloadUrl","label","isDownload","React","resultTemplatesManager","buildResultTemplatesManager","headlessEngine","DocumentsListingResultTemplate","fieldsToInclude","result","fieldsObject","labelsObj","facetsObj","facets","facet","buildCategoryFacet","buildFacet","ProductListing","labels","containerRef","useRef","promoCards","setPromoCards","useState","useEffect","dispatchPersonaViewEvent","bindUrlManager","defaultQuery","advancedQuerySearchActionCreator","loadAdvancedSearchQueryActions","_a","logInterfaceLoad","loadSearchAnalyticsActions","executeSearch","loadSearchActions","observer","targetNode","targetInnerHtml","config","callback","mutationList","mutation","renderFilters","isMobile","index","FacetTree","Facet","MobileFilters","QuerySummary","FacetBreadcrumbs","Sort","ResultList","resultList","Pagination"],"mappings":"u7BAqBA,SAASA,EAAY,CACnB,MAAAC,EACA,SAAAC,EACA,MAAAC,EACA,YAAAC,EACA,eAAAC,EACA,qBAAAC,EACA,aAAAC,EACA,cAAAC,EACA,qBAAAC,EACA,eAAAC,EACA,qBAAAC,EACA,mBAAAC,EACA,yBAAAC,EACA,cAAAC,EACA,cAAAC,EACA,kBAAAC,CACF,EAAqB,CACnB,MAAMC,EAAqB,CACzBC,EACAC,EACAC,IAGEC,EAAA,cAAC,IAAA,CACC,KAAMH,EACL,GAAIE,GAAc,CAAE,SAAU,EAAG,EAClC,UAAW,gBACTA,EAAa,yBAA2B,gBAE1C,OAAO,QAAA,EAEPC,EAAA,cAAC,OACC,KAAAA,EAAA,cAAC,OAAK,CAAA,UAAU,SACb,EAAAD,EAAaZ,EAAgBD,EAAc,GAC9C,EACCY,CACH,CAAA,EAMJ,OAAAE,EAAA,cAAC,UAAQ,CAAA,UAAU,cACjB,EAAAA,EAAA,cAAC,IAAA,CACC,KAAMZ,EACN,UAAU,uEACV,aAAYP,CAAA,EAEXmB,EAAA,cAAA,UAAA,CAAQ,UAAU,yCAChB,MAAI,CAAA,IAAKpB,EAAO,IAAKC,EAAU,MAAO,IAAK,OAAQ,IAAK,CAC3D,CACF,kBACC,MAAI,CAAA,UAAU,yBACZmB,EAAA,cAAA,KAAA,CAAG,UAAU,uBACZ,EAAAA,EAAA,cAAC,KAAE,UAAU,eAAe,KAAMZ,CAChC,EAAAY,EAAA,cAAC,YAAMlB,CAAM,CACf,CACF,EACAkB,EAAA,cAAC,MAAA,CACC,UAAU,wCACV,wBAAyB,CAAE,OAAQjB,CAAY,CAAA,CAAA,CAEnD,EACAiB,EAAA,cAAC,IAAA,CACC,KAAMZ,EACN,UAAU,sEACV,aAAYP,CAAA,EAEXmB,EAAA,cAAA,UAAA,CAAQ,UAAU,0CAChB,MAAI,CAAA,IAAKpB,EAAO,IAAKC,EAAU,MAAO,IAAK,OAAQ,IAAK,CAC3D,CAAA,kBAED,MAAI,CAAA,UAAU,uBACZQ,GAAkBA,EAAiB,EAE/BW,EAAA,cAAAA,EAAA,SAAA,KAAAJ,EACCL,EACAP,EACAK,IAAmB,CAEvB,CAAA,EACE,KACHC,GAAwBA,EAAuB,EAE3CU,EAAA,cAAAA,EAAA,SAAA,KAAAJ,EACCJ,EACAP,EACAK,IAAyB,CAE7B,CAAA,EACE,KACHI,GAAiBA,EAAgB,EAE7BM,EAAA,cAAAA,EAAA,SAAA,KAAAJ,EACCD,EACAF,EACAC,IAAkB,CAAA,CAEtB,EACE,IACN,CACF,CAEJ,CCvGO,MAAMO,EAAyBC,EACpCC,CACF,EAEMC,EAAiD,CACrD,WAAY,CAAC,EACb,OAAQ,CAAC,WAAY,MAAO,GAAGC,CAAe,EAC9C,QAAUC,mBACP,KAAG,CAAA,IAAKA,EAAO,QACd,EAAAN,EAAA,cAACrB,EAAA,CACC,MAAO2B,EAAO,IAAIC,EAAa,KAAK,EACpC,SAAUD,EAAO,IAAIC,EAAa,QAAQ,EAC1C,MAAOD,EAAO,IAAIC,EAAa,KAAK,EACpC,qBACED,EAAO,IAAIC,EAAa,oBAAoB,EAE9C,YAAaD,EAAO,IAAIC,EAAa,WAAW,EAChD,eAAgBD,EAAO,IAAIC,EAAa,cAAc,EACtD,qBACED,EAAO,IAAIC,EAAa,oBAAoB,EAE9C,mBACED,EAAO,IAAIC,EAAa,kBAAkB,EAE5C,yBACED,EAAO,IAAIC,EAAa,wBAAwB,EAElD,eAAgBC,EAAU,eAC1B,qBAAsBA,EAAU,qBAChC,aAAcA,EAAU,aACxB,cAAeA,EAAU,cACzB,cAAeF,EAAO,IAAIC,EAAa,aAAa,EACpD,cAAeC,EAAU,cACzB,kBAAmBF,EAAO,IAAIC,EAAa,iBAAiB,CAAA,CAAA,CAEhE,CAEJ,EAEAN,EAAuB,kBAAkBG,CAA8B,EC/BvE,MAAMK,EAAYC,EAAO,IAAaC,IAC7B,CACL,MAAOA,EAAM,MACb,oBAAqBA,EAAM,oBAC3B,WAAYA,EAAM,WAClB,WAAYA,EAAM,WACdC,EAAmBT,EAAgC,CACjD,QAAS,CACP,MAAOQ,EAAM,MACb,iBAAkB,GAClB,oBAAqB,IACrB,eAAgB,GAClB,CAAA,CACD,EACDE,EAAWV,EAAgC,CACzC,QAAS,CACP,MAAOQ,EAAM,MACb,iBAAkB,EACpB,CAAA,CACD,EACL,YAAaA,EAAM,WAAA,EAEtB,EAED,SAASG,GAAe,CAAE,OAAAC,GAA+B,CACjD,MAAAP,EAAY,KAAK,MAAMO,CAAM,EAC7BC,EAAeC,SAA8B,IAAI,EACjD,CAACC,EAAYC,CAAa,EAAIC,WAAS,EAAE,EAE/CC,EAAAA,UAAU,IAAM,OACd,GAAIlB,EAAgB,CAIlB,GAHyBmB,IACzBC,EAAepB,CAAc,EAEzBqB,EAAc,CACV,MAAAC,EACJC,EAA+BvB,CAAc,GAE/BwB,EAAAxB,IAAA,MAAAwB,EAAA,SACdF,EAAiC,8BAA8B,CAC7D,GAAID,CAAA,CACL,GAGH,KAAM,CAAE,iBAAAI,CAAA,EAAqBC,EAA2B1B,CAAc,EAChE,CAAE,cAAA2B,CAAA,EAAkBC,EAAkB5B,CAAc,EAC1DA,EAAe,SAAS2B,EAAcF,EAAiB,CAAC,CAAC,EAG3DzB,EAAe,mBAAmB,EAGhC,IAAA6B,EAEE,MAAAC,EAAa,SAAS,cAAc,6BAA6B,EAEvE,GAAIA,EAAY,CACd,MAAMC,EAAkBD,EAAW,UAEnCd,EAAce,CAAe,EAE7B,MAAMC,EAAS,CAAE,WAAY,GAAM,UAAW,GAAM,QAAS,IAEvDC,EAAYC,GAAmC,CACnD,UAAWC,KAAYD,EACjBC,EAAS,OAAS,aACpBnB,EAAcc,EAAW,SAAS,CAEtC,EAGSD,EAAA,IAAI,iBAAiBI,CAAQ,EAC/BJ,EAAA,QAAQC,EAAYE,CAAM,EAGrC,MAAO,IAAM,CACPH,GAAUA,EAAS,WAAW,CAAA,CAEtC,EAAG,CAAE,CAAA,EAEC,MAAAO,EAAiBC,GAEnBxC,EAAA,cAAC,MAAA,CACC,UAAW,2BACTwC,EACI,kCACA,oCAAA,EAGL/B,EAAU,IAAI,CAACE,EAAO8B,IACrBzC,EAAA,cAACA,EAAM,SAAN,CAAe,IAAKyC,CAClB,EAAA9B,EAAM,WACLX,EAAA,cAAC0C,EAAA,CACC,MAAO/B,EAAM,MACb,WAAYA,EAAM,WAClB,gBAAiB,CAAA6B,EACjB,UAAWhC,EAAU,UACrB,aAAcgC,CAAA,CAGhB,EAAAxC,EAAA,cAAC2C,EAAA,CACC,WAAYhC,EAAM,WAClB,MAAOA,EAAM,MACb,YAAaA,EAAM,YACnB,gBAAiB,CAAA6B,CAAmB,CAAA,CAG1C,CACD,CAAA,EAML,OAAAxC,EAAA,cAAC,OAAI,IAAKgB,EAAc,UAAU,8BAChC,EAAAhB,EAAA,cAAC,MAAI,CAAA,UAAU,0BACb,EAAAA,EAAA,cAAC4C,EAAA,CACC,MAAOpC,EAAU,eACjB,aAAAQ,EACA,gBAAiB,EAAA,EAEhBuB,EAAc,EAAI,CAAA,EAEpBA,IACDvC,EAAA,cAAC,MAAA,CACC,UAAU,qEACV,wBAAyB,CAAE,OAAQkB,CAAW,CAAA,CAElD,CAAA,EACAlB,EAAA,cAAC,MAAI,CAAA,UAAU,yBACZA,EAAA,cAAA,MAAA,CAAI,UAAU,iDACZ,MAAI,CAAA,UAAU,0BACb,EAAAA,EAAA,cAAC6C,MAAa,EACd7C,EAAA,cAAC8C,EAAA,CACC,WAAYtC,EAAU,SACtB,aAAa,8BAAA,CAEjB,CAAA,EACCR,EAAA,cAAA+C,EAAA,CAAK,YAAavC,EAAU,MAAQ,CAAA,CACvC,EACAR,EAAA,cAACgD,EAAA,CACC,WAAYC,EACZ,UAAU,2BACV,uBAAAhD,EACA,iBAAkB,EAAA,CAAA,EAEnBD,EAAA,cAAAkD,EAAA,IAAW,EACZlD,EAAA,cAAC,MAAA,CACC,UAAU,oEACV,wBAAyB,CAAE,OAAQkB,CAAW,CAAA,CAElD,CAAA,CACF,CAEJ"}