{"version":3,"sources":["webpack://CoveoForSitecore/webpack/universalModuleDefinition","webpack://CoveoForSitecore/webpack/bootstrap","webpack://CoveoForSitecore/./node_modules/dateformat/lib/dateformat.js","webpack://CoveoForSitecore/./src/BaseModules.ts","webpack://CoveoForSitecore/./src/ComponentsEntry.ts","webpack://CoveoForSitecore/./src/EventsModules.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/nodes/QueryFilterNodeExpressionResolver.ts","webpack://CoveoForSitecore/./src/resolvers/nodes/QueryRankingNodeExpressionResolver.ts","webpack://CoveoForSitecore/./src/resolvers/nodes/queryNodes/QueryNodeTreeParser.ts","webpack://CoveoForSitecore/./src/resolvers/nodes/queryNodes/QueryNodeTreeParserFactory.ts","webpack://CoveoForSitecore/./src/resolvers/nodes/queryNodes/parsers/AndNodeParser.ts","webpack://CoveoForSitecore/./src/resolvers/nodes/queryNodes/parsers/FalseNodeParser.ts","webpack://CoveoForSitecore/./src/resolvers/nodes/queryNodes/parsers/FieldNodeParser.ts","webpack://CoveoForSitecore/./src/resolvers/nodes/queryNodes/parsers/NotNodeParser.ts","webpack://CoveoForSitecore/./src/resolvers/nodes/queryNodes/parsers/OrNodeParser.ts","webpack://CoveoForSitecore/./src/resolvers/nodes/queryNodes/parsers/TrueNodeParser.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/rest/EndpointCaller.ts","webpack://CoveoForSitecore/./src/ui/analytics/CoveoForSitecoreAnalytics.ts","webpack://CoveoForSitecore/./src/ui/analytics/CoveoForSitecoreConfigureSearchHub.ts","webpack://CoveoForSitecore/./src/ui/analytics/SendAnalyticsToSitecore.ts","webpack://CoveoForSitecore/./src/ui/analytics/ValidateAnalyticsIncluded.ts","webpack://CoveoForSitecore/./src/ui/context/CoveoForSitecoreBindWithUserContext.ts","webpack://CoveoForSitecore/./src/ui/context/CoveoForSitecoreContext.ts","webpack://CoveoForSitecore/./src/ui/distance/GoogleApiPositionProvider.ts","webpack://CoveoForSitecore/./src/ui/distance/NavigatorPositionProvider.ts","webpack://CoveoForSitecore/./src/ui/distance/StaticPositionProvider.ts","webpack://CoveoForSitecore/./src/ui/scopes/CoveoForSitecoreExpressions.ts","webpack://CoveoForSitecore/./src/ui/scopes/CoveoForSitecoreExternalContent.ts","webpack://CoveoForSitecore/./src/ui/scopes/CoveoForSitecoreFilterExpression.ts","webpack://CoveoForSitecore/./src/ui/scopes/CoveoForSitecoreLocalExpression.ts","webpack://CoveoForSitecore/./src/ui/scopes/CoveoForSitecoreRankingExpression.ts","webpack://CoveoForSitecore/./src/ui/scopes/CoveoForSitecoreSyntax.ts","webpack://CoveoForSitecore/./src/utils/HTMLUtils.ts","webpack://CoveoForSitecore/./src/utils/SearchInterfaceProvider.ts","webpack://CoveoForSitecore/./src/utils/TabUtils.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;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,IAAI,GAAG,IAAI;AAChC,kJAAkJ,EAAE;AACpJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","file":"CoveoForSitecore.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// The module cache\n \tvar installedModules = {};\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\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\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/ComponentsEntry.ts\");\n","/*\r\n * Date Format 1.2.3\r\n * (c) 2007-2009 Steven Levithan \r\n * MIT license\r\n *\r\n * Includes enhancements by Scott Trenda \r\n * and Kris Kowal \r\n *\r\n * Accepts a date, a mask, or a date and a mask.\r\n * Returns a formatted version of the given date.\r\n * The date defaults to the current date/time.\r\n * The mask defaults to dateFormat.masks.default.\r\n */\r\n\r\n(function(global) {\r\n 'use strict';\r\n\r\n var dateFormat = (function() {\r\n var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\\1?|[LloSZWN]|'[^']*'|'[^']*'/g;\r\n var timezone = /\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g;\r\n var timezoneClip = /[^-+\\dA-Z]/g;\r\n \r\n // Regexes and supporting functions are cached through closure\r\n return function (date, mask, utc, gmt) {\r\n \r\n // You can't provide utc if you skip other args (use the 'UTC:' mask prefix)\r\n if (arguments.length === 1 && kindOf(date) === 'string' && !/\\d/.test(date)) {\r\n mask = date;\r\n date = undefined;\r\n }\r\n \r\n date = date || new Date;\r\n \r\n if(!(date instanceof Date)) {\r\n date = new Date(date);\r\n }\r\n \r\n if (isNaN(date)) {\r\n throw TypeError('Invalid date');\r\n }\r\n \r\n mask = String(dateFormat.masks[mask] || mask || dateFormat.masks['default']);\r\n \r\n // Allow setting the utc/gmt argument via the mask\r\n var maskSlice = mask.slice(0, 4);\r\n if (maskSlice === 'UTC:' || maskSlice === 'GMT:') {\r\n mask = mask.slice(4);\r\n utc = true;\r\n if (maskSlice === 'GMT:') {\r\n gmt = true;\r\n }\r\n }\r\n \r\n var _ = utc ? 'getUTC' : 'get';\r\n var d = date[_ + 'Date']();\r\n var D = date[_ + 'Day']();\r\n var m = date[_ + 'Month']();\r\n var y = date[_ + 'FullYear']();\r\n var H = date[_ + 'Hours']();\r\n var M = date[_ + 'Minutes']();\r\n var s = date[_ + 'Seconds']();\r\n var L = date[_ + 'Milliseconds']();\r\n var o = utc ? 0 : date.getTimezoneOffset();\r\n var W = getWeek(date);\r\n var N = getDayOfWeek(date);\r\n var flags = {\r\n d: d,\r\n dd: pad(d),\r\n ddd: dateFormat.i18n.dayNames[D],\r\n dddd: dateFormat.i18n.dayNames[D + 7],\r\n m: m + 1,\r\n mm: pad(m + 1),\r\n mmm: dateFormat.i18n.monthNames[m],\r\n mmmm: dateFormat.i18n.monthNames[m + 12],\r\n yy: String(y).slice(2),\r\n yyyy: y,\r\n h: H % 12 || 12,\r\n hh: pad(H % 12 || 12),\r\n H: H,\r\n HH: pad(H),\r\n M: M,\r\n MM: pad(M),\r\n s: s,\r\n ss: pad(s),\r\n l: pad(L, 3),\r\n L: pad(Math.round(L / 10)),\r\n t: H < 12 ? 'a' : 'p',\r\n tt: H < 12 ? 'am' : 'pm',\r\n T: H < 12 ? 'A' : 'P',\r\n TT: H < 12 ? 'AM' : 'PM',\r\n Z: gmt ? 'GMT' : utc ? 'UTC' : (String(date).match(timezone) || ['']).pop().replace(timezoneClip, ''),\r\n o: (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),\r\n S: ['th', 'st', 'nd', 'rd'][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10],\r\n W: W,\r\n N: N\r\n };\r\n \r\n return mask.replace(token, function (match) {\r\n if (match in flags) {\r\n return flags[match];\r\n }\r\n return match.slice(1, match.length - 1);\r\n });\r\n };\r\n })();\r\n\r\n dateFormat.masks = {\r\n 'default': 'ddd mmm dd yyyy HH:MM:ss',\r\n 'shortDate': 'm/d/yy',\r\n 'mediumDate': 'mmm d, yyyy',\r\n 'longDate': 'mmmm d, yyyy',\r\n 'fullDate': 'dddd, mmmm d, yyyy',\r\n 'shortTime': 'h:MM TT',\r\n 'mediumTime': 'h:MM:ss TT',\r\n 'longTime': 'h:MM:ss TT Z',\r\n 'isoDate': 'yyyy-mm-dd',\r\n 'isoTime': 'HH:MM:ss',\r\n 'isoDateTime': 'yyyy-mm-dd\\'T\\'HH:MM:sso',\r\n 'isoUtcDateTime': 'UTC:yyyy-mm-dd\\'T\\'HH:MM:ss\\'Z\\'',\r\n 'expiresHeaderFormat': 'ddd, dd mmm yyyy HH:MM:ss Z'\r\n };\r\n\r\n // Internationalization strings\r\n dateFormat.i18n = {\r\n dayNames: [\r\n 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat',\r\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\r\n ],\r\n monthNames: [\r\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec',\r\n 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'\r\n ]\r\n };\r\n\r\nfunction pad(val, len) {\r\n val = String(val);\r\n len = len || 2;\r\n while (val.length < len) {\r\n val = '0' + val;\r\n }\r\n return val;\r\n}\r\n\r\n/**\r\n * Get the ISO 8601 week number\r\n * Based on comments from\r\n * http://techblog.procurios.nl/k/n618/news/view/33796/14863/Calculate-ISO-8601-week-and-year-in-javascript.html\r\n *\r\n * @param {Object} `date`\r\n * @return {Number}\r\n */\r\nfunction getWeek(date) {\r\n // Remove time components of date\r\n var targetThursday = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n\r\n // Change date to Thursday same week\r\n targetThursday.setDate(targetThursday.getDate() - ((targetThursday.getDay() + 6) % 7) + 3);\r\n\r\n // Take January 4th as it is always in week 1 (see ISO 8601)\r\n var firstThursday = new Date(targetThursday.getFullYear(), 0, 4);\r\n\r\n // Change date to Thursday same week\r\n firstThursday.setDate(firstThursday.getDate() - ((firstThursday.getDay() + 6) % 7) + 3);\r\n\r\n // Check if daylight-saving-time-switch occurred and correct for it\r\n var ds = targetThursday.getTimezoneOffset() - firstThursday.getTimezoneOffset();\r\n targetThursday.setHours(targetThursday.getHours() - ds);\r\n\r\n // Number of weeks between target Thursday and first Thursday\r\n var weekDiff = (targetThursday - firstThursday) / (86400000*7);\r\n return 1 + Math.floor(weekDiff);\r\n}\r\n\r\n/**\r\n * Get ISO-8601 numeric representation of the day of the week\r\n * 1 (for Monday) through 7 (for Sunday)\r\n * \r\n * @param {Object} `date`\r\n * @return {Number}\r\n */\r\nfunction getDayOfWeek(date) {\r\n var dow = date.getDay();\r\n if(dow === 0) {\r\n dow = 7;\r\n }\r\n return dow;\r\n}\r\n\r\n/**\r\n * kind-of shortcut\r\n * @param {*} val\r\n * @return {String}\r\n */\r\nfunction kindOf(val) {\r\n if (val === null) {\r\n return 'null';\r\n }\r\n\r\n if (val === undefined) {\r\n return 'undefined';\r\n }\r\n\r\n if (typeof val !== 'object') {\r\n return typeof val;\r\n }\r\n\r\n if (Array.isArray(val)) {\r\n return 'array';\r\n }\r\n\r\n return {}.toString.call(val)\r\n .slice(8, -1).toLowerCase();\r\n};\r\n\r\n\r\n\r\n if (typeof define === 'function' && define.amd) {\r\n define(function () {\r\n return dateFormat;\r\n });\r\n } else if (typeof exports === 'object') {\r\n module.exports = dateFormat;\r\n } else {\r\n global.dateFormat = dateFormat;\r\n }\r\n})(this);\r\n","export { Context } from './base/Context';\r\nexport { Prebinding } from './base/Prebinding';\r\nexport { SearchEndpoint } from './base/SearchEndpoint';\r\n","export { CoveoForSitecoreAnalytics } from './ui/analytics/CoveoForSitecoreAnalytics';\r\nexport { CoveoForSitecoreConfigureSearchHub } from './ui/analytics/CoveoForSitecoreConfigureSearchHub';\r\nexport { SendAnalyticsToSitecore } from './ui/analytics/SendAnalyticsToSitecore';\r\nexport { ValidateAnalyticsIncluded } from './ui/analytics/ValidateAnalyticsIncluded';\r\n\r\nexport { CoveoForSitecoreBindWithUserContext } from './ui/context/CoveoForSitecoreBindWithUserContext';\r\nexport { CoveoForSitecoreContext } from './ui/context/CoveoForSitecoreContext';\r\n\r\nexport { CoveoForSitecoreExpressions } from './ui/scopes/CoveoForSitecoreExpressions';\r\nexport { CoveoForSitecoreSyntax } from './ui/scopes/CoveoForSitecoreSyntax';\r\nexport { CoveoForSitecoreRankingExpression } from './ui/scopes/CoveoForSitecoreRankingExpression';\r\nexport { CoveoForSitecoreExternalContent } from './ui/scopes/CoveoForSitecoreExternalContent';\r\nexport { CoveoForSitecoreFilterExpression } from './ui/scopes/CoveoForSitecoreFilterExpression';\r\nexport { CoveoForSitecoreLocalExpression } from './ui/scopes/CoveoForSitecoreLocalExpression';\r\n\r\nexport { GoogleApiPositionProvider } from './ui/distance/GoogleApiPositionProvider';\r\nexport { NavigatorPositionProvider } from './ui/distance/NavigatorPositionProvider';\r\nexport { StaticPositionProvider } from './ui/distance/StaticPositionProvider';\r\n\r\nexport * from './EventsModules';\r\nexport * from './BaseModules';\r\n\r\nexport * from './base/Initialization';\r\n","export { SitecoreContextEvents } from './events/ContextEvents';\r\nexport { SitecoreExpressionEvents } from './events/ExpressionEvents';\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 {\n private searchPageElement: HTMLElement;\n private searchEndpointUri: string;\n private analyticsEndpointUri: string;\n private organizationId: string;\n private searchHub: string;\n private isInExperienceEditor: boolean;\n\n private UNABLE_TO_RETRIEVE_ACCESS_TOKEN = 'Unable to retrieve access token.';\n\n public initializeSearchPage(element: HTMLElement): void {\n this.searchPageElement = element;\n this.searchEndpointUri = element.dataset.searchEndpointUri;\n this.analyticsEndpointUri = element.dataset.analyticsEndpointUri;\n this.organizationId = element.dataset.organizationId;\n this.searchHub = element.dataset.searchHub;\n this.isInExperienceEditor = element.dataset.isInExperienceEditor === 'true';\n\n this.getAccessToken = this.getAccessToken.bind(this);\n\n this.getAccessToken()\n .then((accessToken) => {\n this.initializeCoveo(element, accessToken);\n })\n .catch((err) => {\n if (this.isInExperienceEditor) {\n this.displayErrorMessageInExperienceEditor(err.message);\n }\n });\n }\n\n private async getAccessToken() {\n return this.fetchAccessToken()\n .then((response) => {\n if (response.ok) {\n return response.json();\n }\n\n throw Error(this.UNABLE_TO_RETRIEVE_ACCESS_TOKEN);\n })\n .then((data) => data.token)\n .catch((err) => {\n if (this.isInExperienceEditor) {\n this.displayErrorMessageInExperienceEditor(err.message);\n }\n\n return '';\n });\n }\n\n private initializeCoveo(element: HTMLElement, accessToken: string): void {\n const searchPageRoot: HTMLElement = element.querySelector('.CoveoSearchInterface');\n\n if (searchPageRoot && typeof Coveo !== 'undefined') {\n Coveo.SearchEndpoint.endpoints['default'] = new Coveo.SearchEndpoint({\n restUri: `${this.searchEndpointUri}/rest/search/`,\n accessToken: accessToken,\n queryStringArguments: {\n organizationId: this.organizationId,\n },\n renewAccessToken: this.getAccessToken,\n });\n\n Coveo.Analytics.options.searchHub['defaultValue'] = this.searchHub;\n Coveo.Analytics.options.organization['defaultValue'] = this.organizationId;\n Coveo.Analytics.options.endpoint['defaultValue'] = `${this.analyticsEndpointUri}/rest/ua/`;\n\n Coveo.init(searchPageRoot);\n }\n }\n\n private async fetchAccessToken() {\n return await fetch(`/coveo/rest/token?t=${Date.now()}`);\n }\n\n private displayErrorMessageInExperienceEditor(message: string): void {\n const errorMessageElement = `\n ${message}\n `;\n\n this.searchPageElement.insertAdjacentHTML('afterbegin', errorMessageElement);\n }\n}\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 { IQueryNode } from './queryNodes/QueryNodeTypes';\r\nimport { IQueryNodeParser } from './queryNodes/QueryNodeParser';\r\nimport { QueryNodeTreeParserFactory } from './queryNodes/QueryNodeTreeParserFactory';\r\n\r\nimport { QueryBuilder, Logger, Assert } from 'coveo-search-ui';\r\n\r\nexport interface IQueryFilterNode {\r\n advanced: IQueryNode;\r\n}\r\n\r\nexport class QueryFilterNodeExpressionResolver implements IQueryFilterNodeExpressionResolver {\r\n constructor(private parser: IQueryNodeParser) {}\r\n\r\n parseQueryFilterNode(queryFilterNode: IQueryFilterNode): QueryBuilder {\r\n Assert.isNotNull(queryFilterNode);\r\n const queryBuilder = new QueryBuilder();\r\n queryBuilder.advancedExpression.add(this.parser.parse(queryFilterNode.advanced));\r\n return queryBuilder;\r\n }\r\n}\r\n\r\nexport interface IQueryFilterNodeExpressionResolver {\r\n parseQueryFilterNode(queryFilterNode: IQueryFilterNode): QueryBuilder;\r\n}\r\n\r\nexport interface IQueryFilterNodeExpressionResolverFactory {\r\n createQueryFilterNodeExpression(logger: Logger): IQueryFilterNodeExpressionResolver;\r\n}\r\n\r\nexport class QueryFilterNodeExpressionResolverFactory implements IQueryFilterNodeExpressionResolverFactory {\r\n createQueryFilterNodeExpression(logger: Logger): IQueryFilterNodeExpressionResolver {\r\n const parserFactory = new QueryNodeTreeParserFactory();\r\n const parser = parserFactory.createParser(logger);\r\n return new QueryFilterNodeExpressionResolver(parser);\r\n }\r\n}\r\n","import { IQueryNode } from './queryNodes/QueryNodeTypes';\r\nimport { IQueryNodeParser } from './queryNodes/QueryNodeParser';\r\nimport { QueryNodeTreeParserFactory } from './queryNodes/QueryNodeTreeParserFactory';\r\nimport { ICoveoFieldHandler } from '../../handlers/CoveoFieldsHandler';\r\nimport { Context } from '../../base/Context';\r\n\r\nimport { QueryBuilder, IRankingFunction, Logger } from 'coveo-search-ui';\r\n\r\nexport interface IQueryRankingNode {\r\n rankingExpressions: IRankingExpressionNode[];\r\n rankingFunctions: IRankingFunction[];\r\n textualRankingExpressions: ITextualRankingExpression[];\r\n}\r\n\r\nexport interface IRankingExpressionNode {\r\n expression: IQueryNode;\r\n modifier: number;\r\n}\r\n\r\nexport interface ITextualRankingExpression {\r\n expression: string;\r\n}\r\n\r\n/*\r\n Matches \"@[x]\"\" and return x as matching group.\r\n Examples:\r\n * @[blublu] gives \"blublu\".\r\n * @[[blublu]] gives \"[blublu]\"\r\n * @[blublu]] gives \"blublu]\"\r\n*/\r\nconst rankingExpressionFieldsRegex: RegExp = /@\\[(.*?\\]*)\\]/g;\r\n\r\nexport class QueryRankingNodeExpressionResolver implements IQueryRankingNodeExpressionResolver {\r\n constructor(private parser: IQueryNodeParser, private fieldsHandler: ICoveoFieldHandler) {}\r\n\r\n parseQueryRankingNode(queryRankingNode: IQueryRankingNode): QueryBuilder {\r\n const queryBuilder = new QueryBuilder();\r\n queryRankingNode.rankingExpressions.map((ranking) => {\r\n const parsedExpression = this.parser.parse(ranking.expression);\r\n if (parsedExpression !== '') {\r\n queryBuilder.advancedExpression.add(\r\n `$qre(expression:'${parsedExpression}', modifier:${ranking.modifier})`\r\n );\r\n }\r\n });\r\n queryRankingNode.rankingFunctions.forEach((rankingFunction) => {\r\n rankingFunction.expression = this.translateRankingExpressionFieldNames(rankingFunction.expression);\r\n queryBuilder.rankingFunctions.push(rankingFunction);\r\n });\r\n queryRankingNode.textualRankingExpressions\r\n .filter((rankingExpression) => rankingExpression.expression !== '')\r\n .forEach((rankingExpression) => {\r\n queryBuilder.advancedExpression.add(rankingExpression.expression);\r\n });\r\n return queryBuilder;\r\n }\r\n\r\n private translateRankingExpressionFieldNames(expression: string): string {\r\n expression.replace(rankingExpressionFieldsRegex, (matchingExpression, matchingGroup) => {\r\n return this.fieldsHandler.toCoveo(matchingGroup);\r\n });\r\n return expression;\r\n }\r\n}\r\n\r\nexport interface IQueryRankingNodeExpressionResolver {\r\n parseQueryRankingNode(queryRankingNode: IQueryRankingNode): QueryBuilder;\r\n}\r\n\r\nexport class QueryRankingNodeExpressionResolverFactory {\r\n createQueryFilterNodeExpression(logger: Logger): IQueryRankingNodeExpressionResolver {\r\n const parserFactory = new QueryNodeTreeParserFactory();\r\n const parser = parserFactory.createParser(logger);\r\n return new QueryRankingNodeExpressionResolver(parser, Context.fields);\r\n }\r\n}\r\n","import { IQueryNode } from './QueryNodeTypes';\r\nimport { IQueryNodeParser, IRegisterableQueryNodeParser } from './QueryNodeParser';\r\nimport { Logger } from 'coveo-search-ui';\r\n\r\nexport class QueryNodeTreeParser implements IQueryNodeTreeParser {\r\n private parsers: { [key: string]: (node: IQueryNode) => string } = {};\r\n\r\n constructor(private logger: Logger) {}\r\n\r\n registerParser(queryNodeParser: IRegisterableQueryNodeParser): void {\r\n this.parsers[queryNodeParser.type] = (node: IQueryNode) => queryNodeParser.parse(node as T);\r\n }\r\n\r\n parse(node: IQueryNode): string {\r\n try {\r\n return this.parsers[node.type](node);\r\n } catch (exception) {\r\n this.logger.error('Error when parsing a query node:', node, exception);\r\n return '';\r\n }\r\n }\r\n}\r\n\r\nexport interface IQueryNodeTreeParser extends IQueryNodeParser {\r\n registerParser(queryNodeParser: IRegisterableQueryNodeParser): void;\r\n}\r\n","import { AndNodeParser } from './parsers/AndNodeParser';\r\nimport { FalseNodeParser } from './parsers/FalseNodeParser';\r\nimport { FieldNodeParser } from './parsers/FieldNodeParser';\r\nimport { NotNodeParser } from './parsers/NotNodeParser';\r\nimport { OrNodeParser } from './parsers/OrNodeParser';\r\nimport { TrueNodeParser } from './parsers/TrueNodeParser';\r\nimport { IQueryNodeTreeParser, QueryNodeTreeParser } from './QueryNodeTreeParser';\r\nimport { Context } from '../../../base/Context';\r\n\r\nimport { Logger } from 'coveo-search-ui';\r\n\r\nexport class QueryNodeTreeParserFactory implements IQueryNodeTreeParserFactory {\r\n createParser(logger: Logger): IQueryNodeTreeParser {\r\n const parser: IQueryNodeTreeParser = new QueryNodeTreeParser(logger);\r\n\r\n parser.registerParser(new AndNodeParser(parser));\r\n parser.registerParser(new FalseNodeParser());\r\n parser.registerParser(new FieldNodeParser(Context.fields));\r\n parser.registerParser(new NotNodeParser(parser));\r\n parser.registerParser(new OrNodeParser(parser));\r\n parser.registerParser(new TrueNodeParser());\r\n\r\n return parser;\r\n }\r\n}\r\n\r\nexport interface IQueryNodeTreeParserFactory {\r\n createParser(logger: Logger): IQueryNodeTreeParser;\r\n}\r\n","import { IRegisterableQueryNodeParser, IQueryNodeParser } from '../QueryNodeParser';\r\nimport { IAndNode } from '../QueryNodeTypes';\r\nexport class AndNodeParser implements IRegisterableQueryNodeParser {\r\n type: string = 'and';\r\n\r\n constructor(private nodeParser: IQueryNodeParser) {}\r\n\r\n parse(node: IAndNode): string {\r\n return `(${this.nodeParser.parse(node.left)} ${this.nodeParser.parse(node.right)})`;\r\n }\r\n}\r\n","import { IFalseNode } from '../QueryNodeTypes';\r\nimport { IRegisterableQueryNodeParser } from '../QueryNodeParser';\r\nexport class FalseNodeParser implements IRegisterableQueryNodeParser {\r\n type: string = 'false';\r\n\r\n parse(node: IFalseNode): string {\r\n return `(NOT @uri)`;\r\n }\r\n}\r\n","import { IRegisterableQueryNodeParser } from '../QueryNodeParser';\r\nimport { ICoveoFieldHandler } from '../../../../handlers/CoveoFieldsHandler';\r\nimport { IFieldNode } from '../QueryNodeTypes';\r\nimport { QueryUtils } from 'coveo-search-ui';\r\n\r\nimport * as dateformat from 'dateformat';\r\n\r\nexport class FieldNodeParser implements IRegisterableQueryNodeParser {\r\n private indexDateFormat = 'yyyy/mm/dd@HH:MM:ss';\r\n type: string = 'field';\r\n\r\n constructor(private fieldHandler: ICoveoFieldHandler) {}\r\n\r\n parse(node: IFieldNode): string {\r\n if (node.fieldValueType.name === 'string') {\r\n return this.parseString(\r\n this.fieldHandler.toCoveo(`@${node.fieldName}`),\r\n node.operator.name,\r\n node.fieldValues\r\n );\r\n } else {\r\n return QueryUtils.buildFieldExpression(\r\n this.fieldHandler.toCoveo(`@${node.fieldName}`),\r\n node.operator.name,\r\n this.parseFieldValuesFromType(node.fieldValueType.name, node.fieldValues)\r\n );\r\n }\r\n }\r\n\r\n parseFieldValuesFromType(type: string, values: any[]): string[] {\r\n switch (type) {\r\n case 'boolean':\r\n return values.map((value) => this.parseBoolean(value));\r\n case 'date':\r\n return values.map((value) => this.parseDate(value));\r\n case 'number':\r\n return values.map((value) => this.parseNumber(value));\r\n default:\r\n return values;\r\n }\r\n }\r\n\r\n parseBoolean(value: any): string {\r\n return !!value ? '1' : '0';\r\n }\r\n\r\n parseDate(value: any): string {\r\n const date = new Date(parseInt(value.replace('/Date(', '')));\r\n return dateformat(date, this.indexDateFormat);\r\n }\r\n\r\n parseNumber(value: any): string {\r\n return value.toString();\r\n }\r\n\r\n parseString(fieldName: any, operator: string, values: string[]): string {\r\n if (values.some((value) => value !== '')) {\r\n return QueryUtils.buildFieldExpression(\r\n `${fieldName}`,\r\n operator,\r\n values.filter((value) => value !== '')\r\n );\r\n } else {\r\n return this.parseEmptyField(fieldName, operator);\r\n }\r\n }\r\n\r\n parseEmptyField(fieldName: string, operator: string): string {\r\n switch (operator) {\r\n case '=':\r\n case '==':\r\n return fieldName;\r\n case '!=':\r\n case '<>':\r\n return `(NOT ${fieldName})`;\r\n default:\r\n throw `Operator \"${operator}\" for field \"${fieldName}\" requires a non-empty value.`;\r\n }\r\n }\r\n}\r\n","import { IRegisterableQueryNodeParser, IQueryNodeParser } from '../QueryNodeParser';\r\nimport { INotNode } from '../QueryNodeTypes';\r\n\r\nexport class NotNodeParser implements IRegisterableQueryNodeParser {\r\n type: string = 'not';\r\n\r\n constructor(private nodeParser: IQueryNodeParser) {}\r\n\r\n parse(node: INotNode): string {\r\n return `NOT ${this.nodeParser.parse(node.operand)}`;\r\n }\r\n}\r\n","import { IRegisterableQueryNodeParser, IQueryNodeParser } from '../QueryNodeParser';\r\nimport { IOrNode } from '../QueryNodeTypes';\r\n\r\nexport class OrNodeParser implements IRegisterableQueryNodeParser {\r\n type: string = 'or';\r\n\r\n constructor(private nodeParser: IQueryNodeParser) {}\r\n\r\n parse(node: IOrNode): string {\r\n return `(${this.nodeParser.parse(node.left)} OR ${this.nodeParser.parse(node.right)})`;\r\n }\r\n}\r\n","import { IRegisterableQueryNodeParser } from '../QueryNodeParser';\r\nimport { ITrueNode } from '../QueryNodeTypes';\r\n\r\nexport class TrueNodeParser implements IRegisterableQueryNodeParser {\r\n type: string = 'true';\r\n\r\n parse(node: ITrueNode): string {\r\n return '@uri';\r\n }\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.helpers.hasOwnProperty(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.scRestEndpointUri}/ua`;\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';\n\nconst CSS_SORT_BOTH_DIRECTIONS = '.CoveoSort[data-sc-enable-both-sort-directions=\"true\"]';\nconst CSS_DROPDOWN_SELECTOR = '.CoveoSortDropdown';\nconst DESCENDING_CRITERIA = 'Descending';\nconst ASCENDING_CRITERIA = 'Ascending';\n\nconst createReversedSortElement = (sortElement: HTMLElement): HTMLElement => {\n const sortElementReverse: HTMLElement = sortElement.cloneNode(false) as HTMLElement;\n const sortCriteria = JSON.parse(sortElementReverse.dataset.sortCriteria);\n\n sortCriteria.direction = sortCriteria.direction === DESCENDING_CRITERIA ? ASCENDING_CRITERIA : DESCENDING_CRITERIA;\n\n sortElementReverse.dataset.sortCriteria = JSON.stringify(sortCriteria);\n\n return sortElementReverse;\n};\n\nconst addDirectionToCaption = (element: HTMLElement): void => {\n const sortCriteria = JSON.parse(element.dataset.sortCriteria);\n\n element.dataset.caption =\n sortCriteria.direction === DESCENDING_CRITERIA\n ? `${element.dataset.caption} ${Context.labels.translate('Descending')}`\n : `${element.dataset.caption} ${Context.labels.translate('Ascending')}`;\n};\n\nconst adjustSortDropdown = (rootElement: HTMLElement): void => {\n const dropdownElement: HTMLElement = rootElement.querySelector(CSS_DROPDOWN_SELECTOR);\n\n if (dropdownElement) {\n for (const sortElement of rootElement.querySelectorAll(CSS_SORT_BOTH_DIRECTIONS) as any) {\n const sortElementReverse: HTMLElement = createReversedSortElement(sortElement);\n\n sortElement.insertAdjacentElement('afterend', sortElementReverse);\n\n addDirectionToCaption(sortElement);\n addDirectionToCaption(sortElementReverse);\n }\n }\n};\n\nexport const adjustDOMElements = (rootElement: HTMLElement): void => {\n adjustSortDropdown(rootElement);\n};\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 { IStringMap, IEndpointCallParameters, EndpointCaller, ISuccessResponse } from 'coveo-search-ui';\r\n\r\nexport class EndpointCallerWrapper implements IEndpointCaller {\r\n private endpointCaller: EndpointCaller;\r\n\r\n constructor(endpointCaller?: EndpointCaller) {\r\n this.endpointCaller = endpointCaller || new EndpointCaller();\r\n }\r\n\r\n public sendPost(url: string, postData: IStringMap): Promise> {\r\n const callOptions: IEndpointCallParameters = {\r\n errorsAsSuccess: false,\r\n method: 'POST',\r\n queryString: [],\r\n requestData: postData,\r\n url: url,\r\n responseType: 'text',\r\n requestDataType: 'application/json',\r\n };\r\n return this.endpointCaller.call(callOptions);\r\n }\r\n}\r\n\r\nexport interface IEndpointCaller {\r\n sendPost(url: string, postData: IStringMap): Promise>;\r\n}\r\n","import {\r\n Component,\r\n AnalyticsEvents,\r\n ComponentOptions,\r\n IComponentBindings,\r\n IChangeAnalyticsCustomDataEventArgs,\r\n InitializationEvents,\r\n Initialization,\r\n IStringMap,\r\n} from 'coveo-search-ui';\r\n\r\nimport { ISitecoreContextInitializationEventArgs, SitecoreContextEvents } from '../../events/ContextEvents';\r\n\r\nexport interface ICoveoForSitecoreAnalyticsOptions {\r\n scAnalyticsCustomMetadata: IStringMap;\r\n scOriginContext: string;\r\n scOverrideOriginWithPageName: boolean;\r\n scOverrideCurrentLanguage: boolean;\r\n endpoint: string;\r\n}\r\n\r\nexport class CoveoForSitecoreAnalytics extends Component {\r\n static ID = 'ForSitecoreAnalytics';\r\n\r\n static options: ICoveoForSitecoreAnalyticsOptions = {\r\n scAnalyticsCustomMetadata: ComponentOptions.buildJsonOption(),\r\n scOriginContext: ComponentOptions.buildStringOption({\r\n defaultValue: 'WebsiteSearch',\r\n }),\r\n scOverrideOriginWithPageName: ComponentOptions.buildBooleanOption({\r\n defaultValue: false,\r\n }),\r\n scOverrideCurrentLanguage: ComponentOptions.buildBooleanOption({\r\n defaultValue: true,\r\n }),\r\n endpoint: ComponentOptions.buildStringOption(),\r\n };\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: ICoveoForSitecoreAnalyticsOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, CoveoForSitecoreAnalytics.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, CoveoForSitecoreAnalytics, options);\r\n\r\n this.bind.onRootElement(InitializationEvents.afterInitialization, () => this.onAfterInitialization());\r\n this.bind.onRootElement(\r\n SitecoreContextEvents.onSitecoreContextInitialization,\r\n (args) => this.onSitecoreContextInitialization(args)\r\n );\r\n }\r\n\r\n private onAfterInitialization(): void {\r\n if (this.bindings.usageAnalytics && this.options.scOriginContext) {\r\n this.bindings.usageAnalytics.setOriginContext(this.options.scOriginContext);\r\n }\r\n }\r\n\r\n private onSitecoreContextInitialization(sitecoreContext: ISitecoreContextInitializationEventArgs): void {\r\n this.completeAnalyticsCustomDataWithSitecoreContext(sitecoreContext);\r\n this.setUsageAnalyticsEnpointServiceUrl(sitecoreContext);\r\n }\r\n\r\n private completeAnalyticsCustomDataWithSitecoreContext(\r\n sitecoreContext: ISitecoreContextInitializationEventArgs\r\n ): void {\r\n this.bind.onRootElement(\r\n AnalyticsEvents.changeAnalyticsCustomData,\r\n (args: IChangeAnalyticsCustomDataEventArgs) => {\r\n const options = this.options;\r\n if (options) {\r\n if (options.scOverrideCurrentLanguage && !!sitecoreContext.currentLanguage) {\r\n args.language = sitecoreContext.currentLanguage;\r\n }\r\n if (options.scOverrideOriginWithPageName && !!sitecoreContext.sitecorePageName) {\r\n args.originLevel1 = sitecoreContext.sitecorePageName;\r\n }\r\n\r\n const customMetadata = {\r\n pageFullPath: sitecoreContext.sitecorePageFullPath,\r\n sitename: sitecoreContext.siteName, // Kept for backward-compatibility with legacy components\r\n siteName: sitecoreContext.siteName,\r\n };\r\n\r\n const userContext = window['CoveoForSitecoreUserContext'];\r\n if (!!userContext && !!userContext.handler) {\r\n const context = userContext.handler.getContext();\r\n if (!!context) {\r\n for (const key in context) {\r\n _.extend(customMetadata, {\r\n ['context_' + key]: context[key],\r\n });\r\n }\r\n }\r\n }\r\n\r\n if (options.scAnalyticsCustomMetadata) {\r\n _.extend(customMetadata, options.scAnalyticsCustomMetadata);\r\n }\r\n\r\n _.extend(args.metaObject, customMetadata);\r\n }\r\n }\r\n );\r\n }\r\n\r\n private setUsageAnalyticsEnpointServiceUrl(sitecoreContext: ISitecoreContextInitializationEventArgs): void {\r\n if (\r\n this.bindings.usageAnalytics &&\r\n this.bindings.usageAnalytics.endpoint &&\r\n this.bindings.usageAnalytics.endpoint.options\r\n ) {\r\n this.bindings.usageAnalytics.endpoint.options.serviceUrl =\r\n this.options.endpoint || sitecoreContext.analyticsEndpointUri;\r\n }\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(CoveoForSitecoreAnalytics);\r\n","import { Component, ComponentOptions, Initialization, InitializationEvents, IComponentBindings } from 'coveo-search-ui';\r\n\r\nconst searchHubAttribute = 'searchHub';\r\n\r\nexport interface ICoveoForSitecoreAnalyticsOptions {\r\n scSearchHub: string;\r\n}\r\n\r\nexport class CoveoForSitecoreConfigureSearchHub extends Component {\r\n static ID = 'ForSitecoreConfigureSearchHub';\r\n\r\n static options: ICoveoForSitecoreAnalyticsOptions = {\r\n scSearchHub: ComponentOptions.buildStringOption(),\r\n };\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: ICoveoForSitecoreAnalyticsOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, CoveoForSitecoreConfigureSearchHub.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, CoveoForSitecoreConfigureSearchHub, options);\r\n\r\n if (!!this.options.scSearchHub) {\r\n this.bind.oneRootElement(\r\n InitializationEvents.afterComponentsInitialization,\r\n this.onAfterComponentsInitialization\r\n );\r\n }\r\n }\r\n\r\n private onAfterComponentsInitialization(): void {\r\n const currentSearchHub = this.componentOptionsModel.get(searchHubAttribute);\r\n if (!currentSearchHub) {\r\n this.componentOptionsModel.set(searchHubAttribute, this.options.scSearchHub);\r\n }\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(CoveoForSitecoreConfigureSearchHub);\r\n","import { IEndpointCaller, EndpointCallerWrapper } from '../../rest/EndpointCaller';\r\nimport { ISitecoreContextInitializationEventArgs, SitecoreContextEvents } from '../../events/ContextEvents';\r\n\r\nimport {\r\n AnalyticsEvents,\r\n IAnalyticsSearchEventsArgs,\r\n IAnalyticsDocumentViewEventArgs,\r\n IAnalyticsCustomEventArgs,\r\n Component,\r\n IComponentBindings,\r\n ComponentOptions,\r\n IStringMap,\r\n Initialization,\r\n} from 'coveo-search-ui';\r\n\r\nexport interface ISendAnalyticsToSitecoreOptions {\r\n scAnalyticsEndpointUri: string;\r\n}\r\n\r\nexport class SendAnalyticsToSitecore extends Component {\r\n static ID = 'SendAnalyticsToSitecore';\r\n\r\n static options: ISendAnalyticsToSitecoreOptions = {\r\n scAnalyticsEndpointUri: ComponentOptions.buildStringOption({\r\n required: true,\r\n postProcessing: (value) => {\r\n return typeof value !== 'undefined' && value[value.length - 1] === '/'\r\n ? value.slice(0, value.length - 1)\r\n : value;\r\n },\r\n }),\r\n };\r\n\r\n private endpointCaller: IEndpointCaller;\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: ISendAnalyticsToSitecoreOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, SendAnalyticsToSitecore.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, SendAnalyticsToSitecore, options);\r\n\r\n this.endpointCaller = new EndpointCallerWrapper();\r\n this.bind.onRootElement(\r\n SitecoreContextEvents.onSitecoreContextInitialization,\r\n this.onSitecoreContextInitialization\r\n );\r\n }\r\n\r\n private onSitecoreContextInitialization(sitecoreContext: ISitecoreContextInitializationEventArgs): void {\r\n if (sitecoreContext.analyticsEnabled) {\r\n this.bind.onRootElement(AnalyticsEvents.searchEvent, (args: IAnalyticsSearchEventsArgs) => {\r\n this.postAnalytics('searches', 'searchEvents', args.searchEvents, sitecoreContext);\r\n });\r\n this.bind.onRootElement(AnalyticsEvents.documentViewEvent, (args: IAnalyticsDocumentViewEventArgs) => {\r\n this.postAnalytics('documentViews', 'documentViewEvents', args.documentViewEvent, sitecoreContext);\r\n });\r\n this.bind.onRootElement(AnalyticsEvents.customEvent, (args: IAnalyticsCustomEventArgs) => {\r\n this.postAnalytics('custom', 'customEvents', args.customEvent, sitecoreContext);\r\n });\r\n }\r\n }\r\n\r\n private postAnalytics(\r\n eventAction: string,\r\n eventType: string,\r\n eventData: any,\r\n sitecoreContext: ISitecoreContextInitializationEventArgs\r\n ): void {\r\n let parsedEventData: Array = [];\r\n if (typeof eventData !== 'undefined') {\r\n parsedEventData = parsedEventData.concat(eventData);\r\n }\r\n parsedEventData\r\n .filter((data: any) => {\r\n return typeof data !== 'undefined';\r\n })\r\n .forEach((data: any) => {\r\n data.sitecoreItemId = sitecoreContext.sitecoreItemId;\r\n });\r\n\r\n const postData: IStringMap = {};\r\n postData[eventType] = JSON.stringify(parsedEventData);\r\n\r\n this.endpointCaller.sendPost(`${this.options.scAnalyticsEndpointUri}/${eventAction}`, postData);\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(SendAnalyticsToSitecore);\r\n","import { Component, ComponentOptions, IComponentBindings, Initialization } from 'coveo-search-ui';\r\nimport { SitecoreContextEvents, ISitecoreContextInitializationEventArgs } from '../../events/ContextEvents';\r\n\r\nexport interface IValidateAnalyticsIncludedOptions {\r\n componentName: string;\r\n}\r\n\r\nexport class ValidateAnalyticsIncluded extends Component {\r\n static ID = 'ValidateAnalyticsIncluded';\r\n\r\n static options: IValidateAnalyticsIncludedOptions = {\r\n componentName: ComponentOptions.buildStringOption({\r\n defaultValue: '',\r\n attrName: 'data-component-name',\r\n }),\r\n };\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: IValidateAnalyticsIncludedOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, ValidateAnalyticsIncluded.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, ValidateAnalyticsIncluded, options);\r\n\r\n this.bind.onRootElement(\r\n SitecoreContextEvents.onSitecoreContextInitialization,\r\n this.onSitecoreContextInitialization\r\n );\r\n }\r\n\r\n private onSitecoreContextInitialization(sitecoreContextArgs: ISitecoreContextInitializationEventArgs): void {\r\n if (sitecoreContextArgs.shouldHaveAnalyticsComponent && this.searchInterfaceHasNoBoundAnalyticsComponent()) {\r\n if (sitecoreContextArgs.isInExperienceEditor) {\r\n let errorMessage = getErrorMessage(this.options.componentName || 'Search Interface');\r\n\r\n if (!this.checkIfErrorInErrorMessage(errorMessage)) {\r\n console.warn(errorMessage);\r\n this.element.appendChild(this.createErrorMessageElement(errorMessage));\r\n }\r\n }\r\n }\r\n }\r\n\r\n private checkIfErrorInErrorMessage(errorMessage: string): boolean {\r\n for (let index = 0; index < this.element.children.length; index++) {\r\n const element = this.element.children[index];\r\n if (element.textContent.indexOf(errorMessage, 0) !== -1) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private searchInterfaceHasNoBoundAnalyticsComponent(): boolean {\r\n return (\r\n this.searchInterface.getComponents('Analytics').length === 0 &&\r\n this.searchInterface.getComponents('ForSitecoreAnalytics').length === 0\r\n );\r\n }\r\n\r\n private createErrorMessageElement(errorMessage: string): HTMLElement {\r\n const errorSpan = document.createElement('span');\r\n\r\n errorSpan.classList.add('errorMessage');\r\n errorSpan.textContent = errorMessage;\r\n\r\n return errorSpan;\r\n }\r\n}\r\n\r\nfunction getErrorMessage(component: string): string {\r\n return `The Coveo Analytics are not enabled for this ${component}. Insert a Coveo For Sitecore Analytics component to record Coveo Usage Analytics data.`;\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(ValidateAnalyticsIncluded);\r\n","import {\r\n Component,\r\n ComponentOptions,\r\n IBuildingQuerySuggestArgs,\r\n IComponentBindings,\r\n IDoneBuildingQueryEventArgs,\r\n Initialization,\r\n OmniboxEvents,\r\n QueryEvents,\r\n} from 'coveo-search-ui';\r\n\r\nexport interface ICoveoForSitecoreBindWithUserContextOptions {}\r\n\r\nexport class CoveoForSitecoreBindWithUserContext extends Component {\r\n static ID = 'ForSitecoreBindWithUserContext';\r\n\r\n static options: ICoveoForSitecoreBindWithUserContextOptions = {};\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: ICoveoForSitecoreBindWithUserContextOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, CoveoForSitecoreBindWithUserContext.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, CoveoForSitecoreBindWithUserContext, options);\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 const context = window['CoveoForSitecoreUserContext'];\r\n if (!!context && !!context.handler) {\r\n args.queryBuilder.addContext(context.handler.getContext());\r\n }\r\n }\r\n\r\n private buildingQuerySuggest(args: IBuildingQuerySuggestArgs): void {\r\n const context = window['CoveoForSitecoreUserContext'];\r\n if (!!context && !!context.handler) {\r\n args.payload.context = context.handler.getContext();\r\n }\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(CoveoForSitecoreBindWithUserContext);\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 {\r\n Component,\r\n ComponentOptions,\r\n IComponentBindings,\r\n Initialization,\r\n ISuccessResponse,\r\n IResolvingPositionEventArgs,\r\n IGeolocationPosition,\r\n DistanceEvents,\r\n} from 'coveo-search-ui';\r\n\r\nimport { IEndpointCaller, EndpointCallerWrapper } from '../../rest/EndpointCaller';\r\n\r\nconst GOOGLE_MAP_BASE_URL = 'https://www.googleapis.com/geolocation/v1/geolocate';\r\n\r\nexport interface IGoogleApiPositionProviderOptions {\r\n googleApiKey: string;\r\n}\r\n\r\ninterface IGeolocationResponse {\r\n location: IGeolocationResponseLocation;\r\n}\r\n\r\ninterface IGeolocationResponseLocation {\r\n lat: number;\r\n lng: number;\r\n}\r\n\r\nexport class GoogleApiPositionProvider extends Component {\r\n public static ID = 'GoogleApiPositionProvider';\r\n public static options: IGoogleApiPositionProviderOptions = {\r\n googleApiKey: ComponentOptions.buildStringOption({\r\n required: true,\r\n }),\r\n };\r\n\r\n private endpointCaller: IEndpointCaller;\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: IGoogleApiPositionProviderOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, GoogleApiPositionProvider.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, GoogleApiPositionProvider, options);\r\n this.endpointCaller = new EndpointCallerWrapper();\r\n\r\n this.bind.onRootElement(DistanceEvents.onResolvingPosition, this.onResolvingPosition);\r\n this.validateProperties();\r\n }\r\n\r\n private onResolvingPosition(args: IResolvingPositionEventArgs): void {\r\n if (this.canProvideDistance()) {\r\n args.providers.push({\r\n getPosition: () => this.getPosition(),\r\n });\r\n }\r\n }\r\n\r\n private canProvideDistance(): boolean {\r\n return !!this.options.googleApiKey;\r\n }\r\n\r\n private getPosition(): Promise {\r\n return this.endpointCaller\r\n .sendPost(`${GOOGLE_MAP_BASE_URL}?key=${this.options.googleApiKey}`, {})\r\n .then((positionData: ISuccessResponse) => {\r\n const location = positionData.data.location;\r\n return {\r\n latitude: location.lat,\r\n longitude: location.lng,\r\n };\r\n });\r\n }\r\n\r\n private validateProperties(): void {\r\n if (!this.options.googleApiKey) {\r\n this.logger.error(\r\n `You must set the \"googleApiKey\" property for this component to work properly. It will be disabled.`\r\n );\r\n }\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(GoogleApiPositionProvider);\r\n","import {\r\n Component,\r\n ComponentOptions,\r\n IComponentBindings,\r\n Initialization,\r\n IResolvingPositionEventArgs,\r\n IGeolocationPosition,\r\n DistanceEvents,\r\n} from 'coveo-search-ui';\r\n\r\nexport interface INavigatorPositionProviderOptions {}\r\n\r\nexport class NavigatorPositionProvider extends Component {\r\n public static ID = 'NavigatorPositionProvider';\r\n public static options: INavigatorPositionProviderOptions = {};\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: INavigatorPositionProviderOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, NavigatorPositionProvider.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, NavigatorPositionProvider, options);\r\n\r\n this.bind.onRootElement(DistanceEvents.onResolvingPosition, this.onResolvingPosition);\r\n }\r\n\r\n private onResolvingPosition(args: IResolvingPositionEventArgs): void {\r\n args.providers.push({\r\n getPosition: () => this.getPosition(),\r\n });\r\n }\r\n\r\n private getPosition(): Promise {\r\n return new Promise((resolve, reject) => {\r\n navigator.geolocation.getCurrentPosition(\r\n (position) => {\r\n resolve({\r\n latitude: position.coords.latitude,\r\n longitude: position.coords.longitude,\r\n });\r\n },\r\n (error) => {\r\n reject(error);\r\n }\r\n );\r\n });\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(NavigatorPositionProvider);\r\n","import {\r\n Component,\r\n ComponentOptions,\r\n IComponentBindings,\r\n Initialization,\r\n IResolvingPositionEventArgs,\r\n IGeolocationPosition,\r\n DistanceEvents,\r\n} from 'coveo-search-ui';\r\n\r\nexport interface IStaticPositionProviderOptions {\r\n longitude: number;\r\n latitude: number;\r\n}\r\n\r\nexport class StaticPositionProvider extends Component {\r\n public static ID = 'StaticPositionProvider';\r\n public static options: IStaticPositionProviderOptions = {\r\n latitude: ComponentOptions.buildNumberOption({\r\n required: true,\r\n float: true,\r\n }),\r\n longitude: ComponentOptions.buildNumberOption({\r\n required: true,\r\n float: true,\r\n }),\r\n };\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: IStaticPositionProviderOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, StaticPositionProvider.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, StaticPositionProvider, options);\r\n\r\n this.bind.onRootElement(DistanceEvents.onResolvingPosition, this.onResolvingPosition);\r\n }\r\n\r\n private onResolvingPosition(args: IResolvingPositionEventArgs): void {\r\n if (this.canGetPosition()) {\r\n args.providers.push({\r\n getPosition: () => this.getPosition(),\r\n });\r\n }\r\n }\r\n\r\n private canGetPosition(): boolean {\r\n return !!this.options.latitude && !!this.options.longitude;\r\n }\r\n\r\n private getPosition(): Promise {\r\n return Promise.resolve({\r\n longitude: this.options.longitude,\r\n latitude: this.options.latitude,\r\n });\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(StaticPositionProvider);\r\n","import {\r\n Component,\r\n ComponentOptions,\r\n IComponentBindings,\r\n Initialization,\r\n IBuildingQueryEventArgs,\r\n QueryEvents,\r\n ExpressionBuilder,\r\n} from 'coveo-search-ui';\r\n\r\nimport { ISitecoreContextInitializationEventArgs, SitecoreContextEvents } from '../../events/ContextEvents';\r\nimport {\r\n IBuildingExternalContentEventArgs,\r\n IBuildingLocalSitecoreInstanceExpressionEventArgs,\r\n SitecoreExpressionEvents,\r\n} from '../../events/ExpressionEvents';\r\n\r\nexport interface ICoveoForSitecoreExpressionOptions {}\r\n\r\nconst IS_COVEO_FOR_SITECORE_EXPRESSIONS_EVENT_REGISTERED = 'coveoForSitecoreEventRegistered';\r\n\r\nexport class CoveoForSitecoreExpressions extends Component {\r\n static ID = 'ForSitecoreExpressions';\r\n\r\n static options: ICoveoForSitecoreExpressionOptions = {};\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: ICoveoForSitecoreExpressionOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, CoveoForSitecoreExpressions.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, CoveoForSitecoreExpressions, options);\r\n this.bind.onRootElement(\r\n SitecoreContextEvents.onSitecoreContextInitialization,\r\n this.afterComponentsInitialization\r\n );\r\n }\r\n\r\n private afterComponentsInitialization(contextArgs: ISitecoreContextInitializationEventArgs): void {\r\n if (!this.root.dataset[IS_COVEO_FOR_SITECORE_EXPRESSIONS_EVENT_REGISTERED]) {\r\n this.root.dataset[IS_COVEO_FOR_SITECORE_EXPRESSIONS_EVENT_REGISTERED] = 'true';\r\n this.bind.onRootElement(QueryEvents.buildingQuery, (buildingQueryArgs: IBuildingQueryEventArgs) => {\r\n this.onBuildingQuery(buildingQueryArgs, contextArgs);\r\n });\r\n }\r\n }\r\n\r\n private onBuildingQuery(\r\n buildingQueryArgs: IBuildingQueryEventArgs,\r\n contextArgs: ISitecoreContextInitializationEventArgs\r\n ): void {\r\n const externalContentArgs: IBuildingExternalContentEventArgs = this.triggerBuildingSitecoreExternalContent();\r\n const localSitecoreInstanceArgs: IBuildingLocalSitecoreInstanceExpressionEventArgs = this.triggerBuildingLocalSitecoreInstanceEvent(\r\n externalContentArgs.sources\r\n );\r\n\r\n if (!localSitecoreInstanceArgs.expression.isEmpty()) {\r\n buildingQueryArgs.queryBuilder.constantExpression.add(localSitecoreInstanceArgs.expression.build(' OR '));\r\n }\r\n }\r\n\r\n private triggerBuildingSitecoreExternalContent(): IBuildingExternalContentEventArgs {\r\n const externalContentArgs: IBuildingExternalContentEventArgs = {\r\n sources: [],\r\n };\r\n\r\n this.bind.trigger(\r\n this.element,\r\n SitecoreExpressionEvents.onBuildingSitecoreExternalContent,\r\n externalContentArgs\r\n );\r\n\r\n return {\r\n sources: this.filterUnique(externalContentArgs.sources),\r\n };\r\n }\r\n\r\n private triggerBuildingLocalSitecoreInstanceEvent(\r\n externalSources: string[]\r\n ): IBuildingLocalSitecoreInstanceExpressionEventArgs {\r\n const localSitecoreInstanceArgs: IBuildingLocalSitecoreInstanceExpressionEventArgs = {\r\n expression: new ExpressionBuilder(),\r\n externalSources: externalSources,\r\n buildingQueryAlreadyProcessed: false,\r\n };\r\n\r\n this.bind.trigger(\r\n this.element,\r\n SitecoreExpressionEvents.onBuildingLocalSitecoreInstanceExpression,\r\n localSitecoreInstanceArgs\r\n );\r\n\r\n return localSitecoreInstanceArgs;\r\n }\r\n\r\n private filterUnique(array: T[]): T[] {\r\n return array.filter((value, index, self) => self.indexOf(value) === index);\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(CoveoForSitecoreExpressions);\r\n","import { Component, ComponentOptions, IComponentBindings, Initialization } from 'coveo-search-ui';\r\n\r\nimport { isTabCurrentlySelected } from '../../utils/TabUtils';\r\nimport { IBuildingExternalContentEventArgs, SitecoreExpressionEvents } from '../../events/ExpressionEvents';\r\n\r\nexport interface ICoveoForSitecoreExternalContentOptions {\r\n scSources: string[];\r\n scScopeToTab: string;\r\n}\r\n\r\nexport class CoveoForSitecoreExternalContent extends Component {\r\n static ID = 'ForSitecoreExternalContent';\r\n\r\n static options: ICoveoForSitecoreExternalContentOptions = {\r\n scSources: ComponentOptions.buildListOption(),\r\n scScopeToTab: ComponentOptions.buildStringOption(),\r\n };\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: ICoveoForSitecoreExternalContentOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, CoveoForSitecoreExternalContent.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, CoveoForSitecoreExternalContent, options);\r\n this.bind.onRootElement(\r\n SitecoreExpressionEvents.onBuildingSitecoreExternalContent,\r\n this.onBuildingSitecoreExternalContent\r\n );\r\n }\r\n\r\n private onBuildingSitecoreExternalContent(\r\n buildingExternalContentEventArgs: IBuildingExternalContentEventArgs\r\n ): void {\r\n if (this.shouldAddExternalContent()) {\r\n buildingExternalContentEventArgs.sources.push(...this.options.scSources);\r\n }\r\n }\r\n\r\n private shouldAddExternalContent(): boolean {\r\n return isTabCurrentlySelected(this.options.scScopeToTab, this.searchInterface);\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(CoveoForSitecoreExternalContent);\r\n","import {\r\n Component,\r\n ComponentOptions,\r\n IComponentBindings,\r\n Initialization,\r\n QueryEvents,\r\n IBuildingQueryEventArgs,\r\n} from 'coveo-search-ui';\r\n\r\nimport { isTabCurrentlySelected } from '../../utils/TabUtils';\r\nimport {\r\n IQueryFilterNode,\r\n IQueryFilterNodeExpressionResolver,\r\n QueryFilterNodeExpressionResolverFactory,\r\n IQueryFilterNodeExpressionResolverFactory,\r\n} from '../../resolvers/nodes/QueryFilterNodeExpressionResolver';\r\n\r\nexport interface ICoveoForSitecoreFilterExpressionOptions {\r\n scScopeToTab: string;\r\n scAdvancedFilter: string;\r\n scFilterScopeNode: IQueryFilterNode;\r\n}\r\n\r\nexport class QueryFilterNodeOptions {\r\n public static parseQueryFilterNode(rawValue: string): IQueryFilterNode {\r\n return JSON.parse(this.unescapeAttributeValue(rawValue));\r\n }\r\n\r\n private static unescapeAttributeValue(value: string): string {\r\n return value\r\n .replace(/</g, '<')\r\n .replace(/&g‌​t;/g, '>')\r\n .replace(/"/g, '\"')\r\n .replace(/&/g, '&');\r\n }\r\n}\r\n\r\nexport class CoveoForSitecoreFilterExpression extends Component {\r\n private queryFilterNodeResolver: IQueryFilterNodeExpressionResolver;\r\n\r\n static ID = 'ForSitecoreFilterExpression';\r\n\r\n static options: ICoveoForSitecoreFilterExpressionOptions = {\r\n scScopeToTab: ComponentOptions.buildStringOption(),\r\n scAdvancedFilter: ComponentOptions.buildStringOption(),\r\n scFilterScopeNode: ComponentOptions.buildCustomOption((value) => {\r\n return QueryFilterNodeOptions.parseQueryFilterNode(value);\r\n }),\r\n };\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: ICoveoForSitecoreFilterExpressionOptions,\r\n public bindings: IComponentBindings,\r\n private queryFilterNodeFactory: IQueryFilterNodeExpressionResolverFactory = new QueryFilterNodeExpressionResolverFactory()\r\n ) {\r\n super(element, CoveoForSitecoreFilterExpression.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, CoveoForSitecoreFilterExpression, options);\r\n this.bind.onRootElement(QueryEvents.buildingQuery, this.onBuildingQuery);\r\n }\r\n\r\n private onBuildingQuery(buildingQuery: IBuildingQueryEventArgs): void {\r\n if (this.shouldAddFilterExpression()) {\r\n if (!!this.options.scAdvancedFilter) {\r\n buildingQuery.queryBuilder.advancedExpression.add(this.options.scAdvancedFilter.trim());\r\n }\r\n if (!!this.options.scFilterScopeNode) {\r\n try {\r\n const resolver = this.getQueryFilterNodeExpressionResolver();\r\n const resultingBuilder = resolver.parseQueryFilterNode(this.options.scFilterScopeNode);\r\n buildingQuery.queryBuilder.advancedExpression.fromExpressionBuilder(\r\n resultingBuilder.advancedExpression\r\n );\r\n } catch (exception) {\r\n this.logger.error('Could not parse the query filter node.', exception);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private getQueryFilterNodeExpressionResolver(): IQueryFilterNodeExpressionResolver {\r\n return (\r\n this.queryFilterNodeResolver ||\r\n (this.queryFilterNodeResolver = this.queryFilterNodeFactory.createQueryFilterNodeExpression(this.logger))\r\n );\r\n }\r\n\r\n private shouldAddFilterExpression(): boolean {\r\n return isTabCurrentlySelected(this.options.scScopeToTab, this.searchInterface);\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(CoveoForSitecoreFilterExpression);\r\n","import { Component, ComponentOptions, ExpressionBuilder, IComponentBindings, Initialization } from 'coveo-search-ui';\r\n\r\nimport { ISitecoreContextInitializationEventArgs, SitecoreContextEvents } from '../../events/ContextEvents';\r\nimport {\r\n IBuildingLocalSitecoreInstanceExpressionEventArgs,\r\n SitecoreExpressionEvents,\r\n} from '../../events/ExpressionEvents';\r\n\r\nexport interface ICoveoForSitecoreLocalExpressionOptions {\r\n scFilterOnSitecoreContextDatabase: boolean;\r\n scFilterOnCurrentLanguage: boolean;\r\n scFilterOnLatestVersion: boolean;\r\n}\r\n\r\nexport class CoveoForSitecoreLocalExpression extends Component {\r\n static ID = 'ForSitecoreLocalExpression';\r\n\r\n static options: ICoveoForSitecoreLocalExpressionOptions = {\r\n scFilterOnSitecoreContextDatabase: ComponentOptions.buildBooleanOption(),\r\n scFilterOnCurrentLanguage: ComponentOptions.buildBooleanOption(),\r\n scFilterOnLatestVersion: ComponentOptions.buildBooleanOption(),\r\n };\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: ICoveoForSitecoreLocalExpressionOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, CoveoForSitecoreLocalExpression.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, CoveoForSitecoreLocalExpression, options);\r\n this.bind.onRootElement(SitecoreContextEvents.onSitecoreContextInitialization, this.onContextInitialization);\r\n }\r\n\r\n private onContextInitialization(context: ISitecoreContextInitializationEventArgs): void {\r\n this.bind.onRootElement(\r\n SitecoreExpressionEvents.onBuildingLocalSitecoreInstanceExpression,\r\n (builderFilterExpression: IBuildingLocalSitecoreInstanceExpressionEventArgs) =>\r\n this.onBuildingFilterExpression(builderFilterExpression, context)\r\n );\r\n }\r\n\r\n private onBuildingFilterExpression(\r\n buildingFilterExpressionEventArgs: IBuildingLocalSitecoreInstanceExpressionEventArgs,\r\n context: ISitecoreContextInitializationEventArgs\r\n ): void {\r\n if (!buildingFilterExpressionEventArgs.buildingQueryAlreadyProcessed) {\r\n buildingFilterExpressionEventArgs.buildingQueryAlreadyProcessed = true;\r\n const expression = new ExpressionBuilder();\r\n\r\n if (this.options.scFilterOnCurrentLanguage) {\r\n expression.addFieldExpression(`@${context.languageFieldName}`, '==', [context.currentLanguage]);\r\n }\r\n\r\n if (this.options.scFilterOnLatestVersion) {\r\n expression.addFieldExpression(`@${context.latestVersionFieldName}`, '==', ['1']);\r\n }\r\n\r\n if (this.options.scFilterOnSitecoreContextDatabase) {\r\n expression.addFieldExpression('@source', '==', [context.indexSourceName]);\r\n }\r\n\r\n if (!expression.isEmpty()) {\r\n buildingFilterExpressionEventArgs.expression.add(expression.build());\r\n }\r\n\r\n if (\r\n buildingFilterExpressionEventArgs.externalSources &&\r\n buildingFilterExpressionEventArgs.externalSources.length > 0\r\n ) {\r\n const sourceExpression = new ExpressionBuilder();\r\n\r\n sourceExpression.addFieldExpression('@source', '==', buildingFilterExpressionEventArgs.externalSources);\r\n if (!sourceExpression.isEmpty()) {\r\n buildingFilterExpressionEventArgs.expression.add(sourceExpression.build(' OR '));\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(CoveoForSitecoreLocalExpression);\r\n","import {\r\n Component,\r\n ComponentOptions,\r\n IComponentBindings,\r\n Initialization,\r\n QueryEvents,\r\n QueryBuilder,\r\n IBuildingQueryEventArgs,\r\n} from 'coveo-search-ui';\r\n\r\nimport { isTabCurrentlySelected } from '../../utils/TabUtils';\r\nimport {\r\n IQueryRankingNode,\r\n IQueryRankingNodeExpressionResolver,\r\n QueryRankingNodeExpressionResolverFactory,\r\n} from '../../resolvers/nodes/QueryRankingNodeExpressionResolver';\r\n\r\nexport interface ICoveoForSitecoreRankingExpressionOptions {\r\n scScopeToTab: string;\r\n scRankingExpression: string;\r\n scRankingScopeNode: IQueryRankingNode;\r\n}\r\n\r\nexport class CoveoForSitecoreRankingExpression extends Component {\r\n private nodeResolver: IQueryRankingNodeExpressionResolver;\r\n\r\n static ID = 'ForSitecoreRankingExpression';\r\n\r\n static options: ICoveoForSitecoreRankingExpressionOptions = {\r\n scScopeToTab: ComponentOptions.buildStringOption(),\r\n scRankingExpression: ComponentOptions.buildStringOption(),\r\n scRankingScopeNode: ComponentOptions.buildCustomOption((value) => {\r\n return JSON.parse(value);\r\n }),\r\n };\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: ICoveoForSitecoreRankingExpressionOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, CoveoForSitecoreRankingExpression.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, CoveoForSitecoreRankingExpression, options);\r\n this.bind.onRootElement(QueryEvents.buildingQuery, this.onBuildingQuery);\r\n }\r\n\r\n private onBuildingQuery(buildingQuery: IBuildingQueryEventArgs): void {\r\n if (this.shouldAddRankingExpression()) {\r\n if (!!this.options.scRankingExpression) {\r\n buildingQuery.queryBuilder.advancedExpression.add(this.options.scRankingExpression.trim());\r\n }\r\n if (!!this.options.scRankingScopeNode) {\r\n const resolver = this.getNodeResolver();\r\n const builder = resolver.parseQueryRankingNode(this.options.scRankingScopeNode);\r\n builder.rankingFunctions.forEach((rankingFunction) =>\r\n buildingQuery.queryBuilder.rankingFunctions.push(rankingFunction)\r\n );\r\n this.copyQueryBuilderAttributes(builder, buildingQuery.queryBuilder);\r\n }\r\n }\r\n }\r\n\r\n private copyQueryBuilderAttributes(from: QueryBuilder, to: QueryBuilder): void {\r\n from.rankingFunctions.forEach((rankingFunction) => to.rankingFunctions.push(rankingFunction));\r\n to.advancedExpression.fromExpressionBuilder(from.advancedExpression);\r\n }\r\n\r\n private getNodeResolver(): IQueryRankingNodeExpressionResolver {\r\n return (\r\n this.nodeResolver ||\r\n (this.nodeResolver = new QueryRankingNodeExpressionResolverFactory().createQueryFilterNodeExpression(\r\n this.logger\r\n ))\r\n );\r\n }\r\n\r\n private shouldAddRankingExpression(): boolean {\r\n return isTabCurrentlySelected(this.options.scScopeToTab, this.searchInterface);\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(CoveoForSitecoreRankingExpression);\r\n","import {\r\n Component,\r\n ComponentOptions,\r\n IComponentBindings,\r\n Initialization,\r\n IBuildingQueryEventArgs,\r\n QueryEvents,\r\n ExpressionBuilder,\r\n} from 'coveo-search-ui';\r\n\r\nimport { ICoveoFieldHandler } from '../../handlers/CoveoFieldsHandler';\r\n\r\nimport { Context } from '../../base/Context';\r\n\r\nexport interface ICoveoForSitecoreSyntaxOptions {}\r\n\r\nexport class CoveoForSitecoreSyntax extends Component {\r\n static ID = 'ForSitecoreSyntax';\r\n\r\n static options: ICoveoForSitecoreSyntaxOptions = {};\r\n\r\n private static readonly IS_COVEO_FOR_SITECORE_SYNTAX_EVENT_REGISTERED = 'coveoForSitecoreSyntaxEventRegistered';\r\n\r\n private static readonly SITECORE_FIELD_NAME_REGEX = /@[\\w\\_]*(?=\\=|\\=\\=|\\<\\>|\\s|$)/gi;\r\n\r\n private fieldHandler: ICoveoFieldHandler;\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: ICoveoForSitecoreSyntaxOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, CoveoForSitecoreSyntax.ID, bindings);\r\n\r\n this.fieldHandler = Context.fields;\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, CoveoForSitecoreSyntax, options);\r\n\r\n if (!this.root.dataset[CoveoForSitecoreSyntax.IS_COVEO_FOR_SITECORE_SYNTAX_EVENT_REGISTERED]) {\r\n this.root.dataset[CoveoForSitecoreSyntax.IS_COVEO_FOR_SITECORE_SYNTAX_EVENT_REGISTERED] = 'true';\r\n this.bind.onRootElement(QueryEvents.doneBuildingQuery, this.onDoneBuildingQuery);\r\n }\r\n }\r\n\r\n public setFieldHandler(fieldHandler: ICoveoFieldHandler): void {\r\n this.fieldHandler = fieldHandler;\r\n }\r\n\r\n private onDoneBuildingQuery(buildingQueryArgs: IBuildingQueryEventArgs): void {\r\n this.replaceSitecoreFieldExpressionsByCoveoFieldExpressions(buildingQueryArgs.queryBuilder.expression);\r\n }\r\n\r\n private replaceSitecoreFieldExpressionsByCoveoFieldExpressions(expressionBuilder: ExpressionBuilder): void {\r\n const expressionParts = expressionBuilder.getParts();\r\n expressionParts.forEach((expression) => {\r\n const originalExpression = expression;\r\n\r\n expression = this.replaceSitecoreFieldNamesByCoveoFieldNames(expression);\r\n\r\n expressionBuilder.remove(originalExpression);\r\n expressionBuilder.add(expression);\r\n });\r\n }\r\n\r\n private replaceSitecoreFieldNamesByCoveoFieldNames(expression: string): string {\r\n const sitecoreFieldNamesMatched = this.extractSitecoreFieldNames(expression);\r\n if (sitecoreFieldNamesMatched) {\r\n sitecoreFieldNamesMatched.forEach((sitecoreFieldName) => {\r\n const coveoFieldName = this.convertUnaryFieldExpressionToCoveoUnaryFieldExpression(sitecoreFieldName);\r\n expression = expression.replace(sitecoreFieldName, coveoFieldName);\r\n });\r\n }\r\n return expression;\r\n }\r\n\r\n private extractSitecoreFieldNames(expression: string): string[] {\r\n return expression.match(CoveoForSitecoreSyntax.SITECORE_FIELD_NAME_REGEX);\r\n }\r\n\r\n private convertUnaryFieldExpressionToCoveoUnaryFieldExpression(unaryFieldExpression: string): string {\r\n if (!this.fieldHandler.isCoveoFieldName(unaryFieldExpression)) {\r\n return this.fieldHandler.toCoveo(unaryFieldExpression);\r\n } else {\r\n return unaryFieldExpression;\r\n }\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(CoveoForSitecoreSyntax);\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 { SearchInterface, QueryStateModel } from 'coveo-search-ui';\r\n\r\nexport function isTabCurrentlySelected(selected: string, searchInterface: SearchInterface): boolean {\r\n return !(!!selected && selected !== searchInterface.queryStateModel.get(QueryStateModel.attributesEnum.t));\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE_coveo_search_ui__;"],"sourceRoot":""}