{"version":3,"sources":["webpack://CoveoForSitecore/./src/ui/scopes/CoveoForSitecoreSyntax.ts"],"names":["element","options","bindings","CoveoForSitecoreSyntax","ID","fieldHandler","Context","fields","ComponentOptions","initComponentOptions","root","dataset","IS_COVEO_FOR_SITECORE_SYNTAX_EVENT_REGISTERED","bind","onRootElement","QueryEvents","doneBuildingQuery","onDoneBuildingQuery","setFieldHandler","this","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,WAYA,OAIA,uCAWI,WACWA,EACAC,EACAC,GAHX,MAKI,YAAMF,EAASG,EAAuBC,GAAIF,IAAS,K,OAJ5C,EAAAF,UACA,EAAAC,UACA,EAAAC,WAIP,EAAKG,aAAe,EAAAC,QAAQC,OAE5B,EAAKN,QAAU,EAAAO,iBAAiBC,qBAAqBT,EAASG,EAAwBF,GAEjF,EAAKS,KAAKC,QAAQR,EAAuBS,iDAC1C,EAAKF,KAAKC,QAAQR,EAAuBS,+CAAiD,OAC1F,EAAKC,KAAKC,cAAc,EAAAC,YAAYC,kBAAmB,EAAKC,sB,EA8CxE,OAtE4C,OA4BjC,YAAAC,gBAAP,SAAuBb,GACnBc,KAAKd,aAAeA,GAGhB,YAAAY,oBAAR,SAA4BG,GACxBD,KAAKE,uDAAuDD,EAAkBE,aAAaC,aAGvF,YAAAF,uDAAR,SAA+DG,GAA/D,WAC4BA,EAAkBC,WAC1BC,SAAQ,SAACH,GACrB,IAAMI,EAAqBJ,EAE3BA,EAAa,EAAKK,2CAA2CL,GAE7DC,EAAkBK,OAAOF,GACzBH,EAAkBM,IAAIP,OAItB,YAAAK,2CAAR,SAAmDL,GAAnD,WACUQ,EAA4BZ,KAAKa,0BAA0BT,GAOjE,OANIQ,GACAA,EAA0BL,SAAQ,SAACO,GAC/B,IAAMC,EAAiB,EAAKC,uDAAuDF,GACnFV,EAAaA,EAAWa,QAAQH,EAAmBC,MAGpDX,GAGH,YAAAS,0BAAR,SAAkCT,GAC9B,OAAOA,EAAWc,MAAMlC,EAAuBmC,4BAG3C,YAAAH,uDAAR,SAA+DI,GAC3D,OAAKpB,KAAKd,aAAamC,iBAAiBD,GAG7BA,EAFApB,KAAKd,aAAaoC,QAAQF,IAhElC,EAAAnC,GAAK,oBAEL,EAAAH,QAA0C,GAEzB,EAAAW,8CAAgD,wCAEhD,EAAA0B,0BAA4B,kCA+DxD,EAtEA,CAA4C,EAAAI,WAwE5C,EAAAC,eAAeC,4BAA4BzC","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":""}