{"version":3,"sources":["webpack://CoveoForSitecore/./src/ui/scopes/CoveoForSitecoreLocalExpression.ts"],"names":["element","options","bindings","CoveoForSitecoreLocalExpression","ID","ComponentOptions","initComponentOptions","bind","onRootElement","SitecoreContextEvents","onSitecoreContextInitialization","onContextInitialization","context","this","SitecoreExpressionEvents","onBuildingLocalSitecoreInstanceExpression","builderFilterExpression","onBuildingFilterExpression","buildingFilterExpressionEventArgs","buildingQueryAlreadyProcessed","expression","ExpressionBuilder","scFilterOnCurrentLanguage","addFieldExpression","languageFieldName","currentLanguage","scFilterOnLatestVersion","latestVersionFieldName","scFilterOnSitecoreContextDatabase","indexSourceName","isEmpty","add","build","externalSources","length","sourceExpression","buildBooleanOption","Component","Initialization","registerAutoCreateComponent"],"mappings":"irBAAA,WAEA,OACA,OAWA,gDASI,WACWA,EACAC,EACAC,GAHX,MAKI,YAAMF,EAASG,EAAgCC,GAAIF,IAAS,K,OAJrD,EAAAF,UACA,EAAAC,UACA,EAAAC,WAIP,EAAKD,QAAU,EAAAI,iBAAiBC,qBAAqBN,EAASG,EAAiCF,GAC/F,EAAKM,KAAKC,cAAc,EAAAC,sBAAsBC,gCAAiC,EAAKC,yB,EAgD5F,OAjEqD,OAoBzC,YAAAA,wBAAR,SAAgCC,GAAhC,WACIC,KAAKN,KAAKC,cACN,EAAAM,yBAAyBC,2CACzB,SAACC,GACG,SAAKC,2BAA2BD,EAAyBJ,OAI7D,YAAAK,2BAAR,SACIC,EACAN,GAEA,IAAKM,EAAkCC,8BAA+B,CAClED,EAAkCC,+BAAgC,EAClE,IAAMC,EAAa,IAAI,EAAAC,kBAkBvB,GAhBIR,KAAKZ,QAAQqB,2BACbF,EAAWG,mBAAmB,WAAIX,EAAQY,mBAAqB,KAAM,CAACZ,EAAQa,kBAG9EZ,KAAKZ,QAAQyB,yBACbN,EAAWG,mBAAmB,WAAIX,EAAQe,wBAA0B,KAAM,CAAC,MAG3Ed,KAAKZ,QAAQ2B,mCACbR,EAAWG,mBAAmB,UAAW,KAAM,CAACX,EAAQiB,kBAGvDT,EAAWU,WACZZ,EAAkCE,WAAWW,IAAIX,EAAWY,SAI5Dd,EAAkCe,iBAClCf,EAAkCe,gBAAgBC,OAAS,EAC7D,CACE,IAAMC,EAAmB,IAAI,EAAAd,kBAE7Bc,EAAiBZ,mBAAmB,UAAW,KAAML,EAAkCe,iBAClFE,EAAiBL,WAClBZ,EAAkCE,WAAWW,IAAII,EAAiBH,MAAM,YA3DjF,EAAA5B,GAAK,6BAEL,EAAAH,QAAmD,CACtD2B,kCAAmC,EAAAvB,iBAAiB+B,qBACpDd,0BAA2B,EAAAjB,iBAAiB+B,qBAC5CV,wBAAyB,EAAArB,iBAAiB+B,sBA2DlD,EAjEA,CAAqD,EAAAC,WAmErD,EAAAC,eAAeC,4BAA4BpC","file":"CoveoForSitecoreLocalExpression.min.js","sourcesContent":["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"],"sourceRoot":""}