{"version":3,"sources":["webpack:///./src/js/helpers/index.js","webpack:///./src/js/modules/coveo/engine.js","webpack:///./src/js/modules/coveo/controllers/controllers.js","webpack:///./src/js/modules/coveo/components/url-manager.js","webpack:///./src/js/modules/coveo/components/result-list.js","webpack:///./node_modules/sanitize-filename/index.js","webpack:///./src/js/modules/coveo/components/pager.js","webpack:///./node_modules/truncate-utf8-bytes/browser.js","webpack:///./node_modules/truncate-utf8-bytes/lib/truncate.js","webpack:///./node_modules/utf8-byte-length/browser.js","webpack:///./src/js/modules/coveo/components/facet.js","webpack:///./src/js/modules/coveo/components/facet-breadcrumb.js","webpack:///./src/js/modules/coveo/components/interactive-result-with-action.js","webpack:///./src/js/modules/coveo/components/document-list-file.js","webpack:///./src/js/modules/coveo/context/ResultActionAnalyticsContext.js","webpack:///./src/js/modules/coveo/controllers/sort-criteria.js"],"names":["isMobile","window","matchMedia","matches","isTabletLandscape","focusableElements","isDescendant","parent","child","node","parentNode","decodeEntity","str","ta","document","createElement","innerHTML","value","getSafeId","getRandomInt","min","max","Math","ceil","floor","random","sortFiltersBySitecore","unsortedFilters","sitecoreFilters","filtersInSitecore","filter","facet","indexOf","sortRemainingFilters","sort","a","b","toLowerCase","BREAKPOINTS","Object","freeze","mobile","tablet","tabletLandscape","desktop","moduleMax","wide","debounce","callback","wait","timerId","args","clearTimeout","setTimeout","wrapper","getElementsByClassName","dataset","coveoConfig","JSON","parse","coveo","originLevel3","referrer","config","organizationId","OrganizationId","accessToken","ApiKey","redirectionUrl","resultsPage","search","preprocessSearchResponseMiddleware","response","body","results","forEach","result","preprocessFacetSearchResponseMiddleware","preprocessQuerySuggestResponseMiddleware","preprocessRequest","request","clientOrigin","stringify","analytics","headlessEngine","buildSearchEngine","configuration","headlessSearchEngine","maxResultsPerPage","resultsPerPage","fieldsToInclude","searchFields","searchBox","buildSearchBox","options","highlightOptions","notMatchDelimiters","open","close","correctionDelimiters","resultList","buildResultList","sortController","buildSort","facetBreadcrumb","buildBreadcrumbManager","querySummary","buildResultsPerPage","initialState","numberOfResults","buildDateFilter","field","buildQuerySummary","pager","buildPager","numberOfPages","buildDidYouMean","bindUrlManager","engine","fragment","location","hash","slice","urlManager","buildUrlManager","searchStatus","buildSearchStatus","onHashChange","synchronize","addEventListener","unsubscribeManager","subscribe","state","firstSearchExecuted","history","pushState","title","replaceState","removeEventListener","ResultList","props","controller","resultTemplatesManager","setState","useState","isLoading","setIsLoading","additionalClasses","labels","localization","useEffect","length","React","className","dangerouslySetInnerHTML","__html","loadingMessage","noResultsMessage","map","template","selectTemplate","Error","truncate","illegalRe","controlRe","reservedRe","windowsReservedRe","windowsTrailingRe","sanitize","input","replacement","sanitized","replace","module","exports","output","Pager","pagerWrapper","useRef","currentPages","page","maxPage","focusTop","requestAnimationFrame","_a","current","closest","scrollTo","left","top","offsetTop","behavior","ref","aria-label","firstPage","disabled","isCurrentPage","onClick","selectPage","role","xmlns","width","height","viewBox","xlinkHref","previousPage","hasPreviousPage","key","nextPage","hasNextPage","lastPage","getLength","bind","isHighSurrogate","codePoint","isLowSurrogate","string","byteLength","segment","charLength","curByteLength","i","charCodeAt","prevCodePoint","Facet","valueNameOverride","sortedFacets","numberOfValues","expanded","setExpanded","index","hideCount","setHideCount","firstLoad","setFirstLoad","facetList","facetListHeight","setFacetListHeight","sortedValues","setSortedValues","showMore","setShowMore","handleCollapseEvent","handleShowMore","prev","selected","values","find","sortedFilters","findIndex","resizeFacetHeight","offsetHeight","aria-expanded","aria-controls","id","data-expanded","style","Fragment","val","htmlFor","name","type","checked","isValueSelected","onChange","toggleSelect","override","obj","label","getNameOverride","showLess","BreadcrumbManager","hasBreadcrumbs","narrowResults","deselectAll","clearAll","noFiltersApplied","categoryFacetBreadcrumbs","path","breadcrumb","dispatchEvent","CustomEvent","detail","deselect","facetBreadcrumbs","InteractiveResultWithActionLink","actionName","onActivated","children","ariaLabel","href","target","download","select","beginDelayedSelect","cancelPendingSelect","useResultActionInteractiveResult","onContextMenu","e","onMouseUp","onMouseDown","onTouchStart","onTouchEnd","InteractiveResultWithActionButton","dataDocName","dataDocTech","dataDocType","dataDocUrl","data-doc-name","data-doc-tech","data-doc-type","data-doc-url","DocumentListFile","addedToCart","setAddedToCart","addToCartAnalytics","setAddToCartAnalytics","querySelectorAll","btn","classList","remove","docsInCart","indexInArray","_on","getDocsInCart","localStorage","getItem","docInCartExists","$obj","$i","docName","docType","savePDF","url","blobdata","pdfname","split","pop","appendChild","blob","File","linkurl","URL","createObjectURL","click","revokeObjectURL","docUrl","preventDefault","currentTarget","fetch","headers","then","r","addToCart","docTech","data","splice","setItem","_$","documentRemoved","push","documentAdded","Event","previousElementSibling","focus","blur","copyToClipboard","el","navigator","clipboard","writeText","catch","console","log","add","timer","dataPdf","copyToClipboardFeedbackMessage","ResultActionAnalytics","_","payload","this","pendingAction","actionCause","customData","__spreadProps","__spreadValues","resultAction","newPendingAction","ResultActionAnalyticsContext","createContext","ResultActionAnalyticsProvider","Provider","resultActionAnalytics","useContext","interactiveResult","useMemo","buildInteractiveResult","updatePendingAction","useCallback","criteriaGlobal","sortRelevance","buildRelevanceSortCriterion","sortAlphaAsc","buildFieldSortCriterion","SortOrder","Ascending","sortAlphaDesc","Descending","criteriaDocuments"],"mappings":"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","file":"4.a5d255fdc62e6d450f8f.js?v=e0a7ffb1e6c4284fdbbb","sourcesContent":["// /**\n// * Checks browser is running on a native mobile device\n// */\nexport const isMobileDevice = () => {\n const userAgent = navigator.userAgent || navigator.vendor || window.opera;\n\n return (\n /windows phone/i.test(userAgent) ||\n /android/i.test(userAgent) ||\n (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream)\n );\n};\n\n// /**\n// * Checks iOS user agent\n// */\nexport const iOS = () => {\n return (\n [\n 'iPad Simulator',\n 'iPhone Simulator',\n 'iPod Simulator',\n 'iPad',\n 'iPhone',\n 'iPod'\n ].includes(navigator.platform) ||\n (navigator.userAgent.includes('Mac') && 'ontouchend' in document)\n );\n};\n\n// /**\n// * Returns if media query matches mobile\n// */\nexport const isMobile = () => {\n return window.matchMedia('(max-width: 767px)').matches;\n};\n\n// /**\n// * Returns if media query matches tabletLandscape\n// */\nexport const isTabletLandscape = () => {\n return window.matchMedia('(max-width: 1023px)').matches;\n};\n\n// /**\n// * Returns the browser's scrollbar width\n// */\nexport const getScrollbarWidth = () => {\n return window.innerWidth - document.documentElement.clientWidth;\n};\n\n// /**\n// * Checks if an element is focusable\n// *\n// * @param {Object} el - HTML element you want to check if it's focusable\n// */\nexport const isFocusable = el => {\n if (\n el.tabIndex > 0 ||\n (el.tabIndex === 0 && el.getAttribute('tabIndex') !== null)\n ) {\n return true;\n }\n\n if (el.disabled) {\n return false;\n }\n\n /* eslint-disable indent */\n switch (el.nodeName) {\n case 'A':\n return !!el.href && el.rel !== 'ignore';\n case 'INPUT':\n return el.type !== 'hidden' && el.type !== 'file';\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n default:\n return false;\n }\n /* eslint-enable indent */\n};\n\n// /**\n// * FOCUSABLE ELEMENTS\n// */\nexport const focusableElements = [\n '[contenteditable]',\n '[tabindex]:not([tabindex^=\"-\"])',\n 'a[href]',\n 'area[href]',\n 'button:not([disabled]):not([aria-hidden])',\n 'embed',\n 'iframe',\n 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])',\n 'object',\n 'select:not([disabled]):not([aria-hidden])',\n 'textarea:not([disabled]):not([aria-hidden])'\n];\n\n// * Check if an element is outside the viewport\n// */\nexport const isOutOfViewport = elem => {\n // Get element's bounding\n const bounding = elem.getBoundingClientRect();\n\n // Check if it's out of the viewport on each side\n const out = {};\n out.top = bounding.top < 0;\n out.left = bounding.left < 0;\n out.bottom =\n bounding.bottom >\n (window.innerHeight || document.documentElement.clientHeight);\n out.right =\n bounding.right >\n (window.innerWidth || document.documentElement.clientWidth);\n out.any = out.top || out.left || out.bottom || out.right;\n out.all = out.top && out.left && out.bottom && out.right;\n\n return out;\n};\n\nexport const sameOrigin = (uri1, uri2 = false) => {\n if (uri1[0] === '/') return true;\n if (uri1[0] === '/' && uri2[0] === '/') return true;\n if (!uri2) uri2 = window.location.href;\n\n uri1 = new URL(uri1);\n uri2 = new URL(uri2);\n\n const host1 = uri1.hostname.split('www.')[1];\n const host2 = uri2.hostname.split('www.')[2];\n\n if (host1 !== host2) return false;\n if (uri1.port !== uri2.port) return false;\n\n return true;\n};\n\n// * Check if child is a descendant of parent\n// */\nexport const isDescendant = (parent, child) => {\n let node = child.parentNode;\n\n while(node) {\n if (node === parent) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n};\n\n// * Decode HTML entities\n// */\nexport const decodeEntity = str => {\n const ta = document.createElement('textarea');\n ta.innerHTML = str;\n return ta.value;\n};\n\n// * Returns a sanitized string to safely populate id parameters in HTML tags\n// */\nexport const getSafeId = str => {\n //return str.replace(/\\W/g, '_');\n return str;\n};\n\n// * Returns a random integer between min (inclusive) and max (inclusive).\n// */\nexport const getRandomInt = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\n\nexport const sortFiltersBySitecore = (\n unsortedFilters,\n sitecoreFilters = []\n) => {\n const filtersInSitecore = unsortedFilters.filter(\n facet => sitecoreFilters.indexOf(facet.value) > -1\n );\n\n const remainingFilters = unsortedFilters.filter(\n facet => sitecoreFilters.indexOf(facet.value) === -1\n );\n\n const sortRemainingFilters = remainingFilters.sort((a, b) => {\n if (a.value.toLowerCase() > b.value.toLowerCase()) {\n return 1;\n }\n return -1;\n });\n\n const filtersInSitecoreOrdered = filtersInSitecore.sort(\n (a, b) =>\n sitecoreFilters.indexOf(a.value) - sitecoreFilters.indexOf(b.value)\n );\n\n return [...filtersInSitecoreOrdered, ...sortRemainingFilters];\n};\n\nexport const BREAKPOINTS = Object.freeze({\n mobile: 361,\n tablet: 769,\n tabletLandscape: 1025,\n desktop: 1281,\n moduleMax: 1251,\n wide: 1601\n});\n\nexport const debounce = (callback, wait) => {\n let timerId;\n return (...args) => {\n clearTimeout(timerId);\n timerId = setTimeout(() => {\n callback(...args);\n }, wait);\n };\n};\n","/* eslint-disable no-unused-vars */\nimport {\n buildSearchEngine,\n getSampleSearchEngineConfiguration\n} from '@coveo/headless';\n\nconst wrapper =\n document.getElementsByClassName('coveo-search-results__main-wrapper')[0] ||\n document.getElementsByClassName('coveo-search-results__global-search-box')[0];\n\nconst { dataset } = wrapper;\n\nconst coveoConfig = JSON.parse(dataset.coveo);\n\nconst originLevel3 = document.referrer || 'undefined';\n\nexport const config = {\n organizationId: coveoConfig.OrganizationId,\n accessToken: coveoConfig.ApiKey,\n redirectionUrl: dataset.resultsPage,\n search: {\n preprocessSearchResponseMiddleware: response => {\n response.body.results.forEach(result => result);\n return response;\n },\n preprocessFacetSearchResponseMiddleware: response => response,\n preprocessQuerySuggestResponseMiddleware: response => response\n },\n preprocessRequest: (request, clientOrigin) => {\n if (clientOrigin === 'searchApiFetch') {\n const body = JSON.parse(request.body);\n // E.g., modify facet requests\n // body.facets = [...];\n request.body = JSON.stringify(body);\n }\n\n if (clientOrigin === 'analyticsFetch') {\n // E.g., send data to a third party\n }\n },\n analytics: {\n originLevel3\n }\n};\n\nexport const headlessEngine = buildSearchEngine({\n configuration: config\n});\n\nexport const headlessSearchEngine = buildSearchEngine({\n configuration: config\n});\n","import {\n buildSearchBox,\n buildResultList,\n buildResultsPerPage,\n buildPager,\n buildBreadcrumbManager,\n buildQuerySummary,\n buildDateFilter,\n buildDidYouMean,\n buildSort\n} from '@coveo/headless';\nimport { headlessEngine } from '../engine';\n\nconst { dataset } =\n document.getElementsByClassName('coveo-search-results__main-wrapper')[0] ||\n document.getElementsByClassName('coveo-search-results__global-search-box')[0];\n\nexport const maxResultsPerPage = dataset.resultsPerPage\n ? JSON.parse(dataset.resultsPerPage)\n : 10;\nexport const fieldsToInclude = dataset.searchFields\n ? JSON.parse(dataset.searchFields)\n : '';\n\n/*\n Usage:\n import * as Controllers from '../../coveo/controllers/controllers';\n\n Then, in the component:\n*/\n\nexport const searchBox = buildSearchBox(headlessEngine, {\n options: {\n highlightOptions: {\n notMatchDelimiters: {\n open: '',\n close: ''\n },\n correctionDelimiters: {\n open: '',\n close: ''\n }\n }\n }\n});\n\nexport const resultList = buildResultList(headlessEngine, {\n options: {\n fieldsToInclude\n }\n});\n\nexport const sortController = buildSort(headlessEngine, {});\n\nexport const facetBreadcrumb = buildBreadcrumbManager(headlessEngine);\n\nexport const resultsPerPage = buildResultsPerPage(headlessEngine, {\n initialState: { numberOfResults: maxResultsPerPage }\n});\n\n/*\n Usage:\n \n*/\nexport const dateFilter = buildDateFilter(headlessEngine, {\n options: {\n field: 'date'\n }\n});\n\nexport const querySummary = buildQuerySummary(headlessEngine);\n\nexport const pager = buildPager(headlessEngine, {\n options: { numberOfPages: 3 }\n});\n\nexport const didYouMean = buildDidYouMean(headlessEngine);\n","import { buildSearchStatus, buildUrlManager } from '@coveo/headless';\n\n/**\n * Search parameters, defined in the url's hash, should not be restored until all components are registered.\n *\n * Additionally, a search should not be executed until search parameters are restored.\n *\n * @param engine - A headless search engine instance.\n * @returns An unsubscribe function to remove attached event listeners.\n */\n\nexport function bindUrlManager(engine) {\n const fragment = window.location.hash.slice(1);\n const urlManager = buildUrlManager(engine, {\n initialState: { fragment }\n });\n\n const searchStatus = buildSearchStatus(engine);\n\n const onHashChange = () => {\n const fragment = window.location.hash.slice(1);\n urlManager.synchronize(fragment);\n };\n\n window.addEventListener('hashchange', onHashChange);\n const unsubscribeManager = urlManager.subscribe(() => {\n const hash = `#${urlManager.state.fragment}`;\n if (!searchStatus.state.firstSearchExecuted) {\n history.replaceState(null, document.title, hash);\n\n return;\n }\n\n history.pushState(null, document.title, hash);\n });\n\n return () => {\n window.removeEventListener('hashchange', onHashChange);\n unsubscribeManager();\n };\n}\n","import React, { useEffect, useState } from 'react';\n\nexport const ResultList = props => {\n const { controller, resultTemplatesManager } = props;\n const [state, setState] = useState(controller.state);\n const [isLoading, setIsLoading] = useState(true);\n const additionalClasses = props.additionalClasses || '';\n\n const { dataset } = document.getElementsByClassName(\n 'coveo-search-results__main-wrapper'\n )[0];\n\n const labels = JSON.parse(dataset.localization);\n\n useEffect(() => {\n const subscription = controller.subscribe(() => {\n setState(controller.state);\n setIsLoading(false);\n });\n }, [controller]);\n\n if (isLoading && state.results.length === 0) {\n return (\n \n );\n }\n\n\n if (state.firstSearchExecuted) {\n if (!state.results.length) {\n return (\n \n );\n }\n }\n\n return (\n
\n
    \n {state.results.map(result => {\n const template = resultTemplatesManager.selectTemplate(result);\n\n if (!template)\n throw new Error(`No result template provided for ${result.title}.`);\n\n return template(result);\n })}\n
\n
\n );\n};\n","/*jshint node:true*/\n'use strict';\n\n/**\n * Replaces characters in strings that are illegal/unsafe for filenames.\n * Unsafe characters are either removed or replaced by a substitute set\n * in the optional `options` object.\n *\n * Illegal Characters on Various Operating Systems\n * / ? < > \\ : * | \"\n * https://kb.acronis.com/content/39790\n *\n * Unicode Control codes\n * C0 0x00-0x1f & C1 (0x80-0x9f)\n * http://en.wikipedia.org/wiki/C0_and_C1_control_codes\n *\n * Reserved filenames on Unix-based systems (\".\", \"..\")\n * Reserved filenames in Windows (\"CON\", \"PRN\", \"AUX\", \"NUL\", \"COM1\",\n * \"COM2\", \"COM3\", \"COM4\", \"COM5\", \"COM6\", \"COM7\", \"COM8\", \"COM9\",\n * \"LPT1\", \"LPT2\", \"LPT3\", \"LPT4\", \"LPT5\", \"LPT6\", \"LPT7\", \"LPT8\", and\n * \"LPT9\") case-insesitively and with or without filename extensions.\n *\n * Capped at 255 characters in length.\n * http://unix.stackexchange.com/questions/32795/what-is-the-maximum-allowed-filename-and-folder-size-with-ecryptfs\n *\n * @param {String} input Original filename\n * @param {Object} options {replacement: String | Function }\n * @return {String} Sanitized filename\n */\n\nvar truncate = require(\"truncate-utf8-bytes\");\n\nvar illegalRe = /[\\/\\?<>\\\\:\\*\\|\"]/g;\nvar controlRe = /[\\x00-\\x1f\\x80-\\x9f]/g;\nvar reservedRe = /^\\.+$/;\nvar windowsReservedRe = /^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\\..*)?$/i;\nvar windowsTrailingRe = /[\\. ]+$/;\n\nfunction sanitize(input, replacement) {\n if (typeof input !== 'string') {\n throw new Error('Input must be string');\n }\n var sanitized = input\n .replace(illegalRe, replacement)\n .replace(controlRe, replacement)\n .replace(reservedRe, replacement)\n .replace(windowsReservedRe, replacement)\n .replace(windowsTrailingRe, replacement);\n return truncate(sanitized, 255);\n}\n\nmodule.exports = function (input, options) {\n var replacement = (options && options.replacement) || '';\n var output = sanitize(input, replacement);\n if (replacement === '') {\n return output;\n }\n return sanitize(output, '');\n};\n","import React, { useEffect, useState, useRef } from 'react';\n\nexport const Pager = props => {\n const { controller } = props;\n const { labels } = props;\n const [state, setState] = useState(controller.state);\n const pagerWrapper = useRef(null);\n\n useEffect(\n () => controller.subscribe(() => setState(controller.state)),\n [controller]\n );\n\n state.currentPages.filter(page => page > 0 && page < state.maxPage);\n\n if (state.maxPage < 1) {\n return;\n }\n\n const focusTop = () => {\n window.requestAnimationFrame(() => {\n const parent = pagerWrapper.current?.closest(\n '.coveo-search-results__main-wrapper'\n );\n\n window.scrollTo({ left: 0, top: parent?.offsetTop, behavior: 'smooth' });\n });\n };\n\n if (state.maxPage < 6) {\n return (\n
    \n
  1. \n {\n controller.selectPage(1);\n focusTop();\n }}\n >\n \n \n \n \n \n \n \n
  2. \n
  3. \n {\n controller.previousPage();\n focusTop();\n }}\n >\n {\n \n \n \n }\n \n
  4. \n {state.currentPages.map(page => (\n
  5. \n {\n controller.selectPage(page);\n focusTop();\n }}\n >\n {page}\n \n
  6. \n ))}\n
  7. \n {\n controller.nextPage();\n focusTop();\n }}\n >\n {\n \n \n \n }\n \n
  8. \n
  9. \n {\n controller.selectPage(state.maxPage);\n focusTop();\n }}\n >\n \n \n \n \n \n \n \n
  10. \n
\n );\n }\n\n return (\n
    \n
  1. \n {\n controller.selectPage(1);\n focusTop();\n }}\n >\n \n \n \n \n \n \n \n
  2. \n
  3. \n {\n controller.previousPage();\n focusTop();\n }}\n >\n {\n \n \n \n }\n \n
  4. \n
  5. \n {\n controller.selectPage(1);\n focusTop();\n }}\n >\n {'1'}\n \n
  6. \n {state.currentPages[0] > 2 && (\n
  7. \n \n
  8. \n )}\n {state.currentPages[state.currentPages.length - 1] >\n state.maxPage - 1 && (\n
  9. \n {\n controller.selectPage(state.maxPage - 3);\n focusTop();\n }}\n >\n {state.maxPage - 3}\n \n
  10. \n )}\n {state.currentPages\n .filter(page => page > 1 && page < state.maxPage)\n .map(page => (\n
  11. \n {\n controller.selectPage(page);\n focusTop();\n }}\n >\n {page}\n \n
  12. \n ))}\n {state.currentPages[0] < 2 && (\n
  13. \n {\n controller.selectPage(4);\n focusTop();\n }}\n >\n 4\n \n
  14. \n )}\n {state.currentPages[state.currentPages.length - 1] <\n state.maxPage - 1 && (\n
  15. \n \n
  16. \n )}\n
  17. \n {\n controller.selectPage(state.maxPage);\n focusTop();\n }}\n >\n {state.maxPage}\n \n
  18. \n
  19. \n {\n controller.nextPage();\n focusTop();\n }}\n >\n {\n \n \n \n }\n \n
  20. \n
  21. \n {\n controller.selectPage(state.maxPage);\n focusTop();\n }}\n >\n \n \n \n \n \n \n \n
  22. \n
\n );\n};\n","'use strict';\n\nvar truncate = require(\"./lib/truncate\");\nvar getLength = require(\"utf8-byte-length/browser\");\nmodule.exports = truncate.bind(null, getLength);\n","'use strict';\n\nfunction isHighSurrogate(codePoint) {\n return codePoint >= 0xd800 && codePoint <= 0xdbff;\n}\n\nfunction isLowSurrogate(codePoint) {\n return codePoint >= 0xdc00 && codePoint <= 0xdfff;\n}\n\n// Truncate string by size in bytes\nmodule.exports = function truncate(getLength, string, byteLength) {\n if (typeof string !== \"string\") {\n throw new Error(\"Input must be string\");\n }\n\n var charLength = string.length;\n var curByteLength = 0;\n var codePoint;\n var segment;\n\n for (var i = 0; i < charLength; i += 1) {\n codePoint = string.charCodeAt(i);\n segment = string[i];\n\n if (isHighSurrogate(codePoint) && isLowSurrogate(string.charCodeAt(i + 1))) {\n i += 1;\n segment += string[i];\n }\n\n curByteLength += getLength(segment);\n\n if (curByteLength === byteLength) {\n return string.slice(0, i + 1);\n }\n else if (curByteLength > byteLength) {\n return string.slice(0, i - segment.length + 1);\n }\n }\n\n return string;\n};\n\n","'use strict';\n\nfunction isHighSurrogate(codePoint) {\n return codePoint >= 0xd800 && codePoint <= 0xdbff;\n}\n\nfunction isLowSurrogate(codePoint) {\n return codePoint >= 0xdc00 && codePoint <= 0xdfff;\n}\n\n// Truncate string by size in bytes\nmodule.exports = function getByteLength(string) {\n if (typeof string !== \"string\") {\n throw new Error(\"Input must be string\");\n }\n\n var charLength = string.length;\n var byteLength = 0;\n var codePoint = null;\n var prevCodePoint = null;\n for (var i = 0; i < charLength; i++) {\n codePoint = string.charCodeAt(i);\n // handle 4-byte non-BMP chars\n // low surrogate\n if (isLowSurrogate(codePoint)) {\n // when parsing previous hi-surrogate, 3 is added to byteLength\n if (prevCodePoint != null && isHighSurrogate(prevCodePoint)) {\n byteLength += 1;\n }\n else {\n byteLength += 3;\n }\n }\n else if (codePoint <= 0x7f ) {\n byteLength += 1;\n }\n else if (codePoint >= 0x80 && codePoint <= 0x7ff) {\n byteLength += 2;\n }\n else if (codePoint >= 0x800 && codePoint <= 0xffff) {\n byteLength += 3;\n }\n prevCodePoint = codePoint;\n }\n\n return byteLength;\n};\n","import React, { useEffect, useState, useRef } from 'react';\nimport { sortFiltersBySitecore } from '../../../helpers';\n\nexport const Facet = props => {\n const { controller } = props;\n const { labels } = props;\n const { valueNameOverride } = props;\n const { sortedFacets, numberOfValues = 999 } = props;\n const [state, setState] = useState(controller.state);\n const [expanded, setExpanded] = useState(props.index === 0 ? true : false);\n const [hideCount, setHideCount] = useState(true);\n const [firstLoad, setFirstLoad] = useState(true);\n const facetList = useRef(null);\n const [facetListHeight, setFacetListHeight] = useState(0);\n const [sortedValues, setSortedValues] = useState([]);\n const [showMore, setShowMore] = useState(null);\n\n const handleCollapseEvent = () => {\n setExpanded(false);\n };\n\n const handleShowMore = () => {\n setShowMore(prev => !prev);\n };\n\n const getNameOverride = name => {\n const override = valueNameOverride.filter(obj => {\n return obj.value === name;\n });\n return override.length ? override[0].label : name;\n };\n\n useEffect(() => {\n controller.subscribe(() => setState(controller.state));\n }, [controller]);\n\n useEffect(() => {\n const selected = state.values.find(value => value.state === 'selected');\n\n if (state?.values?.length > 0) {\n const sortedFilters = sortFiltersBySitecore(state.values, sortedFacets);\n\n setSortedValues(sortedFilters);\n\n if (firstLoad) {\n setFirstLoad(false);\n if (state.values.length > numberOfValues) {\n setShowMore(true);\n }\n if (selected) {\n setExpanded(true);\n\n if (\n sortedFilters.findIndex(filter => filter.value === selected.value) >\n numberOfValues\n ) {\n setShowMore(false);\n }\n }\n }\n }\n\n if (!firstLoad) {\n if (state.values.length <= numberOfValues) {\n setShowMore(null);\n } else {\n setShowMore(true);\n }\n }\n }, [state.values.length, expanded]);\n\n useEffect(() => {\n if (sortedValues.length > 0) {\n if (facetList.current && facetListHeight !== facetList.current.height) {\n resizeFacetHeight();\n }\n }\n }, [sortedValues, showMore]);\n\n const resizeFacetHeight = () => {\n setFacetListHeight(facetList.current.offsetHeight);\n };\n\n useEffect(() => {\n window.addEventListener('coveoFacet.collapseAll', handleCollapseEvent);\n window.addEventListener('resize', resizeFacetHeight);\n\n window.addEventListener('clickontab', resizeFacetHeight);\n return () => {\n window.removeEventListener('coveoFacet.collapseAll');\n window.removeEventListener('resize', resizeFacetHeight);\n\n window.removeEventListener('clickontab', resizeFacetHeight);\n };\n }, []);\n\n if (!state.values.length) {\n return;\n }\n\n return (\n
\n \n {\n setExpanded(!expanded);\n }}\n >\n {expanded === true ? (\n \n \n \n ) : (\n \n \n \n )}\n {props.title}\n \n \n \n
\n
\n
    \n {sortedValues.map((value, index) => (\n \n {index >= numberOfValues && showMore ? null : (\n <>\n {state?.values.find(val => val.value === value.value) ? (\n
  • \n
    \n \n val.value === value.value\n )\n )}\n onChange={() =>\n controller.toggleSelect(\n state?.values.find(\n val => val.value === value.value\n )\n )\n }\n disabled={state.isLoading}\n />\n \n \n \n \n
    \n {valueNameOverride ? (\n \n {getNameOverride(value.value)}\n \n ) : (\n {value.value}\n )}\n \n
\n {!hideCount && (\n \n ({value.numberOfResults})\n \n )}\n \n ) : null}\n \n )}\n \n ))}\n \n {showMore !== null && (\n
\n {showMore && (\n \n {labels.showMore}\n \n )}\n {!showMore && (\n \n {labels.showLess}\n \n )}\n
\n )}\n
\n
\n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\n\nexport const BreadcrumbManager = props => {\n const { controller } = props;\n const { labels } = props;\n const { valueNameOverride } = props;\n const [state, setState] = useState(controller.state);\n\n useEffect(() => controller.subscribe(() => setState(controller.state)), []);\n\n const noFiltersAppliedBox = () => {\n return (\n
\n
\n

\n {labels.narrowResults}\n

\n \n {labels.clearAll}\n \n
\n
\n
\n {labels.noFiltersApplied}\n
\n
\n
\n );\n };\n\n if (!state?.hasBreadcrumbs) {\n return noFiltersAppliedBox();\n }\n\n const getNameOverride = name => {\n const override = valueNameOverride.filter(obj => {\n return obj.value === name;\n });\n return override.length ? override[0].label : name;\n };\n\n return (\n
\n
\n

\n {labels.narrowResults}\n

\n \n {labels.clearAll}\n \n
\n\n
\n {state.categoryFacetBreadcrumbs.length > 0 &&\n state.categoryFacetBreadcrumbs.map(facet =>\n facet.path.map(breadcrumb => (\n \n breadcrumb.path.length > 1\n ? window.dispatchEvent(\n new CustomEvent('deselectFacetTree', {\n detail: {\n value: facet.path[breadcrumb.path.length - 2]\n }\n })\n )\n : facet.deselect()\n }\n >\n \n \n \n {breadcrumb.value}\n \n ))\n )}\n {state.facetBreadcrumbs.length > 0 &&\n state.facetBreadcrumbs.map(facet =>\n facet.values.map(breadcrumb => (\n breadcrumb.deselect()}\n >\n \n \n \n {valueNameOverride?.length > 0\n ? getNameOverride(breadcrumb.value.value)\n : breadcrumb.value.value}\n \n ))\n )}\n
\n
\n );\n};\n\n// usage\n\n/**\n * ```tsx\n * const controller = buildBreadcrumbManager(engine);\n *\n * ;\n * ```\n */\n","import { useResultActionInteractiveResult } from '../context/ResultActionAnalyticsContext';\nimport React from 'react';\n\nexport const InteractiveResultWithActionLink = ({\n engine,\n result,\n actionName,\n onActivated,\n children,\n ariaLabel,\n className,\n href,\n target,\n download\n}) => {\n const { select, beginDelayedSelect, cancelPendingSelect } =\n useResultActionInteractiveResult({\n engine,\n result,\n actionName\n });\n\n return (\n {\n select();\n if (onActivated) {\n onActivated(e);\n }\n }}\n onMouseUp={select}\n onMouseDown={select}\n onTouchStart={beginDelayedSelect}\n onTouchEnd={cancelPendingSelect}\n aria-label={ariaLabel ? ariaLabel : ''}\n className={className ? className : ''}\n target={target ? target : '_self'}\n download={download ? download : false}\n >\n {children}\n \n );\n};\n\nexport const InteractiveResultWithActionButton = ({\n engine,\n result,\n actionName,\n onActivated,\n children,\n ariaLabel,\n className,\n dataDocName,\n dataDocTech,\n dataDocType,\n dataDocUrl\n}) => {\n const { select, beginDelayedSelect, cancelPendingSelect } =\n useResultActionInteractiveResult({\n engine,\n result,\n actionName\n });\n\n return (\n {\n select();\n onActivated(e);\n }}\n onMouseUp={select}\n onMouseDown={select}\n onTouchStart={beginDelayedSelect}\n onTouchEnd={cancelPendingSelect}\n aria-label={ariaLabel ? ariaLabel : ''}\n className={className ? className : ''}\n data-doc-name={dataDocName ? dataDocName : ''}\n data-doc-tech={dataDocTech ? dataDocTech : ''}\n data-doc-type={dataDocType ? dataDocType : ''}\n data-doc-url={dataDocUrl ? dataDocUrl : ''}\n >\n {children}\n \n );\n};\n","import React, { useState, useEffect } from 'react';\nimport sanitize from 'sanitize-filename';\n\nimport {\n InteractiveResultWithActionLink,\n InteractiveResultWithActionButton\n} from '../components/interactive-result-with-action';\n\nexport default function DocumentListFile(props) {\n const labels = props.labels;\n const { result, engine } = props;\n const [addedToCart, setAddedToCart] = useState(false);\n const [addToCartAnalytics, setAddToCartAnalytics] = useState(false);\n window.document.addEventListener('click', () => {\n document.querySelectorAll('.document-list__copy-btn').forEach(btn => {\n btn.classList.remove('active-copied');\n });\n });\n\n let docsInCart,\n indexInArray = -1;\n\n useEffect(() => {\n window._on('removedfromcart', getDocsInCart);\n\n return () => {\n window.removeEventListener('removedfromcart', getDocsInCart);\n };\n }, []);\n\n const getDocsInCart = () => {\n //docsInCart = Cookies.get('siplast_docs');\n docsInCart = window.localStorage.getItem('siplast_docs');\n docsInCart ? (docsInCart = JSON.parse(docsInCart)) : (docsInCart = []);\n\n const docInCartExists = docsInCart.find(($obj, $i) => {\n if ($obj.docName === props.docName && $obj.docType === props.docType) {\n indexInArray = $i;\n return true;\n }\n });\n\n setAddToCartAnalytics(!!docInCartExists);\n setAddedToCart(\n docsInCart.find(($obj, $i) => {\n if ($obj.docName === props.docName && $obj.docType === props.docType) {\n indexInArray = $i;\n return true;\n }\n })\n );\n };\n\n const handleAddToCartClick = e => {\n const data = {\n docName: props.docName,\n docTech: props.docTech,\n docType: props.docType,\n docUrl: props.docUrl\n };\n\n document.querySelectorAll('.document-list__copy-btn').forEach(btn => {\n btn.classList.remove('active-copied');\n });\n\n getDocsInCart();\n\n if (!addedToCart) {\n docsInCart.push(data);\n indexInArray = docsInCart.length - 1;\n //Cookies.set('siplast_docs', JSON.stringify(docsInCart), { expires: 36500 });\n window.localStorage.setItem('siplast_docs', JSON.stringify(docsInCart));\n document._$('#sr-notify').innerHTML = labels.documentAdded;\n } else {\n docsInCart.splice(indexInArray, 1);\n indexInArray = -1;\n //Cookies.set('siplast_docs', JSON.stringify(docsInCart), { expires: 36500 });\n window.localStorage.setItem('siplast_docs', JSON.stringify(docsInCart));\n document._$('#sr-notify').innerHTML = labels.documentRemoved;\n }\n\n setAddedToCart(!addedToCart);\n setAddToCartAnalytics(!addToCartAnalytics);\n\n window.dispatchEvent(new Event('addtocartclick'));\n\n // these buttons have three states, so we force focus and blur in\n // the previous sibling after click to improve user experience\n e.target.previousElementSibling.focus();\n e.target.previousElementSibling.blur();\n };\n\n const savePDF = (url, blobdata) => {\n document.querySelectorAll('.document-list__copy-btn').forEach(btn => {\n btn.classList.remove('active-copied');\n });\n\n const a = document.createElement('a');\n const pdfname = url.split('/').pop();\n document.body.appendChild(a);\n a.style = 'display: none';\n const blob = new File([blobdata], pdfname, { type: 'octet/stream' });\n const linkurl = window.URL.createObjectURL(blob);\n a.href = linkurl;\n a.download = pdfname;\n a.target = '_blank';\n a.click();\n window.URL.revokeObjectURL(linkurl);\n };\n\n const downloadPDF = e => {\n e.preventDefault();\n\n document.querySelectorAll('.document-list__copy-btn').forEach(btn => {\n btn.classList.remove('active-copied');\n });\n const url = e.currentTarget.href;\n fetch(url, {\n headers: { 'Cache-Control': 'no-cache' }\n })\n .then(r => {\n return r.blob();\n })\n .then(savePDF.bind(null, url));\n };\n\n const handleCopyClick = e => {\n const _e = e;\n const el = _e.target;\n const data = {\n docName: props.docName,\n docTech: props.docTech,\n docType: props.docType,\n docUrl: props.docUrl\n };\n\n navigator.clipboard\n .writeText(data.docUrl)\n .then(() => {\n // Do not interrupt or lose focus from the page during the copy, devtools breakpoints can cause problems too.\n })\n .catch(e => {\n console.log(e);\n });\n\n document.querySelectorAll('.document-list__copy-btn').forEach(btn => {\n btn.classList.remove('active-copied');\n btn.blur();\n });\n\n const add = setTimeout(() => {\n el.classList.add('active-copied');\n }, 10);\n\n el.classList.add('active-copied');\n const timer = setTimeout(() => {\n clearTimeout(timer);\n el.classList.remove('active-copied');\n el.focus();\n el.blur();\n }, 3000);\n\n e.target.previousElementSibling.focus();\n e.target.previousElementSibling.blur();\n };\n\n useEffect(getDocsInCart, []);\n\n return (\n <>\n
  • \n

    {props.docType}

    \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {props.docType === 'PDF' && (\n \n \n \n \n \n {labels.copyToClipboardFeedbackMessage}\n \n \n )}\n
    \n
  • \n \n );\n}\n","import {\n AnalyticsClientSendEventHook,\n buildInteractiveResult,\n InteractiveResult,\n Result,\n SearchEngine\n} from '@coveo/headless';\nimport { createContext, useCallback, useContext, useMemo } from 'react';\n\nexport class ResultActionAnalytics {\n pendingAction = null;\n\n getAnalyticsMiddleware() {\n return (_, payload) => {\n if (!this.pendingAction) {\n return payload;\n }\n if (payload.actionCause !== 'documentOpen') {\n return payload;\n }\n payload.customData = {\n ...payload.customData,\n resultAction: this.pendingAction\n };\n this.pendingAction = null;\n return payload;\n };\n }\n\n setPendingAction(newPendingAction) {\n this.pendingAction = newPendingAction;\n }\n}\nconst ResultActionAnalyticsContext = createContext(null);\n\nexport const ResultActionAnalyticsProvider =\n ResultActionAnalyticsContext.Provider;\n\nexport function useResultActionInteractiveResult({\n engine,\n result,\n actionName\n}) {\n const resultActionAnalytics = useContext(ResultActionAnalyticsContext);\n const interactiveResult = useMemo(\n () => buildInteractiveResult(engine, { options: { result } }),\n [engine, result]\n );\n const updatePendingAction = useCallback(() => {\n }, [resultActionAnalytics, actionName]);\n\n return {\n select() {\n updatePendingAction();\n interactiveResult.select();\n },\n beginDelayedSelect() {\n updatePendingAction();\n interactiveResult.beginDelayedSelect();\n },\n cancelPendingSelect() {\n interactiveResult.cancelPendingSelect();\n }\n };\n}\n","import {\n buildRelevanceSortCriterion,\n buildFieldSortCriterion,\n SortOrder\n} from '@coveo/headless';\n\nconst { dataset } = document.getElementsByClassName(\n 'coveo-search-results__main-wrapper'\n)[0];\n\nconst labels = JSON.parse(dataset.localization);\n\nexport const criteriaGlobal = [\n [labels.sortRelevance, buildRelevanceSortCriterion()],\n [labels.sortAlphaAsc, buildFieldSortCriterion('title', SortOrder.Ascending)],\n [labels.sortAlphaDesc, buildFieldSortCriterion('title', SortOrder.Descending)]\n];\n\nexport const criteriaDocuments = [\n [\n labels.sortAlphaAsc,\n buildFieldSortCriterion('documentname', SortOrder.Ascending)\n ],\n [\n labels.sortAlphaDesc,\n buildFieldSortCriterion('documentname', SortOrder.Descending)\n ],\n [labels.sortRelevance, buildRelevanceSortCriterion()]\n];\n"],"sourceRoot":""}