{"version":3,"sources":["webpack://CoveoForSitecore/./src/ui/scopes/CoveoForSitecoreExpressions.ts"],"names":["element","options","bindings","CoveoForSitecoreExpressions","ID","ComponentOptions","initComponentOptions","bind","onRootElement","SitecoreContextEvents","onSitecoreContextInitialization","afterComponentsInitialization","contextArgs","this","root","dataset","QueryEvents","buildingQuery","buildingQueryArgs","onBuildingQuery","externalContentArgs","triggerBuildingSitecoreExternalContent","localSitecoreInstanceArgs","triggerBuildingLocalSitecoreInstanceEvent","sources","expression","isEmpty","queryBuilder","constantExpression","add","build","trigger","SitecoreExpressionEvents","onBuildingSitecoreExternalContent","filterUnique","externalSources","ExpressionBuilder","buildingQueryAlreadyProcessed","onBuildingLocalSitecoreInstanceExpression","array","filter","value","index","self","indexOf","Component","Initialization","registerAutoCreateComponent"],"mappings":"6qBAAA,WAUA,OACA,OAUA,4CAKI,WACWA,EACAC,EACAC,GAHX,MAKI,YAAMF,EAASG,EAA4BC,GAAIF,IAAS,K,OAJjD,EAAAF,UACA,EAAAC,UACA,EAAAC,WAIP,EAAKD,QAAU,EAAAI,iBAAiBC,qBAAqBN,EAASG,EAA6BF,GAC3F,EAAKM,KAAKC,cACN,EAAAC,sBAAsBC,gCACtB,EAAKC,+B,EAgEjB,OA/EiD,OAmBrC,YAAAA,8BAAR,SAAsCC,GAAtC,WACSC,KAAKC,KAAKC,QAA0D,kCACrEF,KAAKC,KAAKC,QAA0D,gCAAI,OACxEF,KAAKN,KAAKC,cAAc,EAAAQ,YAAYC,eAAe,SAACC,GAChD,EAAKC,gBAAgBD,EAAmBN,QAK5C,YAAAO,gBAAR,SACID,EACAN,GAEA,IAAMQ,EAAyDP,KAAKQ,yCAC9DC,EAA+ET,KAAKU,0CACtFH,EAAoBI,SAGnBF,EAA0BG,WAAWC,WACtCR,EAAkBS,aAAaC,mBAAmBC,IAAIP,EAA0BG,WAAWK,MAAM,UAIjG,YAAAT,uCAAR,WACI,IAAMD,EAAyD,CAC3DI,QAAS,IASb,OANAX,KAAKN,KAAKwB,QACNlB,KAAKb,QACL,EAAAgC,yBAAyBC,kCACzBb,GAGG,CACHI,QAASX,KAAKqB,aAAad,EAAoBI,WAI/C,YAAAD,0CAAR,SACIY,GAEA,IAAMb,EAA+E,CACjFG,WAAY,IAAI,EAAAW,kBAChBD,gBAAiBA,EACjBE,+BAA+B,GASnC,OANAxB,KAAKN,KAAKwB,QACNlB,KAAKb,QACL,EAAAgC,yBAAyBM,0CACzBhB,GAGGA,GAGH,YAAAY,aAAR,SAAwBK,GACpB,OAAOA,EAAMC,QAAO,SAACC,EAAOC,EAAOC,GAAS,OAAAA,EAAKC,QAAQH,KAAWC,MA5EjE,EAAAtC,GAAK,yBAEL,EAAAH,QAA8C,GA4EzD,EA/EA,CAAiD,EAAA4C,WAiFjD,EAAAC,eAAeC,4BAA4B5C","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(\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"],"sourceRoot":""}