{"version":3,"sources":["webpack://CoveoForSitecore/./src/ui/scopes/CoveoForSitecoreLocalExpression.ts"],"names":["coveo_search_ui_1","__webpack_require__","ContextEvents_1","ExpressionEvents_1","CoveoForSitecoreLocalExpression","_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","languageFieldName","currentLanguage","scFilterOnLatestVersion","latestVersionFieldName","scFilterOnSitecoreContextDatabase","indexSourceName","isEmpty","add","build","externalSources","length","sourceExpression","buildBooleanOption","Component","exports","Initialization","registerAutoCreateComponent"],"mappings":"0fAAA,IAAAA,EAAAC,EAAA,GAEAC,EAAAD,EAAA,GACAE,EAAAF,EAAA,GAWAG,EAAA,SAAAC,GASI,SAAAD,EACWE,EACAC,EACAC,GAHX,IAAAC,EAKIJ,EAAAK,KAAAC,KAAML,EAASF,EAAgCQ,GAAIJ,IAASG,YAJrDF,EAAAH,UACAG,EAAAF,UACAE,EAAAD,WAIPC,EAAKF,QAAUP,EAAAa,iBAAiBC,qBAAqBR,EAASF,EAAiCG,GAC/FE,EAAKM,KAAKC,cAAcd,EAAAe,sBAAsBC,gCAAiCT,EAAKU,2BAgD5F,OAjEqDC,EAAAhB,EAAAC,GAoBzCD,EAAAiB,UAAAF,wBAAR,SAAgCG,GAAhC,IAAAb,EAAAE,KACIA,KAAKI,KAAKC,cACNb,EAAAoB,yBAAyBC,0CACzB,SAACC,GACG,OAAAhB,EAAKiB,2BAA2BD,EAAyBH,MAI7DlB,EAAAiB,UAAAK,2BAAR,SACIC,EACAL,GAEA,IAAKK,EAAkCC,8BAA+B,CAClED,EAAkCC,+BAAgC,EAClE,IAAMC,EAAa,IAAI7B,EAAA8B,kBAkBvB,GAhBInB,KAAKJ,QAAQwB,2BACbF,EAAWG,mBAAmB,IAAIV,EAAQW,kBAAqB,KAAM,CAACX,EAAQY,kBAG9EvB,KAAKJ,QAAQ4B,yBACbN,EAAWG,mBAAmB,IAAIV,EAAQc,uBAA0B,KAAM,CAAC,MAG3EzB,KAAKJ,QAAQ8B,mCACbR,EAAWG,mBAAmB,UAAW,KAAM,CAACV,EAAQgB,kBAGvDT,EAAWU,WACZZ,EAAkCE,WAAWW,IAAIX,EAAWY,SAI5Dd,EAAkCe,iBAClCf,EAAkCe,gBAAgBC,OAAS,EAC7D,CACE,IAAMC,EAAmB,IAAI5C,EAAA8B,kBAE7Bc,EAAiBZ,mBAAmB,UAAW,KAAML,EAAkCe,iBAClFE,EAAiBL,WAClBZ,EAAkCE,WAAWW,IAAII,EAAiBH,MAAM,YA3DjFrC,EAAAQ,GAAK,6BAELR,EAAAG,QAAmD,CACtD8B,kCAAmCrC,EAAAa,iBAAiBgC,qBACpDd,0BAA2B/B,EAAAa,iBAAiBgC,qBAC5CV,wBAAyBnC,EAAAa,iBAAiBgC,sBA2DlDzC,EAjEA,CAAqDJ,EAAA8C,WAAxCC,EAAA3C,kCAmEbJ,EAAAgD,eAAeC,4BAA4B7C","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":""}