{"version":3,"sources":["webpack://CoveoForSitecore/./src/ui/scopes/CoveoForSitecoreSyntax.ts"],"names":["coveo_search_ui_1","__webpack_require__","Context_1","CoveoForSitecoreSyntax","exports","_super","element","options","bindings","_this","call","this","ID","fieldHandler","Context","fields","ComponentOptions","initComponentOptions","root","dataset","IS_COVEO_FOR_SITECORE_SYNTAX_EVENT_REGISTERED","bind","onRootElement","QueryEvents","doneBuildingQuery","onDoneBuildingQuery","__extends","prototype","setFieldHandler","buildingQueryArgs","replaceSitecoreFieldExpressionsByCoveoFieldExpressions","queryBuilder","expression","expressionBuilder","getParts","forEach","originalExpression","replaceSitecoreFieldNamesByCoveoFieldNames","remove","add","sitecoreFieldNamesMatched","extractSitecoreFieldNames","sitecoreFieldName","coveoFieldName","convertUnaryFieldExpressionToCoveoUnaryFieldExpression","replace","match","SITECORE_FIELD_NAME_REGEX","unaryFieldExpression","isCoveoFieldName","toCoveo","Component","Initialization","registerAutoCreateComponent"],"mappings":"yqBAAA,IAAAA,EAAAC,EAAA,GAYAC,EAAAD,EAAA,GAIAE,EAAAC,EAAAD,uBAAA,SAAAE,GAWI,SAAAF,EACWG,EACAC,EACAC,GAHX,IAAAC,EAKIJ,EAAAK,KAAAC,KAAML,EAASH,EAAuBS,GAAIJ,IAASG,YAJ5CF,EAAAH,UACAG,EAAAF,UACAE,EAAAD,WAIPC,EAAKI,aAAeX,EAAAY,QAAQC,OAE5BN,EAAKF,QAAUP,EAAAgB,iBAAiBC,qBAAqBX,EAASH,EAAwBI,GAEjFE,EAAKS,KAAKC,QAAQhB,EAAuBiB,iDAC1CX,EAAKS,KAAKC,QAAQhB,EAAuBiB,+CAAiD,OAC1FX,EAAKY,KAAKC,cAActB,EAAAuB,YAAYC,kBAAmBf,EAAKgB,wBA8CxE,OAtE4CC,EAAAvB,EAAAE,GA4BjCF,EAAAwB,UAAAC,gBAAP,SAAuBf,GACnBF,KAAKE,aAAeA,GAGhBV,EAAAwB,UAAAF,oBAAR,SAA4BI,GACxBlB,KAAKmB,uDAAuDD,EAAkBE,aAAaC,aAGvF7B,EAAAwB,UAAAG,uDAAR,SAA+DG,GAA/D,IAAAxB,EAAAE,KAC4BsB,EAAkBC,WAC1BC,QAAQ,SAACH,GACrB,IAAMI,EAAqBJ,EAE3BA,EAAavB,EAAK4B,2CAA2CL,GAE7DC,EAAkBK,OAAOF,GACzBH,EAAkBM,IAAIP,MAItB7B,EAAAwB,UAAAU,2CAAR,SAAmDL,GAAnD,IAAAvB,EAAAE,KACU6B,EAA4B7B,KAAK8B,0BAA0BT,GAOjE,OANIQ,GACAA,EAA0BL,QAAQ,SAACO,GAC/B,IAAMC,EAAiBlC,EAAKmC,uDAAuDF,GACnFV,EAAaA,EAAWa,QAAQH,EAAmBC,KAGpDX,GAGH7B,EAAAwB,UAAAc,0BAAR,SAAkCT,GAC9B,OAAOA,EAAWc,MAAM3C,EAAuB4C,4BAG3C5C,EAAAwB,UAAAiB,uDAAR,SAA+DI,GAC3D,OAAKrC,KAAKE,aAAaoC,iBAAiBD,GAG7BA,EAFArC,KAAKE,aAAaqC,QAAQF,IAhElC7C,EAAAS,GAAK,oBAELT,EAAAI,QAA0C,GAEzBJ,EAAAiB,8CAAgD,wCAEhDjB,EAAA4C,0BAA4B,kCA+DxD5C,EAtEA,CAA4CH,EAAAmD,WAwE5CnD,EAAAoD,eAAeC,4BAA4BlD","file":"CoveoForSitecoreSyntax.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 { ICoveoFieldHandler } from '../../handlers/CoveoFieldsHandler';\r\n\r\nimport { Context } from '../../base/Context';\r\n\r\nexport interface ICoveoForSitecoreSyntaxOptions {}\r\n\r\nexport class CoveoForSitecoreSyntax extends Component {\r\n static ID = 'ForSitecoreSyntax';\r\n\r\n static options: ICoveoForSitecoreSyntaxOptions = {};\r\n\r\n private static readonly IS_COVEO_FOR_SITECORE_SYNTAX_EVENT_REGISTERED = 'coveoForSitecoreSyntaxEventRegistered';\r\n\r\n private static readonly SITECORE_FIELD_NAME_REGEX = /@[\\w\\_]*(?=\\=|\\=\\=|\\<\\>|\\s|$)/gi;\r\n\r\n private fieldHandler: ICoveoFieldHandler;\r\n\r\n constructor(\r\n public element: HTMLElement,\r\n public options: ICoveoForSitecoreSyntaxOptions,\r\n public bindings: IComponentBindings\r\n ) {\r\n super(element, CoveoForSitecoreSyntax.ID, bindings);\r\n\r\n this.fieldHandler = Context.fields;\r\n\r\n this.options = ComponentOptions.initComponentOptions(element, CoveoForSitecoreSyntax, options);\r\n\r\n if (!this.root.dataset[CoveoForSitecoreSyntax.IS_COVEO_FOR_SITECORE_SYNTAX_EVENT_REGISTERED]) {\r\n this.root.dataset[CoveoForSitecoreSyntax.IS_COVEO_FOR_SITECORE_SYNTAX_EVENT_REGISTERED] = 'true';\r\n this.bind.onRootElement(QueryEvents.doneBuildingQuery, this.onDoneBuildingQuery);\r\n }\r\n }\r\n\r\n public setFieldHandler(fieldHandler: ICoveoFieldHandler): void {\r\n this.fieldHandler = fieldHandler;\r\n }\r\n\r\n private onDoneBuildingQuery(buildingQueryArgs: IBuildingQueryEventArgs): void {\r\n this.replaceSitecoreFieldExpressionsByCoveoFieldExpressions(buildingQueryArgs.queryBuilder.expression);\r\n }\r\n\r\n private replaceSitecoreFieldExpressionsByCoveoFieldExpressions(expressionBuilder: ExpressionBuilder): void {\r\n const expressionParts = expressionBuilder.getParts();\r\n expressionParts.forEach((expression) => {\r\n const originalExpression = expression;\r\n\r\n expression = this.replaceSitecoreFieldNamesByCoveoFieldNames(expression);\r\n\r\n expressionBuilder.remove(originalExpression);\r\n expressionBuilder.add(expression);\r\n });\r\n }\r\n\r\n private replaceSitecoreFieldNamesByCoveoFieldNames(expression: string): string {\r\n const sitecoreFieldNamesMatched = this.extractSitecoreFieldNames(expression);\r\n if (sitecoreFieldNamesMatched) {\r\n sitecoreFieldNamesMatched.forEach((sitecoreFieldName) => {\r\n const coveoFieldName = this.convertUnaryFieldExpressionToCoveoUnaryFieldExpression(sitecoreFieldName);\r\n expression = expression.replace(sitecoreFieldName, coveoFieldName);\r\n });\r\n }\r\n return expression;\r\n }\r\n\r\n private extractSitecoreFieldNames(expression: string): string[] {\r\n return expression.match(CoveoForSitecoreSyntax.SITECORE_FIELD_NAME_REGEX);\r\n }\r\n\r\n private convertUnaryFieldExpressionToCoveoUnaryFieldExpression(unaryFieldExpression: string): string {\r\n if (!this.fieldHandler.isCoveoFieldName(unaryFieldExpression)) {\r\n return this.fieldHandler.toCoveo(unaryFieldExpression);\r\n } else {\r\n return unaryFieldExpression;\r\n }\r\n }\r\n}\r\n\r\nInitialization.registerAutoCreateComponent(CoveoForSitecoreSyntax);\r\n"],"sourceRoot":""}