{"version":3,"sources":["webpack://CoveoForSitecore/./src/ui/scopes/CoveoForSitecoreExpressions.ts"],"names":["coveo_search_ui_1","__webpack_require__","ContextEvents_1","ExpressionEvents_1","CoveoForSitecoreExpressions","_super","element","options","bindings","_this","call","this","ID","ComponentOptions","initComponentOptions","bind","onRootElement","SitecoreContextEvents","onSitecoreContextInitialization","afterComponentsInitialization","__extends","prototype","contextArgs","root","dataset","QueryEvents","buildingQuery","buildingQueryArgs","onBuildingQuery","externalContentArgs","triggerBuildingSitecoreExternalContent","localSitecoreInstanceExpression","triggerBuildingLocalSitecoreInstanceEvent","constantExpressionBuilder","ExpressionBuilder","expression","isEmpty","add","build","sources","length","addFieldExpression","collections","queryBuilder","constantExpression","advancedExpressionBuilder","indexSourceName","concat","advancedExpression","trigger","SitecoreExpressionEvents","onBuildingSitecoreExternalContent","filterUnique","localSitecoreInstanceArgs","onBuildingLocalSitecoreInstanceExpression","array","filter","value","index","self","indexOf","Component","exports","Initialization","registerAutoCreateComponent"],"mappings":"0fAAA,IAAAA,EAAAC,EAAA,GAUAC,EAAAD,EAAA,GACAE,EAAAF,EAAA,GAUAG,EAAA,SAAAC,GAKI,SAAAD,EAAmBE,EAA6BC,EAAoDC,GAApG,IAAAC,EACIJ,EAAAK,KAAAC,KAAML,EAASF,EAA4BQ,GAAIJ,IAASG,YADzCF,EAAAH,UAA6BG,EAAAF,UAAoDE,EAAAD,WAGhGC,EAAKF,QAAUP,EAAAa,iBAAiBC,qBAAqBR,EAASF,EAA6BG,GAC3FE,EAAKM,KAAKC,cAAcd,EAAAe,sBAAsBC,gCAAiCT,EAAKU,iCAuE5F,OAhFiDC,EAAAhB,EAAAC,GAYrCD,EAAAiB,UAAAF,8BAAR,SAAsCG,GAAtC,IAAAb,EAAAE,KACSA,KAAKY,KAAKC,QAA0D,kCACrEb,KAAKY,KAAKC,QAA0D,gCAAI,OACxEb,KAAKI,KAAKC,cAAchB,EAAAyB,YAAYC,cAAe,SAACC,GAChDlB,EAAKmB,gBAAgBD,EAAmBL,OAK5ClB,EAAAiB,UAAAO,gBAAR,SAAwBD,EAA4CL,GAChE,IAAMO,EAAyDlB,KAAKmB,yCAC9DC,EAAqFpB,KAAKqB,4CAE1FC,EAA4B,IAAIjC,EAAAkC,kBACjCH,EAAgCI,WAAWC,WAC5CH,EAA0BI,IAAIN,EAAgCI,WAAWG,SAGzET,EAAoBU,QAAQC,OAAS,GACrCP,EAA0BQ,mBAAmB,UAAW,KAAMZ,EAAoBU,SAGlFV,EAAoBa,YAAYF,OAAS,GACzCP,EAA0BQ,mBAAmB,cAAe,KAAMZ,EAAoBa,aAGrFT,EAA0BG,WAC3BT,EAAkBgB,aAAaC,mBAAmBP,IAAIJ,EAA0BK,MAAM,SAG1F,IAAMO,EAA4B,IAAI7C,EAAAkC,kBAEtCW,EAA0BJ,mBAAmB,UAAW,KAAI,CAAGnB,EAAYwB,iBAAeC,OAAKlB,EAAoBU,UAE/GV,EAAoBa,YAAYF,OAAS,GACzCK,EAA0BJ,mBAAmB,cAAe,KAAMZ,EAAoBa,aAG1Ff,EAAkBgB,aAAaK,mBAAmBX,IAAIQ,EAA0BP,MAAM,UAGlFlC,EAAAiB,UAAAS,uCAAR,WACI,IAAMD,EAAyD,CAC3DU,QAAS,GACTG,YAAa,IAKjB,OAFA/B,KAAKI,KAAKkC,QAAQtC,KAAKL,QAASH,EAAA+C,yBAAyBC,kCAAmCtB,GAErF,CACHU,QAAS5B,KAAKyC,aAAavB,EAAoBU,SAC/CG,YAAa/B,KAAKyC,aAAavB,EAAoBa,eAInDtC,EAAAiB,UAAAW,0CAAR,WACI,IAAMqB,EAA+E,CACjFlB,WAAY,IAAInC,EAAAkC,mBAKpB,OAFAvB,KAAKI,KAAKkC,QAAQtC,KAAKL,QAASH,EAAA+C,yBAAyBI,0CAA2CD,GAE7FA,GAGHjD,EAAAiB,UAAA+B,aAAR,SAAwBG,GACpB,OAAOA,EAAMC,OAAO,SAACC,EAAOC,EAAOC,GAAS,OAAAA,EAAKC,QAAQH,KAAWC,KA7EjEtD,EAAAQ,GAAK,yBAELR,EAAAG,QAA8C,GA6EzDH,EAhFA,CAAiDJ,EAAA6D,WAApCC,EAAA1D,8BAkFbJ,EAAA+D,eAAeC,4BAA4B5D","file":"CoveoForSitecoreExpressions.min.js","sourcesContent":["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(public element: HTMLElement, public options: ICoveoForSitecoreExpressionOptions, public bindings: IComponentBindings) {\r\n super(element, CoveoForSitecoreExpressions.ID, bindings);\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, CoveoForSitecoreExpressions, options);\r\n this.bind.onRootElement(SitecoreContextEvents.onSitecoreContextInitialization, this.afterComponentsInitialization);\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(buildingQueryArgs: IBuildingQueryEventArgs, contextArgs: ISitecoreContextInitializationEventArgs): void {\r\n const externalContentArgs: IBuildingExternalContentEventArgs = this.triggerBuildingSitecoreExternalContent();\r\n const localSitecoreInstanceExpression: IBuildingLocalSitecoreInstanceExpressionEventArgs = this.triggerBuildingLocalSitecoreInstanceEvent();\r\n\r\n const constantExpressionBuilder = new ExpressionBuilder();\r\n if (!localSitecoreInstanceExpression.expression.isEmpty()) {\r\n constantExpressionBuilder.add(localSitecoreInstanceExpression.expression.build());\r\n }\r\n\r\n if (externalContentArgs.sources.length > 0) {\r\n constantExpressionBuilder.addFieldExpression(\"@source\", \"==\", externalContentArgs.sources);\r\n }\r\n\r\n if (externalContentArgs.collections.length > 0) {\r\n constantExpressionBuilder.addFieldExpression(\"@collection\", \"==\", externalContentArgs.collections);\r\n }\r\n\r\n if (!constantExpressionBuilder.isEmpty()) {\r\n buildingQueryArgs.queryBuilder.constantExpression.add(constantExpressionBuilder.build(\" OR \"));\r\n }\r\n\r\n const advancedExpressionBuilder = new ExpressionBuilder();\r\n\r\n advancedExpressionBuilder.addFieldExpression(\"@source\", \"==\", [contextArgs.indexSourceName, ...externalContentArgs.sources]);\r\n\r\n if (externalContentArgs.collections.length > 0) {\r\n advancedExpressionBuilder.addFieldExpression(\"@collection\", \"==\", externalContentArgs.collections);\r\n }\r\n\r\n buildingQueryArgs.queryBuilder.advancedExpression.add(advancedExpressionBuilder.build(\" OR \"));\r\n }\r\n\r\n private triggerBuildingSitecoreExternalContent(): IBuildingExternalContentEventArgs {\r\n const externalContentArgs: IBuildingExternalContentEventArgs = {\r\n sources: [],\r\n collections: []\r\n };\r\n\r\n this.bind.trigger(this.element, SitecoreExpressionEvents.onBuildingSitecoreExternalContent, externalContentArgs);\r\n\r\n return {\r\n sources: this.filterUnique(externalContentArgs.sources),\r\n collections: this.filterUnique(externalContentArgs.collections)\r\n };\r\n }\r\n\r\n private triggerBuildingLocalSitecoreInstanceEvent(): IBuildingLocalSitecoreInstanceExpressionEventArgs {\r\n const localSitecoreInstanceArgs: IBuildingLocalSitecoreInstanceExpressionEventArgs = {\r\n expression: new ExpressionBuilder()\r\n };\r\n\r\n this.bind.trigger(this.element, SitecoreExpressionEvents.onBuildingLocalSitecoreInstanceExpression, localSitecoreInstanceArgs);\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"],"sourceRoot":""}