{"version":3,"sources":["webpack://CoveoForSitecore/webpack/universalModuleDefinition","webpack://CoveoForSitecore/webpack/bootstrap","webpack://CoveoForSitecore/./src/BaseModules.ts","webpack://CoveoForSitecore/./src/EventsModules.ts","webpack://CoveoForSitecore/./src/LazyEntry.ts","webpack://CoveoForSitecore/./src/base/Context.ts","webpack://CoveoForSitecore/./src/base/Initialization.ts","webpack://CoveoForSitecore/./src/base/Prebinding.ts","webpack://CoveoForSitecore/./src/base/SearchEndpoint.ts","webpack://CoveoForSitecore/./src/base/initialization/ContextInitializer.ts","webpack://CoveoForSitecore/./src/base/initialization/ElementWithContextInitializer.ts","webpack://CoveoForSitecore/./src/base/initialization/ExternalComponentInitializer.ts","webpack://CoveoForSitecore/./src/base/initialization/HostedSearchPageInitializer.ts","webpack://CoveoForSitecore/./src/base/initialization/SearchInterfaceInitializer.ts","webpack://CoveoForSitecore/./src/base/initialization/SearchboxInitializer.ts","webpack://CoveoForSitecore/./src/base/initialization/SitecoreExperienceEditor.ts","webpack://CoveoForSitecore/./src/events/ContextEvents.ts","webpack://CoveoForSitecore/./src/events/ExpressionEvents.ts","webpack://CoveoForSitecore/./src/handlers/CoveoFieldsHandler.ts","webpack://CoveoForSitecore/./src/handlers/CoveoLabelsHandler.ts","webpack://CoveoForSitecore/./src/handlers/LegacyFieldTypeResolver.ts","webpack://CoveoForSitecore/./src/handlers/SourceSpecificFieldResolver.ts","webpack://CoveoForSitecore/./src/resolvers/components/SearchInterfaceComponentInitializer.ts","webpack://CoveoForSitecore/./src/resolvers/prebinding/PrebindHelpers.ts","webpack://CoveoForSitecore/./src/resolvers/prebinding/PrebindResolver.ts","webpack://CoveoForSitecore/./src/resolvers/prebinding/prebindHelpers/AnalyticsEnabled.ts","webpack://CoveoForSitecore/./src/resolvers/prebinding/prebindHelpers/CoveoForSitecoreAnalyticsEndpoint.ts","webpack://CoveoForSitecore/./src/resolvers/prebinding/prebindHelpers/CurrentMaximumAge.ts","webpack://CoveoForSitecore/./src/resolvers/prebinding/prebindHelpers/CurrentPageName.ts","webpack://CoveoForSitecore/./src/resolvers/prebinding/prebindHelpers/FieldTranslator.ts","webpack://CoveoForSitecore/./src/resolvers/prebinding/prebindHelpers/IsAnonymous.ts","webpack://CoveoForSitecore/./src/resolvers/prebinding/prebindHelpers/ItemIdSelector.ts","webpack://CoveoForSitecore/./src/resolvers/prebinding/prebindHelpers/MainSearchInterfaceSelector.ts","webpack://CoveoForSitecore/./src/resolvers/prebinding/prebindHelpers/SortCriteria.ts","webpack://CoveoForSitecore/./src/resolvers/prebinding/prebindHelpers/UnfoldDictionaryToAttributes.ts","webpack://CoveoForSitecore/./src/resolvers/sortCriteria/SortCriteriaPreprocessor.ts","webpack://CoveoForSitecore/./src/resolvers/sortCriteria/SortCriteriaResolver.ts","webpack://CoveoForSitecore/./src/ui/analytics/LazyCoveoForSitecoreAnalytics.ts","webpack://CoveoForSitecore/./src/ui/analytics/LazyCoveoForSitecoreConfigureSearchHub.ts","webpack://CoveoForSitecore/./src/ui/analytics/LazySendAnalyticsToSitecore.ts","webpack://CoveoForSitecore/./src/ui/analytics/LazyValidateAnalyticsIncluded.ts","webpack://CoveoForSitecore/./src/ui/context/CoveoForSitecoreContext.ts","webpack://CoveoForSitecore/./src/ui/context/LazyCoveoForSitecoreBindWithUserContext.ts","webpack://CoveoForSitecore/./src/ui/distance/LazyGoogleApiPositionProvider.ts","webpack://CoveoForSitecore/./src/ui/distance/LazyNavigatorPositionProvider.ts","webpack://CoveoForSitecore/./src/ui/distance/LazyStaticPositionProvider.ts","webpack://CoveoForSitecore/./src/ui/scopes/LazyCoveoForSitecoreExpressions.ts","webpack://CoveoForSitecore/./src/ui/scopes/LazyCoveoForSitecoreExternalContent.ts","webpack://CoveoForSitecore/./src/ui/scopes/LazyCoveoForSitecoreFilterExpression.ts","webpack://CoveoForSitecore/./src/ui/scopes/LazyCoveoForSitecoreLocalExpression.ts","webpack://CoveoForSitecore/./src/ui/scopes/LazyCoveoForSitecoreRankingExpression.ts","webpack://CoveoForSitecore/./src/ui/scopes/LazyCoveoForSitecoreSyntax.ts","webpack://CoveoForSitecore/./src/utils/HTMLUtils.ts","webpack://CoveoForSitecore/./src/utils/SearchInterfaceProvider.ts","webpack://CoveoForSitecore/./src/utils/SitecorePublicPathUtils.ts","webpack://CoveoForSitecore/external {\"root\":\"Coveo\",\"commonjs\":\"coveo-search-ui\",\"commonjs2\":\"coveo-search-ui\",\"amd\":\"coveo-search-ui\"}"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;QACA;QACA;;;QAGA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;;;QAGA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;;;QAIA;QACA;QACA,yCAAyC,0+BAA0+B;QACnhC;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA;;;;;;;;;;;;;;;;AClMA,mFAAyC;AAAhC,yGAAO;AAChB,4FAA+C;AAAtC,kHAAU;AACnB,wG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","file":"CoveoForSitecore.Lazy.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"coveo-search-ui\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"coveo-search-ui\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"CoveoForSitecore\"] = factory(require(\"coveo-search-ui\"));\n\telse\n\t\troot[\"CoveoForSitecore\"] = factory(root[\"Coveo\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE_coveo_search_ui__) {\nreturn "," \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"CoveoForSitecore.Lazy\": 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + ({\"CoveoForSitecoreAnalytics\":\"CoveoForSitecoreAnalytics\",\"CoveoForSitecoreBindWithUserContext\":\"CoveoForSitecoreBindWithUserContext\",\"CoveoForSitecoreConfigureSearchHub\":\"CoveoForSitecoreConfigureSearchHub\",\"CoveoForSitecoreExpressions\":\"CoveoForSitecoreExpressions\",\"CoveoForSitecoreExternalContent\":\"CoveoForSitecoreExternalContent\",\"CoveoForSitecoreFilterExpression~CoveoForSitecoreRankingExpression\":\"CoveoForSitecoreFilterExpression~CoveoForSitecoreRankingExpression\",\"CoveoForSitecoreFilterExpression\":\"CoveoForSitecoreFilterExpression\",\"CoveoForSitecoreRankingExpression\":\"CoveoForSitecoreRankingExpression\",\"CoveoForSitecoreLocalExpression\":\"CoveoForSitecoreLocalExpression\",\"CoveoForSitecoreSyntax\":\"CoveoForSitecoreSyntax\",\"GoogleApiPositionProvider\":\"GoogleApiPositionProvider\",\"NavigatorPositionProvider\":\"NavigatorPositionProvider\",\"SendAnalyticsToSitecore\":\"SendAnalyticsToSitecore\",\"StaticPositionProvider\":\"StaticPositionProvider\",\"ValidateAnalyticsIncluded\":\"ValidateAnalyticsIncluded\"}[chunkId]||chunkId) + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\tvar error = new Error('Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')');\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonpCoveoForSitecore\"] = window[\"webpackJsonpCoveoForSitecore\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/LazyEntry.ts\");\n","export { Context } from './base/Context';\r\nexport { Prebinding } from './base/Prebinding';\r\nexport { SearchEndpoint } from './base/SearchEndpoint';\r\n","export { SitecoreContextEvents } from './events/ContextEvents';\r\nexport { SitecoreExpressionEvents } from './events/ExpressionEvents';\r\n","import { SitecorePublicPathUtils } from './utils/SitecorePublicPathUtils';\r\n__webpack_public_path__ = SitecorePublicPathUtils.getDynamicPublicPath();\r\n\r\nexport { CoveoForSitecoreContext } from './ui/context/CoveoForSitecoreContext';\r\n\r\nimport { lazyCoveoForSitecoreAnalytics } from './ui/analytics/LazyCoveoForSitecoreAnalytics';\r\nlazyCoveoForSitecoreAnalytics();\r\nimport { lazyCoveoForSitecoreConfigureSearchHub } from './ui/analytics/LazyCoveoForSitecoreConfigureSearchHub';\r\nlazyCoveoForSitecoreConfigureSearchHub();\r\nimport { lazyCoveoSendAnalyticsToSitecore } from './ui/analytics/LazySendAnalyticsToSitecore';\r\nlazyCoveoSendAnalyticsToSitecore();\r\nimport { lazyValidateAnalyticsIncluded } from './ui/analytics/LazyValidateAnalyticsIncluded';\r\nlazyValidateAnalyticsIncluded();\r\n\r\nimport { lazyCoveoForSitecoreBindWithUserContext } from './ui/context/LazyCoveoForSitecoreBindWithUserContext';\r\nlazyCoveoForSitecoreBindWithUserContext();\r\n\r\nimport { lazyCoveoForSitecoreExpressions } from './ui/scopes/LazyCoveoForSitecoreExpressions';\r\nlazyCoveoForSitecoreExpressions();\r\nimport { lazyCoveoForSitecoreSyntax } from './ui/scopes/LazyCoveoForSitecoreSyntax';\r\nlazyCoveoForSitecoreSyntax();\r\nimport { lazyCoveoForSitecoreRankingExpression } from './ui/scopes/LazyCoveoForSitecoreRankingExpression';\r\nlazyCoveoForSitecoreRankingExpression();\r\nimport { lazyCoveoForSitecoreExternalContent } from './ui/scopes/LazyCoveoForSitecoreExternalContent';\r\nlazyCoveoForSitecoreExternalContent();\r\nimport { lazyCoveoForSitecoreFilterExpression } from './ui/scopes/LazyCoveoForSitecoreFilterExpression';\r\nlazyCoveoForSitecoreFilterExpression();\r\nimport { lazyCoveoForSitecoreLocalExpression } from './ui/scopes/LazyCoveoForSitecoreLocalExpression';\r\nlazyCoveoForSitecoreLocalExpression();\r\n\r\nimport { lazyCoveoGoogleApiPositionProvider } from './ui/distance/LazyGoogleApiPositionProvider';\r\nlazyCoveoGoogleApiPositionProvider();\r\nimport { lazyCoveoNavigatorPositionProvider } from './ui/distance/LazyNavigatorPositionProvider';\r\nlazyCoveoNavigatorPositionProvider();\r\nimport { lazyCoveoStaticPositionProvider } from './ui/distance/LazyStaticPositionProvider';\r\nlazyCoveoStaticPositionProvider();\r\n\r\nexport * from './EventsModules';\r\nexport * from './BaseModules';\r\n\r\nexport * from './base/Initialization';\r\n","import { ICoveoFieldHandler } from '../handlers/CoveoFieldsHandler';\r\nimport { ICoveoLabelsHandler } from '../handlers/CoveoLabelsHandler';\r\nimport { ContextInitializer } from './initialization/ContextInitializer';\r\nimport { CoveoForSitecoreContext, ICoveoForSitecoreContextOptions } from '../ui/context/CoveoForSitecoreContext';\r\nimport { ComponentOptions } from 'coveo-search-ui';\r\n\r\nexport interface IOnContextConfiguredHandler {\r\n handle(contextElement: HTMLElement): void;\r\n}\r\n\r\nexport class Context {\r\n public static fields: ICoveoFieldHandler;\r\n public static labels: ICoveoLabelsHandler;\r\n\r\n public static element: HTMLElement;\r\n\r\n static configureContext(contextElement: HTMLElement): void {\r\n if (typeof contextElement === 'undefined' || contextElement === null) {\r\n throw Error('You must execute `configureContext` with an HTML element.');\r\n }\r\n\r\n const options: ICoveoForSitecoreContextOptions = ComponentOptions.initComponentOptions(\r\n contextElement,\r\n CoveoForSitecoreContext\r\n );\r\n this.initializeWithContextOptions(contextElement, options);\r\n }\r\n\r\n private static initializeWithContextOptions(\r\n contextElement: HTMLElement,\r\n contextOptions: ICoveoForSitecoreContextOptions\r\n ): void {\r\n const contextInitializer = new ContextInitializer();\r\n const fieldsHandler = contextInitializer.createFieldsHandler({\r\n externalFields: contextOptions.scExternalFields,\r\n sourceSpecificFields: contextOptions.scSourceSpecificFields,\r\n preferSourceSpecificFields: contextOptions.scPreferSourceSpecificFields,\r\n prefix: contextOptions.scFieldPrefix,\r\n suffix: contextOptions.scFieldSuffix,\r\n });\r\n const labels: ICoveoLabelsHandler = contextInitializer.createLabelsHandler({\r\n labels: contextOptions.scLabels,\r\n });\r\n const sourceName = contextOptions.scIndexSourceName;\r\n\r\n contextInitializer.initializePrebinding({\r\n fieldsHandler: fieldsHandler,\r\n context: contextOptions,\r\n });\r\n contextInitializer.initializeUnderscoreFieldsHelpers(fieldsHandler);\r\n contextInitializer.initializeUnderscoreLabelsHelpers(labels);\r\n contextInitializer.initializeUnderscoreContextHelpers(sourceName);\r\n contextInitializer.initializeContextElement(contextElement);\r\n\r\n this.fields = fieldsHandler;\r\n this.labels = labels;\r\n this.element = contextElement;\r\n }\r\n}\r\n","import { ExternalComponentInitializer } from './initialization/ExternalComponentInitializer';\r\nimport { SearchboxInitializer } from './initialization/SearchboxInitializer';\r\nimport { SearchInterfaceInitializer } from './initialization/SearchInterfaceInitializer';\r\nimport { ElementWithContextInitializer } from './initialization/ElementWithContextInitializer';\r\nimport { HostedSearchPageInitializer } from './initialization/HostedSearchPageInitializer';\r\n\r\nexport const searchInterfaceInitializer = new SearchInterfaceInitializer();\r\nexport const searchboxInitializer = new SearchboxInitializer();\r\nexport const externalComponentInitializer = new ExternalComponentInitializer();\r\nexport const hostedSearchPageInitializer = new HostedSearchPageInitializer();\r\n\r\nexport function initSearchInterface(searchInterfaceElement: HTMLElement): Promise<{ elem: HTMLElement }> {\r\n return searchInterfaceInitializer.initSearchInterface(searchInterfaceElement);\r\n}\r\n\r\nexport function initializeSearchInterfaceForExperienceEditor(\r\n searchInterfaceElement: HTMLElement\r\n): Promise<{ elem: HTMLElement }> {\r\n searchInterfaceInitializer.initializeExperienceEditorHooksForSearchInterface(searchInterfaceElement);\r\n return initSearchInterface(searchInterfaceElement);\r\n}\r\n\r\nexport function initSearchboxIfStandalone(\r\n searchBoxElement: HTMLElement,\r\n searchPageUri: string,\r\n options?: any\r\n): Promise {\r\n return searchboxInitializer.initSearchboxIfStandalone(searchBoxElement, searchPageUri, options);\r\n}\r\n\r\nexport function initContextOnElement(element: HTMLElement): void {\r\n ElementWithContextInitializer.initializeContextWithinElement(element);\r\n}\r\n\r\nexport function initExternalComponentsSection(element: HTMLElement): void {\r\n externalComponentInitializer.initializeExternalComponentSection(element);\r\n}\r\n\r\nexport function initExternalComponentsSectionForExperienceEditor(element: HTMLElement): void {\r\n externalComponentInitializer.initializeExperienceEditorHooksForExternalComponentsSection(element);\r\n initExternalComponentsSection(element);\r\n}\r\n\r\nexport function initHostedSearchPageInitializer(element: HTMLElement): void {\r\n hostedSearchPageInitializer.initializeSearchPage(element);\r\n}\r\n","import { IPrebindResolver, PrebindResolver, IPrebindHandler } from '../resolvers/prebinding/PrebindResolver';\r\nimport * as SortCriteriaPreprocessor from '../resolvers/sortCriteria/SortCriteriaPreprocessor';\r\n\r\nexport class Prebinding {\r\n private static processor: IPrebindResolver = new PrebindResolver();\r\n\r\n static registerPrebindHelper(helperName: string, handler: IPrebindHandler): void {\r\n this.processor.registerPrebindHelper(helperName, handler);\r\n }\r\n\r\n static getHelper(helperName: string): IPrebindHandler {\r\n return this.processor.getHelper(helperName);\r\n }\r\n\r\n static applyPrebindingOnElement(rootElement: HTMLElement): void {\r\n if (this.processor.canApplyPrebind(rootElement) && this.processor.hasNotAppliedPrebind(rootElement)) {\r\n this.processor.applyToElement(rootElement);\r\n }\r\n }\r\n\r\n static applyPreprocessingToElements(rootElement: HTMLElement) {\r\n SortCriteriaPreprocessor.adjustDOMElements(rootElement);\r\n\r\n return rootElement.querySelectorAll('*');\r\n }\r\n\r\n static applyPrebindingOnChildren(rootElement: HTMLElement): void {\r\n const processedElements = this.applyPreprocessingToElements(rootElement);\r\n\r\n this.nodeListToArray(processedElements)\r\n .map((element) => element as HTMLElement)\r\n .filter((element) => this.processor.canApplyPrebind(element))\r\n .filter((element) => this.processor.hasNotAppliedPrebind(element))\r\n .forEach((element) => this.processor.applyToElement(element));\r\n }\r\n\r\n private static nodeListToArray(elements: NodeListOf): TElementType[] {\r\n const array: TElementType[] = [];\r\n for (var i = 0, length = elements.length; i < length; i++) {\r\n array.push(elements[i]);\r\n }\r\n return array;\r\n }\r\n}\r\n","import { SearchEndpoint as CoveoSearchEndpoint } from 'coveo-search-ui';\r\n\r\nexport interface ICoveoForSitecoreEndpointOptions {\r\n restEndpointUri?: string;\r\n itemUri: string;\r\n siteName: string;\r\n}\r\n\r\nexport class SearchEndpoint {\r\n static configureSitecoreEndpoint(options: ICoveoForSitecoreEndpointOptions): void {\r\n if (typeof options === 'undefined') {\r\n throw Error(\"You must define endpoint options when calling 'configureSitecoreEndpoint'.\");\r\n }\r\n\r\n SearchEndpoint.getAccessToken().then((accessToken) => {\r\n SearchEndpoint.initializeEndPoint(options, accessToken);\r\n SearchEndpoint.dispatchInitializationEvent();\r\n });\r\n }\r\n\r\n static initializeEndPoint(options: ICoveoForSitecoreEndpointOptions, accessToken: string): void {\r\n const endpoint = SearchEndpoint.createNewEndpoint(options, accessToken);\r\n CoveoSearchEndpoint.endpoints['default'] = endpoint;\r\n }\r\n\r\n static dispatchInitializationEvent() {\r\n const customEvent = document.createEvent('CustomEvent');\r\n customEvent.initEvent('CoveoSearchEndpointInitialized', false, true);\r\n\r\n if (document.readyState !== 'loading') {\r\n document.dispatchEvent(customEvent);\r\n } else {\r\n document.addEventListener('DOMContentLoaded', () => {\r\n document.dispatchEvent(customEvent);\r\n });\r\n }\r\n }\r\n\r\n static getAccessToken() {\r\n return SearchEndpoint.fetchAccessToken()\r\n .then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n .then((data) => data.token)\r\n .catch(() => {\r\n // Returning an empty token delegates error handling of invalid access token to the Coveo Search UI.\r\n return '';\r\n });\r\n }\r\n\r\n static fetchAccessToken() {\r\n return fetch(`/coveo/rest/token?t=${Date.now()}`);\r\n }\r\n\r\n private static createNewEndpoint(\r\n options: ICoveoForSitecoreEndpointOptions,\r\n accessToken: string\r\n ): CoveoSearchEndpoint {\r\n return new CoveoSearchEndpoint({\r\n restUri: options.restEndpointUri ? `${options.restEndpointUri}/search` : '/coveo/rest/search',\r\n queryStringArguments: {\r\n sitecoreItemUri: options.itemUri,\r\n siteName: options.siteName,\r\n },\r\n accessToken: accessToken,\r\n renewAccessToken: SearchEndpoint.getAccessToken,\r\n });\r\n }\r\n}\r\n","import {\r\n ICoveoFieldHandler,\r\n IExternalFieldConfig as ILegacyExternalFieldConfig,\r\n CoveoFieldsHandler,\r\n} from '../../handlers/CoveoFieldsHandler';\r\nimport {\r\n IFieldTypeResolver,\r\n ISourceSpecificFieldConfig,\r\n IExternalFieldConfig,\r\n} from '../../handlers/IFieldTypeResolver';\r\nimport { SourceSpecificFieldResolver } from '../../handlers/SourceSpecificFieldResolver';\r\nimport { ICoveoLabelsHandler, ILabelsDictionary, CoveoLabelsHandler } from '../../handlers/CoveoLabelsHandler';\r\nimport { Prebinding } from '../Prebinding';\r\nimport { IPrebindHelperInitializationArgs } from '../../resolvers/prebinding/PrebindHelper';\r\nimport { PrebindHelpers } from '../../resolvers/prebinding/PrebindHelpers';\r\n\r\nimport { TemplateHelpers } from 'coveo-search-ui';\r\nimport { LegacyFieldTypeResolver } from '../../handlers/LegacyFieldTypeResolver';\r\n\r\nexport interface ICoveoFieldsHandlerOptions {\r\n externalFields: ILegacyExternalFieldConfig[] | IExternalFieldConfig[];\r\n sourceSpecificFields: ISourceSpecificFieldConfig[];\r\n preferSourceSpecificFields: boolean;\r\n prefix: string;\r\n suffix: string;\r\n}\r\n\r\nexport interface ICoveoLabelsHandlerOptions {\r\n labels: ILabelsDictionary;\r\n}\r\n\r\nexport class ContextInitializer {\r\n public createFieldsHandler(options: ICoveoFieldsHandlerOptions): ICoveoFieldHandler {\r\n const externalFields: ILegacyExternalFieldConfig[] | IExternalFieldConfig[] = options.externalFields || [];\r\n const sourceSpecificFields: ISourceSpecificFieldConfig[] = options.sourceSpecificFields || [];\r\n\r\n const fieldTypeResolver: IFieldTypeResolver = options.preferSourceSpecificFields\r\n ? new LegacyFieldTypeResolver(externalFields as ILegacyExternalFieldConfig[])\r\n : new SourceSpecificFieldResolver(sourceSpecificFields, externalFields);\r\n\r\n return new CoveoFieldsHandler(fieldTypeResolver, options.prefix, options.suffix);\r\n }\r\n\r\n public createLabelsHandler(options: ICoveoLabelsHandlerOptions): ICoveoLabelsHandler {\r\n const labels: ILabelsDictionary = options.labels || {};\r\n return new CoveoLabelsHandler(labels);\r\n }\r\n\r\n public initializePrebinding(args: IPrebindHelperInitializationArgs): void {\r\n PrebindHelpers.getAllPrebindHelpers().forEach((helper) => {\r\n Prebinding.registerPrebindHelper(helper.name, helper.getPrebind(args));\r\n });\r\n }\r\n\r\n public initializeUnderscoreFieldsHelpers(fieldsHandler: ICoveoFieldHandler): void {\r\n TemplateHelpers.registerTemplateHelper('coveoFieldValue', function (fieldName: string): string {\r\n return this.raw[fieldsHandler.toCoveo(fieldName)];\r\n });\r\n TemplateHelpers.registerTemplateHelper('coveoFieldName', function (fieldName: string): string {\r\n return fieldsHandler.toCoveo(fieldName);\r\n });\r\n }\r\n\r\n public initializeUnderscoreLabelsHelpers(labels: ICoveoLabelsHandler): void {\r\n TemplateHelpers.registerTemplateHelper('translateLabel', function (labelKey: string): string {\r\n return labels.translate(labelKey);\r\n });\r\n }\r\n\r\n public initializeUnderscoreContextHelpers(sourceName: string): void {\r\n TemplateHelpers.registerTemplateHelper('currentSourceName', function (): string {\r\n return sourceName;\r\n });\r\n }\r\n\r\n public initializeContextElement(contextElement: HTMLElement): void {\r\n Prebinding.applyPrebindingOnElement(contextElement);\r\n }\r\n}\r\n","import { Prebinding } from '../Prebinding';\r\nimport { Context } from '../Context';\r\nimport { cloneElementSafelyForAccessibility } from '../../utils/HTMLUtils';\r\n\r\nexport class ElementWithContextInitializer {\r\n public static initializeContextWithinElement(element: HTMLElement): void {\r\n if (!!Context.element) {\r\n element.appendChild(cloneElementSafelyForAccessibility(Context.element));\r\n }\r\n Prebinding.applyPrebindingOnElement(element);\r\n Prebinding.applyPrebindingOnChildren(element);\r\n }\r\n}\r\n","import {\r\n ISearchInterfaceComponentInitializer,\r\n getInitializerInstance,\r\n} from '../../resolvers/components/SearchInterfaceComponentInitializer';\r\nimport { ISitecoreExperienceEditor, getExperienceEditorInstance } from './SitecoreExperienceEditor';\r\nimport { SearchInterfacesProvider } from '../../utils/SearchInterfaceProvider';\r\n\r\nimport { SearchInterface, get as getCoveoComponent } from 'coveo-search-ui';\r\n\r\nexport class ExternalComponentInitializer {\r\n private searchInterfacesProvider = new SearchInterfacesProvider();\r\n\r\n constructor(\r\n private experienceEditor: ISitecoreExperienceEditor = getExperienceEditorInstance(),\r\n private searchInterfaceComponentInitializer: ISearchInterfaceComponentInitializer = getInitializerInstance()\r\n ) {}\r\n\r\n public initializeExternalComponentSection(externalComponentsSection: HTMLElement): void {\r\n const searchInterface = this.findSearchInterfaceForSection(externalComponentsSection);\r\n if (!!searchInterface) {\r\n this.searchInterfaceComponentInitializer.loadComponentsWithSearchInterfaceInitialization(\r\n searchInterface,\r\n externalComponentsSection\r\n );\r\n } else {\r\n const getAllSearchInterfaceIds = this.getAllSearchInterfaceIdsInPage();\r\n if (getAllSearchInterfaceIds.length > 0) {\r\n console.error(\r\n `Could not find the search interface element with the following ID: ${this.getSearchInterfaceId(\r\n externalComponentsSection\r\n )}. The following IDs were found: ${getAllSearchInterfaceIds.join(',')}.`,\r\n externalComponentsSection\r\n );\r\n }\r\n }\r\n }\r\n\r\n public initializeExperienceEditorHooksForExternalComponentsSection(externalComponentsSection: HTMLElement): void {\r\n const searchInterface = this.findSearchInterfaceForSection(externalComponentsSection);\r\n if (!!searchInterface) {\r\n this.experienceEditor.registerOnLoadRenderingFromUrl((callbackData) => {\r\n const component = this.experienceEditor.getComponentFromLoadRenderingFromUrlCallbackData(callbackData);\r\n\r\n if (externalComponentsSection.contains(component)) {\r\n this.searchInterfaceComponentInitializer.loadComponentsForSearchInterface(\r\n getCoveoComponent(searchInterface, SearchInterface) as SearchInterface,\r\n component\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n private findSearchInterfaceForSection(externalComponentsSection: HTMLElement): HTMLElement {\r\n const searchInterfaceId = this.getSearchInterfaceId(externalComponentsSection);\r\n const searchInterfaceElement = document.getElementById(searchInterfaceId);\r\n if (!!searchInterfaceElement) {\r\n return searchInterfaceElement;\r\n }\r\n }\r\n\r\n private getSearchInterfaceId(externalComponentsSection: HTMLElement): string {\r\n return externalComponentsSection.dataset.searchInterfaceId;\r\n }\r\n\r\n private getAllSearchInterfaceIdsInPage(): string[] {\r\n return this.searchInterfacesProvider\r\n .getSearchInterfacesInPage(['SearchInterface'])\r\n .map((element) => element.id)\r\n .filter((id) => !!id);\r\n }\r\n}\r\n","export class HostedSearchPageInitializer {\r\n private searchPageElement: HTMLElement;\r\n private searchEndpointUri: string;\r\n private analyticsEndpointUri: string;\r\n private organizationId: string;\r\n private searchHub: string;\r\n private isInExperienceEditor: boolean;\r\n\r\n private UNABLE_TO_RETRIEVE_ACCESS_TOKEN = 'Unable to retrieve access token.';\r\n\r\n public initializeSearchPage(element: HTMLElement): void {\r\n this.searchPageElement = element;\r\n this.searchEndpointUri = element.dataset.searchEndpointUri;\r\n this.analyticsEndpointUri = element.dataset.analyticsEndpointUri;\r\n this.organizationId = element.dataset.organizationId;\r\n this.searchHub = element.dataset.searchHub;\r\n this.isInExperienceEditor = element.dataset.isInExperienceEditor === 'true';\r\n\r\n this.getAccessToken = this.getAccessToken.bind(this);\r\n\r\n this.getAccessToken()\r\n .then((accessToken) => {\r\n this.initializeCoveo(element, accessToken);\r\n })\r\n .catch((err) => {\r\n if (this.isInExperienceEditor) {\r\n this.displayErrorMessageInExperienceEditor(err.message);\r\n }\r\n });\r\n }\r\n\r\n private async getAccessToken() {\r\n return this.fetchAccessToken()\r\n .then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n\r\n throw Error(this.UNABLE_TO_RETRIEVE_ACCESS_TOKEN);\r\n })\r\n .then((data) => data.token)\r\n .catch((err) => {\r\n if (this.isInExperienceEditor) {\r\n this.displayErrorMessageInExperienceEditor(err.message);\r\n }\r\n\r\n return '';\r\n });\r\n }\r\n\r\n private initializeCoveo(element: HTMLElement, accessToken: string): void {\r\n const searchPageRoot: HTMLElement = element.querySelector('.CoveoSearchInterface');\r\n\r\n if (searchPageRoot && typeof Coveo !== 'undefined') {\r\n Coveo.SearchEndpoint.endpoints['default'] = new Coveo.SearchEndpoint({\r\n restUri: `${this.searchEndpointUri}/rest/search/`,\r\n accessToken: accessToken,\r\n queryStringArguments: {\r\n organizationId: this.organizationId,\r\n },\r\n renewAccessToken: this.getAccessToken,\r\n });\r\n\r\n Coveo.Analytics.options.searchHub['defaultValue'] = this.searchHub;\r\n Coveo.Analytics.options.organization['defaultValue'] = this.organizationId;\r\n Coveo.Analytics.options.endpoint['defaultValue'] = `${this.analyticsEndpointUri}/rest/ua/`;\r\n\r\n Coveo.init(searchPageRoot);\r\n }\r\n }\r\n\r\n private async fetchAccessToken() {\r\n return await fetch(`/coveo/rest/token?t=${Date.now()}`);\r\n }\r\n\r\n private displayErrorMessageInExperienceEditor(message: string): void {\r\n const errorMessageElement = `\r\n ${message}\r\n `;\r\n\r\n this.searchPageElement.insertAdjacentHTML('afterbegin', errorMessageElement);\r\n }\r\n}\r\n","import { initContextOnElement } from '../Initialization';\r\nimport {\r\n ISearchInterfaceComponentInitializer,\r\n getInitializerInstance,\r\n} from '../../resolvers/components/SearchInterfaceComponentInitializer';\r\nimport { ISitecoreExperienceEditor, getExperienceEditorInstance } from './SitecoreExperienceEditor';\r\n\r\nimport { SearchInterface, init } from 'coveo-search-ui';\r\n\r\nexport class SearchInterfaceInitializer {\r\n constructor(\r\n private experienceEditor: ISitecoreExperienceEditor = getExperienceEditorInstance(),\r\n private searchInterfaceComponentInitializer: ISearchInterfaceComponentInitializer = getInitializerInstance()\r\n ) {}\r\n\r\n public initSearchInterface(searchInterface: HTMLElement): Promise<{ elem: HTMLElement }> {\r\n if (!this.experienceEditor.isInBackgroundRendering()) {\r\n this.experienceEditor.registerShowDebugInformationCallback();\r\n initContextOnElement(searchInterface);\r\n const searchInterfacePromise = init(searchInterface);\r\n searchInterfacePromise.then(() => {\r\n const event = document.createEvent('CustomEvent');\r\n event.initEvent('SearchInterfaceInitialized', false, true);\r\n searchInterface.dispatchEvent(event);\r\n });\r\n return searchInterfacePromise;\r\n }\r\n }\r\n\r\n public initializeExperienceEditorHooksForSearchInterface(searchInterface: HTMLElement): void {\r\n this.experienceEditor.registerOnLoadRenderingFromUrl((callbackData) => {\r\n const component = this.experienceEditor.getComponentFromLoadRenderingFromUrlCallbackData(callbackData);\r\n\r\n // Since multiple search interfaces can register event handlers, this ensures that the component is initializing for the correct search interface.\r\n if (searchInterface.contains(component)) {\r\n const searchInterfaceComponent = Coveo.get(searchInterface, Coveo.SearchInterface) as SearchInterface;\r\n this.searchInterfaceComponentInitializer.loadComponentsForSearchInterface(\r\n searchInterfaceComponent,\r\n component\r\n );\r\n }\r\n });\r\n\r\n this.experienceEditor.registerOnAfterPersonalizationChanged((element) => {\r\n if (searchInterface.contains(element)) {\r\n const searchInterfaceComponent = Coveo.get(searchInterface, Coveo.SearchInterface) as SearchInterface;\r\n this.searchInterfaceComponentInitializer.loadComponentsForSearchInterface(\r\n searchInterfaceComponent,\r\n element\r\n );\r\n }\r\n });\r\n\r\n this.experienceEditor.registerBeforeUnloadingChrome((element) => {\r\n if (searchInterface.contains(element)) {\r\n const searchInterfaceComponent = Coveo.get(searchInterface, Coveo.SearchInterface) as SearchInterface;\r\n this.searchInterfaceComponentInitializer.tryUnloadComponentsForSearchInterface(\r\n searchInterfaceComponent,\r\n element\r\n );\r\n }\r\n });\r\n }\r\n}\r\n","import { SearchInterfacesProvider } from '../../utils/SearchInterfaceProvider';\r\nimport { ElementWithContextInitializer } from './ElementWithContextInitializer';\r\n\r\nimport { $$, Dom, get as getCoveoComponents, initSearchbox, InitializationEvents } from 'coveo-search-ui';\r\n\r\nexport class SearchboxInitializer {\r\n private searchInterfacesProvider = new SearchInterfacesProvider();\r\n\r\n async initSearchboxIfStandalone(\r\n searchboxElement: HTMLElement,\r\n searchPageUri?: string,\r\n options?: any\r\n ): Promise {\r\n const searchInterfaces = this.searchInterfacesProvider.getSearchInterfacesInPage([\r\n 'Recommendation',\r\n 'SearchInterface',\r\n ]);\r\n await this.waitForSearchInterfacesInitialization(searchInterfaces);\r\n if (this.searchboxElementIsNotInitialized(searchboxElement)) {\r\n if (!!searchPageUri) {\r\n ElementWithContextInitializer.initializeContextWithinElement(searchboxElement.parentElement);\r\n // coveo-search-ui doesn't like an initSearchbox directly on the searchbox.\r\n initSearchbox(searchboxElement.parentElement, searchPageUri, options);\r\n } else {\r\n console.warn(\r\n `The search box is not included in any search interface and the \"searchPageUri\" parameters is not specified. Consider using a Global Searchbox instead.`,\r\n searchboxElement\r\n );\r\n }\r\n }\r\n }\r\n\r\n private searchboxElementIsNotInitialized(searchBoxElement: HTMLElement): boolean {\r\n return typeof getCoveoComponents(searchBoxElement, Coveo.Searchbox) === 'undefined';\r\n }\r\n\r\n private async waitForSearchInterfacesInitialization(searchInterfaces: HTMLElement[]): Promise {\r\n await Promise.all(this.getAllSearchInterfacesAfterComponentInitialization(searchInterfaces));\r\n }\r\n\r\n private getAllSearchInterfacesAfterComponentInitialization(searchInterfaces: HTMLElement[]): Promise[] {\r\n return searchInterfaces\r\n .map((searchInterface) => $$(searchInterface))\r\n .map((searchInterface) => this.waitForSearchInterfaceInitialization(searchInterface));\r\n }\r\n\r\n private waitForSearchInterfaceInitialization(searchInterface: Dom): Promise {\r\n return new Promise((resolve, reject) => {\r\n if (searchInterface.hasClass('coveo-after-initialization')) {\r\n return resolve();\r\n }\r\n\r\n searchInterface.on(InitializationEvents.afterComponentsInitialization, () => resolve());\r\n });\r\n }\r\n}\r\n","import { nodeListToArray } from '../../utils/HTMLUtils';\r\n\r\ndeclare const Sitecore: any;\r\n\r\nexport interface IRenderingElement {\r\n opening: Array;\r\n}\r\n\r\nexport type IAfterFrameLoadedCallback = (callbackData: IRenderingElement) => void;\r\nexport type IAfterPersonalizationChangedCallback = (element: HTMLElement) => void;\r\nexport type IBeforeUnloadingChromeCallback = (element: HTMLElement) => void;\r\n\r\nexport class SitecoreExperienceEditor implements ISitecoreExperienceEditor {\r\n public static isInBackgroundRenderingParameterName = 'sc_phk';\r\n\r\n private isAfterFrameLoadedOverriden = false;\r\n private isAfterPersonalizationChangedOverriden = false;\r\n private isBeforeUnloadingChromeOverriden = false;\r\n\r\n private onAfterFrameLoadedCallbacks: IAfterFrameLoadedCallback[] = [];\r\n private onAfterPersonalizationChanged: IAfterPersonalizationChangedCallback[] = [];\r\n private onBeforeUnloadingChrome: IBeforeUnloadingChromeCallback[] = [];\r\n\r\n public registerOnLoadRenderingFromUrl(onAfterFrameLoadedCallback: (callbackData: IRenderingElement) => void): void {\r\n this.tryOverrideSitecoreLoadRenderingFromUrl();\r\n this.onAfterFrameLoadedCallbacks.push(onAfterFrameLoadedCallback);\r\n }\r\n\r\n public registerBeforeUnloadingChrome(onBeforeUnloadingChromeCallback: IBeforeUnloadingChromeCallback): void {\r\n this.tryOverrideOnUnloadingChrome();\r\n this.onBeforeUnloadingChrome.push(onBeforeUnloadingChromeCallback);\r\n }\r\n\r\n public registerOnAfterPersonalizationChanged(\r\n onAfterPersonalizationChanged: IAfterPersonalizationChangedCallback\r\n ): void {\r\n this.tryOverrideSitecoreChromeTypesRenderingChangeCondition();\r\n this.onAfterPersonalizationChanged.push(onAfterPersonalizationChanged);\r\n }\r\n\r\n public isInBackgroundRendering(): boolean {\r\n return window.location.search.indexOf(SitecoreExperienceEditor.isInBackgroundRenderingParameterName) !== -1;\r\n }\r\n\r\n public getComponentFromLoadRenderingFromUrlCallbackData(callbackData: IRenderingElement): HTMLElement {\r\n var chromeRendering = document.getElementById(callbackData.opening[0].id);\r\n return chromeRendering.nextElementSibling as HTMLElement;\r\n }\r\n\r\n private tryOverrideSitecoreLoadRenderingFromUrl(): void {\r\n if (!this.isAfterFrameLoadedOverriden && typeof Sitecore !== 'undefined') {\r\n this.overrideSitecoreLoadRenderingFromUrl();\r\n }\r\n }\r\n\r\n private overrideSitecoreLoadRenderingFromUrl(): void {\r\n const originalLoad = Sitecore.PageModes.ChromeTypes.Placeholder.prototype.insertRendering;\r\n const onAfterFrameLoadedCallback = (callbackData: IRenderingElement) => {\r\n this.onAfterFrameLoadedCallbacks.forEach((callback) => callback(callbackData));\r\n };\r\n Sitecore.PageModes.ChromeTypes.Placeholder.prototype.insertRendering = function (\r\n frameLoadedCallback: IRenderingElement\r\n ): void {\r\n originalLoad.call(this, frameLoadedCallback);\r\n onAfterFrameLoadedCallback(frameLoadedCallback);\r\n };\r\n this.isAfterFrameLoadedOverriden = true;\r\n }\r\n\r\n private tryOverrideOnUnloadingChrome(): void {\r\n if (!this.isBeforeUnloadingChromeOverriden && typeof Sitecore !== 'undefined') {\r\n this.overrideSitecoreChromeChangeCondition();\r\n this.isBeforeUnloadingChromeOverriden = true;\r\n }\r\n }\r\n\r\n private overrideSitecoreChromeChangeCondition(): void {\r\n const originalChangeCondition: Function = Sitecore.PageModes.ChromeTypes.Rendering.prototype.changeCondition;\r\n const onBeforeChangeCondition = (changedElement: HTMLElement) => {\r\n this.onBeforeUnloadingChrome.forEach((callback) => callback(changedElement));\r\n };\r\n Sitecore.PageModes.ChromeTypes.Rendering.prototype.changeCondition = function (\r\n id,\r\n sender,\r\n preserveCacheUpdating\r\n ): void {\r\n onBeforeChangeCondition(this.chrome.element[0]);\r\n originalChangeCondition.apply(this, arguments);\r\n };\r\n }\r\n\r\n private tryOverrideSitecoreChromeTypesRenderingChangeCondition(): void {\r\n if (!this.isAfterPersonalizationChangedOverriden && typeof Sitecore !== 'undefined') {\r\n this.overrideSitecoreChromeTypesRenderingChangeCondition();\r\n }\r\n }\r\n\r\n private overrideSitecoreChromeTypesRenderingChangeCondition(): void {\r\n const originalStartActivation: Function = Sitecore.PageModes.ChromeTypes.Rendering.prototype._startActivation;\r\n const originalEndActivation: Function = Sitecore.PageModes.ChromeTypes.Rendering.prototype._endActivation;\r\n let elementToProcessWhenFinished: HTMLElement;\r\n const onAfterPersonalizationChanged = (changedElement: HTMLElement) => {\r\n this.onAfterPersonalizationChanged.forEach((callback) => callback(changedElement));\r\n };\r\n const getValidMarker = (markersAndElements: HTMLElement[]): HTMLElement => {\r\n return this.isDifferentFirstLoadMarker(markersAndElements) ? markersAndElements[2] : markersAndElements[1];\r\n };\r\n Sitecore.PageModes.ChromeTypes.Rendering.prototype._startActivation = function (\r\n markersAndElements: HTMLElement[],\r\n fieldId?: string\r\n ): void {\r\n elementToProcessWhenFinished = getValidMarker(markersAndElements);\r\n originalStartActivation.apply(this, arguments);\r\n };\r\n Sitecore.PageModes.ChromeTypes.Rendering.prototype._endActivation = function (reason: string): void {\r\n originalEndActivation.apply(this, arguments);\r\n if (elementToProcessWhenFinished) {\r\n onAfterPersonalizationChanged(elementToProcessWhenFinished);\r\n }\r\n };\r\n this.isAfterPersonalizationChangedOverriden = true;\r\n }\r\n\r\n // In Sitecore 8.0, for some reason, there are two additionnal text nodes *only on the first load*.\r\n // The cached version does not have those.\r\n private isDifferentFirstLoadMarker(markersAndElements: HTMLElement[]): boolean {\r\n return markersAndElements[1].nodeType === Node.TEXT_NODE;\r\n }\r\n\r\n public registerShowDebugInformationCallback(): void {\r\n if (!window['scCoveoShowDebugInformation']) {\r\n window['scCoveoShowDebugInformation'] = (debugModeEnabled: boolean) => {\r\n const debugInfoElements = nodeListToArray(document.getElementsByClassName('coveo-debug-information'));\r\n if (debugModeEnabled) {\r\n debugInfoElements.forEach((element) => element.classList.remove('coveo-debug-hidden'));\r\n } else {\r\n debugInfoElements.forEach((element) => element.classList.add('coveo-debug-hidden'));\r\n }\r\n // Chromes are not updated correctly until an event refreshes them. This forces the update.\r\n Sitecore.PageModes.ChromeManager.resetChromes();\r\n };\r\n }\r\n }\r\n}\r\n\r\nexport interface ISitecoreExperienceEditor {\r\n registerOnLoadRenderingFromUrl(onAfterFrameLoadedCallback: (callbackData: IRenderingElement) => void): void;\r\n registerBeforeUnloadingChrome(onBeforeUnloadingChromeCallback: IBeforeUnloadingChromeCallback): void;\r\n registerOnAfterPersonalizationChanged(onAfterPersonalizationChanged: IAfterPersonalizationChangedCallback): void;\r\n isInBackgroundRendering(): boolean;\r\n getComponentFromLoadRenderingFromUrlCallbackData(callbackData: IRenderingElement): HTMLElement;\r\n registerShowDebugInformationCallback(): void;\r\n}\r\n\r\nconst staticInstance = new SitecoreExperienceEditor();\r\n\r\nexport function getExperienceEditorInstance(): ISitecoreExperienceEditor {\r\n return staticInstance;\r\n}\r\n","export interface ISitecoreContextInitializationEventArgs {\r\n sitecoreItemId: string;\r\n sitecoreItemUri: string;\r\n sitecorePageName: string;\r\n shouldHaveAnalyticsComponent: boolean;\r\n analyticsEnabled: boolean;\r\n indexSourceName: string;\r\n currentLanguage: string;\r\n languageFieldName: string;\r\n latestVersionFieldName: string;\r\n isInExperienceEditor: boolean;\r\n sitecorePageFullPath: string;\r\n siteName: string;\r\n restEndpointUri: string;\r\n analyticsEndpointUri: string;\r\n}\r\n\r\nexport class SitecoreContextEvents {\r\n public static onSitecoreContextInitialization = 'onSitecoreContextInitialization';\r\n}\r\n","import { ExpressionBuilder } from 'coveo-search-ui';\r\n\r\nexport interface IBuildingExternalContentEventArgs {\r\n sources: string[];\r\n}\r\n\r\nexport interface IBuildingLocalSitecoreInstanceExpressionEventArgs {\r\n expression: ExpressionBuilder;\r\n externalSources: string[];\r\n buildingQueryAlreadyProcessed: boolean;\r\n}\r\n\r\nexport class SitecoreExpressionEvents {\r\n public static onBuildingSitecoreExternalContent = 'onBuildingSitecoreExternalContent';\r\n public static onBuildingLocalSitecoreInstanceExpression = 'onBuildingLocalSitecoreInstanceExpression';\r\n}\r\n","import { IFieldTypeResolver } from './IFieldTypeResolver';\r\nimport { LegacyFieldTypeResolver } from './LegacyFieldTypeResolver';\r\n\r\nexport interface ICoveoFieldHandler {\r\n isCoveoFieldName(fieldName: string): boolean;\r\n toCoveo(fieldName: string): string;\r\n addCoveoFieldDelimiter(fieldName: string): string;\r\n}\r\n\r\nexport interface IExternalFieldConfig {\r\n fieldName: string;\r\n shouldEscape: boolean;\r\n}\r\n\r\nexport class CoveoFieldsHandler implements ICoveoFieldHandler {\r\n // 'z' and 'x' are also considered as special characters because\r\n // they are used in the escaping logic. So we have to remove them\r\n // from the regular expression pattern.\r\n private static readonly nonSpecialCharactersString = '[a-wyA-WY0-9]';\r\n private static readonly nonSpecialCharacters = new RegExp(CoveoFieldsHandler.nonSpecialCharactersString);\r\n private static readonly coveoFieldDelimiter = '@';\r\n private static readonly fieldNameRegex = new RegExp('^[^\\\\W_]*$');\r\n private static readonly escapedCharacterRegex = new RegExp('z\\\\d{2,3}x');\r\n\r\n private readonly resolver: IFieldTypeResolver;\r\n\r\n constructor(resolver: IFieldTypeResolver, prefix: string, suffix: string);\r\n /**\r\n * @deprecated. Use the `constructor(IFieldTypeResolver, string, string)` constructor instead.\r\n */\r\n constructor(resolver: IExternalFieldConfig[], prefix: string, suffix: string);\r\n constructor(resolver: IExternalFieldConfig[] | IFieldTypeResolver, private prefix: string, private suffix: string) {\r\n if ((resolver).shouldDecorate !== undefined) {\r\n this.resolver = resolver as IFieldTypeResolver;\r\n } else {\r\n // Handle legacy constructor case.\r\n this.resolver = new LegacyFieldTypeResolver(resolver as IExternalFieldConfig[]);\r\n }\r\n }\r\n\r\n public toCoveo(fieldName: string): string {\r\n if (!this.isValidFieldName(fieldName)) {\r\n console.error(`Could not translate the '${fieldName}' field to a Coveo field. Returning as is.`);\r\n return fieldName;\r\n }\r\n\r\n const lowerCaseFieldName = fieldName.toLowerCase();\r\n const fieldWithoutDelimiter = this.stripCoveoFieldDelimiter(lowerCaseFieldName);\r\n if (CoveoFieldsHandler.escapedCharacterRegex.test(fieldWithoutDelimiter)) {\r\n console.warn(\r\n `Field name ${fieldName} contains the z\\\\d{2,3}x pattern. Ensure you avoid using this pattern in field names.`\r\n );\r\n console.trace();\r\n }\r\n\r\n const translatedFieldWithoutDelimiter = this.translateFieldName(fieldWithoutDelimiter);\r\n return this.startsWithAt(fieldName)\r\n ? this.addCoveoFieldDelimiter(translatedFieldWithoutDelimiter)\r\n : translatedFieldWithoutDelimiter;\r\n }\r\n\r\n public addCoveoFieldDelimiter(fieldName: string): string {\r\n let fieldNameWithDelimiter = fieldName;\r\n if (!this.startsWithAt(fieldName)) {\r\n fieldNameWithDelimiter = `${CoveoFieldsHandler.coveoFieldDelimiter}${fieldName}`.toLowerCase();\r\n }\r\n return fieldNameWithDelimiter;\r\n }\r\n\r\n public isCoveoFieldName(fieldName: string): boolean {\r\n const strippedFieldName = this.stripCoveoFieldDelimiter(fieldName);\r\n return this.resolver.isExternalField(strippedFieldName) || this.isDecorated(strippedFieldName);\r\n }\r\n\r\n private isDecorated(fieldName: string): boolean {\r\n const regexString = this.prefix + '[\\\\w]+' + this.suffix;\r\n const coveoFieldNameRegex = new RegExp(regexString);\r\n return coveoFieldNameRegex.test(fieldName);\r\n }\r\n\r\n private isValidFieldName(fieldName: string): boolean {\r\n return fieldName && fieldName !== CoveoFieldsHandler.coveoFieldDelimiter;\r\n }\r\n\r\n private startsWithAt(fieldName: string): boolean {\r\n return fieldName[0] === CoveoFieldsHandler.coveoFieldDelimiter;\r\n }\r\n\r\n private stripCoveoFieldDelimiter(fieldName: string): string {\r\n let field = fieldName;\r\n if (this.startsWithAt(fieldName)) {\r\n field = field.substr(1);\r\n }\r\n return field;\r\n }\r\n\r\n private translateFieldName(fieldName: string): string {\r\n let field = fieldName;\r\n\r\n if (this.resolver.shouldEscapeSpecialCharacters(fieldName) && !this.isFieldAlreadyTranslated(fieldName)) {\r\n field = this.replaceSpecialCharacters(field);\r\n }\r\n if (this.resolver.shouldDecorate(fieldName)) {\r\n field = this.prefix + field + this.suffix;\r\n }\r\n if (this.resolver.shouldEscapeFirstCharacter(field)) {\r\n field = this.replaceFirstCharacter(field);\r\n }\r\n\r\n return field;\r\n }\r\n\r\n // This check was added to avoid fields from being double translated. See SC-4266.\r\n private isFieldAlreadyTranslated(fieldName: string): boolean {\r\n return (\r\n CoveoFieldsHandler.fieldNameRegex.test(fieldName) &&\r\n CoveoFieldsHandler.escapedCharacterRegex.test(fieldName)\r\n );\r\n }\r\n\r\n private replaceFirstCharacter(fieldName: string): string {\r\n const characters = fieldName.split('');\r\n const firstCharacter = characters.shift();\r\n characters.unshift(this.escapeSpecialCharacter(firstCharacter));\r\n return characters.join('');\r\n }\r\n\r\n private replaceSpecialCharacters(fieldName: string): string {\r\n return fieldName.split('').map(this.replaceSpecialCharacter.bind(this)).join('');\r\n }\r\n\r\n private replaceSpecialCharacter(character: string): string {\r\n if (character.match(CoveoFieldsHandler.nonSpecialCharacters)) {\r\n return character;\r\n } else {\r\n return this.escapeSpecialCharacter(character);\r\n }\r\n }\r\n\r\n private escapeSpecialCharacter(character: string): string {\r\n return `z${character.charCodeAt(0)}x`;\r\n }\r\n}\r\n","export interface ICoveoLabelsHandler {\r\n translate(key: string): string;\r\n}\r\n\r\nexport interface ILabelsDictionary {\r\n [key: string]: string;\r\n}\r\n\r\nexport class CoveoLabelsHandler implements ICoveoLabelsHandler {\r\n constructor(private labels: ILabelsDictionary) {}\r\n\r\n public translate(key: string): string {\r\n return this.labels[key] || key;\r\n }\r\n}\r\n","import { IExternalFieldConfig } from './CoveoFieldsHandler';\r\nimport { IFieldTypeResolver } from './IFieldTypeResolver';\r\n\r\nexport class LegacyFieldTypeResolver implements IFieldTypeResolver {\r\n private readonly externalFields: IExternalFieldConfig[];\r\n\r\n constructor(externalFields: IExternalFieldConfig[]) {\r\n this.externalFields = this.parseExternalFields(externalFields);\r\n }\r\n\r\n private parseExternalFields(externalFields: Array): IExternalFieldConfig[] {\r\n return externalFields.map((externalField) => {\r\n if (typeof externalField === 'string') {\r\n return {\r\n fieldName: (externalField as string).toLowerCase(),\r\n shouldEscape: false,\r\n };\r\n } else if (this.isExternalFieldConfig(externalField)) {\r\n return {\r\n fieldName: externalField.fieldName.toLowerCase(),\r\n shouldEscape: externalField.shouldEscape,\r\n };\r\n } else {\r\n console.error(`Invalid external field '${externalField}'.`);\r\n }\r\n });\r\n }\r\n\r\n public shouldEscapeFirstCharacter(fieldName: string): boolean {\r\n return false;\r\n }\r\n\r\n public shouldEscapeSpecialCharacters(fieldName: string): boolean {\r\n const fields = this.externalFields.filter((field) => field.fieldName.toLowerCase() === fieldName.toLowerCase());\r\n\r\n return fields.length > 0 ? fields[0].shouldEscape : true;\r\n }\r\n\r\n public shouldDecorate(fieldName: string): boolean {\r\n return !this.externalFields.some((field) => field.fieldName.toLowerCase() === fieldName.toLowerCase());\r\n }\r\n\r\n public isExternalField(fieldName: string): boolean {\r\n return this.externalFields.some((field) => field.fieldName.toLowerCase() === fieldName.toLowerCase());\r\n }\r\n\r\n private isExternalFieldConfig(obj: any): boolean {\r\n return (\r\n typeof obj !== 'undefined' &&\r\n typeof obj.fieldName !== 'undefined' &&\r\n typeof obj.shouldEscape !== 'undefined'\r\n );\r\n }\r\n}\r\n","import { IFieldTypeResolver, IExternalFieldConfig, ISourceSpecificFieldConfig } from './IFieldTypeResolver';\r\n\r\nexport class SourceSpecificFieldResolver implements IFieldTypeResolver {\r\n private static readonly validFirstCharacters = new RegExp('[a-zA-Z_]');\r\n\r\n constructor(\r\n private sourceSpecificFields: ISourceSpecificFieldConfig[],\r\n private externalFields: IExternalFieldConfig[]\r\n ) {}\r\n\r\n public shouldEscapeFirstCharacter(fieldName: string): boolean {\r\n return !fieldName[0].match(SourceSpecificFieldResolver.validFirstCharacters);\r\n }\r\n\r\n public shouldEscapeSpecialCharacters(fieldName: string): boolean {\r\n return !this.externalFields.some((field) => field.fieldName.toLowerCase() === fieldName.toLowerCase());\r\n }\r\n\r\n public shouldDecorate(fieldName: string): boolean {\r\n return this.sourceSpecificFields.some((field) => field.fieldName.toLowerCase() === fieldName.toLowerCase());\r\n }\r\n\r\n public isExternalField(fieldName: string): boolean {\r\n return this.externalFields.some((field) => field.fieldName.toLowerCase() === fieldName.toLowerCase());\r\n }\r\n}\r\n","import { Prebinding } from '../../base/Prebinding';\r\nimport { nodeListToArray } from '../../utils/HTMLUtils';\r\n\r\nimport { Initialization, SearchInterface, get, Facet, Tab } from 'coveo-search-ui';\r\n\r\nconst duringInitializationClass = 'coveo-during-initialization';\r\n\r\nexport class SearchInterfaceComponentInitializer implements ISearchInterfaceComponentInitializer {\r\n public loadComponentsForSearchInterface(\r\n searchInterface: SearchInterface,\r\n newComponent: HTMLElement\r\n ): Promise {\r\n Prebinding.applyPrebindingOnElement(newComponent);\r\n Prebinding.applyPrebindingOnChildren(newComponent);\r\n const result = Initialization.automaticallyCreateComponentsInside(newComponent, {\r\n bindings: searchInterface.getBindings(),\r\n options: {},\r\n });\r\n return result.initResult.then(() => {\r\n this.removeAllPlaceholdersWithinElement(newComponent);\r\n searchInterface.queryController.executeQuery({\r\n ignoreWarningSearchEvent: true,\r\n });\r\n });\r\n }\r\n\r\n public tryUnloadComponentsForSearchInterface(searchInterface: SearchInterface, newComponent: HTMLElement): void {\r\n const facets = nodeListToArray(newComponent.getElementsByClassName('CoveoFacet'));\r\n facets.forEach((facet) => {\r\n const facetComponent: Facet = get(facet, 'CoveoFacet') as Facet;\r\n if (facetComponent) {\r\n searchInterface.detachComponent('Facet', facetComponent);\r\n }\r\n this.removeAllChildren(facet);\r\n });\r\n\r\n const tabs = nodeListToArray(newComponent.getElementsByClassName('CoveoTab'));\r\n tabs.forEach((tab) => {\r\n const tabComponent: Tab = get(tab, 'CoveoTab') as Tab;\r\n if (tabComponent) {\r\n searchInterface.detachComponent('Tab', tabComponent);\r\n }\r\n this.removeAllChildren(tab);\r\n });\r\n }\r\n\r\n private removeAllPlaceholdersWithinElement(element: HTMLElement): void {\r\n const elementsWithInitializationClass = nodeListToArray(\r\n element.getElementsByClassName(duringInitializationClass)\r\n );\r\n elementsWithInitializationClass.forEach((element) => this.removePlaceholders(element));\r\n }\r\n\r\n private removePlaceholders(element: HTMLElement): void {\r\n element.classList.remove(duringInitializationClass);\r\n\r\n if (element.classList.contains('CoveoFacet')) {\r\n this.removeFacetsPlaceholders(element);\r\n }\r\n }\r\n private removeFacetsPlaceholders(element: HTMLElement): void {\r\n element.classList.remove('coveo-with-placeholder');\r\n\r\n // Since a Facet reinserts DOM as children when initializing, we have to remove all its children,\r\n // else new content will be appended each time the facet is initialized.\r\n this.removeAllChildren(element);\r\n }\r\n\r\n private removeAllChildren(element: HTMLElement): void {\r\n while (element.firstChild) {\r\n element.removeChild(element.firstChild);\r\n }\r\n }\r\n\r\n public loadComponentsWithSearchInterfaceInitialization(\r\n searchInterfaceElement: HTMLElement,\r\n componentsContainer: HTMLElement\r\n ): void {\r\n Prebinding.applyPrebindingOnElement(componentsContainer);\r\n Prebinding.applyPrebindingOnChildren(componentsContainer);\r\n Coveo.options(searchInterfaceElement, {\r\n externalComponents: [componentsContainer],\r\n });\r\n }\r\n}\r\n\r\nexport interface ISearchInterfaceComponentInitializer {\r\n loadComponentsWithSearchInterfaceInitialization(searchInterfaceElement: HTMLElement, element: HTMLElement): void;\r\n loadComponentsForSearchInterface(searchInterface: SearchInterface, newComponent: HTMLElement): Promise;\r\n tryUnloadComponentsForSearchInterface(searchInterface: SearchInterface, newComponent: HTMLElement): void;\r\n}\r\n\r\nconst initializer = new SearchInterfaceComponentInitializer();\r\nexport function getInitializerInstance(): ISearchInterfaceComponentInitializer {\r\n return initializer;\r\n}\r\n","import { IPrebindHelper } from './PrebindHelper';\r\n\r\nimport { AnalyticsEnabledPrebind } from './prebindHelpers/AnalyticsEnabled';\r\nimport { CoveoForSitecoreAnalyticsEndpointPrebind } from './prebindHelpers/CoveoForSitecoreAnalyticsEndpoint';\r\nimport { CurrentMaximumAge } from './prebindHelpers/CurrentMaximumAge';\r\nimport { CurrentPageNamePrebind } from './prebindHelpers/CurrentPageName';\r\nimport { FieldTranslatorPrebind } from './prebindHelpers/FieldTranslator';\r\nimport { IsAnonymousPrebind } from './prebindHelpers/IsAnonymous';\r\nimport { MainSearchInterfaceSelectorPrebind } from './prebindHelpers/MainSearchInterfaceSelector';\r\nimport { ItemIdSelectorPrebind } from './prebindHelpers/ItemIdSelector';\r\nimport { SortCriteriaPrebind } from './prebindHelpers/SortCriteria';\r\nimport { UnfoldDictionaryToAttributesPrebind } from './prebindHelpers/UnfoldDictionaryToAttributes';\r\n\r\nexport class PrebindHelpers {\r\n public static getAllPrebindHelpers(): IPrebindHelper[] {\r\n return [\r\n new AnalyticsEnabledPrebind(),\r\n new CoveoForSitecoreAnalyticsEndpointPrebind(),\r\n new CurrentMaximumAge(),\r\n new CurrentPageNamePrebind(),\r\n new FieldTranslatorPrebind(),\r\n new IsAnonymousPrebind(),\r\n new MainSearchInterfaceSelectorPrebind(),\r\n new ItemIdSelectorPrebind(),\r\n new SortCriteriaPrebind(),\r\n new UnfoldDictionaryToAttributesPrebind(),\r\n ];\r\n }\r\n}\r\n","export interface IPrebindHandler {\r\n (value: string, element: HTMLElement): string;\r\n}\r\n\r\nexport interface IPrebindAttribute {\r\n attribute: string;\r\n attributeValue: any;\r\n method: IPrebindHandler;\r\n}\r\n\r\nexport interface IPrebindResolver {\r\n registerPrebindHelper(helperName: string, handler: IPrebindHandler): void;\r\n hasHelper(helperName: string): boolean;\r\n getHelper(helperName: string): IPrebindHandler;\r\n canApplyPrebind(element: HTMLElement): boolean;\r\n applyToElement(element: HTMLElement): void;\r\n hasNotAppliedPrebind(element: HTMLElement): boolean;\r\n}\r\n\r\nexport class PrebindResolver implements IPrebindResolver {\r\n public static prebindString = 'prebind';\r\n private prebindAppliedValue = 'appliedPrebind';\r\n private helpers: { [helperName: string]: IPrebindHandler } = {};\r\n\r\n public registerPrebindHelper(helperName: string, handler: IPrebindHandler): void {\r\n if (typeof helperName !== 'string' || helperName === '') {\r\n throw 'You must define a name for the prebind helper.';\r\n }\r\n if (typeof handler === 'undefined' || handler === null) {\r\n throw 'You must define a handler for the prebind helper.';\r\n }\r\n if (this.hasHelper(helperName)) {\r\n console.warn(`A prebind handler already exists for '${helperName}'. It will be ignored`);\r\n return;\r\n }\r\n this.helpers[helperName] = handler;\r\n }\r\n\r\n public hasHelper(helperName: string): boolean {\r\n return this.helpers.hasOwnProperty(helperName);\r\n }\r\n\r\n public getHelper(helperName: string): IPrebindHandler {\r\n if (!this.hasHelper(helperName)) {\r\n throw `'${helperName}' has no registered helper.`;\r\n }\r\n return this.helpers[helperName];\r\n }\r\n\r\n public canApplyPrebind(element: HTMLElement): boolean {\r\n return !!element.dataset;\r\n }\r\n\r\n public hasNotAppliedPrebind(element: HTMLElement): boolean {\r\n return element.dataset[this.prebindAppliedValue] !== 'true';\r\n }\r\n\r\n public applyToElement(element: HTMLElement): void {\r\n try {\r\n const attributes = this.getPrebindingAttributesForElement(element);\r\n if (attributes.length > 0) {\r\n element.dataset[this.prebindAppliedValue] = 'true';\r\n }\r\n attributes.forEach((attributes) => this.applyPrebindToElement(attributes, element));\r\n } catch (exception) {\r\n console.warn('(CoveoForSitecore) prebinding failed on element.', element, exception);\r\n }\r\n }\r\n\r\n private getPrebindingAttributesForElement(element: HTMLElement): IPrebindAttribute[] {\r\n return this.getAllPrebindingAttributesNames(element).map((key) => {\r\n const methodName = element.dataset[key];\r\n const attribute = this.lowerCaseFirstCharacter(this.removePrebindPrefix(key));\r\n return {\r\n attribute: attribute,\r\n attributeValue: element.dataset[attribute] || '',\r\n method: this.getHelper(methodName),\r\n };\r\n });\r\n }\r\n\r\n private getAllPrebindingAttributesNames(element: HTMLElement): string[] {\r\n return Object.keys(element.dataset)\r\n .filter((key) => this.stringStartsWithPrebindingString(key))\r\n .filter((key) => {\r\n const helperName = element.dataset[key];\r\n return this.filterAndWarnNonExistingHelperName(helperName, element);\r\n });\r\n }\r\n\r\n private stringStartsWithPrebindingString(value: string): boolean {\r\n return value.lastIndexOf(PrebindResolver.prebindString) === 0;\r\n }\r\n\r\n private filterAndWarnNonExistingHelperName(helperName: string, element: HTMLElement): boolean {\r\n const hasHelperWithName: boolean = this.hasHelper(helperName);\r\n\r\n if (!hasHelperWithName) {\r\n console.warn(\r\n `(CoveoForSitecore) an unregistered prebinding '${helperName}' was set on the element. Register this method using Prebinding.registerPrebindHelper(\"${helperName}\", handler).`,\r\n element\r\n );\r\n }\r\n\r\n return hasHelperWithName;\r\n }\r\n\r\n private removePrebindPrefix(attributeName: string): string {\r\n return attributeName.substring(PrebindResolver.prebindString.length);\r\n }\r\n\r\n private lowerCaseFirstCharacter(value: string): string {\r\n return value.charAt(0).toLowerCase() + value.slice(1);\r\n }\r\n\r\n private applyPrebindToElement(prebind: IPrebindAttribute, element: HTMLElement): void {\r\n element.dataset[prebind.attribute] = prebind.method(prebind.attributeValue, element);\r\n }\r\n}\r\n","import { IPrebindHelper, IPrebindHelperInitializationArgs } from '../PrebindHelper';\r\nimport { IPrebindHandler } from '../PrebindResolver';\r\n\r\nexport class AnalyticsEnabledPrebind implements IPrebindHelper {\r\n public name: string = 'analyticsEnabled';\r\n\r\n public getPrebind(args: IPrebindHelperInitializationArgs): IPrebindHandler {\r\n return (currentValue: string, element: HTMLElement) => {\r\n return args.context.scAnalyticsEnabled ? 'true' : 'false';\r\n };\r\n }\r\n}\r\n","import { IPrebindHelper, IPrebindHelperInitializationArgs } from '../PrebindHelper';\r\nimport { IPrebindHandler } from '../PrebindResolver';\r\n\r\nexport class CoveoForSitecoreAnalyticsEndpointPrebind implements IPrebindHelper {\r\n public name: string = 'coveoForSitecoreAnalyticsEndpoint';\r\n\r\n public getPrebind(args: IPrebindHelperInitializationArgs): IPrebindHandler {\r\n return (currentValue: string, element: HTMLElement) => {\r\n return currentValue || `${args.context.scAnalyticsEndpointUri}`;\r\n };\r\n }\r\n}\r\n","import { IPrebindHelper, IPrebindHelperInitializationArgs } from '../PrebindHelper';\r\nimport { IPrebindHandler } from '../PrebindResolver';\r\n\r\nexport class CurrentMaximumAge implements IPrebindHelper {\r\n public name: string = 'currentMaximumAge';\r\n\r\n public getPrebind(args: IPrebindHelperInitializationArgs): IPrebindHandler {\r\n return (value: string, element: HTMLElement) => {\r\n return value || args.context.scMaximumAge.toString();\r\n };\r\n }\r\n}\r\n","import { IPrebindHelper, IPrebindHelperInitializationArgs } from '../PrebindHelper';\r\nimport { IPrebindHandler } from '../PrebindResolver';\r\n\r\nexport class CurrentPageNamePrebind implements IPrebindHelper {\r\n public name: string = 'currentPageName';\r\n\r\n public getPrebind(args: IPrebindHelperInitializationArgs): IPrebindHandler {\r\n return (pageName: string, element: HTMLElement) => {\r\n return pageName || args.context.scPageName;\r\n };\r\n }\r\n}\r\n","import { IPrebindHelper, IPrebindHelperInitializationArgs } from '../PrebindHelper';\r\nimport { IPrebindHandler } from '../PrebindResolver';\r\n\r\nexport class FieldTranslatorPrebind implements IPrebindHelper {\r\n public name: string = 'fieldTranslator';\r\n\r\n public getPrebind(args: IPrebindHelperInitializationArgs): IPrebindHandler {\r\n return (name: string, element: HTMLElement) => {\r\n return args.fieldsHandler.toCoveo(name);\r\n };\r\n }\r\n}\r\n","import { IPrebindHelper, IPrebindHelperInitializationArgs } from '../PrebindHelper';\r\nimport { IPrebindHandler } from '../PrebindResolver';\r\n\r\nexport class IsAnonymousPrebind implements IPrebindHelper {\r\n public name: string = 'isAnonymous';\r\n\r\n public getPrebind(args: IPrebindHelperInitializationArgs): IPrebindHandler {\r\n return (isAnonymous: string, element: HTMLElement) => {\r\n return args.context.scIsUserAnonymous ? 'true' : 'false';\r\n };\r\n }\r\n}\r\n","import { IPrebindHelper, IPrebindHelperInitializationArgs } from '../PrebindHelper';\r\nimport { IPrebindHandler } from '../PrebindResolver';\r\n\r\nexport interface IItemIdValueResolver {\r\n canResolve(itemId: string, element: HTMLElement): boolean;\r\n getValue(itemId: string, element: HTMLElement): string;\r\n}\r\n\r\nexport class ItemIdSelectorPrebind implements IPrebindHelper {\r\n public name: string = 'itemIdSelector';\r\n\r\n private resolvers: IItemIdValueResolver[] = [\r\n new ResolveIfSelector(),\r\n new ResolveIfItemIdInPage(),\r\n new UseItemIdSelectorAsIs(),\r\n ];\r\n\r\n public getPrebind(args: IPrebindHelperInitializationArgs): IPrebindHandler {\r\n return (itemId: string, element: HTMLElement) => {\r\n const resolver: IItemIdValueResolver = this.getFirstValidResolver(itemId, element);\r\n\r\n return resolver.getValue(itemId, element);\r\n };\r\n }\r\n\r\n private getFirstValidResolver(itemId: string, element: HTMLElement): IItemIdValueResolver {\r\n let resolver: IItemIdValueResolver;\r\n\r\n do {\r\n if (this.resolvers.length === 0) {\r\n const message =\r\n 'Could not resolve the element using the current resolver. Ensure that a valid value is set.';\r\n console.error(message, {\r\n itemId: itemId,\r\n element: element,\r\n });\r\n throw message;\r\n }\r\n resolver = this.resolvers.shift();\r\n } while (!resolver.canResolve(itemId, element));\r\n\r\n return resolver;\r\n }\r\n}\r\n\r\nexport class ResolveIfItemIdInPage implements IItemIdValueResolver {\r\n canResolve(itemId: string): boolean {\r\n return this.isItemDefined(itemId) && this.isIdSelectorValid(`#${itemId}`);\r\n }\r\n\r\n getValue(itemId: string): string {\r\n return `#${itemId}`;\r\n }\r\n\r\n private isItemDefined(itemId: string): boolean {\r\n return !!itemId;\r\n }\r\n\r\n private isIdSelectorValid(selector: string): boolean {\r\n return document.querySelector(selector) !== null;\r\n }\r\n}\r\n\r\nexport class ResolveIfSelector implements IItemIdValueResolver {\r\n canResolve(itemId: string, element: HTMLElement): boolean {\r\n return !!itemId && this.isStartingWithSelectorCharacter(itemId);\r\n }\r\n\r\n getValue(itemId: string, element: HTMLElement): string {\r\n return itemId;\r\n }\r\n\r\n private isStartingWithSelectorCharacter(itemId: string): boolean {\r\n const firstCharacter = itemId[0];\r\n\r\n return ['.', '#'].indexOf(firstCharacter) !== -1;\r\n }\r\n}\r\n\r\nexport class UseItemIdSelectorAsIs implements IItemIdValueResolver {\r\n canResolve(itemId: string, element: HTMLElement): boolean {\r\n return true;\r\n }\r\n\r\n getValue(itemId: string, element: HTMLElement): string {\r\n return itemId;\r\n }\r\n}\r\n","import { IPrebindHelper, IPrebindHelperInitializationArgs } from '../PrebindHelper';\r\nimport { IPrebindHandler } from '../PrebindResolver';\r\nimport {\r\n IItemIdValueResolver,\r\n ResolveIfSelector,\r\n ResolveIfItemIdInPage,\r\n UseItemIdSelectorAsIs,\r\n} from './ItemIdSelector';\r\n\r\nimport { SearchInterface } from 'coveo-search-ui';\r\n\r\nexport class MainSearchInterfaceSelectorPrebind implements IPrebindHelper {\r\n public name: string = 'mainSearchInterfaceSelector';\r\n\r\n private resolvers: IItemIdValueResolver[] = [\r\n new ResolveIfSelector(),\r\n new ResolveIfItemIdInPage(),\r\n new ResolveParentSearchInterfaceId(),\r\n new UseItemIdSelectorAsIs(),\r\n ];\r\n\r\n public getPrebind(args: IPrebindHelperInitializationArgs): IPrebindHandler {\r\n return (mainSearchInterfaceId: string, element: HTMLElement) => {\r\n const resolver: IItemIdValueResolver = this.getFirstValidResolver(mainSearchInterfaceId, element);\r\n\r\n return resolver.getValue(mainSearchInterfaceId, element);\r\n };\r\n }\r\n\r\n private getFirstValidResolver(mainSearchInterfaceId: string, element: HTMLElement): IItemIdValueResolver {\r\n let resolver: IItemIdValueResolver;\r\n\r\n do {\r\n if (this.resolvers.length === 0) {\r\n const message =\r\n 'Could not resolve the search interface element using the current resolver. Ensure that a valid value is set.';\r\n console.error(message, {\r\n mainSearchInterfaceId: mainSearchInterfaceId,\r\n element: element,\r\n });\r\n throw message;\r\n }\r\n resolver = this.resolvers.shift();\r\n } while (!resolver.canResolve(mainSearchInterfaceId, element));\r\n\r\n return resolver;\r\n }\r\n}\r\n\r\nclass ResolveParentSearchInterfaceId implements IItemIdValueResolver {\r\n private foundId: string;\r\n\r\n canResolve(mainSearchInterfaceId: string, element: HTMLElement): boolean {\r\n return this.getValue(mainSearchInterfaceId, element) !== null;\r\n }\r\n\r\n getValue(mainSearchInterfaceId: string, element: HTMLElement): string {\r\n if (typeof this.foundId === 'undefined') {\r\n this.foundId = this.tryFindParentSearchInterfaceFromElement(element);\r\n }\r\n\r\n return this.foundId;\r\n }\r\n\r\n private tryFindParentSearchInterfaceFromElement(element: HTMLElement): string {\r\n const parentSearchInterface = this.findParentWithClass(element, `Coveo${SearchInterface.ID}`);\r\n\r\n return !!parentSearchInterface ? `#${parentSearchInterface.id}` : null;\r\n }\r\n\r\n private findParentWithClass(element: HTMLElement, className: string): HTMLElement {\r\n let parent = element.parentElement;\r\n while ((parent = parent.parentElement) && !parent.classList.contains(className)) {}\r\n return parent;\r\n }\r\n}\r\n","import { IPrebindHelper, IPrebindHelperInitializationArgs } from '../PrebindHelper';\r\nimport { IPrebindHandler } from '../PrebindResolver';\r\nimport { ISortDirection, SortCriteriaResolver } from '../../sortCriteria/SortCriteriaResolver';\r\n\r\nexport class SortCriteriaPrebind implements IPrebindHelper {\r\n public name: string = 'sortCriteriaResolver';\r\n\r\n public getPrebind(args: IPrebindHelperInitializationArgs): IPrebindHandler {\r\n const criteriaResolver = new SortCriteriaResolver(args.fieldsHandler);\r\n return (sortCriteriaRawValue: string, element: HTMLElement) => {\r\n const sortCriteria = JSON.parse(sortCriteriaRawValue);\r\n if (Object.keys(sortCriteria).length === 0) {\r\n return null;\r\n }\r\n const sortType = (sortCriteria.type || 'relevancy').toLowerCase();\r\n const sortDirection = (sortCriteria.direction || 'ascending').toLowerCase() as ISortDirection;\r\n const enableBothSortDirections =\r\n (element.dataset['scEnableBothSortDirections'] || 'false').toLowerCase() === 'true';\r\n const sortDropdownElement = document.querySelector('.coveo-sort-section .CoveoSortDropdown');\r\n const enableSortDropdown = document.body.contains(sortDropdownElement);\r\n\r\n if (sortType === 'relevancy') {\r\n return criteriaResolver.resolveRelevancyCriteria();\r\n } else if (sortType === 'date') {\r\n return criteriaResolver.resolveDateCriteria(\r\n sortDirection,\r\n enableBothSortDirections,\r\n enableSortDropdown\r\n );\r\n } else {\r\n const sortField = sortCriteria.field;\r\n return criteriaResolver.resolveFieldCriteria(\r\n sortField,\r\n sortDirection,\r\n enableBothSortDirections,\r\n enableSortDropdown\r\n );\r\n }\r\n };\r\n }\r\n}\r\n","import { IPrebindHelper, IPrebindHelperInitializationArgs } from '../PrebindHelper';\r\nimport { IPrebindHandler } from '../PrebindResolver';\r\n\r\nexport class UnfoldDictionaryToAttributesPrebind implements IPrebindHelper {\r\n public name: string = 'unfoldDictionaryToAttributesPrebind';\r\n\r\n public getPrebind(args: IPrebindHelperInitializationArgs): IPrebindHandler {\r\n return (rawDictionary: string, element: HTMLElement) => {\r\n const parsedDictionary = JSON.parse(rawDictionary);\r\n Object.keys(parsedDictionary).forEach((key) => {\r\n const translatedField = args.fieldsHandler.toCoveo(key);\r\n const dataKey = 'field' + translatedField.charAt(0).toUpperCase() + translatedField.slice(1);\r\n element.dataset[dataKey] = parsedDictionary[key];\r\n });\r\n return rawDictionary;\r\n };\r\n }\r\n}\r\n","import { Context } from '../../base/Context';\r\n\r\nconst CSS_SORT_BOTH_DIRECTIONS = '.CoveoSort[data-sc-enable-both-sort-directions=\"true\"]';\r\nconst CSS_DROPDOWN_SELECTOR = '.CoveoSortDropdown';\r\nconst DESCENDING_CRITERIA = 'Descending';\r\nconst ASCENDING_CRITERIA = 'Ascending';\r\n\r\nconst createReversedSortElement = (sortElement: HTMLElement): HTMLElement => {\r\n const sortElementReverse: HTMLElement = sortElement.cloneNode(false) as HTMLElement;\r\n const sortCriteria = JSON.parse(sortElementReverse.dataset.sortCriteria);\r\n\r\n sortCriteria.direction = sortCriteria.direction === DESCENDING_CRITERIA ? ASCENDING_CRITERIA : DESCENDING_CRITERIA;\r\n\r\n sortElementReverse.dataset.sortCriteria = JSON.stringify(sortCriteria);\r\n\r\n return sortElementReverse;\r\n};\r\n\r\nconst addDirectionToCaption = (element: HTMLElement): void => {\r\n const sortCriteria = JSON.parse(element.dataset.sortCriteria);\r\n\r\n element.dataset.caption =\r\n sortCriteria.direction === DESCENDING_CRITERIA\r\n ? `${element.dataset.caption} ${Context.labels.translate('Descending')}`\r\n : `${element.dataset.caption} ${Context.labels.translate('Ascending')}`;\r\n};\r\n\r\nconst adjustSortDropdown = (rootElement: HTMLElement): void => {\r\n const dropdownElement: HTMLElement = rootElement.querySelector(CSS_DROPDOWN_SELECTOR);\r\n\r\n if (dropdownElement) {\r\n for (const sortElement of rootElement.querySelectorAll(CSS_SORT_BOTH_DIRECTIONS) as any) {\r\n const sortElementReverse: HTMLElement = createReversedSortElement(sortElement);\r\n\r\n sortElement.insertAdjacentElement('afterend', sortElementReverse);\r\n\r\n addDirectionToCaption(sortElement);\r\n addDirectionToCaption(sortElementReverse);\r\n }\r\n }\r\n};\r\n\r\nexport const adjustDOMElements = (rootElement: HTMLElement): void => {\r\n adjustSortDropdown(rootElement);\r\n};\r\n","import { ICoveoFieldHandler } from '../../handlers/CoveoFieldsHandler';\r\n\r\nexport type ISortDirection = 'ascending' | 'descending';\r\n\r\nexport class SortCriteriaResolver {\r\n constructor(private fieldsHandler: ICoveoFieldHandler) {}\r\n\r\n resolveFieldCriteria(\r\n fieldCriteria: string,\r\n sortDirection: ISortDirection,\r\n enableBothSortDirections: boolean,\r\n enableSortDropdown: boolean\r\n ): string {\r\n const field = fieldCriteria.charAt(0) !== '@' ? `@${fieldCriteria}` : fieldCriteria;\r\n return this.getFieldCriteria(\r\n this.fieldsHandler.toCoveo(field),\r\n sortDirection,\r\n enableBothSortDirections,\r\n enableSortDropdown\r\n );\r\n }\r\n\r\n resolveDateCriteria(\r\n sortDirection: ISortDirection,\r\n enableBothSortDirections: boolean,\r\n enableSortDropdown: boolean\r\n ): string {\r\n return this.getFieldCriteria('date', sortDirection, enableBothSortDirections, enableSortDropdown);\r\n }\r\n\r\n resolveRelevancyCriteria(): string {\r\n return 'relevancy';\r\n }\r\n\r\n private getFieldCriteria(\r\n fieldCriteria: string,\r\n sortDirection: ISortDirection,\r\n enableBothSortDirections: boolean,\r\n enableSortDropdown: boolean\r\n ): string {\r\n if (enableBothSortDirections && !enableSortDropdown) {\r\n return `${this.getFieldWithDirection(fieldCriteria, sortDirection)}, ${this.getFieldWithDirection(\r\n fieldCriteria,\r\n this.getInvertedDirection(sortDirection)\r\n )}`;\r\n } else {\r\n return this.getFieldWithDirection(fieldCriteria, sortDirection);\r\n }\r\n }\r\n\r\n private getFieldWithDirection(fieldCriteria: string, sortDirection: ISortDirection): string {\r\n return `${fieldCriteria} ${sortDirection}`;\r\n }\r\n\r\n private getInvertedDirection(sortDirection: ISortDirection): ISortDirection {\r\n return sortDirection === 'descending' ? 'ascending' : 'descending';\r\n }\r\n}\r\n","import { IComponentDefinition, LazyInitialization } from 'coveo-search-ui';\r\n\r\nexport function lazyCoveoForSitecoreAnalytics(): void {\r\n LazyInitialization.registerLazyComponent('ForSitecoreAnalytics', () => {\r\n return new Promise((resolve, reject) => {\r\n require.ensure(\r\n ['./CoveoForSitecoreAnalytics'],\r\n () => {\r\n const loaded = require('./CoveoForSitecoreAnalytics.ts')[\r\n 'CoveoForSitecoreAnalytics'\r\n ];\r\n resolve(loaded);\r\n },\r\n LazyInitialization.buildErrorCallback('CoveoForSitecoreAnalytics', resolve),\r\n 'CoveoForSitecoreAnalytics'\r\n );\r\n });\r\n });\r\n}\r\n","import { IComponentDefinition, LazyInitialization } from 'coveo-search-ui';\r\n\r\nexport function lazyCoveoForSitecoreConfigureSearchHub(): void {\r\n LazyInitialization.registerLazyComponent('ForSitecoreConfigureSearchHub', () => {\r\n return new Promise((resolve, reject) => {\r\n require.ensure(\r\n ['./CoveoForSitecoreConfigureSearchHub'],\r\n () => {\r\n const loaded = require('./CoveoForSitecoreConfigureSearchHub.ts')[\r\n 'CoveoForSitecoreConfigureSearchHub'\r\n ];\r\n resolve(loaded);\r\n },\r\n LazyInitialization.buildErrorCallback('CoveoForSitecoreConfigureSearchHub', resolve),\r\n 'CoveoForSitecoreConfigureSearchHub'\r\n );\r\n });\r\n });\r\n}\r\n","import { LazyInitialization, IComponentDefinition } from 'coveo-search-ui';\r\n\r\nexport function lazyCoveoSendAnalyticsToSitecore(): void {\r\n LazyInitialization.registerLazyComponent('SendAnalyticsToSitecore', () => {\r\n return new Promise((resolve, reject) => {\r\n require.ensure(\r\n ['./SendAnalyticsToSitecore'],\r\n () => {\r\n const loaded = require('./SendAnalyticsToSitecore.ts')[\r\n 'SendAnalyticsToSitecore'\r\n ];\r\n resolve(loaded);\r\n },\r\n LazyInitialization.buildErrorCallback('SendAnalyticsToSitecore', resolve),\r\n 'SendAnalyticsToSitecore'\r\n );\r\n });\r\n });\r\n}\r\n","import { IComponentDefinition, LazyInitialization } from 'coveo-search-ui';\r\n\r\nexport function lazyValidateAnalyticsIncluded(): void {\r\n LazyInitialization.registerLazyComponent('ValidateAnalyticsIncluded', () => {\r\n return new Promise((resolve, reject) => {\r\n require.ensure(\r\n ['./ValidateAnalyticsIncluded'],\r\n () => {\r\n const loaded = require('./ValidateAnalyticsIncluded.ts')[\r\n 'ValidateAnalyticsIncluded'\r\n ];\r\n resolve(loaded);\r\n },\r\n LazyInitialization.buildErrorCallback('ValidateAnalyticsIncluded', resolve),\r\n 'ValidateAnalyticsIncluded'\r\n );\r\n });\r\n });\r\n}\r\n","import {\r\n Component,\r\n ComponentOptions,\r\n IBuildingQuerySuggestArgs,\r\n IComponentBindings,\r\n InitializationEvents,\r\n IQuerySuggestRequest,\r\n OmniboxEvents,\r\n QueryEvents,\r\n QueryBuilder,\r\n IDoneBuildingQueryEventArgs,\r\n Initialization,\r\n IStringMap,\r\n} from 'coveo-search-ui';\r\n\r\nimport { ISitecoreContextInitializationEventArgs, SitecoreContextEvents } from '../../events/ContextEvents';\r\nimport { IExternalFieldConfig as ILegacyExternalFieldConfig } from '../../handlers/CoveoFieldsHandler';\r\nimport { IExternalFieldConfig, ISourceSpecificFieldConfig } from '../../handlers/IFieldTypeResolver';\r\n\r\nexport interface ICoveoForSitecoreContextOptions {\r\n scItemId: string;\r\n scItemUri: string;\r\n scLatestVersionFieldName: string;\r\n scLanguageFieldName: string;\r\n scCurrentLanguage: string;\r\n scRestEndpointUri: string;\r\n scAnalyticsEndpointUri: string;\r\n scLabels: IStringMap;\r\n scPageName: string;\r\n scDefaultPipelineName: string;\r\n scShouldHaveAnalyticsComponent: boolean;\r\n scAnalyticsEnabled: boolean;\r\n scIsUserAnonymous: boolean;\r\n scFieldPrefix: string;\r\n scFieldSuffix: string;\r\n scExternalFields: IExternalFieldConfig[] | ILegacyExternalFieldConfig[];\r\n scSourceSpecificFields: ISourceSpecificFieldConfig[];\r\n scPreferSourceSpecificFields: boolean;\r\n scIndexSourceName: string;\r\n scIsInExperienceEditor: boolean;\r\n scMaximumAge: number;\r\n scPageNameFullPath: string;\r\n scSiteName: string;\r\n}\r\n\r\nexport class CoveoForSitecoreContext extends Component {\r\n static ID = 'ForSitecoreContext';\r\n\r\n static options: ICoveoForSitecoreContextOptions = {\r\n scItemId: ComponentOptions.buildStringOption(),\r\n scItemUri: ComponentOptions.buildStringOption(),\r\n scLanguageFieldName: ComponentOptions.buildStringOption(),\r\n scLatestVersionFieldName: ComponentOptions.buildStringOption(),\r\n scCurrentLanguage: ComponentOptions.buildStringOption(),\r\n scRestEndpointUri: ComponentOptions.buildStringOption(),\r\n scAnalyticsEndpointUri: ComponentOptions.buildStringOption(),\r\n scLabels: ComponentOptions.buildJsonOption(),\r\n scPageName: ComponentOptions.buildStringOption(),\r\n scDefaultPipelineName: ComponentOptions.buildStringOption(),\r\n scShouldHaveAnalyticsComponent: ComponentOptions.buildBooleanOption(),\r\n scAnalyticsEnabled: ComponentOptions.buildBooleanOption(),\r\n scIsUserAnonymous: ComponentOptions.buildBooleanOption(),\r\n scFieldPrefix: ComponentOptions.buildStringOption(),\r\n scFieldSuffix: ComponentOptions.buildStringOption(),\r\n scExternalFields: ComponentOptions.buildJsonOption(),\r\n scSourceSpecificFields: ComponentOptions.buildJsonOption(),\r\n scPreferSourceSpecificFields: ComponentOptions.buildBooleanOption(),\r\n scIndexSourceName: ComponentOptions.buildStringOption(),\r\n scIsInExperienceEditor: ComponentOptions.buildBooleanOption(),\r\n scMaximumAge: ComponentOptions.buildNumberOption(),\r\n scPageNameFullPath: ComponentOptions.buildStringOption(),\r\n scSiteName: ComponentOptions.buildStringOption(),\r\n };\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: ICoveoForSitecoreContextOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, CoveoForSitecoreContext.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, CoveoForSitecoreContext, options);\r\n this.bind.onRootElement(InitializationEvents.afterComponentsInitialization, this.afterComponentsInitialization);\r\n this.bind.onRootElement(QueryEvents.doneBuildingQuery, this.doneBuildingQuery);\r\n this.bind.onRootElement(OmniboxEvents.buildingQuerySuggest, this.buildingQuerySuggest);\r\n }\r\n\r\n private doneBuildingQuery(args: IDoneBuildingQueryEventArgs): void {\r\n if (this.hasDefaultPipelineNameSet() && this.queryBuilderUsesDefaultPipeline(args.queryBuilder)) {\r\n args.queryBuilder.pipeline = this.options.scDefaultPipelineName;\r\n }\r\n }\r\n\r\n private buildingQuerySuggest(args: IBuildingQuerySuggestArgs): void {\r\n if (this.hasDefaultPipelineNameSet() && this.querySuggestUsesDefaultPipeline(args.payload)) {\r\n args.payload.pipeline = this.options.scDefaultPipelineName;\r\n }\r\n }\r\n\r\n private hasDefaultPipelineNameSet(): boolean {\r\n return this.options.scDefaultPipelineName !== '';\r\n }\r\n\r\n private queryBuilderUsesDefaultPipeline(queryBuilder: QueryBuilder): boolean {\r\n return typeof queryBuilder.pipeline === 'undefined';\r\n }\r\n\r\n private querySuggestUsesDefaultPipeline(querySuggestRequest: IQuerySuggestRequest): boolean {\r\n return typeof querySuggestRequest.pipeline === 'undefined';\r\n }\r\n\r\n private afterComponentsInitialization(): void {\r\n const contextArgs: ISitecoreContextInitializationEventArgs = {\r\n sitecoreItemId: this.options.scItemId,\r\n sitecoreItemUri: this.options.scItemUri,\r\n sitecorePageName: this.options.scPageName,\r\n shouldHaveAnalyticsComponent: this.options.scShouldHaveAnalyticsComponent,\r\n analyticsEnabled: this.options.scAnalyticsEnabled,\r\n indexSourceName: this.options.scIndexSourceName,\r\n currentLanguage: this.options.scCurrentLanguage,\r\n languageFieldName: this.options.scLanguageFieldName,\r\n latestVersionFieldName: this.options.scLatestVersionFieldName,\r\n isInExperienceEditor: this.options.scIsInExperienceEditor,\r\n sitecorePageFullPath: this.options.scPageNameFullPath,\r\n siteName: this.options.scSiteName,\r\n restEndpointUri: this.options.scRestEndpointUri,\r\n analyticsEndpointUri: this.options.scAnalyticsEndpointUri,\r\n };\r\n this.bind.trigger(this.element, SitecoreContextEvents.onSitecoreContextInitialization, contextArgs);\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(CoveoForSitecoreContext);\r\n","import { IComponentDefinition, LazyInitialization } from 'coveo-search-ui';\r\n\r\nexport function lazyCoveoForSitecoreBindWithUserContext(): void {\r\n LazyInitialization.registerLazyComponent('ForSitecoreBindWithUserContext', () => {\r\n return new Promise((resolve, reject) => {\r\n require.ensure(\r\n ['./CoveoForSitecoreBindWithUserContext'],\r\n () => {\r\n const loaded = require('./CoveoForSitecoreBindWithUserContext.ts')[\r\n 'CoveoForSitecoreBindWithUserContext'\r\n ];\r\n resolve(loaded);\r\n },\r\n LazyInitialization.buildErrorCallback('CoveoForSitecoreBindWithUserContext', resolve),\r\n 'CoveoForSitecoreBindWithUserContext'\r\n );\r\n });\r\n });\r\n}\r\n","import { IComponentDefinition, LazyInitialization } from 'coveo-search-ui';\r\n\r\nexport function lazyCoveoGoogleApiPositionProvider(): void {\r\n LazyInitialization.registerLazyComponent('GoogleApiPositionProvider', () => {\r\n return new Promise((resolve, reject) => {\r\n require.ensure(\r\n ['./GoogleApiPositionProvider'],\r\n () => {\r\n const loaded = require('./GoogleApiPositionProvider.ts')[\r\n 'GoogleApiPositionProvider'\r\n ];\r\n resolve(loaded);\r\n },\r\n LazyInitialization.buildErrorCallback('GoogleApiPositionProvider', resolve),\r\n 'GoogleApiPositionProvider'\r\n );\r\n });\r\n });\r\n}\r\n","import { IComponentDefinition, LazyInitialization } from 'coveo-search-ui';\r\n\r\nexport function lazyCoveoNavigatorPositionProvider(): void {\r\n LazyInitialization.registerLazyComponent('NavigatorPositionProvider', () => {\r\n return new Promise((resolve, reject) => {\r\n require.ensure(\r\n ['./NavigatorPositionProvider'],\r\n () => {\r\n const loaded = require('./NavigatorPositionProvider.ts')[\r\n 'NavigatorPositionProvider'\r\n ];\r\n resolve(loaded);\r\n },\r\n LazyInitialization.buildErrorCallback('NavigatorPositionProvider', resolve),\r\n 'NavigatorPositionProvider'\r\n );\r\n });\r\n });\r\n}\r\n","import { IComponentDefinition, LazyInitialization } from 'coveo-search-ui';\r\n\r\nexport function lazyCoveoStaticPositionProvider(): void {\r\n LazyInitialization.registerLazyComponent('StaticPositionProvider', () => {\r\n return new Promise((resolve, reject) => {\r\n require.ensure(\r\n ['./StaticPositionProvider'],\r\n () => {\r\n const loaded = require('./StaticPositionProvider.ts')[\r\n 'StaticPositionProvider'\r\n ];\r\n resolve(loaded);\r\n },\r\n LazyInitialization.buildErrorCallback('StaticPositionProvider', resolve),\r\n 'StaticPositionProvider'\r\n );\r\n });\r\n });\r\n}\r\n","import { IComponentDefinition, LazyInitialization } from 'coveo-search-ui';\r\n\r\nexport function lazyCoveoForSitecoreExpressions(): void {\r\n LazyInitialization.registerLazyComponent('ForSitecoreExpressions', () => {\r\n return new Promise((resolve, reject) => {\r\n require.ensure(\r\n ['./CoveoForSitecoreExpressions'],\r\n () => {\r\n const loaded = require('./CoveoForSitecoreExpressions.ts')[\r\n 'CoveoForSitecoreExpressions'\r\n ];\r\n resolve(loaded);\r\n },\r\n LazyInitialization.buildErrorCallback('CoveoForSitecoreExpressions', resolve),\r\n 'CoveoForSitecoreExpressions'\r\n );\r\n });\r\n });\r\n}\r\n","import { IComponentDefinition, LazyInitialization } from 'coveo-search-ui';\r\n\r\nexport function lazyCoveoForSitecoreExternalContent(): void {\r\n LazyInitialization.registerLazyComponent('ForSitecoreExternalContent', () => {\r\n return new Promise((resolve, reject) => {\r\n require.ensure(\r\n ['./CoveoForSitecoreExternalContent'],\r\n () => {\r\n const loaded = require('./CoveoForSitecoreExternalContent.ts')[\r\n 'CoveoForSitecoreExternalContent'\r\n ];\r\n resolve(loaded);\r\n },\r\n LazyInitialization.buildErrorCallback('CoveoForSitecoreExternalContent', resolve),\r\n 'CoveoForSitecoreExternalContent'\r\n );\r\n });\r\n });\r\n}\r\n","import { IComponentDefinition, LazyInitialization } from 'coveo-search-ui';\r\n\r\nexport function lazyCoveoForSitecoreFilterExpression(): void {\r\n LazyInitialization.registerLazyComponent('ForSitecoreFilterExpression', () => {\r\n return new Promise((resolve, reject) => {\r\n require.ensure(\r\n ['./CoveoForSitecoreFilterExpression'],\r\n () => {\r\n const loaded = require('./CoveoForSitecoreFilterExpression.ts')[\r\n 'CoveoForSitecoreFilterExpression'\r\n ];\r\n resolve(loaded);\r\n },\r\n LazyInitialization.buildErrorCallback('CoveoForSitecoreFilterExpression', resolve),\r\n 'CoveoForSitecoreFilterExpression'\r\n );\r\n });\r\n });\r\n}\r\n","import { IComponentDefinition, LazyInitialization } from 'coveo-search-ui';\r\n\r\nexport function lazyCoveoForSitecoreLocalExpression(): void {\r\n LazyInitialization.registerLazyComponent('ForSitecoreLocalExpression', () => {\r\n return new Promise((resolve, reject) => {\r\n require.ensure(\r\n ['./CoveoForSitecoreLocalExpression'],\r\n () => {\r\n const loaded = require('./CoveoForSitecoreLocalExpression.ts')[\r\n 'CoveoForSitecoreLocalExpression'\r\n ];\r\n resolve(loaded);\r\n },\r\n LazyInitialization.buildErrorCallback('CoveoForSitecoreLocalExpression', resolve),\r\n 'CoveoForSitecoreLocalExpression'\r\n );\r\n });\r\n });\r\n}\r\n","import { IComponentDefinition, LazyInitialization } from 'coveo-search-ui';\r\n\r\nexport function lazyCoveoForSitecoreRankingExpression(): void {\r\n LazyInitialization.registerLazyComponent('ForSitecoreRankingExpression', () => {\r\n return new Promise((resolve, reject) => {\r\n require.ensure(\r\n ['./CoveoForSitecoreRankingExpression'],\r\n () => {\r\n const loaded = require('./CoveoForSitecoreRankingExpression.ts')[\r\n 'CoveoForSitecoreRankingExpression'\r\n ];\r\n resolve(loaded);\r\n },\r\n LazyInitialization.buildErrorCallback('CoveoForSitecoreRankingExpression', resolve),\r\n 'CoveoForSitecoreRankingExpression'\r\n );\r\n });\r\n });\r\n}\r\n","import { IComponentDefinition, LazyInitialization } from 'coveo-search-ui';\r\n\r\nexport function lazyCoveoForSitecoreSyntax(): void {\r\n LazyInitialization.registerLazyComponent('ForSitecoreSyntax', () => {\r\n return new Promise((resolve, reject) => {\r\n require.ensure(\r\n ['./CoveoForSitecoreSyntax'],\r\n () => {\r\n const loaded = require('./CoveoForSitecoreSyntax.ts')[\r\n 'CoveoForSitecoreSyntax'\r\n ];\r\n resolve(loaded);\r\n },\r\n LazyInitialization.buildErrorCallback('CoveoForSitecoreSyntax', resolve),\r\n 'CoveoForSitecoreSyntax'\r\n );\r\n });\r\n });\r\n}\r\n","export function nodeListToArray(elements: HTMLCollectionOf | NodeListOf): HTMLElement[] {\r\n const array: HTMLElement[] = [];\r\n for (var i = 0, length = elements.length; i < length; i++) {\r\n array.push(elements.item(i) as HTMLElement);\r\n }\r\n return array;\r\n}\r\n\r\nexport function cloneElementSafelyForAccessibility(element: HTMLElement): HTMLElement {\r\n const clone = element.cloneNode(true) as HTMLElement;\r\n return removeAllIDAttributes(clone);\r\n}\r\n\r\nexport function removeAllIDAttributes(element: HTMLElement): HTMLElement {\r\n element.removeAttribute('id');\r\n const children = element.querySelectorAll('*[id]');\r\n const length = children.length;\r\n for (let i = 0; i < length; i++) {\r\n children.item(i).removeAttribute('id');\r\n }\r\n return element;\r\n}\r\n","import { Component } from 'coveo-search-ui';\r\n\r\nimport { nodeListToArray } from './HTMLUtils';\r\n\r\nexport class SearchInterfacesProvider {\r\n getSearchInterfacesInPage(componentsIds: string[]): HTMLElement[] {\r\n const searchInterfacesSelector = this.getSearchInterfacesSelectorFromComponentIds(componentsIds);\r\n const searchInterfaces = document.querySelectorAll(searchInterfacesSelector);\r\n return nodeListToArray(searchInterfaces);\r\n }\r\n\r\n private getSearchInterfacesSelectorFromComponentIds(componentIds: string[]): string {\r\n return componentIds.map((componentId) => Component.computeSelectorForType(componentId)).join(', ');\r\n }\r\n}\r\n","import { PublicPathUtils, $$, Logger } from 'coveo-search-ui';\r\nimport { nodeListToArray } from './HTMLUtils';\r\n\r\n/**\r\n * Copied from: https://github.com/coveo/search-ui/blob/master/src/utils/PublicPathUtils.ts\r\n * The only modified part is `getCoveoScript()` which references the .coveo-for-sitecore-script instead of coveo-script.\r\n */\r\nexport class SitecorePublicPathUtils extends PublicPathUtils {\r\n // Overrides the coveo-search-ui implementation to check for our script.\r\n public static getCoveoScript() {\r\n const scriptElements = nodeListToArray(document.querySelectorAll('.coveo-for-sitecore-script')).filter((el) =>\r\n this.isScript(el)\r\n );\r\n if (scriptElements.length !== 0) {\r\n return scriptElements[0];\r\n } else {\r\n // Message is strongly inspired by the one in the coveo-search-ui.\r\n new Logger(this)\r\n .warn(`You should add the class coveo-for-sitecore-script on the script tag that includes the Coveo for Sitecore script. Not doing so may cause the framework to not be able to auto-detect the path to load the lazy chunks in certain environments.\r\n More details here https://docs.coveo.com/en/295/javascript-search-framework/lazy-versus-eager-component-loading#fixing-code-chunks-loading-path-issues`);\r\n // Returning a value so that the original `getDynamicPublicPath` does not warn a second time.\r\n return this.getCurrentScript();\r\n }\r\n }\r\n\r\n private static isScript(el: Element): el is HTMLScriptElement {\r\n return el && $$(el).is('script');\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE_coveo_search_ui__;"],"sourceRoot":""}