{"version":3,"file":"index-bfe3e9c0.async.js","sources":["../../dev/js/algolia/widgets/search-dropdown/search-box.js","../../dev/js/algolia/widgets/search-dropdown/promo-banner.js","../../dev/js/algolia/widgets/search-dropdown/related-results.js","../../dev/js/algolia/widgets/search-dropdown/hits.js"],"sourcesContent":["const renderSearchBox = (renderOptions, isFirstRender) => {\n const { refine, widgetParams } = renderOptions;\n\n if (isFirstRender) {\n widgetParams.container.addEventListener(\"input\", (e) => {\n refine(e.target.value);\n\n if (e.target.value === \"\") {\n widgetParams.dropdown.reset();\n }\n });\n\n return;\n }\n};\n\nexport const searchInput =\n window.instantsearch.connectors.connectSearchBox(renderSearchBox);\n","import { responsiveImage } from \"../../utils\";\n\nconst renderQueryRuleCustomData = (renderOptions, isFirstRender) => {\n const { items, widgetParams } = renderOptions;\n\n if (isFirstRender) return;\n\n widgetParams.container.innerHTML = \"\";\n\n // Find banner in rules\n const rules = items.find((item) => item.banner);\n\n // Stop if rules is undefined\n if (rules === undefined) return;\n\n // Stop if no banner is found\n if (!rules.banner) return;\n\n const { banner } = rules;\n\n // Stop if missing either desktop or mobile banner\n if (!banner.desktop || !banner.mobile) return;\n\n widgetParams.container.innerHTML = `\n ${banner.link ? `` : \"\"}\n
\n ${responsiveImage(banner.alt, banner.desktop)}\n
\n
\n ${responsiveImage(banner.alt, banner.mobile)}\n
\n ${banner.link ? `
` : \"\"}\n `;\n};\n\nexport const banners = window.instantsearch.connectors.connectQueryRules(\n renderQueryRuleCustomData\n);\n","const renderHits = (renderOptions, isFirstRender) => {\n const { hits, widgetParams } = renderOptions;\n\n if (isFirstRender) return;\n\n // Empty container\n widgetParams.container.innerHTML = \"\";\n\n // Insert results\n if (hits.length > 0) {\n widgetParams.container.innerHTML = `\n
${\n widgetParams.container.dataset.resultsTitle\n }
\n\n \n `;\n\n widgetParams.container.querySelectorAll(\"a\").forEach((el) => {\n el.addEventListener(\"click\", (e) => {\n e.preventDefault();\n\n const clickData = {\n index: el.dataset.algoliaIndex,\n eventName: `search dropdown - ${widgetParams.type} link click`,\n queryID: el.dataset.algoliaQueryid,\n objectIDs: [el.dataset.algoliaObjectIds],\n positions: [Number(el.dataset.algoliaPosition)],\n };\n\n // Set the logged in customer user token\n if (window.algolia.customer) {\n clickData.authenticatedUserToken = `${window.algolia.customer}`;\n }\n\n aa(\"clickedObjectIDsAfterSearch\", clickData);\n\n window.location.href = el.href;\n });\n });\n }\n};\n\nexport const relatedResults =\n window.instantsearch.connectors.connectHits(renderHits);\n","import Cookies from \"js-cookie\";\nimport { saveForConversionTracking } from \"../../utils\";\nimport {\n handleCardHover,\n handleSwatchClick,\n productCardTemplate,\n} from \"./product-card\";\n\nconst renderHits = (renderOptions, isFirstRender) => {\n const { hits, results, widgetParams } = renderOptions;\n const { container } = widgetParams;\n\n if (isFirstRender) {\n container.addEventListener(\"click\", (e) => {\n let el = e.target;\n let hit;\n\n // If quickshop action\n if (el.closest(\"[data-product-card-quickshop]\")) return;\n\n // If swatches action\n if (el.closest(\"[data-product-card-swatches]\")) return;\n\n // If wishlist button\n if (el.closest(\"[data-wishlist-action]\")) return;\n\n e.preventDefault();\n\n do {\n if (el instanceof Element && el.matches(\".product-card\")) {\n hit = el;\n break;\n }\n el = el.parentNode;\n } while (el && el !== container);\n\n // Stop if hit not found\n if (!hit) return;\n\n const link = `/products/${hit.dataset.handle}`;\n\n const clickData = {\n index: hit.dataset.algoliaIndex,\n eventName: `search dropdown - product click`,\n queryID: hit.dataset.algoliaQueryid,\n objectIDs: [hit.dataset.algoliaObjectid],\n positions: [Number(hit.dataset.algoliaPosition)],\n userToken: Cookies.get(\"_ALGOLIA\"),\n };\n\n // Set the logged in customer user token\n if (window.algolia.customer) {\n clickData.authenticatedUserToken = `${window.algolia.customer}`;\n }\n\n // Send the click event\n aa(\"clickedObjectIDsAfterSearch\", clickData);\n\n saveForConversionTracking(clickData);\n\n window.location.href = link;\n });\n\n return;\n }\n\n // Empty container\n container.innerHTML = \"\";\n\n // Insert results\n if (hits.length > 0) {\n container.innerHTML = `\n
${\n container.dataset.resultsTitle\n }
\n\n \n `;\n\n // Insert or update the 'View All Products' button\n if (container.parentNode.querySelector(\".search-dropdown__view-all-btn\")) {\n container.parentNode.querySelector(\n \".search-dropdown__view-all-btn\"\n ).href = `/search?q=${results.query}`;\n } else {\n container.insertAdjacentHTML(\n \"afterend\",\n `\n View All Products\n `\n );\n }\n\n // Attach event listeners\n const allProductCards = container.querySelectorAll(\"[data-product-card]\");\n\n allProductCards.forEach((card) => {\n // Card hover events\n const hoverElem = card.querySelector(\"[data-product-card-inner]\");\n\n hoverElem.removeEventListener(\"mouseenter\", handleCardHover);\n hoverElem.addEventListener(\"mouseenter\", handleCardHover, { once: true });\n\n // Swatches click events\n const cardSwatches = card.querySelectorAll(\n \"[data-product-card-color-id]\"\n );\n\n cardSwatches.forEach((swatch) => {\n swatch.removeEventListener(\"click\", handleSwatchClick);\n swatch.addEventListener(\"click\", handleSwatchClick);\n });\n\n if (card.querySelector(\"[data-show-remaining-colours]\")) {\n card\n .querySelector(\"[data-show-remaining-colours]\")\n .addEventListener(\"click\", (e) => {\n e.target.remove();\n\n card\n .querySelectorAll(\".product-card-colors__link--hidden\")\n .forEach((el) => {\n el.classList.remove(\"product-card-colors__link--hidden\");\n });\n });\n }\n });\n } else {\n container.innerHTML = `\n
\n

No results found

\n\n

\n Unfortunately we couldn't find any results, please try a different query.\n

\n
\n `;\n }\n};\n\nexport const products = window.instantsearch.connectors.connectHits(renderHits);\n"],"names":["renderSearchBox","renderOptions","isFirstRender","refine","widgetParams","container","addEventListener","e","target","value","dropdown","reset","searchInput","window","instantsearch","connectors","connectSearchBox","renderQueryRuleCustomData","items","innerHTML","rules","find","item","banner","undefined","desktop","mobile","link","responsiveImage","alt","banners","connectQueryRules","renderHits","hits","length","dataset","resultsTitle","map","blog","handle","title","query","queryID","index","position","objectID","type","encodeURIComponent","join","querySelectorAll","forEach","el","preventDefault","clickData","algoliaIndex","eventName","algoliaQueryid","objectIDs","algoliaObjectIds","positions","Number","algoliaPosition","algolia","customer","authenticatedUserToken","aa","location","href","relatedResults","connectHits","results","hit","closest","Element","matches","parentNode","algoliaObjectid","userToken","Cookies","get","saveForConversionTracking","productCardTemplate","querySelector","insertAdjacentHTML","allProductCards","card","hoverElem","removeEventListener","handleCardHover","once","cardSwatches","swatch","handleSwatchClick","remove","classList","products"],"mappings":"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"}