{"version":3,"sources":["webpack://CoveoForSitecore/./src/ui/scopes/CoveoForSitecoreLocalExpression.ts"],"names":["coveo_search_ui_1","__webpack_require__","ContextEvents_1","ExpressionEvents_1","CoveoForSitecoreLocalExpression","exports","_super","element","options","bindings","_this","call","this","ID","ComponentOptions","initComponentOptions","bind","onRootElement","SitecoreContextEvents","onSitecoreContextInitialization","onContextInitialization","__extends","prototype","context","SitecoreExpressionEvents","onBuildingLocalSitecoreInstanceExpression","builderFilterExpression","onBuildingFilterExpression","buildingFilterExpressionEventArgs","buildingQueryAlreadyProcessed","expression","ExpressionBuilder","scFilterOnCurrentLanguage","addFieldExpression","concat","languageFieldName","currentLanguage","scFilterOnLatestVersion","latestVersionFieldName","scFilterOnSitecoreContextDatabase","indexSourceName","isEmpty","add","build","externalSources","length","sourceExpression","buildBooleanOption","Component","Initialization","registerAutoCreateComponent"],"mappings":"irBAAA,IAAAA,EAAAC,EAAA,GAEAC,EAAAD,EAAA,GACAE,EAAAF,EAAA,GAWAG,EAAAC,EAAAD,gCAAA,SAAAE,GASI,SAAAF,EACWG,EACAC,EACAC,GAHX,IAAAC,EAKIJ,EAAAK,KAAAC,KAAML,EAASH,EAAgCS,GAAIJ,IAASG,YAJrDF,EAAAH,UACAG,EAAAF,UACAE,EAAAD,WAIPC,EAAKF,QAAUR,EAAAc,iBAAiBC,qBAAqBR,EAASH,EAAiCI,GAC/FE,EAAKM,KAAKC,cAAcf,EAAAgB,sBAAsBC,gCAAiCT,EAAKU,2BAgD5F,OAjEqDC,EAAAjB,EAAAE,GAoBzCF,EAAAkB,UAAAF,wBAAR,SAAgCG,GAAhC,IAAAb,EAAAE,KACIA,KAAKI,KAAKC,cACNd,EAAAqB,yBAAyBC,0CACzB,SAACC,GACG,OAAAhB,EAAKiB,2BAA2BD,EAAyBH,MAI7DnB,EAAAkB,UAAAK,2BAAR,SACIC,EACAL,GAEA,IAAKK,EAAkCC,8BAA+B,CAClED,EAAkCC,+BAAgC,EAClE,IAAMC,EAAa,IAAI9B,EAAA+B,kBAkBvB,GAhBInB,KAAKJ,QAAQwB,2BACbF,EAAWG,mBAAmB,IAAAC,OAAIX,EAAQY,mBAAqB,KAAM,CAACZ,EAAQa,kBAG9ExB,KAAKJ,QAAQ6B,yBACbP,EAAWG,mBAAmB,IAAAC,OAAIX,EAAQe,wBAA0B,KAAM,CAAC,MAG3E1B,KAAKJ,QAAQ+B,mCACbT,EAAWG,mBAAmB,UAAW,KAAM,CAACV,EAAQiB,kBAGvDV,EAAWW,WACZb,EAAkCE,WAAWY,IAAIZ,EAAWa,SAI5Df,EAAkCgB,iBAClChB,EAAkCgB,gBAAgBC,OAAS,EAC7D,CACE,IAAMC,EAAmB,IAAI9C,EAAA+B,kBAE7Be,EAAiBb,mBAAmB,UAAW,KAAML,EAAkCgB,iBAClFE,EAAiBL,WAClBb,EAAkCE,WAAWY,IAAII,EAAiBH,MAAM,YA3DjFvC,EAAAS,GAAK,6BAELT,EAAAI,QAAmD,CACtD+B,kCAAmCvC,EAAAc,iBAAiBiC,qBACpDf,0BAA2BhC,EAAAc,iBAAiBiC,qBAC5CV,wBAAyBrC,EAAAc,iBAAiBiC,sBA2DlD3C,EAjEA,CAAqDJ,EAAAgD,WAmErDhD,EAAAiD,eAAeC,4BAA4B9C","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":""}