@syncfusion/ej2-querybuilder 29.2.10 → 30.1.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-querybuilder.es5.js","sources":["../../src/query-builder/query-builder.js","../../src/query-builder/query-library.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/**\n * Query Builder Source\n */\n/* eslint-disable max-len */\nimport { Component, NotifyPropertyChanges, getComponent, Browser, compile, append, Draggable, remove } from '@syncfusion/ej2-base';\nimport { Property, ChildProperty, Complex, L10n, closest, extend, isNullOrUndefined, Collection, cldrData } from '@syncfusion/ej2-base';\nimport { getInstance, addClass, removeClass, rippleEffect, detach, classList } from '@syncfusion/ej2-base';\nimport { Internationalization, getUniqueID, select } from '@syncfusion/ej2-base';\nimport { Button, CheckBox, RadioButton } from '@syncfusion/ej2-buttons';\nimport { DropDownList, CheckBoxSelection, DropDownTree } from '@syncfusion/ej2-dropdowns';\nimport { MultiSelect } from '@syncfusion/ej2-dropdowns';\nimport { Event, EventHandler, getValue, Animation } from '@syncfusion/ej2-base';\nimport { Query, Predicate, DataManager, Deferred } from '@syncfusion/ej2-data';\nimport { TextBox, NumericTextBox } from '@syncfusion/ej2-inputs';\nimport { DatePicker } from '@syncfusion/ej2-calendars';\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { Tooltip, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { compile as templateCompiler, getNumericObject } from '@syncfusion/ej2-base';\n/**\n * Defines the Columns of Query Builder\n */\nvar Columns = /** @class */ (function (_super) {\n __extends(Columns, _super);\n function Columns() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], Columns.prototype, \"field\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"label\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"type\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"values\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"operators\", void 0);\n __decorate([\n Property()\n ], Columns.prototype, \"ruleTemplate\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"template\", void 0);\n __decorate([\n Property({ isRequired: true, min: 0, max: Number.MAX_VALUE })\n ], Columns.prototype, \"validation\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"format\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"step\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"category\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"columns\", void 0);\n return Columns;\n}(ChildProperty));\nexport { Columns };\n/**\n * Defines the rule of Query Builder\n */\nvar Rule = /** @class */ (function (_super) {\n __extends(Rule, _super);\n function Rule() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], Rule.prototype, \"condition\", void 0);\n __decorate([\n Collection([], Rule)\n ], Rule.prototype, \"rules\", void 0);\n __decorate([\n Property(null)\n ], Rule.prototype, \"field\", void 0);\n __decorate([\n Property(null)\n ], Rule.prototype, \"label\", void 0);\n __decorate([\n Property(null)\n ], Rule.prototype, \"type\", void 0);\n __decorate([\n Property(null)\n ], Rule.prototype, \"operator\", void 0);\n __decorate([\n Property(null)\n ], Rule.prototype, \"value\", void 0);\n __decorate([\n Property(false)\n ], Rule.prototype, \"not\", void 0);\n __decorate([\n Property(null)\n ], Rule.prototype, \"isLocked\", void 0);\n return Rule;\n}(ChildProperty));\nexport { Rule };\n/**\n * Defines the property for value.\n */\nvar Value = /** @class */ (function (_super) {\n __extends(Value, _super);\n function Value() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], Value.prototype, \"numericTextBoxModel\", void 0);\n __decorate([\n Property(null)\n ], Value.prototype, \"multiSelectModel\", void 0);\n __decorate([\n Property(null)\n ], Value.prototype, \"datePickerModel\", void 0);\n __decorate([\n Property(null)\n ], Value.prototype, \"textBoxModel\", void 0);\n __decorate([\n Property(null)\n ], Value.prototype, \"radioButtonModel\", void 0);\n return Value;\n}(ChildProperty));\nexport { Value };\n/**\n * Defines the ruleDelete, groupInsert, and groupDelete options of Query Builder.\n */\nvar ShowButtons = /** @class */ (function (_super) {\n __extends(ShowButtons, _super);\n function ShowButtons() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], ShowButtons.prototype, \"cloneRule\", void 0);\n __decorate([\n Property(false)\n ], ShowButtons.prototype, \"cloneGroup\", void 0);\n __decorate([\n Property(false)\n ], ShowButtons.prototype, \"lockRule\", void 0);\n __decorate([\n Property(false)\n ], ShowButtons.prototype, \"lockGroup\", void 0);\n __decorate([\n Property(true)\n ], ShowButtons.prototype, \"ruleDelete\", void 0);\n __decorate([\n Property(true)\n ], ShowButtons.prototype, \"groupInsert\", void 0);\n __decorate([\n Property(true)\n ], ShowButtons.prototype, \"groupDelete\", void 0);\n return ShowButtons;\n}(ChildProperty));\nexport { ShowButtons };\nvar QueryBuilder = /** @class */ (function (_super) {\n __extends(QueryBuilder, _super);\n function QueryBuilder(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isReadonly = true;\n _this.fields = { text: 'label', value: 'field' };\n _this.updatedRule = { not: false, condition: 'and', isLocked: false };\n _this.isLocale = false;\n _this.isRefreshed = false;\n _this.isNotified = false;\n _this.isAddSuccess = false;\n _this.isNotValueChange = false;\n _this.isFieldChange = false;\n _this.isFieldClose = false;\n _this.isDestroy = false;\n _this.isGetNestedData = false;\n _this.isCustomOprCols = [];\n _this.groupCounter = 0;\n _this.lockItems = [];\n _this.groupIndex = -1;\n _this.ruleIndex = -1;\n _this.isLastGroup = false;\n _this.cloneGrpBtnClick = false;\n _this.isMiddleGroup = false;\n _this.cloneRuleBtnClick = false;\n _this.isValueEmpty = false;\n _this.isPropChange = false;\n MultiSelect.Inject(CheckBoxSelection);\n return _this;\n }\n QueryBuilder.prototype.getPersistData = function () {\n return this.addOnPersist(['rule']);\n };\n /**\n * Clears the rules without root rule.\n *\n * @returns {void}.\n */\n QueryBuilder.prototype.reset = function () {\n this.isImportRules = false;\n var bodyElem = this.element.querySelector('.e-group-body');\n var inputElement = this.element.querySelectorAll('input.e-control');\n for (var i = 0, len = inputElement.length; i < len; i++) {\n if (inputElement[i].className.indexOf('e-tooltip') > -1) {\n getComponent(inputElement[i], 'tooltip').destroy();\n }\n else if (inputElement[i].parentElement.className.indexOf('e-tooltip') > -1) {\n getComponent(inputElement[i].parentElement, 'tooltip').destroy();\n }\n }\n if (bodyElem) {\n bodyElem.innerHTML = '';\n }\n else {\n var grpContainer = this.createElement('div', { attrs: { class: 'e-group-container' } });\n var grpHeader = this.createElement('div', { attrs: { class: 'e-group-header' } });\n var grpBody = this.createElement('div', { attrs: { class: 'e-group-body' } });\n grpContainer.appendChild(grpHeader).appendChild(grpBody);\n this.element.appendChild(grpContainer);\n bodyElem = this.element.querySelector('.e-group-body');\n }\n if (this.headerTemplate && this.isRoot) {\n this.element.innerHTML = '';\n this.isRoot = false;\n }\n if (this.enableNotCondition) {\n removeClass(this.element.querySelectorAll('.e-qb-toggle'), 'e-active-toggle');\n }\n bodyElem.appendChild(this.createElement('div', { attrs: { class: 'e-rule-list' } }));\n this.levelColl[this.element.id + '_group0'] = [0];\n this.setProperties({ rule: { condition: 'and', not: false, rules: [] } }, true);\n this.disableRuleCondition(bodyElem.parentElement);\n };\n QueryBuilder.prototype.getWrapper = function () {\n return this.element;\n };\n QueryBuilder.prototype.getModuleName = function () {\n return 'query-builder';\n };\n QueryBuilder.prototype.requiredModules = function () {\n var modules = [];\n modules.push({\n member: 'query-library',\n args: [this]\n });\n return modules;\n };\n QueryBuilder.prototype.GetRootColumnName = function (field) {\n if (!isNullOrUndefined(field)) {\n return this.separator ? field.split(this.separator)[0] : field;\n }\n return '';\n };\n QueryBuilder.prototype.initialize = function () {\n if (this.dataColl.length) {\n var columnKeys = Object.keys(this.dataColl[0]);\n var cols = [];\n var categories = [];\n var type = void 0;\n var groupBy = false;\n var isDate = false;\n var value = void 0;\n var validateObj = { isRequired: true, min: 0, max: Number.MAX_VALUE };\n if (this.columns.length) {\n this.columnSort();\n var columns = this.columns;\n for (var i = 0, len = columns.length; i < len; i++) {\n this.updateCustomOperator(columns[i], 'initial');\n if (!columns[i].type) {\n if (columnKeys.indexOf(columns[i].field) > -1) {\n value = this.dataColl[0][columns[i].field];\n type = typeof value;\n if (type === 'string') {\n isDate = !isNaN(Date.parse(value));\n }\n else if (type === 'object') {\n isDate = value instanceof Date && !isNaN(value.getTime());\n type = 'string';\n }\n columns[i].type = type;\n isDate = false;\n }\n type = 'string';\n }\n if (!columns[i].validation) {\n columns[i].validation = validateObj;\n }\n if (columns[i].category) {\n groupBy = true;\n }\n else {\n columns[i].category = this.l10n.getConstant('OtherFields');\n }\n if (categories.indexOf(columns[i].category) < 0) {\n categories.push(columns[i].category);\n }\n if (!columns[i].operators ||\n (this.isLocale && this.isCustomOprCols.indexOf(columns[i].field) === -1)) {\n columns[i].operators = this.customOperators[columns[i].type + 'Operator'];\n }\n }\n if (groupBy && (categories.length > 1 || categories[0] !== this.l10n.getConstant('OtherFields'))) {\n this.fields = { text: 'label', value: 'field', groupBy: 'category' };\n }\n this.updateSubFieldsFromColumns(this.columns);\n }\n else {\n for (var i = 0, len = columnKeys.length; i < len; i++) {\n value = this.dataColl[0][columnKeys[i]];\n type = typeof value;\n if (type === 'string') {\n isDate = !isNaN(Date.parse(value));\n }\n else if (type === 'object' && !Object.keys(value).length) {\n isDate = value instanceof Date && !isNaN(value.getTime());\n type = 'string';\n }\n cols[i] = { 'field': columnKeys[i], 'label': columnKeys[i], 'type': isDate ? 'date' : type,\n 'validation': validateObj };\n isDate = false;\n cols[i].operators = this.customOperators[cols[i].type + 'Operator'];\n if (type === 'object') {\n this.updateSubFields(value, cols[i]);\n }\n }\n this.columns = cols;\n }\n }\n else if (this.columns && this.columns.length) {\n var columns = this.columns;\n for (var i = 0, len = columns.length; i < len; i++) {\n if (columns[i].category) {\n this.fields = { text: 'label', value: 'field', groupBy: 'category' };\n }\n else {\n columns[i].category = this.l10n.getConstant('OtherFields');\n }\n this.updateCustomOperator(columns[i], 'initial');\n if (!columns[i].operators ||\n (this.isLocale && this.isCustomOprCols.indexOf(columns[i].field) === -1)) {\n columns[i].operators = this.customOperators[columns[i].type + 'Operator'];\n }\n }\n this.updateSubFieldsFromColumns(this.columns);\n }\n this.trigger('dataBound', { type: 'dataBound' });\n };\n QueryBuilder.prototype.updateSubFieldsFromColumns = function (col, field) {\n for (var i = 0; i < col.length; i++) {\n if (this.separator !== '' && col[i].field.indexOf(this.separator) < 0) {\n col[i].field = field ? field + this.separator + col[i].field : col[i].field;\n }\n if (col[i].operators) {\n this.updateCustomOperator(col[i]);\n }\n else if (col[i].type && col[i].type !== 'object') {\n col[i].operators = this.customOperators[col[i].type + 'Operator'];\n }\n if (col[i].columns) {\n col[i].type = 'object';\n this.updateSubFieldsFromColumns(col[i].columns, col[i].field);\n }\n }\n };\n QueryBuilder.prototype.updateSubFields = function (value, col, data) {\n var sampCol;\n col.columns = [];\n var columnKeys = Object.keys(value);\n var field;\n var label;\n var type;\n var result;\n data = data ? data : this.dataColl[0];\n for (var i = 0, len = columnKeys.length; i < len; i++) {\n var compField = col.field.split('.');\n if (data) {\n result = data[compField[compField.length - 1]][columnKeys[i]];\n }\n else {\n result = this.dataColl[0][col.field][columnKeys[i]];\n }\n var resData = data[col.field.split(this.separator)[col.field.split(this.separator).length - 1]];\n type = typeof result;\n field = col.field + this.separator + columnKeys[i];\n label = columnKeys[i];\n type = (type === 'object' && !isNaN(Date.parse(result))) ? 'date' : type;\n sampCol = { field: field, label: label, type: type };\n if (type !== 'object') {\n sampCol.operators = this.customOperators[type + 'Operator'];\n }\n col.columns.push(sampCol);\n if (type === 'object') {\n this.updateSubFields(result, sampCol, resData);\n }\n }\n };\n QueryBuilder.prototype.updateCustomOperator = function (column, from) {\n if (column.operators) {\n if (!this.isLocale && from === 'initial' && !isNullOrUndefined(this.isCustomOprCols)) {\n this.isCustomOprCols.push(column.field);\n }\n var _loop_1 = function (j) {\n var sqlIdx = Object.keys(column.operators[j]).indexOf('sqlOperator');\n if (sqlIdx > -1) {\n var operator_1 = column.operators[j];\n var operColl = Object.keys(operator_1);\n var values = operColl.map(function (key) { return operator_1[\"\" + key]; }).join(',').split(',');\n var valueIdx = operColl.indexOf('value');\n this_1.operators[values[valueIdx]] = values[sqlIdx];\n }\n };\n var this_1 = this;\n for (var j = 0; j < column.operators.length; j++) {\n _loop_1(j);\n }\n }\n };\n QueryBuilder.prototype.focusEventHandler = function (event) {\n this.target = event.target;\n };\n QueryBuilder.prototype.clickEventHandler = function (event) {\n var _this = this;\n var target = event.target;\n var args;\n this.isImportRules = false;\n var groupID;\n if (target.tagName === 'SPAN') {\n target = target.parentElement;\n }\n if (typeof target.className === 'string' && target.className.indexOf('e-collapse-rule') > -1) {\n var animation = new Animation({ duration: 1000, delay: 0 });\n if (this.element.querySelectorAll('.e-summary-content').length < 1) {\n this.renderSummary();\n }\n var summaryElem = document.getElementById(this.element.id + '_summary_content');\n var txtareaElem = summaryElem.querySelector('.e-summary-text');\n animation.animate('.e-query-builder', { name: 'SlideLeftIn' });\n var groupElem = this.element.querySelector('.e-group-container');\n groupElem.style.display = 'none';\n txtareaElem.textContent = this.getSqlFromRules(this.rule);\n summaryElem.style.display = 'block';\n txtareaElem.style.height = txtareaElem.scrollHeight + 'px';\n }\n if (target.tagName === 'BUTTON' && typeof target.className === 'string' && target.className.indexOf('e-qb-toggle') < 0) {\n var animation = new Animation({ duration: 1000, delay: 0 });\n switch (true) {\n case target.className.indexOf('e-removerule') > -1:\n this.actionButton = target;\n this.deleteRule(target);\n break;\n case target.className.indexOf('e-clone-rule-btn') > -1:\n this.actionButton = target;\n this.cloneRuleBtnClick = true;\n this.ruleClone(target);\n break;\n case target.className.indexOf('e-lock-rule-btn') > -1:\n this.actionButton = target;\n this.ruleLock(target);\n break;\n case target.className.indexOf('e-lock-grp-btn') > -1:\n this.actionButton = target;\n this.groupLock(target);\n break;\n case target.className.indexOf('e-clone-grp-btn') > -1:\n this.actionButton = target;\n this.cloneGrpBtnClick = true;\n this.groupClone(closest(target, '.e-group-container'));\n break;\n case target.className.indexOf('e-deletegroup') > -1:\n this.actionButton = target;\n this.deleteGroup(closest(target, '.e-group-container'));\n break;\n case target.className.indexOf('e-edit-rule') > -1:\n animation.animate('.e-query-builder', { name: 'SlideLeftIn' });\n document.getElementById(this.element.id + '_summary_content').style.display = 'none';\n if (this.element.querySelectorAll('.e-group-container').length < 1) {\n this.addGroupElement(false, this.element, this.rule.condition, false, this.rule.not);\n var mRules = extend({}, this.rule, {}, true);\n this.setGroupRules(mRules);\n this.renderSummaryCollapse();\n }\n else {\n var groupElem = this.element.querySelector('.e-group-container');\n if (groupElem.querySelectorAll('.e-collapse-rule').length < 1) {\n this.renderSummaryCollapse();\n }\n groupElem.style.display = 'block';\n }\n break;\n }\n }\n else if ((target.tagName === 'LABEL' && target.parentElement.className.indexOf('e-btn-group') > -1) ||\n (typeof target.className === 'string' && target.className.indexOf('e-qb-toggle') > -1)) {\n var element = closest(target, '.e-group-container');\n if (!this.headerTemplate) {\n var forIdValue = target.getAttribute('for');\n var targetValue = void 0;\n if (forIdValue) {\n targetValue = document.getElementById(forIdValue).getAttribute('value');\n }\n else if (this.enableSeparateConnector) {\n targetValue = target.textContent;\n }\n groupID = element.id.replace(this.element.id + '_', '');\n var group = this.getGroup(groupID);\n var ariaChecked = void 0;\n if (this.enableNotCondition) {\n if (target.className.indexOf('e-qb-toggle') > -1) {\n var toggleElem = element.getElementsByClassName('e-qb-toggle')[0];\n if (toggleElem.className.indexOf('e-active-toggle') > -1) {\n removeClass([toggleElem], 'e-active-toggle');\n ariaChecked = false;\n }\n else {\n addClass([toggleElem], 'e-active-toggle');\n ariaChecked = true;\n }\n targetValue = group.condition;\n }\n else {\n ariaChecked = group.not;\n }\n }\n args = { groupID: groupID, cancel: false, type: 'condition', value: targetValue.toLowerCase() };\n if (this.enableNotCondition) {\n args = { groupID: groupID, cancel: false, type: 'condition', value: targetValue.toLowerCase(),\n 'not': ariaChecked };\n }\n }\n if (!this.isImportRules) {\n this.trigger('beforeChange', args, function (observedChangeArgs) {\n _this.beforeSuccessCallBack(observedChangeArgs, target);\n });\n }\n else {\n this.beforeSuccessCallBack(args, target);\n }\n this.target = target;\n }\n };\n QueryBuilder.prototype.beforeSuccessCallBack = function (args, target) {\n if (args && !args.cancel) {\n var element = closest(target, '.e-group-container');\n var groupID = element.id.replace(this.element.id + '_', '');\n var beforeRules = this.getValidRules(this.rule);\n var rule = this.getParentGroup(element);\n if (this.enableSeparateConnector) {\n if (isNullOrUndefined(closest(target, '.e-rule-container')) &&\n element.classList.contains('e-group-container')) {\n element = target.parentElement.previousElementSibling !== null ?\n target.parentElement.previousElementSibling : element;\n }\n else {\n element = closest(target, '.e-rule-container');\n }\n var id = element.id.replace(this.element.id + '_', '');\n if (element.classList.contains('e-rule-container')) {\n rule = this.getRule(element);\n rule.condition = args.value;\n }\n else if (element.classList.contains('e-group-container')) {\n rule = this.getGroup(element);\n rule.condition = args.value;\n }\n if (this.enableNotCondition) {\n rule.not = args.not;\n }\n if (!this.isImportRules) {\n this.trigger('change', { groupID: groupID, ruleID: id, type: 'condition', value: rule.condition });\n }\n }\n else {\n rule.condition = args.value;\n if (this.enableNotCondition) {\n rule.not = args.not;\n }\n if (!this.isImportRules) {\n this.trigger('change', { groupID: groupID, type: 'condition', value: rule.condition });\n }\n }\n this.filterRules(beforeRules, this.getValidRules(this.rule), 'condition');\n if (this.enableSeparateConnector) {\n var andElem = target.parentElement.querySelector('.e-btngroup-and');\n var orElem = target.parentElement.querySelector('.e-btngroup-or');\n if (andElem && orElem) {\n if (args.value === 'and') {\n andElem.checked = true;\n orElem.checked = false;\n }\n else if (args.value === 'or') {\n orElem.checked = true;\n andElem.checked = false;\n }\n }\n }\n }\n };\n QueryBuilder.prototype.selectBtn = function (target, event) {\n if (event.name === 'beforeOpen') {\n if (this.showButtons.groupInsert || isNullOrUndefined(this.showButtons.groupInsert)) {\n if (this.element.querySelectorAll('.e-group-container').length >= this.maxGroupCount + 1) {\n addClass([event.element.querySelector('li span.e-addgroup').parentElement], 'e-button-hide');\n }\n else {\n removeClass([event.element.querySelector('li span.e-addgroup').parentElement], 'e-button-hide');\n }\n if (this.enableRtl) {\n addClass([event.element.querySelector('li').parentElement], 'e-rtl');\n }\n }\n else {\n addClass([event.element.querySelector('li span.e-addgroup').parentElement], 'e-button-hide');\n }\n }\n else if (event.element.children[0].className.indexOf('e-addrule') > -1) {\n this.addRuleElement(closest(target, '.e-group-container'), {});\n }\n else if (event.element.children[0].className.indexOf('e-addgroup') > -1) {\n this.addGroupElement(true, closest(target, '.e-group-container'), '', true);\n }\n };\n QueryBuilder.prototype.appendRuleElem = function (target, column, type, parentId, action, rule) {\n var ruleElem;\n var elem;\n var ruleListElem = target.querySelector('.e-rule-list');\n var args;\n if (type === 'change') {\n ruleElem = select('#' + parentId, target);\n }\n else {\n ruleElem = this.createElement('div', { attrs: { class: 'e-rule-container' } });\n ruleElem.setAttribute('id', target.id + '_rule' + this.ruleIdCounter);\n if (this.showButtons.cloneRule && this.cloneRuleBtnClick) {\n if (this.ruleIndex < 0) {\n ruleListElem.appendChild(ruleElem);\n }\n else {\n if (this.enableSeparateConnector) {\n var index = -1;\n var tempRuleIndex = this.ruleIndex + 1;\n for (var i = 0; i < tempRuleIndex; i++) {\n if (i === ruleListElem.children.length) {\n break;\n }\n if (ruleListElem.children[i].classList.contains('e-rule-container')) {\n tempRuleIndex++;\n index++;\n }\n }\n ruleListElem.insertBefore(ruleElem, ruleListElem.children[this.ruleIndex + index + 1]); // added clone rule to next position\n }\n else {\n ruleListElem.insertBefore(ruleElem, ruleListElem.children[this.ruleIndex + 1]); // added clone rule to next position\n }\n }\n this.cloneRuleBtnClick = false;\n }\n else {\n ruleListElem.appendChild(ruleElem);\n }\n this.ruleIdCounter++;\n }\n if (column && column.ruleTemplate && rule) {\n args = { requestType: 'template-initialize', ruleID: ruleElem.id, action: action, fields: this.fields, rule: rule };\n this.trigger('actionBegin', args);\n this.ruleTemplateFn = this.templateParser(column.ruleTemplate);\n var templateID = this.element.id + column.field;\n var template = void 0;\n args.fields = this.fields;\n args.columns = this.columns;\n if (rule.field === '') {\n rule.field = column.field;\n }\n args.operators = this.getOperators(rule.field);\n args.operatorFields = { text: 'key', value: 'value' };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n template = this.ruleTemplateFn(args, this, ruleElem.id, templateID)[0];\n elem = template;\n elem.className += ' e-rule-field';\n ruleElem.appendChild(elem);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (this.isAngular) {\n var templateColl = this.ruleTemplateFn(args, this, ruleElem.id, templateID);\n template = (templateColl[0].nodeType === 3) ? templateColl[1] : templateColl[0];\n elem = template;\n elem.className += ' e-rule-field';\n ruleElem.appendChild(elem);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (this.isVue3) {\n template = this.ruleTemplateFn(args, this, 'Template', templateID);\n elem = template;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n append(elem, ruleElem);\n if (ruleElem.children.length) {\n ruleElem.children[ruleElem.children.length - 1].className += ' e-rule-field';\n }\n }\n else {\n template = this.ruleTemplateFn(args, this, 'Template', templateID)[0];\n elem = template;\n elem.className += ' e-rule-field';\n ruleElem.appendChild(elem);\n }\n }\n else {\n elem = this.ruleElem.querySelector('.e-rule-field').cloneNode(true);\n ruleElem.appendChild(elem);\n }\n if (this.showButtons.lockGroup) {\n removeClass(ruleElem.querySelectorAll('.e-lock-grp-btn'), 'e-button-hide');\n }\n if (this.showButtons.lockRule) {\n removeClass(ruleElem.querySelectorAll('.e-lock-rule-btn'), 'e-button-hide');\n }\n if (this.showButtons.cloneGroup) {\n removeClass(ruleElem.querySelectorAll('.e-clone-grp-btn'), 'e-button-hide');\n }\n if (this.showButtons.cloneRule) {\n removeClass(ruleElem.querySelectorAll('.e-clone-rule-btn'), 'e-button-hide');\n }\n if (this.showButtons.ruleDelete) {\n removeClass(ruleElem.querySelectorAll('.e-lock-grp-btn'), 'e-button-hide');\n }\n if (this.allowDragAndDrop) {\n removeClass(ruleElem.querySelectorAll('.e-drag-qb-rule'), 'e-hidden');\n }\n if (column && column.ruleTemplate && rule) {\n this.renderReactTemplates();\n }\n return ruleElem;\n };\n QueryBuilder.prototype.addRuleElement = function (target, rule, column, action, parentId, isRuleTemplate) {\n var _this = this;\n if (!target) {\n return;\n }\n var args = { groupID: target.id.replace(this.element.id + '_', ''), cancel: false, type: 'insertRule' };\n if (!this.isImportRules && !this.isInitialLoad && !this.prvtEvtTgrDaD) {\n this.trigger('beforeChange', args, function (observedChangeArgs) {\n _this.addRuleSuccessCallBack(observedChangeArgs, target, rule, column, action, parentId, isRuleTemplate);\n });\n }\n else {\n this.isInitialLoad = false;\n this.addRuleSuccessCallBack(args, target, rule, column, action, parentId, isRuleTemplate);\n }\n };\n QueryBuilder.prototype.addRuleSuccessCallBack = function (args, trgt, rule, col, act, pId, isRlTmp) {\n var height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';\n var ruleID;\n var column = (rule && rule.field) ? this.getColumn(rule.field) : col ? col : this.columns[0];\n var operators;\n var dropDownList;\n var ruleElem;\n var newRule = { 'label': '', 'field': '', 'type': '', 'operator': '' };\n if (!args.cancel) {\n if (column && column.ruleTemplate && rule.field) {\n this.selectedColumn = column;\n operators = this.selectedColumn.operators;\n newRule = { 'label': column.label, 'field': column.field, 'type': column.type, 'operator': operators[0].value };\n var passedRule = Object.keys(rule).length ? rule : newRule;\n ruleElem = this.appendRuleElem(trgt, column, act, pId, 'field', passedRule);\n var args_1 = { requestType: 'template-create', action: 'insert-rule', ruleID: ruleElem.id,\n fields: this.fields, rule: passedRule };\n this.trigger('actionBegin', args_1);\n }\n else {\n ruleElem = this.appendRuleElem(trgt, column, act, pId, 'field');\n ruleElem.querySelector('.e-filter-input').setAttribute('id', ruleElem.id + '_filterkey');\n var element = ruleElem.querySelector('.e-rule-delete');\n if (this.element.className.indexOf('e-device') > -1 || this.displayMode === 'Vertical') {\n element.textContent = this.l10n.getConstant('Remove');\n addClass([element], 'e-flat');\n addClass([element], 'e-primary');\n }\n else {\n addClass([element], 'e-round');\n addClass([element], 'e-icon-btn');\n element.setAttribute('title', this.l10n.getConstant('DeleteRule'));\n var spanElement = this.createElement('span', { attrs: { class: 'e-btn-icon e-icons e-delete-icon' } });\n ruleElem.querySelector('.e-rule-delete').appendChild(spanElement);\n }\n if (!this.showButtons.ruleDelete) {\n element.classList.add('e-button-hide');\n }\n }\n if (this.displayMode === 'Vertical' || this.element.className.indexOf('e-device') > -1) {\n ruleElem.className = 'e-rule-container e-vertical-mode';\n }\n else {\n ruleElem.className = 'e-rule-container e-horizontal-mode';\n }\n var previousRuleElem = ruleElem.previousElementSibling;\n if (this.enableSeparateConnector) {\n var prevRule = void 0;\n var ruleContainer = void 0;\n if (previousRuleElem && previousRuleElem.classList.contains('e-group-container')) {\n ruleContainer = previousRuleElem.querySelectorAll('.e-rule-container');\n previousRuleElem = ruleContainer[ruleContainer.length - 1];\n }\n if (previousRuleElem && previousRuleElem.classList.contains('e-rule-container')) {\n prevRule = this.getRule(previousRuleElem);\n }\n if (this.headerTemplate && previousRuleElem && prevRule) {\n this.headerTemplateFn(previousRuleElem, false, prevRule.condition, prevRule, previousRuleElem.id);\n }\n else if (isNullOrUndefined(previousRuleElem) && ruleElem.id !== this.element.id + '_group0_rule0') {\n var group = ruleElem.closest('.e-group-container');\n if (group && group.previousElementSibling) {\n var prevElem = group.previousElementSibling;\n var prevRuleContainer = prevElem.querySelectorAll('.e-rule-container');\n if (prevElem.classList.contains('e-group-container')) {\n prevElem = prevRuleContainer[prevRuleContainer.length - 1];\n }\n if (prevElem.classList.contains('e-rule-container')) {\n var prevRule_1 = this.getRule(prevElem);\n this.headerTemplateFn(prevElem, false, prevRule_1.condition, prevRule_1, prevElem.id, true);\n }\n }\n else {\n this.headerTemplateFn(ruleElem, false, rule.condition, rule, ruleElem.id, true);\n }\n }\n }\n else {\n if (previousRuleElem && previousRuleElem.className.indexOf('e-rule-container') > -1) {\n if (ruleElem.className.indexOf('e-joined-rule') < 0) {\n ruleElem.className += ' e-joined-rule';\n }\n if (previousRuleElem.className.indexOf('e-prev-joined-rule') < 0) {\n previousRuleElem.className += ' e-prev-joined-rule';\n }\n }\n }\n if (previousRuleElem && previousRuleElem.className.indexOf('e-group-container') > -1 &&\n ruleElem.className.indexOf('e-separate-rule') < 0) {\n ruleElem.className += ' e-separate-rule';\n }\n if (!this.isImportRules) {\n this.updateAddedRule(trgt, rule, newRule, isRlTmp, pId, this.enableSeparateConnector ? true : null);\n }\n if (!column || (column && !column.ruleTemplate) || !rule.field) {\n if (this.fieldMode === 'Default') {\n var ddlField = void 0;\n var ddlValue = void 0;\n if (this.separator && rule.field) {\n ddlValue = this.GetRootColumnName(rule.field);\n }\n else if (this.autoSelectField) {\n ddlValue = this.GetRootColumnName(rule.field);\n }\n else {\n ddlValue = this.isImportRules ? this.GetRootColumnName(rule.field) : rule.field;\n }\n ddlField = {\n dataSource: this.columns,\n fields: this.fields, placeholder: this.l10n.getConstant('SelectField'),\n popupHeight: ((this.columns.length > 5) ? height : 'auto'), close: this.fieldClose.bind(this, ruleElem.id + '_filterkey'),\n change: this.changeField.bind(this), value: rule ? ddlValue : null, open: this.popupOpen.bind(this, true), cssClass: 'qb-dropdownlist'\n };\n if (this.fieldModel) {\n ddlField = __assign({}, ddlField, this.fieldModel);\n }\n dropDownList = new DropDownList(ddlField);\n dropDownList.appendTo('#' + ruleElem.id + '_filterkey');\n var ddlVal = void 0;\n if (this.separator && rule.field) {\n ddlVal = this.GetRootColumnName(rule.field);\n }\n else {\n ddlVal = this.isImportRules ? this.GetRootColumnName(rule.field) :\n dropDownList.value;\n }\n this.selectedColumn = dropDownList.getDataByValue(ddlVal);\n if (Object.keys(rule).length) {\n this.changeRule(rule, {\n element: dropDownList.element, itemData: this.selectedColumn\n });\n }\n }\n else {\n var ddlField = void 0;\n var ddlValue = this.isImportRules ? rule.field : rule.field;\n this.dummyDropdownTreeDs = extend([], this.columns, [], true);\n this.updateDropdowntreeDS(this.dummyDropdownTreeDs);\n ddlField = {\n fields: { dataSource: this.dummyDropdownTreeDs,\n value: 'field', text: 'label', child: 'columns', expanded: 'expanded', selectable: 'selectable' },\n placeholder: this.l10n.getConstant('SelectField'), showClearButton: false,\n popupHeight: ((this.columns.length > 5) ? height : 'auto'), changeOnBlur: false,\n change: this.changeField.bind(this), value: !isNullOrUndefined(ddlValue) ? [ddlValue] : null,\n open: this.popupOpen.bind(this, false), treeSettings: { expandOn: 'Click' },\n cssClass: 'e-qb-ddt', filtering: this.dropdownTreeFiltering.bind(this), close: this.dropdownTreeClose.bind(this)\n };\n if (this.fieldModel) {\n ddlField = __assign({}, ddlField, this.fieldModel);\n }\n var dropdowntree = new DropDownTree(ddlField);\n dropdowntree.appendTo('#' + ruleElem.id + '_filterkey');\n if (!isNullOrUndefined(dropdowntree.value)) {\n var value = this.getLabelFromColumn(dropdowntree.value[0]);\n dropdowntree.element.value = value;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var ddlVal = !isNullOrUndefined(rule.field) ?\n this.GetRootColumnName(rule.field) : dropdowntree.value;\n this.selectedColumn = this.getColumn(ddlVal);\n if (Object.keys(rule).length) {\n this.changeRule(rule, {\n element: dropdowntree.element, itemData: this.selectedColumn\n });\n }\n }\n }\n ruleID = ruleElem.id.replace(this.element.id + '_', '');\n if (rule && rule.isLocked) {\n var lockRuleTarget = ruleElem.querySelector('.e-lock-rule-btn');\n this.ruleLock(lockRuleTarget);\n }\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('change', { groupID: trgt.id.replace(this.element.id + '_', ''), ruleID: ruleID, type: 'insertRule' });\n }\n }\n if (this.enableSeparateConnector && isNullOrUndefined(rule.condition) && ruleID) {\n rule = this.getRule(ruleID);\n }\n if (this.enableSeparateConnector) {\n var prevElem = ruleElem.previousElementSibling;\n var ruleContainer = void 0;\n while (prevElem && !prevElem.classList.contains('e-rule-container')) {\n if (prevElem.classList.contains('e-group-container')) {\n ruleContainer = prevElem.querySelectorAll('.e-rule-container');\n prevElem = ruleContainer[ruleContainer.length - 1];\n break;\n }\n prevElem = prevElem.previousElementSibling;\n }\n if (this.headerTemplate && prevElem) {\n var prevRule = this.getRule(prevElem);\n var args_2 = { requestType: 'rule-template-create', ruleID: prevElem.id, condition: prevRule.condition,\n notCondition: this.enableNotCondition ? true : undefined };\n this.trigger('actionBegin', args_2);\n }\n else if (isNullOrUndefined(prevElem) && ruleElem.id !== this.element.id + '_group0_rule0') {\n var group = ruleElem.closest('.e-group-container');\n if (group && group.previousElementSibling && group.previousElementSibling.previousElementSibling) {\n var prevElem_1 = group.previousElementSibling.previousElementSibling;\n if (prevElem_1.classList.contains('e-group-container')) {\n var ruleContainer_1 = prevElem_1.querySelectorAll('.e-rule-container');\n prevElem_1 = ruleContainer_1[ruleContainer_1.length - 1];\n }\n if (prevElem_1.classList.contains('e-rule-container')) {\n var prevRule = this.getRule(prevElem_1);\n var args_3 = { requestType: 'rule-template-create', ruleID: prevElem_1.id,\n condition: prevRule.condition, notCondition: this.enableNotCondition ? true : undefined };\n this.trigger('actionBegin', args_3);\n }\n }\n }\n this.setMultiConnector(ruleElem);\n }\n };\n QueryBuilder.prototype.dropdownTreeFiltering = function (args) {\n var _this = this;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n var ruleElemID = '';\n var srcElement = args.event.srcElement;\n var isClearIcon = srcElement.classList.contains('e-clear-icon');\n var inputElem = isClearIcon ? srcElement.parentElement.querySelector('.e-textbox') : srcElement;\n ruleElemID = inputElem.id.split('_filterkey')[0];\n var ruleElem = document.getElementById(ruleElemID);\n this.ddTree = getComponent(ruleElem.querySelector('input.e-dropdowntree'), 'dropdowntree');\n var hierarchicalData = extend([], this.columns, [], true);\n // Cancel the default filtering.\n args.cancel = true;\n if (args.text === '') {\n this.changeDataSource(hierarchicalData);\n }\n else {\n var matchedDataSource = hierarchicalData\n .map(function (data) { return _this.nestedChildFilter(args.text, data); })\n .filter(function (filteredChild) { return filteredChild !== null; });\n this.changeDataSource(matchedDataSource);\n setTimeout(function () {\n if (!isNullOrUndefined(proxy.ddTree) && !isNullOrUndefined(proxy.ddTree.treeObj)) {\n proxy.ddTree.treeObj.expandAll();\n }\n }, 100);\n }\n };\n QueryBuilder.prototype.changeDataSource = function (data) {\n this.updateDropdowntreeDS(data);\n this.ddTree.treeObj.fields = {\n dataSource: data,\n value: 'field',\n text: 'label',\n child: 'columns',\n expanded: 'expanded'\n };\n this.ddTree.treeObj.refresh();\n };\n QueryBuilder.prototype.nestedChildFilter = function (value, node) {\n var _this = this;\n var children = node[this.ddTree.fields.child];\n if (!children) {\n return this.isMatchedNode(value, node) ? node : null;\n }\n var matchedChildren = children\n .map(function (child) { return _this.nestedChildFilter(value, child); })\n .filter(function (filteredChild) { return filteredChild !== null; });\n if (matchedChildren.length) {\n node[this.ddTree.fields.child] = matchedChildren;\n return node;\n }\n else {\n node[this.ddTree.fields.child] = children;\n return this.isMatchedNode(value, node) ? node : null;\n }\n };\n QueryBuilder.prototype.isMatchedNode = function (value, node) {\n var checkValue = node[this.ddTree.fields.text].toLowerCase();\n value = value ? value.toLowerCase() : '';\n return checkValue.indexOf(value) !== -1;\n };\n QueryBuilder.prototype.dropdownTreeClose = function () {\n if (this.ddTree) {\n this.changeDataSource(extend([], this.columns, [], true));\n }\n this.ddTree = null;\n };\n QueryBuilder.prototype.updateDropdowntreeDS = function (columns) {\n for (var i = 0; i < columns.length; i++) {\n if (columns[parseInt(i.toString(), 10)].type === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isAngular && columns[parseInt(i.toString(), 10)].template) {\n delete columns[parseInt(i.toString(), 10)].template;\n }\n columns[parseInt(i.toString(), 10)].selectable = false;\n this.updateDropdowntreeDS(columns[parseInt(i.toString(), 10)].columns);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (this.isAngular && columns[parseInt(i.toString(), 10)].template) {\n delete columns[parseInt(i.toString(), 10)].template;\n }\n }\n };\n QueryBuilder.prototype.updateAddedRule = function (target, rule, newRule, isRuleTemplate, pId, isNewRuleAdded) {\n var ruleElem;\n var index = 0;\n var groupElem;\n var rules;\n if (isRuleTemplate) {\n ruleElem = select('#' + pId, target);\n groupElem = closest(target, '.e-group-container');\n rules = this.getParentGroup(groupElem);\n while (ruleElem && ruleElem.previousElementSibling !== null) {\n ruleElem = ruleElem.previousElementSibling;\n var enableSeparateCondition = this.enableSeparateConnector && ((!this.headerTemplate && !ruleElem.classList.contains('e-btn-group')) ||\n (this.headerTemplate && (ruleElem.classList.contains('e-rule-container') ||\n ruleElem.classList.contains('e-group-container'))));\n if (!this.enableSeparateConnector || enableSeparateCondition) {\n index++;\n }\n }\n rules.rules[index] = rule;\n }\n else {\n groupElem = closest(target, '.e-group-container');\n rules = this.getParentGroup(groupElem);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var custom = rule.custom;\n if (Object.keys(rule).length) {\n if (this.ruleIndex < 0) {\n rules.rules.push({\n 'field': rule.field, 'type': rule.type, 'label': rule.label, 'operator': rule.operator, value: rule.value\n });\n if (custom) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rules.rules[rules.rules.length - 1].custom = custom;\n }\n if (this.enableSeparateConnector) {\n rules.rules[rules.rules.length - 1].condition = rule.condition ? rule.condition : newRule.condition;\n }\n }\n else {\n rules.rules.splice(this.ruleIndex + 1, 0, {\n 'field': rule.field, 'type': rule.type, 'label': rule.label, 'operator': rule.operator, value: rule.value\n });\n if (custom) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rules.rules[this.ruleIndex + 1].custom = custom;\n }\n if (this.enableSeparateConnector) {\n rules.rules[this.ruleIndex + 1].condition = rule.condition ? rule.condition : newRule.condition;\n }\n }\n }\n else {\n if (custom) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newRule.custom = custom;\n }\n if (this.autoSelectField) {\n rule.field = newRule.field = this.rule.rules[0].field;\n }\n rules.rules.push(newRule);\n }\n }\n this.disableRuleCondition(target, rules, isNewRuleAdded);\n };\n QueryBuilder.prototype.changeRuleTemplate = function (column, element) {\n if (column && column.ruleTemplate) {\n return;\n }\n else {\n var parentGroup = closest(element, '.e-group-container');\n var parentId = closest(element, '.e-rule-container').id;\n if (this.previousColumn && this.previousColumn.ruleTemplate) {\n detach(element.closest('[id=\"' + parentId + '\"]').querySelector('.e-rule-field'));\n this.clearQBTemplate([parentId]);\n }\n if (column) {\n var operVal = this.selectedColumn.operators;\n var rule = { field: column.field, label: column.label, operator: operVal[0].value, value: '' };\n this.addRuleElement(parentGroup, rule, column, 'change', parentId, true);\n }\n else {\n var rule = { field: '', label: '', operator: '', value: '' };\n this.addRuleElement(parentGroup, rule, column, 'change', parentId, true);\n }\n }\n };\n QueryBuilder.prototype.renderToolTip = function (element) {\n var tooltip = new Tooltip({ content: this.l10n.getConstant('ValidationMessage'), isSticky: true,\n position: 'BottomCenter', cssClass: 'e-querybuilder-error', afterClose: function () {\n tooltip.destroy();\n }, beforeOpen: function (args) {\n var tooltipCloseElement = args.element.querySelector('.e-tooltip-close');\n if (tooltipCloseElement) {\n tooltipCloseElement.style.display = 'none';\n }\n } });\n tooltip.appendTo(element);\n tooltip.open(element);\n };\n /**\n * Validate the conditions and it display errors for invalid fields.\n *\n * @returns {boolean} - Validation\n */\n QueryBuilder.prototype.validateFields = function () {\n var isValid = true;\n var dropDownTreeObj;\n if (this.allowValidation) {\n var excludeOprs = ['isnull', 'isnotnull', 'isempty', 'isnotempty'];\n var i = void 0;\n var len = void 0;\n var fieldElem = void 0;\n var indexElem = void 0;\n var valArray = [];\n var groupElem = void 0;\n var index = void 0;\n var dropDownObj = void 0;\n var tempElem = void 0;\n var rule = void 0;\n var ruleElemCln = this.element.querySelectorAll('.e-rule-container');\n for (i = 0, len = ruleElemCln.length; i < len; i++) {\n var validateRule = void 0;\n groupElem = closest(ruleElemCln[i], '.e-group-container');\n rule = this.getParentGroup(groupElem);\n index = 0;\n indexElem = tempElem = ruleElemCln[i];\n if (this.fieldMode === 'DropdownTree') {\n dropDownTreeObj = getComponent(ruleElemCln[i].querySelector('.e-rule-filter input.e-dropdowntree'), 'dropdowntree');\n if (dropDownTreeObj && dropDownTreeObj.value && dropDownTreeObj.value.length) {\n this.selectedColumn = this.getColumn(dropDownTreeObj.value[0]);\n validateRule = this.selectedColumn.validation;\n }\n }\n else {\n dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-filter input.e-dropdownlist'), 'dropdownlist');\n if (dropDownObj && dropDownObj.value) {\n this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);\n validateRule = !isNullOrUndefined(dropDownObj.value) && this.selectedColumn.validation;\n }\n }\n fieldElem = tempElem.querySelector('.e-rule-field input.e-control');\n if (validateRule && validateRule.isRequired) {\n while (indexElem && indexElem.previousElementSibling !== null) {\n indexElem = indexElem.previousElementSibling;\n var separateCondition = this.enableSeparateConnector && ((!this.headerTemplate && !indexElem.classList.contains('e-btn-group')) ||\n (this.headerTemplate && (indexElem.classList.contains('e-rule-container') || indexElem.classList.contains('e-group-container'))));\n if (!this.enableSeparateConnector || separateCondition) {\n index++;\n }\n }\n fieldElem = tempElem.querySelector('.e-rule-operator .e-control');\n if (!rule.rules[index].operator) {\n if (fieldElem.parentElement.className.indexOf('e-tooltip') < 0 && fieldElem.className.indexOf('e-tooltip') < 0) {\n this.renderToolTip(fieldElem.parentElement);\n }\n isValid = false;\n }\n if (rule.rules[index].value instanceof Array) {\n valArray = rule.rules[index].value;\n }\n if (excludeOprs.indexOf(rule.rules[index].operator) < -1 &&\n (isNullOrUndefined(rule.rules[index].value) &&\n rule.rules[index].type !== 'date') || rule.rules[index].value === '' || rule.rules[index].value === null ||\n (rule.rules[index].value instanceof Array && valArray.length < 1)) {\n var valElem = tempElem.querySelectorAll('.e-rule-value .e-control');\n if (excludeOprs.indexOf(rule.rules[index].operator) < 0) {\n isValid = false;\n }\n for (var j = 0, jLen = valElem.length; j < jLen; j++) {\n var element = valElem[j];\n var elem = void 0;\n if (element.parentElement.className.indexOf('e-searcher') > -1) {\n elem = closest(element, '.e-multi-select-wrapper');\n if (elem.className.indexOf('e-tooltip') < 0) {\n this.renderToolTip(elem);\n }\n }\n else if (valElem[j].parentElement.className.indexOf('e-tooltip') < 0 && valElem[j].className.indexOf('e-tooltip') < 0) {\n this.renderToolTip(valElem[j].parentElement);\n }\n j++;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (rule.rules[index].type === 'date' && (rule.rules[index].value === null || rule.rules[index].value.indexOf(null) > -1)) {\n var valElem = tempElem.querySelectorAll('.e-rule-value .e-control');\n if (excludeOprs.indexOf(rule.rules[index].operator) < 0) {\n isValid = false;\n }\n for (var j = 0, jLen = valElem.length; j < jLen; j++) {\n if (valElem[j].parentElement.className.indexOf('e-tooltip') < 0 && valElem[j].className.indexOf('e-tooltip') < 0 && (isNullOrUndefined(rule.rules[index].value) || rule.rules[index].value[j] == null)) {\n this.renderToolTip(valElem[j].parentElement);\n }\n }\n }\n }\n else if ((dropDownObj && dropDownObj.element && isNullOrUndefined(dropDownObj.value)) ||\n (dropDownTreeObj && dropDownTreeObj.element && (isNullOrUndefined(dropDownTreeObj.value) ||\n dropDownTreeObj.value.length < 1))) {\n if (fieldElem.parentElement.className.indexOf('e-tooltip') < 0) {\n this.renderToolTip(fieldElem.parentElement);\n }\n isValid = false;\n }\n }\n }\n return isValid;\n };\n QueryBuilder.prototype.refreshLevelColl = function () {\n this.levelColl = {};\n var groupElem = this.element.querySelector('.e-group-container');\n if (groupElem) {\n this.levelColl[groupElem.id] = [0];\n var obj = { groupElement: groupElem, level: [0] };\n this.refreshLevel(obj);\n }\n };\n QueryBuilder.prototype.refreshLevel = function (obj) {\n var ruleList = obj.groupElement.querySelector('.e-rule-list').children;\n var childElem;\n var groupElem = obj.groupElement;\n var i;\n var iLen = ruleList.length;\n var groupCount = 0;\n for (i = 0; i < iLen; i++) {\n childElem = ruleList[i];\n if (childElem.className.indexOf('e-group-container') > -1) {\n obj.level.push(groupCount);\n this.levelColl[childElem.id] = obj.level.slice();\n groupCount++;\n obj.groupElement = childElem;\n obj = this.refreshLevel(obj);\n }\n }\n var ruleListElem = closest(groupElem, '.e-rule-list');\n obj.groupElement = ruleListElem ? closest(ruleListElem, '.e-group-container') : groupElem;\n obj.level = this.levelColl[obj.groupElement.id].slice();\n return obj;\n };\n QueryBuilder.prototype.groupTemplate = function (isConnector) {\n var glueElem;\n var inputElem;\n var dragClsName;\n var labelElem;\n var grpActElem;\n var groupBtn;\n var groupElem = this.createElement('div', { attrs: { class: 'e-group-container' } });\n var groupHdrElem = this.createElement('div', { attrs: { class: 'e-group-header' } });\n var grpBodyElem = this.createElement('div', { attrs: { class: 'e-group-body' } });\n var rulesElem = this.createElement('div', { attrs: { class: 'e-rule-list' } });\n groupElem.appendChild(groupHdrElem);\n grpBodyElem.appendChild(rulesElem);\n groupElem.appendChild(grpBodyElem);\n // create button group in OR and AND process\n if (!this.headerTemplate) {\n if (this.allowDragAndDrop) {\n dragClsName = 'e-icons e-drag-qb-rule';\n }\n else {\n dragClsName = 'e-icons e-drag-qb-rule e-hidden';\n }\n var spanDragElement = this.createElement('span', { attrs: { class: dragClsName, 'aria-label': 'drag handle',\n title: 'drag handle' } });\n groupHdrElem.appendChild(spanDragElement);\n var className = this.enableSeparateConnector && !isConnector ? 'e-lib e-btn-group e-qb-toggle-btn' : 'e-lib e-btn-group';\n glueElem = this.createElement('div', { attrs: { class: className, role: 'group' } });\n if (this.enableSeparateConnector) {\n glueElem.classList.add('e-multi-connector');\n }\n if (this.enableNotCondition) {\n if (this.enableSeparateConnector) {\n inputElem = this.createElement('input', { attrs: { type: 'checkbox', class: 'e-qb-toggle' } });\n }\n else {\n inputElem = this.createElement('button', { attrs: { type: 'button', class: 'e-qb-toggle' } });\n }\n glueElem.appendChild(inputElem);\n }\n inputElem = this.createElement('input', { attrs: { type: 'radio', class: 'e-btngroup-and', value: 'AND' } });\n glueElem.appendChild(inputElem);\n labelElem = this.createElement('label', { attrs: { class: 'e-lib e-btn e-btngroup-and-lbl e-small' },\n innerHTML: this.l10n.getConstant('AND') });\n glueElem.appendChild(labelElem);\n inputElem = this.createElement('input', { attrs: { type: 'radio', class: 'e-btngroup-or', value: 'OR' } });\n glueElem.appendChild(inputElem);\n labelElem = this.createElement('label', { attrs: { class: 'e-lib e-btn e-btngroup-or-lbl e-small' },\n innerHTML: this.l10n.getConstant('OR') });\n glueElem.appendChild(labelElem);\n groupHdrElem.appendChild(glueElem);\n grpActElem = this.createElement('div', { attrs: { class: 'e-group-action' } });\n if (this.enableSeparateConnector) {\n groupBtn = this.createElement('button', { attrs: { type: 'button', class: 'e-add-condition-btn' } });\n grpActElem.appendChild(groupBtn);\n groupBtn = this.createElement('button', { attrs: { type: 'button', class: 'e-add-group-btn' } });\n grpActElem.appendChild(groupBtn);\n }\n else {\n groupBtn = this.createElement('button', { attrs: { type: 'button', class: 'e-add-btn' } });\n grpActElem.appendChild(groupBtn);\n }\n groupHdrElem.appendChild(grpActElem);\n }\n return groupElem;\n };\n QueryBuilder.prototype.ruleTemplate = function () {\n var tempElem;\n var clsName;\n var cloneClsName;\n var lockClsName;\n var dragClsName;\n var ruleElem = this.createElement('div');\n var fieldElem = this.createElement('div', { attrs: { class: 'e-rule-field' } });\n tempElem = this.createElement('div', { attrs: { class: 'e-rule-filter' } });\n if (this.allowDragAndDrop) {\n dragClsName = 'e-icons e-drag-qb-rule';\n }\n else {\n dragClsName = 'e-icons e-drag-qb-rule e-hidden';\n }\n var spanDragElement = this.createElement('span', { attrs: { class: dragClsName, 'aria-label': 'drag handle',\n title: 'drag handle' } });\n fieldElem.appendChild(spanDragElement);\n var filterElem = this.createElement('input', { attrs: { type: 'text', class: 'e-filter-input' } });\n tempElem.appendChild(filterElem);\n fieldElem.appendChild(tempElem);\n tempElem = this.createElement('div', { attrs: { class: 'e-rule-operator' } });\n fieldElem.appendChild(tempElem);\n tempElem = this.createElement('div', { attrs: { class: 'e-rule-value' } });\n fieldElem.appendChild(tempElem);\n tempElem = this.createElement('div', { attrs: { class: 'e-rule-value-delete' } });\n if (this.showButtons.cloneRule) {\n cloneClsName = 'e-clone-rule-btn e-clone-rule e-css e-btn e-small e-round e-icon-btn';\n }\n else {\n cloneClsName = 'e-clone-rule-btn e-clone-rule e-css e-btn e-small e-round e-icon-btn e-button-hide';\n }\n if (this.showButtons.lockRule) {\n lockClsName = 'e-lock-rule-btn e-lock-rule e-css e-btn e-small e-round e-icons e-icon-btn';\n }\n else {\n lockClsName = 'e-lock-rule-btn e-lock-rule e-css e-btn e-small e-round e-icons e-icon-btn e-button-hide';\n }\n var cloneRuleBtnElem = this.createElement('button', { attrs: { title: this.l10n.getConstant('CloneRule'), type: 'button', class: cloneClsName } });\n var spanElement = this.createElement('span', { attrs: { class: 'e-btn-icon e-icons e-copy' } });\n cloneRuleBtnElem.appendChild(spanElement);\n var cloneLockBtnElem = this.createElement('button', { attrs: { title: this.l10n.getConstant('LockRule'), type: 'button', class: lockClsName } });\n spanElement = this.createElement('span', { attrs: { class: 'e-btn-icon e-icons e-unlock' } });\n cloneLockBtnElem.appendChild(spanElement);\n if (this.showButtons.ruleDelete || isNullOrUndefined(this.showButtons.ruleDelete)) {\n clsName = 'e-removerule e-rule-delete e-css e-btn e-small';\n }\n else {\n clsName = 'e-removerule e-rule-delete e-css e-btn e-small e-button-hide';\n }\n var delBtnElem = this.createElement('button', { attrs: { type: 'button', class: clsName } });\n tempElem.appendChild(cloneRuleBtnElem);\n tempElem.appendChild(cloneLockBtnElem);\n tempElem.appendChild(delBtnElem);\n fieldElem.appendChild(tempElem);\n ruleElem.appendChild(fieldElem);\n return ruleElem;\n };\n QueryBuilder.prototype.addGroupElement = function (isGroup, target, condition, isBtnClick, not, isRoot, rule) {\n var _this = this;\n var args = { groupID: target.id.replace(this.element.id + '_', ''), cancel: false, type: 'insertGroup' };\n if (!this.isImportRules && !this.isInitialLoad && !this.prvtEvtTgrDaD) {\n this.trigger('beforeChange', args, function (observedChangeArgs) {\n _this.addGroupSuccess(observedChangeArgs, isGroup, target, condition, isBtnClick, not, isRoot, rule);\n });\n }\n else {\n this.isInitialLoad = false;\n this.addGroupSuccess(args, isGroup, target, condition, isBtnClick, not, isRoot, rule);\n }\n };\n QueryBuilder.prototype.addGroupSuccess = function (args, isGroup, eventTarget, condition, isBtnClick, not, isRoot, rule) {\n var _this = this;\n if (!args.cancel && (this.element.querySelectorAll('.e-group-container').length <= this.maxGroupCount)) {\n var target = eventTarget;\n var dltGroupBtn = void 0;\n var groupID = '';\n if (target.className.indexOf('e-group-container') < 0) {\n groupID = target.querySelector('.e-group-container') && target.querySelector('.e-group-container').id;\n }\n else {\n groupID = target.id;\n }\n if (this.enableSeparateConnector) {\n this.groupElem = this.groupTemplate();\n }\n var groupElem = this.groupElem.cloneNode(true);\n groupElem.setAttribute('id', this.element.id + '_group' + this.groupIdCounter);\n if (this.groupIdCounter === 0 && this.allowDragAndDrop && groupElem.querySelector('.e-drag-qb-rule')) {\n if (groupElem && groupElem.children[0]) {\n groupElem.children[0].classList.add('e-parent-header');\n }\n addClass([groupElem.querySelector('.e-drag-qb-rule')], 'e-hidden');\n }\n if (this.headerTemplate) {\n if (isRoot) {\n isGroup = false;\n groupElem.setAttribute('id', this.element.id + '_group0');\n this.headerTemplateFn(groupElem, not, condition, rule, groupID);\n this.groupIdCounter = 0;\n }\n else {\n this.headerTemplateFn(groupElem, not, condition, rule, groupID);\n }\n }\n this.groupIdCounter++;\n if (!this.headerTemplate) {\n var andInpElem = groupElem.querySelector('.e-btngroup-and');\n var orInpElem = groupElem.querySelector('.e-btngroup-or');\n var andLblElem = groupElem.querySelector('.e-btngroup-and-lbl');\n var orLblElem = groupElem.querySelector('.e-btngroup-or-lbl');\n andInpElem.setAttribute('id', this.element.id + '_and' + this.btnGroupId);\n orInpElem.setAttribute('id', this.element.id + '_or' + this.btnGroupId);\n andInpElem.setAttribute('name', this.element.id + '_and' + this.btnGroupId);\n orInpElem.setAttribute('name', this.element.id + '_and' + this.btnGroupId);\n andLblElem.setAttribute('for', this.element.id + '_and' + this.btnGroupId);\n orLblElem.setAttribute('for', this.element.id + '_or' + this.btnGroupId);\n this.btnGroupId++;\n }\n if (isGroup) {\n var clsName = void 0;\n if (this.showButtons.groupDelete || isNullOrUndefined(this.showButtons.groupDelete)) {\n clsName = 'e-deletegroup';\n }\n else {\n clsName = 'e-deletegroup e-button-hide';\n }\n dltGroupBtn = this.createElement('button', { attrs: { type: 'button', class: clsName } });\n var button = new Button({ iconCss: 'e-icons e-delete-icon', cssClass: 'e-small e-round' });\n button.appendTo(dltGroupBtn);\n dltGroupBtn.setAttribute('title', this.l10n.getConstant('DeleteGroup'));\n rippleEffect(dltGroupBtn, { selector: '.deletegroup' });\n var ruleList = target.querySelector('.e-rule-list');\n var childElems = ruleList.children;\n var grpLen = 0;\n for (var j = 0, jLen = childElems.length; j < jLen; j++) {\n if (childElems[j].className.indexOf('e-group-container') > -1) {\n grpLen += 1;\n }\n }\n if (this.showButtons.cloneGroup && this.cloneGrpBtnClick) {\n if (this.groupIndex === (childElems.length - 1)) {\n ruleList.appendChild(groupElem);\n this.isLastGroup = true;\n }\n else {\n if (this.enableSeparateConnector) {\n var index = 0;\n var tempGroupIndex = this.groupIndex + 1;\n for (var i = 0; i < tempGroupIndex; i++) {\n if (childElems[i].classList.contains('e-rule-container')) {\n tempGroupIndex++;\n index++;\n }\n }\n if (index > 0) {\n index--;\n }\n var idx = this.groupIndex + index + 1;\n childElems[idx].parentNode.insertBefore(groupElem, childElems[idx]);\n }\n else {\n var idx = this.groupIndex + 1;\n childElems[idx].parentNode.insertBefore(groupElem, childElems[idx]);\n }\n this.isMiddleGroup = true;\n }\n }\n else {\n ruleList.appendChild(groupElem);\n }\n var level = this.levelColl[target.id].slice(0);\n level.push(grpLen);\n this.levelColl[groupElem.id] = level;\n if (this.groupIndex > -1) {\n this.refreshLevelColl();\n }\n if (!this.isImportRules) {\n this.isAddSuccess = true;\n this.addGroups([], target.id.replace(this.element.id + '_', ''));\n this.isAddSuccess = false;\n if (isBtnClick && this.addRuleToNewGroups) {\n this.addRuleElement(groupElem, {});\n }\n }\n if (!this.headerTemplate) {\n var lockClsName = '';\n if (this.showButtons.cloneGroup) {\n lockClsName = 'e-clone-grp-btn e-css e-btn e-small e-round e-icons e-icon-btn';\n }\n else {\n lockClsName = 'e-clone-grp-btn e-css e-btn e-small e-round e-icons e-icon-btn e-button-hide';\n }\n var cloneBtnElem = this.createElement('button', { attrs: { title: this.l10n.getConstant('CloneGroup'), type: 'button', class: lockClsName } });\n var spanElement = this.createElement('span', { attrs: { class: 'e-btn-icon e-icons e-copy' } });\n cloneBtnElem.appendChild(spanElement);\n groupElem.querySelector('.e-group-action').appendChild(cloneBtnElem);\n if (this.showButtons.lockGroup) {\n lockClsName = 'e-lock-grp-btn e-css e-btn e-small e-round e-icons e-icon-btn';\n }\n else {\n lockClsName = 'e-lock-grp-btn e-css e-btn e-small e-round e-icons e-icon-btn e-button-hide';\n }\n var lockBtnElem = this.createElement('button', { attrs: { title: this.l10n.getConstant('LockGroup'), type: 'button', class: lockClsName } });\n var lockSpanElement = this.createElement('span', { attrs: { class: 'e-btn-icon e-icons e-unlock' } });\n lockBtnElem.appendChild(lockSpanElement);\n groupElem.querySelector('.e-group-action').appendChild(lockBtnElem);\n groupElem.querySelector('.e-group-action').appendChild(dltGroupBtn);\n }\n }\n else {\n if (!this.headerTemplate) {\n var lockClsName = '';\n if (this.showButtons.lockGroup) {\n lockClsName = 'e-lock-grp-btn e-css e-btn e-small e-round e-icons e-icon-btn';\n }\n else {\n lockClsName = 'e-lock-grp-btn e-css e-btn e-small e-round e-icons e-icon-btn e-button-hide';\n }\n var lockBtnElem = this.createElement('button', { attrs: { title: this.l10n.getConstant('LockGroup'), type: 'button', class: lockClsName } });\n var spanElement = this.createElement('span', { attrs: { class: 'e-btn-icon e-icons e-unlock' } });\n lockBtnElem.appendChild(spanElement);\n groupElem.querySelector('.e-group-action').appendChild(lockBtnElem);\n }\n target.appendChild(groupElem);\n this.levelColl[groupElem.id] = [0];\n }\n if (this.enableNotCondition) {\n if (!this.headerTemplate) {\n var notElem = groupElem.querySelector('.e-qb-toggle');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var tglBtn = void 0;\n if (this.enableSeparateConnector) {\n tglBtn = new CheckBox({ label: this.l10n.getConstant('NOT'), cssClass: 'e-qb-toggle' });\n }\n else {\n tglBtn = new Button({ content: this.l10n.getConstant('NOT'), cssClass: 'e-btn e-small' });\n }\n tglBtn.appendTo(notElem);\n groupElem.querySelector('.e-btngroup-and-lbl').classList.add('e-not');\n if (this.updatedRule && this.updatedRule.not) {\n addClass([notElem], 'e-active-toggle');\n }\n }\n }\n if (this.enableSeparateConnector && !this.headerTemplate) {\n var andElem = groupElem.querySelector('.e-btngroup-and');\n var orElem = groupElem.querySelector('.e-btngroup-or');\n var btnGroup = groupElem.querySelector('.e-btn-group');\n for (var i = 0; i < btnGroup.childNodes.length; i++) {\n if (groupElem.querySelector('.e-btn-group').childNodes[i].textContent.toLowerCase() === 'not') {\n if (!this.enableNotCondition) {\n btnGroup.childNodes[i].style.display = 'none';\n }\n else {\n btnGroup.childNodes[i].classList.add('e-multiconnector');\n }\n }\n else {\n btnGroup.childNodes[i].style.display = 'none';\n }\n }\n var prevSibling = groupElem.previousElementSibling;\n if (prevSibling) {\n if (isNullOrUndefined(this.headerTemplate)) {\n groupElem.parentElement.insertBefore(this.groupTemplate(true).querySelector('.e-btn-group'), groupElem);\n var notElem = groupElem.previousElementSibling.childNodes[0];\n if (notElem.classList.contains('e-qb-toggle')) {\n notElem.style.display = 'none';\n }\n }\n if (!this.isImportRules) {\n var groupElement = groupElem.previousElementSibling;\n var newAndElem = groupElement.querySelector('.e-btngroup-and');\n var newOrElem = groupElement.querySelector('.e-btngroup-or');\n if (!andElem.checked && !orElem.checked) {\n var nextSibling = groupElem.nextElementSibling;\n if (nextSibling && nextSibling.classList.contains('e-btn-group')) {\n andElem = nextSibling.querySelector('.e-btngroup-and');\n orElem = nextSibling.querySelector('.e-btngroup-or');\n newAndElem.checked = andElem.checked;\n newOrElem.checked = orElem.checked;\n }\n }\n else if (this.enableSeparateConnector) {\n if (andElem.checked) {\n newAndElem.checked = true;\n }\n if (orElem.checked) {\n newOrElem.checked = true;\n }\n }\n }\n }\n }\n this.updatedRule = null;\n if (this.headerTemplate) {\n var args_4 = { requestType: 'header-template-create', ruleID: groupElem.id, condition: condition,\n notCondition: this.enableNotCondition ? not : undefined };\n this.trigger('actionBegin', args_4);\n }\n else {\n if (this.enableSeparateConnector) {\n var conditionBtn_1 = groupElem.querySelector('.e-add-condition-btn');\n var btnObj = new Button({ cssClass: this.element.id + '_addConditionbtn', content: this.l10n.getConstant('AddCondition') });\n btnObj.appendTo(conditionBtn_1);\n btnObj.element.onclick = function () {\n _this.addRuleElement(closest(conditionBtn_1, '.e-group-container'), {});\n };\n var groupBtn_1 = groupElem.querySelector('.e-add-group-btn');\n btnObj = new Button({ cssClass: this.element.id + '_addGroupbtn', content: this.l10n.getConstant('AddGroup') });\n btnObj.appendTo(groupBtn_1);\n btnObj.element.onclick = function () {\n _this.addGroupElement(true, closest(groupBtn_1, '.e-group-container'), '', true);\n };\n }\n else {\n var groupBtn = groupElem.querySelector('.e-add-btn');\n var btnObj = new DropDownButton({\n items: this.items,\n cssClass: 'e-round e-small e-caret-hide e-addrulegroup',\n iconCss: 'e-icons e-add-icon',\n beforeOpen: this.selectBtn.bind(this, groupBtn),\n select: this.selectBtn.bind(this, groupBtn)\n });\n btnObj.appendTo(groupBtn);\n groupBtn.setAttribute('title', this.l10n.getConstant('AddButton'));\n }\n }\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n var grpId = target.id.replace(this.element.id + '_', '');\n var chgrpId = groupElem.id.replace(this.element.id + '_', '');\n this.trigger('change', { groupID: grpId, type: 'insertGroup', childGroupID: chgrpId });\n }\n }\n };\n QueryBuilder.prototype.setMultiConnector = function (trgt) {\n if (this.enableSeparateConnector && !this.headerTemplate) {\n if (trgt.previousElementSibling && this.groupElem.querySelector('.e-btn-group')) {\n trgt.parentElement.insertBefore(this.groupTemplate(true).querySelector('.e-btn-group'), trgt);\n var notElem = trgt.previousElementSibling.childNodes[0];\n if (notElem.classList.contains('e-qb-toggle')) {\n notElem.style.display = 'none';\n }\n this.addHeaderDiv(trgt);\n }\n }\n };\n QueryBuilder.prototype.addHeaderDiv = function (elem) {\n var prevRule;\n var prevElem = elem.previousElementSibling.previousElementSibling;\n if (prevElem) {\n if (prevElem.id.indexOf('rule') > -1) {\n prevRule = this.getRule(prevElem);\n }\n else {\n prevRule = this.getGroup(prevElem);\n }\n if (!isNullOrUndefined(prevRule) && isNullOrUndefined(prevRule.condition)) {\n prevRule.condition = 'and';\n }\n var orElem = elem.previousElementSibling.querySelector('.e-btngroup-or');\n var andElem = elem.previousElementSibling.querySelector('.e-btngroup-and');\n orElem.disabled = false;\n andElem.disabled = false;\n if (!isNullOrUndefined(prevRule) && prevRule.condition === 'or') {\n orElem.checked = true;\n }\n else {\n andElem.checked = true;\n }\n }\n };\n QueryBuilder.prototype.headerTemplateFn = function (groupElem, not, condition, rule, groupID, isInitialRule) {\n var template;\n var templateID = this.element.id + '_header';\n var args;\n var groupHdr = groupElem.querySelector('.e-group-header');\n if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {\n groupHdr = groupElem;\n }\n if (this.headerTemplate) {\n args = { requestType: 'header-template-initialize', ruleID: groupElem.id,\n notCondition: this.enableNotCondition ? not : undefined,\n condition: condition, rule: this.getRuleCollection(rule, false), groupID: groupID };\n this.trigger('actionBegin', args);\n if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {\n args.requestType = 'rule-template-create';\n }\n this.headerFn = this.templateParser(this.headerTemplate);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n template = this.headerFn(args, this, groupElem.id, templateID)[0];\n if (this.enableSeparateConnector && isInitialRule) {\n this.enableSeparateConnectorInitialRule(groupElem, template);\n }\n else if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {\n groupHdr.parentElement.insertBefore(template, groupHdr.nextElementSibling);\n }\n else {\n groupHdr.appendChild(template);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (this.isAngular) {\n var templateColl = this.headerFn(args, this, groupElem.id, templateID);\n template = (templateColl[0].nodeType === 3) ? templateColl[1] : templateColl[0];\n if (this.enableSeparateConnector && isInitialRule) {\n this.enableSeparateConnectorInitialRule(groupElem, template);\n }\n else if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {\n groupHdr.parentElement.insertBefore(template, groupHdr.nextElementSibling);\n }\n else {\n groupHdr.appendChild(template);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (this.isVue3) {\n template = this.headerFn(args, this, groupElem.id, templateID);\n if (this.enableSeparateConnector && (isInitialRule || groupElem.id.indexOf('rule') !== -1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (var i = 0; i < template.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (template[i].nodeName === 'DIV') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n template = template[i];\n break;\n }\n }\n }\n if (this.enableSeparateConnector && isInitialRule) {\n this.enableSeparateConnectorInitialRule(groupElem, template);\n }\n else if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {\n groupHdr.parentElement.insertBefore(template, groupHdr.nextElementSibling);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n append(template, groupHdr);\n }\n }\n else {\n template = this.headerFn(args, this, 'Template', templateID)[0];\n if (this.enableSeparateConnector && isInitialRule) {\n this.enableSeparateConnectorInitialRule(groupElem, template);\n }\n else if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {\n groupHdr.parentElement.insertBefore(template, groupHdr.nextElementSibling);\n }\n else {\n groupHdr.appendChild(template);\n }\n }\n this.renderReactTemplates();\n }\n return groupElem;\n };\n QueryBuilder.prototype.enableSeparateConnectorInitialRule = function (groupElem, template) {\n var elem = groupElem.nextElementSibling ? groupElem.nextElementSibling : groupElem;\n var group = elem.closest('.e-group-container');\n if (!groupElem.nextElementSibling && group) {\n group = group.nextElementSibling ? group.nextElementSibling : group;\n }\n if (group) {\n group.parentElement.insertBefore(template, group);\n }\n };\n /**\n * Notify the changes to component.\n *\n * @param {string | number | boolean | Date | string[] | number[] | Date[]} value - 'value' to be passed to update the rule value.\n * @param {Element} element - 'element' to be passed to update the rule.\n * @param {string} type - 'type' to be passed to update the rule .\n * @returns {void}.\n */\n QueryBuilder.prototype.notifyChange = function (value, element, type) {\n var grpElement = closest(element, '.e-group-container');\n var rules = this.getParentGroup(grpElement);\n var ruleElement = closest(element, '.e-rule-container');\n var index = 0;\n if (type === 'not') {\n rules.not = value;\n return;\n }\n if (type === 'condition') {\n if (this.enableSeparateConnector) {\n ruleElement = element.parentElement.previousElementSibling;\n if (ruleElement && ruleElement.classList.contains('e-group-container')) {\n ruleElement = ruleElement.querySelectorAll('.e-rule-container')[ruleElement.querySelectorAll('.e-rule-container').length - 1];\n }\n if (ruleElement && ruleElement.classList.contains('e-rule-container')) {\n rules = this.getRule(ruleElement);\n }\n rules.condition = value;\n }\n else {\n rules.condition = value;\n }\n return;\n }\n while (ruleElement && ruleElement.previousElementSibling !== null) {\n ruleElement = ruleElement.previousElementSibling;\n if (!this.enableSeparateConnector || (this.enableSeparateConnector &&\n ((!this.headerTemplate && !ruleElement.classList.contains('e-btn-group')) ||\n this.headerTemplate && (ruleElement.classList.contains('e-rule-container') ||\n ruleElement.classList.contains('e-group-container'))))) {\n index++;\n }\n }\n var rule = rules.rules[index];\n var column = this.getColumn(rule.field);\n var format = this.getFormat(column.format);\n if (column.type === 'date') {\n if (value instanceof Date) {\n value = this.intl.formatDate(value, format);\n }\n else if (value instanceof Array) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] && value[i] instanceof Date) {\n value[i] = this.intl.formatDate(value[i], format);\n }\n }\n }\n }\n if (column.ruleTemplate) {\n this.templateChange(element, value, type);\n }\n else {\n this.isNotified = true;\n this.updateRules(element, value);\n this.isNotified = false;\n }\n };\n QueryBuilder.prototype.templateChange = function (element, value, type) {\n var grpElem = closest(element, '.e-group-container');\n var eventsArgs;\n var rules = this.getParentGroup(grpElem);\n var ruleElem = closest(element, '.e-rule-container');\n var index = 0;\n if (this.allowValidation) {\n this.validateValue(rules, ruleElem);\n }\n while (ruleElem && ruleElem.previousElementSibling !== null) {\n ruleElem = ruleElem.previousElementSibling;\n if (!this.enableSeparateConnector || (this.enableSeparateConnector &&\n ((!this.headerTemplate && !ruleElem.classList.contains('e-btn-group')) ||\n this.headerTemplate && (ruleElem.classList.contains('e-rule-container') ||\n ruleElem.classList.contains('e-group-container'))))) {\n index++;\n }\n }\n var rule = rules.rules[index];\n if (type === 'field') {\n this.selectedColumn = this.getColumn(value);\n }\n else if (rule) {\n this.selectedColumn = this.getColumn(rule.field);\n }\n var operVal;\n this.previousColumn = this.getColumn(rule.field);\n var beforeRules = this.getValidRules(this.rule);\n if (this.selectedColumn) {\n if (this.selectedColumn.operators) {\n operVal = this.selectedColumn.operators;\n }\n else {\n operVal = this.customOperators[this.selectedColumn.type + 'Operator'];\n }\n }\n var arrOper = ['in', 'notin', 'between', 'notbetween'];\n var prevOper;\n switch (type) {\n case 'field':\n if (isNullOrUndefined(value)) {\n rule.field = '';\n rule.label = '';\n rule.type = '';\n rule.value = '';\n rule.operator = '';\n }\n else {\n rule.field = value;\n rule.label = this.selectedColumn.label;\n rule.type = this.selectedColumn.type;\n rule.value = '';\n rule.operator = operVal[0].value;\n }\n break;\n case 'operator':\n prevOper = rule.operator;\n rule.operator = value;\n if (arrOper.indexOf(rule.operator) > -1) {\n rule.value = [];\n }\n else if (arrOper.indexOf(prevOper) > -1) {\n rule.value = '';\n }\n break;\n case 'value':\n rule.value = value;\n }\n this.changeRuleTemplate(this.selectedColumn, element);\n this.filterRules(beforeRules, this.getValidRules(this.rule), type);\n if (this.selectedColumn && this.selectedColumn.ruleTemplate) {\n if (type === 'field' || type === 'operator') {\n var grpEle = closest(element, '.e-rule-container');\n this.destroyControls(grpEle, true);\n detach(grpEle.querySelector('.e-rule-field'));\n var ruleElement = this.appendRuleElem(closest(grpEle, '.e-group-container'), this.selectedColumn, 'change', grpEle.id, type, rule);\n if (this.displayMode === 'Vertical' || this.element.className.indexOf('e-device') > -1) {\n ruleElement.className = 'e-rule-container e-vertical-mode';\n }\n else {\n ruleElement.className = 'e-rule-container e-horizontal-mode';\n }\n if (!this.enableSeparateConnector) {\n if (ruleElement.previousElementSibling && ruleElement.previousElementSibling.className.indexOf('e-rule-container') > -1) {\n if (ruleElement.className.indexOf('e-joined-rule') < 0) {\n ruleElement.className += ' e-joined-rule';\n }\n if (ruleElement.previousElementSibling.className.indexOf('e-prev-joined-rule') < 0) {\n ruleElement.previousElementSibling.className += ' e-prev-joined-rule';\n }\n }\n }\n if (ruleElement.previousElementSibling && ruleElement.previousElementSibling.className.indexOf('e-group-container') > -1 &&\n ruleElement.className.indexOf('e-separate-rule') < 0) {\n ruleElement.className += ' e-separate-rule';\n }\n var args = { requestType: 'template-create', action: type, ruleID: grpEle.id,\n fields: this.fields, rule: rule };\n eventsArgs = { groupID: grpElem.id.replace(this.element.id + '_', ''), ruleID: grpEle.id.replace(this.element.id + '_', ''),\n value: rule.field, type: 'field' };\n this.trigger('actionBegin', args);\n this.trigger('change', eventsArgs);\n }\n }\n };\n QueryBuilder.prototype.changeValue = function (i, args) {\n var _this = this;\n var element;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((this.isNumInput && typeof args.value === 'number') || (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox'))\n && (this.selectedColumn.validation && (this.selectedColumn.validation.max !== Number.MAX_VALUE || this.selectedColumn.validation.min > 0))) {\n this.isNumInput = false;\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (args.element && args.element.classList.contains('e-multiselect')) {\n var multiSelectArgs = args;\n element = multiSelectArgs.element;\n }\n else if (args.event) {\n element = args.event.target;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element = args.currentTarget;\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element = args.element;\n }\n if (!element) {\n return;\n }\n if (element.className.indexOf('e-day') > -1 || element.className.indexOf('e-today') > -1 || element.className.indexOf('e-cell') > -1) {\n var calenderArgs = args;\n element = calenderArgs.element;\n }\n var groupElem = closest(element, '.e-group-container');\n var ruleElem = closest(element, '.e-rule-container');\n var groupID = groupElem && groupElem.id.replace(this.element.id + '_', '');\n var ruleID = ruleElem.id.replace(this.element.id + '_', '');\n var dateElement = args;\n var dropDownObj;\n if (dateElement.element && dateElement.element.className.indexOf('e-datepicker') > -1) {\n element = dateElement.element;\n dropDownObj = getComponent(closest(element, '.e-rule-container').querySelector('.e-filter-input'), 'dropdownlist');\n if (dropDownObj) {\n this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);\n }\n dropDownObj = getComponent(closest(element, '.e-rule-container').querySelector('.e-filter-input'), 'dropdowntree');\n if (dropDownObj) {\n this.selectedColumn = this.getColumn(dropDownObj.value[0]);\n }\n }\n var value;\n var rbValue;\n if (element.className.indexOf('e-radio') > -1) {\n rbValue = parseInt(element.id.split('valuekey')[1], 10);\n if (this.fieldMode === 'Default') {\n dropDownObj = getComponent(closest(element, '.e-rule-container').querySelector('.e-filter-input'), 'dropdownlist');\n this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);\n if (this.selectedColumn.columns) {\n dropDownObj = getComponent(closest(element, '.e-rule-container').querySelector('.e-rule-sub-filter .e-dropdownlist'), 'dropdownlist');\n this.selectedColumn = this.getColumn(dropDownObj.value);\n }\n }\n else {\n dropDownObj = getComponent(closest(element, '.e-rule-container').querySelector('.e-filter-input'), 'dropdowntree');\n this.selectedColumn = this.getColumn(dropDownObj.value[0]);\n }\n if (this.selectedColumn.values) {\n value = this.selectedColumn.values[rbValue];\n }\n else {\n var valColl = [true, false];\n value = valColl[rbValue];\n }\n }\n else if (element.className.indexOf('e-multiselect') > -1) {\n value = getComponent(element, 'multiselect').value;\n }\n else {\n value = args.value;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value = Number(args.currentTarget.value);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elem = args.currentTarget;\n var numericTextBoxObj = getInstance(elem, NumericTextBox);\n var decimalSeparator = getValue('decimal', getNumericObject(this.locale));\n if (isNaN(value) && elem.value.indexOf(decimalSeparator) !== -1) {\n value = this.intl.getNumberParser({ format: 'n' })(elem.value);\n }\n if (!isNaN(value)) {\n numericTextBoxObj.value = value;\n }\n this.isNumInput = true;\n }\n }\n if (args.name === 'input' && this.immediateModeDelay) {\n window.clearInterval(this.timer);\n this.timer = window.setInterval(function () { _this.filterValue(groupID, ruleID, value, i, element); }, this.immediateModeDelay);\n }\n else {\n this.filterValue(groupID, ruleID, value, i, element);\n }\n };\n QueryBuilder.prototype.filterValue = function (grID, rlID, value, i, ele) {\n var _this = this;\n var eventsArgs = { groupID: grID, ruleID: rlID, value: value, cancel: false, type: 'value' };\n window.clearInterval(this.timer);\n if (!this.isImportRules) {\n this.trigger('beforeChange', eventsArgs, function (observedChangeArgs) {\n _this.changeValueSuccessCallBack(observedChangeArgs, ele, i, grID, rlID);\n });\n }\n else {\n this.changeValueSuccessCallBack(eventsArgs, ele, i, grID, rlID);\n }\n };\n QueryBuilder.prototype.changeValueSuccessCallBack = function (args, element, i, groupID, ruleID) {\n if (!args.cancel) {\n this.updateRules(element, args.value, i);\n if (!this.isImportRules) {\n this.trigger('change', { groupID: groupID, ruleID: ruleID, value: args.value, cancel: false, type: 'value' });\n }\n }\n };\n QueryBuilder.prototype.fieldClose = function (id) {\n if (this.isFieldChange || this.isDestroy) {\n return;\n }\n this.isFieldClose = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var ddl = getComponent(id, 'dropdownlist');\n var item = ddl.popupObj && ddl.popupObj.element.querySelector('.e-active');\n var itemData = ddl.getItemData();\n ddl.value = itemData.value;\n var customArgs = { element: ddl.element, value: itemData.value, isInteracted: true,\n previousItemData: this.prevItemData, previousItem: null, item: item, itemData: itemData, event: null, e: null };\n if (ddl.previousValue !== ddl.value) {\n this.changeField(customArgs);\n }\n this.isFieldChange = false;\n };\n QueryBuilder.prototype.changeField = function (args) {\n if (args.isInteracted) {\n if (isNullOrUndefined(args.value)) {\n return;\n }\n this.isFieldChange = true;\n this.prevItemData = args.itemData;\n var fieldElem = closest(args.element, '.e-rule-filter') || closest(args.element, '.e-rule-sub-filter');\n var column = this.fieldMode === 'DropdownTree' ? this.getColumn(args.value[0]) : this.getColumn(args.value);\n if (this.fieldMode === 'DropdownTree' && fieldElem !== null) {\n var ddtElem = fieldElem.querySelector('.e-dropdowntree.e-control');\n var ddt = getComponent(ddtElem, 'dropdowntree');\n if (column) {\n if (column.type === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ddt.value = args.oldValue;\n ddt.dataBind();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNullOrUndefined(args.oldValue)) {\n ddtElem.value = '';\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var result = this.getLabelFromColumn(args.oldValue[0]);\n ddtElem.value = result;\n }\n return;\n }\n else {\n if (!isNullOrUndefined(args.value[0])) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ddt.value = args.value[0];\n ddt.dataBind();\n var result = this.getLabelFromColumn(args.value[0]);\n ddtElem.value = result;\n }\n }\n }\n else {\n return;\n }\n }\n this.destroySubFields(fieldElem);\n this.subFieldElem = null;\n this.isNotValueChange = true;\n if (column && column.ruleTemplate) {\n this.templateChange(args.element, column.field, 'field');\n }\n else if (column && column.columns && column.columns[0].ruleTemplate) {\n this.templateChange(args.element, column.columns[0].field, 'field');\n }\n else {\n var groupElem = closest(args.element, '.e-group-container');\n var rules = this.getParentGroup(groupElem);\n var ruleElem = closest(args.element, '.e-rule-container');\n var index = 0;\n while (ruleElem && ruleElem.previousElementSibling !== null) {\n ruleElem = ruleElem.previousElementSibling;\n if (!this.enableSeparateConnector || (this.enableSeparateConnector &&\n ((!this.headerTemplate && !ruleElem.classList.contains('e-btn-group')) ||\n this.headerTemplate && (ruleElem.classList.contains('e-rule-container') ||\n ruleElem.classList.contains('e-group-container'))))) {\n index++;\n }\n }\n rules.rules[index].value = '';\n this.changeRule(rules.rules[index], args);\n }\n }\n };\n QueryBuilder.prototype.changeRule = function (rule, ddlArgs) {\n if (!ddlArgs.itemData) {\n if (this.fieldMode === 'DropdownTree') {\n var ddt = getComponent(ddlArgs.element, 'dropdowntree');\n if (ddt.value == null) {\n return;\n }\n }\n else {\n return;\n }\n }\n var tempRule = {};\n var filterElem = closest(ddlArgs.element, '.e-rule-filter');\n filterElem = filterElem ? filterElem : closest(ddlArgs.element, '.e-rule-sub-filter');\n var ddlObj = getComponent(ddlArgs.element, 'dropdownlist');\n if (this.fieldMode === 'DropdownTree' && filterElem !== null) {\n ddlObj = getComponent(ddlArgs.element, 'dropdowntree');\n }\n var element = closest(ddlArgs.element, '.e-group-container');\n var groupID = element.id.replace(this.element.id + '_', '');\n this.changeFilter(filterElem, ddlObj, groupID, rule, tempRule, ddlArgs);\n };\n QueryBuilder.prototype.changeFilter = function (flt, dl, grID, rl, tmpRl, dArg) {\n var _this = this;\n if (flt) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var ddlValue = void 0;\n if (this.fieldMode === 'DropdownTree') {\n ddlValue = (dl.value[0]);\n }\n else {\n ddlValue = this.isImportRules ? this.GetRootColumnName(dl.value) : dl.value;\n }\n this.selectedColumn = this.getColumn(ddlValue);\n var ruleElem = closest(flt, '.e-rule-container');\n var ruleID = ruleElem.id.replace(this.element.id + '_', '');\n var eventsArgs = { groupID: grID, ruleID: ruleID, selectedField: this.fieldMode === 'DropdownTree' ?\n dl.value[0] : dl.value, cancel: false, type: 'field' };\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('beforeChange', eventsArgs, function (observedChangeArgs) {\n _this.fieldChangeSuccess(observedChangeArgs, tmpRl, flt, rl, dArg);\n });\n }\n else {\n this.fieldChangeSuccess(eventsArgs, tmpRl, flt, rl, dArg);\n }\n }\n else {\n var operatorElem = closest(dArg.element, '.e-rule-operator');\n this.changeOperator(flt, operatorElem, dl, grID, rl, tmpRl, dArg);\n }\n };\n QueryBuilder.prototype.changeOperator = function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n flt, opr, dl, grID, rl, tmpRl, dArg) {\n var _this = this;\n var ruleElem;\n var ruleID;\n var eventsArgs;\n if (opr) {\n ruleElem = closest(opr, '.e-rule-container');\n ruleID = ruleElem.id.replace(this.element.id + '_', '');\n eventsArgs = { groupID: grID, ruleID: ruleID, selectedIndex: dl.index, cancel: false, type: 'operator' };\n if (!this.isImportRules) {\n this.trigger('beforeChange', eventsArgs, function (observedChangeArgs) {\n _this.operatorChangeSuccess(observedChangeArgs, flt, tmpRl, rl, dArg);\n });\n }\n else {\n this.operatorChangeSuccess(eventsArgs, flt, tmpRl, rl, dArg);\n }\n }\n else {\n this.changeRuleValues(flt, rl, tmpRl, dArg);\n }\n };\n QueryBuilder.prototype.fieldChangeSuccess = function (args, tempRule, filterElem, rule, ddlArgs) {\n var ruleElem = closest(filterElem, '.e-rule-container');\n var operatorElem = closest(ddlArgs.element, '.e-rule-operator');\n var element = closest(ddlArgs.element, '.e-group-container');\n var groupID = element.id.replace(this.element.id + '_', '');\n var ddlObj = getComponent(ddlArgs.element, 'dropdownlist');\n var tooltipElem = ruleElem.querySelectorAll('.e-tooltip.e-input-group');\n for (var i = 0; i < tooltipElem.length; i++) {\n getComponent(tooltipElem[i], 'tooltip').destroy();\n }\n if (!args.cancel) {\n if (isNullOrUndefined(this.selectedColumn)) {\n return;\n }\n tempRule.type = this.selectedColumn.type;\n if (ruleElem.querySelector('.e-template')) {\n rule.value = '';\n }\n if (this.selectedColumn.type === 'object' && this.fieldMode === 'Default') {\n tempRule.type = this.selectedColumn.columns[0].type;\n while (this.selectedColumn.columns) {\n this.createSubFields(filterElem, rule, tempRule, ddlArgs);\n }\n }\n else {\n this.destroySubFields(filterElem);\n this.changeOperator(filterElem, operatorElem, ddlObj, groupID, rule, tempRule, ddlArgs);\n }\n }\n else {\n this.changeOperator(filterElem, operatorElem, ddlObj, groupID, rule, tempRule, ddlArgs);\n }\n };\n QueryBuilder.prototype.destroySubFields = function (filterElem) {\n while (filterElem && filterElem.nextElementSibling.classList.contains('e-rule-sub-filter')) {\n this.destroyControls(filterElem);\n filterElem.nextElementSibling.remove();\n }\n };\n QueryBuilder.prototype.createSubFields = function (filterElem, rule, tempRule, ddlArgs) {\n var subFieldValue = false;\n var fieldElem = closest(filterElem, '.e-rule-field');\n var tempElem = this.createElement('div', { attrs: { class: 'e-rule-sub-filter', id: 'subfilter' + this.subFilterCounter } });\n fieldElem.insertBefore(tempElem, fieldElem.querySelector('.e-rule-operator'));\n var ruleId = closest(tempElem, '.e-rule-container').id;\n var subFieldElem = this.createElement('input', { attrs: { type: 'text', id: ruleId + '_subfilterkey' + this.subFilterCounter } });\n tempElem.appendChild(subFieldElem);\n var height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';\n var ddlField;\n ddlField = {\n dataSource: this.selectedColumn.columns,\n fields: this.fields,\n placeholder: this.l10n.getConstant('SelectField'),\n popupHeight: ((this.selectedColumn.columns.length > 5) ? height : 'auto'),\n change: this.changeField.bind(this),\n index: 0,\n open: this.popupOpen.bind(this, false)\n };\n if (this.fieldModel) {\n ddlField = __assign({}, ddlField, this.fieldModel);\n }\n var dropDownList = new DropDownList(ddlField);\n dropDownList.appendTo('#' + ruleId + '_subfilterkey' + this.subFilterCounter);\n if (this.isImportRules || (this.previousColumn && this.previousColumn.ruleTemplate &&\n this.GetRootColumnName(rule.field) === this.GetRootColumnName(this.previousColumn.field))) {\n var subField = this.selectedColumn.columns;\n for (var i = 0; i < subField.length; i++) {\n if (rule.field === subField[i].field || rule.field.indexOf(subField[i].field + this.separator) > -1) {\n dropDownList.value = subField[i].field;\n this.selectedColumn = subField[i];\n subFieldValue = true;\n break;\n }\n }\n }\n this.subFilterCounter++;\n this.subFieldElem = subFieldElem;\n // eslint-disable-next-line\n ddlArgs.itemData = ddlArgs.itemData;\n if (!subFieldValue && this.selectedColumn.columns) {\n if (!subFieldValue && this.isImportRules) {\n dropDownList.value = null;\n }\n this.selectedColumn = this.selectedColumn.columns[0];\n }\n this.previousColumn = this.selectedColumn;\n if (!this.selectedColumn.columns) {\n this.changeRuleValues(tempElem, rule, tempRule, ddlArgs);\n }\n };\n QueryBuilder.prototype.operatorChangeSuccess = function (eventsArgs, filterElem, tempRule, rule, ddlArgs) {\n if (!eventsArgs.cancel) {\n var operatorElem = closest(ddlArgs.element, '.e-rule-operator');\n var valElem = operatorElem.nextElementSibling;\n var dropDownObj = getComponent(ddlArgs.element, 'dropdownlist');\n var prevOper = rule.operator ? rule.operator.toString().toLowerCase() : '';\n tempRule.operator = dropDownObj.value.toString();\n var currOper = tempRule.operator.toLowerCase();\n if (tempRule.operator.toLowerCase().indexOf('between') > -1 || (tempRule.operator.toLowerCase().indexOf('in') > -1\n && tempRule.operator.toLowerCase().indexOf('contains') < 0)) {\n filterElem = operatorElem.previousElementSibling;\n tempRule.type = rule.type;\n if (tempRule.operator.toLowerCase().indexOf('in') < 0 || prevOper.indexOf('in') < 0) {\n rule.value = [];\n }\n }\n else if (typeof rule.value === 'object' && rule.value !== null) {\n rule.value = rule.value.length > 0 ? rule.value[0] : rule.type === 'number' ? 0 : '';\n }\n if (ddlArgs.previousItemData) {\n var prevValue = ddlArgs.previousItemData.value.toString().toLowerCase();\n if ((prevValue.indexOf('between') > -1 || (prevValue.indexOf('in') > -1 || (prevValue.indexOf('null') > -1)\n || (prevValue.indexOf('empty') > -1)) && prevValue.indexOf('contains') < 0)) {\n filterElem = operatorElem.previousElementSibling;\n tempRule.type = rule.type;\n }\n }\n if ((prevOper.indexOf('in') > -1 && prevOper.indexOf('in') < 5) && (currOper.indexOf('in') > -1\n && currOper.indexOf('in') < 5)) {\n filterElem = null;\n }\n if (tempRule.operator.indexOf('null') > -1 || (tempRule.operator.indexOf('empty') > -1)) {\n var parentElem = operatorElem.parentElement.querySelector('.e-rule-value');\n var tooltipElem = parentElem.querySelector('.e-tooltip.e-input-group');\n if (tooltipElem) {\n getComponent(tooltipElem, 'tooltip').destroy();\n }\n removeClass([parentElem], 'e-show');\n addClass([parentElem], 'e-hide');\n }\n if (valElem && this.getColumn(rule.field).template) {\n filterElem = operatorElem.previousElementSibling;\n }\n if (valElem.children.length === 0) {\n filterElem = operatorElem.previousElementSibling;\n }\n this.changeRuleValues(filterElem, rule, tempRule, ddlArgs);\n }\n };\n QueryBuilder.prototype.changeRuleValues = function (filterElem, rule, tempRule, ddlArgs) {\n var operatorElem = closest(ddlArgs.element, '.e-rule-operator');\n var isSub;\n var ddlObj;\n var operatorList;\n var oprElem;\n if (filterElem) {\n operatorElem = filterElem.nextElementSibling;\n if (filterElem.classList.contains('e-rule-sub-filter')) {\n tempRule.type = this.selectedColumn.type;\n isSub = operatorElem.classList.contains('e-rule-sub-filter');\n operatorElem = isSub ? operatorElem.nextElementSibling : operatorElem;\n }\n addClass([operatorElem], 'e-operator');\n if (operatorElem.childElementCount) {\n ddlObj = getComponent(operatorElem.querySelector('.e-dropdownlist'), 'dropdownlist');\n tempRule.operator = ddlObj.value;\n var fieldObj = void 0;\n if (this.fieldMode === 'DropdownTree') {\n fieldObj = getComponent(filterElem.querySelector('.e-dropdowntree'), 'dropdowntree');\n }\n else {\n fieldObj = getComponent(filterElem.querySelector('.e-dropdownlist'), 'dropdownlist');\n }\n tempRule.type = this.fieldMode === 'DropdownTree' ? this.getColumn(fieldObj.value[0]).type :\n this.getColumn(fieldObj.value).type;\n var itemData = ddlArgs.itemData;\n if (ddlObj.value !== '') {\n this.renderValues(operatorElem, itemData, ddlArgs.previousItemData, true, rule, tempRule, ddlArgs.element);\n }\n }\n else {\n var ruleId = closest(operatorElem, '.e-rule-container').id;\n oprElem = this.createElement('input', { attrs: { type: 'text', id: ruleId + '_operatorkey' } });\n operatorElem.appendChild(oprElem);\n if (this.selectedColumn.operators) {\n operatorList = this.selectedColumn.operators;\n }\n else if (ddlArgs.itemData) {\n operatorList = this.customOperators[this.selectedColumn.type + 'Operator'];\n }\n var height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';\n var operator_2;\n if (rule.operator) {\n operatorList.forEach(function (obj) {\n if ('value' in obj && typeof obj.value === 'string' && obj.value.toLowerCase() === rule.operator.toLowerCase()) {\n operator_2 = obj.value;\n }\n });\n }\n var value = operator_2 ? operator_2 : operatorList[0].value;\n var ddlIdx = 0;\n if (!this.autoSelectOperator) {\n value = '';\n ddlIdx = -1;\n }\n if (this.isImportRules || (this.ruleIndex > -1 || this.groupIndex > -1 || this.prvtEvtTgrDaD)) {\n value = rule ? (rule.operator ? rule.operator : value) : value;\n }\n var ddlOperator = void 0;\n ddlOperator = {\n dataSource: operatorList,\n fields: { text: 'key', value: 'value' },\n placeholder: this.l10n.getConstant('SelectOperator'),\n popupHeight: ((operatorList.length > 5) ? height : 'auto'),\n change: this.changeField.bind(this),\n index: ddlIdx,\n value: value,\n open: this.popupOpen.bind(this, false)\n };\n if (this.operatorModel) {\n ddlOperator = __assign({}, ddlOperator, this.operatorModel);\n }\n var dropDownList = new DropDownList(ddlOperator);\n dropDownList.appendTo('#' + ruleId + '_operatorkey');\n tempRule.operator = (rule && rule.operator !== '' && !isNullOrUndefined(rule.operator)) ? rule.operator : operatorList[0].value;\n if (this.isImportRules) {\n tempRule.type = this.selectedColumn.type;\n tempRule.operator = rule.operator;\n }\n if (!isNullOrUndefined(value) && value !== '') {\n this.renderValues(operatorElem, this.selectedColumn, ddlArgs.previousItemData, false, rule, tempRule, ddlArgs.element);\n }\n else if (this.autoSelectField && this.autoSelectOperator) {\n this.renderValues(operatorElem, this.selectedColumn, ddlArgs.previousItemData, false, rule, tempRule, ddlArgs.element);\n }\n }\n }\n if (!this.isImportRules) {\n this.updateRules(ddlArgs.element, ddlArgs.item);\n }\n };\n QueryBuilder.prototype.popupOpen = function (isField, args) {\n if (this.enableRtl) {\n addClass([args.popup.element], 'e-rtl');\n }\n if (isField) {\n this.isFieldClose = false;\n }\n };\n QueryBuilder.prototype.destroyControls = function (target, isRuleTemplate) {\n var element = isRuleTemplate ? target : target.nextElementSibling;\n var inputElement = element.querySelectorAll('input.e-control');\n var divElement = element.querySelectorAll('div.e-control:not(.e-handle)');\n var columns = this.columns;\n for (var i = 0, len = inputElement.length; i < len; i++) {\n if (inputElement[i].classList.contains('e-textbox')) {\n getComponent(inputElement[i], 'textbox').destroy();\n detach(select('input#' + inputElement[i].id, element));\n }\n else if (inputElement[i].classList.contains('e-dropdownlist')) {\n if (this.allowValidation && inputElement[i].parentElement.className.indexOf('e-tooltip') > -1) {\n getComponent(inputElement[i].parentElement, 'tooltip').destroy();\n }\n getComponent(inputElement[i], 'dropdownlist').destroy();\n }\n else if (inputElement[i].classList.contains('e-radio')) {\n getComponent(inputElement[i], 'radio').destroy();\n }\n else if (inputElement[i].classList.contains('e-numerictextbox')) {\n getComponent(inputElement[i], 'numerictextbox').destroy();\n detach(select('input#' + inputElement[i].id, element));\n }\n else if (inputElement[i].classList.contains('e-datepicker')) {\n getComponent(inputElement[i], 'datepicker').destroy();\n }\n else if (inputElement[i].classList.contains('e-multiselect')) {\n getComponent(inputElement[i], 'multiselect').destroy();\n }\n else if (inputElement[i].className.indexOf('e-template') > -1) {\n var clsName = inputElement[i].className;\n for (var j = 0, jLen = columns.length; j < jLen; j++) {\n if (columns[j].template && clsName.indexOf(columns[j].field) > -1) {\n this.templateDestroy(columns[j], inputElement[i].id);\n break;\n }\n }\n }\n if (document.getElementById(inputElement[i].id)) {\n detach(inputElement[i]);\n }\n }\n for (var i = 0, len = divElement.length; i < len; i++) {\n if (divElement[i].className.indexOf('e-template') > -1) {\n var clsName = divElement[i].className;\n for (var j = 0, jLen = columns.length; j < jLen; j++) {\n if (columns[j].template && clsName.indexOf(columns[j].field) > -1) {\n this.templateDestroy(columns[j], divElement[i].id);\n break;\n }\n }\n }\n detach(divElement[i]);\n }\n var templateElement = element.querySelectorAll('.e-template:not(.e-control)');\n for (var i = 0, len = templateElement.length; i < len; i++) {\n detach(templateElement[i]);\n }\n };\n QueryBuilder.prototype.templateDestroy = function (column, elemId) {\n var template;\n if (typeof column.template !== 'string' || column.template.destroy === undefined) {\n template = column.template;\n }\n else {\n return;\n }\n var temp = template.destroy;\n if (template.destroy) {\n var templateElements = void 0;\n if (document.getElementById(elemId)) {\n templateElements = closest(document.getElementById(elemId), '.e-rule-field').querySelectorAll('.e-template');\n }\n if (typeof temp === 'string') {\n temp = getValue(temp, window);\n temp({ field: column.field, elementId: elemId, elements: templateElements });\n }\n else {\n template.destroy({ field: column.field, elementId: elemId, elements: templateElements });\n }\n }\n };\n /**\n * Return values bound to the column.\n *\n * @param {string} field - 'field' to be passed to get the field values.\n * @returns {object[]} - Values bound to the column\n */\n QueryBuilder.prototype.getValues = function (field) {\n var original = {};\n var result = [];\n var value;\n var fieldColl = [];\n if (this.separator.length > 0) {\n fieldColl = field.split(this.separator);\n }\n var dataSource = this.dataColl;\n if (this.dataColl[1]) {\n for (var i = 0, iLen = dataSource.length; i < iLen; i++) {\n var data = {};\n if (fieldColl.length > 1) {\n var dataObj = dataSource[i];\n var fieldStr = void 0;\n for (var j = 0, jLen = fieldColl.length; j < jLen; j++) {\n fieldStr = fieldColl[j];\n if (fieldColl.length === (j + 1)) {\n value = dataObj[\"\" + fieldStr];\n if (Number(dataObj[\"\" + fieldStr]) === dataObj[\"\" + fieldStr] && dataObj[\"\" + fieldStr] % 1 !== 0) {\n value = dataObj[\"\" + fieldStr].toString();\n }\n }\n else {\n dataObj = dataObj[\"\" + fieldStr];\n }\n }\n }\n else {\n value = dataSource[i][\"\" + field];\n if (Number(dataSource[i][\"\" + field]) === dataSource[i][\"\" + field] && dataSource[i][\"\" + field] % 1 !== 0) {\n value = dataSource[i][\"\" + field].toString();\n }\n }\n if (!(value in original)) {\n original[\"\" + value] = 1;\n if (fieldColl.length > 1) {\n this.createNestedObject(data, fieldColl, value);\n }\n else {\n data[\"\" + field] = value;\n }\n result.push(data);\n }\n }\n }\n return result;\n };\n QueryBuilder.prototype.createNestedObject = function (obj, fieldColl, value) {\n var key;\n var lastIndex = fieldColl.length - 1;\n for (var k = 0; k < lastIndex; ++k) {\n key = fieldColl[k];\n if (!(key in obj)) {\n obj[\"\" + key] = {};\n }\n obj = obj[\"\" + key];\n }\n obj[fieldColl[lastIndex]] = value;\n };\n QueryBuilder.prototype.getDistinctValues = function (dataSource, field) {\n var original = {};\n var result = [];\n var nest = [];\n var value = '';\n var isNested = field.indexOf(this.separator);\n var _loop_2 = function (i, iLen) {\n value = '';\n if (isNested === 0) {\n value = dataSource[i][\"\" + field];\n }\n else {\n nest = field.split(this_2.separator);\n // eslint-disable-next-line @typescript-eslint/tslint/config\n nest.forEach(function (element) {\n if (value) {\n value = value[\"\" + element];\n }\n else {\n value = dataSource[i][\"\" + element];\n }\n });\n }\n if (Number(dataSource[i][\"\" + field]) === dataSource[i][\"\" + field] && dataSource[i][\"\" + field] % 1 !== 0) {\n value = dataSource[i][\"\" + field].toString();\n }\n var data = {};\n if (!(value in original)) {\n original[\"\" + value] = 1;\n if (isNested === 0) {\n data[\"\" + field] = value;\n }\n else {\n data[nest[nest.length - 1]] = value;\n }\n result.push(data);\n }\n };\n var this_2 = this;\n for (var i = 0, iLen = dataSource.length; i < iLen; i++) {\n _loop_2(i, iLen);\n }\n return result;\n };\n QueryBuilder.prototype.renderMultiSelect = function (rule, parentId, i, selectedValue, values) {\n var isFetched = false;\n var ds;\n var isValues = false;\n this.isGetNestedData = false;\n if (this.dataColl[1]) {\n if (Object.keys(this.dataColl[1]).indexOf(rule.field) > -1) {\n isFetched = true;\n ds = this.getDistinctValues(this.dataColl, rule.field);\n }\n }\n isFetched = rule.columns ? false : isFetched;\n if (!this.dataColl.length && values.length) {\n isValues = true;\n }\n var multiSelectValue;\n multiSelectValue = {\n dataSource: isValues ? values : (isFetched ? ds : this.dataManager),\n query: new Query([rule.field]),\n fields: { text: this.selectedRule.field, value: this.selectedRule.field },\n placeholder: this.l10n.getConstant('SelectValue'),\n value: selectedValue,\n mode: 'CheckBox',\n width: '100%',\n change: this.changeValue.bind(this, i),\n close: this.closePopup.bind(this, i),\n actionBegin: this.multiSelectOpen.bind(this, parentId + '_valuekey' + i),\n open: this.popupOpen.bind(this, false)\n };\n if (this.valueModel && this.valueModel.multiSelectModel) {\n multiSelectValue = __assign({}, multiSelectValue, this.valueModel.multiSelectModel);\n }\n var multiSelectObj = new MultiSelect(multiSelectValue);\n multiSelectObj.appendTo('#' + parentId + '_valuekey' + i);\n this.updateRules(multiSelectObj.element, selectedValue, 0);\n };\n QueryBuilder.prototype.multiSelectOpen = function (parentId, args) {\n if (this.dataSource instanceof DataManager) {\n var element = document.getElementById(parentId);\n var dropDownObj = getComponent(closest(element, '.e-rule-container').querySelector('.e-filter-input'), this.fieldMode === 'DropdownTree' ? 'dropdowntree' : 'dropdownlist');\n if (this.fieldMode === 'DropdownTree') {\n this.selectedColumn = this.getColumn(dropDownObj.value[0]);\n }\n else {\n this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);\n }\n var value = this.selectedColumn.field;\n var isFetched = false;\n if (this.dataColl[1]) {\n if (Object.keys(this.dataColl[1]).indexOf(value) > -1) {\n isFetched = true;\n }\n var isNest = value.indexOf(this.separator);\n if (isNest !== 0 && this.isGetNestedData) {\n isFetched = true;\n }\n }\n if (!isFetched) {\n args.cancel = true;\n this.bindMultiSelectData(element, value);\n }\n }\n };\n QueryBuilder.prototype.bindMultiSelectData = function (element, value) {\n this.getMultiSelectData(element, value);\n };\n QueryBuilder.prototype.getMultiSelectData = function (element, value) {\n var _this = this;\n var dummyData;\n var deferred = new Deferred();\n var data = this.dataManager.executeQuery(new Query().select(value));\n var multiselectObj = getComponent(element, 'multiselect');\n multiselectObj.hideSpinner();\n this.createSpinner(closest(element, '.e-multi-select-wrapper').parentElement);\n showSpinner(closest(element, '.e-multi-select-wrapper').parentElement);\n data.then(function (e) {\n if (e.actual && e.actual.result) {\n dummyData = e.actual.result;\n }\n else {\n dummyData = e.result;\n }\n _this.dataColl = extend(_this.dataColl, dummyData, [], true);\n multiselectObj.dataSource = _this.getDistinctValues(_this.dataColl, value);\n _this.isGetNestedData = true;\n hideSpinner(closest(element, '.e-multi-select-wrapper').parentElement);\n }).catch(function (e) {\n deferred.reject(e);\n });\n };\n QueryBuilder.prototype.createSpinner = function (element) {\n var spinnerElem = this.createElement('span', { attrs: { class: 'e-qb-spinner' } });\n element.appendChild(spinnerElem);\n createSpinner({ target: spinnerElem, width: Browser.isDevice ? '16px' : '14px' });\n };\n QueryBuilder.prototype.closePopup = function (i, args) {\n var element = document.getElementById(args.popup.element.id.replace('_popup', ''));\n if (element) {\n var ms = getComponent(element, 'multiselect');\n if (ms) {\n var value = ms.value;\n this.updateRules(element, value, i);\n }\n }\n };\n QueryBuilder.prototype.processTemplate = function (target, itemData, rule, tempRule) {\n var container = closest(target, '.e-rule-container');\n var tempElements = container.querySelectorAll('.e-template');\n var filterElem = container.querySelector('.e-rule-filter .e-filter-input');\n var ddlObj = this.fieldMode === 'DropdownTree' ? getComponent(filterElem, 'dropdowntree')\n : getComponent(container.querySelector('.e-rule-filter .e-filter-input'), 'dropdownlist');\n var column = this.fieldMode === 'DropdownTree' ? this.getColumn(ddlObj.value[0]) : this.getColumn(ddlObj.value);\n if (typeof itemData.template === 'string' || itemData.template.write === undefined) {\n var args = { rule: rule, ruleID: container.id, operator: tempRule.operator, field: column.field,\n requestType: 'value-template-create' };\n this.trigger('actionBegin', args);\n }\n else {\n var template = itemData.template;\n if (typeof template.write === 'string') {\n getValue(template.write, window)({ elements: tempElements.length > 1 ? tempElements : tempElements[0], values: rule.value,\n operator: tempRule.operator, field: column.field, dataSource: column.values });\n }\n else if (typeof itemData.template !== 'function') {\n itemData.template.write({ elements: tempElements.length > 1 ? tempElements : tempElements[0],\n values: rule.value, operator: tempRule.operator, field: column.field, dataSource: column.values });\n }\n }\n };\n QueryBuilder.prototype.getItemData = function (parentId) {\n var fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdownlist');\n var parentFieldObj = this.element.querySelector(\"#\" + parentId);\n if (this.fieldMode === 'DropdownTree') {\n fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdowntree');\n }\n else if (parentFieldObj) {\n var subFieldObjList = parentFieldObj.querySelectorAll('.e-rule-sub-filter');\n if (subFieldObjList.length > 0) {\n var lastSubFieldObj = subFieldObjList[subFieldObjList.length - 1].querySelector('.e-dropdownlist');\n fieldObj = getComponent(lastSubFieldObj, 'dropdownlist');\n }\n }\n return this.fieldMode === 'DropdownTree' ? this.getColumn(fieldObj.value[0]) : this.getColumn(fieldObj.value);\n };\n QueryBuilder.prototype.setDefaultValue = function (parentId, isArryValue, isNumber) {\n var itemData = this.getItemData(parentId);\n if (isNullOrUndefined(itemData.value)) {\n return isNumber ? isArryValue ? [0, 0] : 0 : isArryValue ? [] : '';\n }\n if (isArryValue) {\n if (!(itemData.value instanceof Array)) {\n return [itemData.value];\n }\n }\n else {\n if (itemData.value instanceof Array) {\n return itemData.value[0];\n }\n }\n return itemData.value;\n };\n QueryBuilder.prototype.renderStringValue = function (parentId, rule, operator, idx, ruleValElem) {\n var selectedVal;\n var columnData = this.getItemData(parentId);\n var selectedValue;\n var isTemplate = (typeof columnData.template === 'string');\n if (this.isImportRules || this.ruleIndex > -1 || this.groupIndex > -1 || this.isPublic || isTemplate || rule.value !== '') {\n selectedValue = rule.value;\n }\n else {\n selectedValue = this.setDefaultValue(parentId, false, false);\n }\n if ((operator === 'in' || operator === 'notin') && (this.dataColl.length || columnData.values)) {\n selectedVal = (this.isImportRules || this.ruleIndex > -1 || this.groupIndex > -1 || this.isPublic) ? rule.value :\n this.setDefaultValue(parentId, true, false);\n this.renderMultiSelect(columnData, parentId, idx, selectedVal, columnData.values);\n if (this.displayMode === 'Vertical' || this.element.className.indexOf('e-device') > -1) {\n ruleValElem.style.width = '100%';\n }\n else {\n ruleValElem.style.width = null;\n ruleValElem.style.minWidth = '200px';\n }\n }\n else {\n if (operator === 'in' || operator === 'notin') {\n selectedVal = (this.isImportRules || this.ruleIndex > -1 || this.groupIndex > -1) ? rule.value :\n this.setDefaultValue(parentId, true, false);\n selectedValue = selectedVal.join(',');\n }\n if (operator === 'between' || operator === 'notbetween') {\n if (selectedValue.length > 1) {\n selectedValue = selectedValue[idx];\n }\n }\n var txtBox = void 0;\n txtBox = {\n placeholder: this.l10n.getConstant('SelectValue'),\n input: this.changeValue.bind(this, idx)\n };\n if (this.valueModel && this.valueModel.textBoxModel) {\n txtBox = __assign({}, txtBox, this.valueModel.textBoxModel);\n }\n var inputobj = new TextBox(txtBox);\n inputobj.appendTo('#' + parentId + '_valuekey' + idx);\n inputobj.value = selectedValue;\n inputobj.dataBind();\n }\n };\n QueryBuilder.prototype.renderNumberValue = function (parentId, rule, operator, idx, ruleValElem, itemData, length) {\n var columnData = this.getItemData(parentId);\n var isTemplate = (typeof columnData.template === 'string');\n var selectedVal = (this.isImportRules || this.ruleIndex > -1 || this.groupIndex > -1 || this.isPublic || isTemplate ||\n typeof rule.value === 'number') ? rule.value : this.setDefaultValue(parentId, false, true);\n if ((operator === 'in' || operator === 'notin') && (this.dataColl.length || columnData.values)) {\n selectedVal = (this.isImportRules || this.ruleIndex > -1 || this.groupIndex > -1 || this.isPublic) ? rule.value :\n this.setDefaultValue(parentId, true, false);\n this.renderMultiSelect(columnData, parentId, idx, selectedVal, columnData.values);\n if (this.element.className.indexOf('e-device') > -1 || this.displayMode === 'Vertical') {\n ruleValElem.style.width = '100%';\n }\n else {\n ruleValElem.style.minWidth = '200px';\n ruleValElem.style.width = null;\n }\n }\n else if (operator === 'in' || operator === 'notin') {\n selectedVal = (this.isImportRules || this.ruleIndex > -1 || this.groupIndex > -1) ? rule.value :\n this.setDefaultValue(parentId, true, false);\n var selVal = selectedVal.join(',');\n var txtInp = void 0;\n txtInp = {\n placeholder: this.l10n.getConstant('SelectValue'),\n input: this.changeValue.bind(this, idx)\n };\n if (this.valueModel && this.valueModel.textBoxModel) {\n txtInp = __assign({}, txtInp, this.valueModel.textBoxModel);\n }\n var input = new TextBox(txtInp);\n input.appendTo('#' + parentId + '_valuekey' + idx);\n input.value = selVal;\n input.dataBind();\n }\n else {\n itemData = columnData;\n var min = (itemData.validation && itemData.validation.min) ? itemData.validation.min : 0;\n var max = (itemData.validation && itemData.validation.max) ? itemData.validation.max : Number.MAX_VALUE;\n var format = itemData.format ? itemData.format : 'n';\n if (length > 1 && rule) {\n selectedVal = rule.value[idx] ? rule.value[idx] : this.setDefaultValue(parentId, true, true);\n }\n var numericTxt = void 0;\n numericTxt = {\n value: (selectedVal instanceof Array) ? selectedVal[idx] : selectedVal,\n format: format, min: min, max: max, width: '100%',\n step: itemData.step ? itemData.step : 1,\n change: this.changeValue.bind(this, idx)\n };\n if (this.valueModel && this.valueModel.numericTextBoxModel) {\n numericTxt = __assign({}, numericTxt, this.valueModel.numericTextBoxModel);\n }\n var numeric = new NumericTextBox(numericTxt);\n numeric.appendTo('#' + parentId + '_valuekey' + idx);\n numeric.element.setAttribute('aria-label', itemData.label + ' ' + 'Value');\n numeric.element.oninput = this.changeValue.bind(this, idx);\n }\n };\n QueryBuilder.prototype.processValueString = function (value, type) {\n var numArr = [];\n var strArr = value.split(',');\n if (type === 'string') {\n return strArr;\n }\n else {\n for (var k = 0, kLen = strArr.length; k < kLen; k++) {\n numArr.push(Number(strArr[k]));\n }\n return numArr;\n }\n };\n QueryBuilder.prototype.parseDate = function (value, format) {\n var formatOpt;\n var selectedValue;\n if (format) {\n var dParser = this.intl.getDateParser({ skeleton: 'full', type: 'dateTime' });\n formatOpt = this.getFormat(format);\n selectedValue = dParser(value);\n if (isNullOrUndefined(selectedValue)) {\n selectedValue = this.intl.parseDate(value, formatOpt);\n }\n }\n else {\n selectedValue = new Date(value);\n }\n return selectedValue;\n };\n QueryBuilder.prototype.renderControls = function (target, itemData, rule, tempRule, isRendered) {\n addClass([target.parentElement.querySelector('.e-rule-value')], 'e-value');\n removeClass([target.parentElement.querySelector('.e-rule-value')], 'e-hide');\n addClass([target.parentElement.querySelector('.e-rule-value')], 'e-show');\n if (itemData.template && (itemData.template.create || isRendered)) {\n this.processTemplate(target, itemData, rule, tempRule);\n }\n else {\n var length_1;\n if (tempRule.type === 'boolean') {\n length_1 = this.selectedColumn.values ? this.selectedColumn.values.length : 2;\n }\n else {\n length_1 = tempRule.operator && tempRule.operator.toString().toLowerCase().indexOf('between') > -1 ? 2 : 1;\n }\n var parentId = closest(target, '.e-rule-container').id;\n var ruleValElem = void 0;\n var operator = tempRule.operator.toString();\n if (target.className.indexOf('e-rule-operator') > -1 || target.className.indexOf('e-rule-filter') > -1) {\n ruleValElem = target.parentElement.querySelector('.e-rule-value');\n if (this.element.className.indexOf('e-device') > -1 || this.displayMode === 'Vertical') {\n ruleValElem.style.width = '100%';\n }\n else {\n if (operator !== 'in' && operator !== 'notin') {\n addClass([ruleValElem], 'e-custom-value');\n }\n else {\n removeClass([ruleValElem], 'e-custom-value');\n }\n }\n for (var i = 0; i < length_1; i++) {\n switch (tempRule.type) {\n case 'string':\n {\n this.renderStringValue(parentId, rule, operator, i, ruleValElem);\n }\n break;\n case 'number':\n {\n this.renderNumberValue(parentId, rule, operator, i, ruleValElem, itemData, length_1);\n }\n break;\n case 'boolean':\n this.processBoolValues(itemData, rule, parentId, i);\n break;\n case 'date':\n {\n var selectedValue = new Date();\n var selVal = void 0;\n var column = void 0;\n var format = itemData.format;\n var datepick = void 0;\n var datePicker = void 0;\n var place = this.l10n.getConstant('SelectValue');\n var isTemplate = (typeof itemData.template === 'string');\n if (rule.value && !isNullOrUndefined(format)) {\n selVal = (length_1 > 1) ? rule.value[i] : rule.value;\n selectedValue = this.parseDate(selVal, format) || new Date();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!itemData.field && !itemData.key && itemData.value) {\n if (itemData.value instanceof Date) {\n selectedValue = itemData.value;\n }\n else {\n selectedValue = this.parseDate(itemData.value, itemData.format);\n }\n }\n if (!itemData.format && rule && rule.field !== '') {\n column = this.getColumn(rule.field);\n format = column.format;\n }\n if ((this.isImportRules || this.isPublic || isTemplate) && rule) {\n column = this.getColumn(rule.field);\n format = column.format;\n if (rule.value) {\n selVal = (length_1 > 1) ? rule.value[i] : rule.value;\n selectedValue = this.parseDate(selVal, column.format);\n }\n else {\n selectedValue = rule.value;\n }\n }\n if (format) {\n var formatObj = this.getFormat(format);\n if (formatObj.skeleton) {\n datePicker = {\n locale: this.getLocale(), value: selectedValue,\n placeholder: place, format: formatObj, change: this.changeValue.bind(this, i)\n };\n if (this.valueModel && this.valueModel.datePickerModel) {\n datePicker = __assign({}, datePicker, this.valueModel.datePickerModel);\n }\n datepick = new DatePicker(datePicker);\n }\n else {\n datePicker = {\n value: selectedValue, locale: this.getLocale(), placeholder: place,\n format: formatObj.format, change: this.changeValue.bind(this, i)\n };\n if (this.valueModel && this.valueModel.datePickerModel) {\n datePicker = __assign({}, datePicker, this.valueModel.datePickerModel);\n }\n datepick = new DatePicker(datePicker);\n }\n }\n else {\n datePicker = {\n locale: this.getLocale(), value: selectedValue,\n placeholder: place, change: this.changeValue.bind(this, i)\n };\n if (this.valueModel && this.valueModel.datePickerModel) {\n datePicker = __assign({}, datePicker, this.valueModel.datePickerModel);\n }\n datepick = new DatePicker(datePicker);\n }\n datepick.appendTo('#' + parentId + '_valuekey' + i);\n if (!rule.value) {\n var elem = document.getElementById(parentId + '_valuekey' + i);\n this.updateRules(elem, selectedValue, null, this.isNotValueChange);\n this.isNotValueChange = false;\n }\n }\n break;\n }\n }\n }\n }\n };\n QueryBuilder.prototype.processBoolValues = function (itemData, rule, parentId, i) {\n var isCheck = false;\n var value;\n var orgValue;\n if (isNullOrUndefined(rule.type) && itemData) {\n rule.type = itemData.type;\n }\n var label;\n if (itemData.values) {\n var values = itemData.values;\n if (rule.type === 'boolean' && !isNullOrUndefined(rule.value)) {\n isCheck = values[i].toLowerCase() === rule.value.toString().toLowerCase();\n }\n else if (itemData.value) {\n isCheck = values[i].toLowerCase() === itemData.value.toString().toLowerCase();\n }\n else if (i === 0) {\n isCheck = true;\n }\n orgValue = value = label = values[i];\n }\n else {\n var values = [true, false];\n if (rule.type === 'boolean' && !isNullOrUndefined(rule.value)) {\n isCheck = values[i].toString().toLowerCase() === rule.value.toString().toLowerCase();\n }\n else if (itemData.value) {\n isCheck = values[i].toString().toLowerCase() === itemData.value.toString().toLowerCase();\n }\n else if (i === 0) {\n if (typeof rule.value === 'boolean') {\n isCheck = rule.value ? true : false;\n }\n else {\n isCheck = true;\n }\n }\n if (typeof rule.value === 'boolean' && i === 1) {\n isCheck = !rule.value ? true : false;\n }\n value = values[i].toString();\n orgValue = values[i];\n label = this.l10n.getConstant(['True', 'False'][i]);\n }\n var radioBtn;\n radioBtn = {\n label: label, name: parentId + 'default', checked: isCheck, value: value,\n change: this.changeValue.bind(this, i)\n };\n if (this.valueModel && this.valueModel.radioButtonModel) {\n radioBtn = __assign({}, radioBtn, this.valueModel.radioButtonModel);\n }\n var radiobutton = new RadioButton(radioBtn);\n radiobutton.appendTo('#' + parentId + '_valuekey' + i);\n if (isCheck) {\n this.updateRules(radiobutton.element, orgValue, 0, true);\n }\n };\n QueryBuilder.prototype.getOperatorIndex = function (ddlObj, rule) {\n var i;\n var dataSource = ddlObj.dataSource;\n var len = dataSource.length;\n for (i = 0; i < len; i++) {\n if (rule.operator === ddlObj.dataSource[i].value) {\n return i;\n }\n }\n return 0;\n };\n QueryBuilder.prototype.getPreviousItemData = function (prevItemData, column) {\n if (this.isFieldClose && prevItemData) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n prevItemData = this.getColumn(prevItemData.value ? prevItemData.value : prevItemData.field);\n }\n if (column && column.template && prevItemData && Object.keys(prevItemData).length < 4) {\n prevItemData.template = column.template;\n }\n return prevItemData;\n };\n QueryBuilder.prototype.renderValues = function (target, itemData, prevItemData, isRender, rule, tempRule, element) {\n var subFldElem = target.previousElementSibling;\n var filtElem = subFldElem.getElementsByTagName('input')[0];\n var filtObj = this.fieldMode === 'DropdownTree' ? getComponent(filtElem, 'dropdowntree')\n : getComponent(filtElem, 'dropdownlist');\n var column = this.fieldMode === 'DropdownTree' ? this.getColumn(filtObj.value[0])\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n : this.getColumn(filtObj.value);\n this.selectedRule = column;\n var ddlObj = getComponent(target.querySelector('input'), 'dropdownlist');\n if (isRender) {\n itemData = element.id.indexOf('operator') > -1 ? itemData : this.selectedRule;\n if (itemData.operators) {\n ddlObj.value = null;\n ddlObj.dataBind();\n ddlObj.dataSource = itemData.operators;\n ddlObj.index = this.getOperatorIndex(ddlObj, rule);\n ddlObj.value = tempRule.operator = ddlObj.dataSource[ddlObj.index].value;\n if (!this.autoSelectOperator) {\n ddlObj.index = -1;\n tempRule.operator = ddlObj.value = '';\n }\n else {\n ddlObj.dataBind();\n }\n }\n }\n var operator = tempRule.operator.toString();\n var isTempRendered = false;\n if (!(operator.indexOf('null') > -1 || operator.indexOf('isempty') > -1 || operator.indexOf('isnotempty') > -1)) {\n var parentId = closest(target, '.e-rule-container').id;\n prevItemData = this.getPreviousItemData(prevItemData, column);\n if (prevItemData && prevItemData.template === undefined) {\n if (prevItemData.columns) {\n prevItemData = this.getColumn(rule.field);\n }\n }\n else if (this.fieldMode === 'DropdownTree' && prevItemData === undefined) {\n prevItemData = this.getColumn(rule.field);\n }\n if (prevItemData && prevItemData.template) {\n this.templateDestroy(prevItemData, parentId + '_valuekey0');\n var elem = select('#' + parentId + '_valuekey0', target.nextElementSibling);\n if (elem && !elem.classList.contains('e-control')) {\n detach(select('#' + parentId + '_valuekey0', target.nextElementSibling));\n }\n if (typeof prevItemData.template === 'string' || prevItemData.template.create === undefined) {\n if (target.nextElementSibling.classList.contains('e-template-value')) {\n this.clearQBTemplate([parentId]);\n }\n target.nextElementSibling.innerHTML = '';\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isAngular && !isNullOrUndefined(prevItemData.key) && this.fieldMode === 'DropdownTree') {\n delete prevItemData.template;\n }\n }\n if (isRender) {\n this.validateValue(rule, closest(target, '.e-rule-container'));\n this.destroyControls(target);\n }\n if (this.isImportRules || (ddlObj && ddlObj.value !== '')) {\n if (column) {\n itemData.template = column.template;\n }\n if (itemData.template) {\n addClass([target.nextElementSibling], 'e-template-value');\n itemData.template = column.template;\n isTempRendered = this.setColumnTemplate(itemData, parentId, column.field, itemData.value ||\n operator, target, rule);\n }\n if (isTempRendered) {\n var parentElem = target.parentElement.querySelector('.e-rule-value');\n if (this.element.className.indexOf('e-device') > -1 || this.displayMode === 'Vertical') {\n parentElem.style.width = '100%';\n }\n else {\n parentElem.style.width = '200px';\n }\n }\n else {\n removeClass([target.nextElementSibling], 'e-template-value');\n var inputLen = 1;\n if (tempRule.type === 'boolean') {\n inputLen = this.selectedColumn.values ? this.selectedColumn.values.length : 2;\n }\n else {\n inputLen = (operator && operator.toLowerCase().indexOf('between') > -1) ? 2 : 1;\n }\n for (var i = 0; i < inputLen; i++) {\n var valElem = this.createElement('input', { attrs: { type: 'text', id: parentId + '_valuekey' + i } });\n target.nextElementSibling.appendChild(valElem);\n }\n }\n this.renderControls(target, itemData, rule, tempRule, isTempRendered);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isAngular && !isNullOrUndefined(itemData.key) && itemData.template && this.fieldMode === 'DropdownTree') {\n delete itemData.template;\n }\n }\n }\n else {\n var parentElem = target.parentElement.querySelector('.e-rule-value');\n if (parentElem) {\n removeClass([parentElem], 'e-show');\n addClass([parentElem], 'e-hide');\n }\n }\n };\n QueryBuilder.prototype.setColumnTemplate = function (itemData, ruleID, field, operator, target, rule) {\n var _this = this;\n var args;\n var isRendered = true;\n if (!itemData.template) {\n return true;\n }\n else {\n if (typeof itemData.template === 'string' || itemData.template.create === undefined) {\n args = { requestType: 'value-template-initialize', ruleID: ruleID, field: field, operator: operator, rule: rule,\n renderTemplate: true };\n this.trigger('actionBegin', args, function (observedActionArgs) {\n isRendered = _this.actionBeginSuccessCallBack(observedActionArgs, itemData, ruleID, field, target);\n });\n return isRendered;\n }\n else {\n var valElem = void 0;\n var template = itemData.template;\n if (typeof template.create === 'string') {\n valElem = getValue(template.create, window)({ field: field, operator: operator });\n }\n else {\n valElem = template.create({ field: field, operator: operator });\n }\n if (valElem instanceof Element) {\n valElem.id = ruleID + '_valuekey0';\n addClass([valElem], 'e-template');\n target.nextElementSibling.appendChild(valElem);\n if (field.indexOf(' ') < 0) {\n addClass([valElem], 'e-' + field);\n }\n }\n else if (valElem instanceof Array) {\n addClass(valElem, 'e-template');\n for (var i = 0, iLen = valElem.length; i < iLen; i++) {\n valElem[i].id = ruleID + '_valuekey' + i;\n target.nextElementSibling.appendChild(valElem[i]);\n }\n }\n addClass([target.nextElementSibling], 'e-template-value');\n return true;\n }\n }\n };\n QueryBuilder.prototype.actionBeginSuccessCallBack = function (args, itemData, ruleID, field, target) {\n if (args.renderTemplate) {\n var valElem = void 0;\n this.columnTemplateFn = this.templateParser(typeof itemData.template === 'function' ? itemData.template : itemData.template);\n var templateID = this.element.id + field;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n valElem = this.columnTemplateFn(args, this, ruleID, templateID)[0];\n target.nextElementSibling.appendChild(valElem);\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any\n else if (this.isAngular) {\n var valElemColl = this.columnTemplateFn(args, this, ruleID, templateID);\n valElem = (valElemColl[0].nodeType === 3) ? valElemColl[1] : valElemColl[0];\n target.nextElementSibling.appendChild(valElem);\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any\n else if (this.isVue3) {\n valElem = this.columnTemplateFn(args, this, 'Template', templateID);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n append(valElem, target.nextElementSibling);\n }\n else {\n valElem = this.columnTemplateFn(args, this, 'Template', templateID)[0];\n target.nextElementSibling.appendChild(valElem);\n }\n addClass([target.nextElementSibling], 'e-template-value');\n this.renderReactTemplates();\n return true;\n }\n else {\n return false;\n }\n };\n QueryBuilder.prototype.updateValues = function (element, rule) {\n var idx = 1;\n if (element.className.indexOf('e-template') > -1) {\n idx = 3;\n }\n var controlName = element.className.split(' e-')[idx];\n var i = parseInt(element.id.slice(-1), 2);\n var column;\n var format;\n var selectedDate;\n var value;\n var radioBtnObj;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var textboxValue;\n switch (controlName) {\n case 'checkbox':\n value = getComponent(element, controlName).value;\n rule.value = (value !== '') ? value : undefined;\n break;\n case 'textbox':\n textboxValue = getComponent(element, controlName).value;\n if (rule.operator.indexOf('between') > -1) {\n if (typeof rule.value === 'string') {\n rule.value = [];\n }\n rule.value[i] = textboxValue;\n }\n else if (['in', 'notin'].some(function (op) { return rule.operator.indexOf(op) !== -1; })\n && rule.operator.indexOf('contains') === -1) {\n rule.value = textboxValue ?\n (rule.type === 'string' ? textboxValue.split(',').map(function (val) { return val.trim(); }) :\n textboxValue.split(',').map(Number)) : [];\n }\n break;\n case 'dropdownlist':\n rule.value = getComponent(element, controlName).value;\n break;\n case 'radio':\n radioBtnObj = getComponent(element, controlName);\n if (radioBtnObj.checked) {\n if (typeof rule.value === 'boolean') {\n rule.value = radioBtnObj.value === 'true';\n }\n else {\n if (this.getColumn(rule.field).values) {\n rule.value = radioBtnObj.value;\n }\n else {\n rule.value = radioBtnObj.value === 'true';\n }\n }\n }\n radioBtnObj.refresh();\n break;\n case 'numerictextbox':\n if (rule.operator.indexOf('between') > -1) {\n if (typeof rule.value === 'string') {\n rule.value = [];\n }\n rule.value[i] = getComponent(element, controlName).value;\n }\n else {\n rule.value = getComponent(element, controlName).value;\n }\n break;\n case 'datepicker':\n column = this.getColumn(rule.field);\n format = this.getFormat(column.format);\n selectedDate = getComponent(element, controlName).value;\n if (rule.operator.indexOf('between') > -1) {\n if (typeof rule.value === 'string') {\n rule.value = [];\n }\n rule.value[i] = this.intl.formatDate(selectedDate, format);\n }\n else if (isNullOrUndefined(format.format) && selectedDate) {\n rule.value = this.intl.formatDate(selectedDate);\n }\n else if (selectedDate) {\n rule.value = this.intl.formatDate(selectedDate, format);\n }\n else {\n rule.value = selectedDate;\n }\n break;\n case 'multiselect':\n rule.value = getComponent(element, controlName).value;\n break;\n }\n };\n QueryBuilder.prototype.updateRules = function (target, selectedValue, i, isNotTrigger) {\n var groupElem = closest(target, '.e-group-container');\n var rule = this.getParentGroup(groupElem);\n var ruleElem = closest(target, '.e-rule-container');\n var index = 0;\n var dropDownObj;\n var eventsArgs;\n var groupID = groupElem.id.replace(this.element.id + '_', '');\n var beforeRules = this.getValidRules(this.rule);\n while (ruleElem && ruleElem.previousElementSibling !== null) {\n ruleElem = ruleElem.previousElementSibling;\n if (!this.enableSeparateConnector || (this.enableSeparateConnector &&\n ((!this.headerTemplate && !ruleElem.classList.contains('e-btn-group')) ||\n this.headerTemplate && (ruleElem.classList.contains('e-rule-container') ||\n ruleElem.classList.contains('e-group-container'))))) {\n index++;\n }\n }\n var operator = rule.rules[index].operator ? rule.rules[index].operator.toString() : '';\n ruleElem = closest(target, '.e-rule-container');\n var ruleID = ruleElem.id.replace(this.element.id + '_', '');\n if (closest(target, '.e-rule-filter') || closest(target, '.e-rule-sub-filter')) {\n if (this.subFieldElem) {\n target = this.subFieldElem;\n }\n dropDownObj = this.fieldMode === 'DropdownTree' ? getComponent(target, 'dropdowntree') :\n getComponent(target, 'dropdownlist');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var column = this.fieldMode === 'DropdownTree' ? this.getColumn(dropDownObj.value[0])\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n : this.getColumn(dropDownObj.value);\n if (!this.isImportRules && rule.rules[index].field &&\n rule.rules[index].field.toLowerCase() !== column.field.toLowerCase()) {\n if (!(ruleElem.querySelectorAll('.e-template')) && !(operator.indexOf('null') > -1)\n || (operator.indexOf('empty') > -1)) {\n rule.rules[index].value = '';\n }\n }\n this.selectedColumn = this.getColumn(this.selectedColumn.field);\n rule.rules[index].field = this.selectedColumn.field;\n rule.rules[index].type = this.selectedColumn.type;\n rule.rules[index].label = this.selectedColumn.label;\n var ruleElement = closest(target, '.e-rule-filter');\n ruleElement = ruleElement ? ruleElement : closest(target, '.e-rule-sub-filter');\n var element = ruleElement.nextElementSibling.querySelector('input.e-control');\n element = element ? element : ruleElement.nextElementSibling.nextElementSibling.querySelector('input.e-control');\n operator = getComponent(element, 'dropdownlist').value.toString();\n rule.rules[index].operator = operator;\n // Value Fields\n var valueContainer = ruleElement.nextElementSibling.nextElementSibling;\n var elementCln = valueContainer.querySelectorAll('input.e-control');\n if (elementCln.length < 1) {\n elementCln = valueContainer.querySelectorAll('div.e-control');\n }\n if (elementCln.length < 1) {\n elementCln = valueContainer.querySelectorAll('.e-template');\n }\n eventsArgs = { groupID: groupID, ruleID: ruleID, value: rule.rules[index].field, type: 'field' };\n for (var i_1 = 0; i_1 < elementCln.length; i_1++) {\n if (operator.indexOf('null') > -1 || operator.indexOf('empty') > -1) {\n rule.rules[index].value = null;\n continue;\n }\n this.updateValues(elementCln[i_1], rule.rules[index]);\n }\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('change', eventsArgs);\n }\n if (this.allowValidation && rule.rules[index].field && target.parentElement.className.indexOf('e-tooltip') > -1) {\n getComponent(target.parentElement, 'tooltip').destroy();\n }\n this.filterRules(beforeRules, this.getValidRules(this.rule), 'field');\n }\n else if (closest(target, '.e-rule-operator')) {\n dropDownObj = getComponent(target, 'dropdownlist');\n rule.rules[index].operator = dropDownObj.value.toString();\n var inputElem = ruleElem.querySelectorAll('.e-rule-value input.e-control');\n eventsArgs = { groupID: groupID, ruleID: ruleID, value: dropDownObj.value, type: 'operator' };\n if (this.allowValidation && rule.rules[index].operator && target.parentElement.className.indexOf('e-tooltip') > -1) {\n getComponent(target.parentElement, 'tooltip').destroy();\n }\n if (inputElem.length > 1 && !(inputElem[0].className.indexOf('e-template') > -1)) {\n rule.rules[index].value = [];\n }\n for (var i_2 = 0; i_2 < inputElem.length; i_2++) {\n if (rule.rules[index].operator.indexOf('null') > -1 || rule.rules[index].operator.indexOf('empty') > -1) {\n rule.rules[index].value = null;\n continue;\n }\n else if (inputElem[i_2].classList.contains('e-template')) {\n continue;\n }\n this.updateValues(inputElem[i_2], rule.rules[index]);\n }\n if (!this.isImportRules) {\n this.trigger('change', eventsArgs);\n }\n this.filterRules(beforeRules, this.getValidRules(this.rule), 'operator');\n }\n else if (closest(target, '.e-rule-value')) {\n this.ruleValueUpdate(target, selectedValue, rule, index, groupElem, ruleElem, i);\n if (!isNotTrigger) {\n this.filterRules(beforeRules, this.getValidRules(this.rule), 'value');\n }\n }\n };\n QueryBuilder.prototype.filterRules = function (beforeRule, afterRule, type) {\n var beforeRuleStr = JSON.stringify({ condition: beforeRule.condition, not: beforeRule.not, rule: beforeRule.rules });\n var afetrRuleStr = JSON.stringify({ condition: afterRule.condition, not: afterRule.not, rule: afterRule.rules });\n if (beforeRuleStr !== afetrRuleStr) {\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('ruleChange', { previousRule: beforeRule, rule: afterRule, type: type });\n }\n }\n };\n QueryBuilder.prototype.ruleValueUpdate = function (target, selectedValue, rule, index, groupElem, ruleElem, i) {\n var eventsArgs;\n var oper;\n var arrOperator = ['in', 'between', 'notin', 'notbetween'];\n if (rule.rules[index].operator) {\n oper = rule.rules[index].operator.toString().toLowerCase();\n }\n if (selectedValue !== null) {\n if (target.className.indexOf('e-multiselect') > -1 && rule.rules[index].type === 'number' &&\n !this.isNotified) {\n var selVal = [];\n var dupSelectedValue = selectedValue;\n for (var k = 0, kLen = dupSelectedValue.length; k < kLen; k++) {\n if (typeof dupSelectedValue[k] === 'string') {\n selVal.push(parseFloat(dupSelectedValue[k]));\n }\n }\n if (selVal.length) {\n selectedValue = selVal;\n }\n }\n if (this.isNotified) {\n rule.rules[index].value = selectedValue;\n eventsArgs = { groupID: groupElem.id, ruleID: ruleElem.id, value: rule.rules[index].value, type: 'value' };\n if (!this.isImportRules) {\n this.trigger('change', eventsArgs);\n }\n }\n else if (target.className.indexOf('e-spin') > -1 || target.className.indexOf('e-numeric') > -1) {\n if (arrOperator.indexOf(oper) > -1) {\n rule.rules[index].value[i] = selectedValue;\n }\n else {\n rule.rules[index].value = selectedValue;\n }\n }\n else if (target.className.indexOf('e-radio') > -1) {\n rule.rules[index].value = selectedValue;\n }\n else if (target.className.indexOf('e-multiselect') > -1) {\n rule.rules[index].value = selectedValue;\n }\n else if (target.className.indexOf('e-textbox') > -1) {\n if (oper === 'in' || oper === 'notin') {\n if (rule.rules[index].type === 'string') {\n rule.rules[index].value = this.processValueString(selectedValue, rule.rules[index].type);\n }\n else {\n rule.rules[index].value = this.processValueString(selectedValue, rule.rules[index].type);\n }\n }\n else if (oper === 'between' || oper === 'notbetween') {\n if (typeof rule.rules[index].value === 'string') {\n rule.rules[index].value = [];\n }\n rule.rules[index].value[i] = selectedValue;\n }\n else {\n rule.rules[index].value = selectedValue;\n }\n }\n else if (target.className.indexOf('e-datepicker') > -1) {\n var format = this.getFormat(this.getColumn(this.selectedColumn.field).format);\n if (format.type) {\n if (arrOperator.indexOf(oper) > -1) {\n if (typeof rule.rules[index].value === 'string') {\n rule.rules[index].value = [];\n }\n rule.rules[index].value[i] = this.intl.formatDate(selectedValue, format);\n }\n else {\n rule.rules[index].value = this.intl.formatDate(selectedValue, format);\n }\n }\n }\n this.validateValue(rule, ruleElem, index);\n }\n else {\n if (target.className.indexOf('e-datepicker') > -1) {\n if (arrOperator.indexOf(oper) > -1) {\n if (typeof rule.rules[index].value === 'string') {\n rule.rules[index].value = [];\n }\n rule.rules[index].value[i] = selectedValue;\n }\n else {\n rule.rules[index].value = selectedValue;\n }\n }\n else {\n rule.rules[index].value = selectedValue;\n }\n }\n };\n QueryBuilder.prototype.validateValue = function (rule, ruleElem, index) {\n if (!isNullOrUndefined(index)) {\n rule = rule.rules[index];\n }\n var isObject = typeof (rule.value) === 'object';\n if (this.allowValidation && (isNullOrUndefined(index) || (isObject ? rule.value.length > 0 : rule.value))) {\n var valElem = ruleElem.querySelectorAll('.e-rule-value .e-control');\n if (valElem.length > 0) {\n if (valElem[0].className.indexOf('e-tooltip') > -1) {\n getComponent(valElem[0], 'tooltip').destroy();\n }\n else if (valElem[0].parentElement.className.indexOf('e-tooltip') > -1) {\n getComponent(valElem[0].parentElement, 'tooltip').destroy();\n }\n if (valElem[1] && valElem[1].parentElement.className.indexOf('e-tooltip') > -1) {\n getComponent(valElem[1].parentElement, 'tooltip').destroy();\n }\n if (valElem[2] && valElem[2].parentElement.className.indexOf('e-tooltip') > -1) {\n getComponent(valElem[2].parentElement, 'tooltip').destroy();\n }\n }\n }\n };\n QueryBuilder.prototype.getFormat = function (format) {\n var formatOptions;\n if (format) {\n if (typeof (format) === 'string') {\n formatOptions = { type: 'dateTime' };\n if (format === 'short' || format === 'yMd') {\n formatOptions.type = 'date';\n formatOptions.skeleton = format;\n }\n else {\n formatOptions.format = format;\n }\n }\n else {\n formatOptions = { type: 'dateTime', skeleton: format.skeleton };\n }\n }\n else {\n formatOptions = { type: 'date', skeleton: 'yMd' };\n }\n return formatOptions;\n };\n QueryBuilder.prototype.findGroupByIdx = function (groupIdx, rule, isRoot) {\n var ruleColl = rule.rules;\n var dupRuleColl = [];\n if (!isRoot) {\n for (var j = 0, jLen = ruleColl.length; j < jLen; j++) {\n rule = ruleColl[j];\n if (rule.rules) {\n dupRuleColl.push(rule);\n }\n }\n return dupRuleColl[groupIdx];\n }\n return rule;\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also it maintains the initial input element from the DOM.\n *\n * @method destroy\n * @returns {void}\n */\n QueryBuilder.prototype.destroy = function () {\n this.isDestroy = true;\n var queryElement = this.element;\n if (!queryElement) {\n return;\n }\n var element;\n var i;\n var len;\n var tooltip;\n _super.prototype.destroy.call(this);\n element = this.element.querySelectorAll('.e-addrulegroup');\n len = element.length;\n for (i = 0; i < len; i++) {\n getComponent(element[i], 'dropdown-btn').destroy();\n detach(element[i]);\n }\n tooltip = this.element.querySelectorAll('.e-rule-filter .e-control.e-tooltip');\n for (i = 0; i < tooltip.length; i++) {\n getComponent(tooltip[i], 'tooltip').destroy();\n }\n element = this.element.querySelectorAll('.e-rule-filter .e-control:not(.e-tooltip)');\n len = element.length;\n for (i = 0; i < len; i++) {\n if (getComponent(element[i], 'dropdownlist')) {\n getComponent(element[i], 'dropdownlist').destroy();\n }\n else {\n getComponent(element[i], 'dropdowntree').destroy();\n }\n detach(element[i]);\n }\n tooltip = this.element.querySelectorAll('.e-rule-operator .e-control.e-tooltip');\n for (i = 0; i < tooltip.length; i++) {\n getComponent(tooltip[i], 'tooltip').destroy();\n }\n element = this.element.querySelectorAll('.e-rule-operator .e-control:not(.e-tooltip)');\n len = element.length;\n for (i = 0; i < len; i++) {\n if (getComponent(element[i], 'dropdownlist')) {\n getComponent(element[i], 'dropdownlist').destroy();\n detach(element[i]);\n }\n }\n tooltip = this.element.querySelectorAll('.e-rule-value .e-control.e-tooltip');\n for (i = 0; i < tooltip.length; i++) {\n getComponent(tooltip[i], 'tooltip').destroy();\n }\n this.isImportRules = false;\n this.unWireEvents();\n this.levelColl[this.element.id + '_group0'] = [0];\n this.element.innerHTML = '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.portals && this.portals.length) {\n this.clearQBTemplate();\n }\n var popupElement = document.querySelectorAll('.qb-dropdownlist.e-popup');\n if (popupElement) {\n for (i = 0; i < popupElement.length; i++) {\n popupElement[i].remove();\n }\n }\n classList(this.element, [], ['e-rtl', 'e-responsive', 'e-device']);\n this.isDestroy = false;\n };\n /**\n * Adds single or multiple rules.\n *\n * @param {RuleModel[]} rule - 'rule collection' to be passed to add the rules.\n * @param {string} groupID - 'group id' to be passed to add the rule in groups.\n * @returns {void}.\n */\n QueryBuilder.prototype.addRules = function (rule, groupID) {\n groupID = this.element.id + '_' + groupID;\n this.isPublic = true;\n for (var i = 0, len = rule.length; i < len; i++) {\n this.addRuleElement(document.getElementById(groupID), rule[i]);\n }\n this.isPublic = false;\n };\n /**\n * Adds single or multiple groups, which contains the collection of rules.\n *\n * @param {RuleModel[]} groups - 'group collection' to be passed to add the groups.\n * @param {string} groupID - 'group id' to be passed to add the groups.\n * @returns {void}.\n */\n QueryBuilder.prototype.addGroups = function (groups, groupID) {\n if (this.isAddSuccess || this.element.querySelectorAll('.e-group-container').length <= this.maxGroupCount) {\n groupID = this.element.id + '_' + groupID;\n var groupElem = document.getElementById(groupID);\n var rule = this.getParentGroup(groupElem);\n var grouplen = groups.length;\n if (grouplen) {\n this.isPublic = true;\n for (var i = 0, len = groups.length; i < len; i++) {\n this.updatedRule = { isLocked: groups[i].isLocked, condition: groups[i].condition,\n not: groups[i].not };\n this.importRules(groups[i], groupElem, false, groups[i].not);\n }\n this.isPublic = false;\n }\n else {\n var condition = 'and';\n var not = false;\n var isLocked = false;\n if (this.updatedRule) {\n condition = this.updatedRule.condition;\n not = this.updatedRule.not;\n isLocked = this.updatedRule.isLocked;\n }\n if (this.groupIndex < 0) {\n if (this.enableNotCondition) {\n rule.rules.push({ 'condition': condition, 'not': not, rules: [] });\n }\n else {\n rule.rules.push({ 'condition': condition, rules: [] });\n }\n }\n else {\n if (this.enableNotCondition) {\n rule.rules.splice(this.groupIndex + 1, 0, { condition: condition, not: not, rules: [], isLocked: isLocked });\n }\n else {\n rule.rules.splice(this.groupIndex + 1, 0, { condition: condition, rules: [], isLocked: isLocked });\n }\n }\n }\n if (!this.headerTemplate) {\n this.disableRuleCondition(groupElem, rule, null, this.enableSeparateConnector ? true : null);\n }\n }\n };\n QueryBuilder.prototype.initWrapper = function () {\n this.isInitialLoad = true;\n if (this.cssClass) {\n addClass([this.element], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.enableSeparateConnector) {\n addClass([this.element], 'e-multi-connector');\n }\n if (this.enableRtl) {\n addClass([this.element], 'e-rtl');\n }\n if (this.width) {\n this.element.style.width = this.width;\n }\n if (this.height) {\n this.element.style.height = this.height;\n }\n if (this.rule.rules.length) {\n this.isImportRules = true;\n }\n else {\n this.addGroupElement(false, this.element);\n }\n if (Browser.isDevice || (window.innerWidth < 768 && !this.isPropChange) || this.displayMode === 'Vertical') {\n if (Browser.isDevice || window.innerWidth < 768) {\n this.element.style.width = '100%';\n this.element.classList.add('e-device');\n }\n removeClass(this.element.querySelectorAll('.e-rule-container'), 'e-horizontal-mode');\n addClass(this.element.querySelectorAll('.e-rule-container'), 'e-vertical-mode');\n this.displayMode = 'Vertical';\n }\n else {\n this.displayMode = 'Horizontal';\n }\n if (this.summaryView) {\n if (this.isImportRules) {\n this.renderSummary();\n }\n else {\n this.renderSummaryCollapse();\n }\n }\n else {\n if (this.columns && this.columns.length && this.isImportRules) {\n this.addGroupElement(false, this.element, this.rule.condition, false, this.rule.not, false, this.rule);\n var mRules = extend({}, this.rule, {}, true);\n this.isRefreshed = true;\n this.setGroupRules(mRules);\n this.isRefreshed = false;\n }\n else if (this.columns && this.columns.length) {\n this.addRuleElement(this.element.querySelector('.e-group-container'), {});\n }\n this.notGroupRtl();\n if (this.readonly) {\n this.enableReadonly();\n }\n var buttons = this.element.querySelectorAll('label.e-btn');\n var button = void 0;\n for (var i = 0; i < buttons.length; i++) {\n button = buttons.item(i);\n rippleEffect(button, { selector: '.e-btn' });\n }\n }\n };\n QueryBuilder.prototype.renderSummary = function () {\n var contentElem = this.createElement('div', {\n attrs: {\n class: 'e-summary-content',\n id: this.element.id + '_summary_content'\n }\n });\n var textElem = this.createElement('textarea', { attrs: { class: 'e-summary-text', readonly: 'true' }, styles: 'max-height:500px' });\n var editElem = this.createElement('button', { attrs: { type: 'button', class: 'e-edit-rule e-css e-btn e-small e-flat e-primary' } });\n var divElem = this.createElement('div', { attrs: { class: 'e-summary-btndiv' } });\n contentElem.appendChild(textElem);\n textElem.textContent = this.getSqlFromRules(this.rule);\n editElem.textContent = this.l10n.getConstant('Edit');\n divElem.appendChild(editElem);\n contentElem.appendChild(divElem);\n this.element.appendChild(contentElem);\n };\n QueryBuilder.prototype.renderSummaryCollapse = function () {\n var collapseElem = this.createElement('div', {\n attrs: {\n class: 'e-collapse-rule e-icons',\n title: this.l10n.getConstant('SummaryViewTitle')\n }\n });\n this.element.querySelector('.e-group-header').appendChild(collapseElem);\n };\n QueryBuilder.prototype.columnSort = function () {\n if (this.sortDirection.toLowerCase() === 'descending') {\n this.columns = new DataManager(this.columns).executeLocal(new Query().sortByDesc('field'));\n }\n else if (this.sortDirection.toLowerCase() === 'ascending') {\n this.columns = new DataManager(this.columns).executeLocal(new Query().sortBy('field'));\n }\n };\n QueryBuilder.prototype.onChangeNotGroup = function () {\n this.element.innerHTML = '';\n this.groupIdCounter = 0;\n if (!this.headerTemplate) {\n if (this.enableNotCondition) {\n var inputElem = this.createElement('button', { attrs: { type: 'button', class: 'e-qb-toggle' } });\n if (this.groupElem.querySelector('.e-btn-group')) {\n this.groupElem.querySelector('.e-btn-group').insertBefore(inputElem, this.groupElem.querySelector('.e-btngroup-and'));\n }\n }\n else {\n this.groupElem.querySelector('.e-qb-toggle').remove();\n }\n }\n this.setProperties({ rule: this.checkNotGroup(this.rule) }, true);\n this.initWrapper();\n };\n QueryBuilder.prototype.notGroupRtl = function () {\n if (this.enableRtl) {\n addClass(this.element.querySelectorAll('.e-btn-group'), 'e-rtl');\n }\n else {\n removeClass(this.element.querySelectorAll('.e-btn-group'), 'e-rtl');\n }\n };\n QueryBuilder.prototype.checkNotGroup = function (rule) {\n var orgRule;\n if (rule.rules) {\n for (var i = 0; i < rule.rules.length; i++) {\n orgRule = rule.rules[i];\n orgRule = this.checkNotGroup(orgRule);\n rule.rules[i] = orgRule;\n }\n }\n if (!isNullOrUndefined(rule.not)) {\n if (this.enableNotCondition) {\n rule.not = false;\n }\n delete rule.not;\n }\n else if (this.enableNotCondition && !isNullOrUndefined(rule.condition)) {\n rule.not = false;\n }\n return rule;\n };\n QueryBuilder.prototype.onPropertyChanged = function (newProp, oldProp) {\n var properties = Object.keys(newProp);\n this.isPropChange = true;\n var groupElem = this.element.querySelector('.e-group-container');\n var summaryElem = this.element.querySelector('.e-summary-content');\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var prop = properties_1[_i];\n switch (prop) {\n case 'summaryView':\n if (newProp.summaryView) {\n groupElem.style.display = 'none';\n if (this.element.querySelectorAll('.e-summary-content').length < 1) {\n this.renderSummary();\n summaryElem = this.element.querySelector('.e-summary-content');\n }\n else {\n this.element.querySelector('.e-summary-text').textContent = this.getSqlFromRules(this.rule);\n }\n summaryElem.style.display = 'block';\n }\n else {\n if (groupElem.querySelectorAll('.e-collapse-rule').length > -1) {\n this.renderSummaryCollapse();\n }\n groupElem.style.display = 'block';\n summaryElem.style.display = 'none';\n }\n break;\n case 'displayMode':\n this.refresh();\n break;\n case 'showButtons':\n if (!isNullOrUndefined(newProp.showButtons.lockGroup)) {\n if (newProp.showButtons.lockGroup) {\n removeClass(this.element.querySelectorAll('.e-lock-grp-btn'), 'e-button-hide');\n }\n else {\n addClass(this.element.querySelectorAll('.e-lock-grp-btn'), 'e-button-hide');\n }\n }\n if (!isNullOrUndefined(newProp.showButtons.lockRule)) {\n if (newProp.showButtons.lockRule) {\n removeClass(this.element.querySelectorAll('.e-lock-rule-btn'), 'e-button-hide');\n }\n else {\n addClass(this.element.querySelectorAll('.e-lock-rule-btn'), 'e-button-hide');\n }\n }\n if (!isNullOrUndefined(newProp.showButtons.cloneGroup)) {\n if (newProp.showButtons.cloneGroup) {\n removeClass(this.element.querySelectorAll('.e-clone-grp-btn'), 'e-button-hide');\n }\n else {\n addClass(this.element.querySelectorAll('.e-clone-grp-btn'), 'e-button-hide');\n }\n }\n if (!isNullOrUndefined(newProp.showButtons.cloneRule)) {\n if (newProp.showButtons.cloneRule) {\n removeClass(this.element.querySelectorAll('.e-clone-rule-btn'), 'e-button-hide');\n }\n else {\n addClass(this.element.querySelectorAll('.e-clone-rule-btn'), 'e-button-hide');\n }\n }\n if (!isNullOrUndefined(newProp.showButtons.ruleDelete)) {\n if (newProp.showButtons.ruleDelete) {\n removeClass(this.element.querySelectorAll('.e-rule-delete'), 'e-button-hide');\n }\n else {\n addClass(this.element.querySelectorAll('.e-rule-delete'), 'e-button-hide');\n }\n }\n if (!isNullOrUndefined(newProp.showButtons.groupDelete)) {\n if (newProp.showButtons.groupDelete) {\n removeClass(this.element.querySelectorAll('.e-deletegroup'), 'e-button-hide');\n }\n else {\n addClass(this.element.querySelectorAll('.e-deletegroup'), 'e-button-hide');\n }\n }\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.element], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.element], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n addClass([this.element], 'e-rtl');\n this.notGroupRtl();\n }\n else {\n removeClass([this.element], 'e-rtl');\n this.notGroupRtl();\n }\n break;\n case 'enablePersistence':\n this.enablePersistence = newProp.enablePersistence;\n break;\n case 'dataSource':\n this.dataSource = newProp.dataSource;\n this.refresh();\n break;\n case 'columns':\n this.columns = newProp.columns;\n this.columnSort();\n this.updateSubFieldsFromColumns(this.columns);\n break;\n case 'sortDirection':\n this.sortDirection = newProp.sortDirection;\n this.columnSort();\n break;\n case 'maxGroupCount':\n this.maxGroupCount = newProp.maxGroupCount;\n break;\n case 'height':\n this.height = newProp.height;\n this.element.style.height = this.height;\n break;\n case 'rule':\n if (this.rule.rules.length === 0 && !isNullOrUndefined(this.rule)) {\n this.reset();\n }\n this.setProperties({ rule: newProp.rule }, true);\n newProp.rule = this.getRuleCollection(this.rule, false);\n this.setRules(this.rule);\n break;\n case 'width':\n this.width = newProp.width;\n this.element.style.width = this.width;\n break;\n case 'locale':\n this.locale = newProp.locale;\n this.intl = new Internationalization(this.locale);\n this.isLocale = true;\n this.refresh();\n this.isLocale = false;\n break;\n case 'enableNotCondition':\n this.onChangeNotGroup();\n break;\n case 'readonly':\n this.isReadonly = newProp.readonly;\n this.enableReadonly();\n break;\n case 'allowDragAndDrop':\n this.allowDragAndDrop = newProp.allowDragAndDrop;\n this.refresh();\n break;\n case 'enableSeparateConnector':\n this.enableSeparateConnector = newProp.enableSeparateConnector;\n this.refresh();\n break;\n }\n }\n this.isPropChange = false;\n };\n QueryBuilder.prototype.preRender = function () {\n this.element.id = this.element.id || getUniqueID('ej2-querybuilder');\n this.defaultLocale = {\n StartsWith: 'Starts With',\n DoesNotStartWith: 'Does Not Start With',\n EndsWith: 'Ends With',\n DoesNotEndWith: 'Does Not End With',\n Contains: 'Contains',\n DoesNotContain: 'Does Not Contain',\n NotLike: 'Not Like',\n Like: 'Like',\n Equal: 'Equal',\n NotEqual: 'Not Equal',\n LessThan: 'Less Than',\n LessThanOrEqual: 'Less Than Or Equal',\n GreaterThan: 'Greater Than',\n GreaterThanOrEqual: 'Greater Than Or Equal',\n Between: 'Between',\n NotBetween: 'Not Between',\n In: 'In',\n NotIn: 'Not In',\n Remove: 'REMOVE',\n SelectField: 'Select a field',\n SelectOperator: 'Select operator',\n DeleteRule: 'Remove this condition',\n DeleteGroup: 'Delete group',\n AddGroup: 'Add Group',\n AddCondition: 'Add Condition',\n Edit: 'EDIT',\n ValidationMessage: 'This field is required',\n SummaryViewTitle: 'Summary View',\n OtherFields: 'Other Fields',\n AND: 'AND',\n OR: 'OR',\n NOT: 'NOT',\n SelectValue: 'Enter Value',\n IsEmpty: 'Is Empty',\n IsNotEmpty: 'Is Not Empty',\n IsNull: 'Is Null',\n IsNotNull: 'Is Not Null',\n True: 'true',\n False: 'false',\n AddButton: 'Add Group/Condition',\n CloneGroup: 'Clone Group',\n LockGroup: 'Lock Group',\n CloneRule: 'Clone Rule',\n LockRule: 'Lock Rule',\n UnlockRule: 'Unlock Rule',\n UnlockGroup: 'Unlock Group'\n };\n this.l10n = new L10n('querybuilder', this.defaultLocale, this.locale);\n this.intl = new Internationalization(this.locale);\n this.groupIdCounter = 0;\n this.subFilterCounter = 0;\n this.ruleIdCounter = 0;\n this.btnGroupId = 0;\n this.isImportRules = false;\n this.parser = [];\n this.customOperators = {\n stringOperator: [\n { value: 'startswith', key: this.l10n.getConstant('StartsWith') },\n { value: 'notstartswith', key: this.l10n.getConstant('DoesNotStartWith') },\n { value: 'endswith', key: this.l10n.getConstant('EndsWith') },\n { value: 'notendswith', key: this.l10n.getConstant('DoesNotEndWith') },\n { value: 'contains', key: this.l10n.getConstant('Contains') },\n { value: 'notcontains', key: this.l10n.getConstant('DoesNotContain') },\n { value: 'equal', key: this.l10n.getConstant('Equal') },\n { value: 'notequal', key: this.l10n.getConstant('NotEqual') },\n { value: 'in', key: this.l10n.getConstant('In') },\n { value: 'notin', key: this.l10n.getConstant('NotIn') },\n { value: 'isempty', key: this.l10n.getConstant('IsEmpty') },\n { value: 'isnotempty', key: this.l10n.getConstant('IsNotEmpty') }\n ],\n dateOperator: [\n { value: 'equal', key: this.l10n.getConstant('Equal') },\n { value: 'greaterthan', key: this.l10n.getConstant('GreaterThan') },\n { value: 'greaterthanorequal', key: this.l10n.getConstant('GreaterThanOrEqual') },\n { value: 'lessthan', key: this.l10n.getConstant('LessThan') },\n { value: 'lessthanorequal', key: this.l10n.getConstant('LessThanOrEqual') },\n { value: 'notequal', key: this.l10n.getConstant('NotEqual') },\n { value: 'between', key: this.l10n.getConstant('Between') },\n { value: 'notbetween', key: this.l10n.getConstant('NotBetween') }\n ],\n booleanOperator: [\n { value: 'equal', key: this.l10n.getConstant('Equal') },\n { value: 'notequal', key: this.l10n.getConstant('NotEqual') }\n ],\n numberOperator: [\n { value: 'equal', key: this.l10n.getConstant('Equal') },\n { value: 'greaterthanorequal', key: this.l10n.getConstant('GreaterThanOrEqual') },\n { value: 'greaterthan', key: this.l10n.getConstant('GreaterThan') },\n { value: 'between', key: this.l10n.getConstant('Between') },\n { value: 'lessthan', key: this.l10n.getConstant('LessThan') },\n { value: 'notbetween', key: this.l10n.getConstant('NotBetween') },\n { value: 'lessthanorequal', key: this.l10n.getConstant('LessThanOrEqual') },\n { value: 'notequal', key: this.l10n.getConstant('NotEqual') },\n { value: 'in', key: this.l10n.getConstant('In') },\n { value: 'notin', key: this.l10n.getConstant('NotIn') }\n ]\n };\n this.operators = {\n equal: '=', notequal: '!=', greaterthan: '>', greaterthanorequal: '>=', lessthan: '<', in: 'IN', notin: 'NOT IN',\n lessthanorequal: '<=', startswith: 'LIKE', endswith: 'LIKE', between: 'BETWEEN', notbetween: 'NOT BETWEEN', contains: 'LIKE',\n isnull: 'IS NULL', isnotnull: 'IS NOT NULL', isempty: 'IS EMPTY', isnotempty: 'IS NOT EMPTY', notstartswith: 'NOT LIKE',\n notendswith: 'NOT LIKE', notcontains: 'NOT LIKE'\n };\n this.sqlOperators = {\n equal: '=', notequal: '!=', greaterthan: '>', greaterthanorequal: '>=', lessthan: '<', in: this.l10n.getConstant('In').toUpperCase(),\n notin: this.l10n.getConstant('NotIn').toUpperCase(), lessthanorequal: '<=', startswith: this.l10n.getConstant('Like').toUpperCase(),\n endswith: this.l10n.getConstant('Like').toUpperCase(), between: this.l10n.getConstant('Between').toUpperCase(),\n notbetween: this.l10n.getConstant('NotBetween').toUpperCase(), contains: this.l10n.getConstant('Like').toUpperCase(),\n isnull: this.l10n.getConstant('IsNull').toUpperCase(), isnotnull: this.l10n.getConstant('IsNotNull').toUpperCase(),\n isempty: this.l10n.getConstant('IsEmpty').toUpperCase(), isnotempty: this.l10n.getConstant('IsNotEmpty').toUpperCase(),\n notstartswith: this.l10n.getConstant('NotLike').toUpperCase(), notendswith: this.l10n.getConstant('NotLike').toUpperCase(),\n notcontains: this.l10n.getConstant('NotLike').toUpperCase()\n };\n if (!this.fields) {\n this.fields = { text: 'label', value: 'field' };\n }\n };\n QueryBuilder.prototype.render = function () {\n this.levelColl = {};\n this.items = [\n {\n text: this.l10n.getConstant('AddGroup'),\n iconCss: 'e-icons e-add-icon e-addgroup'\n },\n {\n text: this.l10n.getConstant('AddCondition'),\n iconCss: 'e-icons e-add-icon e-addrule'\n }\n ];\n this.ruleElem = this.ruleTemplate();\n this.groupElem = this.groupTemplate();\n var stringOper = [\n { value: 'isnull', key: this.l10n.getConstant('IsNull') },\n { value: 'isnotnull', key: this.l10n.getConstant('IsNotNull') }\n ];\n var numberOper = [\n { value: 'isnull', key: this.l10n.getConstant('IsNull') },\n { value: 'isnotnull', key: this.l10n.getConstant('IsNotNull') }\n ];\n this.customOperators['stringOperator'] = this.customOperators['stringOperator'].concat(stringOper); // tslint:disable-line\n this.customOperators['numberOperator'] = this.customOperators['numberOperator'].concat(numberOper); // tslint:disable-line\n if (this.dataSource instanceof DataManager) {\n this.dataManager = this.dataSource;\n this.executeDataManager(new Query().take(1));\n }\n else {\n this.dataManager = new DataManager(this.dataSource);\n this.dataColl = this.dataManager.executeLocal(new Query());\n this.initControl();\n }\n this.renderComplete();\n if (this.allowDragAndDrop) {\n this.initializeDrag();\n }\n };\n QueryBuilder.prototype.initializeDrag = function () {\n this.draggable = new Draggable(this.element, {\n dragTarget: '.e-drag-qb-rule',\n distance: 5,\n helper: this.helper.bind(this),\n dragStart: this.dragStartHandler.bind(this),\n drag: this.dragHandler.bind(this),\n dragStop: this.dragStopHandler.bind(this),\n isReplaceDragEle: true,\n isPreventSelect: false,\n abort: '.e-parent-header',\n isDragScroll: true\n });\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n QueryBuilder.prototype.helper = function (e) {\n var target = this.draggable.currentStateTarget;\n if (!target.classList.contains('e-drag-qb-rule') || (target.classList.contains('e-drag-qb-rule') && closest(target, '.e-disable'))) {\n return false;\n }\n var visualElement = this.createElement('div', {\n className: 'e-cloneproperties e-draganddrop e-dragclone',\n styles: 'height:\"auto\", z-index:2, width:' + this.element.offsetWidth\n });\n var cloneElement;\n if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {\n cloneElement = closest(target, '.e-group-container').cloneNode(true);\n closest(target, '.e-group-container').classList.add('e-qb-dragging-rule');\n }\n else {\n visualElement.classList.add('e-group-body');\n cloneElement = this.createElement('div', { className: 'e-rule-container' });\n var ruleElement = closest(target, '.e-rule-field').cloneNode(true);\n cloneElement.appendChild(ruleElement);\n closest(target, '.e-rule-field').classList.add('e-qb-dragging-rule');\n }\n visualElement.appendChild(cloneElement);\n var childElements = visualElement.querySelectorAll('*');\n childElements.forEach(function (child) {\n child.removeAttribute('id');\n });\n this.element.appendChild(visualElement);\n return visualElement;\n };\n QueryBuilder.prototype.dragStartHandler = function (e) {\n this.draggedRule = e.target;\n this.isDragEventPrevent = false;\n document.body.classList.add('e-prevent-select');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.dragElement = e.dragElement;\n var rule = closest(e.target, '.e-rule-container');\n var group = closest(e.target, '.e-group-container');\n var dragEventArgs = { dragRuleID: rule !== null ? rule.id : group.id, dragGroupID: group.id, cancel: false };\n this.trigger('dragStart', dragEventArgs);\n this.isDragEventPrevent = dragEventArgs.cancel;\n };\n QueryBuilder.prototype.dragHandler = function (e) {\n if (this.isDragEventPrevent) {\n return;\n }\n var borderLineElem = this.element.querySelectorAll('.e-drag-rule-bottom-line');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-drag-rule-bottom-line');\n });\n borderLineElem = this.element.querySelectorAll('.e-drag-rule-top-line');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-drag-rule-top-line');\n });\n if (isNullOrUndefined(e.target)) {\n return;\n }\n if (e.target.nodeName === 'HTML' || closest(e.target, '.e-qb-dragging-rule') || closest(e.target, '.e-group-header') ||\n !closest(e.target, '#' + this.element.id) || closest(e.target, '.e-disable') || (e.target.parentElement && e.target.parentElement.classList.contains('e-btn-group') && this.enableSeparateConnector)) {\n this.dragElement.classList.add('e-notallowedcur');\n return;\n }\n else {\n this.dragElement.classList.remove('e-notallowedcur');\n }\n var targetElem = closest(e.target, '.e-rule-container');\n var grpElem = closest(e.target, '.e-group-container');\n if (targetElem) {\n var rect = targetElem.getBoundingClientRect();\n var mouseY = e.event.clientY || e.event.changedTouches[0].clientY;\n var distanceToTop = mouseY - rect.top;\n var distanceToBottom = rect.bottom - mouseY;\n var threshold = 20; // Adjust as needed\n if (distanceToTop < threshold) {\n targetElem.classList.add('e-drag-rule-top-line');\n }\n else if (distanceToBottom < threshold) {\n targetElem.classList.add('e-drag-rule-bottom-line');\n }\n }\n else if (e.target.classList.contains('e-rule-list') && e.target.children.length === 0) {\n e.target.classList.add('e-drag-rule-bottom-line');\n }\n else if (e.target.classList.contains('e-rule-list') && e.target.children[0].classList.contains('e-group-container')) {\n var rect = e.target.children[0].getBoundingClientRect();\n var mouseY = e.event.clientY || e.event.changedTouches[0].clientY;\n var distanceToTop = mouseY - rect.top;\n var threshold = 20; // Adjust as needed\n if (distanceToTop < threshold) {\n e.target.classList.add('e-drag-rule-top-line');\n }\n }\n else if (closest(e.target, '.e-group-container') || e.target.classList.contains('e-group-container')) {\n if (!grpElem) {\n grpElem = e.target;\n }\n if (grpElem.id.indexOf('group0') > -1) {\n var rect = e.target.getBoundingClientRect();\n var mouseY = e.event.clientY || e.event.changedTouches[0].clientY;\n var distanceToBottom = rect.bottom - mouseY;\n var threshold = 20; // Adjust as needed\n if (distanceToBottom < threshold) {\n e.target.classList.add('e-drag-rule-bottom-line');\n }\n }\n }\n var dragEventArgs = { dragRuleID: targetElem !== null ? targetElem.id : grpElem !== null ? grpElem.id : null,\n dragGroupID: grpElem !== null ? grpElem.id : null, cancel: false };\n this.trigger('drag', dragEventArgs);\n this.isDragEventPrevent = dragEventArgs.cancel;\n };\n QueryBuilder.prototype.dragStopHandler = function (e) {\n var _this = this;\n if (this.isDragEventPrevent) {\n return;\n }\n var targetGroup = closest(e.target, '.e-rule-container');\n if (isNullOrUndefined(targetGroup) && e.target.parentElement &&\n e.target.parentElement.classList.contains('e-btn-group') && this.enableSeparateConnector) {\n targetGroup = closest(e.target.parentElement.previousElementSibling, '.e-rule-container');\n }\n var isPreventelem;\n if (!isNullOrUndefined(e.helper)) {\n isPreventelem = closest(e.helper, '.e-notallowedcur');\n }\n var prevRule;\n if (!isPreventelem) {\n var targetGrp = closest(e.target, '.e-group-container');\n var dropEventArgs = { cancel: false, dropRuleID: targetGroup !== null ? targetGroup.id\n : targetGrp !== null ? targetGrp.id : null, dropGroupID: targetGrp !== null ? targetGrp.id : null };\n this.trigger('drop', dropEventArgs);\n if (dropEventArgs.cancel) {\n isPreventelem = true;\n }\n prevRule = this.getValidRules();\n }\n this.prvtEvtTgrDaD = true;\n var tgrt = this.enableSeparateConnector && e.target.parentElement &&\n e.target.parentElement.classList.contains('e-btn-group') ? e.target.parentElement.previousElementSibling : e.target;\n if (targetGroup && !isPreventelem) {\n var groupId_1 = targetGroup.id.split(this.element.id + '_')[1].split('_')[0];\n if (this.draggable.currentStateTarget.parentElement.classList.contains('e-rule-field') ||\n this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {\n var rule = void 0;\n if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {\n rule = this.getGroup(this.draggedRule);\n this.deleteGroup(closest(this.draggedRule, '.e-group-container'));\n }\n else {\n rule = this.getRule(this.draggedRule);\n this.deleteRule(this.draggedRule);\n }\n var groupRule = extend([], this.getGroup(targetGroup), [], true);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (groupRule.properties) {\n groupRule = groupRule.properties;\n }\n var groupElem = closest(targetGroup, '.e-group-container');\n var nestGrpElem = groupElem.querySelectorAll('.e-group-container');\n nestGrpElem.forEach(function (ele) {\n if (_this.element.querySelector('#' + ele.id)) {\n _this.deleteGroup(ele);\n }\n });\n var ruleElems = groupElem.querySelectorAll('.e-rule-container');\n var ruleIds = [];\n var dropInd = void 0;\n for (var i = 0; i < ruleElems.length; i++) {\n if (ruleElems[i].classList.contains('e-drag-rule-top-line') ||\n ruleElems[i].classList.contains('e-drag-rule-bottom-line')) {\n dropInd = i;\n }\n ruleIds.push(ruleElems[i].id.split(this.element.id + '_')[1]);\n }\n this.deleteRules(ruleIds);\n if (targetGroup.classList.contains('e-drag-rule-top-line')) {\n groupRule.rules.splice(dropInd, 0, rule);\n }\n else {\n groupRule.rules.splice(dropInd + 1, 0, rule);\n }\n groupRule.rules.forEach(function (rule) {\n if (_this.enableSeparateConnector) {\n if (!rule.rules) {\n _this.addRules([rule], groupId_1);\n }\n else {\n _this.addGroups([rule], groupId_1);\n }\n }\n else {\n if (rule.condition) {\n _this.addGroups([rule], groupId_1);\n }\n else {\n _this.addRules([rule], groupId_1);\n }\n }\n });\n }\n }\n else if (tgrt.classList.contains('e-rule-list') && tgrt.children.length === 0 && !isPreventelem) {\n var groupElem = closest(tgrt, '.e-group-container');\n var groupId = groupElem.id.split(this.element.id + '_')[1].split('_')[0];\n var rule = void 0;\n if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {\n rule = this.getGroup(this.draggedRule);\n this.deleteGroup(closest(this.draggedRule, '.e-group-container'));\n }\n else {\n rule = this.getRule(this.draggedRule);\n this.deleteRule(this.draggedRule);\n }\n if (this.enableSeparateConnector) {\n if (!rule.rules) {\n this.addRules([rule], groupId);\n }\n else {\n this.addGroups([rule], groupId);\n }\n }\n else {\n if (rule.condition) {\n this.addGroups([rule], groupId);\n }\n else {\n this.addRules([rule], groupId);\n }\n }\n }\n else if (tgrt.classList.contains('e-rule-list') && tgrt.children[0].classList.contains('e-group-container') && !isPreventelem) {\n var groupElem = closest(tgrt, '.e-group-container');\n var groupId_2 = groupElem.id.split(this.element.id + '_')[1].split('_')[0];\n var rule = void 0;\n if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {\n rule = this.getGroup(this.draggedRule);\n this.deleteGroup(closest(this.draggedRule, '.e-group-container'));\n }\n else {\n rule = this.getRule(this.draggedRule);\n this.deleteRule(this.draggedRule);\n }\n var groupRule = extend([], this.getGroup(tgrt), [], true);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (groupRule.properties) {\n groupRule = groupRule.properties;\n }\n var groupElems = tgrt.querySelectorAll('.e-group-container');\n groupElems.forEach(function (ele) {\n if (_this.element.querySelector('#' + ele.id)) {\n _this.deleteGroup(ele);\n }\n });\n var ruleElems = groupElem.querySelectorAll('.e-rule-container');\n ruleElems.forEach(function (ele) {\n if (_this.element.querySelector('#' + ele.id)) {\n _this.deleteRule(ele);\n }\n });\n if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {\n this.addGroups([rule], groupId_2);\n }\n else {\n this.addRules([rule], groupId_2);\n }\n groupRule.rules.forEach(function (rule) {\n if (_this.enableSeparateConnector) {\n if (!rule.rules) {\n _this.addRules([rule], groupId_2);\n }\n else {\n _this.addGroups([rule], groupId_2);\n }\n }\n else {\n if (rule.condition) {\n _this.addGroups([rule], groupId_2);\n }\n else {\n _this.addRules([rule], groupId_2);\n }\n }\n });\n }\n else if ((closest(e.target, '.e-group-container') || e.target.classList.contains('e-group-container')) && !isPreventelem) {\n var rule = void 0;\n targetGroup = closest(e.target, '.e-group-container');\n if (!targetGroup && e.target.classList.contains('e-group-container')) {\n targetGroup = e.target;\n }\n var groupId = targetGroup.id.split(this.element.id + '_')[1].split('_')[0];\n if (groupId === 'group0') {\n if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {\n rule = this.getGroup(this.draggedRule);\n this.deleteGroup(closest(this.draggedRule, '.e-group-container'));\n }\n else {\n rule = this.getRule(this.draggedRule);\n this.deleteRule(this.draggedRule);\n }\n if (this.enableSeparateConnector) {\n if (!rule.rules) {\n this.addRules([rule], groupId);\n }\n else {\n this.addGroups([rule], groupId);\n }\n }\n else {\n if (rule.condition) {\n this.addGroups([rule], groupId);\n }\n else {\n this.addRules([rule], groupId);\n }\n }\n }\n }\n if (!isPreventelem) {\n this.trigger('ruleChange', { previousRule: prevRule, rule: this.getValidRules(), type: 'drag-and-drop' });\n }\n this.prvtEvtTgrDaD = false;\n document.body.classList.remove('e-prevent-select');\n var borderLineElem = this.element.querySelectorAll('.e-drag-rule-bottom-line');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-drag-rule-bottom-line');\n });\n borderLineElem = this.element.querySelectorAll('.e-drag-rule-top-line');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-drag-rule-top-line');\n });\n borderLineElem = this.element.querySelectorAll('.e-qb-dragging-rule');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-qb-dragging-rule');\n });\n if (e.helper && e.helper.classList.contains('e-cloneproperties') && document.querySelector('.' + e.helper.classList[0])) {\n remove(e.helper);\n }\n if (this.enableSeparateConnector) {\n this.refresh();\n }\n };\n QueryBuilder.prototype.templateParser = function (template) {\n if (template) {\n try {\n if (typeof template !== 'function' && document.querySelectorAll(template).length) {\n return templateCompiler(document.querySelector(template).innerHTML.trim());\n }\n else {\n return compile(template);\n }\n }\n catch (error) {\n return templateCompiler(template);\n }\n }\n return undefined;\n };\n QueryBuilder.prototype.executeDataManager = function (query) {\n var _this = this;\n var data = this.dataManager.executeQuery(query);\n var deferred = new Deferred();\n data.then(function (e) {\n if (e.actual && e.actual.result) {\n _this.dataColl = e.actual.result;\n }\n else {\n _this.dataColl = e.result;\n }\n _this.initControl();\n }).catch(function (e) {\n deferred.reject(e);\n });\n };\n QueryBuilder.prototype.initControl = function () {\n this.initialize();\n this.initWrapper();\n this.wireEvents();\n };\n QueryBuilder.prototype.wireEvents = function () {\n var wrapper = this.getWrapper();\n EventHandler.add(wrapper, 'click', this.clickEventHandler, this);\n EventHandler.add(wrapper, 'focusout', this.focusEventHandler, this);\n EventHandler.add(wrapper, 'focusin', this.focusEventHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);\n EventHandler.add(document, 'keydown', this.keyBoardHandler, this);\n window.addEventListener('resize', this.windowResizeHandler.bind(this));\n };\n QueryBuilder.prototype.unWireEvents = function () {\n var wrapper = this.getWrapper();\n EventHandler.remove(wrapper, 'click', this.clickEventHandler);\n EventHandler.remove(wrapper, 'focusout', this.focusEventHandler);\n EventHandler.remove(wrapper, 'focusin', this.focusEventHandler);\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\n EventHandler.remove(document, 'keydown', this.keyBoardHandler);\n window.removeEventListener('resize', this.windowResizeHandler);\n };\n QueryBuilder.prototype.getParentGroup = function (target, isParent) {\n var groupLevel = (target instanceof Element) ? this.levelColl[target.id] : this.levelColl[\"\" + target];\n var len = isParent ? groupLevel.length - 1 : groupLevel.length;\n var rule = this.rule;\n for (var i = 0; i < len; i++) {\n rule = this.findGroupByIdx(groupLevel[i], rule, i === 0);\n }\n return rule;\n };\n /**\n * Delete the Group\n *\n * @param {Element | string} target - 'target' to be passed to delete the group.\n * @returns {void}\n */\n QueryBuilder.prototype.deleteGroup = function (target) {\n var _this = this;\n var groupElem = target;\n var groupId;\n if (typeof target === 'string') {\n groupId = this.element.id + '_' + target;\n target = document.getElementById(groupId);\n groupId = groupId.replace(this.element.id + '_', '');\n }\n else {\n groupId = groupElem.id.replace(this.element.id + '_', '');\n }\n if (groupId === 'group0' || !target) {\n return;\n }\n var args = { groupID: groupId, cancel: false, type: 'deleteGroup' };\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('beforeChange', args, function (observedChangeArgs) {\n _this.deleteGroupSuccessCallBack(observedChangeArgs, target);\n });\n }\n else {\n this.deleteGroupSuccessCallBack(args, target);\n }\n };\n QueryBuilder.prototype.deleteGroupSuccessCallBack = function (args, target) {\n if (!args.cancel) {\n var groupElem = target;\n var rule = this.getParentGroup(groupElem, true);\n var index = 0;\n var i = void 0;\n var len = void 0;\n var beforeRules = this.getValidRules(this.rule);\n var nextElem = groupElem.nextElementSibling;\n var prevElem = groupElem.previousElementSibling;\n var element = groupElem.querySelectorAll('.e-group-container');\n var valElem = groupElem.querySelectorAll('.e-tooltip');\n len = valElem.length;\n for (i = 0; i < len; i++) {\n getComponent(valElem[i], 'tooltip').destroy();\n }\n for (i = 0, len = element.length; i < len; i++) {\n delete this.levelColl[element[i].id];\n }\n while (groupElem.previousElementSibling !== null) {\n groupElem = groupElem.previousElementSibling;\n if (!this.enableSeparateConnector || (this.enableSeparateConnector &&\n ((!this.headerTemplate && !groupElem.classList.contains('e-btn-group')) ||\n this.headerTemplate && (groupElem.classList.contains('e-rule-container') ||\n groupElem.classList.contains('e-group-container'))))) {\n index++;\n }\n }\n if (!this.enableSeparateConnector) {\n if (nextElem && nextElem.className.indexOf('e-separate-rule') > -1) {\n removeClass([nextElem], 'e-separate-rule');\n addClass([nextElem], 'e-joined-rule');\n if (prevElem && prevElem.className.indexOf('e-rule-container') > -1) {\n addClass([prevElem], 'e-prev-joined-rule');\n }\n }\n }\n var elem = groupElem.parentElement.parentElement.parentElement;\n var removeString = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact || this.isAngular) {\n var remRule = rule.rules[index];\n var ruleElemColl = target.querySelectorAll('.e-rule-container');\n if (remRule && remRule.rules) {\n for (var r = 0; r < remRule.rules.length; r++) {\n var column = this.getColumn(remRule.rules[r].field);\n if (ruleElemColl[r]) {\n var isTemplateRendered = ruleElemColl[r].querySelector('.e-template-value');\n if (column && (column.ruleTemplate || (this.isPlatformTemplate(column) && isTemplateRendered))) {\n removeString.push(ruleElemColl[r].id);\n }\n }\n }\n }\n }\n detach(target);\n if (this.headerTemplate) {\n this.clearQBTemplate([target.id]);\n }\n if (removeString.length) {\n this.clearQBTemplate(removeString);\n }\n rule.rules.splice(index, 1);\n delete this.levelColl[args.groupID];\n this.refreshLevelColl();\n this.disableRuleCondition(elem, rule);\n if (this.enableSeparateConnector && prevElem && ((!this.headerTemplate && prevElem.classList.contains('e-btn-group')) ||\n (this.headerTemplate && prevElem.classList.contains('e-custom-group-btn')))) {\n detach(prevElem);\n }\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('change', args);\n }\n this.filterRules(beforeRules, this.getValidRules(this.rule), 'deleteGroup');\n }\n };\n QueryBuilder.prototype.isPlatformTemplate = function (column) {\n var isTemp = false;\n isTemp = column.template && (typeof column.template === 'string' || column.template.create === undefined);\n return isTemp;\n };\n QueryBuilder.prototype.deleteRule = function (target) {\n var _this = this;\n var groupElem = closest(target, '.e-group-container');\n var groupID = groupElem.id.replace(this.element.id + '_', '');\n var ruleID = closest(target, '.e-rule-container').id.replace(this.element.id + '_', '');\n var args = { groupID: groupID, ruleID: ruleID, cancel: false, type: 'deleteRule' };\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('beforeChange', args, function (observedChangeArgs) {\n _this.deleteRuleSuccessCallBack(observedChangeArgs, target);\n });\n }\n else {\n this.deleteRuleSuccessCallBack(args, target);\n }\n };\n QueryBuilder.prototype.deleteRuleSuccessCallBack = function (args, target) {\n if (!args.cancel) {\n var groupElem = closest(target, '.e-group-container');\n var rule = this.getParentGroup(groupElem);\n var ruleElem = closest(target, '.e-rule-container');\n var beforeRules = this.getValidRules(this.rule);\n var prevElem = ruleElem.previousElementSibling;\n var index = 0;\n var clnruleElem = ruleElem;\n var nextElem = ruleElem.nextElementSibling;\n var valElem = ruleElem.querySelectorAll('.e-tooltip');\n var i = void 0;\n var len = valElem.length;\n for (i = 0; i < len; i++) {\n getComponent(valElem[i], 'tooltip').destroy();\n }\n while (ruleElem.previousElementSibling !== null) {\n ruleElem = ruleElem.previousElementSibling;\n if (!this.enableSeparateConnector || (this.enableSeparateConnector &&\n ((!this.headerTemplate && !ruleElem.classList.contains('e-btn-group')) ||\n this.headerTemplate && (ruleElem.classList.contains('e-rule-container') ||\n ruleElem.classList.contains('e-group-container'))))) {\n index++;\n }\n }\n var column = this.getColumn(rule.rules[index].field);\n if (column && column.template && clnruleElem.querySelector('.e-template')) {\n this.templateDestroy(column, clnruleElem.querySelector('.e-template').id);\n }\n if (!prevElem || prevElem.className.indexOf('e-rule-container') < 0) {\n if (nextElem) {\n removeClass([nextElem], 'e-joined-rule');\n }\n }\n if (!nextElem || nextElem.className.indexOf('e-rule-container') < 0) {\n if (prevElem) {\n removeClass([prevElem], 'e-prev-joined-rule');\n }\n }\n var isTemplateRendered = clnruleElem.querySelector('.e-template-value');\n // eslint-disable\n try {\n if (this.enableSeparateConnector && (clnruleElem.previousElementSibling || clnruleElem.nextElementSibling)) {\n var previousElem = clnruleElem.previousElementSibling;\n var nextElem_1 = clnruleElem.nextElementSibling;\n if (isNullOrUndefined(nextElem_1) && ((!this.headerTemplate && previousElem.classList.contains('e-btn-group'))\n || (this.headerTemplate && previousElem.classList.contains('e-custom-group-btn')))) {\n if (previousElem && previousElem.previousElementSibling && previousElem.previousElementSibling.classList.contains('e-rule-container')) {\n var rule_1 = this.getRule(previousElem.previousElementSibling);\n rule_1.condition = null;\n }\n detach(previousElem);\n }\n else if ((!this.headerTemplate && nextElem_1.classList.contains('e-btn-group'))\n || (this.headerTemplate && nextElem_1.classList.contains('e-custom-group-btn'))) {\n detach(nextElem_1);\n }\n }\n detach(clnruleElem);\n }\n catch (err) {\n return;\n }\n if (column && column.ruleTemplate) {\n this.clearQBTemplate([clnruleElem.id]);\n }\n if (column && this.isPlatformTemplate(column) && isTemplateRendered) {\n this.clearQBTemplate([clnruleElem.id]);\n }\n rule.rules.splice(index, 1);\n if (!(rule.rules[0] && rule.rules[0].rules)) {\n this.disableRuleCondition(groupElem, rule, this.enableSeparateConnector ? true : false);\n }\n var tooltipElem = this.element.querySelectorAll('.e-tooltip');\n for (var i_3 = 0; i_3 < tooltipElem.length; i_3++) {\n getComponent(tooltipElem[i_3], 'tooltip').refresh(tooltipElem[i_3]);\n }\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('change', args);\n }\n this.filterRules(beforeRules, this.getValidRules(this.rule), 'deleteRule');\n }\n };\n QueryBuilder.prototype.setGroupRules = function (rule, isRoot) {\n if (this.headerTemplate && isRoot) {\n this.isRoot = true;\n }\n this.reset();\n this.groupIdCounter = 1;\n this.ruleIdCounter = 0;\n this.isImportRules = true;\n this.setProperties({ rule: rule }, true);\n rule = this.getRuleCollection(this.rule, false);\n this.importRules(this.rule, this.element.querySelector('.e-group-container'), true, this.rule.not, isRoot);\n if (rule.isLocked) {\n var lockGrpTarget = this.element.querySelector('.e-group-container').querySelector('.e-lock-grp-btn');\n this.groupLock(lockGrpTarget);\n }\n this.isImportRules = false;\n };\n QueryBuilder.prototype.keyBoardHandler = function (e) {\n if (e.currentTarget === this.element && this.readonly && (e.keyCode === 38 || e.keyCode === 40 || e.keyCode === 13)) {\n e.preventDefault();\n }\n else if (e.code === 'Escape' && this.allowDragAndDrop) {\n this.isDragEventPrevent = true;\n document.body.classList.remove('e-prevent-select');\n var borderLineElem = this.element.querySelectorAll('.e-drag-rule-bottom-line');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-drag-rule-bottom-line');\n });\n borderLineElem = this.element.querySelectorAll('.e-drag-rule-top-line');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-drag-rule-top-line');\n });\n borderLineElem = this.element.querySelectorAll('.e-qb-dragging-rule');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-qb-dragging-rule');\n });\n var dragElemnet = this.element.querySelector('.e-cloneproperties');\n if (dragElemnet) {\n remove(dragElemnet);\n }\n if (this.enableSeparateConnector) {\n this.refresh();\n }\n }\n };\n QueryBuilder.prototype.windowResizeHandler = function () {\n if (Browser.isDevice || window.innerWidth < 768) {\n this.displayMode = 'Vertical';\n }\n else {\n this.displayMode = 'Horizontal';\n }\n };\n QueryBuilder.prototype.clearQBTemplate = function (ruleElemColl) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact || this.isAngular) {\n this.clearTemplate(ruleElemColl);\n }\n };\n QueryBuilder.prototype.disableRuleCondition = function (groupElem, rules, isNewRuleAdded, isNewGroup) {\n if (!this.headerTemplate) {\n if (this.readonly) {\n return;\n }\n var count = groupElem.querySelector('.e-rule-list').childElementCount;\n var andElem = groupElem.querySelector('.e-btngroup-and');\n var orElem = groupElem.querySelector('.e-btngroup-or');\n if (count > 1) {\n andElem.disabled = false;\n orElem.disabled = false;\n if (orElem.nextElementSibling.classList.contains('e-btn-disable') ||\n andElem.nextElementSibling.classList.contains('e-btn-disable')) {\n orElem.nextElementSibling.classList.remove('e-btn-disable');\n andElem.nextElementSibling.classList.remove('e-btn-disable');\n }\n if (this.enableSeparateConnector && !isNewRuleAdded) {\n var index = 0;\n var element = void 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var andGroup = groupElem.parentElement.querySelectorAll('.e-btngroup-and');\n var orGroup = groupElem.parentElement.querySelectorAll('.e-btngroup-or');\n andElem = andGroup[andGroup.length - (1 + index)];\n orElem = orGroup[orGroup.length - (1 + index)];\n element = andGroup[andGroup.length - (1 + index)];\n if (element && element.parentElement && element.parentElement.style.display === 'none') {\n index++;\n }\n else {\n break;\n }\n }\n var elem = groupElem.previousElementSibling;\n while (elem && !elem.classList.contains('e-rule-container')) {\n if (elem.classList.contains('e-group-container')) {\n elem = elem.querySelectorAll('.e-rule-container')[elem.querySelectorAll('.e-rule-container').length - 1];\n break;\n }\n elem = elem.previousElementSibling;\n }\n if (isNewGroup && groupElem.classList.contains('e-group-container')) {\n elem = groupElem;\n var prevRule = this.getGroup(elem);\n if (prevRule.condition === 'or') {\n orElem.checked = true;\n }\n else {\n andElem.checked = true;\n }\n }\n else if (elem && elem.classList.contains('e-rule-container')) {\n var ruleID = elem.id.replace(this.element.id + '_', '');\n var prevRule = this.getRule(ruleID);\n if (prevRule.condition === 'or') {\n orElem.checked = true;\n }\n else {\n andElem.checked = true;\n }\n }\n }\n else if (!isNewRuleAdded) {\n if (rules && rules.condition === 'or') {\n orElem.checked = true;\n }\n else {\n andElem.checked = true;\n }\n }\n }\n else {\n if (this.enableSeparateConnector && !isNewRuleAdded) {\n var index = 0;\n var element = void 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var andGroup = groupElem.parentElement.querySelectorAll('.e-btngroup-and');\n var orGroup = groupElem.parentElement.querySelectorAll('.e-btngroup-or');\n andElem = andGroup[andGroup.length - (1 + index)];\n orElem = orGroup[orGroup.length - (1 + index)];\n element = andGroup[andGroup.length - (1 + index)];\n if (element && element.parentElement && element.parentElement.style.display === 'none') {\n index++;\n }\n else {\n break;\n }\n }\n var elem = void 0;\n var tempElem = groupElem.previousElementSibling;\n while (tempElem) {\n if (tempElem.classList.contains('e-group-container')) {\n tempElem = tempElem.querySelectorAll('.e-rule-container')[tempElem.querySelectorAll('.e-rule-container').length - 1];\n }\n if (tempElem.classList.contains('e-rule-container')) {\n elem = tempElem;\n break;\n }\n tempElem = tempElem.previousElementSibling;\n }\n if (isNullOrUndefined(elem) && groupElem.querySelectorAll('.e-rule-container')[groupElem.querySelectorAll('.e-rule-container').length - 1]) {\n elem = groupElem.querySelectorAll('.e-rule-container')[groupElem.querySelectorAll('.e-rule-container').length - 1];\n }\n if (isNewGroup && groupElem.classList.contains('e-group-container')) {\n elem = groupElem;\n var prevRule = this.getGroup(elem);\n if (prevRule.condition === 'or') {\n orElem.checked = true;\n }\n else {\n andElem.checked = true;\n }\n }\n else if (elem) {\n var ruleID = elem.id.replace(this.element.id + '_', '');\n var prevRule = this.getRule(ruleID);\n if (prevRule.condition === 'or' && orElem) {\n orElem.checked = true;\n }\n else if (andElem) {\n andElem.checked = true;\n }\n }\n }\n else if (!isNewRuleAdded && !isNullOrUndefined(andElem)) {\n andElem.checked = false;\n andElem.disabled = true;\n orElem.checked = false;\n orElem.disabled = true;\n if (rules) {\n orElem.nextElementSibling.classList.add('e-btn-disable');\n andElem.nextElementSibling.classList.add('e-btn-disable');\n }\n }\n }\n }\n };\n /**\n * Get the valid rule or rules collection.\n *\n * @param {RuleModel} currentRule - 'currentRule' to be passed to get the valid rules.\n * @returns {RuleModel} - Valid rule or rules collection\n */\n QueryBuilder.prototype.getValidRules = function (currentRule) {\n this.isValueEmpty = true;\n if (!currentRule) {\n currentRule = this.getRules();\n }\n var ruleCondtion = currentRule.condition;\n var notCondition = currentRule.not;\n var ruleColl = extend([], currentRule.rules, [], true);\n var rule = !isNullOrUndefined(currentRule.isLocked) ?\n this.getRuleCollection({ condition: ruleCondtion, rules: ruleColl, not: notCondition, isLocked: currentRule.isLocked }, true) :\n this.getRuleCollection({ condition: ruleCondtion, rules: ruleColl, not: notCondition }, true);\n this.isValueEmpty = false;\n return rule;\n };\n QueryBuilder.prototype.getRuleCollection = function (rule, isValidRule) {\n if (isNullOrUndefined(rule)) {\n return null;\n }\n var orgRule;\n if (rule.rules && rule.rules.length && (Object.keys(rule.rules[0]).length > 6 || isValidRule)) {\n var jLen = rule.rules.length;\n for (var j = 0; j < jLen; j++) {\n orgRule = rule.rules[j];\n orgRule = this.getRuleCollection(orgRule, isValidRule);\n rule.rules[j] = orgRule;\n if (Object.keys(orgRule).length < 1 && isValidRule) {\n rule.rules.splice(j, 1);\n j--;\n jLen--;\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var customObj = rule.custom;\n if ((rule.field && rule.field !== '') && (isNullOrUndefined(customObj) || (customObj && (customObj.type !== 'question' &&\n customObj.type !== 'answer')))) {\n if (rule.operator) {\n if (rule.operator.toString().indexOf('null') > -1 || rule.operator.toString().indexOf('empty') > -1) {\n rule.value = null;\n }\n }\n if ((this.isRefreshed && this.enablePersistence) || (rule.field !== '' && rule.operator !== '' &&\n (this.isValueEmpty ? rule.value !== '' && rule.value !== undefined : rule.value !== undefined)) ||\n (customObj && customObj.isQuestion)) {\n var condition = rule.condition;\n var lockedRule = rule.isLocked;\n rule = { 'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value };\n if (!isNullOrUndefined(lockedRule)) {\n rule.isLocked = lockedRule;\n }\n if (condition) {\n rule.condition = condition;\n }\n if (customObj) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rule.custom = customObj;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((rule.operator === 'in' || rule.operator === 'notin') && rule.value && rule.value.length === 0) {\n rule = {};\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((rule.operator === 'between' || rule.operator === 'notbetween') && Array.isArray(rule.value) && (rule.value.length < 2 || rule.value.some(function (val) { return val === '' || val === null; }))) {\n rule = {};\n }\n }\n else {\n rule = {};\n }\n }\n else {\n if (customObj && (customObj.type === 'question' || customObj.type === 'answer')) {\n var notValue = rule.not;\n rule = { 'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value,\n 'condition': rule.condition, 'rules': rule.rules\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rule.custom = customObj;\n if (this.enableNotCondition) {\n rule.not = notValue;\n }\n }\n else if ((isNullOrUndefined(rule.condition)) && isNullOrUndefined(rule.rules)) {\n rule = {};\n }\n else {\n var isLocked = rule.isLocked;\n if (this.enableNotCondition) {\n rule = { 'condition': rule.condition, 'rules': rule.rules, 'not': rule.not };\n }\n else {\n rule = { 'condition': rule.condition, 'rules': rule.rules };\n }\n if (!isNullOrUndefined(isLocked)) {\n rule.isLocked = isLocked;\n }\n if (customObj) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rule.custom = customObj;\n }\n if (rule.rules && rule.rules.length === 0) {\n rule = {};\n }\n }\n }\n return rule;\n };\n /**\n * Set the rule or rules collection.\n *\n * @param {RuleModel} rule - 'rule' to be passed to set rules.\n * @returns {void}.\n */\n QueryBuilder.prototype.setRules = function (rule) {\n var mRules = extend({}, rule, {}, true);\n if (this.headerTemplate) {\n this.setGroupRules(mRules, true);\n }\n else {\n this.setGroupRules(mRules);\n }\n };\n /**\n * Gets the rule or rule collection.\n *\n * @returns {object} - Rule or rule collection\n */\n QueryBuilder.prototype.getRules = function () {\n var rule;\n if (this.enableNotCondition) {\n rule = { condition: this.rule.condition, rules: this.rule.rules, not: this.rule.not };\n }\n else {\n rule = { condition: this.rule.condition, rules: this.rule.rules };\n }\n if (!isNullOrUndefined(this.rule.isLocked)) {\n rule.isLocked = this.rule.isLocked;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.rule.custom) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rule.custom = this.rule.custom;\n }\n return rule;\n };\n /**\n * Gets the rule.\n *\n * @param {string | HTMLElement} elem - 'elem' to be passed to get rule.\n * @returns {object} - Rule\n */\n QueryBuilder.prototype.getRule = function (elem) {\n var ruleElem;\n var ruleId;\n var index = 0;\n if (elem instanceof HTMLElement) {\n ruleElem = closest(elem, '.e-rule-container');\n }\n else {\n ruleId = this.element.id + '_' + elem;\n ruleElem = document.getElementById(ruleId);\n }\n if (isNullOrUndefined(ruleElem)) {\n return null;\n }\n var groupElem = closest(ruleElem, '.e-group-container');\n var rule = this.getParentGroup(groupElem);\n while (ruleElem.previousElementSibling !== null) {\n ruleElem = ruleElem.previousElementSibling;\n if (!this.enableSeparateConnector || (this.enableSeparateConnector &&\n ((!this.headerTemplate && !ruleElem.classList.contains('e-btn-group')) ||\n this.headerTemplate && (ruleElem.classList.contains('e-rule-container') ||\n ruleElem.classList.contains('e-group-container'))))) {\n index++;\n }\n }\n return rule.rules[index];\n };\n /**\n * Gets the group.\n *\n * @param {string | Element} target - 'target' to be passed to get group.\n * @returns {object} -Group\n */\n QueryBuilder.prototype.getGroup = function (target) {\n if (target instanceof Element && target.className.indexOf('e-group-container') < 1) {\n target = closest(target, '.e-group-container');\n }\n var groupId = (target instanceof Element) ? target.id : this.element.id + '_' + target;\n var rule = this.getParentGroup(groupId);\n return rule;\n };\n /**\n * Deletes the group or groups based on the group ID.\n *\n * @param {string[]} groupIdColl - 'groupIdColl' to be passed to delete groups.\n * @returns {void}\n */\n QueryBuilder.prototype.deleteGroups = function (groupIdColl) {\n var i;\n var len = groupIdColl.length;\n var groupID;\n for (i = 0; i < len; i++) {\n if (groupIdColl[i] === 'group0') {\n continue;\n }\n groupID = this.element.id + '_' + groupIdColl[i];\n this.deleteGroup(document.getElementById(groupID));\n }\n };\n /**\n * Return the Query from current rules collection.\n *\n * @returns {Promise} - Query from current rules collection\n * @blazorType object\n */\n QueryBuilder.prototype.getFilteredRecords = function () {\n var predicate = this.getPredicate(this.getValidRules(this.rule));\n var dataManagerQuery = isNullOrUndefined(predicate) ? new Query() : new Query().where(predicate);\n return this.dataManager.executeQuery(dataManagerQuery);\n };\n /**\n * Deletes the rule or rules based on the rule ID.\n *\n * @param {string[]} ruleIdColl - 'ruleIdColl' to be passed to delete rules.\n * @returns {void}.\n */\n QueryBuilder.prototype.deleteRules = function (ruleIdColl) {\n var i;\n var len = ruleIdColl.length;\n var ruleID;\n for (i = 0; i < len; i++) {\n ruleID = this.element.id + '_' + ruleIdColl[i];\n this.deleteRule(document.getElementById(ruleID));\n }\n };\n /**\n * Gets the query for Data Manager.\n *\n * @param {RuleModel} rule - 'rule' to be passed to get query.\n * @returns {string} - Query for Data Manager\n */\n QueryBuilder.prototype.getDataManagerQuery = function (rule) {\n var predicate = this.getPredicate(rule);\n var query;\n var fields = [];\n for (var i = 0, len = Object.keys(this.columns); i < len.length; i++) {\n fields.push(this.columns[i].field);\n }\n if (rule.rules.length) {\n query = new Query().select(fields).where(predicate);\n }\n else {\n query = new Query().select(fields);\n }\n return query;\n };\n /**\n * Get the predicate from collection of rules.\n *\n * @param {RuleModel} rule - 'rule' to be passed to get predicate.\n * @returns {Predicate} - Predicate from collection of rules\n */\n QueryBuilder.prototype.getPredicate = function (rule) {\n var ruleColl = rule.rules;\n var pred;\n var pred2;\n var ruleValue;\n var ignoreCase = false;\n var column;\n if (!ruleColl) {\n return pred;\n }\n for (var i = 0, len = ruleColl.length; i < len; i++) {\n var operator = ruleColl[i].operator;\n if (operator === 'notstartswith') {\n operator = 'doesnotstartwith';\n }\n else if (operator === 'notendswith') {\n operator = 'doesnotendwith';\n }\n else if (operator === 'notcontains') {\n operator = 'doesnotcontain';\n }\n var keys = Object.keys(ruleColl[i]);\n ignoreCase = false;\n if (keys.indexOf('rules') > -1 && ruleColl[i].rules) {\n pred2 = this.getPredicate(ruleColl[i]);\n if (pred2) {\n if (pred) {\n if (rule.condition === 'and') {\n pred = pred.and(pred2);\n }\n else {\n pred = pred.or(pred2);\n }\n }\n else {\n pred = pred2;\n }\n }\n }\n else if (!isNullOrUndefined(operator) && !isNullOrUndefined(operator.length)) {\n var oper = ruleColl[i].operator.toLowerCase();\n var isDateFilter = false;\n var dateOperColl = ['equal', 'notequal', 'greaterthan', 'greaterthanorequal', 'lessthan', 'lessthanorequal'];\n if (ruleColl[i].type === 'string') {\n ignoreCase = this.matchCase ? false : true;\n }\n if (ruleColl[i].type === 'date' && dateOperColl.indexOf(oper) > -1) {\n ignoreCase = true;\n }\n column = this.getColumn(ruleColl[i].field);\n if (oper.indexOf('null') > -1 || oper.indexOf('empty') > -1) {\n ruleColl[i].value = null;\n }\n else if (ruleColl[i].type === 'date' && !(ruleColl[i].value instanceof Array)) {\n var format = this.getFormat(column.format);\n if (!isNullOrUndefined(ruleColl[i].value)) {\n ruleValue = this.getDate(ruleColl[i].value, format);\n if (dateOperColl.indexOf(oper) > -1 && !this.isTime(ruleColl[i].value)) {\n isDateFilter = true;\n }\n }\n else {\n ruleValue = null;\n }\n }\n else {\n ruleValue = ruleColl[i].value;\n }\n if (i === 0) {\n if (isDateFilter || (oper.indexOf('in') > -1 || oper.indexOf('between') > -1 || oper.indexOf('null') > -1 ||\n oper.indexOf('empty') > -1) && (oper.indexOf('contain') < 0)) {\n pred = isDateFilter ? this.datePredicate(ruleColl[i], ruleValue) :\n this.arrayPredicate(ruleColl[i]);\n }\n else {\n var value = ruleValue;\n if (value !== '') {\n pred = new Predicate(ruleColl[i].field, operator, ruleValue, ignoreCase);\n }\n }\n }\n else {\n if (isDateFilter || (oper.indexOf('in') > -1 || oper.indexOf('between') > -1 ||\n oper.indexOf('null') > -1 || oper.indexOf('empty') > -1) && oper.indexOf('contain') < 0) {\n pred = isDateFilter ? this.datePredicate(ruleColl[i], ruleValue, pred, rule.condition) :\n this.arrayPredicate(ruleColl[i], pred, rule.condition);\n }\n else {\n if (rule.condition === 'and') {\n var value = ruleValue;\n if (pred && value !== '') {\n pred\n = pred.and(ruleColl[i].field, operator, ruleValue, ignoreCase);\n }\n else if (value !== '') {\n pred = new Predicate(ruleColl[i].field, operator, ruleValue, ignoreCase);\n }\n }\n else {\n var value = ruleValue;\n if (pred && value !== '') {\n pred = pred.or(ruleColl[i].field, operator, ruleValue, ignoreCase);\n }\n else if (value !== '') {\n pred = new Predicate(ruleColl[i].field, operator, ruleValue, ignoreCase);\n }\n }\n }\n }\n }\n }\n if (this.dataSource instanceof DataManager) {\n if (!isNullOrUndefined(pred) && (pred.operator === 'isnull' || pred.operator === 'isnotnull')) {\n pred.operator = pred.operator === 'isnull' ? 'equal' : 'notequal';\n }\n }\n return pred;\n };\n QueryBuilder.prototype.getLocale = function () {\n var gregorianFormat = '.dates.calendars.gregorian.days.format.short';\n var localeString = this.locale;\n var mainVal = 'main.';\n var cultureObj = getValue(mainVal + '' + this.locale + gregorianFormat, cldrData);\n if (!cultureObj) {\n localeString = 'en';\n }\n return localeString;\n };\n QueryBuilder.prototype.getColumn = function (field, col) {\n var columns = this.columns;\n var column;\n columns = col ? col : columns;\n for (var i = 0, iLen = columns.length; i < iLen; i++) {\n if (columns[i].field === field) {\n column = columns[i];\n break;\n }\n else if (columns[i].columns) {\n column = this.getColumn(field, columns[i].columns);\n if (column) {\n break;\n }\n }\n else if (field && field.indexOf(this.separator) > -1) {\n if (this.separator !== '' && columns[i].field === field.split(this.separator)[0]) {\n column = columns[i];\n break;\n }\n }\n }\n return column;\n };\n /* eslint-disable */\n /**\n * Return the operator bound to the column.\n *\n * @returns {[key: string]: Object}[] - Operator bound to the column\n */\n /* eslint-enable */\n QueryBuilder.prototype.getOperators = function (field) {\n var column = this.getColumn(field);\n return column.operators;\n };\n QueryBuilder.prototype.setTime = function (date, isStart) {\n if (isStart) {\n date.setHours(0, 0, 0);\n }\n else {\n date.setHours(23, 59, 59);\n }\n return date;\n };\n QueryBuilder.prototype.datePredicate = function (ruleColl, value, predicate, condition) {\n var pred;\n var startDate = this.setTime(new Date(value.getTime()), true);\n var endDate = this.setTime(value);\n switch (ruleColl.operator) {\n case 'equal':\n pred = new Predicate(ruleColl.field, 'greaterthanorequal', startDate);\n pred = pred.and(ruleColl.field, 'lessthanorequal', endDate);\n break;\n case 'notequal':\n pred = new Predicate(ruleColl.field, 'lessthan', startDate);\n pred = pred.or(ruleColl.field, 'greaterthan', endDate);\n break;\n case 'greaterthan':\n pred = new Predicate(ruleColl.field, 'greaterthan', endDate);\n break;\n case 'greaterthanorequal':\n pred = new Predicate(ruleColl.field, 'greaterthanorequal', startDate);\n break;\n case 'lessthan':\n pred = new Predicate(ruleColl.field, 'lessthan', startDate);\n break;\n case 'lessthanorequal':\n pred = new Predicate(ruleColl.field, 'lessthanorequal', endDate);\n break;\n }\n if (pred) {\n if (predicate) {\n if (condition === 'and') {\n predicate = predicate.and(pred);\n }\n else if (condition === 'or') {\n predicate = predicate.or(pred);\n }\n }\n else {\n predicate = pred;\n }\n }\n return predicate;\n };\n QueryBuilder.prototype.arrayPredicate = function (ruleColl, predicate, condition) {\n var value = ruleColl.value;\n var operator = ruleColl.operator.toString();\n var nullValue = ruleColl.value;\n var pred;\n var column = this.getColumn(ruleColl.field);\n var format = this.getFormat(column.format);\n if (operator.indexOf('null') > -1 || operator.indexOf('empty') > -1) {\n switch (operator) {\n case 'isnull':\n pred = new Predicate(ruleColl.field, 'isnull', nullValue);\n break;\n case 'isnotnull':\n pred = new Predicate(ruleColl.field, 'isnotnull', nullValue);\n break;\n case 'isempty':\n pred = new Predicate(ruleColl.field, 'equal', '');\n break;\n case 'isnotempty':\n pred = new Predicate(ruleColl.field, 'notequal', '');\n break;\n }\n }\n if (!(operator.indexOf('null') > -1 || operator.indexOf('empty') > -1)) {\n for (var j = 0, jLen = value.length; j < jLen; j++) {\n if (value[j] !== '' || ((operator === 'in' || operator === 'notin') && column.type === 'string')) {\n if (j === 0) {\n var gte = 'greaterthanorequal';\n switch (operator) {\n case 'between':\n if (column.type !== 'date') {\n pred = new Predicate(ruleColl.field, gte, value[j]);\n }\n else {\n pred = new Predicate(ruleColl.field, gte, value[j] ?\n (this.isTime(value[j]) ? this.getDate(value[j], format) :\n this.setTime(this.getDate(value[j], format), true)) : null);\n }\n break;\n case 'notbetween':\n if (column.type === 'date') {\n pred = new Predicate(ruleColl.field, 'lessthan', value[j] ?\n (this.isTime(value[j]) ? this.getDate(value[j], format) :\n this.setTime(this.getDate(value[j], format), true)) : null);\n }\n else {\n pred = new Predicate(ruleColl.field, 'lessthan', value[j]);\n }\n break;\n case 'in':\n pred = new Predicate(ruleColl.field, 'equal', value[j]);\n break;\n case 'notin':\n pred = new Predicate(ruleColl.field, 'notequal', value[j]);\n break;\n }\n }\n else {\n var gt = 'greaterthan';\n switch (ruleColl.operator) {\n case 'between':\n if (column.type === 'date') {\n pred = pred.and(ruleColl.field, 'lessthanorequal', value[j] ?\n (this.isTime(value[j]) ? this.getDate(value[j], format) :\n this.setTime(this.getDate(value[j], format))) : value[j]);\n }\n else {\n pred = pred.and(ruleColl.field, 'lessthanorequal', value[j]);\n }\n break;\n case 'notbetween':\n if (column.type === 'date') {\n pred = pred.or(ruleColl.field, gt, value[j] ?\n (this.isTime(value[j]) ? this.getDate(value[j], format) :\n this.setTime(this.getDate(value[j], format))) : value[j]);\n }\n else {\n pred = pred.or(ruleColl.field, 'greaterthan', value[j]);\n }\n break;\n case 'in':\n pred = pred.or(ruleColl.field, 'equal', value[j]);\n break;\n case 'notin':\n pred = pred.and(ruleColl.field, 'notequal', value[j]);\n break;\n }\n }\n }\n }\n }\n if (pred) {\n if (predicate) {\n if (condition === 'and') {\n predicate = predicate.and(pred);\n }\n else if (condition === 'or') {\n predicate = predicate.or(pred);\n }\n }\n else {\n predicate = pred;\n }\n }\n return predicate;\n };\n QueryBuilder.prototype.getDate = function (value, format) {\n var currDate = this.intl.parseDate(value, format);\n if (value.indexOf(':') > -1 && (value.indexOf('/') < 0 && value.indexOf(',') < 0\n && value.indexOf('-') < 0)) {\n currDate = new Date();\n currDate.setHours(parseInt(value.split(':')[0], 10));\n currDate.setMinutes(parseInt(value.split(':')[1], 10));\n if (value.split(':')[2]) {\n currDate.setSeconds(parseInt(value.split(':')[2], 10));\n }\n }\n return currDate;\n };\n QueryBuilder.prototype.isTime = function (value) {\n if (value && value.indexOf(':') > -1) {\n return true;\n }\n return false;\n };\n QueryBuilder.prototype.importRules = function (rule, parentElem, isReset, not, isRoot) {\n if (!isReset) {\n parentElem = this.renderGroup(rule, rule.condition, parentElem, not);\n }\n else {\n if (rule.rules && rule.rules.length > 1 && !this.headerTemplate) {\n // enable/disable conditions when rule group is added\n var orElem = parentElem.querySelector('.e-btngroup-or');\n var andElem = parentElem.querySelector('.e-btngroup-and');\n if (this.enableSeparateConnector && parentElem.previousElementSibling) {\n orElem = parentElem.previousElementSibling.querySelector('.e-btngroup-or');\n andElem = parentElem.previousElementSibling.querySelector('.e-btngroup-and');\n }\n orElem.disabled = false;\n andElem.disabled = false;\n if (this.enableSeparateConnector) {\n var elem = parentElem.previousElementSibling;\n while (elem && !elem.classList.contains('e-rule-container')) {\n if (elem.classList.contains('e-group-container')) {\n elem = elem.querySelectorAll('.e-rule-container')[elem.querySelectorAll('.e-rule-container').length - 1];\n break;\n }\n elem = elem.previousElementSibling;\n }\n if (elem && elem.classList.contains('e-rule-container')) {\n var ruleID = elem.id.replace(this.element.id + '_', '');\n var prevRule = this.getRule(ruleID);\n if (prevRule.condition === 'or') {\n orElem.checked = true;\n }\n else {\n andElem.checked = true;\n }\n }\n }\n else {\n if (rule.condition === 'or') {\n orElem.checked = true;\n }\n else {\n andElem.checked = true;\n }\n }\n }\n else {\n // enable/disable conditions when rule condition is added\n this.disableRuleCondition(parentElem);\n }\n if (this.headerTemplate && isRoot) {\n parentElem = this.renderGroup(rule, rule.condition, this.element, rule.not, isRoot);\n }\n if (this.enableNotCondition && !this.headerTemplate) {\n var tglBtnElem = parentElem.querySelector('.e-qb-toggle');\n if (rule.not) {\n addClass([tglBtnElem], 'e-active-toggle');\n }\n else {\n removeClass([tglBtnElem], 'e-active-toggle');\n }\n }\n }\n if (rule.rules && rule.rules.length === 0 && this.headerTemplate) {\n rule.rules[0] = { 'label': '', 'field': '', 'operator': '', 'type': '', 'value': '' };\n }\n var ruleColl = rule.rules;\n if (!isNullOrUndefined(ruleColl)) {\n for (var i = 0, len = ruleColl.length; i < len; i++) {\n var keys = Object.keys(ruleColl[i]);\n if (!isNullOrUndefined(ruleColl[i].rules) && keys.indexOf('rules') > -1 && (ruleColl[i].rules.length !== 0)) {\n if (this.element.querySelectorAll('.e-group-container').length > this.maxGroupCount) {\n return null;\n }\n parentElem = this.renderGroup(ruleColl[i], ruleColl[i].condition, parentElem, ruleColl[i].not);\n parentElem = this.importRules(ruleColl[i], parentElem, true);\n }\n else if (!isNullOrUndefined(ruleColl[i].rules)) {\n parentElem = this.renderGroup(ruleColl[i], ruleColl[i].condition, parentElem, ruleColl[i].not);\n var andElem = parentElem.querySelector('.e-btngroup-and');\n var orElem = parentElem.querySelector('.e-btngroup-or');\n andElem.disabled = true;\n orElem.disabled = true;\n }\n else {\n this.renderRule(ruleColl[i], parentElem);\n }\n if (!isNullOrUndefined(ruleColl[i].rules) && ruleColl[i].isLocked) {\n var lockGrpTarget = parentElem.querySelector('.e-rule-list').children[i].querySelector('.e-lock-grp-btn');\n this.groupLock(lockGrpTarget);\n }\n }\n }\n if (parentElem) {\n parentElem = closest(parentElem, '.e-rule-list');\n }\n if (parentElem) {\n parentElem = closest(parentElem, '.e-group-container');\n }\n return parentElem;\n };\n QueryBuilder.prototype.renderGroup = function (rule, condition, parentElem, not, isRoot) {\n this.addGroupElement(true, parentElem, condition, false, not, isRoot, rule); //Child group\n var element = parentElem.querySelectorAll('.e-group-container');\n var cloneElem = parentElem.querySelector('.e-rule-list').children;\n if (this.showButtons.cloneGroup && this.cloneGrpBtnClick && this.isMiddleGroup) {\n this.isMiddleGroup = false;\n this.cloneGrpBtnClick = false;\n var index = 0;\n var tempGroupIndex = this.groupIndex + 1;\n if (this.enableSeparateConnector) {\n for (var i = 0; i < tempGroupIndex; i++) {\n if (cloneElem[i].classList.contains('e-rule-container')) {\n tempGroupIndex++;\n index++;\n }\n }\n }\n return cloneElem[this.groupIndex + index + 1]; // group added in the middle\n }\n else if (this.showButtons.cloneGroup && this.cloneGrpBtnClick && this.isLastGroup) {\n this.isLastGroup = false;\n this.cloneGrpBtnClick = false;\n return cloneElem[cloneElem.length - 1]; // group added in the end\n }\n else {\n return element[element.length - 1];\n }\n };\n QueryBuilder.prototype.renderRule = function (rule, parentElem) {\n if (parentElem.className.indexOf('e-group-container') > -1) {\n this.addRuleElement(parentElem, rule); //Create rule\n }\n else {\n this.addRuleElement(parentElem.querySelector('.e-group-container'), rule); //Create group\n }\n };\n QueryBuilder.prototype.enableReadonly = function () {\n var target = this.element;\n var elem = target.querySelectorAll('.e-dropdownlist, .e-dropdowntree, .e-numerictextbox, .e-textbox, .e-datepicker, .e-multiselect .e-lib, .e-radio');\n for (var i = 0; i < elem.length; i++) {\n if (elem[i].classList.contains('e-dropdownlist')) {\n var dropDownObj = getInstance(elem[i], DropDownList);\n dropDownObj.readonly = this.isReadonly;\n }\n else if (elem[i].classList.contains('e-dropdowntree')) {\n var dropDownTreeObj = getComponent(elem[i], 'dropdowntree');\n dropDownTreeObj.readonly = this.isReadonly;\n }\n else if (elem[i].classList.contains('e-numerictextbox')) {\n var numericTextBoxObj = getInstance(elem[i], NumericTextBox);\n numericTextBoxObj.readonly = this.isReadonly;\n }\n else if (elem[i].classList.contains('e-textbox')) {\n var textBoxObj = getInstance(elem[i], TextBox);\n textBoxObj.readonly = this.isReadonly;\n }\n else if (elem[i].classList.contains('e-datepicker')) {\n var datePickerObj = getInstance(elem[i], DatePicker);\n datePickerObj.readonly = this.isReadonly;\n }\n else if (elem[i].classList.contains('e-multiselect')) {\n var multiSelectObj = getInstance(elem[i], MultiSelect);\n multiSelectObj.readonly = this.isReadonly;\n }\n else if (elem[i].classList.contains('e-radio')) {\n var radioButtonObj = getInstance(elem[i], RadioButton);\n if (!radioButtonObj.checked) {\n if (this.isReadonly) {\n elem[i].parentElement.style.display = 'none';\n }\n else {\n elem[i].parentElement.style.display = 'inherit';\n }\n }\n }\n }\n var deleteGroupElems = this.element.querySelectorAll('.e-deletegroup');\n var addRuleGroupElems = this.element.querySelectorAll('.e-addrulegroup');\n var removeRuleElems = this.element.querySelectorAll('.e-removerule');\n if (!this.isReadonly && this.ruleElem.classList.contains('e-readonly')) {\n this.ruleElem.classList.remove('e-readonly');\n }\n var elems = [deleteGroupElems, addRuleGroupElems, removeRuleElems];\n for (var i = 0; i < elems.length; i++) {\n elems[i].forEach(function (elem) {\n if (elem.classList.contains('e-readonly')) {\n elem.classList.remove('e-readonly');\n }\n else {\n elem.classList.add('e-readonly');\n }\n });\n }\n this.enableBtnGroup();\n };\n QueryBuilder.prototype.enableBtnGroup = function () {\n var _this = this;\n var elems = this.element.querySelectorAll('.e-btngroup-and-lbl, .e-btngroup-or-lbl, .e-qb-toggle');\n var not = false;\n elems.forEach(function (elem) {\n if (elem.classList.contains('e-qb-toggle') && !elem.classList.contains('e-active-toggle')\n && !elem.classList.contains('e-readonly')) {\n elem.classList.add('e-readonly');\n not = false;\n }\n else if (elem.classList.contains('e-qb-toggle') && elem.classList.contains('e-not-readonly')) {\n elem.classList.remove('e-not-readonly');\n }\n else if (elem.classList.contains('e-qb-toggle') && elem.classList.contains('e-readonly')) {\n elem.classList.remove('e-readonly');\n }\n else if (elem.classList.contains('e-active-toggle')) {\n elem.classList.add('e-not-readonly');\n not = true;\n }\n else if (elem.previousElementSibling.checked || elem.classList.contains('e-readonly')) {\n elem.classList.remove('e-readonly');\n if (not) {\n if (elem.textContent === 'AND') {\n elem.classList.add('e-readonly-and');\n }\n else {\n elem.classList.add('e-readonly-or');\n }\n }\n else {\n if (elem.textContent === 'AND' && _this.isReadonly) {\n elem.classList.remove('e-not');\n elem.classList.add('e-readonly-and');\n }\n else {\n if (_this.enableNotCondition) {\n elem.classList.add('e-not');\n }\n elem.classList.remove('e-readonly-and');\n }\n if (elem.textContent === 'OR' && _this.isReadonly) {\n elem.classList.add('e-readonly-or-not');\n }\n else {\n elem.classList.remove('e-readonly-or-not');\n }\n }\n }\n else if (elem.classList.contains('e-btn-disable')) {\n // do nothing\n }\n else {\n elem.classList.add('e-readonly');\n }\n });\n };\n QueryBuilder.prototype.isDateFunction = function (value) {\n var dateFunc = ['date', 'time', 'day', 'week', 'month', 'year', 'hour', 'minute', 'second', 'now', 'quarter', 'period', 'extract'];\n for (var i = 0, len = dateFunc.length; i < len; i++) {\n if (value.toLowerCase().indexOf(dateFunc[i]) > -1) {\n return true;\n }\n }\n return false;\n };\n QueryBuilder.prototype.getSqlString = function (rules, enableEscape, queryStr, sqlLocale) {\n var isRoot = false;\n if (!queryStr && queryStr !== '') {\n queryStr = '';\n isRoot = true;\n }\n else {\n queryStr += '(';\n }\n var condition = rules.condition;\n if (rules.not) {\n var rulesNotCondition = void 0;\n if (isRoot) {\n rulesNotCondition = sqlLocale ? this.l10n.getConstant('NOT').toUpperCase() + ' (' : 'NOT (';\n queryStr += rulesNotCondition;\n }\n else {\n rulesNotCondition = sqlLocale ? ' ' + this.l10n.getConstant('NOT').toUpperCase() + ' (' : ' NOT (';\n queryStr += rulesNotCondition;\n }\n }\n if (rules.rules) {\n for (var j = 0, jLen = rules.rules.length; j < jLen; j++) {\n if (rules.rules[j].rules) {\n queryStr = this.getSqlString(rules.rules[j], enableEscape, queryStr, sqlLocale);\n if (this.enableSeparateConnector) {\n condition = rules.rules[j].condition;\n }\n }\n else {\n var rule = rules.rules[j];\n var valueStr = '';\n var ruleOpertor = sqlLocale ? this.sqlOperators[rule.operator] : this.operators[rule.operator];\n if (rule.value instanceof Array) {\n if (rule.operator.toString().indexOf('between') > -1) {\n var ruleCondition = sqlLocale ? ' ' + this.l10n.getConstant('AND').toUpperCase() + ' ' : ' ' + 'AND' + ' ';\n if (rule.type === 'date' && !this.isDateFunction(rule.value[0])) {\n valueStr += '\"' + rule.value[0] + '\"' + ruleCondition + '\"' + rule.value[1] + '\"';\n }\n else {\n valueStr += rule.value[0] + ruleCondition + rule.value[1];\n }\n }\n else {\n if (typeof rule.value[0] === 'string' && rule.value !== null) {\n valueStr += '(\"' + rule.value[0] + '\"';\n for (var k = 1, kLen = rule.value.length; k < kLen; k++) {\n valueStr += ',\"' + rule.value[k] + '\"';\n }\n valueStr += ')';\n }\n else {\n valueStr += '(' + rule.value + ')';\n }\n }\n }\n else {\n if (rule.operator.toString().indexOf('startswith') > -1) {\n valueStr += rule.value ? '(\"' + rule.value + '%\")' : '(' + rule.value + ')';\n }\n else if (rule.operator.toString().indexOf('endswith') > -1) {\n valueStr += rule.value ? '(\"%' + rule.value + '\")' : '(' + rule.value + ')';\n }\n else if (rule.operator.toString().indexOf('contains') > -1) {\n valueStr += rule.value ? '(\"%' + rule.value + '%\")' : '(' + rule.value + ')';\n }\n else {\n if (rule.type === 'number' || typeof rule.value === 'boolean' ||\n (rule.value === null && (rule.operator.toString().indexOf('empty') < -1))) {\n valueStr += rule.value;\n }\n else if (rule.operator.toString().indexOf('empty') > -1) {\n valueStr += '\"\"';\n }\n else {\n valueStr += '\"' + rule.value + '\"';\n }\n }\n }\n if (rule.operator.toString().indexOf('null') > -1) {\n if (enableEscape) {\n rule.field = '`' + rule.field + '`';\n }\n else {\n if (rule.field.indexOf(' ') > -1) {\n rule.field = '\"' + rule.field + '\"';\n }\n }\n queryStr += rule.field + ' ' + ruleOpertor;\n }\n else {\n var custOper = ruleOpertor;\n if (rule.operator === 'isempty') {\n custOper = '=';\n }\n else if (rule.operator === 'isnotempty') {\n custOper = '!=';\n }\n if (enableEscape) {\n rule.field = '`' + rule.field + '`';\n }\n else {\n if (rule.field.indexOf(' ') > -1) {\n rule.field = '\"' + rule.field + '\"';\n }\n }\n queryStr += rule.field + ' ' + custOper + ' ' + valueStr;\n }\n if (rule.condition && rule.condition !== '') {\n condition = rule.condition;\n }\n }\n if (j !== jLen - 1) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var rule = rules.rules[j];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (condition === '' || (rule && rule.condition !== '' && rule.custom && rule.custom.isCustom)) {\n condition = rule.condition;\n }\n if (condition) {\n condition = sqlLocale ? this.l10n.getConstant(condition.toUpperCase()).toUpperCase() : condition.toUpperCase();\n queryStr += ' ' + condition + ' ';\n }\n }\n }\n }\n if (!isRoot) {\n queryStr += ')';\n }\n if (rules.not) {\n queryStr += ')';\n }\n return queryStr;\n };\n /**\n * Sets the rules from the sql query.\n *\n * @param {string} sqlString - 'sql String' to be passed to set the rule.\n * @param {boolean} sqlLocale - Optional. Set `true` if Localization for Sql query.\n * @returns {void}\n */\n QueryBuilder.prototype.setRulesFromSql = function (sqlString, sqlLocale) {\n sqlString = sqlString.replace(/`/g, '');\n var ruleModel = this.getRulesFromSql(sqlString, sqlLocale);\n this.setRules({ condition: ruleModel.condition, not: ruleModel.not, rules: ruleModel.rules });\n };\n /**\n * Get the rules from SQL query.\n *\n * @param {string} sqlString - 'sql String' to be passed to get the rule.\n * @param {boolean} sqlLocale - Set `true` if Localization for Sql query.\n * @returns {object} - Rules from SQL query\n */\n QueryBuilder.prototype.getRulesFromSql = function (sqlString, sqlLocale) {\n this.parser = [];\n this.sqlParser(sqlString, sqlLocale);\n this.setProperties({ rule: { condition: 'and', not: false, rules: [] } }, true);\n var rule = this.processParser(this.parser, this.rule, [0], sqlLocale);\n if (this.enableNotCondition) {\n return { condition: rule.condition, not: rule.not, rules: rule.rules };\n }\n else {\n return { condition: rule.condition, rules: rule.rules };\n }\n };\n /**\n * Gets the sql query from rules.\n *\n * @param {RuleModel} rule - 'rule' to be passed to get the sql.\n * @param {boolean} allowEscape - Set `true` if it exclude the escape character.\n * @param {boolean} sqlLocale - Set `true` if Localization for Sql query.\n * @returns {string} - Sql query from rules.\n */\n QueryBuilder.prototype.getSqlFromRules = function (rule, allowEscape, sqlLocale) {\n if (!rule) {\n rule = this.getValidRules();\n }\n rule = this.getRuleCollection(rule, false);\n var sqlString = this.getSqlString(this.getValidRules(rule), allowEscape, null, sqlLocale).replace(/\"/g, '\\'');\n return sqlString;\n };\n /**\n * Gets the parameter SQL query from rules.\n *\n * @param {RuleModel} rule – Specify the rule to be passed to get the parameter sql string.\n * @returns {ParameterizedSql} – Parameterized SQL query from rules.\n */\n QueryBuilder.prototype.getParameterizedSql = function (rule) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.moduleLoader.loadedModules.length) {\n if (!rule) {\n rule = this.getValidRules();\n }\n var obj = { sql: null };\n this.notify('query-library', { prop: 'getParameterSql', onPropertyChange: false, value: { rule: rule, obj: obj } });\n return obj['sql'];\n }\n else {\n console.warn('[WARNING] :: Module \"query-library\" is not available in QueryBuilder component! You either misspelled the module name or forgot to load it.');\n }\n return null;\n };\n /**\n * Sets the rules from the parameter sql query.\n *\n * @param { ParameterizedSql} sqlQuery – Specifies the parameter SQL to be passed to set the rule and load it to the query builder.\n * @returns {void}\n */\n QueryBuilder.prototype.setParameterizedSql = function (sqlQuery) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.moduleLoader.loadedModules.length) {\n var obj = { sql: null };\n this.notify('query-library', { prop: 'convertParamSqlToSql', onPropertyChange: false, value: { sql: sqlQuery, obj: obj } });\n var sql = obj['sql'];\n if (sql) {\n sql = sql.replace(/`/g, '');\n var ruleModel = this.getRulesFromSql(sql);\n this.setRules({ condition: ruleModel.condition, not: ruleModel.not, rules: ruleModel.rules });\n }\n }\n else {\n console.warn('[WARNING] :: Module \"query-library\" is not available in QueryBuilder component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n * Gets the named parameter SQL query from rules.\n *\n * @param {RuleModel} rule – Specify the rule to be passed to get the named parameter SQL string.\n * @returns {ParameterizedNamedSql} – Parameterized Named SQL query from rules.\n */\n QueryBuilder.prototype.getParameterizedNamedSql = function (rule) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.moduleLoader.loadedModules.length) {\n if (!rule) {\n rule = this.getValidRules();\n }\n var obj = { sql: null };\n this.notify('query-library', { prop: 'getNamedParameterSql', onPropertyChange: false, value: { rule: rule, obj: obj } });\n return obj['sql'];\n }\n else {\n console.warn('[WARNING] :: Module \"query-library\" is not available in QueryBuilder component! You either misspelled the module name or forgot to load it.');\n }\n return null;\n };\n /**\n * Sets the rules from the named parameter SQL query.\n *\n * @param { ParameterizedNamedSql } sqlQuery – Specifies the named parameter SQL to be passed to set the rule and load it to the query builder.\n * @returns {void}\n */\n QueryBuilder.prototype.setParameterizedNamedSql = function (sqlQuery) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.moduleLoader.loadedModules.length) {\n var obj = { sql: null };\n this.notify('query-library', { prop: 'convertNamedParamSqlToSql', onPropertyChange: false, value: { sql: sqlQuery, obj: obj } });\n var sql = obj['sql'];\n if (sql) {\n sql = sql.replace(/`/g, '');\n var ruleModel = this.getRulesFromSql(sql);\n this.setRules({ condition: ruleModel.condition, not: ruleModel.not, rules: ruleModel.rules });\n }\n }\n else {\n console.warn('[WARNING] :: Module \"query-library\" is not available in QueryBuilder component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n * Set the rules from Mongo query.\n *\n * @param {string} mongoQuery - 'sql String' to be passed to get the rule.\n * @param {boolean} mongoLocale - Set `true` if Localization for Mongo query.\n * @returns {void}\n */\n QueryBuilder.prototype.setMongoQuery = function (mongoQuery, mongoLocale) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.moduleLoader.loadedModules.length) {\n this.rule = { condition: 'and', not: false, rules: [] };\n this.notify('query-library', { prop: 'mongoParser', onPropertyChange: false, value: { mongoQuery: JSON.parse(mongoQuery), rule: this.rule, mongoLocale: mongoLocale } });\n }\n else {\n console.warn('[WARNING] :: Module \"query-library\" is not available in QueryBuilder component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n * Gets the Mongo query from rules.\n *\n * @param {RuleModel} rule - 'rule' to be passed to get the sql.\n * @returns {object} - Sql query from rules.\n */\n QueryBuilder.prototype.getMongoQuery = function (rule) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.moduleLoader.loadedModules.length) {\n if (!rule) {\n rule = this.getValidRules();\n }\n var obj = { mongoQuery: null };\n this.notify('query-library', { prop: 'getMongoFromRules', onPropertyChange: false, value: { rule: rule, mongoQuery: '', obj: obj } });\n return obj['mongoQuery'];\n }\n else {\n console.warn('[WARNING] :: Module \"query-library\" is not available in QueryBuilder component! You either misspelled the module name or forgot to load it.');\n }\n return '';\n };\n /**\n * Clones the rule based on the rule ID to the specific group.\n *\n * @param {string} ruleID - Specifies the ruleID that needs to be cloned.\n * @param {string} groupID - Specifies the groupID in which the rule to be cloned.\n * @param {number} index - Specifies the index to insert the cloned rule inside the group.\n * @returns {void}\n */\n QueryBuilder.prototype.cloneRule = function (ruleID, groupID, index) {\n var getRule = this.getRule(ruleID.replace(this.element.id + '_', ''));\n var isCloneRule = this.showButtons.cloneRule;\n groupID = groupID.replace(this.element.id + '_', '');\n this.ruleIndex = index;\n this.cloneRuleBtnClick = true;\n this.showButtons.cloneRule = true;\n this.addRules([{\n 'label': getRule.label, 'field': getRule.field, 'type': getRule.type, 'operator': getRule.operator,\n 'value': getRule.value, 'condition': getRule.condition\n }], groupID);\n this.ruleIndex = -1;\n this.cloneRuleBtnClick = false;\n this.showButtons.cloneRule = isCloneRule;\n isCloneRule = false;\n };\n /**\n * Clones the group based on the group ID to the specific group.\n *\n * @param {string} groupID - Specifies the groupID that needs to be cloned.\n * @param {string} parentGroupID - Specifies the parentGroupID in which the group to be cloned.\n * @param {number} index - Specifies the index to insert the cloned group inside the parent group.\n * @returns {void}\n */\n QueryBuilder.prototype.cloneGroup = function (groupID, parentGroupID, index) {\n parentGroupID = parentGroupID.replace(this.element.id + '_', '');\n var group = this.getGroup(parentGroupID);\n var isCloneGroup = this.showButtons.cloneGroup;\n groupID = groupID.replace(this.element.id + '_', '');\n this.groupIndex = index;\n this.cloneGrpBtnClick = true;\n this.showButtons.cloneGroup = true;\n this.addGroups([{ 'condition': group.condition, 'not': group.not, 'rules': group.rules }], groupID);\n this.groupIndex = -1;\n this.cloneGrpBtnClick = false;\n this.showButtons.cloneGroup = isCloneGroup;\n isCloneGroup = false;\n };\n /**\n * Locks the rule based on the rule ID.\n *\n * @param {string} ruleID - Specifies the ruleID that needs to be locked.\n * @returns {void}\n */\n QueryBuilder.prototype.lockRule = function (ruleID) {\n if (ruleID.indexOf(this.element.id) < 0) {\n ruleID = this.element.id + '_' + ruleID;\n }\n var target = document.getElementById(ruleID).querySelectorAll('.e-lock-rule-btn')[0];\n this.ruleLock(target);\n };\n /**\n * Locks the group based on the group ID\n *\n * @param {string} groupID - Specifies the groupID that needs to be locked.\n * @returns {void}\n */\n QueryBuilder.prototype.lockGroup = function (groupID) {\n if (groupID.indexOf(this.element.id) < 0) {\n groupID = this.element.id + '_' + groupID;\n }\n var target = document.getElementById(groupID).querySelectorAll('.e-lock-grp-btn')[0];\n this.groupLock(target);\n };\n QueryBuilder.prototype.sqlParser = function (sqlString, sqlLocale) {\n var st = 0;\n var str;\n do {\n str = sqlString.slice(st);\n st += this.parseSqlStrings(str, sqlLocale);\n } while (str !== '');\n return this.parser;\n };\n QueryBuilder.prototype.parseSqlStrings = function (sqlString, sqlLocale) {\n var operators = ['=', '!=', '<=', '>=', '<', '>'];\n var conditions;\n if (sqlLocale) {\n conditions = [this.l10n.getConstant('AND').toUpperCase(), this.l10n.getConstant('OR').toUpperCase(), this.l10n.getConstant('NOT').toUpperCase()];\n }\n else {\n conditions = ['AND', 'OR', 'NOT'];\n }\n var subOp;\n if (sqlLocale) {\n subOp = [this.l10n.getConstant('In').toUpperCase(), this.l10n.getConstant('NotIn').toUpperCase(),\n this.l10n.getConstant('Like').toUpperCase(), this.l10n.getConstant('NotLike').toUpperCase(),\n this.l10n.getConstant('Between').toUpperCase(), this.l10n.getConstant('NotBetween').toUpperCase(),\n this.l10n.getConstant('IsNull').toUpperCase(), this.l10n.getConstant('IsNotNull').toUpperCase(),\n this.l10n.getConstant('IsEmpty').toUpperCase(), this.l10n.getConstant('IsNotEmpty').toUpperCase()];\n }\n else {\n subOp = ['IN', 'NOT IN', 'LIKE', 'NOT LIKE', 'BETWEEN', 'NOT BETWEEN', 'IS NULL', 'IS NOT NULL', 'IS EMPTY', 'IS NOT EMPTY'];\n }\n var regexStr;\n var regex;\n var matchValue;\n for (var i = 0, iLen = operators.length; i < iLen; i++) {\n regexStr = /^\\w+$/.test(operators[i]) ? '\\\\b' : '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var regExp = RegExp;\n regex = new regExp('^(' + operators[i] + ')' + regexStr, 'ig');\n if (regex.exec(sqlString)) {\n this.parser.push(['Operators', operators[i].toLowerCase()]);\n return operators[i].length;\n }\n }\n var lastPasrser = this.parser[this.parser.length - 1];\n if (!lastPasrser || (lastPasrser && lastPasrser[0] !== 'Literal')) {\n for (var i = 0, iLen = conditions.length; i < iLen; i++) {\n regexStr = /^\\w+$/.test(conditions[i]) ? '\\\\b' : '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var regExp = RegExp;\n regex = new regExp('^(' + conditions[i] + ')' + regexStr, 'ig');\n if (regex.exec(sqlString)) {\n this.parser.push(['Conditions', conditions[i].toLowerCase()]);\n return conditions[i].length;\n }\n }\n }\n for (var i = 0, iLen = subOp.length; i < iLen; i++) {\n regexStr = /^\\w+$/.test(subOp[i]) ? '\\\\b' : '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var regExp = RegExp;\n regex = new regExp('^(' + subOp[i] + ')' + regexStr, 'ig');\n if (regex.exec(sqlString)) {\n this.parser.push(['SubOperators', subOp[i].toLowerCase()]);\n return subOp[i].length;\n }\n }\n //Left Parenthesis\n if (/^\\(/.exec(sqlString)) {\n this.parser.push(['Left', '(']);\n return 1;\n }\n //Right Parenthesis\n if (/^\\)/.exec(sqlString)) {\n this.parser.push(['Right', ')']);\n return 1;\n }\n //Boolean\n if (/^(true|false)/.exec(sqlString)) {\n matchValue = /^(true|false)/.exec(sqlString)[0];\n this.parser.push(['String', matchValue]);\n return matchValue.length;\n }\n //Null\n if (/^null/.exec(sqlString)) {\n matchValue = /^null/.exec(sqlString)[0];\n this.parser.push(['String', null]);\n return matchValue.length;\n }\n if (/^`?([a-z_][a-z0-9_.\\\\[\\]\\\\(\\\\)]{0,}(\\\\:(number|float|string|date|boolean))?)`?/i.exec(sqlString)) {\n matchValue = /^`?([a-z_][a-z0-9_.\\\\[\\]\\\\(\\\\)]{0,}(\\\\:(number|float|string|date|boolean))?)`?/i.exec(sqlString)[1];\n this.parser.push(['Literal', matchValue]);\n return matchValue.length;\n }\n if (this.checkLiteral() && /^'?([a-z_][a-z0-9 _.\\\\[\\]\\\\(\\\\)-]{0,}(\\\\:(number|float|string|date|boolean))?)'?/i.exec(sqlString)) {\n matchValue = /^'?([a-z_][a-z0-9 _.\\\\[\\]\\\\(\\\\)-]{0,}(\\\\:(number|float|string|date|boolean))?)'?/i.exec(sqlString)[1];\n this.parser.push(['Literal', matchValue]);\n return matchValue.length + 2;\n }\n if (this.checkNumberLiteral(sqlString, sqlLocale)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var regExValue = /^[0-9]+(\\.[0-9]+)$/.exec(sqlString);\n if (regExValue) {\n matchValue = regExValue[0];\n this.parser.push(['Literal', matchValue]);\n return matchValue.length;\n }\n }\n //String\n var singleString = this.getSingleQuoteString(sqlString);\n if (singleString !== '') {\n matchValue = singleString;\n if (matchValue[matchValue.length - 2] === '(') {\n var isClosed = false;\n for (var j = matchValue.length; j < sqlString.length; j++) {\n matchValue += sqlString[j];\n if (sqlString[j] === ')') {\n isClosed = true;\n }\n if (isClosed && sqlString[j] === '\\'') {\n break;\n }\n }\n }\n else if (sqlString[matchValue.length] && (sqlString[matchValue.length] !== ')') &&\n !this.checkCondition(sqlString, matchValue)) {\n matchValue = this.combineSingleQuoteString(sqlString, matchValue);\n }\n // end\n this.parser.push(['String', matchValue]);\n return matchValue.length;\n }\n // Double String\n var doubleString = this.getDoubleQuoteString(sqlString);\n if (doubleString !== '') {\n matchValue = doubleString;\n this.parser.push(['DoubleString', matchValue]);\n return matchValue.length;\n }\n //Number\n if (/^\\d*\\.?\\d+/.exec(sqlString)) {\n matchValue = /^\\d*\\.?\\d+/.exec(sqlString)[0];\n this.parser.push(['Number', matchValue]);\n return matchValue.length;\n }\n //Negative Number\n if (/^-?\\d*\\.?\\d+/.exec(sqlString)) {\n matchValue = /^-?\\d*\\.?\\d+/.exec(sqlString)[0];\n this.parser.push(['Number', matchValue]);\n return matchValue.length;\n }\n return 1;\n };\n QueryBuilder.prototype.getDoubleQuoteString = function (sqlString) {\n var start = sqlString.indexOf('\"');\n if (start === 0) {\n var end = sqlString.indexOf('\"', start + 1);\n if (end !== -1) {\n return sqlString.substring(start, end + 1);\n }\n }\n return '';\n };\n QueryBuilder.prototype.checkCondition = function (sqlString, matchValue) {\n if (sqlString.slice(matchValue.length + 1, matchValue.length + 4) === 'AND' ||\n sqlString.slice(matchValue.length + 1, matchValue.length + 3) === 'OR') {\n return true;\n }\n return false;\n };\n QueryBuilder.prototype.getSingleQuoteString = function (sqlString, isBetween) {\n var start = sqlString.indexOf('\\'');\n if ((start !== -1 && isBetween) || (start === 0 && !isBetween)) {\n var end = sqlString.indexOf('\\'', start + 1);\n if (end !== -1) {\n return sqlString.substring(start, end + 1);\n }\n }\n return '';\n };\n QueryBuilder.prototype.combineSingleQuoteString = function (sqlString, matchValue) {\n if (sqlString[matchValue.length] && (sqlString[matchValue.length] !== ')') &&\n !this.checkCondition(sqlString, matchValue) && sqlString[matchValue.length] !== ',') {\n var tempMatchValue = matchValue.substring(0, matchValue.length - 1);\n var tempStr = sqlString.replace(tempMatchValue, '');\n var singleString = this.getSingleQuoteString(tempStr, true);\n if (singleString !== '') {\n var parsedValue = singleString.substring(1, singleString.length);\n matchValue += parsedValue;\n matchValue = this.combineSingleQuoteString(sqlString, matchValue);\n }\n }\n return matchValue;\n };\n QueryBuilder.prototype.checkLiteral = function () {\n var lastParser = this.parser[this.parser.length - 1];\n if (!lastParser) {\n return true;\n }\n else {\n var secParser = this.parser[this.parser.length - 2];\n var betweenParser = this.parser[this.parser.length - 3];\n if (lastParser[0] === 'Left' && (secParser && secParser[0] === 'Conditions')) {\n return true;\n }\n var betweenOperator = 'between';\n if (lastParser[0] === 'Conditions' && (betweenParser && betweenParser[1].indexOf(betweenOperator) < 0)) {\n return true;\n }\n }\n return false;\n };\n QueryBuilder.prototype.checkNumberLiteral = function (sqlString, sqlLocale) {\n var lastParser = this.parser[this.parser.length - 1];\n if (!lastParser) {\n return true;\n }\n else {\n if (/^[0-9]+(?:\\.[0-9]+)$/.exec(sqlString)) {\n var secParser = this.parser[this.parser.length - 2];\n var betweenParser = this.parser[this.parser.length - 3];\n if (lastParser[0] === 'Left' && (secParser && secParser[0] === 'Conditions')) {\n return true;\n }\n var betweenOperator = sqlLocale ? this.l10n.getConstant('Between').toLowerCase() : 'between';\n if (lastParser[0] === 'Conditions' && (betweenParser && betweenParser[1].indexOf(betweenOperator) < 0)) {\n return true;\n }\n }\n }\n return false;\n };\n QueryBuilder.prototype.getOperator = function (value, operator, sqlLocale) {\n var operators = {\n '=': 'equal', '!=': 'notequal', '<': 'lessthan', '>': 'greaterthan', '<=': 'lessthanorequal',\n '>=': 'greaterthanorequal', 'in': 'in', 'not in': 'notin', 'between': 'between', 'not between': 'notbetween',\n 'is empty': 'isempty', 'is null': 'isnull', 'is not null': 'isnotnull', 'is not empty': 'isnotempty'\n };\n if (sqlLocale) {\n var localeOperator = Object.keys(this.sqlOperators);\n for (var i = 0; i < localeOperator.length; i++) {\n if (this.sqlOperators[localeOperator[i]] === operator.toUpperCase()) {\n if (value && value.indexOf('%') === 0 && value[value.length - 1] === '%') {\n return (operator.toUpperCase() === 'NOT LIKE') ? 'notcontains' : 'contains';\n }\n else if (value && value.indexOf('%') !== 0 && value.indexOf('%') === value.length - 1) {\n return (operator.toUpperCase() === 'NOT LIKE') ? 'notstartswith' : 'startswith';\n }\n else if (value && value.indexOf('%') === 0 && value.indexOf('%') !== value.length - 1) {\n return (operator.toUpperCase() === 'NOT LIKE') ? 'notendswith' : 'endswith';\n }\n return localeOperator[i];\n }\n }\n return null;\n }\n if (value) {\n if (value.indexOf('%') === 0 && value[value.length - 1] === '%') {\n return (operator === 'not like') ? 'notcontains' : 'contains';\n }\n else if (value.indexOf('%') !== 0 && value.indexOf('%') === value.length - 1) {\n return (operator === 'not like') ? 'notstartswith' : 'startswith';\n }\n else if (value.indexOf('%') === 0 && value.indexOf('%') !== value.length - 1) {\n return (operator === 'not like') ? 'notendswith' : 'endswith';\n }\n }\n else {\n if (operator === 'not like') {\n return 'notequal';\n }\n else if (operator === 'like') {\n return 'equal';\n }\n }\n return operators[\"\" + operator];\n };\n QueryBuilder.prototype.getTypeFromColumn = function (rules) {\n var columnData = this.getColumn(rules.field);\n if (!isNullOrUndefined(columnData)) {\n return columnData.type;\n }\n return null;\n };\n QueryBuilder.prototype.getLabelFromColumn = function (field) {\n var label = '';\n var l = 0;\n if (this.separator !== '') {\n var fieldColl = field.split(this.separator);\n for (var i = 0; i < fieldColl.length; i++) {\n label += this.getLabelFromField(fieldColl, i + 1);\n l++;\n if (l < fieldColl.length) {\n label += this.separator;\n }\n }\n return label;\n }\n else {\n var labelItem = this.getColumn(field).label;\n return labelItem;\n }\n };\n QueryBuilder.prototype.getLabelFromField = function (field, startIdx) {\n var fieldName = '';\n var j = 0;\n for (var k = 0; k < startIdx; k++) {\n fieldName += field[k];\n j++;\n if (j < startIdx) {\n fieldName += this.separator;\n }\n }\n return this.getColumn(fieldName).label;\n };\n QueryBuilder.prototype.processParser = function (parser, rules, levelColl, sqlLocale) {\n var j;\n var jLen;\n var rule;\n var subRules;\n var numVal = [];\n var strVal = [];\n var k;\n var kLen;\n var l;\n var lLen;\n var grpCount;\n var operator;\n var isLeftOpened = false;\n var isNotOpened = false;\n for (var i = 0, iLen = parser.length; i < iLen; i++) {\n if (parser[i][0] === 'Literal') {\n var column = this.getColumn(parser[i][1]);\n rule = { label: (column && column.label) ? column.label : parser[i][1], field: parser[i][1] };\n if (parser[i + 1][0] === 'SubOperators') {\n if (parser[i + 1][1].indexOf('null') > -1 || parser[i + 1][1].indexOf('empty') > -1) {\n rule.operator = this.getOperator(' ', parser[i + 1][1], sqlLocale);\n rule.value = null;\n rule.type = this.getTypeFromColumn(rule);\n }\n else {\n if (parser.length === 3 && parser[2][0] === 'String' && (parser[2][1]).indexOf('%') !== -1) {\n var oper = parser[i + 2][1] ? parser[i + 2][1].replace(/'/g, '') : parser[i + 2][1];\n rule.operator = this.getOperator(oper, parser[i + 1][1], sqlLocale);\n }\n else {\n var oper = parser[i + 3][1] ? parser[i + 3][1].replace(/'/g, '') : parser[i + 3][1];\n rule.operator = this.getOperator(oper, parser[i + 1][1], sqlLocale);\n }\n }\n operator = parser[i + 1][1];\n i++;\n j = i + 1;\n jLen = iLen;\n if (sqlLocale && rule.operator === 'contains' || rule.operator === 'startswith' || rule.operator === 'endswith') {\n operator = 'like';\n }\n else if (sqlLocale && rule.operator === 'notcontains' || rule.operator === 'notstartswith' || rule.operator === 'notendswith') {\n operator = 'not like';\n }\n else if (sqlLocale) {\n operator = rule.operator;\n }\n for (j = i + 1; j < jLen; j++) {\n if (operator.indexOf('between') < 0 && parser[j][0] === 'Left') {\n isLeftOpened = true;\n }\n else if (parser[j][0] === 'Right' && isLeftOpened) {\n i = j;\n isLeftOpened = false;\n break;\n }\n else {\n if (operator.indexOf('null') > -1 || operator.indexOf('empty') > -1) {\n break;\n }\n if (operator.indexOf('like') > -1 && parser[j][0] === 'String') {\n var val = parser[j][1];\n if (parser[j][1] && parser[j][1][0] === '\\'') {\n val = parser[j][1].substring(1, parser[j][1].length - 1);\n }\n val = val ? val.replace(/%/g, '') : parser[j][1];\n rule.value = val;\n rule.type = 'string';\n }\n else if (operator.indexOf('between') > -1) {\n if (parser[j][0] === 'Literal' || parser[j][0] === 'Left') {\n break;\n }\n if (parser[j][0] === 'Number') {\n numVal.push(Number(parser[j][1]));\n }\n else if (parser[j][0] === 'String') {\n var val = parser[j][1];\n if (parser[j][1] && parser[j][1][0] === '\\'') {\n val = parser[j][1].substring(1, parser[j][1].length - 1);\n }\n strVal.push(val);\n }\n }\n else {\n if (parser[j][0] === 'Number') {\n numVal.push(Number(parser[j][1]));\n }\n else if (parser[j][0] === 'String') {\n var val = parser[j][1];\n if (parser[j][1] && parser[j][1][0] === '\\'') {\n val = parser[j][1].substring(1, parser[j][1].length - 1);\n }\n strVal.push(val);\n }\n }\n rule.type = this.getTypeFromColumn(rule);\n }\n }\n if (operator.indexOf('like') < 0) {\n if (parser[j - 1][0] === 'Number') {\n rule.value = numVal;\n rule.type = 'number';\n }\n else if (parser[j - 1][0] === 'String') {\n rule.value = strVal;\n rule.type = 'string';\n }\n else if (operator.indexOf('between') > -1 && parser[j - 1][0] === 'Conditions') {\n if (strVal.length !== 0) {\n rule.value = strVal;\n rule.type = 'string';\n }\n else {\n rule.value = numVal;\n rule.type = 'number';\n }\n }\n numVal = [];\n strVal = [];\n rule.type = this.getTypeFromColumn(rule);\n }\n if (this.enableSeparateConnector && parser[i + 1][0] === 'Conditions') {\n rule.condition = parser[i + 1][1];\n }\n }\n else if (parser[i + 1][0] === 'Operators') {\n rule.operator = this.getOperator(parser[i + 2][1], parser[i + 1][1], sqlLocale);\n if (rule.operator === 'equal' && parser[i + 2][0] === 'String' && parser[i + 2][1] === '\\'\\'') {\n rule.operator = 'isempty';\n }\n else if (rule.operator === 'notequal' && parser[i + 2][0] === 'String' && parser[i + 2][1] === '\\'\\'') {\n rule.operator = 'isnotempty';\n }\n if (parser[i + 2][0] === 'Number') {\n rule.type = 'number';\n rule.value = Number(parser[i + 2][1]);\n }\n else {\n rule.type = 'string';\n var val = parser[i + 2][1];\n if (val && val[0] === '\\'') {\n val = val.substring(1, val.length - 1);\n }\n rule.value = val;\n }\n if (this.enableSeparateConnector && parser[i + 3][0] === 'Conditions') {\n rule.condition = parser[i + 3][1];\n }\n rule.type = this.getTypeFromColumn(rule);\n }\n rules.rules.push(rule);\n }\n else if (parser[i][0] === 'Left') {\n if (!(parser[0][0] === 'Left') && (parser[i - 1][1] === 'not' || sqlLocale && this.l10n.getConstant('NOT').toLowerCase() === parser[i - 1][1])) {\n isNotOpened = true;\n continue;\n }\n this.parser = parser.splice(i + 1, iLen - (i + 1));\n if (this.enableNotCondition) {\n subRules = { condition: 'and', rules: [], not: false };\n }\n else {\n subRules = { condition: 'and', rules: [] };\n }\n grpCount = 0;\n kLen = rules.rules.length;\n for (k = 0; k < kLen; k++) { //To get the group position\n if (rules.rules[k].rules) {\n grpCount++;\n }\n }\n levelColl.push(grpCount);\n rules.rules.push(subRules);\n subRules = this.processParser(this.parser, subRules, levelColl, sqlLocale);\n return rules;\n }\n else if (parser[i][0] === 'Conditions' && !this.enableSeparateConnector) {\n if (parser[i][1] === 'not' || (sqlLocale && this.l10n.getConstant('NOT').toLowerCase() === parser[i][1])) {\n rules.not = true;\n }\n else {\n rules.condition = parser[i][1];\n }\n }\n else if (parser[i][0] === 'Right') {\n if (isNotOpened && parser[i + 1][0] === 'Right') {\n isNotOpened = false;\n continue;\n }\n this.parser = parser.splice(i + 1, iLen - (i + 1));\n levelColl.pop(); //To get the parent Group\n rules = this.rule;\n lLen = levelColl.length;\n for (l = 0; l < lLen; l++) {\n rules = this.findGroupByIdx(levelColl[l], rules, l === 0);\n }\n return this.processParser(this.parser, rules, levelColl, sqlLocale);\n }\n }\n return rules;\n };\n /**\n * Clone the Group\n *\n * @param {Element | string} target - 'target' to be passed to clone the group.\n * @returns {void}\n */\n QueryBuilder.prototype.groupClone = function (target) {\n var groupElem = target.closest('.e-rule-list').closest('.e-group-container');\n var targetGrpId = target.id.replace(this.element.id + '_', '');\n var groupId = groupElem.id.replace(this.element.id + '_', '');\n var group = this.getGroup(targetGrpId);\n this.groupIndex = Array.prototype.indexOf.call(target.closest('.e-rule-list').children, target.closest('.e-group-container'));\n this.addGroups([{ 'condition': group.condition, 'not': group.not, 'rules': group.rules }], groupId);\n this.groupIndex = -1;\n };\n QueryBuilder.prototype.ruleClone = function (target) {\n var ruleElem = closest(target, '.e-rule-container');\n var groupElem = target.closest('.e-rule-list').closest('.e-group-container');\n var getRule = this.getRule(target);\n var groupId = groupElem.id.replace(this.element.id + '_', '');\n var ruleElemColl = groupElem.querySelectorAll('.e-rule-container');\n for (var i = 0, iLen = ruleElemColl.length; i < iLen; i++) {\n if (ruleElem.id === ruleElemColl[i].id) {\n this.ruleIndex = i;\n }\n }\n if (this.enableSeparateConnector) {\n this.addRules([{ 'label': getRule.label, 'field': getRule.field, 'type': getRule.type, 'operator': getRule.operator,\n 'value': getRule.value, 'condition': getRule.condition }], groupId);\n }\n else {\n this.addRules([{ 'label': getRule.label, 'field': getRule.field, 'type': getRule.type, 'operator': getRule.operator,\n 'value': getRule.value }], groupId);\n }\n this.ruleIndex = -1;\n };\n QueryBuilder.prototype.ruleLock = function (target) {\n var ruleElem = closest(target, '.e-rule-container');\n var rule = this.getRule(ruleElem.id.replace(this.element.id + '_', ''));\n if (ruleElem.classList.contains('e-disable')) {\n rule.isLocked = false;\n this.lockItems = this.lockItems.filter(function (lockItem) { return lockItem !== ruleElem.id; });\n ruleElem.classList.remove('e-disable');\n this.disableRuleControls(target, ruleElem, false);\n target.children[0].classList.add('e-unlock');\n target.children[0].classList.remove('e-lock');\n target.setAttribute('title', this.l10n.getConstant('LockRule'));\n }\n else {\n rule.isLocked = true;\n if (this.lockItems.indexOf(ruleElem.id) < 0) {\n this.lockItems.splice(this.lockItems.length - 1, 0, ruleElem.id);\n }\n ruleElem.classList.add('e-disable');\n this.disableRuleControls(target, ruleElem, true);\n target.children[0].classList.add('e-lock');\n target.children[0].classList.remove('e-unlock');\n target.setAttribute('title', this.l10n.getConstant('UnlockRule'));\n }\n };\n QueryBuilder.prototype.groupLock = function (target) {\n var groupElem = closest(target, '.e-group-container');\n var group = this.getGroup(groupElem.id.replace(this.element.id + '_', ''));\n var isRoot = groupElem.id.indexOf('group0') > -1;\n if (groupElem.classList.contains('e-disable')) {\n if (isRoot) {\n var newGroup = {};\n newGroup.condition = group.condition;\n newGroup.not = group.not;\n newGroup.isLocked = false;\n this.setProperties({ rule: newGroup }, true);\n }\n else {\n group.isLocked = false;\n }\n this.lockItems = this.lockItems.filter(function (lockItem) { return lockItem !== groupElem.id; });\n groupElem.classList.remove('e-disable');\n this.disableHeaderControls(target, groupElem, false);\n target.children[0].classList.add('e-unlock');\n target.children[0].classList.remove('e-lock');\n target.setAttribute('title', this.l10n.getConstant('LockGroup'));\n this.updateLockItems();\n }\n else {\n if (isRoot) {\n var newGroup = {};\n newGroup.condition = group.condition;\n newGroup.not = group.not;\n newGroup.isLocked = true;\n this.setProperties({ rule: newGroup }, true);\n }\n else {\n group.isLocked = true;\n }\n if (this.lockItems.indexOf(groupElem.id) < 0) {\n this.lockItems.splice(this.lockItems.length - 1, 0, groupElem.id);\n }\n groupElem.classList.add('e-disable');\n this.disableHeaderControls(target, groupElem, true);\n target.children[0].classList.add('e-lock');\n target.children[0].classList.remove('e-unlock');\n target.setAttribute('title', this.l10n.getConstant('UnlockGroup'));\n }\n };\n QueryBuilder.prototype.updateLockItems = function () {\n for (var i = 0; i < this.lockItems.length; i++) {\n var idColl = this.lockItems[i].split('_');\n if (idColl.length > 2) {\n var ruleElem = this.element.querySelector('#' + this.lockItems[i]);\n var target = ruleElem.querySelector('.e-lock-rule-btn');\n ruleElem = closest(target, '.e-rule-container');\n if (!ruleElem.classList.contains('e-disable')) {\n this.ruleLock(target);\n }\n }\n else {\n var groupElem = this.element.querySelector('#' + this.lockItems[i]);\n var target = groupElem.querySelector('.e-lock-grp-btn');\n groupElem = closest(target, '.e-group-container');\n if (!groupElem.classList.contains('e-disable')) {\n this.groupLock(target);\n }\n }\n }\n };\n QueryBuilder.prototype.disableHeaderControls = function (target, groupElem, isDisabled) {\n var andElem = groupElem.querySelectorAll('.e-btngroup-and');\n var orElem = groupElem.querySelectorAll('.e-btngroup-or');\n var notElem = groupElem.querySelectorAll('.e-qb-toggle');\n var addElem = groupElem.querySelectorAll('.e-add-btn');\n var deleteGrpElem = groupElem.querySelectorAll('.e-deletegroup');\n var lockElem = groupElem.querySelectorAll('.e-lock-grp-btn');\n var cloneElem = groupElem.querySelectorAll('.e-clone-grp-btn');\n var groupContElem = groupElem.querySelectorAll('.e-group-container');\n var addCondition = groupElem.querySelectorAll('.e-add-condition-btn');\n var addGroup = groupElem.querySelectorAll('.e-add-group-btn');\n for (var i = 0; i < andElem.length; i++) {\n if (isDisabled) {\n if (groupContElem[i] && groupContElem[i].classList.contains('e-disable')) {\n groupContElem[i].classList.add('e-disable');\n }\n andElem[i].disabled = true;\n orElem[i].disabled = true;\n if (addElem[i]) {\n addElem[i].disabled = true;\n }\n if (addCondition[i]) {\n addCondition[i].disabled = true;\n }\n if (addGroup[i]) {\n addGroup[i].disabled = true;\n }\n if (notElem[i]) {\n notElem[i].disabled = true;\n }\n if (deleteGrpElem[i]) {\n deleteGrpElem[i].disabled = true;\n }\n if (cloneElem[i]) {\n cloneElem[i].disabled = true;\n }\n andElem[i].parentElement.classList.add('e-disabled');\n if (lockElem[i] && lockElem[i] !== target) {\n lockElem[i].disabled = true;\n lockElem[i].children[0].classList.remove('e-unlock');\n lockElem[i].children[0].classList.add('e-lock');\n }\n }\n else {\n if (groupContElem[i]) {\n groupContElem[i].classList.remove('e-disable');\n }\n andElem[i].disabled = false;\n orElem[i].disabled = false;\n if (addElem[i]) {\n addElem[i].disabled = false;\n }\n if (addCondition[i]) {\n addCondition[i].disabled = false;\n }\n if (addGroup[i]) {\n addGroup[i].disabled = false;\n }\n if (lockElem[i]) {\n lockElem[i].disabled = false;\n }\n if (notElem[i]) {\n notElem[i].disabled = false;\n }\n if (deleteGrpElem[i]) {\n deleteGrpElem[i].disabled = false;\n }\n if (cloneElem[i]) {\n cloneElem[i].disabled = false;\n }\n andElem[i].parentElement.classList.remove('e-disabled');\n if (lockElem[i]) {\n lockElem[i].children[0].classList.remove('e-lock');\n }\n if (lockElem[i]) {\n lockElem[i].children[0].classList.add('e-unlock');\n }\n }\n }\n this.disableRuleControls(target, groupElem, isDisabled);\n };\n QueryBuilder.prototype.disableRuleControls = function (target, groupElem, isDisabled) {\n var ddlElement = groupElem.querySelectorAll('.e-control.e-dropdownlist');\n var numericElement = groupElem.querySelectorAll('.e-control.e-numerictextbox');\n var textElement = groupElem.querySelectorAll('.e-control.e-textbox');\n var dateElement = groupElem.querySelectorAll('.e-control.e-datepicker');\n var checkboxElement = groupElem.querySelectorAll('.e-control.e-checkbox');\n var radioBtnElement = groupElem.querySelectorAll('.e-control.e-radio');\n var multiSelectElement = groupElem.querySelectorAll('.e-control.e-multiselect');\n var deleteElem = groupElem.querySelectorAll('.e-rule-delete');\n var lockElem = groupElem.querySelectorAll('.e-lock-rule');\n var cloneElem = groupElem.querySelectorAll('.e-clone-rule');\n var ruleElem = groupElem.querySelectorAll('.e-rule-container');\n for (var i = 0; i < deleteElem.length; i++) {\n if (isDisabled) {\n if (ruleElem[i] && ruleElem[i].classList.contains('e-disable')) {\n ruleElem[i].classList.add('e-disable');\n }\n deleteElem[i].disabled = true;\n if (cloneElem[i]) {\n cloneElem[i].disabled = true;\n }\n if (lockElem[i] !== target) {\n lockElem[i].disabled = true;\n lockElem[i].children[0].classList.remove('e-unlock');\n lockElem[i].children[0].classList.add('e-lock');\n }\n }\n else {\n if (ruleElem[i]) {\n ruleElem[i].classList.remove('e-disable');\n }\n if (cloneElem[i]) {\n cloneElem[i].disabled = false;\n }\n deleteElem[i].disabled = false;\n lockElem[i].disabled = false;\n lockElem[i].children[0].classList.remove('e-lock');\n lockElem[i].children[0].classList.add('e-unlock');\n }\n }\n var dropDownObj;\n var numericObj;\n var textObj;\n var dateObj;\n var checkBoxObj;\n var radioBtnObj;\n var multiSelectObj;\n for (var i = 0; i < ddlElement.length; i++) {\n dropDownObj = getComponent(ddlElement[i], 'dropdownlist');\n if (isDisabled) {\n dropDownObj.enabled = false;\n }\n else {\n dropDownObj.enabled = true;\n }\n }\n for (var i = 0; i < numericElement.length; i++) {\n numericObj = getComponent(numericElement[i], 'numerictextbox');\n if (isDisabled) {\n numericObj.enabled = false;\n }\n else {\n numericObj.enabled = true;\n }\n }\n for (var i = 0; i < textElement.length; i++) {\n textObj = getComponent(textElement[i], 'textbox');\n if (isDisabled) {\n textObj.enabled = false;\n }\n else {\n textObj.enabled = true;\n }\n }\n for (var i = 0; i < dateElement.length; i++) {\n dateObj = getComponent(dateElement[i], 'datepicker');\n if (isDisabled) {\n dateObj.enabled = false;\n }\n else {\n dateObj.enabled = true;\n }\n }\n for (var i = 0; i < checkboxElement.length; i++) {\n checkBoxObj = getComponent(checkboxElement[i], 'checkbox');\n if (isDisabled) {\n checkBoxObj.disabled = true;\n }\n else {\n checkBoxObj.disabled = false;\n }\n }\n for (var i = 0; i < radioBtnElement.length; i++) {\n radioBtnObj = getComponent(radioBtnElement[i], 'radio');\n if (isDisabled) {\n radioBtnObj.disabled = true;\n }\n else {\n radioBtnObj.disabled = false;\n }\n }\n for (var i = 0; i < multiSelectElement.length; i++) {\n multiSelectObj = getComponent(multiSelectElement[i], 'multiselect');\n if (isDisabled) {\n multiSelectObj.enabled = false;\n }\n else {\n multiSelectObj.enabled = true;\n }\n }\n };\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"beforeChange\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"dataBound\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"ruleChange\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"drop\", void 0);\n __decorate([\n Complex({}, ShowButtons)\n ], QueryBuilder.prototype, \"showButtons\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"summaryView\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"allowValidation\", void 0);\n __decorate([\n Property('Default')\n ], QueryBuilder.prototype, \"fieldMode\", void 0);\n __decorate([\n Property([])\n ], QueryBuilder.prototype, \"columns\", void 0);\n __decorate([\n Property(null)\n ], QueryBuilder.prototype, \"fieldModel\", void 0);\n __decorate([\n Property(null)\n ], QueryBuilder.prototype, \"operatorModel\", void 0);\n __decorate([\n Property(null)\n ], QueryBuilder.prototype, \"valueModel\", void 0);\n __decorate([\n Property()\n ], QueryBuilder.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property('')\n ], QueryBuilder.prototype, \"cssClass\", void 0);\n __decorate([\n Property([])\n ], QueryBuilder.prototype, \"dataSource\", void 0);\n __decorate([\n Property('Horizontal')\n ], QueryBuilder.prototype, \"displayMode\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property('Default')\n ], QueryBuilder.prototype, \"sortDirection\", void 0);\n __decorate([\n Property(5)\n ], QueryBuilder.prototype, \"maxGroupCount\", void 0);\n __decorate([\n Property('auto')\n ], QueryBuilder.prototype, \"height\", void 0);\n __decorate([\n Property('auto')\n ], QueryBuilder.prototype, \"width\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"matchCase\", void 0);\n __decorate([\n Property(0)\n ], QueryBuilder.prototype, \"immediateModeDelay\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"enableNotCondition\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"readonly\", void 0);\n __decorate([\n Property(true)\n ], QueryBuilder.prototype, \"addRuleToNewGroups\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"autoSelectField\", void 0);\n __decorate([\n Property(true)\n ], QueryBuilder.prototype, \"autoSelectOperator\", void 0);\n __decorate([\n Property('')\n ], QueryBuilder.prototype, \"separator\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"enableSeparateConnector\", void 0);\n __decorate([\n Complex({ condition: 'and', rules: [] }, Rule)\n ], QueryBuilder.prototype, \"rule\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"allowDragAndDrop\", void 0);\n QueryBuilder = __decorate([\n NotifyPropertyChanges\n ], QueryBuilder);\n return QueryBuilder;\n}(Component));\nexport { QueryBuilder };\nvar LevelColl = /** @class */ (function () {\n function LevelColl() {\n }\n return LevelColl;\n}());\n","import { extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar QueryLibrary = /** @class */ (function () {\n function QueryLibrary(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n QueryLibrary.prototype.destroy = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.removeEventListener();\n };\n QueryLibrary.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on('query-library', this.queryLibrary, this);\n this.parent.on('destroyed', this.destroy, this);\n };\n QueryLibrary.prototype.removeEventListener = function () {\n this.parent.off('query-library', this.queryLibrary);\n this.parent.off('destroyed', this.destroy);\n };\n QueryLibrary.prototype.queryLibrary = function (args) {\n switch (args.prop) {\n case 'getMongoFromRules':\n args.value['obj']['mongoQuery'] = this.getMongoFromRules(args.value['rule'], args.value['mongoQuery']);\n break;\n case 'mongoParser':\n this.mongoParser(args.value['mongoQuery'], args.value['rule'], args.value['mongoLocale']);\n break;\n case 'getParameterSql':\n args.value['obj']['sql'] = this.getParameterSql(args.value['rule']);\n break;\n case 'getNamedParameterSql':\n args.value['obj']['sql'] = this.getNamedParameterSql(args.value['rule']);\n break;\n case 'convertParamSqlToSql':\n args.value['obj']['sql'] = this.convertParamSqlToSql(args.value['sql']);\n break;\n case 'convertNamedParamSqlToSql':\n args.value['obj']['sql'] = this.convertNamedParamSqlToSql(args.value['sql']);\n break;\n }\n };\n QueryLibrary.prototype.getMongoFromRules = function (rule, mongoQuery) {\n mongoQuery = '{';\n if (rule.condition === 'or') {\n mongoQuery += '\"$or\":[';\n mongoQuery = this.convertMongoQuery(rule.rules, mongoQuery) + ']';\n }\n else {\n mongoQuery += '\"$and\":[';\n mongoQuery = this.convertMongoQuery(rule.rules, mongoQuery) + ']';\n }\n mongoQuery += '}';\n return mongoQuery;\n };\n QueryLibrary.prototype.getOperatorFromMongoOperator = function (operator) {\n var operatorValue;\n switch (operator) {\n case '$ne':\n operatorValue = 'notequal';\n break;\n case '$gt':\n operatorValue = 'greaterthan';\n break;\n case '$gte':\n operatorValue = 'greaterthanorequal';\n break;\n case '$lt':\n operatorValue = 'lessthan';\n break;\n case '$lte':\n operatorValue = 'lessthanorequal';\n break;\n case '$nin':\n operatorValue = 'notin';\n break;\n }\n return operatorValue;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n QueryLibrary.prototype.convertMongoQuery = function (rules, mongoQuery) {\n var _this = this;\n var i = 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rules.forEach(function (item) {\n i++;\n mongoQuery += '{';\n if (item.rules !== undefined) {\n if (item.condition === 'or') {\n mongoQuery += ' \"$or\":[';\n mongoQuery = _this.convertMongoQuery(item.rules, mongoQuery) + ']';\n }\n else {\n mongoQuery += ' \"$and\":[';\n mongoQuery = _this.convertMongoQuery(item.rules, mongoQuery) + ']';\n }\n }\n var itVal = item.type === 'string' && item.operator !== 'in' && item.operator !== 'notin' && item.value && item.value.trim() !== '' ? item.value.replace(/'/g, '\\\\') : '';\n if (item.type === 'string' && (item.operator === 'in' || item.operator === 'notin') && item.value && item.value.length === 1) {\n itVal = item.value[0].replace(/'/g, '\\\\');\n }\n var field = item.field ? item.field.substring(0) : '';\n switch (item.operator) {\n case 'contains':\n mongoQuery += '\"' + field + '\":{\"$regex\":\"' + itVal + '\"}';\n break;\n case 'notcontains':\n mongoQuery += '\"' + field + '\":{\"$not\":{\"$regex\":\"' + item.value + '\"}}';\n break;\n case 'startswith':\n mongoQuery += '\"' + field + '\":{\"$regex\":\"^' + itVal + '\"}';\n break;\n case 'notstartswith':\n mongoQuery += '\"' + field + '\":{\"$not\":{\"$regex\":\"^' + item.value + '\"}}';\n break;\n case 'endswith':\n mongoQuery += '\"' + field + '\":{\"$regex\":\"' + itVal + '$\"}';\n break;\n case 'notendswith':\n mongoQuery += '\"' + field + '\":{\"$not\":{\"$regex\":\"' + item.value + '$\"}}';\n break;\n case 'isnull':\n mongoQuery += '\"' + field + '\": null';\n break;\n case 'isnotnull':\n mongoQuery += '\"' + field + '\":{\"$ne\": null}';\n break;\n case 'isempty':\n mongoQuery += '\"' + field + '\": \"\"';\n break;\n case 'isnotempty':\n mongoQuery += '\"' + field + '\":{\"$ne\": \"\"}';\n break;\n case 'equal':\n if (item.type === 'string') {\n mongoQuery += '\"' + field + '\":\"' + itVal + '\"';\n }\n else if (item.type === 'date') {\n mongoQuery += '\"' + field + '\":\"' + item.value + '\"';\n }\n else if (item.type === 'boolean') {\n mongoQuery += '\"' + field + '\":' + item.value + '';\n }\n else {\n mongoQuery += '\"' + field + '\":' + item.value + '';\n }\n break;\n case 'notequal':\n if (item.type === 'string') {\n mongoQuery += '\"' + field + '\":{\"$ne\":\"' + itVal + '\"}';\n }\n else if (item.type === 'date') {\n mongoQuery += '\"' + field + '\":{\"$ne\":\"' + item.value + '\"}';\n }\n else {\n mongoQuery += '\"' + field + '\":{\"$ne\":' + item.value + '}';\n }\n break;\n case 'in':\n if (item.type === 'string') {\n if (item.value.length > 1) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var s = item.value.map(function (x, j) { return (j < item.value.length ? \"\\\"\" + x + \"\\\"\" : ''); }).toString();\n s = s.endsWith(',') ? s.substring(0, s.length - 1) : s;\n mongoQuery += '\"' + field + '\": { \"$in\": [' + s + ']}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$in\": [\"' + itVal + '\"]}';\n }\n }\n else if (item.type === 'number') {\n if (item.value.length > 1) {\n mongoQuery += '\"' + field + '\": { \"$in\": [' + item.value.toString() + ']}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$in\": [' + item.value + ']}';\n }\n }\n break;\n case 'notin':\n if (item.type === 'string') {\n if (item.value.length > 1) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var s = item.value.map(function (x, j) { return (j < item.value.length ? \"\\\"\" + x + \"\\\"\" : ''); }).toString();\n s = s.endsWith(',') ? s.substring(0, s.length - 1) : s;\n mongoQuery += '\"' + field + '\": { \"$nin\": [' + s + ']}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$nin\": [\"' + itVal + '\"]}';\n }\n }\n else if (item.type === 'number') {\n if (item.value.length > 1) {\n mongoQuery += '\"' + field + '\": { \"$nin\": [' + item.value.toString() + ']}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$nin\": [' + item.value + ']}';\n }\n }\n break;\n case 'greaterthan':\n if (item.type === 'number') {\n mongoQuery += '\"' + field + '\": { \"$gt\": ' + item.value + '}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$gt\": \"' + item.value + '\"}';\n }\n break;\n case 'greaterthanorequal':\n if (item.type === 'number') {\n mongoQuery += '\"' + field + '\": { \"$gte\": ' + item.value + '}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$gte\": \"' + item.value + '\"}';\n }\n break;\n case 'between':\n if (item.type === 'number') {\n mongoQuery += '\"' + field + '\": {\"$gte\":' + item.value[0] + ', \"$lte\":' + item.value[1] + '}';\n }\n else {\n mongoQuery += '\"' + field + '\": {\"$gte\": \"' + item.value[0] + '\", \"$lte\": \"' + item.value[1] + '\"}';\n }\n break;\n case 'notbetween':\n if (item.type === 'number') {\n mongoQuery += '\"$or\":[{\"' + field + '\": {\"$lt\":' + item.value[0] + '}}, {\"' + field + '\": {\"$gt\":' + item.value[1] + '}}]';\n }\n else {\n mongoQuery += '\"$or\":[{\"' + field + '\": {\"$lt\": \"' + item.value[0] + '\"}}, {\"' + field + '\": {\"$gt\": \"' + item.value[1] + '\"}}]';\n }\n break;\n case 'lessthan':\n if (item.type === 'number') {\n mongoQuery += '\"' + field + '\": { \"$lt\": ' + item.value + '}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$lt\": \"' + item.value + '\"}';\n }\n break;\n case 'lessthanorequal':\n if (item.type === 'number') {\n mongoQuery += '\"' + field + '\": { \"$lte\": ' + item.value + '}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$lte\": \"' + item.value + '\"}';\n }\n break;\n }\n mongoQuery += '}';\n if (rules.length !== i) {\n mongoQuery += ',';\n }\n });\n return mongoQuery;\n };\n QueryLibrary.prototype.mongoParser = function (mongoQuery, rule, mongoLocale) {\n var mongoList;\n if (Object.keys(mongoQuery).indexOf('$and') > -1) {\n mongoList = mongoQuery['$and'];\n rule.condition = 'and';\n }\n else if (Object.keys(mongoQuery).indexOf('$or') > -1) {\n mongoList = mongoQuery['$or'];\n rule.condition = 'or';\n }\n rule.rules = [];\n this.mongoRecursion(mongoList, rule.rules, mongoLocale);\n };\n QueryLibrary.prototype.mongoRecursion = function (mongoList, rules, mongoLocale) {\n var operatorValue;\n var type;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var stringValue;\n var key;\n var betweenValue;\n var fieldType;\n var condition;\n var value;\n var subRules;\n var rule;\n var keyObj;\n var ruleValue;\n for (var i = 0, len = mongoList.length; i < len; i++) {\n var betweenOperatorArray = [];\n var inOperatorArray = [];\n condition = Object.keys(mongoList[i])[0];\n value = mongoList[i][condition];\n if (condition === '$and') {\n if (this.parent.enableNotCondition) {\n subRules = { condition: condition.replace('$', ''), rules: [], not: false };\n }\n else {\n subRules = { condition: condition.replace('$', ''), rules: [] };\n }\n rules.push(subRules);\n this.mongoRecursion(mongoList[i][condition], rules[rules.length - 1].rules, mongoLocale);\n }\n else if (condition === '$or') {\n var notBetween = void 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var innerObject = [];\n var keys = [];\n var firstKey = [];\n var secondKey = [];\n var innerKeys = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var firstValue = [];\n var secondValue = [];\n var innerFirstValue = [];\n var innerSecondValue = [];\n if (Array.isArray(value) && value.length === 2) {\n keys = Object.keys(value);\n innerFirstValue = value[keys[0]];\n innerSecondValue = value[keys[1]];\n if (typeof innerFirstValue === 'object') {\n innerObject = Object.keys(innerFirstValue)[0];\n innerKeys = Object.keys(innerFirstValue[Object.keys(innerFirstValue)[0]]);\n firstKey = innerKeys[0];\n secondKey = Object.keys(innerSecondValue[Object.keys(innerSecondValue)[0]])[0];\n if (firstKey === '$lt' && secondKey === '$gt') {\n operatorValue = 'notbetween';\n // eslint-disable-next-line security/detect-object-injection\n firstValue = innerFirstValue[innerObject][firstKey];\n // eslint-disable-next-line security/detect-object-injection\n secondValue = innerSecondValue[innerObject][secondKey];\n type = typeof firstValue === 'number' ? 'number' : 'date';\n ruleValue = [firstValue, secondValue];\n rule = { field: innerObject, label: innerObject, value: ruleValue, operator: operatorValue, type: type };\n rules.push(rule);\n notBetween = true;\n }\n }\n }\n if (!notBetween) {\n if (this.parent.enableNotCondition) {\n subRules = { condition: condition.replace('$', ''), rules: [], not: false };\n }\n else {\n subRules = { condition: condition.replace('$', ''), rules: [] };\n }\n rules.push(subRules);\n this.mongoRecursion(mongoList[i][condition], rules[rules.length - 1].rules, mongoLocale);\n }\n }\n else {\n value = mongoList[i][condition];\n if (value === null) { // isnull operator\n operatorValue = 'isnull';\n }\n if (typeof value === 'boolean') { // boolean type values\n operatorValue = 'equal';\n type = 'boolean';\n ruleValue = value;\n }\n if (typeof (value) === 'number') {\n ruleValue = value;\n type = 'number';\n operatorValue = 'equal';\n }\n else if (typeof (value) === 'object' && value !== null) {\n keyObj = Object.keys(value);\n for (var i_1 = 0; i_1 < keyObj.length; i_1++) {\n key = keyObj[i_1];\n stringValue = (value)[keyObj[i_1]];\n if (key === '$ne' && isNullOrUndefined(stringValue)) { // not null operator\n operatorValue = 'isnotnull';\n ruleValue = null;\n }\n if (key === '$ne' && typeof stringValue === 'boolean') { // not equal operator for boolean\n operatorValue = 'notequal';\n ruleValue = stringValue;\n type = 'boolean';\n }\n if (keyObj.length >= 2 && keyObj[i_1]) {\n if (typeof (stringValue) == 'object') { // between and notbetween operators\n operatorValue = 'notbetween';\n condition = Object.keys(stringValue)[0];\n betweenValue = [Object.keys(stringValue[condition])[0]];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n betweenOperatorArray.push(stringValue[condition][betweenValue]);\n type = 'number';\n }\n else {\n operatorValue = 'between';\n betweenOperatorArray.push(stringValue);\n }\n if (typeof (stringValue) === 'number') {\n type = 'number';\n }\n }\n else if (typeof (stringValue) === 'object' && stringValue !== null) { // \"in\" and \"notin\" operator\n if (key === '$not' && Object.keys(stringValue)[0] === '$regex') {\n if (stringValue['$regex'].indexOf('^') > -1) {\n operatorValue = 'notstartswith';\n ruleValue = stringValue['$regex'].replace('^', '');\n }\n else if (stringValue['$regex'].indexOf('$') > -1) {\n operatorValue = 'notendswith';\n ruleValue = stringValue['$regex'].replace('$', '');\n }\n else {\n operatorValue = 'notcontains';\n ruleValue = stringValue['$regex'];\n }\n }\n else {\n operatorValue = key === '$in' ? 'in' : 'notin';\n inOperatorArray = stringValue;\n type = typeof (stringValue[0]) === 'number' ? 'number' : 'string';\n }\n }\n else if (typeof (stringValue) === 'number') { // number type values\n operatorValue = this.getOperatorFromMongoOperator(key);\n type = 'number';\n ruleValue = stringValue;\n }\n if (typeof (stringValue) === 'string') { // string type values\n if (key === '$regex') {\n operatorValue = 'contains';\n ruleValue = stringValue;\n type = 'string';\n }\n if (key === '$ne') { // not equal\n if (stringValue !== null && stringValue.length > 0 && isNaN(Date.parse(stringValue))) {\n operatorValue = 'notequal';\n ruleValue = stringValue;\n }\n else if (isNullOrUndefined(stringValue)) { // is not null operator\n operatorValue = 'isnotnull';\n ruleValue = stringValue;\n }\n else if (stringValue === '') { // is not empty operator\n operatorValue = 'isnotempty';\n ruleValue = stringValue;\n }\n type = 'string';\n }\n if (stringValue.indexOf('^') > -1) {\n operatorValue = 'startswith';\n ruleValue = stringValue.replace('^', '');\n type = 'string';\n }\n if (stringValue.indexOf('$') > -1 && key !== '$not') {\n operatorValue = 'endswith';\n ruleValue = stringValue.replace('$', '');\n type = 'string';\n }\n for (var _i = 0, _a = this.parent.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n if (column.field === condition) {\n fieldType = column.type;\n break;\n }\n }\n if (!isNaN(Date.parse(stringValue)) || fieldType === 'date') { // Date type operators\n operatorValue = operatorValue || this.getOperatorFromMongoOperator(key);\n type = 'date';\n ruleValue = stringValue;\n }\n }\n }\n }\n else if (value && typeof (value) === 'string' && !isNaN(Date.parse(value))) {\n operatorValue = 'equal';\n ruleValue = value;\n type = 'date';\n }\n else if (typeof (value) === 'string' && value !== '' && value !== 'true' && value !== 'false') {\n operatorValue = 'equal';\n ruleValue = value;\n type = 'string';\n }\n else if (typeof (value) === 'string' && value === '') {\n operatorValue = 'isempty';\n ruleValue = value;\n type = 'string';\n }\n if (betweenOperatorArray && betweenOperatorArray.length > 1) { // between opertor value\n rule = { field: condition, label: condition, value: betweenOperatorArray, operator: operatorValue, type: type };\n }\n else if (inOperatorArray && inOperatorArray.length > 1) { // in operator value\n rule = { field: condition, label: condition, value: inOperatorArray, operator: operatorValue, type: type };\n }\n else {\n rule = { field: condition, label: condition, value: ruleValue, operator: operatorValue, type: type };\n }\n rules.push(rule);\n operatorValue = '';\n }\n }\n };\n QueryLibrary.prototype.convertParamSqlToSql = function (sql) {\n var paramSql = sql.sql;\n var paramValues = sql.params;\n var parts = paramSql.split('?');\n var normalSql = parts[0];\n for (var i = 0; i < paramValues.length; i++) {\n normalSql += (typeof (paramValues[i]) === 'string' ? \"'\" + paramValues[i] + \"'\" + parts[i + 1] : paramValues[i] + parts[i + 1]);\n }\n if (normalSql.length >= 2 && normalSql[0] === '(' && normalSql[normalSql.length - 1] === ')') {\n normalSql = normalSql.slice(1, -1);\n }\n normalSql = normalSql.replace(/!= ''(?! =)/g, 'IS NOT EMPTY').replace(/= ''/g, 'IS EMPTY');\n return normalSql;\n };\n QueryLibrary.prototype.convertNamedParamSqlToSql = function (sql) {\n var namedParamSql = sql.sql;\n var params = sql.params;\n var normalSql = namedParamSql;\n Object.keys(params).forEach(function (paramName) {\n var paramValue = params[paramName];\n paramName = ':' + paramName;\n normalSql = normalSql.replace(paramName, typeof (paramValue) === 'string' ? \"'\" + paramValue + \"'\" : String(paramValue));\n });\n if (normalSql.length >= 2 && normalSql[0] === '(' && normalSql[normalSql.length - 1] === ')') {\n normalSql = normalSql.slice(1, -1);\n }\n normalSql = normalSql.replace(/!= ''(?! =)/g, 'IS NOT EMPTY').replace(/= ''/g, 'IS EMPTY');\n return normalSql;\n };\n QueryLibrary.prototype.getParameterSql = function (qbrule) {\n var qbRule = extend({}, qbrule, null, true);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var value = this.updateRuleValue(qbRule, false);\n return this.getParameterSQLVal(this.parent.getSqlFromRules(qbRule), value['ruleVal']);\n };\n QueryLibrary.prototype.getNamedParameterSql = function (qbrule) {\n var qbRule = extend({}, qbrule, null, true);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var value = this.updateRuleValue(qbRule, true);\n return this.getNamedParameterSQLVal(this.parent.getSqlFromRules(qbRule), value['namedRuleVal']);\n };\n QueryLibrary.prototype.getParameterSQLVal = function (content, ruleValue) {\n var replacedString = content.replace(/[%']/g, '');\n return { sql: '(' + replacedString + ')', params: ruleValue };\n };\n QueryLibrary.prototype.getNamedParameterSQLVal = function (content, ruleValue) {\n var replacedString = content.replace(/[%']/g, '');\n return { sql: '(' + replacedString + ')', params: ruleValue };\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n QueryLibrary.prototype.updateRuleValue = function (rule, isNamedParameter) {\n var ruleVal = [];\n var namedRuleVal = {};\n var namedParameters = [];\n return this.updateValue(rule.rules, isNamedParameter, ruleVal, namedRuleVal, namedParameters);\n };\n QueryLibrary.prototype.updateValue = function (rules, isNamedParameter, ruleVal, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n namedRuleVal, namedParameters) {\n if (isNullOrUndefined(rules)) {\n return { ruleVal: ruleVal, namedRuleVal: namedRuleVal };\n }\n for (var i = 0; i < rules.length; i++) {\n if (rules[i].rules) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var value = this.updateValue(rules[i].rules, isNamedParameter, ruleVal, namedRuleVal, namedParameters);\n ruleVal = value['ruleVal'];\n namedRuleVal = value['namedRuleVal'];\n }\n else {\n var namedField = void 0;\n if (rules[i].value instanceof Array) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (var j = 0; j < (rules[i].value).length; j++) {\n if (isNamedParameter) {\n namedField = this.getNamedParameter(rules[i].field, namedParameters);\n }\n if (!isNullOrUndefined(rules[i].value[j])) {\n if (rules[i].type === 'string' || rules[i].type === 'date') {\n if (isNamedParameter) {\n namedRuleVal[namedField] = rules[i].value[j];\n }\n else {\n ruleVal.push(rules[i].value[j]);\n }\n }\n else {\n if (isNamedParameter) {\n namedRuleVal[namedField] = rules[i].value[j];\n }\n else {\n ruleVal.push(rules[i].value[j]);\n }\n }\n }\n if (isNamedParameter) {\n rules[i].value[j] = ':' + namedField;\n }\n else {\n rules[i].value[j] = '?';\n }\n }\n }\n else {\n if (isNamedParameter) {\n namedField = this.getNamedParameter(rules[i].field, namedParameters);\n }\n if (rules[i].operator.indexOf('null') < 1) {\n if (rules[i].type !== 'string' || (rules[i].type === 'string' && (rules[i].value !== '' || rules[i].value === 0))) {\n if (rules[i].type === 'string' || rules[i].type === 'date') {\n if (rules[i].operator.indexOf('empty') < 1) {\n var value = rules[i].value.toString();\n switch (rules[i].operator) {\n case 'startswith':\n case 'notstartswith':\n value = value + '%';\n break;\n case 'endswith':\n case 'notendswith':\n value = '%' + value;\n break;\n case 'contains':\n case 'notcontains':\n value = '%' + value + '%';\n break;\n }\n if (isNamedParameter) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n namedRuleVal[namedField] = value;\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ruleVal.push(value);\n }\n }\n else {\n if (isNamedParameter) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n namedRuleVal[namedField] = '';\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ruleVal.push('');\n }\n if (rules[i].operator === 'isempty') {\n rules[i].operator = 'equal';\n }\n else {\n rules[i].operator = 'notequal';\n }\n }\n }\n else {\n if (!isNullOrUndefined(rules[i].value)) {\n if (isNamedParameter) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n namedRuleVal[namedField] = rules[i].value;\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ruleVal.push(rules[i].value);\n }\n }\n }\n if (isNamedParameter) {\n rules[i].value = ':' + namedField;\n }\n else {\n rules[i].value = '?';\n }\n }\n }\n }\n }\n }\n return { ruleVal: ruleVal, namedRuleVal: namedRuleVal };\n };\n QueryLibrary.prototype.getNamedParameter = function (field, namedParameters) {\n var newField = null;\n if (namedParameters.length > 0) {\n for (var i = namedParameters.length - 1; i >= 0; i--) {\n var currField = namedParameters[i];\n if (currField.indexOf(field) > -1) {\n var idx = parseInt(currField.split('_')[1], 10) + 1;\n newField = field + '_' + idx;\n namedParameters.push(newField);\n break;\n }\n }\n }\n if (!newField) {\n newField = field + '_1';\n namedParameters.push(newField);\n }\n return newField;\n };\n QueryLibrary.prototype.getModuleName = function () {\n return 'query-library';\n };\n return QueryLibrary;\n}());\nexport { QueryLibrary };\n"],"names":["this","templateCompiler"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-querybuilder.es5.js","sources":["../../src/query-builder/query-builder.js","../../src/query-builder/query-library.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/**\n * Query Builder Source\n */\n/* eslint-disable max-len */\nimport { Component, NotifyPropertyChanges, getComponent, Browser, compile, append, Draggable, remove } from '@syncfusion/ej2-base';\nimport { Property, ChildProperty, Complex, L10n, closest, extend, isNullOrUndefined, Collection, cldrData } from '@syncfusion/ej2-base';\nimport { getInstance, addClass, removeClass, rippleEffect, detach, classList } from '@syncfusion/ej2-base';\nimport { Internationalization, getUniqueID, select } from '@syncfusion/ej2-base';\nimport { Button, CheckBox, RadioButton } from '@syncfusion/ej2-buttons';\nimport { DropDownList, CheckBoxSelection, DropDownTree } from '@syncfusion/ej2-dropdowns';\nimport { MultiSelect } from '@syncfusion/ej2-dropdowns';\nimport { Event, EventHandler, getValue, Animation } from '@syncfusion/ej2-base';\nimport { Query, Predicate, DataManager, Deferred } from '@syncfusion/ej2-data';\nimport { TextBox, NumericTextBox } from '@syncfusion/ej2-inputs';\nimport { DatePicker } from '@syncfusion/ej2-calendars';\nimport { DropDownButton } from '@syncfusion/ej2-splitbuttons';\nimport { Tooltip, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nimport { compile as templateCompiler, getNumericObject } from '@syncfusion/ej2-base';\n/**\n * Defines the Columns of Query Builder\n */\nvar Columns = /** @class */ (function (_super) {\n __extends(Columns, _super);\n function Columns() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], Columns.prototype, \"field\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"label\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"type\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"values\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"operators\", void 0);\n __decorate([\n Property()\n ], Columns.prototype, \"ruleTemplate\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"template\", void 0);\n __decorate([\n Property({ isRequired: true, min: 0, max: Number.MAX_VALUE })\n ], Columns.prototype, \"validation\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"format\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"step\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"value\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"category\", void 0);\n __decorate([\n Property(null)\n ], Columns.prototype, \"columns\", void 0);\n return Columns;\n}(ChildProperty));\nexport { Columns };\n/**\n * Defines the rule of Query Builder\n */\nvar Rule = /** @class */ (function (_super) {\n __extends(Rule, _super);\n function Rule() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], Rule.prototype, \"condition\", void 0);\n __decorate([\n Collection([], Rule)\n ], Rule.prototype, \"rules\", void 0);\n __decorate([\n Property(null)\n ], Rule.prototype, \"field\", void 0);\n __decorate([\n Property(null)\n ], Rule.prototype, \"label\", void 0);\n __decorate([\n Property(null)\n ], Rule.prototype, \"type\", void 0);\n __decorate([\n Property(null)\n ], Rule.prototype, \"operator\", void 0);\n __decorate([\n Property(null)\n ], Rule.prototype, \"value\", void 0);\n __decorate([\n Property(false)\n ], Rule.prototype, \"not\", void 0);\n __decorate([\n Property(null)\n ], Rule.prototype, \"isLocked\", void 0);\n return Rule;\n}(ChildProperty));\nexport { Rule };\n/**\n * Defines the property for value.\n */\nvar Value = /** @class */ (function (_super) {\n __extends(Value, _super);\n function Value() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], Value.prototype, \"numericTextBoxModel\", void 0);\n __decorate([\n Property(null)\n ], Value.prototype, \"multiSelectModel\", void 0);\n __decorate([\n Property(null)\n ], Value.prototype, \"datePickerModel\", void 0);\n __decorate([\n Property(null)\n ], Value.prototype, \"textBoxModel\", void 0);\n __decorate([\n Property(null)\n ], Value.prototype, \"radioButtonModel\", void 0);\n return Value;\n}(ChildProperty));\nexport { Value };\n/**\n * Defines the ruleDelete, groupInsert, and groupDelete options of Query Builder.\n */\nvar ShowButtons = /** @class */ (function (_super) {\n __extends(ShowButtons, _super);\n function ShowButtons() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(false)\n ], ShowButtons.prototype, \"cloneRule\", void 0);\n __decorate([\n Property(false)\n ], ShowButtons.prototype, \"cloneGroup\", void 0);\n __decorate([\n Property(false)\n ], ShowButtons.prototype, \"lockRule\", void 0);\n __decorate([\n Property(false)\n ], ShowButtons.prototype, \"lockGroup\", void 0);\n __decorate([\n Property(true)\n ], ShowButtons.prototype, \"ruleDelete\", void 0);\n __decorate([\n Property(true)\n ], ShowButtons.prototype, \"groupInsert\", void 0);\n __decorate([\n Property(true)\n ], ShowButtons.prototype, \"groupDelete\", void 0);\n return ShowButtons;\n}(ChildProperty));\nexport { ShowButtons };\nvar QueryBuilder = /** @class */ (function (_super) {\n __extends(QueryBuilder, _super);\n function QueryBuilder(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isReadonly = true;\n _this.fields = { text: 'label', value: 'field' };\n _this.updatedRule = { not: false, condition: 'and', isLocked: false };\n _this.isLocale = false;\n _this.isRefreshed = false;\n _this.isNotified = false;\n _this.isAddSuccess = false;\n _this.isNotValueChange = false;\n _this.isFieldChange = false;\n _this.isFieldClose = false;\n _this.isDestroy = false;\n _this.isGetNestedData = false;\n _this.isCustomOprCols = [];\n _this.groupCounter = 0;\n _this.lockItems = [];\n _this.groupIndex = -1;\n _this.ruleIndex = -1;\n _this.isLastGroup = false;\n _this.cloneGrpBtnClick = false;\n _this.isMiddleGroup = false;\n _this.cloneRuleBtnClick = false;\n _this.isValueEmpty = false;\n _this.isPropChange = false;\n MultiSelect.Inject(CheckBoxSelection);\n return _this;\n }\n QueryBuilder.prototype.getPersistData = function () {\n return this.addOnPersist(['rule']);\n };\n /**\n * Clears the rules without root rule.\n *\n * @returns {void}.\n */\n QueryBuilder.prototype.reset = function () {\n this.isImportRules = false;\n var bodyElem = this.element.querySelector('.e-group-body');\n var inputElement = this.element.querySelectorAll('input.e-control');\n for (var i = 0, len = inputElement.length; i < len; i++) {\n if (inputElement[i].className.indexOf('e-tooltip') > -1) {\n getComponent(inputElement[i], 'tooltip').destroy();\n }\n else if (inputElement[i].parentElement.className.indexOf('e-tooltip') > -1) {\n getComponent(inputElement[i].parentElement, 'tooltip').destroy();\n }\n }\n if (bodyElem) {\n bodyElem.innerHTML = '';\n }\n else {\n var grpContainer = this.createElement('div', { attrs: { class: 'e-group-container' } });\n var grpHeader = this.createElement('div', { attrs: { class: 'e-group-header' } });\n var grpBody = this.createElement('div', { attrs: { class: 'e-group-body' } });\n grpContainer.appendChild(grpHeader).appendChild(grpBody);\n this.element.appendChild(grpContainer);\n bodyElem = this.element.querySelector('.e-group-body');\n }\n if (this.headerTemplate && this.isRoot) {\n this.element.innerHTML = '';\n this.isRoot = false;\n }\n if (this.enableNotCondition) {\n removeClass(this.element.querySelectorAll('.e-qb-toggle'), 'e-active-toggle');\n }\n bodyElem.appendChild(this.createElement('div', { attrs: { class: 'e-rule-list' } }));\n this.levelColl[this.element.id + '_group0'] = [0];\n this.setProperties({ rule: { condition: 'and', not: false, rules: [] } }, true);\n this.disableRuleCondition(bodyElem.parentElement);\n };\n QueryBuilder.prototype.getWrapper = function () {\n return this.element;\n };\n QueryBuilder.prototype.getModuleName = function () {\n return 'query-builder';\n };\n QueryBuilder.prototype.requiredModules = function () {\n var modules = [];\n modules.push({\n member: 'query-library',\n args: [this]\n });\n return modules;\n };\n QueryBuilder.prototype.GetRootColumnName = function (field) {\n if (!isNullOrUndefined(field)) {\n return this.separator ? field.split(this.separator)[0] : field;\n }\n return '';\n };\n QueryBuilder.prototype.initialize = function () {\n if (this.dataColl.length) {\n var columnKeys = Object.keys(this.dataColl[0]);\n var cols = [];\n var categories = [];\n var type = void 0;\n var groupBy = false;\n var isDate = false;\n var value = void 0;\n var validateObj = { isRequired: true, min: 0, max: Number.MAX_VALUE };\n if (this.columns.length) {\n this.columnSort();\n var columns = this.columns;\n for (var i = 0, len = columns.length; i < len; i++) {\n this.updateCustomOperator(columns[i], 'initial');\n if (!columns[i].type) {\n if (columnKeys.indexOf(columns[i].field) > -1) {\n value = this.dataColl[0][columns[i].field];\n type = typeof value;\n if (type === 'string') {\n isDate = !isNaN(Date.parse(value));\n }\n else if (type === 'object') {\n isDate = value instanceof Date && !isNaN(value.getTime());\n type = 'string';\n }\n columns[i].type = type;\n isDate = false;\n }\n type = 'string';\n }\n if (!columns[i].validation) {\n columns[i].validation = validateObj;\n }\n if (columns[i].category) {\n groupBy = true;\n }\n else {\n columns[i].category = this.l10n.getConstant('OtherFields');\n }\n if (categories.indexOf(columns[i].category) < 0) {\n categories.push(columns[i].category);\n }\n if (!columns[i].operators ||\n (this.isLocale && this.isCustomOprCols.indexOf(columns[i].field) === -1)) {\n columns[i].operators = this.customOperators[columns[i].type + 'Operator'];\n }\n }\n if (groupBy && (categories.length > 1 || categories[0] !== this.l10n.getConstant('OtherFields'))) {\n this.fields = { text: 'label', value: 'field', groupBy: 'category' };\n }\n this.updateSubFieldsFromColumns(this.columns);\n }\n else {\n for (var i = 0, len = columnKeys.length; i < len; i++) {\n value = this.dataColl[0][columnKeys[i]];\n type = typeof value;\n if (type === 'string') {\n isDate = !isNaN(Date.parse(value));\n }\n else if (type === 'object' && !Object.keys(value).length) {\n isDate = value instanceof Date && !isNaN(value.getTime());\n type = 'string';\n }\n cols[i] = { 'field': columnKeys[i], 'label': columnKeys[i], 'type': isDate ? 'date' : type,\n 'validation': validateObj };\n isDate = false;\n cols[i].operators = this.customOperators[cols[i].type + 'Operator'];\n if (type === 'object') {\n this.updateSubFields(value, cols[i]);\n }\n }\n this.columns = cols;\n }\n }\n else if (this.columns && this.columns.length) {\n var columns = this.columns;\n for (var i = 0, len = columns.length; i < len; i++) {\n if (columns[i].category) {\n this.fields = { text: 'label', value: 'field', groupBy: 'category' };\n }\n else {\n columns[i].category = this.l10n.getConstant('OtherFields');\n }\n this.updateCustomOperator(columns[i], 'initial');\n if (!columns[i].operators ||\n (this.isLocale && this.isCustomOprCols.indexOf(columns[i].field) === -1)) {\n columns[i].operators = this.customOperators[columns[i].type + 'Operator'];\n }\n }\n this.updateSubFieldsFromColumns(this.columns);\n }\n this.trigger('dataBound', { type: 'dataBound' });\n };\n QueryBuilder.prototype.updateSubFieldsFromColumns = function (col, field) {\n for (var i = 0; i < col.length; i++) {\n if (this.separator !== '' && col[i].field.indexOf(this.separator) < 0) {\n col[i].field = field ? field + this.separator + col[i].field : col[i].field;\n }\n if (col[i].operators) {\n this.updateCustomOperator(col[i]);\n }\n else if (col[i].type && col[i].type !== 'object') {\n col[i].operators = this.customOperators[col[i].type + 'Operator'];\n }\n if (col[i].columns) {\n col[i].type = 'object';\n this.updateSubFieldsFromColumns(col[i].columns, col[i].field);\n }\n }\n };\n QueryBuilder.prototype.updateSubFields = function (value, col, data) {\n var sampCol;\n col.columns = [];\n var columnKeys = Object.keys(value);\n var field;\n var label;\n var type;\n var result;\n data = data ? data : this.dataColl[0];\n for (var i = 0, len = columnKeys.length; i < len; i++) {\n var compField = col.field.split('.');\n if (data) {\n result = data[compField[compField.length - 1]][columnKeys[i]];\n }\n else {\n result = this.dataColl[0][col.field][columnKeys[i]];\n }\n var resData = data[col.field.split(this.separator)[col.field.split(this.separator).length - 1]];\n type = typeof result;\n field = col.field + this.separator + columnKeys[i];\n label = columnKeys[i];\n type = (type === 'object' && !isNaN(Date.parse(result))) ? 'date' : type;\n sampCol = { field: field, label: label, type: type };\n if (type !== 'object') {\n sampCol.operators = this.customOperators[type + 'Operator'];\n }\n col.columns.push(sampCol);\n if (type === 'object') {\n this.updateSubFields(result, sampCol, resData);\n }\n }\n };\n QueryBuilder.prototype.updateCustomOperator = function (column, from) {\n if (column.operators) {\n if (!this.isLocale && from === 'initial' && !isNullOrUndefined(this.isCustomOprCols)) {\n this.isCustomOprCols.push(column.field);\n }\n var _loop_1 = function (j) {\n var sqlIdx = Object.keys(column.operators[j]).indexOf('sqlOperator');\n if (sqlIdx > -1) {\n var operator_1 = column.operators[j];\n var operColl = Object.keys(operator_1);\n var values = operColl.map(function (key) { return operator_1[\"\" + key]; }).join(',').split(',');\n var valueIdx = operColl.indexOf('value');\n this_1.operators[values[valueIdx]] = values[sqlIdx];\n }\n };\n var this_1 = this;\n for (var j = 0; j < column.operators.length; j++) {\n _loop_1(j);\n }\n }\n };\n QueryBuilder.prototype.focusEventHandler = function (event) {\n this.target = event.target;\n };\n QueryBuilder.prototype.clickEventHandler = function (event) {\n var _this = this;\n var target = event.target;\n var args;\n this.isImportRules = false;\n var groupID;\n if (target.tagName === 'SPAN') {\n target = target.parentElement;\n }\n if (typeof target.className === 'string' && target.className.indexOf('e-collapse-rule') > -1) {\n var animation = new Animation({ duration: 1000, delay: 0 });\n if (this.element.querySelectorAll('.e-summary-content').length < 1) {\n this.renderSummary();\n }\n var summaryElem = document.getElementById(this.element.id + '_summary_content');\n var txtareaElem = summaryElem.querySelector('.e-summary-text');\n animation.animate('.e-query-builder', { name: 'SlideLeftIn' });\n var groupElem = this.element.querySelector('.e-group-container');\n groupElem.style.display = 'none';\n txtareaElem.textContent = this.getSqlFromRules(this.rule);\n summaryElem.style.display = 'block';\n txtareaElem.style.height = txtareaElem.scrollHeight + 'px';\n }\n if (target.tagName === 'BUTTON' && typeof target.className === 'string' && target.className.indexOf('e-qb-toggle') < 0) {\n var animation = new Animation({ duration: 1000, delay: 0 });\n switch (true) {\n case target.className.indexOf('e-removerule') > -1:\n this.actionButton = target;\n this.deleteRule(target);\n break;\n case target.className.indexOf('e-clone-rule-btn') > -1:\n this.actionButton = target;\n this.cloneRuleBtnClick = true;\n this.ruleClone(target);\n break;\n case target.className.indexOf('e-lock-rule-btn') > -1:\n this.actionButton = target;\n this.ruleLock(target);\n break;\n case target.className.indexOf('e-lock-grp-btn') > -1:\n this.actionButton = target;\n this.groupLock(target);\n break;\n case target.className.indexOf('e-clone-grp-btn') > -1:\n this.actionButton = target;\n this.cloneGrpBtnClick = true;\n this.groupClone(closest(target, '.e-group-container'));\n break;\n case target.className.indexOf('e-deletegroup') > -1:\n this.actionButton = target;\n this.deleteGroup(closest(target, '.e-group-container'));\n break;\n case target.className.indexOf('e-edit-rule') > -1:\n animation.animate('.e-query-builder', { name: 'SlideLeftIn' });\n document.getElementById(this.element.id + '_summary_content').style.display = 'none';\n if (this.element.querySelectorAll('.e-group-container').length < 1) {\n this.addGroupElement(false, this.element, this.rule.condition, false, this.rule.not);\n var mRules = extend({}, this.rule, {}, true);\n this.setGroupRules(mRules);\n this.renderSummaryCollapse();\n }\n else {\n var groupElem = this.element.querySelector('.e-group-container');\n if (groupElem.querySelectorAll('.e-collapse-rule').length < 1) {\n this.renderSummaryCollapse();\n }\n groupElem.style.display = 'block';\n }\n break;\n }\n }\n else if ((target.tagName === 'LABEL' && target.parentElement.className.indexOf('e-btn-group') > -1) ||\n (typeof target.className === 'string' && target.className.indexOf('e-qb-toggle') > -1)) {\n var element = closest(target, '.e-group-container');\n if (!this.headerTemplate) {\n var forIdValue = target.getAttribute('for');\n var targetValue = void 0;\n if (forIdValue) {\n targetValue = document.getElementById(forIdValue).getAttribute('value');\n }\n else if (this.enableSeparateConnector) {\n if (target.classList.contains('e-btngroup-or-lbl')) {\n targetValue = 'or';\n }\n else if (target.classList.contains('e-btngroup-and-lbl')) {\n targetValue = 'and';\n }\n else {\n targetValue = target.textContent;\n }\n }\n groupID = element.id.replace(this.element.id + '_', '');\n var group = this.getGroup(groupID);\n var ariaChecked = void 0;\n if (this.enableNotCondition) {\n if (target.className.indexOf('e-qb-toggle') > -1) {\n var toggleElem = element.getElementsByClassName('e-qb-toggle')[0];\n if (toggleElem.className.indexOf('e-active-toggle') > -1) {\n removeClass([toggleElem], 'e-active-toggle');\n ariaChecked = false;\n }\n else {\n addClass([toggleElem], 'e-active-toggle');\n ariaChecked = true;\n }\n targetValue = group.condition;\n }\n else {\n ariaChecked = group.not;\n }\n }\n args = { groupID: groupID, cancel: false, type: 'condition', value: targetValue.toLowerCase() };\n if (this.enableNotCondition) {\n args = { groupID: groupID, cancel: false, type: 'condition', value: targetValue.toLowerCase(),\n 'not': ariaChecked };\n }\n }\n if (!this.isImportRules) {\n this.trigger('beforeChange', args, function (observedChangeArgs) {\n _this.beforeSuccessCallBack(observedChangeArgs, target);\n });\n }\n else {\n this.beforeSuccessCallBack(args, target);\n }\n this.target = target;\n }\n };\n QueryBuilder.prototype.beforeSuccessCallBack = function (args, target) {\n if (args && !args.cancel) {\n var element = closest(target, '.e-group-container');\n var groupID = element.id.replace(this.element.id + '_', '');\n var beforeRules = this.getValidRules(this.rule);\n var rule = this.getParentGroup(element);\n if (this.enableSeparateConnector) {\n if (isNullOrUndefined(closest(target, '.e-rule-container')) &&\n element.classList.contains('e-group-container')) {\n element = target.parentElement.previousElementSibling !== null ?\n target.parentElement.previousElementSibling : element;\n }\n else {\n element = closest(target, '.e-rule-container');\n }\n var id = element.id.replace(this.element.id + '_', '');\n if (element.classList.contains('e-rule-container')) {\n rule = this.getRule(element);\n rule.condition = args.value;\n }\n else if (element.classList.contains('e-group-container')) {\n rule = this.getGroup(element);\n rule.condition = args.value;\n }\n if (this.enableNotCondition) {\n rule.not = args.not;\n }\n if (!this.isImportRules) {\n this.trigger('change', { groupID: groupID, ruleID: id, type: 'condition', value: rule.condition });\n }\n }\n else {\n rule.condition = args.value;\n if (this.enableNotCondition) {\n rule.not = args.not;\n }\n if (!this.isImportRules) {\n this.trigger('change', { groupID: groupID, type: 'condition', value: rule.condition });\n }\n }\n this.filterRules(beforeRules, this.getValidRules(this.rule), 'condition');\n if (this.enableSeparateConnector) {\n var andElem = target.parentElement.querySelector('.e-btngroup-and');\n var orElem = target.parentElement.querySelector('.e-btngroup-or');\n if (andElem && orElem) {\n if (args.value === 'and') {\n andElem.checked = true;\n orElem.checked = false;\n }\n else if (args.value === 'or') {\n orElem.checked = true;\n andElem.checked = false;\n }\n }\n }\n }\n };\n QueryBuilder.prototype.selectBtn = function (target, event) {\n if (event.name === 'beforeOpen') {\n if (this.showButtons.groupInsert || isNullOrUndefined(this.showButtons.groupInsert)) {\n if (this.element.querySelectorAll('.e-group-container').length >= this.maxGroupCount + 1) {\n addClass([event.element.querySelector('li span.e-addgroup').parentElement], 'e-button-hide');\n }\n else {\n removeClass([event.element.querySelector('li span.e-addgroup').parentElement], 'e-button-hide');\n }\n if (this.enableRtl) {\n addClass([event.element.querySelector('li').parentElement], 'e-rtl');\n }\n }\n else {\n addClass([event.element.querySelector('li span.e-addgroup').parentElement], 'e-button-hide');\n }\n }\n else if (event.element.children[0].className.indexOf('e-addrule') > -1) {\n this.addRuleElement(closest(target, '.e-group-container'), {});\n }\n else if (event.element.children[0].className.indexOf('e-addgroup') > -1) {\n this.addGroupElement(true, closest(target, '.e-group-container'), '', true);\n }\n };\n QueryBuilder.prototype.appendRuleElem = function (target, column, type, parentId, action, rule) {\n var ruleElem;\n var elem;\n var ruleListElem = target.querySelector('.e-rule-list');\n var args;\n if (type === 'change') {\n ruleElem = select('#' + parentId, target);\n }\n else {\n ruleElem = this.createElement('div', { attrs: { class: 'e-rule-container' } });\n ruleElem.setAttribute('id', target.id + '_rule' + this.ruleIdCounter);\n if (this.showButtons.cloneRule && this.cloneRuleBtnClick) {\n if (this.ruleIndex < 0) {\n ruleListElem.appendChild(ruleElem);\n }\n else {\n if (this.enableSeparateConnector) {\n var index = -1;\n var tempRuleIndex = this.ruleIndex + 1;\n for (var i = 0; i < tempRuleIndex; i++) {\n if (i === ruleListElem.children.length) {\n break;\n }\n if (ruleListElem.children[i].classList.contains('e-rule-container')) {\n tempRuleIndex++;\n index++;\n }\n }\n ruleListElem.insertBefore(ruleElem, ruleListElem.children[this.ruleIndex + index + 1]); // added clone rule to next position\n }\n else {\n ruleListElem.insertBefore(ruleElem, ruleListElem.children[this.ruleIndex + 1]); // added clone rule to next position\n }\n }\n this.cloneRuleBtnClick = false;\n }\n else {\n ruleListElem.appendChild(ruleElem);\n }\n this.ruleIdCounter++;\n }\n if (column && column.ruleTemplate && rule) {\n args = { requestType: 'template-initialize', ruleID: ruleElem.id, action: action, fields: this.fields, rule: rule };\n this.trigger('actionBegin', args);\n this.ruleTemplateFn = this.templateParser(column.ruleTemplate);\n var templateID = this.element.id + column.field;\n var template = void 0;\n args.fields = this.fields;\n args.columns = this.columns;\n if (rule.field === '') {\n rule.field = column.field;\n }\n args.operators = this.getOperators(rule.field);\n args.operatorFields = { text: 'key', value: 'value' };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n template = this.ruleTemplateFn(args, this, ruleElem.id, templateID)[0];\n elem = template;\n elem.className += ' e-rule-field';\n ruleElem.appendChild(elem);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (this.isAngular) {\n var templateColl = this.ruleTemplateFn(args, this, ruleElem.id, templateID);\n template = (templateColl[0].nodeType === 3) ? templateColl[1] : templateColl[0];\n elem = template;\n elem.className += ' e-rule-field';\n ruleElem.appendChild(elem);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (this.isVue3) {\n template = this.ruleTemplateFn(args, this, 'Template', templateID);\n elem = template;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n append(elem, ruleElem);\n if (ruleElem.children.length) {\n ruleElem.children[ruleElem.children.length - 1].className += ' e-rule-field';\n }\n }\n else {\n template = this.ruleTemplateFn(args, this, 'Template', templateID)[0];\n elem = template;\n elem.className += ' e-rule-field';\n ruleElem.appendChild(elem);\n }\n }\n else {\n elem = this.ruleElem.querySelector('.e-rule-field').cloneNode(true);\n ruleElem.appendChild(elem);\n }\n if (this.showButtons.lockGroup) {\n removeClass(ruleElem.querySelectorAll('.e-lock-grp-btn'), 'e-button-hide');\n }\n if (this.showButtons.lockRule) {\n removeClass(ruleElem.querySelectorAll('.e-lock-rule-btn'), 'e-button-hide');\n }\n if (this.showButtons.cloneGroup) {\n removeClass(ruleElem.querySelectorAll('.e-clone-grp-btn'), 'e-button-hide');\n }\n if (this.showButtons.cloneRule) {\n removeClass(ruleElem.querySelectorAll('.e-clone-rule-btn'), 'e-button-hide');\n }\n if (this.showButtons.ruleDelete) {\n removeClass(ruleElem.querySelectorAll('.e-lock-grp-btn'), 'e-button-hide');\n }\n if (this.allowDragAndDrop) {\n removeClass(ruleElem.querySelectorAll('.e-drag-qb-rule'), 'e-hidden');\n }\n if (column && column.ruleTemplate && rule) {\n this.renderReactTemplates();\n }\n return ruleElem;\n };\n QueryBuilder.prototype.addRuleElement = function (target, rule, column, action, parentId, isRuleTemplate) {\n var _this = this;\n if (!target) {\n return;\n }\n var args = { groupID: target.id.replace(this.element.id + '_', ''), cancel: false, type: 'insertRule' };\n if (!this.isImportRules && !this.isInitialLoad && !this.prvtEvtTgrDaD) {\n this.trigger('beforeChange', args, function (observedChangeArgs) {\n _this.addRuleSuccessCallBack(observedChangeArgs, target, rule, column, action, parentId, isRuleTemplate);\n });\n }\n else {\n this.isInitialLoad = false;\n this.addRuleSuccessCallBack(args, target, rule, column, action, parentId, isRuleTemplate);\n }\n };\n QueryBuilder.prototype.addRuleSuccessCallBack = function (args, trgt, rule, col, act, pId, isRlTmp) {\n var height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';\n var ruleID;\n var column = (rule && rule.field) ? this.getColumn(rule.field) : col ? col : this.columns[0];\n var operators;\n var dropDownList;\n var ruleElem;\n var newRule = { 'label': '', 'field': '', 'type': '', 'operator': '' };\n if (!args.cancel) {\n if (column && column.ruleTemplate && rule.field) {\n this.selectedColumn = column;\n operators = this.selectedColumn.operators;\n newRule = { 'label': column.label, 'field': column.field, 'type': column.type, 'operator': operators[0].value };\n var passedRule = Object.keys(rule).length ? rule : newRule;\n ruleElem = this.appendRuleElem(trgt, column, act, pId, 'field', passedRule);\n var args_1 = { requestType: 'template-create', action: 'insert-rule', ruleID: ruleElem.id,\n fields: this.fields, rule: passedRule };\n this.trigger('actionBegin', args_1);\n }\n else {\n ruleElem = this.appendRuleElem(trgt, column, act, pId, 'field');\n ruleElem.querySelector('.e-filter-input').setAttribute('id', ruleElem.id + '_filterkey');\n var element = ruleElem.querySelector('.e-rule-delete');\n if (this.element.className.indexOf('e-device') > -1 || this.displayMode === 'Vertical') {\n element.textContent = this.l10n.getConstant('Remove');\n addClass([element], 'e-flat');\n addClass([element], 'e-primary');\n }\n else {\n addClass([element], 'e-round');\n addClass([element], 'e-icon-btn');\n element.setAttribute('title', this.l10n.getConstant('DeleteRule'));\n var spanElement = this.createElement('span', { attrs: { class: 'e-btn-icon e-icons e-delete-icon' } });\n ruleElem.querySelector('.e-rule-delete').appendChild(spanElement);\n }\n if (!this.showButtons.ruleDelete) {\n element.classList.add('e-button-hide');\n }\n }\n if (this.displayMode === 'Vertical' || this.element.className.indexOf('e-device') > -1) {\n ruleElem.className = 'e-rule-container e-vertical-mode';\n }\n else {\n ruleElem.className = 'e-rule-container e-horizontal-mode';\n }\n var previousRuleElem = ruleElem.previousElementSibling;\n if (this.enableSeparateConnector) {\n var prevRule = void 0;\n var ruleContainer = void 0;\n if (previousRuleElem && previousRuleElem.classList.contains('e-group-container')) {\n ruleContainer = previousRuleElem.querySelectorAll('.e-rule-container');\n previousRuleElem = ruleContainer[ruleContainer.length - 1];\n }\n if (previousRuleElem && previousRuleElem.classList.contains('e-rule-container')) {\n prevRule = this.getRule(previousRuleElem);\n }\n if (this.headerTemplate && previousRuleElem && prevRule) {\n this.headerTemplateFn(previousRuleElem, false, prevRule.condition, prevRule, previousRuleElem.id);\n }\n else if (isNullOrUndefined(previousRuleElem) && ruleElem.id !== this.element.id + '_group0_rule0') {\n var group = ruleElem.closest('.e-group-container');\n if (group && group.previousElementSibling) {\n var prevElem = group.previousElementSibling;\n var prevRuleContainer = prevElem.querySelectorAll('.e-rule-container');\n if (prevElem.classList.contains('e-group-container')) {\n prevElem = prevRuleContainer[prevRuleContainer.length - 1];\n }\n if (prevElem.classList.contains('e-rule-container')) {\n var prevRule_1 = this.getRule(prevElem);\n this.headerTemplateFn(prevElem, false, prevRule_1.condition, prevRule_1, prevElem.id, true);\n }\n }\n else {\n this.headerTemplateFn(ruleElem, false, rule.condition, rule, ruleElem.id, true);\n }\n }\n }\n else {\n if (previousRuleElem && previousRuleElem.className.indexOf('e-rule-container') > -1) {\n if (ruleElem.className.indexOf('e-joined-rule') < 0) {\n ruleElem.className += ' e-joined-rule';\n }\n if (previousRuleElem.className.indexOf('e-prev-joined-rule') < 0) {\n previousRuleElem.className += ' e-prev-joined-rule';\n }\n }\n }\n if (previousRuleElem && previousRuleElem.className.indexOf('e-group-container') > -1 &&\n ruleElem.className.indexOf('e-separate-rule') < 0) {\n ruleElem.className += ' e-separate-rule';\n }\n if (!this.isImportRules) {\n this.updateAddedRule(trgt, rule, newRule, isRlTmp, pId, this.enableSeparateConnector ? true : null);\n }\n if (!column || (column && !column.ruleTemplate) || !rule.field) {\n if (this.fieldMode === 'Default') {\n var ddlField = void 0;\n var ddlValue = void 0;\n if (this.separator && rule.field) {\n ddlValue = this.GetRootColumnName(rule.field);\n }\n else if (this.autoSelectField) {\n ddlValue = this.GetRootColumnName(rule.field);\n }\n else {\n ddlValue = this.isImportRules ? this.GetRootColumnName(rule.field) : rule.field;\n }\n ddlField = {\n dataSource: this.columns,\n fields: this.fields, placeholder: this.l10n.getConstant('SelectField'),\n popupHeight: ((this.columns.length > 5) ? height : 'auto'), close: this.fieldClose.bind(this, ruleElem.id + '_filterkey'),\n change: this.changeField.bind(this), value: rule ? ddlValue : null, open: this.popupOpen.bind(this, true), cssClass: 'qb-dropdownlist'\n };\n if (this.fieldModel) {\n ddlField = __assign({}, ddlField, this.fieldModel);\n }\n dropDownList = new DropDownList(ddlField);\n dropDownList.appendTo('#' + ruleElem.id + '_filterkey');\n var ddlVal = void 0;\n if (this.separator && rule.field) {\n ddlVal = this.GetRootColumnName(rule.field);\n }\n else {\n ddlVal = this.isImportRules ? this.GetRootColumnName(rule.field) :\n dropDownList.value;\n }\n this.selectedColumn = dropDownList.getDataByValue(ddlVal);\n if (Object.keys(rule).length) {\n this.changeRule(rule, {\n element: dropDownList.element, itemData: this.selectedColumn\n });\n }\n }\n else {\n var ddlField = void 0;\n var ddlValue = this.isImportRules ? rule.field : rule.field;\n this.dummyDropdownTreeDs = extend([], this.columns, [], true);\n this.updateDropdowntreeDS(this.dummyDropdownTreeDs);\n ddlField = {\n fields: { dataSource: this.dummyDropdownTreeDs,\n value: 'field', text: 'label', child: 'columns', expanded: 'expanded', selectable: 'selectable' },\n placeholder: this.l10n.getConstant('SelectField'), showClearButton: false,\n popupHeight: ((this.columns.length > 5) ? height : 'auto'), changeOnBlur: false,\n change: this.changeField.bind(this), value: !isNullOrUndefined(ddlValue) ? [ddlValue] : null,\n open: this.popupOpen.bind(this, false), treeSettings: { expandOn: 'Click' },\n cssClass: 'e-qb-ddt', filtering: this.dropdownTreeFiltering.bind(this), close: this.dropdownTreeClose.bind(this)\n };\n if (this.fieldModel) {\n ddlField = __assign({}, ddlField, this.fieldModel);\n }\n var dropdowntree = new DropDownTree(ddlField);\n dropdowntree.appendTo('#' + ruleElem.id + '_filterkey');\n if (!isNullOrUndefined(dropdowntree.value)) {\n var value = this.getLabelFromColumn(dropdowntree.value[0]);\n dropdowntree.element.value = value;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var ddlVal = !isNullOrUndefined(rule.field) ?\n this.GetRootColumnName(rule.field) : dropdowntree.value;\n this.selectedColumn = this.getColumn(ddlVal);\n if (Object.keys(rule).length) {\n this.changeRule(rule, {\n element: dropdowntree.element, itemData: this.selectedColumn\n });\n }\n }\n }\n ruleID = ruleElem.id.replace(this.element.id + '_', '');\n if (rule && rule.isLocked) {\n var lockRuleTarget = ruleElem.querySelector('.e-lock-rule-btn');\n this.ruleLock(lockRuleTarget);\n }\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('change', { groupID: trgt.id.replace(this.element.id + '_', ''), ruleID: ruleID, type: 'insertRule' });\n }\n }\n if (this.enableSeparateConnector && isNullOrUndefined(rule.condition) && ruleID) {\n rule = this.getRule(ruleID);\n }\n if (this.enableSeparateConnector) {\n var prevElem = ruleElem.previousElementSibling;\n var ruleContainer = void 0;\n while (prevElem && !prevElem.classList.contains('e-rule-container')) {\n if (prevElem.classList.contains('e-group-container')) {\n ruleContainer = prevElem.querySelectorAll('.e-rule-container');\n prevElem = ruleContainer[ruleContainer.length - 1];\n break;\n }\n prevElem = prevElem.previousElementSibling;\n }\n if (this.headerTemplate && prevElem) {\n var prevRule = this.getRule(prevElem);\n var args_2 = { requestType: 'rule-template-create', ruleID: prevElem.id, condition: prevRule.condition,\n notCondition: this.enableNotCondition ? true : undefined };\n this.trigger('actionBegin', args_2);\n }\n else if (isNullOrUndefined(prevElem) && ruleElem.id !== this.element.id + '_group0_rule0') {\n var group = ruleElem.closest('.e-group-container');\n if (group && group.previousElementSibling && group.previousElementSibling.previousElementSibling) {\n var prevElem_1 = group.previousElementSibling.previousElementSibling;\n if (prevElem_1.classList.contains('e-group-container')) {\n var ruleContainer_1 = prevElem_1.querySelectorAll('.e-rule-container');\n prevElem_1 = ruleContainer_1[ruleContainer_1.length - 1];\n }\n if (prevElem_1.classList.contains('e-rule-container')) {\n var prevRule = this.getRule(prevElem_1);\n var args_3 = { requestType: 'rule-template-create', ruleID: prevElem_1.id,\n condition: prevRule.condition, notCondition: this.enableNotCondition ? true : undefined };\n this.trigger('actionBegin', args_3);\n }\n }\n }\n this.setMultiConnector(ruleElem);\n }\n };\n QueryBuilder.prototype.dropdownTreeFiltering = function (args) {\n var _this = this;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var proxy = this;\n var ruleElemID = '';\n var srcElement = args.event.srcElement;\n var isClearIcon = srcElement.classList.contains('e-clear-icon');\n var inputElem = isClearIcon ? srcElement.parentElement.querySelector('.e-textbox') : srcElement;\n ruleElemID = inputElem.id.split('_filterkey')[0];\n var ruleElem = document.getElementById(ruleElemID);\n this.ddTree = getComponent(ruleElem.querySelector('input.e-dropdowntree'), 'dropdowntree');\n var hierarchicalData = extend([], this.columns, [], true);\n // Cancel the default filtering.\n args.cancel = true;\n if (args.text === '') {\n this.changeDataSource(hierarchicalData);\n }\n else {\n var matchedDataSource = hierarchicalData\n .map(function (data) { return _this.nestedChildFilter(args.text, data); })\n .filter(function (filteredChild) { return filteredChild !== null; });\n this.changeDataSource(matchedDataSource);\n setTimeout(function () {\n if (!isNullOrUndefined(proxy.ddTree) && !isNullOrUndefined(proxy.ddTree.treeObj)) {\n proxy.ddTree.treeObj.expandAll();\n }\n }, 100);\n }\n };\n QueryBuilder.prototype.changeDataSource = function (data) {\n this.updateDropdowntreeDS(data);\n this.ddTree.treeObj.fields = {\n dataSource: data,\n value: 'field',\n text: 'label',\n child: 'columns',\n expanded: 'expanded'\n };\n this.ddTree.treeObj.refresh();\n };\n QueryBuilder.prototype.nestedChildFilter = function (value, node) {\n var _this = this;\n var children = node[this.ddTree.fields.child];\n if (!children) {\n return this.isMatchedNode(value, node) ? node : null;\n }\n var matchedChildren = children\n .map(function (child) { return _this.nestedChildFilter(value, child); })\n .filter(function (filteredChild) { return filteredChild !== null; });\n if (matchedChildren.length) {\n node[this.ddTree.fields.child] = matchedChildren;\n return node;\n }\n else {\n node[this.ddTree.fields.child] = children;\n return this.isMatchedNode(value, node) ? node : null;\n }\n };\n QueryBuilder.prototype.isMatchedNode = function (value, node) {\n var checkValue = node[this.ddTree.fields.text].toLowerCase();\n value = value ? value.toLowerCase() : '';\n return checkValue.indexOf(value) !== -1;\n };\n QueryBuilder.prototype.dropdownTreeClose = function () {\n if (this.ddTree) {\n this.changeDataSource(extend([], this.columns, [], true));\n }\n this.ddTree = null;\n };\n QueryBuilder.prototype.updateDropdowntreeDS = function (columns) {\n for (var i = 0; i < columns.length; i++) {\n if (columns[parseInt(i.toString(), 10)].type === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isAngular && columns[parseInt(i.toString(), 10)].template) {\n delete columns[parseInt(i.toString(), 10)].template;\n }\n columns[parseInt(i.toString(), 10)].selectable = false;\n this.updateDropdowntreeDS(columns[parseInt(i.toString(), 10)].columns);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (this.isAngular && columns[parseInt(i.toString(), 10)].template) {\n delete columns[parseInt(i.toString(), 10)].template;\n }\n }\n };\n QueryBuilder.prototype.updateAddedRule = function (target, rule, newRule, isRuleTemplate, pId, isNewRuleAdded) {\n var ruleElem;\n var index = 0;\n var groupElem;\n var rules;\n if (isRuleTemplate) {\n ruleElem = select('#' + pId, target);\n groupElem = closest(target, '.e-group-container');\n rules = this.getParentGroup(groupElem);\n while (ruleElem && ruleElem.previousElementSibling !== null) {\n ruleElem = ruleElem.previousElementSibling;\n var enableSeparateCondition = this.enableSeparateConnector && ((!this.headerTemplate && !ruleElem.classList.contains('e-btn-group')) ||\n (this.headerTemplate && (ruleElem.classList.contains('e-rule-container') ||\n ruleElem.classList.contains('e-group-container'))));\n if (!this.enableSeparateConnector || enableSeparateCondition) {\n index++;\n }\n }\n rules.rules[index] = rule;\n }\n else {\n groupElem = closest(target, '.e-group-container');\n rules = this.getParentGroup(groupElem);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var custom = rule.custom;\n if (Object.keys(rule).length) {\n if (this.ruleIndex < 0) {\n rules.rules.push({\n 'field': rule.field, 'type': rule.type, 'label': rule.label, 'operator': rule.operator, value: rule.value\n });\n if (custom) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rules.rules[rules.rules.length - 1].custom = custom;\n }\n if (this.enableSeparateConnector) {\n rules.rules[rules.rules.length - 1].condition = rule.condition ? rule.condition : newRule.condition;\n }\n }\n else {\n rules.rules.splice(this.ruleIndex + 1, 0, {\n 'field': rule.field, 'type': rule.type, 'label': rule.label, 'operator': rule.operator, value: rule.value\n });\n if (custom) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rules.rules[this.ruleIndex + 1].custom = custom;\n }\n if (this.enableSeparateConnector) {\n rules.rules[this.ruleIndex + 1].condition = rule.condition ? rule.condition : newRule.condition;\n }\n }\n }\n else {\n if (custom) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newRule.custom = custom;\n }\n if (this.autoSelectField) {\n rule.field = newRule.field = this.rule.rules[0].field;\n }\n rules.rules.push(newRule);\n }\n }\n this.disableRuleCondition(target, rules, isNewRuleAdded);\n };\n QueryBuilder.prototype.changeRuleTemplate = function (column, element) {\n if (column && column.ruleTemplate) {\n return;\n }\n else {\n var parentGroup = closest(element, '.e-group-container');\n var parentId = closest(element, '.e-rule-container').id;\n if (this.previousColumn && this.previousColumn.ruleTemplate) {\n detach(element.closest('[id=\"' + parentId + '\"]').querySelector('.e-rule-field'));\n this.clearQBTemplate([parentId]);\n }\n if (column) {\n var operVal = this.selectedColumn.operators;\n var rule = { field: column.field, label: column.label, operator: operVal[0].value, value: '' };\n this.addRuleElement(parentGroup, rule, column, 'change', parentId, true);\n }\n else {\n var rule = { field: '', label: '', operator: '', value: '' };\n this.addRuleElement(parentGroup, rule, column, 'change', parentId, true);\n }\n }\n };\n QueryBuilder.prototype.renderToolTip = function (element) {\n var tooltip = new Tooltip({ content: this.l10n.getConstant('ValidationMessage'), isSticky: true,\n position: 'BottomCenter', cssClass: 'e-querybuilder-error', afterClose: function () {\n tooltip.destroy();\n }, beforeOpen: function (args) {\n var tooltipCloseElement = args.element.querySelector('.e-tooltip-close');\n if (tooltipCloseElement) {\n tooltipCloseElement.style.display = 'none';\n }\n } });\n tooltip.appendTo(element);\n tooltip.open(element);\n };\n /**\n * Validate the conditions and it display errors for invalid fields.\n *\n * @returns {boolean} - Validation\n */\n QueryBuilder.prototype.validateFields = function () {\n var isValid = true;\n var dropDownTreeObj;\n if (this.allowValidation) {\n var excludeOprs = ['isnull', 'isnotnull', 'isempty', 'isnotempty'];\n var i = void 0;\n var len = void 0;\n var fieldElem = void 0;\n var indexElem = void 0;\n var valArray = [];\n var groupElem = void 0;\n var index = void 0;\n var dropDownObj = void 0;\n var tempElem = void 0;\n var rule = void 0;\n var ruleElemCln = this.element.querySelectorAll('.e-rule-container');\n for (i = 0, len = ruleElemCln.length; i < len; i++) {\n var validateRule = void 0;\n groupElem = closest(ruleElemCln[i], '.e-group-container');\n rule = this.getParentGroup(groupElem);\n index = 0;\n indexElem = tempElem = ruleElemCln[i];\n if (this.fieldMode === 'DropdownTree') {\n dropDownTreeObj = getComponent(ruleElemCln[i].querySelector('.e-rule-filter input.e-dropdowntree'), 'dropdowntree');\n if (dropDownTreeObj && dropDownTreeObj.value && dropDownTreeObj.value.length) {\n this.selectedColumn = this.getColumn(dropDownTreeObj.value[0]);\n validateRule = this.selectedColumn.validation;\n }\n }\n else {\n dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-filter input.e-dropdownlist'), 'dropdownlist');\n if (dropDownObj && dropDownObj.value) {\n this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);\n validateRule = !isNullOrUndefined(dropDownObj.value) && this.selectedColumn.validation;\n }\n }\n fieldElem = tempElem.querySelector('.e-rule-field input.e-control');\n if (validateRule && validateRule.isRequired) {\n while (indexElem && indexElem.previousElementSibling !== null) {\n indexElem = indexElem.previousElementSibling;\n var separateCondition = this.enableSeparateConnector && ((!this.headerTemplate && !indexElem.classList.contains('e-btn-group')) ||\n (this.headerTemplate && (indexElem.classList.contains('e-rule-container') || indexElem.classList.contains('e-group-container'))));\n if (!this.enableSeparateConnector || separateCondition) {\n index++;\n }\n }\n fieldElem = tempElem.querySelector('.e-rule-operator .e-control');\n if (!rule.rules[index].operator) {\n if (fieldElem.parentElement.className.indexOf('e-tooltip') < 0 && fieldElem.className.indexOf('e-tooltip') < 0) {\n this.renderToolTip(fieldElem.parentElement);\n }\n isValid = false;\n }\n if (rule.rules[index].value instanceof Array) {\n valArray = rule.rules[index].value;\n }\n if (excludeOprs.indexOf(rule.rules[index].operator) < -1 &&\n (isNullOrUndefined(rule.rules[index].value) &&\n rule.rules[index].type !== 'date') || rule.rules[index].value === '' || rule.rules[index].value === null ||\n (rule.rules[index].value instanceof Array && valArray.length < 1)) {\n var valElem = tempElem.querySelectorAll('.e-rule-value .e-control');\n if (excludeOprs.indexOf(rule.rules[index].operator) < 0) {\n isValid = false;\n }\n for (var j = 0, jLen = valElem.length; j < jLen; j++) {\n var element = valElem[j];\n var elem = void 0;\n if (element.parentElement.className.indexOf('e-searcher') > -1) {\n elem = closest(element, '.e-multi-select-wrapper');\n if (elem.className.indexOf('e-tooltip') < 0) {\n this.renderToolTip(elem);\n }\n }\n else if (valElem[j].parentElement.className.indexOf('e-tooltip') < 0 && valElem[j].className.indexOf('e-tooltip') < 0) {\n this.renderToolTip(valElem[j].parentElement);\n }\n j++;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (rule.rules[index].type === 'date' && (rule.rules[index].value === null || rule.rules[index].value.indexOf(null) > -1)) {\n var valElem = tempElem.querySelectorAll('.e-rule-value .e-control');\n if (excludeOprs.indexOf(rule.rules[index].operator) < 0) {\n isValid = false;\n }\n for (var j = 0, jLen = valElem.length; j < jLen; j++) {\n if (valElem[j].parentElement.className.indexOf('e-tooltip') < 0 && valElem[j].className.indexOf('e-tooltip') < 0 && (isNullOrUndefined(rule.rules[index].value) || rule.rules[index].value[j] == null)) {\n this.renderToolTip(valElem[j].parentElement);\n }\n }\n }\n }\n else if ((dropDownObj && dropDownObj.element && isNullOrUndefined(dropDownObj.value)) ||\n (dropDownTreeObj && dropDownTreeObj.element && (isNullOrUndefined(dropDownTreeObj.value) ||\n dropDownTreeObj.value.length < 1))) {\n if (fieldElem.parentElement.className.indexOf('e-tooltip') < 0) {\n this.renderToolTip(fieldElem.parentElement);\n }\n isValid = false;\n }\n }\n }\n return isValid;\n };\n QueryBuilder.prototype.refreshLevelColl = function () {\n this.levelColl = {};\n var groupElem = this.element.querySelector('.e-group-container');\n if (groupElem) {\n this.levelColl[groupElem.id] = [0];\n var obj = { groupElement: groupElem, level: [0] };\n this.refreshLevel(obj);\n }\n };\n QueryBuilder.prototype.refreshLevel = function (obj) {\n var ruleList = obj.groupElement.querySelector('.e-rule-list').children;\n var childElem;\n var groupElem = obj.groupElement;\n var i;\n var iLen = ruleList.length;\n var groupCount = 0;\n for (i = 0; i < iLen; i++) {\n childElem = ruleList[i];\n if (childElem.className.indexOf('e-group-container') > -1) {\n obj.level.push(groupCount);\n this.levelColl[childElem.id] = obj.level.slice();\n groupCount++;\n obj.groupElement = childElem;\n obj = this.refreshLevel(obj);\n }\n }\n var ruleListElem = closest(groupElem, '.e-rule-list');\n obj.groupElement = ruleListElem ? closest(ruleListElem, '.e-group-container') : groupElem;\n obj.level = this.levelColl[obj.groupElement.id].slice();\n return obj;\n };\n QueryBuilder.prototype.groupTemplate = function (isConnector) {\n var glueElem;\n var inputElem;\n var dragClsName;\n var labelElem;\n var grpActElem;\n var groupBtn;\n var groupElem = this.createElement('div', { attrs: { class: 'e-group-container' } });\n var groupHdrElem = this.createElement('div', { attrs: { class: 'e-group-header' } });\n var grpBodyElem = this.createElement('div', { attrs: { class: 'e-group-body' } });\n var rulesElem = this.createElement('div', { attrs: { class: 'e-rule-list' } });\n groupElem.appendChild(groupHdrElem);\n grpBodyElem.appendChild(rulesElem);\n groupElem.appendChild(grpBodyElem);\n // create button group in OR and AND process\n if (!this.headerTemplate) {\n if (this.allowDragAndDrop) {\n dragClsName = 'e-icons e-drag-qb-rule';\n }\n else {\n dragClsName = 'e-icons e-drag-qb-rule e-hidden';\n }\n var spanDragElement = this.createElement('span', { attrs: { class: dragClsName, 'aria-label': 'drag handle',\n title: 'drag handle' } });\n groupHdrElem.appendChild(spanDragElement);\n var className = this.enableSeparateConnector && !isConnector ? 'e-lib e-btn-group e-qb-toggle-btn' : 'e-lib e-btn-group';\n glueElem = this.createElement('div', { attrs: { class: className, role: 'group' } });\n if (this.enableSeparateConnector) {\n glueElem.classList.add('e-multi-connector');\n }\n if (this.enableNotCondition) {\n if (this.enableSeparateConnector) {\n inputElem = this.createElement('input', { attrs: { type: 'checkbox', class: 'e-qb-toggle' } });\n }\n else {\n inputElem = this.createElement('button', { attrs: { type: 'button', class: 'e-qb-toggle' } });\n }\n glueElem.appendChild(inputElem);\n }\n inputElem = this.createElement('input', { attrs: { type: 'radio', class: 'e-btngroup-and', value: 'AND' } });\n glueElem.appendChild(inputElem);\n labelElem = this.createElement('label', { attrs: { class: 'e-lib e-btn e-btngroup-and-lbl e-small' },\n innerHTML: this.l10n.getConstant('AND') });\n glueElem.appendChild(labelElem);\n inputElem = this.createElement('input', { attrs: { type: 'radio', class: 'e-btngroup-or', value: 'OR' } });\n glueElem.appendChild(inputElem);\n labelElem = this.createElement('label', { attrs: { class: 'e-lib e-btn e-btngroup-or-lbl e-small' },\n innerHTML: this.l10n.getConstant('OR') });\n glueElem.appendChild(labelElem);\n groupHdrElem.appendChild(glueElem);\n grpActElem = this.createElement('div', { attrs: { class: 'e-group-action' } });\n if (this.enableSeparateConnector) {\n groupBtn = this.createElement('button', { attrs: { type: 'button', class: 'e-add-condition-btn' } });\n grpActElem.appendChild(groupBtn);\n groupBtn = this.createElement('button', { attrs: { type: 'button', class: 'e-add-group-btn' } });\n grpActElem.appendChild(groupBtn);\n }\n else {\n groupBtn = this.createElement('button', { attrs: { type: 'button', class: 'e-add-btn' } });\n grpActElem.appendChild(groupBtn);\n }\n groupHdrElem.appendChild(grpActElem);\n }\n return groupElem;\n };\n QueryBuilder.prototype.ruleTemplate = function () {\n var tempElem;\n var clsName;\n var cloneClsName;\n var lockClsName;\n var dragClsName;\n var ruleElem = this.createElement('div');\n var fieldElem = this.createElement('div', { attrs: { class: 'e-rule-field' } });\n tempElem = this.createElement('div', { attrs: { class: 'e-rule-filter' } });\n if (this.allowDragAndDrop) {\n dragClsName = 'e-icons e-drag-qb-rule';\n }\n else {\n dragClsName = 'e-icons e-drag-qb-rule e-hidden';\n }\n var spanDragElement = this.createElement('span', { attrs: { class: dragClsName, 'aria-label': 'drag handle',\n title: 'drag handle' } });\n fieldElem.appendChild(spanDragElement);\n var filterElem = this.createElement('input', { attrs: { type: 'text', class: 'e-filter-input' } });\n tempElem.appendChild(filterElem);\n fieldElem.appendChild(tempElem);\n tempElem = this.createElement('div', { attrs: { class: 'e-rule-operator' } });\n fieldElem.appendChild(tempElem);\n tempElem = this.createElement('div', { attrs: { class: 'e-rule-value' } });\n fieldElem.appendChild(tempElem);\n tempElem = this.createElement('div', { attrs: { class: 'e-rule-value-delete' } });\n if (this.showButtons.cloneRule) {\n cloneClsName = 'e-clone-rule-btn e-clone-rule e-css e-btn e-small e-round e-icon-btn';\n }\n else {\n cloneClsName = 'e-clone-rule-btn e-clone-rule e-css e-btn e-small e-round e-icon-btn e-button-hide';\n }\n if (this.showButtons.lockRule) {\n lockClsName = 'e-lock-rule-btn e-lock-rule e-css e-btn e-small e-round e-icons e-icon-btn';\n }\n else {\n lockClsName = 'e-lock-rule-btn e-lock-rule e-css e-btn e-small e-round e-icons e-icon-btn e-button-hide';\n }\n var cloneRuleBtnElem = this.createElement('button', { attrs: { title: this.l10n.getConstant('CloneRule'), type: 'button', class: cloneClsName } });\n var spanElement = this.createElement('span', { attrs: { class: 'e-btn-icon e-icons e-copy' } });\n cloneRuleBtnElem.appendChild(spanElement);\n var cloneLockBtnElem = this.createElement('button', { attrs: { title: this.l10n.getConstant('LockRule'), type: 'button', class: lockClsName } });\n spanElement = this.createElement('span', { attrs: { class: 'e-btn-icon e-icons e-unlock' } });\n cloneLockBtnElem.appendChild(spanElement);\n if (this.showButtons.ruleDelete || isNullOrUndefined(this.showButtons.ruleDelete)) {\n clsName = 'e-removerule e-rule-delete e-css e-btn e-small';\n }\n else {\n clsName = 'e-removerule e-rule-delete e-css e-btn e-small e-button-hide';\n }\n var delBtnElem = this.createElement('button', { attrs: { type: 'button', class: clsName } });\n tempElem.appendChild(cloneRuleBtnElem);\n tempElem.appendChild(cloneLockBtnElem);\n tempElem.appendChild(delBtnElem);\n fieldElem.appendChild(tempElem);\n ruleElem.appendChild(fieldElem);\n return ruleElem;\n };\n QueryBuilder.prototype.addGroupElement = function (isGroup, target, condition, isBtnClick, not, isRoot, rule) {\n var _this = this;\n var args = { groupID: target.id.replace(this.element.id + '_', ''), cancel: false, type: 'insertGroup' };\n if (!this.isImportRules && !this.isInitialLoad && !this.prvtEvtTgrDaD) {\n this.trigger('beforeChange', args, function (observedChangeArgs) {\n _this.addGroupSuccess(observedChangeArgs, isGroup, target, condition, isBtnClick, not, isRoot, rule);\n });\n }\n else {\n this.isInitialLoad = false;\n this.addGroupSuccess(args, isGroup, target, condition, isBtnClick, not, isRoot, rule);\n }\n };\n QueryBuilder.prototype.addGroupSuccess = function (args, isGroup, eventTarget, condition, isBtnClick, not, isRoot, rule) {\n var _this = this;\n if (!args.cancel && (this.element.querySelectorAll('.e-group-container').length <= this.maxGroupCount)) {\n var target = eventTarget;\n var dltGroupBtn = void 0;\n var groupID = '';\n if (target.className.indexOf('e-group-container') < 0) {\n groupID = target.querySelector('.e-group-container') && target.querySelector('.e-group-container').id;\n }\n else {\n groupID = target.id;\n }\n if (this.enableSeparateConnector) {\n this.groupElem = this.groupTemplate();\n }\n var groupElem = this.groupElem.cloneNode(true);\n groupElem.setAttribute('id', this.element.id + '_group' + this.groupIdCounter);\n if (this.groupIdCounter === 0 && this.allowDragAndDrop && groupElem.querySelector('.e-drag-qb-rule')) {\n if (groupElem && groupElem.children[0]) {\n groupElem.children[0].classList.add('e-parent-header');\n }\n addClass([groupElem.querySelector('.e-drag-qb-rule')], 'e-hidden');\n }\n if (this.headerTemplate) {\n if (isRoot) {\n isGroup = false;\n groupElem.setAttribute('id', this.element.id + '_group0');\n this.headerTemplateFn(groupElem, not, condition, rule, groupID);\n this.groupIdCounter = 0;\n }\n else {\n this.headerTemplateFn(groupElem, not, condition, rule, groupID);\n }\n }\n this.groupIdCounter++;\n if (!this.headerTemplate) {\n var andInpElem = groupElem.querySelector('.e-btngroup-and');\n var orInpElem = groupElem.querySelector('.e-btngroup-or');\n var andLblElem = groupElem.querySelector('.e-btngroup-and-lbl');\n var orLblElem = groupElem.querySelector('.e-btngroup-or-lbl');\n andInpElem.setAttribute('id', this.element.id + '_and' + this.btnGroupId);\n orInpElem.setAttribute('id', this.element.id + '_or' + this.btnGroupId);\n andInpElem.setAttribute('name', this.element.id + '_and' + this.btnGroupId);\n orInpElem.setAttribute('name', this.element.id + '_and' + this.btnGroupId);\n andLblElem.setAttribute('for', this.element.id + '_and' + this.btnGroupId);\n orLblElem.setAttribute('for', this.element.id + '_or' + this.btnGroupId);\n this.btnGroupId++;\n }\n if (isGroup) {\n var clsName = void 0;\n if (this.showButtons.groupDelete || isNullOrUndefined(this.showButtons.groupDelete)) {\n clsName = 'e-deletegroup';\n }\n else {\n clsName = 'e-deletegroup e-button-hide';\n }\n dltGroupBtn = this.createElement('button', { attrs: { type: 'button', class: clsName } });\n var button = new Button({ iconCss: 'e-icons e-delete-icon', cssClass: 'e-small e-round' });\n button.appendTo(dltGroupBtn);\n dltGroupBtn.setAttribute('title', this.l10n.getConstant('DeleteGroup'));\n rippleEffect(dltGroupBtn, { selector: '.deletegroup' });\n var ruleList = target.querySelector('.e-rule-list');\n var childElems = ruleList.children;\n var grpLen = 0;\n for (var j = 0, jLen = childElems.length; j < jLen; j++) {\n if (childElems[j].className.indexOf('e-group-container') > -1) {\n grpLen += 1;\n }\n }\n if (this.showButtons.cloneGroup && this.cloneGrpBtnClick) {\n if (this.groupIndex === (childElems.length - 1)) {\n ruleList.appendChild(groupElem);\n this.isLastGroup = true;\n }\n else {\n if (this.enableSeparateConnector) {\n var index = 0;\n var tempGroupIndex = this.groupIndex + 1;\n for (var i = 0; i < tempGroupIndex; i++) {\n if (childElems[i].classList.contains('e-rule-container')) {\n tempGroupIndex++;\n index++;\n }\n }\n if (index > 0) {\n index--;\n }\n var idx = this.groupIndex + index + 1;\n childElems[idx].parentNode.insertBefore(groupElem, childElems[idx]);\n }\n else {\n var idx = this.groupIndex + 1;\n childElems[idx].parentNode.insertBefore(groupElem, childElems[idx]);\n }\n this.isMiddleGroup = true;\n }\n }\n else {\n ruleList.appendChild(groupElem);\n }\n var level = this.levelColl[target.id].slice(0);\n level.push(grpLen);\n this.levelColl[groupElem.id] = level;\n if (this.groupIndex > -1) {\n this.refreshLevelColl();\n }\n if (!this.isImportRules) {\n this.isAddSuccess = true;\n this.addGroups([], target.id.replace(this.element.id + '_', ''));\n this.isAddSuccess = false;\n if (isBtnClick && this.addRuleToNewGroups) {\n this.addRuleElement(groupElem, {});\n }\n }\n if (!this.headerTemplate) {\n var lockClsName = '';\n if (this.showButtons.cloneGroup) {\n lockClsName = 'e-clone-grp-btn e-css e-btn e-small e-round e-icons e-icon-btn';\n }\n else {\n lockClsName = 'e-clone-grp-btn e-css e-btn e-small e-round e-icons e-icon-btn e-button-hide';\n }\n var cloneBtnElem = this.createElement('button', { attrs: { title: this.l10n.getConstant('CloneGroup'), type: 'button', class: lockClsName } });\n var spanElement = this.createElement('span', { attrs: { class: 'e-btn-icon e-icons e-copy' } });\n cloneBtnElem.appendChild(spanElement);\n groupElem.querySelector('.e-group-action').appendChild(cloneBtnElem);\n if (this.showButtons.lockGroup) {\n lockClsName = 'e-lock-grp-btn e-css e-btn e-small e-round e-icons e-icon-btn';\n }\n else {\n lockClsName = 'e-lock-grp-btn e-css e-btn e-small e-round e-icons e-icon-btn e-button-hide';\n }\n var lockBtnElem = this.createElement('button', { attrs: { title: this.l10n.getConstant('LockGroup'), type: 'button', class: lockClsName } });\n var lockSpanElement = this.createElement('span', { attrs: { class: 'e-btn-icon e-icons e-unlock' } });\n lockBtnElem.appendChild(lockSpanElement);\n groupElem.querySelector('.e-group-action').appendChild(lockBtnElem);\n groupElem.querySelector('.e-group-action').appendChild(dltGroupBtn);\n }\n }\n else {\n if (!this.headerTemplate) {\n var lockClsName = '';\n if (this.showButtons.lockGroup) {\n lockClsName = 'e-lock-grp-btn e-css e-btn e-small e-round e-icons e-icon-btn';\n }\n else {\n lockClsName = 'e-lock-grp-btn e-css e-btn e-small e-round e-icons e-icon-btn e-button-hide';\n }\n var lockBtnElem = this.createElement('button', { attrs: { title: this.l10n.getConstant('LockGroup'), type: 'button', class: lockClsName } });\n var spanElement = this.createElement('span', { attrs: { class: 'e-btn-icon e-icons e-unlock' } });\n lockBtnElem.appendChild(spanElement);\n groupElem.querySelector('.e-group-action').appendChild(lockBtnElem);\n }\n target.appendChild(groupElem);\n this.levelColl[groupElem.id] = [0];\n }\n if (this.enableNotCondition) {\n if (!this.headerTemplate) {\n var notElem = groupElem.querySelector('.e-qb-toggle');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var tglBtn = void 0;\n if (this.enableSeparateConnector) {\n tglBtn = new CheckBox({ label: this.l10n.getConstant('NOT'), cssClass: 'e-qb-toggle' });\n }\n else {\n tglBtn = new Button({ content: this.l10n.getConstant('NOT'), cssClass: 'e-btn e-small' });\n }\n tglBtn.appendTo(notElem);\n groupElem.querySelector('.e-btngroup-and-lbl').classList.add('e-not');\n if (this.updatedRule && this.updatedRule.not) {\n addClass([notElem], 'e-active-toggle');\n }\n }\n }\n if (this.enableSeparateConnector && !this.headerTemplate) {\n var andElem = groupElem.querySelector('.e-btngroup-and');\n var orElem = groupElem.querySelector('.e-btngroup-or');\n var btnGroup = groupElem.querySelector('.e-btn-group');\n for (var i = 0; i < btnGroup.childNodes.length; i++) {\n if (groupElem.querySelector('.e-btn-group').childNodes[i].textContent.toLowerCase() === 'not') {\n if (!this.enableNotCondition) {\n btnGroup.childNodes[i].style.display = 'none';\n }\n else {\n btnGroup.childNodes[i].classList.add('e-multiconnector');\n }\n }\n else {\n btnGroup.childNodes[i].style.display = 'none';\n }\n }\n var prevSibling = groupElem.previousElementSibling;\n if (prevSibling) {\n if (isNullOrUndefined(this.headerTemplate)) {\n groupElem.parentElement.insertBefore(this.groupTemplate(true).querySelector('.e-btn-group'), groupElem);\n var notElem = groupElem.previousElementSibling.childNodes[0];\n if (notElem.classList.contains('e-qb-toggle')) {\n notElem.style.display = 'none';\n }\n }\n if (!this.isImportRules) {\n var groupElement = groupElem.previousElementSibling;\n var newAndElem = groupElement.querySelector('.e-btngroup-and');\n var newOrElem = groupElement.querySelector('.e-btngroup-or');\n if (!andElem.checked && !orElem.checked) {\n var nextSibling = groupElem.nextElementSibling;\n if (nextSibling && nextSibling.classList.contains('e-btn-group')) {\n andElem = nextSibling.querySelector('.e-btngroup-and');\n orElem = nextSibling.querySelector('.e-btngroup-or');\n newAndElem.checked = andElem.checked;\n newOrElem.checked = orElem.checked;\n }\n }\n else if (this.enableSeparateConnector) {\n if (andElem.checked) {\n newAndElem.checked = true;\n }\n if (orElem.checked) {\n newOrElem.checked = true;\n }\n }\n }\n }\n }\n this.updatedRule = null;\n if (this.headerTemplate) {\n var args_4 = { requestType: 'header-template-create', ruleID: groupElem.id, condition: condition,\n notCondition: this.enableNotCondition ? not : undefined };\n this.trigger('actionBegin', args_4);\n }\n else {\n if (this.enableSeparateConnector) {\n var conditionBtn_1 = groupElem.querySelector('.e-add-condition-btn');\n var btnObj = new Button({ cssClass: this.element.id + '_addConditionbtn', content: this.l10n.getConstant('AddCondition') });\n btnObj.appendTo(conditionBtn_1);\n btnObj.element.onclick = function () {\n _this.addRuleElement(closest(conditionBtn_1, '.e-group-container'), {});\n };\n var groupBtn_1 = groupElem.querySelector('.e-add-group-btn');\n btnObj = new Button({ cssClass: this.element.id + '_addGroupbtn', content: this.l10n.getConstant('AddGroup') });\n btnObj.appendTo(groupBtn_1);\n btnObj.element.onclick = function () {\n _this.addGroupElement(true, closest(groupBtn_1, '.e-group-container'), '', true);\n };\n }\n else {\n var groupBtn = groupElem.querySelector('.e-add-btn');\n var btnObj = new DropDownButton({\n items: this.items,\n cssClass: 'e-round e-small e-caret-hide e-addrulegroup',\n iconCss: 'e-icons e-add-icon',\n beforeOpen: this.selectBtn.bind(this, groupBtn),\n select: this.selectBtn.bind(this, groupBtn)\n });\n btnObj.appendTo(groupBtn);\n groupBtn.setAttribute('title', this.l10n.getConstant('AddButton'));\n }\n }\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n var grpId = target.id.replace(this.element.id + '_', '');\n var chgrpId = groupElem.id.replace(this.element.id + '_', '');\n this.trigger('change', { groupID: grpId, type: 'insertGroup', childGroupID: chgrpId });\n }\n }\n };\n QueryBuilder.prototype.setMultiConnector = function (trgt) {\n if (this.enableSeparateConnector && !this.headerTemplate) {\n if (trgt.previousElementSibling && this.groupElem.querySelector('.e-btn-group')) {\n trgt.parentElement.insertBefore(this.groupTemplate(true).querySelector('.e-btn-group'), trgt);\n var notElem = trgt.previousElementSibling.childNodes[0];\n if (notElem.classList.contains('e-qb-toggle')) {\n notElem.style.display = 'none';\n }\n this.addHeaderDiv(trgt);\n }\n }\n };\n QueryBuilder.prototype.addHeaderDiv = function (elem) {\n var prevRule;\n var prevElem = elem.previousElementSibling.previousElementSibling;\n if (prevElem) {\n if (prevElem.id.indexOf('rule') > -1) {\n prevRule = this.getRule(prevElem);\n }\n else {\n prevRule = this.getGroup(prevElem);\n }\n if (!isNullOrUndefined(prevRule) && isNullOrUndefined(prevRule.condition)) {\n prevRule.condition = 'and';\n }\n var orElem = elem.previousElementSibling.querySelector('.e-btngroup-or');\n var andElem = elem.previousElementSibling.querySelector('.e-btngroup-and');\n orElem.disabled = false;\n andElem.disabled = false;\n if (!isNullOrUndefined(prevRule) && prevRule.condition === 'or') {\n orElem.checked = true;\n }\n else {\n andElem.checked = true;\n }\n }\n };\n QueryBuilder.prototype.headerTemplateFn = function (groupElem, not, condition, rule, groupID, isInitialRule) {\n var template;\n var templateID = this.element.id + '_header';\n var args;\n var groupHdr = groupElem.querySelector('.e-group-header');\n if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {\n groupHdr = groupElem;\n }\n if (this.headerTemplate) {\n args = { requestType: 'header-template-initialize', ruleID: groupElem.id,\n notCondition: this.enableNotCondition ? not : undefined,\n condition: condition, rule: this.getRuleCollection(rule, false), groupID: groupID };\n this.trigger('actionBegin', args);\n if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {\n args.requestType = 'rule-template-create';\n }\n this.headerFn = this.templateParser(this.headerTemplate);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n template = this.headerFn(args, this, groupElem.id, templateID)[0];\n if (this.enableSeparateConnector && isInitialRule) {\n this.enableSeparateConnectorInitialRule(groupElem, template);\n }\n else if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {\n groupHdr.parentElement.insertBefore(template, groupHdr.nextElementSibling);\n }\n else {\n groupHdr.appendChild(template);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (this.isAngular) {\n var templateColl = this.headerFn(args, this, groupElem.id, templateID);\n template = (templateColl[0].nodeType === 3) ? templateColl[1] : templateColl[0];\n if (this.enableSeparateConnector && isInitialRule) {\n this.enableSeparateConnectorInitialRule(groupElem, template);\n }\n else if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {\n groupHdr.parentElement.insertBefore(template, groupHdr.nextElementSibling);\n }\n else {\n groupHdr.appendChild(template);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (this.isVue3) {\n template = this.headerFn(args, this, groupElem.id, templateID);\n if (this.enableSeparateConnector && (isInitialRule || groupElem.id.indexOf('rule') !== -1)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (var i = 0; i < template.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (template[i].nodeName === 'DIV') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n template = template[i];\n break;\n }\n }\n }\n if (this.enableSeparateConnector && isInitialRule) {\n this.enableSeparateConnectorInitialRule(groupElem, template);\n }\n else if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {\n groupHdr.parentElement.insertBefore(template, groupHdr.nextElementSibling);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n append(template, groupHdr);\n }\n }\n else {\n template = this.headerFn(args, this, 'Template', templateID)[0];\n if (this.enableSeparateConnector && isInitialRule) {\n this.enableSeparateConnectorInitialRule(groupElem, template);\n }\n else if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {\n groupHdr.parentElement.insertBefore(template, groupHdr.nextElementSibling);\n }\n else {\n groupHdr.appendChild(template);\n }\n }\n this.renderReactTemplates();\n }\n return groupElem;\n };\n QueryBuilder.prototype.enableSeparateConnectorInitialRule = function (groupElem, template) {\n var elem = groupElem.nextElementSibling ? groupElem.nextElementSibling : groupElem;\n var group = elem.closest('.e-group-container');\n if (!groupElem.nextElementSibling && group) {\n group = group.nextElementSibling ? group.nextElementSibling : group;\n }\n if (group) {\n group.parentElement.insertBefore(template, group);\n }\n };\n /**\n * Notify the changes to component.\n *\n * @param {string | number | boolean | Date | string[] | number[] | Date[]} value - 'value' to be passed to update the rule value.\n * @param {Element} element - 'element' to be passed to update the rule.\n * @param {string} type - 'type' to be passed to update the rule .\n * @returns {void}.\n */\n QueryBuilder.prototype.notifyChange = function (value, element, type) {\n var grpElement = closest(element, '.e-group-container');\n var rules = this.getParentGroup(grpElement);\n var ruleElement = closest(element, '.e-rule-container');\n var index = 0;\n if (type === 'not') {\n rules.not = value;\n return;\n }\n if (type === 'condition') {\n if (this.enableSeparateConnector) {\n ruleElement = element.parentElement.previousElementSibling;\n if (ruleElement && ruleElement.classList.contains('e-group-container')) {\n ruleElement = ruleElement.querySelectorAll('.e-rule-container')[ruleElement.querySelectorAll('.e-rule-container').length - 1];\n }\n if (ruleElement && ruleElement.classList.contains('e-rule-container')) {\n rules = this.getRule(ruleElement);\n }\n rules.condition = value;\n }\n else {\n rules.condition = value;\n }\n return;\n }\n while (ruleElement && ruleElement.previousElementSibling !== null) {\n ruleElement = ruleElement.previousElementSibling;\n if (!this.enableSeparateConnector || (this.enableSeparateConnector &&\n ((!this.headerTemplate && !ruleElement.classList.contains('e-btn-group')) ||\n this.headerTemplate && (ruleElement.classList.contains('e-rule-container') ||\n ruleElement.classList.contains('e-group-container'))))) {\n index++;\n }\n }\n var rule = rules.rules[index];\n var column = this.getColumn(rule.field);\n var format = this.getFormat(column.format);\n if (column.type === 'date') {\n if (value instanceof Date) {\n value = this.intl.formatDate(value, format);\n }\n else if (value instanceof Array) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] && value[i] instanceof Date) {\n value[i] = this.intl.formatDate(value[i], format);\n }\n }\n }\n }\n if (column.ruleTemplate) {\n this.templateChange(element, value, type);\n }\n else {\n this.isNotified = true;\n this.updateRules(element, value);\n this.isNotified = false;\n }\n };\n QueryBuilder.prototype.templateChange = function (element, value, type) {\n var grpElem = closest(element, '.e-group-container');\n var eventsArgs;\n var rules = this.getParentGroup(grpElem);\n var ruleElem = closest(element, '.e-rule-container');\n var index = 0;\n if (this.allowValidation) {\n this.validateValue(rules, ruleElem);\n }\n while (ruleElem && ruleElem.previousElementSibling !== null) {\n ruleElem = ruleElem.previousElementSibling;\n if (!this.enableSeparateConnector || (this.enableSeparateConnector &&\n ((!this.headerTemplate && !ruleElem.classList.contains('e-btn-group')) ||\n this.headerTemplate && (ruleElem.classList.contains('e-rule-container') ||\n ruleElem.classList.contains('e-group-container'))))) {\n index++;\n }\n }\n var rule = rules.rules[index];\n if (type === 'field') {\n this.selectedColumn = this.getColumn(value);\n }\n else if (rule) {\n this.selectedColumn = this.getColumn(rule.field);\n }\n var operVal;\n this.previousColumn = this.getColumn(rule.field);\n var beforeRules = this.getValidRules(this.rule);\n if (this.selectedColumn) {\n if (this.selectedColumn.operators) {\n operVal = this.selectedColumn.operators;\n }\n else {\n operVal = this.customOperators[this.selectedColumn.type + 'Operator'];\n }\n }\n var arrOper = ['in', 'notin', 'between', 'notbetween'];\n var prevOper;\n switch (type) {\n case 'field':\n if (isNullOrUndefined(value)) {\n rule.field = '';\n rule.label = '';\n rule.type = '';\n rule.value = '';\n rule.operator = '';\n }\n else {\n rule.field = value;\n rule.label = this.selectedColumn.label;\n rule.type = this.selectedColumn.type;\n rule.value = '';\n rule.operator = operVal[0].value;\n }\n break;\n case 'operator':\n prevOper = rule.operator;\n rule.operator = value;\n if (arrOper.indexOf(rule.operator) > -1) {\n rule.value = [];\n }\n else if (arrOper.indexOf(prevOper) > -1) {\n rule.value = '';\n }\n break;\n case 'value':\n rule.value = value;\n }\n this.changeRuleTemplate(this.selectedColumn, element);\n this.filterRules(beforeRules, this.getValidRules(this.rule), type);\n if (this.selectedColumn && this.selectedColumn.ruleTemplate) {\n if (type === 'field' || type === 'operator') {\n var grpEle = closest(element, '.e-rule-container');\n this.destroyControls(grpEle, true);\n detach(grpEle.querySelector('.e-rule-field'));\n var ruleElement = this.appendRuleElem(closest(grpEle, '.e-group-container'), this.selectedColumn, 'change', grpEle.id, type, rule);\n if (this.displayMode === 'Vertical' || this.element.className.indexOf('e-device') > -1) {\n ruleElement.className = 'e-rule-container e-vertical-mode';\n }\n else {\n ruleElement.className = 'e-rule-container e-horizontal-mode';\n }\n if (!this.enableSeparateConnector) {\n if (ruleElement.previousElementSibling && ruleElement.previousElementSibling.className.indexOf('e-rule-container') > -1) {\n if (ruleElement.className.indexOf('e-joined-rule') < 0) {\n ruleElement.className += ' e-joined-rule';\n }\n if (ruleElement.previousElementSibling.className.indexOf('e-prev-joined-rule') < 0) {\n ruleElement.previousElementSibling.className += ' e-prev-joined-rule';\n }\n }\n }\n if (ruleElement.previousElementSibling && ruleElement.previousElementSibling.className.indexOf('e-group-container') > -1 &&\n ruleElement.className.indexOf('e-separate-rule') < 0) {\n ruleElement.className += ' e-separate-rule';\n }\n var args = { requestType: 'template-create', action: type, ruleID: grpEle.id,\n fields: this.fields, rule: rule };\n eventsArgs = { groupID: grpElem.id.replace(this.element.id + '_', ''), ruleID: grpEle.id.replace(this.element.id + '_', ''),\n value: rule.field, type: 'field' };\n this.trigger('actionBegin', args);\n this.trigger('change', eventsArgs);\n }\n }\n };\n QueryBuilder.prototype.changeValue = function (i, args) {\n var _this = this;\n var element;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((this.isNumInput && typeof args.value === 'number') || (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox'))\n && (this.selectedColumn.validation && (this.selectedColumn.validation.max !== Number.MAX_VALUE || this.selectedColumn.validation.min > 0))) {\n this.isNumInput = false;\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (args.element && args.element.classList.contains('e-multiselect')) {\n var multiSelectArgs = args;\n element = multiSelectArgs.element;\n }\n else if (args.event) {\n element = args.event.target;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }\n else if (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element = args.currentTarget;\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element = args.element;\n }\n if (!element) {\n return;\n }\n if (element.className.indexOf('e-day') > -1 || element.className.indexOf('e-today') > -1 || element.className.indexOf('e-cell') > -1) {\n var calenderArgs = args;\n element = calenderArgs.element;\n }\n var groupElem = closest(element, '.e-group-container');\n var ruleElem = closest(element, '.e-rule-container');\n var groupID = groupElem && groupElem.id.replace(this.element.id + '_', '');\n var ruleID = ruleElem.id.replace(this.element.id + '_', '');\n var dateElement = args;\n var dropDownObj;\n if (dateElement.element && dateElement.element.className.indexOf('e-datepicker') > -1) {\n element = dateElement.element;\n dropDownObj = getComponent(closest(element, '.e-rule-container').querySelector('.e-filter-input'), 'dropdownlist');\n if (dropDownObj) {\n this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);\n }\n dropDownObj = getComponent(closest(element, '.e-rule-container').querySelector('.e-filter-input'), 'dropdowntree');\n if (dropDownObj) {\n this.selectedColumn = this.getColumn(dropDownObj.value[0]);\n }\n }\n var value;\n var rbValue;\n if (element.className.indexOf('e-radio') > -1) {\n rbValue = parseInt(element.id.split('valuekey')[1], 10);\n if (this.fieldMode === 'Default') {\n dropDownObj = getComponent(closest(element, '.e-rule-container').querySelector('.e-filter-input'), 'dropdownlist');\n this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);\n if (this.selectedColumn.columns) {\n dropDownObj = getComponent(closest(element, '.e-rule-container').querySelector('.e-rule-sub-filter .e-dropdownlist'), 'dropdownlist');\n this.selectedColumn = this.getColumn(dropDownObj.value);\n }\n }\n else {\n dropDownObj = getComponent(closest(element, '.e-rule-container').querySelector('.e-filter-input'), 'dropdowntree');\n this.selectedColumn = this.getColumn(dropDownObj.value[0]);\n }\n if (this.selectedColumn.values) {\n value = this.selectedColumn.values[rbValue];\n }\n else {\n var valColl = [true, false];\n value = valColl[rbValue];\n }\n }\n else if (element.className.indexOf('e-multiselect') > -1) {\n value = getComponent(element, 'multiselect').value;\n }\n else {\n value = args.value;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox')) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value = Number(args.currentTarget.value);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var elem = args.currentTarget;\n var numericTextBoxObj = getInstance(elem, NumericTextBox);\n var decimalSeparator = getValue('decimal', getNumericObject(this.locale));\n if (isNaN(value) && elem.value.indexOf(decimalSeparator) !== -1) {\n value = this.intl.getNumberParser({ format: 'n' })(elem.value);\n }\n if (!isNaN(value)) {\n numericTextBoxObj.value = value;\n }\n this.isNumInput = true;\n }\n }\n if (args.name === 'input' && this.immediateModeDelay) {\n window.clearInterval(this.timer);\n this.timer = window.setInterval(function () { _this.filterValue(groupID, ruleID, value, i, element); }, this.immediateModeDelay);\n }\n else {\n this.filterValue(groupID, ruleID, value, i, element);\n }\n };\n QueryBuilder.prototype.filterValue = function (grID, rlID, value, i, ele) {\n var _this = this;\n var eventsArgs = { groupID: grID, ruleID: rlID, value: value, cancel: false, type: 'value' };\n window.clearInterval(this.timer);\n if (!this.isImportRules) {\n this.trigger('beforeChange', eventsArgs, function (observedChangeArgs) {\n _this.changeValueSuccessCallBack(observedChangeArgs, ele, i, grID, rlID);\n });\n }\n else {\n this.changeValueSuccessCallBack(eventsArgs, ele, i, grID, rlID);\n }\n };\n QueryBuilder.prototype.changeValueSuccessCallBack = function (args, element, i, groupID, ruleID) {\n if (!args.cancel) {\n this.updateRules(element, args.value, i);\n if (!this.isImportRules) {\n this.trigger('change', { groupID: groupID, ruleID: ruleID, value: args.value, cancel: false, type: 'value' });\n }\n }\n };\n QueryBuilder.prototype.fieldClose = function (id) {\n if (this.isFieldChange || this.isDestroy) {\n return;\n }\n this.isFieldClose = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var ddl = getComponent(id, 'dropdownlist');\n var item = ddl.popupObj && ddl.popupObj.element.querySelector('.e-active');\n var itemData = ddl.getItemData();\n ddl.value = itemData.value;\n var customArgs = { element: ddl.element, value: itemData.value, isInteracted: true,\n previousItemData: this.prevItemData, previousItem: null, item: item, itemData: itemData, event: null, e: null };\n if (ddl.previousValue !== ddl.value) {\n this.changeField(customArgs);\n }\n this.isFieldChange = false;\n };\n QueryBuilder.prototype.changeField = function (args) {\n if (args.isInteracted) {\n if (isNullOrUndefined(args.value)) {\n return;\n }\n this.isFieldChange = true;\n this.prevItemData = args.itemData;\n var fieldElem = closest(args.element, '.e-rule-filter') || closest(args.element, '.e-rule-sub-filter');\n var column = this.fieldMode === 'DropdownTree' ? this.getColumn(args.value[0]) : this.getColumn(args.value);\n if (this.fieldMode === 'DropdownTree' && fieldElem !== null) {\n var ddtElem = fieldElem.querySelector('.e-dropdowntree.e-control');\n var ddt = getComponent(ddtElem, 'dropdowntree');\n if (column) {\n if (column.type === 'object') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ddt.value = args.oldValue;\n ddt.dataBind();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNullOrUndefined(args.oldValue)) {\n ddtElem.value = '';\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var result = this.getLabelFromColumn(args.oldValue[0]);\n ddtElem.value = result;\n }\n return;\n }\n else {\n if (!isNullOrUndefined(args.value[0])) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ddt.value = args.value[0];\n ddt.dataBind();\n var result = this.getLabelFromColumn(args.value[0]);\n ddtElem.value = result;\n }\n }\n }\n else {\n return;\n }\n }\n this.destroySubFields(fieldElem);\n this.subFieldElem = null;\n this.isNotValueChange = true;\n if (column && column.ruleTemplate) {\n this.templateChange(args.element, column.field, 'field');\n }\n else if (column && column.columns && column.columns[0].ruleTemplate) {\n this.templateChange(args.element, column.columns[0].field, 'field');\n }\n else {\n var groupElem = closest(args.element, '.e-group-container');\n var rules = this.getParentGroup(groupElem);\n var ruleElem = closest(args.element, '.e-rule-container');\n var index = 0;\n while (ruleElem && ruleElem.previousElementSibling !== null) {\n ruleElem = ruleElem.previousElementSibling;\n if (!this.enableSeparateConnector || (this.enableSeparateConnector &&\n ((!this.headerTemplate && !ruleElem.classList.contains('e-btn-group')) ||\n this.headerTemplate && (ruleElem.classList.contains('e-rule-container') ||\n ruleElem.classList.contains('e-group-container'))))) {\n index++;\n }\n }\n rules.rules[index].value = '';\n this.changeRule(rules.rules[index], args);\n }\n }\n };\n QueryBuilder.prototype.changeRule = function (rule, ddlArgs) {\n if (!ddlArgs.itemData) {\n if (this.fieldMode === 'DropdownTree') {\n var ddt = getComponent(ddlArgs.element, 'dropdowntree');\n if (ddt.value == null) {\n return;\n }\n }\n else {\n return;\n }\n }\n var tempRule = {};\n var filterElem = closest(ddlArgs.element, '.e-rule-filter');\n filterElem = filterElem ? filterElem : closest(ddlArgs.element, '.e-rule-sub-filter');\n var ddlObj = getComponent(ddlArgs.element, 'dropdownlist');\n if (this.fieldMode === 'DropdownTree' && filterElem !== null) {\n ddlObj = getComponent(ddlArgs.element, 'dropdowntree');\n }\n var element = closest(ddlArgs.element, '.e-group-container');\n var groupID = element.id.replace(this.element.id + '_', '');\n this.changeFilter(filterElem, ddlObj, groupID, rule, tempRule, ddlArgs);\n };\n QueryBuilder.prototype.changeFilter = function (flt, dl, grID, rl, tmpRl, dArg) {\n var _this = this;\n if (flt) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var ddlValue = void 0;\n if (this.fieldMode === 'DropdownTree') {\n ddlValue = (dl.value[0]);\n }\n else {\n ddlValue = this.isImportRules ? this.GetRootColumnName(dl.value) : dl.value;\n }\n this.selectedColumn = this.getColumn(ddlValue);\n var ruleElem = closest(flt, '.e-rule-container');\n var ruleID = ruleElem.id.replace(this.element.id + '_', '');\n var eventsArgs = { groupID: grID, ruleID: ruleID, selectedField: this.fieldMode === 'DropdownTree' ?\n dl.value[0] : dl.value, cancel: false, type: 'field' };\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('beforeChange', eventsArgs, function (observedChangeArgs) {\n _this.fieldChangeSuccess(observedChangeArgs, tmpRl, flt, rl, dArg);\n });\n }\n else {\n this.fieldChangeSuccess(eventsArgs, tmpRl, flt, rl, dArg);\n }\n }\n else {\n var operatorElem = closest(dArg.element, '.e-rule-operator');\n this.changeOperator(flt, operatorElem, dl, grID, rl, tmpRl, dArg);\n }\n };\n QueryBuilder.prototype.changeOperator = function (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n flt, opr, dl, grID, rl, tmpRl, dArg) {\n var _this = this;\n var ruleElem;\n var ruleID;\n var eventsArgs;\n if (opr) {\n ruleElem = closest(opr, '.e-rule-container');\n ruleID = ruleElem.id.replace(this.element.id + '_', '');\n eventsArgs = { groupID: grID, ruleID: ruleID, selectedIndex: dl.index, cancel: false, type: 'operator' };\n if (!this.isImportRules) {\n this.trigger('beforeChange', eventsArgs, function (observedChangeArgs) {\n _this.operatorChangeSuccess(observedChangeArgs, flt, tmpRl, rl, dArg);\n });\n }\n else {\n this.operatorChangeSuccess(eventsArgs, flt, tmpRl, rl, dArg);\n }\n }\n else {\n this.changeRuleValues(flt, rl, tmpRl, dArg);\n }\n };\n QueryBuilder.prototype.fieldChangeSuccess = function (args, tempRule, filterElem, rule, ddlArgs) {\n var ruleElem = closest(filterElem, '.e-rule-container');\n var operatorElem = closest(ddlArgs.element, '.e-rule-operator');\n var element = closest(ddlArgs.element, '.e-group-container');\n var groupID = element.id.replace(this.element.id + '_', '');\n var ddlObj = getComponent(ddlArgs.element, 'dropdownlist');\n var tooltipElem = ruleElem.querySelectorAll('.e-tooltip.e-input-group');\n for (var i = 0; i < tooltipElem.length; i++) {\n getComponent(tooltipElem[i], 'tooltip').destroy();\n }\n if (!args.cancel) {\n if (isNullOrUndefined(this.selectedColumn)) {\n return;\n }\n tempRule.type = this.selectedColumn.type;\n if (ruleElem.querySelector('.e-template')) {\n rule.value = '';\n }\n if (this.selectedColumn.type === 'object' && this.fieldMode === 'Default') {\n tempRule.type = this.selectedColumn.columns[0].type;\n while (this.selectedColumn.columns) {\n this.createSubFields(filterElem, rule, tempRule, ddlArgs);\n }\n }\n else {\n this.destroySubFields(filterElem);\n this.changeOperator(filterElem, operatorElem, ddlObj, groupID, rule, tempRule, ddlArgs);\n }\n }\n else {\n this.changeOperator(filterElem, operatorElem, ddlObj, groupID, rule, tempRule, ddlArgs);\n }\n };\n QueryBuilder.prototype.destroySubFields = function (filterElem) {\n while (filterElem && filterElem.nextElementSibling.classList.contains('e-rule-sub-filter')) {\n this.destroyControls(filterElem);\n filterElem.nextElementSibling.remove();\n }\n };\n QueryBuilder.prototype.createSubFields = function (filterElem, rule, tempRule, ddlArgs) {\n var subFieldValue = false;\n var fieldElem = closest(filterElem, '.e-rule-field');\n var tempElem = this.createElement('div', { attrs: { class: 'e-rule-sub-filter', id: 'subfilter' + this.subFilterCounter } });\n fieldElem.insertBefore(tempElem, fieldElem.querySelector('.e-rule-operator'));\n var ruleId = closest(tempElem, '.e-rule-container').id;\n var subFieldElem = this.createElement('input', { attrs: { type: 'text', id: ruleId + '_subfilterkey' + this.subFilterCounter } });\n tempElem.appendChild(subFieldElem);\n var height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';\n var ddlField;\n ddlField = {\n dataSource: this.selectedColumn.columns,\n fields: this.fields,\n placeholder: this.l10n.getConstant('SelectField'),\n popupHeight: ((this.selectedColumn.columns.length > 5) ? height : 'auto'),\n change: this.changeField.bind(this),\n index: 0,\n open: this.popupOpen.bind(this, false)\n };\n if (this.fieldModel) {\n ddlField = __assign({}, ddlField, this.fieldModel);\n }\n var dropDownList = new DropDownList(ddlField);\n dropDownList.appendTo('#' + ruleId + '_subfilterkey' + this.subFilterCounter);\n if (this.isImportRules || (this.previousColumn && this.previousColumn.ruleTemplate &&\n this.GetRootColumnName(rule.field) === this.GetRootColumnName(this.previousColumn.field))) {\n var subField = this.selectedColumn.columns;\n for (var i = 0; i < subField.length; i++) {\n if (rule.field === subField[i].field || rule.field.indexOf(subField[i].field + this.separator) > -1) {\n dropDownList.value = subField[i].field;\n this.selectedColumn = subField[i];\n subFieldValue = true;\n break;\n }\n }\n }\n this.subFilterCounter++;\n this.subFieldElem = subFieldElem;\n // eslint-disable-next-line\n ddlArgs.itemData = ddlArgs.itemData;\n if (!subFieldValue && this.selectedColumn.columns) {\n if (!subFieldValue && this.isImportRules) {\n dropDownList.value = null;\n }\n this.selectedColumn = this.selectedColumn.columns[0];\n }\n this.previousColumn = this.selectedColumn;\n if (!this.selectedColumn.columns) {\n this.changeRuleValues(tempElem, rule, tempRule, ddlArgs);\n }\n };\n QueryBuilder.prototype.operatorChangeSuccess = function (eventsArgs, filterElem, tempRule, rule, ddlArgs) {\n if (!eventsArgs.cancel) {\n var operatorElem = closest(ddlArgs.element, '.e-rule-operator');\n var valElem = operatorElem.nextElementSibling;\n var dropDownObj = getComponent(ddlArgs.element, 'dropdownlist');\n var prevOper = rule.operator ? rule.operator.toString().toLowerCase() : '';\n tempRule.operator = dropDownObj.value.toString();\n var currOper = tempRule.operator.toLowerCase();\n if (tempRule.operator.toLowerCase().indexOf('between') > -1 || (tempRule.operator.toLowerCase().indexOf('in') > -1\n && tempRule.operator.toLowerCase().indexOf('contains') < 0)) {\n filterElem = operatorElem.previousElementSibling;\n tempRule.type = rule.type;\n if (tempRule.operator.toLowerCase().indexOf('in') < 0 || prevOper.indexOf('in') < 0) {\n rule.value = [];\n }\n }\n else if (typeof rule.value === 'object' && rule.value !== null) {\n rule.value = rule.value.length > 0 ? rule.value[0] : rule.type === 'number' ? 0 : '';\n }\n if (ddlArgs.previousItemData) {\n var prevValue = ddlArgs.previousItemData.value.toString().toLowerCase();\n if ((prevValue.indexOf('between') > -1 || (prevValue.indexOf('in') > -1 || (prevValue.indexOf('null') > -1)\n || (prevValue.indexOf('empty') > -1)) && prevValue.indexOf('contains') < 0)) {\n filterElem = operatorElem.previousElementSibling;\n tempRule.type = rule.type;\n }\n }\n if ((prevOper.indexOf('in') > -1 && prevOper.indexOf('in') < 5) && (currOper.indexOf('in') > -1\n && currOper.indexOf('in') < 5)) {\n filterElem = null;\n }\n if (tempRule.operator.indexOf('null') > -1 || (tempRule.operator.indexOf('empty') > -1)) {\n var parentElem = operatorElem.parentElement.querySelector('.e-rule-value');\n var tooltipElem = parentElem.querySelector('.e-tooltip.e-input-group');\n if (tooltipElem) {\n getComponent(tooltipElem, 'tooltip').destroy();\n }\n removeClass([parentElem], 'e-show');\n addClass([parentElem], 'e-hide');\n }\n if (valElem && this.getColumn(rule.field).template) {\n filterElem = operatorElem.previousElementSibling;\n }\n if (valElem.children.length === 0) {\n filterElem = operatorElem.previousElementSibling;\n }\n this.changeRuleValues(filterElem, rule, tempRule, ddlArgs);\n }\n };\n QueryBuilder.prototype.changeRuleValues = function (filterElem, rule, tempRule, ddlArgs) {\n var operatorElem = closest(ddlArgs.element, '.e-rule-operator');\n var isSub;\n var ddlObj;\n var operatorList;\n var oprElem;\n if (filterElem) {\n operatorElem = filterElem.nextElementSibling;\n if (filterElem.classList.contains('e-rule-sub-filter')) {\n tempRule.type = this.selectedColumn.type;\n isSub = operatorElem.classList.contains('e-rule-sub-filter');\n operatorElem = isSub ? operatorElem.nextElementSibling : operatorElem;\n }\n addClass([operatorElem], 'e-operator');\n if (operatorElem.childElementCount) {\n ddlObj = getComponent(operatorElem.querySelector('.e-dropdownlist'), 'dropdownlist');\n tempRule.operator = ddlObj.value;\n var fieldObj = void 0;\n if (this.fieldMode === 'DropdownTree') {\n fieldObj = getComponent(filterElem.querySelector('.e-dropdowntree'), 'dropdowntree');\n }\n else {\n fieldObj = getComponent(filterElem.querySelector('.e-dropdownlist'), 'dropdownlist');\n }\n tempRule.type = this.fieldMode === 'DropdownTree' ? this.getColumn(fieldObj.value[0]).type :\n this.getColumn(fieldObj.value).type;\n var itemData = ddlArgs.itemData;\n if (ddlObj.value !== '') {\n this.renderValues(operatorElem, itemData, ddlArgs.previousItemData, true, rule, tempRule, ddlArgs.element);\n }\n }\n else {\n var ruleId = closest(operatorElem, '.e-rule-container').id;\n oprElem = this.createElement('input', { attrs: { type: 'text', id: ruleId + '_operatorkey' } });\n operatorElem.appendChild(oprElem);\n if (this.selectedColumn.operators) {\n operatorList = this.selectedColumn.operators;\n }\n else if (ddlArgs.itemData) {\n operatorList = this.customOperators[this.selectedColumn.type + 'Operator'];\n }\n var height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';\n var operator_2;\n if (rule.operator) {\n operatorList.forEach(function (obj) {\n if ('value' in obj && typeof obj.value === 'string' && obj.value.toLowerCase() === rule.operator.toLowerCase()) {\n operator_2 = obj.value;\n }\n });\n }\n var value = operator_2 ? operator_2 : operatorList[0].value;\n var ddlIdx = 0;\n if (!this.autoSelectOperator) {\n value = '';\n ddlIdx = -1;\n }\n if (this.isImportRules || (this.ruleIndex > -1 || this.groupIndex > -1 || this.prvtEvtTgrDaD)) {\n value = rule ? (rule.operator ? rule.operator : value) : value;\n }\n var ddlOperator = void 0;\n ddlOperator = {\n dataSource: operatorList,\n fields: { text: 'key', value: 'value' },\n placeholder: this.l10n.getConstant('SelectOperator'),\n popupHeight: ((operatorList.length > 5) ? height : 'auto'),\n change: this.changeField.bind(this),\n index: ddlIdx,\n value: value,\n open: this.popupOpen.bind(this, false)\n };\n if (this.operatorModel) {\n ddlOperator = __assign({}, ddlOperator, this.operatorModel);\n }\n var dropDownList = new DropDownList(ddlOperator);\n dropDownList.appendTo('#' + ruleId + '_operatorkey');\n tempRule.operator = (rule && rule.operator !== '' && !isNullOrUndefined(rule.operator)) ? rule.operator : operatorList[0].value;\n if (this.isImportRules) {\n tempRule.type = this.selectedColumn.type;\n tempRule.operator = rule.operator;\n }\n if (!isNullOrUndefined(value) && value !== '') {\n this.renderValues(operatorElem, this.selectedColumn, ddlArgs.previousItemData, false, rule, tempRule, ddlArgs.element);\n }\n else if (this.autoSelectField && this.autoSelectOperator) {\n this.renderValues(operatorElem, this.selectedColumn, ddlArgs.previousItemData, false, rule, tempRule, ddlArgs.element);\n }\n }\n }\n if (!this.isImportRules) {\n this.updateRules(ddlArgs.element, ddlArgs.item);\n }\n };\n QueryBuilder.prototype.popupOpen = function (isField, args) {\n if (this.enableRtl) {\n addClass([args.popup.element], 'e-rtl');\n }\n if (isField) {\n this.isFieldClose = false;\n }\n };\n QueryBuilder.prototype.destroyControls = function (target, isRuleTemplate) {\n var element = isRuleTemplate ? target : target.nextElementSibling;\n var inputElement = element.querySelectorAll('input.e-control');\n var divElement = element.querySelectorAll('div.e-control:not(.e-handle)');\n var columns = this.columns;\n for (var i = 0, len = inputElement.length; i < len; i++) {\n if (inputElement[i].classList.contains('e-textbox')) {\n getComponent(inputElement[i], 'textbox').destroy();\n detach(select('input#' + inputElement[i].id, element));\n }\n else if (inputElement[i].classList.contains('e-dropdownlist')) {\n if (this.allowValidation && inputElement[i].parentElement.className.indexOf('e-tooltip') > -1) {\n getComponent(inputElement[i].parentElement, 'tooltip').destroy();\n }\n getComponent(inputElement[i], 'dropdownlist').destroy();\n }\n else if (inputElement[i].classList.contains('e-radio')) {\n getComponent(inputElement[i], 'radio').destroy();\n }\n else if (inputElement[i].classList.contains('e-numerictextbox')) {\n getComponent(inputElement[i], 'numerictextbox').destroy();\n detach(select('input#' + inputElement[i].id, element));\n }\n else if (inputElement[i].classList.contains('e-datepicker')) {\n getComponent(inputElement[i], 'datepicker').destroy();\n }\n else if (inputElement[i].classList.contains('e-multiselect')) {\n getComponent(inputElement[i], 'multiselect').destroy();\n }\n else if (inputElement[i].className.indexOf('e-template') > -1) {\n var clsName = inputElement[i].className;\n for (var j = 0, jLen = columns.length; j < jLen; j++) {\n if (columns[j].template && clsName.indexOf(columns[j].field) > -1) {\n this.templateDestroy(columns[j], inputElement[i].id);\n break;\n }\n }\n }\n if (document.getElementById(inputElement[i].id)) {\n detach(inputElement[i]);\n }\n }\n for (var i = 0, len = divElement.length; i < len; i++) {\n if (divElement[i].className.indexOf('e-template') > -1) {\n var clsName = divElement[i].className;\n for (var j = 0, jLen = columns.length; j < jLen; j++) {\n if (columns[j].template && clsName.indexOf(columns[j].field) > -1) {\n this.templateDestroy(columns[j], divElement[i].id);\n break;\n }\n }\n }\n detach(divElement[i]);\n }\n var templateElement = element.querySelectorAll('.e-template:not(.e-control)');\n for (var i = 0, len = templateElement.length; i < len; i++) {\n detach(templateElement[i]);\n }\n };\n QueryBuilder.prototype.templateDestroy = function (column, elemId) {\n var template;\n if (typeof column.template !== 'string' || column.template.destroy === undefined) {\n template = column.template;\n }\n else {\n return;\n }\n var temp = template.destroy;\n if (template.destroy) {\n var templateElements = void 0;\n if (document.getElementById(elemId)) {\n templateElements = closest(document.getElementById(elemId), '.e-rule-field').querySelectorAll('.e-template');\n }\n if (typeof temp === 'string') {\n temp = getValue(temp, window);\n temp({ field: column.field, elementId: elemId, elements: templateElements });\n }\n else {\n template.destroy({ field: column.field, elementId: elemId, elements: templateElements });\n }\n }\n };\n /**\n * Return values bound to the column.\n *\n * @param {string} field - 'field' to be passed to get the field values.\n * @returns {object[]} - Values bound to the column\n */\n QueryBuilder.prototype.getValues = function (field) {\n var original = {};\n var result = [];\n var value;\n var fieldColl = [];\n if (this.separator.length > 0) {\n fieldColl = field.split(this.separator);\n }\n var dataSource = this.dataColl;\n if (this.dataColl[1]) {\n for (var i = 0, iLen = dataSource.length; i < iLen; i++) {\n var data = {};\n if (fieldColl.length > 1) {\n var dataObj = dataSource[i];\n var fieldStr = void 0;\n for (var j = 0, jLen = fieldColl.length; j < jLen; j++) {\n fieldStr = fieldColl[j];\n if (fieldColl.length === (j + 1)) {\n value = dataObj[\"\" + fieldStr];\n if (Number(dataObj[\"\" + fieldStr]) === dataObj[\"\" + fieldStr] && dataObj[\"\" + fieldStr] % 1 !== 0) {\n value = dataObj[\"\" + fieldStr].toString();\n }\n }\n else {\n dataObj = dataObj[\"\" + fieldStr];\n }\n }\n }\n else {\n value = dataSource[i][\"\" + field];\n if (Number(dataSource[i][\"\" + field]) === dataSource[i][\"\" + field] && dataSource[i][\"\" + field] % 1 !== 0) {\n value = dataSource[i][\"\" + field].toString();\n }\n }\n if (!(value in original)) {\n original[\"\" + value] = 1;\n if (fieldColl.length > 1) {\n this.createNestedObject(data, fieldColl, value);\n }\n else {\n data[\"\" + field] = value;\n }\n result.push(data);\n }\n }\n }\n return result;\n };\n QueryBuilder.prototype.createNestedObject = function (obj, fieldColl, value) {\n var key;\n var lastIndex = fieldColl.length - 1;\n for (var k = 0; k < lastIndex; ++k) {\n key = fieldColl[k];\n if (!(key in obj)) {\n obj[\"\" + key] = {};\n }\n obj = obj[\"\" + key];\n }\n obj[fieldColl[lastIndex]] = value;\n };\n QueryBuilder.prototype.getDistinctValues = function (dataSource, field) {\n var original = {};\n var result = [];\n var nest = [];\n var value = '';\n var isNested = field.indexOf(this.separator);\n var _loop_2 = function (i, iLen) {\n value = '';\n if (isNested === 0) {\n value = dataSource[i][\"\" + field];\n }\n else {\n nest = field.split(this_2.separator);\n // eslint-disable-next-line @typescript-eslint/tslint/config\n nest.forEach(function (element) {\n if (value) {\n value = value[\"\" + element];\n }\n else {\n value = dataSource[i][\"\" + element];\n }\n });\n }\n if (Number(dataSource[i][\"\" + field]) === dataSource[i][\"\" + field] && dataSource[i][\"\" + field] % 1 !== 0) {\n value = dataSource[i][\"\" + field].toString();\n }\n var data = {};\n if (!(value in original)) {\n original[\"\" + value] = 1;\n if (isNested === 0) {\n data[\"\" + field] = value;\n }\n else {\n data[nest[nest.length - 1]] = value;\n }\n result.push(data);\n }\n };\n var this_2 = this;\n for (var i = 0, iLen = dataSource.length; i < iLen; i++) {\n _loop_2(i, iLen);\n }\n return result;\n };\n QueryBuilder.prototype.renderMultiSelect = function (rule, parentId, i, selectedValue, values) {\n var isFetched = false;\n var ds;\n var isValues = false;\n this.isGetNestedData = false;\n if (this.dataColl[1]) {\n if (Object.keys(this.dataColl[1]).indexOf(rule.field) > -1) {\n isFetched = true;\n ds = this.getDistinctValues(this.dataColl, rule.field);\n }\n }\n isFetched = rule.columns ? false : isFetched;\n if (!this.dataColl.length && values.length) {\n isValues = true;\n }\n var multiSelectValue;\n multiSelectValue = {\n dataSource: isValues ? values : (isFetched ? ds : this.dataManager),\n query: new Query([rule.field]),\n fields: { text: this.selectedRule.field, value: this.selectedRule.field },\n placeholder: this.l10n.getConstant('SelectValue'),\n value: selectedValue,\n mode: 'CheckBox',\n width: '100%',\n change: this.changeValue.bind(this, i),\n close: this.closePopup.bind(this, i),\n actionBegin: this.multiSelectOpen.bind(this, parentId + '_valuekey' + i),\n open: this.popupOpen.bind(this, false)\n };\n if (this.valueModel && this.valueModel.multiSelectModel) {\n multiSelectValue = __assign({}, multiSelectValue, this.valueModel.multiSelectModel);\n }\n var multiSelectObj = new MultiSelect(multiSelectValue);\n multiSelectObj.appendTo('#' + parentId + '_valuekey' + i);\n this.updateRules(multiSelectObj.element, selectedValue, 0);\n };\n QueryBuilder.prototype.multiSelectOpen = function (parentId, args) {\n if (this.dataSource instanceof DataManager) {\n var element = document.getElementById(parentId);\n var dropDownObj = getComponent(closest(element, '.e-rule-container').querySelector('.e-filter-input'), this.fieldMode === 'DropdownTree' ? 'dropdowntree' : 'dropdownlist');\n if (this.fieldMode === 'DropdownTree') {\n this.selectedColumn = this.getColumn(dropDownObj.value[0]);\n }\n else {\n this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);\n }\n var value = this.selectedColumn.field;\n var isFetched = false;\n if (this.dataColl[1]) {\n if (Object.keys(this.dataColl[1]).indexOf(value) > -1) {\n isFetched = true;\n }\n var isNest = value.indexOf(this.separator);\n if (isNest !== 0 && this.isGetNestedData) {\n isFetched = true;\n }\n }\n if (!isFetched) {\n args.cancel = true;\n this.bindMultiSelectData(element, value);\n }\n }\n };\n QueryBuilder.prototype.bindMultiSelectData = function (element, value) {\n this.getMultiSelectData(element, value);\n };\n QueryBuilder.prototype.getMultiSelectData = function (element, value) {\n var _this = this;\n var dummyData;\n var deferred = new Deferred();\n var data = this.dataManager.executeQuery(new Query().select(value));\n var multiselectObj = getComponent(element, 'multiselect');\n multiselectObj.hideSpinner();\n this.createSpinner(closest(element, '.e-multi-select-wrapper').parentElement);\n showSpinner(closest(element, '.e-multi-select-wrapper').parentElement);\n data.then(function (e) {\n if (e.actual && e.actual.result) {\n dummyData = e.actual.result;\n }\n else {\n dummyData = e.result;\n }\n _this.dataColl = extend(_this.dataColl, dummyData, [], true);\n multiselectObj.dataSource = _this.getDistinctValues(_this.dataColl, value);\n _this.isGetNestedData = true;\n hideSpinner(closest(element, '.e-multi-select-wrapper').parentElement);\n }).catch(function (e) {\n deferred.reject(e);\n });\n };\n QueryBuilder.prototype.createSpinner = function (element) {\n var spinnerElem = this.createElement('span', { attrs: { class: 'e-qb-spinner' } });\n element.appendChild(spinnerElem);\n createSpinner({ target: spinnerElem, width: Browser.isDevice ? '16px' : '14px' });\n };\n QueryBuilder.prototype.closePopup = function (i, args) {\n var element = document.getElementById(args.popup.element.id.replace('_popup', ''));\n if (element) {\n var ms = getComponent(element, 'multiselect');\n if (ms) {\n var value = ms.value;\n this.updateRules(element, value, i);\n }\n }\n };\n QueryBuilder.prototype.processTemplate = function (target, itemData, rule, tempRule) {\n var container = closest(target, '.e-rule-container');\n var tempElements = container.querySelectorAll('.e-template');\n var filterElem = container.querySelector('.e-rule-filter .e-filter-input');\n var ddlObj = this.fieldMode === 'DropdownTree' ? getComponent(filterElem, 'dropdowntree')\n : getComponent(container.querySelector('.e-rule-filter .e-filter-input'), 'dropdownlist');\n var column = this.fieldMode === 'DropdownTree' ? this.getColumn(ddlObj.value[0]) : this.getColumn(ddlObj.value);\n if (typeof itemData.template === 'string' || itemData.template.write === undefined) {\n var args = { rule: rule, ruleID: container.id, operator: tempRule.operator, field: column.field,\n requestType: 'value-template-create' };\n this.trigger('actionBegin', args);\n }\n else {\n var template = itemData.template;\n if (typeof template.write === 'string') {\n getValue(template.write, window)({ elements: tempElements.length > 1 ? tempElements : tempElements[0], values: rule.value,\n operator: tempRule.operator, field: column.field, dataSource: column.values });\n }\n else if (typeof itemData.template !== 'function') {\n itemData.template.write({ elements: tempElements.length > 1 ? tempElements : tempElements[0],\n values: rule.value, operator: tempRule.operator, field: column.field, dataSource: column.values });\n }\n }\n };\n QueryBuilder.prototype.getItemData = function (parentId) {\n var fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdownlist');\n var parentFieldObj = this.element.querySelector(\"#\" + parentId);\n if (this.fieldMode === 'DropdownTree') {\n fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdowntree');\n }\n else if (parentFieldObj) {\n var subFieldObjList = parentFieldObj.querySelectorAll('.e-rule-sub-filter');\n if (subFieldObjList.length > 0) {\n var lastSubFieldObj = subFieldObjList[subFieldObjList.length - 1].querySelector('.e-dropdownlist');\n fieldObj = getComponent(lastSubFieldObj, 'dropdownlist');\n }\n }\n return this.fieldMode === 'DropdownTree' ? this.getColumn(fieldObj.value[0]) : this.getColumn(fieldObj.value);\n };\n QueryBuilder.prototype.setDefaultValue = function (parentId, isArryValue, isNumber) {\n var itemData = this.getItemData(parentId);\n if (isNullOrUndefined(itemData.value)) {\n return isNumber ? isArryValue ? [0, 0] : 0 : isArryValue ? [] : '';\n }\n if (isArryValue) {\n if (!(itemData.value instanceof Array)) {\n return [itemData.value];\n }\n }\n else {\n if (itemData.value instanceof Array) {\n return itemData.value[0];\n }\n }\n return itemData.value;\n };\n QueryBuilder.prototype.renderStringValue = function (parentId, rule, operator, idx, ruleValElem) {\n var selectedVal;\n var columnData = this.getItemData(parentId);\n var selectedValue;\n var isTemplate = (typeof columnData.template === 'string');\n if (this.isImportRules || this.ruleIndex > -1 || this.groupIndex > -1 || this.isPublic || isTemplate || rule.value !== '') {\n selectedValue = rule.value;\n }\n else {\n selectedValue = this.setDefaultValue(parentId, false, false);\n }\n if ((operator === 'in' || operator === 'notin') && (this.dataColl.length || columnData.values)) {\n selectedVal = (this.isImportRules || this.ruleIndex > -1 || this.groupIndex > -1 || this.isPublic) ? rule.value :\n this.setDefaultValue(parentId, true, false);\n this.renderMultiSelect(columnData, parentId, idx, selectedVal, columnData.values);\n if (this.displayMode === 'Vertical' || this.element.className.indexOf('e-device') > -1) {\n ruleValElem.style.width = '100%';\n }\n else {\n ruleValElem.style.width = null;\n ruleValElem.style.minWidth = '200px';\n }\n }\n else {\n if (operator === 'in' || operator === 'notin') {\n selectedVal = (this.isImportRules || this.ruleIndex > -1 || this.groupIndex > -1) ? rule.value :\n this.setDefaultValue(parentId, true, false);\n selectedValue = selectedVal.join(',');\n }\n if (operator === 'between' || operator === 'notbetween') {\n if (selectedValue.length > 1) {\n selectedValue = selectedValue[idx];\n }\n }\n var txtBox = void 0;\n txtBox = {\n placeholder: this.l10n.getConstant('SelectValue'),\n input: this.changeValue.bind(this, idx)\n };\n if (this.valueModel && this.valueModel.textBoxModel) {\n txtBox = __assign({}, txtBox, this.valueModel.textBoxModel);\n }\n var inputobj = new TextBox(txtBox);\n inputobj.appendTo('#' + parentId + '_valuekey' + idx);\n inputobj.value = selectedValue;\n inputobj.dataBind();\n }\n };\n QueryBuilder.prototype.renderNumberValue = function (parentId, rule, operator, idx, ruleValElem, itemData, length) {\n var columnData = this.getItemData(parentId);\n var isTemplate = (typeof columnData.template === 'string');\n var selectedVal = (this.isImportRules || this.ruleIndex > -1 || this.groupIndex > -1 || this.isPublic || isTemplate ||\n typeof rule.value === 'number') ? rule.value : this.setDefaultValue(parentId, false, true);\n if ((operator === 'in' || operator === 'notin') && (this.dataColl.length || columnData.values)) {\n selectedVal = (this.isImportRules || this.ruleIndex > -1 || this.groupIndex > -1 || this.isPublic) ? rule.value :\n this.setDefaultValue(parentId, true, false);\n this.renderMultiSelect(columnData, parentId, idx, selectedVal, columnData.values);\n if (this.element.className.indexOf('e-device') > -1 || this.displayMode === 'Vertical') {\n ruleValElem.style.width = '100%';\n }\n else {\n ruleValElem.style.minWidth = '200px';\n ruleValElem.style.width = null;\n }\n }\n else if (operator === 'in' || operator === 'notin') {\n selectedVal = (this.isImportRules || this.ruleIndex > -1 || this.groupIndex > -1) ? rule.value :\n this.setDefaultValue(parentId, true, false);\n var selVal = selectedVal.join(',');\n var txtInp = void 0;\n txtInp = {\n placeholder: this.l10n.getConstant('SelectValue'),\n input: this.changeValue.bind(this, idx)\n };\n if (this.valueModel && this.valueModel.textBoxModel) {\n txtInp = __assign({}, txtInp, this.valueModel.textBoxModel);\n }\n var input = new TextBox(txtInp);\n input.appendTo('#' + parentId + '_valuekey' + idx);\n input.value = selVal;\n input.dataBind();\n }\n else {\n itemData = columnData;\n var min = (itemData.validation && itemData.validation.min) ? itemData.validation.min : 0;\n var max = (itemData.validation && itemData.validation.max) ? itemData.validation.max : Number.MAX_VALUE;\n var format = itemData.format ? itemData.format : 'n';\n if (length > 1 && rule) {\n selectedVal = rule.value[idx] ? rule.value[idx] : this.setDefaultValue(parentId, true, true);\n }\n var numericTxt = void 0;\n numericTxt = {\n value: (selectedVal instanceof Array) ? selectedVal[idx] : selectedVal,\n format: format, min: min, max: max, width: '100%',\n step: itemData.step ? itemData.step : 1,\n change: this.changeValue.bind(this, idx)\n };\n if (this.valueModel && this.valueModel.numericTextBoxModel) {\n numericTxt = __assign({}, numericTxt, this.valueModel.numericTextBoxModel);\n }\n var numeric = new NumericTextBox(numericTxt);\n numeric.appendTo('#' + parentId + '_valuekey' + idx);\n numeric.element.setAttribute('aria-label', itemData.label + ' ' + 'Value');\n numeric.element.oninput = this.changeValue.bind(this, idx);\n }\n };\n QueryBuilder.prototype.processValueString = function (value, type) {\n var numArr = [];\n var strArr = value.split(',');\n if (type === 'string') {\n return strArr;\n }\n else {\n for (var k = 0, kLen = strArr.length; k < kLen; k++) {\n numArr.push(Number(strArr[k]));\n }\n return numArr;\n }\n };\n QueryBuilder.prototype.parseDate = function (value, format) {\n var formatOpt;\n var selectedValue;\n if (format) {\n var dParser = this.intl.getDateParser({ skeleton: 'full', type: 'dateTime' });\n formatOpt = this.getFormat(format);\n selectedValue = dParser(value);\n if (isNullOrUndefined(selectedValue)) {\n selectedValue = this.intl.parseDate(value, formatOpt);\n }\n }\n else {\n selectedValue = new Date(value);\n }\n return selectedValue;\n };\n QueryBuilder.prototype.renderControls = function (target, itemData, rule, tempRule, isRendered) {\n addClass([target.parentElement.querySelector('.e-rule-value')], 'e-value');\n removeClass([target.parentElement.querySelector('.e-rule-value')], 'e-hide');\n addClass([target.parentElement.querySelector('.e-rule-value')], 'e-show');\n if (itemData.template && (itemData.template.create || isRendered)) {\n this.processTemplate(target, itemData, rule, tempRule);\n }\n else {\n var length_1;\n if (tempRule.type === 'boolean') {\n length_1 = this.selectedColumn.values ? this.selectedColumn.values.length : 2;\n }\n else {\n length_1 = tempRule.operator && tempRule.operator.toString().toLowerCase().indexOf('between') > -1 ? 2 : 1;\n }\n var parentId = closest(target, '.e-rule-container').id;\n var ruleValElem = void 0;\n var operator = tempRule.operator.toString();\n if (target.className.indexOf('e-rule-operator') > -1 || target.className.indexOf('e-rule-filter') > -1) {\n ruleValElem = target.parentElement.querySelector('.e-rule-value');\n if (this.element.className.indexOf('e-device') > -1 || this.displayMode === 'Vertical') {\n ruleValElem.style.width = '100%';\n }\n else {\n if (operator !== 'in' && operator !== 'notin') {\n addClass([ruleValElem], 'e-custom-value');\n }\n else {\n removeClass([ruleValElem], 'e-custom-value');\n }\n }\n for (var i = 0; i < length_1; i++) {\n switch (tempRule.type) {\n case 'string':\n {\n this.renderStringValue(parentId, rule, operator, i, ruleValElem);\n }\n break;\n case 'number':\n {\n this.renderNumberValue(parentId, rule, operator, i, ruleValElem, itemData, length_1);\n }\n break;\n case 'boolean':\n this.processBoolValues(itemData, rule, parentId, i);\n break;\n case 'date':\n {\n var selectedValue = new Date();\n var selVal = void 0;\n var column = void 0;\n var format = itemData.format;\n var datepick = void 0;\n var datePicker = void 0;\n var place = this.l10n.getConstant('SelectValue');\n var isTemplate = (typeof itemData.template === 'string');\n if (rule.value && !isNullOrUndefined(format)) {\n selVal = (length_1 > 1) ? rule.value[i] : rule.value;\n selectedValue = this.parseDate(selVal, format) || new Date();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!itemData.field && !itemData.key && itemData.value) {\n if (itemData.value instanceof Date) {\n selectedValue = itemData.value;\n }\n else {\n selectedValue = this.parseDate(itemData.value, itemData.format);\n }\n }\n if (!itemData.format && rule && rule.field !== '') {\n column = this.getColumn(rule.field);\n format = column.format;\n }\n if ((this.isImportRules || this.isPublic || isTemplate) && rule) {\n column = this.getColumn(rule.field);\n format = column.format;\n if (rule.value) {\n selVal = (length_1 > 1) ? rule.value[i] : rule.value;\n selectedValue = this.parseDate(selVal, column.format);\n }\n else {\n selectedValue = rule.value;\n }\n }\n if (format) {\n var formatObj = this.getFormat(format);\n if (formatObj.skeleton) {\n datePicker = {\n locale: this.getLocale(), value: selectedValue,\n placeholder: place, format: formatObj, change: this.changeValue.bind(this, i)\n };\n if (this.valueModel && this.valueModel.datePickerModel) {\n datePicker = __assign({}, datePicker, this.valueModel.datePickerModel);\n }\n datepick = new DatePicker(datePicker);\n }\n else {\n datePicker = {\n value: selectedValue, locale: this.getLocale(), placeholder: place,\n format: formatObj.format, change: this.changeValue.bind(this, i)\n };\n if (this.valueModel && this.valueModel.datePickerModel) {\n datePicker = __assign({}, datePicker, this.valueModel.datePickerModel);\n }\n datepick = new DatePicker(datePicker);\n }\n }\n else {\n datePicker = {\n locale: this.getLocale(), value: selectedValue,\n placeholder: place, change: this.changeValue.bind(this, i)\n };\n if (this.valueModel && this.valueModel.datePickerModel) {\n datePicker = __assign({}, datePicker, this.valueModel.datePickerModel);\n }\n datepick = new DatePicker(datePicker);\n }\n datepick.appendTo('#' + parentId + '_valuekey' + i);\n if (!rule.value) {\n var elem = document.getElementById(parentId + '_valuekey' + i);\n this.updateRules(elem, selectedValue, null, this.isNotValueChange);\n this.isNotValueChange = false;\n }\n }\n break;\n }\n }\n }\n }\n };\n QueryBuilder.prototype.processBoolValues = function (itemData, rule, parentId, i) {\n var isCheck = false;\n var value;\n var orgValue;\n if (isNullOrUndefined(rule.type) && itemData) {\n rule.type = itemData.type;\n }\n var label;\n if (itemData.values) {\n var values = itemData.values;\n if (rule.type === 'boolean' && !isNullOrUndefined(rule.value)) {\n isCheck = values[i].toLowerCase() === rule.value.toString().toLowerCase();\n }\n else if (itemData.value) {\n isCheck = values[i].toLowerCase() === itemData.value.toString().toLowerCase();\n }\n else if (i === 0) {\n isCheck = true;\n }\n orgValue = value = label = values[i];\n }\n else {\n var values = [true, false];\n if (rule.type === 'boolean' && !isNullOrUndefined(rule.value)) {\n isCheck = values[i].toString().toLowerCase() === rule.value.toString().toLowerCase();\n }\n else if (itemData.value) {\n isCheck = values[i].toString().toLowerCase() === itemData.value.toString().toLowerCase();\n }\n else if (i === 0) {\n if (typeof rule.value === 'boolean') {\n isCheck = rule.value ? true : false;\n }\n else {\n isCheck = true;\n }\n }\n if (typeof rule.value === 'boolean' && i === 1) {\n isCheck = !rule.value ? true : false;\n }\n value = values[i].toString();\n orgValue = values[i];\n label = this.l10n.getConstant(['True', 'False'][i]);\n }\n var radioBtn;\n radioBtn = {\n label: label, name: parentId + 'default', checked: isCheck, value: value,\n change: this.changeValue.bind(this, i)\n };\n if (this.valueModel && this.valueModel.radioButtonModel) {\n radioBtn = __assign({}, radioBtn, this.valueModel.radioButtonModel);\n }\n var radiobutton = new RadioButton(radioBtn);\n radiobutton.appendTo('#' + parentId + '_valuekey' + i);\n if (isCheck) {\n this.updateRules(radiobutton.element, orgValue, 0, true);\n }\n };\n QueryBuilder.prototype.getOperatorIndex = function (ddlObj, rule) {\n var i;\n var dataSource = ddlObj.dataSource;\n var len = dataSource.length;\n for (i = 0; i < len; i++) {\n if (rule.operator === ddlObj.dataSource[i].value) {\n return i;\n }\n }\n return 0;\n };\n QueryBuilder.prototype.getPreviousItemData = function (prevItemData, column) {\n if (this.isFieldClose && prevItemData) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n prevItemData = this.getColumn(prevItemData.value ? prevItemData.value : prevItemData.field);\n }\n if (column && column.template && prevItemData && Object.keys(prevItemData).length < 4) {\n prevItemData.template = column.template;\n }\n return prevItemData;\n };\n QueryBuilder.prototype.renderValues = function (target, itemData, prevItemData, isRender, rule, tempRule, element) {\n var subFldElem = target.previousElementSibling;\n var filtElem = subFldElem.getElementsByTagName('input')[0];\n var filtObj = this.fieldMode === 'DropdownTree' ? getComponent(filtElem, 'dropdowntree')\n : getComponent(filtElem, 'dropdownlist');\n var column = this.fieldMode === 'DropdownTree' ? this.getColumn(filtObj.value[0])\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n : this.getColumn(filtObj.value);\n this.selectedRule = column;\n var ddlObj = getComponent(target.querySelector('input'), 'dropdownlist');\n if (isRender) {\n itemData = element.id.indexOf('operator') > -1 ? itemData : this.selectedRule;\n if (itemData.operators) {\n ddlObj.value = null;\n ddlObj.dataBind();\n ddlObj.dataSource = itemData.operators;\n ddlObj.index = this.getOperatorIndex(ddlObj, rule);\n ddlObj.value = tempRule.operator = ddlObj.dataSource[ddlObj.index].value;\n if (!this.autoSelectOperator) {\n ddlObj.index = -1;\n tempRule.operator = ddlObj.value = '';\n }\n else {\n ddlObj.dataBind();\n }\n }\n }\n var operator = tempRule.operator.toString();\n var isTempRendered = false;\n if (!(operator.indexOf('null') > -1 || operator.indexOf('isempty') > -1 || operator.indexOf('isnotempty') > -1)) {\n var parentId = closest(target, '.e-rule-container').id;\n prevItemData = this.getPreviousItemData(prevItemData, column);\n if (prevItemData && prevItemData.template === undefined) {\n if (prevItemData.columns) {\n prevItemData = this.getColumn(rule.field);\n }\n }\n else if (this.fieldMode === 'DropdownTree' && prevItemData === undefined) {\n prevItemData = this.getColumn(rule.field);\n }\n if (prevItemData && prevItemData.template) {\n this.templateDestroy(prevItemData, parentId + '_valuekey0');\n var elem = select('#' + parentId + '_valuekey0', target.nextElementSibling);\n if (elem && !elem.classList.contains('e-control')) {\n detach(select('#' + parentId + '_valuekey0', target.nextElementSibling));\n }\n if (typeof prevItemData.template === 'string' || prevItemData.template.create === undefined) {\n if (target.nextElementSibling.classList.contains('e-template-value')) {\n this.clearQBTemplate([parentId]);\n }\n target.nextElementSibling.innerHTML = '';\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isAngular && !isNullOrUndefined(prevItemData.key) && this.fieldMode === 'DropdownTree') {\n delete prevItemData.template;\n }\n }\n if (isRender) {\n this.validateValue(rule, closest(target, '.e-rule-container'));\n this.destroyControls(target);\n }\n if (this.isImportRules || (ddlObj && ddlObj.value !== '')) {\n if (column) {\n itemData.template = column.template;\n }\n if (itemData.template) {\n addClass([target.nextElementSibling], 'e-template-value');\n itemData.template = column.template;\n isTempRendered = this.setColumnTemplate(itemData, parentId, column.field, itemData.value ||\n operator, target, rule);\n }\n if (isTempRendered) {\n var parentElem = target.parentElement.querySelector('.e-rule-value');\n if (this.element.className.indexOf('e-device') > -1 || this.displayMode === 'Vertical') {\n parentElem.style.width = '100%';\n }\n else {\n parentElem.style.width = '200px';\n }\n }\n else {\n removeClass([target.nextElementSibling], 'e-template-value');\n var inputLen = 1;\n if (tempRule.type === 'boolean') {\n inputLen = this.selectedColumn.values ? this.selectedColumn.values.length : 2;\n }\n else {\n inputLen = (operator && operator.toLowerCase().indexOf('between') > -1) ? 2 : 1;\n }\n for (var i = 0; i < inputLen; i++) {\n var valElem = this.createElement('input', { attrs: { type: 'text', id: parentId + '_valuekey' + i } });\n target.nextElementSibling.appendChild(valElem);\n }\n }\n this.renderControls(target, itemData, rule, tempRule, isTempRendered);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isAngular && !isNullOrUndefined(itemData.key) && itemData.template && this.fieldMode === 'DropdownTree') {\n delete itemData.template;\n }\n }\n }\n else {\n var parentElem = target.parentElement.querySelector('.e-rule-value');\n if (parentElem) {\n removeClass([parentElem], 'e-show');\n addClass([parentElem], 'e-hide');\n }\n }\n };\n QueryBuilder.prototype.setColumnTemplate = function (itemData, ruleID, field, operator, target, rule) {\n var _this = this;\n var args;\n var isRendered = true;\n if (!itemData.template) {\n return true;\n }\n else {\n if (typeof itemData.template === 'string' || itemData.template.create === undefined) {\n args = { requestType: 'value-template-initialize', ruleID: ruleID, field: field, operator: operator, rule: rule,\n renderTemplate: true };\n this.trigger('actionBegin', args, function (observedActionArgs) {\n isRendered = _this.actionBeginSuccessCallBack(observedActionArgs, itemData, ruleID, field, target);\n });\n return isRendered;\n }\n else {\n var valElem = void 0;\n var template = itemData.template;\n if (typeof template.create === 'string') {\n valElem = getValue(template.create, window)({ field: field, operator: operator });\n }\n else {\n valElem = template.create({ field: field, operator: operator });\n }\n if (valElem instanceof Element) {\n valElem.id = ruleID + '_valuekey0';\n addClass([valElem], 'e-template');\n target.nextElementSibling.appendChild(valElem);\n if (field.indexOf(' ') < 0) {\n addClass([valElem], 'e-' + field);\n }\n }\n else if (valElem instanceof Array) {\n addClass(valElem, 'e-template');\n for (var i = 0, iLen = valElem.length; i < iLen; i++) {\n valElem[i].id = ruleID + '_valuekey' + i;\n target.nextElementSibling.appendChild(valElem[i]);\n }\n }\n addClass([target.nextElementSibling], 'e-template-value');\n return true;\n }\n }\n };\n QueryBuilder.prototype.actionBeginSuccessCallBack = function (args, itemData, ruleID, field, target) {\n if (args.renderTemplate) {\n var valElem = void 0;\n this.columnTemplateFn = this.templateParser(typeof itemData.template === 'function' ? itemData.template : itemData.template);\n var templateID = this.element.id + field;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n valElem = this.columnTemplateFn(args, this, ruleID, templateID)[0];\n target.nextElementSibling.appendChild(valElem);\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any\n else if (this.isAngular) {\n var valElemColl = this.columnTemplateFn(args, this, ruleID, templateID);\n valElem = (valElemColl[0].nodeType === 3) ? valElemColl[1] : valElemColl[0];\n target.nextElementSibling.appendChild(valElem);\n } // eslint-disable-next-line @typescript-eslint/no-explicit-any\n else if (this.isVue3) {\n valElem = this.columnTemplateFn(args, this, 'Template', templateID);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n append(valElem, target.nextElementSibling);\n }\n else {\n valElem = this.columnTemplateFn(args, this, 'Template', templateID)[0];\n target.nextElementSibling.appendChild(valElem);\n }\n addClass([target.nextElementSibling], 'e-template-value');\n this.renderReactTemplates();\n return true;\n }\n else {\n return false;\n }\n };\n QueryBuilder.prototype.updateValues = function (element, rule) {\n var idx = 1;\n if (element.className.indexOf('e-template') > -1) {\n idx = 3;\n }\n var controlName = element.className.split(' e-')[idx];\n var i = parseInt(element.id.slice(-1), 2);\n var column;\n var format;\n var selectedDate;\n var value;\n var radioBtnObj;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var textboxValue;\n switch (controlName) {\n case 'checkbox':\n value = getComponent(element, controlName).value;\n rule.value = (value !== '') ? value : undefined;\n break;\n case 'textbox':\n textboxValue = getComponent(element, controlName).value;\n if (rule.operator.indexOf('between') > -1) {\n if (typeof rule.value === 'string') {\n rule.value = [];\n }\n rule.value[i] = textboxValue;\n }\n else if (['in', 'notin'].some(function (op) { return rule.operator.indexOf(op) !== -1; })\n && rule.operator.indexOf('contains') === -1) {\n rule.value = textboxValue ?\n (rule.type === 'string' ? textboxValue.split(',').map(function (val) { return val.trim(); }) :\n textboxValue.split(',').map(Number)) : [];\n }\n else {\n rule.value = textboxValue;\n }\n break;\n case 'dropdownlist':\n rule.value = getComponent(element, controlName).value;\n break;\n case 'radio':\n radioBtnObj = getComponent(element, controlName);\n if (radioBtnObj.checked) {\n if (typeof rule.value === 'boolean') {\n rule.value = radioBtnObj.value === 'true';\n }\n else {\n if (this.getColumn(rule.field).values) {\n rule.value = radioBtnObj.value;\n }\n else {\n rule.value = radioBtnObj.value === 'true';\n }\n }\n }\n radioBtnObj.refresh();\n break;\n case 'numerictextbox':\n if (rule.operator.indexOf('between') > -1) {\n if (typeof rule.value === 'string') {\n rule.value = [];\n }\n rule.value[i] = getComponent(element, controlName).value;\n }\n else {\n rule.value = getComponent(element, controlName).value;\n }\n break;\n case 'datepicker':\n column = this.getColumn(rule.field);\n format = this.getFormat(column.format);\n selectedDate = getComponent(element, controlName).value;\n if (rule.operator.indexOf('between') > -1) {\n if (typeof rule.value === 'string') {\n rule.value = [];\n }\n rule.value[i] = this.intl.formatDate(selectedDate, format);\n }\n else if (isNullOrUndefined(format.format) && selectedDate) {\n rule.value = this.intl.formatDate(selectedDate);\n }\n else if (selectedDate) {\n rule.value = this.intl.formatDate(selectedDate, format);\n }\n else {\n rule.value = selectedDate;\n }\n break;\n case 'multiselect':\n rule.value = getComponent(element, controlName).value;\n break;\n }\n };\n QueryBuilder.prototype.updateRules = function (target, selectedValue, i, isNotTrigger) {\n var groupElem = closest(target, '.e-group-container');\n var rule = this.getParentGroup(groupElem);\n var ruleElem = closest(target, '.e-rule-container');\n var index = 0;\n var dropDownObj;\n var eventsArgs;\n var groupID = groupElem.id.replace(this.element.id + '_', '');\n var beforeRules = this.getValidRules(this.rule);\n while (ruleElem && ruleElem.previousElementSibling !== null) {\n ruleElem = ruleElem.previousElementSibling;\n if (!this.enableSeparateConnector || (this.enableSeparateConnector &&\n ((!this.headerTemplate && !ruleElem.classList.contains('e-btn-group')) ||\n this.headerTemplate && (ruleElem.classList.contains('e-rule-container') ||\n ruleElem.classList.contains('e-group-container'))))) {\n index++;\n }\n }\n var operator = rule.rules[index].operator ? rule.rules[index].operator.toString() : '';\n ruleElem = closest(target, '.e-rule-container');\n var ruleID = ruleElem.id.replace(this.element.id + '_', '');\n if (closest(target, '.e-rule-filter') || closest(target, '.e-rule-sub-filter')) {\n if (this.subFieldElem) {\n target = this.subFieldElem;\n }\n dropDownObj = this.fieldMode === 'DropdownTree' ? getComponent(target, 'dropdowntree') :\n getComponent(target, 'dropdownlist');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var column = this.fieldMode === 'DropdownTree' ? this.getColumn(dropDownObj.value[0])\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n : this.getColumn(dropDownObj.value);\n if (!this.isImportRules && rule.rules[index].field &&\n rule.rules[index].field.toLowerCase() !== column.field.toLowerCase()) {\n if (!(ruleElem.querySelectorAll('.e-template')) && !(operator.indexOf('null') > -1)\n || (operator.indexOf('empty') > -1)) {\n rule.rules[index].value = '';\n }\n }\n this.selectedColumn = this.getColumn(this.selectedColumn.field);\n rule.rules[index].field = this.selectedColumn.field;\n rule.rules[index].type = this.selectedColumn.type;\n rule.rules[index].label = this.selectedColumn.label;\n var ruleElement = closest(target, '.e-rule-filter');\n ruleElement = ruleElement ? ruleElement : closest(target, '.e-rule-sub-filter');\n var element = ruleElement.nextElementSibling.querySelector('input.e-control');\n element = element ? element : ruleElement.nextElementSibling.nextElementSibling.querySelector('input.e-control');\n operator = getComponent(element, 'dropdownlist').value.toString();\n rule.rules[index].operator = operator;\n // Value Fields\n var valueContainer = ruleElement.nextElementSibling.nextElementSibling;\n var elementCln = valueContainer.querySelectorAll('input.e-control');\n if (elementCln.length < 1) {\n elementCln = valueContainer.querySelectorAll('div.e-control');\n }\n if (elementCln.length < 1) {\n elementCln = valueContainer.querySelectorAll('.e-template');\n }\n eventsArgs = { groupID: groupID, ruleID: ruleID, value: rule.rules[index].field, type: 'field' };\n for (var i_1 = 0; i_1 < elementCln.length; i_1++) {\n if (operator.indexOf('null') > -1 || operator.indexOf('empty') > -1) {\n rule.rules[index].value = null;\n continue;\n }\n this.updateValues(elementCln[i_1], rule.rules[index]);\n }\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('change', eventsArgs);\n }\n if (this.allowValidation && rule.rules[index].field && target.parentElement.className.indexOf('e-tooltip') > -1) {\n getComponent(target.parentElement, 'tooltip').destroy();\n }\n this.filterRules(beforeRules, this.getValidRules(this.rule), 'field');\n }\n else if (closest(target, '.e-rule-operator')) {\n dropDownObj = getComponent(target, 'dropdownlist');\n rule.rules[index].operator = dropDownObj.value.toString();\n var inputElem = ruleElem.querySelectorAll('.e-rule-value input.e-control');\n eventsArgs = { groupID: groupID, ruleID: ruleID, value: dropDownObj.value, type: 'operator' };\n if (this.allowValidation && rule.rules[index].operator && target.parentElement.className.indexOf('e-tooltip') > -1) {\n getComponent(target.parentElement, 'tooltip').destroy();\n }\n if (inputElem.length > 1 && !(inputElem[0].className.indexOf('e-template') > -1)) {\n rule.rules[index].value = [];\n }\n for (var i_2 = 0; i_2 < inputElem.length; i_2++) {\n if (rule.rules[index].operator.indexOf('null') > -1 || rule.rules[index].operator.indexOf('empty') > -1) {\n rule.rules[index].value = null;\n continue;\n }\n else if (inputElem[i_2].classList.contains('e-template')) {\n continue;\n }\n this.updateValues(inputElem[i_2], rule.rules[index]);\n }\n if (!this.isImportRules) {\n this.trigger('change', eventsArgs);\n }\n this.filterRules(beforeRules, this.getValidRules(this.rule), 'operator');\n }\n else if (closest(target, '.e-rule-value')) {\n this.ruleValueUpdate(target, selectedValue, rule, index, groupElem, ruleElem, i);\n if (!isNotTrigger) {\n this.filterRules(beforeRules, this.getValidRules(this.rule), 'value');\n }\n }\n };\n QueryBuilder.prototype.filterRules = function (beforeRule, afterRule, type) {\n var beforeRuleStr = JSON.stringify({ condition: beforeRule.condition, not: beforeRule.not, rule: beforeRule.rules });\n var afetrRuleStr = JSON.stringify({ condition: afterRule.condition, not: afterRule.not, rule: afterRule.rules });\n if (beforeRuleStr !== afetrRuleStr) {\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('ruleChange', { previousRule: beforeRule, rule: afterRule, type: type });\n }\n }\n };\n QueryBuilder.prototype.ruleValueUpdate = function (target, selectedValue, rule, index, groupElem, ruleElem, i) {\n var eventsArgs;\n var oper;\n var arrOperator = ['in', 'between', 'notin', 'notbetween'];\n if (rule.rules[index].operator) {\n oper = rule.rules[index].operator.toString().toLowerCase();\n }\n if (selectedValue !== null) {\n if (target.className.indexOf('e-multiselect') > -1 && rule.rules[index].type === 'number' &&\n !this.isNotified) {\n var selVal = [];\n var dupSelectedValue = selectedValue;\n for (var k = 0, kLen = dupSelectedValue.length; k < kLen; k++) {\n if (typeof dupSelectedValue[k] === 'string') {\n selVal.push(parseFloat(dupSelectedValue[k]));\n }\n }\n if (selVal.length) {\n selectedValue = selVal;\n }\n }\n if (this.isNotified) {\n rule.rules[index].value = selectedValue;\n eventsArgs = { groupID: groupElem.id, ruleID: ruleElem.id, value: rule.rules[index].value, type: 'value' };\n if (!this.isImportRules) {\n this.trigger('change', eventsArgs);\n }\n }\n else if (target.className.indexOf('e-spin') > -1 || target.className.indexOf('e-numeric') > -1) {\n if (arrOperator.indexOf(oper) > -1) {\n rule.rules[index].value[i] = selectedValue;\n }\n else {\n rule.rules[index].value = selectedValue;\n }\n }\n else if (target.className.indexOf('e-radio') > -1) {\n rule.rules[index].value = selectedValue;\n }\n else if (target.className.indexOf('e-multiselect') > -1) {\n rule.rules[index].value = selectedValue;\n }\n else if (target.className.indexOf('e-textbox') > -1) {\n if (oper === 'in' || oper === 'notin') {\n if (rule.rules[index].type === 'string') {\n rule.rules[index].value = this.processValueString(selectedValue, rule.rules[index].type);\n }\n else {\n rule.rules[index].value = this.processValueString(selectedValue, rule.rules[index].type);\n }\n }\n else if (oper === 'between' || oper === 'notbetween') {\n if (typeof rule.rules[index].value === 'string') {\n rule.rules[index].value = [];\n }\n rule.rules[index].value[i] = selectedValue;\n }\n else {\n rule.rules[index].value = selectedValue;\n }\n }\n else if (target.className.indexOf('e-datepicker') > -1) {\n var format = this.getFormat(this.getColumn(this.selectedColumn.field).format);\n if (format.type) {\n if (arrOperator.indexOf(oper) > -1) {\n if (typeof rule.rules[index].value === 'string') {\n rule.rules[index].value = [];\n }\n rule.rules[index].value[i] = this.intl.formatDate(selectedValue, format);\n }\n else {\n rule.rules[index].value = this.intl.formatDate(selectedValue, format);\n }\n }\n }\n this.validateValue(rule, ruleElem, index);\n }\n else {\n if (target.className.indexOf('e-datepicker') > -1) {\n if (arrOperator.indexOf(oper) > -1) {\n if (typeof rule.rules[index].value === 'string') {\n rule.rules[index].value = [];\n }\n rule.rules[index].value[i] = selectedValue;\n }\n else {\n rule.rules[index].value = selectedValue;\n }\n }\n else {\n rule.rules[index].value = selectedValue;\n }\n }\n };\n QueryBuilder.prototype.validateValue = function (rule, ruleElem, index) {\n if (!isNullOrUndefined(index)) {\n rule = rule.rules[index];\n }\n var isObject = typeof (rule.value) === 'object';\n if (this.allowValidation && (isNullOrUndefined(index) || (isObject ? rule.value.length > 0 : rule.value))) {\n var valElem = ruleElem.querySelectorAll('.e-rule-value .e-control');\n if (valElem.length > 0) {\n if (valElem[0].className.indexOf('e-tooltip') > -1) {\n getComponent(valElem[0], 'tooltip').destroy();\n }\n else if (valElem[0].parentElement.className.indexOf('e-tooltip') > -1) {\n getComponent(valElem[0].parentElement, 'tooltip').destroy();\n }\n if (valElem[1] && valElem[1].parentElement.className.indexOf('e-tooltip') > -1) {\n getComponent(valElem[1].parentElement, 'tooltip').destroy();\n }\n if (valElem[2] && valElem[2].parentElement.className.indexOf('e-tooltip') > -1) {\n getComponent(valElem[2].parentElement, 'tooltip').destroy();\n }\n }\n }\n };\n QueryBuilder.prototype.getFormat = function (format) {\n var formatOptions;\n if (format) {\n if (typeof (format) === 'string') {\n formatOptions = { type: 'dateTime' };\n if (format === 'short' || format === 'yMd') {\n formatOptions.type = 'date';\n formatOptions.skeleton = format;\n }\n else {\n formatOptions.format = format;\n }\n }\n else {\n formatOptions = { type: 'dateTime', skeleton: format.skeleton };\n }\n }\n else {\n formatOptions = { type: 'date', skeleton: 'yMd' };\n }\n return formatOptions;\n };\n QueryBuilder.prototype.findGroupByIdx = function (groupIdx, rule, isRoot) {\n var ruleColl = rule.rules;\n var dupRuleColl = [];\n if (!isRoot) {\n for (var j = 0, jLen = ruleColl.length; j < jLen; j++) {\n rule = ruleColl[j];\n if (rule.rules) {\n dupRuleColl.push(rule);\n }\n }\n return dupRuleColl[groupIdx];\n }\n return rule;\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers.\n * Also it maintains the initial input element from the DOM.\n *\n * @method destroy\n * @returns {void}\n */\n QueryBuilder.prototype.destroy = function () {\n this.isDestroy = true;\n var queryElement = this.element;\n if (!queryElement) {\n return;\n }\n var element;\n var i;\n var len;\n var tooltip;\n _super.prototype.destroy.call(this);\n element = this.element.querySelectorAll('.e-addrulegroup');\n len = element.length;\n for (i = 0; i < len; i++) {\n getComponent(element[i], 'dropdown-btn').destroy();\n detach(element[i]);\n }\n tooltip = this.element.querySelectorAll('.e-rule-filter .e-control.e-tooltip');\n for (i = 0; i < tooltip.length; i++) {\n getComponent(tooltip[i], 'tooltip').destroy();\n }\n element = this.element.querySelectorAll('.e-rule-filter .e-control:not(.e-tooltip)');\n len = element.length;\n for (i = 0; i < len; i++) {\n if (getComponent(element[i], 'dropdownlist')) {\n getComponent(element[i], 'dropdownlist').destroy();\n }\n else {\n getComponent(element[i], 'dropdowntree').destroy();\n }\n detach(element[i]);\n }\n tooltip = this.element.querySelectorAll('.e-rule-operator .e-control.e-tooltip');\n for (i = 0; i < tooltip.length; i++) {\n getComponent(tooltip[i], 'tooltip').destroy();\n }\n element = this.element.querySelectorAll('.e-rule-operator .e-control:not(.e-tooltip)');\n len = element.length;\n for (i = 0; i < len; i++) {\n if (getComponent(element[i], 'dropdownlist')) {\n getComponent(element[i], 'dropdownlist').destroy();\n detach(element[i]);\n }\n }\n tooltip = this.element.querySelectorAll('.e-rule-value .e-control.e-tooltip');\n for (i = 0; i < tooltip.length; i++) {\n getComponent(tooltip[i], 'tooltip').destroy();\n }\n this.isImportRules = false;\n this.unWireEvents();\n this.levelColl[this.element.id + '_group0'] = [0];\n this.element.innerHTML = '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.portals && this.portals.length) {\n this.clearQBTemplate();\n }\n var popupElement = document.querySelectorAll('.qb-dropdownlist.e-popup');\n if (popupElement) {\n for (i = 0; i < popupElement.length; i++) {\n popupElement[i].remove();\n }\n }\n classList(this.element, [], ['e-rtl', 'e-responsive', 'e-device']);\n this.isDestroy = false;\n };\n /**\n * Adds single or multiple rules.\n *\n * @param {RuleModel[]} rule - 'rule collection' to be passed to add the rules.\n * @param {string} groupID - 'group id' to be passed to add the rule in groups.\n * @returns {void}.\n */\n QueryBuilder.prototype.addRules = function (rule, groupID) {\n groupID = this.element.id + '_' + groupID;\n this.isPublic = true;\n for (var i = 0, len = rule.length; i < len; i++) {\n this.addRuleElement(document.getElementById(groupID), rule[i]);\n }\n this.isPublic = false;\n };\n /**\n * Adds single or multiple groups, which contains the collection of rules.\n *\n * @param {RuleModel[]} groups - 'group collection' to be passed to add the groups.\n * @param {string} groupID - 'group id' to be passed to add the groups.\n * @returns {void}.\n */\n QueryBuilder.prototype.addGroups = function (groups, groupID) {\n if (this.isAddSuccess || this.element.querySelectorAll('.e-group-container').length <= this.maxGroupCount) {\n groupID = this.element.id + '_' + groupID;\n var groupElem = document.getElementById(groupID);\n var rule = this.getParentGroup(groupElem);\n var grouplen = groups.length;\n if (grouplen) {\n this.isPublic = true;\n for (var i = 0, len = groups.length; i < len; i++) {\n this.updatedRule = { isLocked: groups[i].isLocked, condition: groups[i].condition,\n not: groups[i].not };\n this.importRules(groups[i], groupElem, false, groups[i].not);\n }\n this.isPublic = false;\n }\n else {\n var condition = 'and';\n var not = false;\n var isLocked = false;\n if (this.updatedRule) {\n condition = this.updatedRule.condition;\n not = this.updatedRule.not;\n isLocked = this.updatedRule.isLocked;\n }\n if (this.groupIndex < 0) {\n if (this.enableNotCondition) {\n rule.rules.push({ 'condition': condition, 'not': not, rules: [] });\n }\n else {\n rule.rules.push({ 'condition': condition, rules: [] });\n }\n }\n else {\n if (this.enableNotCondition) {\n rule.rules.splice(this.groupIndex + 1, 0, { condition: condition, not: not, rules: [], isLocked: isLocked });\n }\n else {\n rule.rules.splice(this.groupIndex + 1, 0, { condition: condition, rules: [], isLocked: isLocked });\n }\n }\n }\n if (!this.headerTemplate) {\n this.disableRuleCondition(groupElem, rule, null, this.enableSeparateConnector ? true : null);\n }\n }\n };\n QueryBuilder.prototype.initWrapper = function () {\n this.isInitialLoad = true;\n if (this.cssClass) {\n addClass([this.element], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n if (this.enableSeparateConnector) {\n addClass([this.element], 'e-multi-connector');\n }\n if (this.enableRtl) {\n addClass([this.element], 'e-rtl');\n }\n if (this.width) {\n this.element.style.width = this.width;\n }\n if (this.height) {\n this.element.style.height = this.height;\n }\n if (this.rule.rules.length) {\n this.isImportRules = true;\n }\n else {\n this.addGroupElement(false, this.element);\n }\n if (Browser.isDevice || (window.innerWidth < 768 && !this.isPropChange) || this.displayMode === 'Vertical') {\n if (Browser.isDevice || window.innerWidth < 768) {\n this.element.style.width = '100%';\n this.element.classList.add('e-device');\n }\n removeClass(this.element.querySelectorAll('.e-rule-container'), 'e-horizontal-mode');\n addClass(this.element.querySelectorAll('.e-rule-container'), 'e-vertical-mode');\n this.displayMode = 'Vertical';\n }\n else {\n this.displayMode = 'Horizontal';\n }\n if (this.summaryView) {\n if (this.isImportRules) {\n this.renderSummary();\n }\n else {\n this.renderSummaryCollapse();\n }\n }\n else {\n if (this.columns && this.columns.length && this.isImportRules) {\n this.addGroupElement(false, this.element, this.rule.condition, false, this.rule.not, false, this.rule);\n var mRules = extend({}, this.rule, {}, true);\n this.isRefreshed = true;\n this.setGroupRules(mRules);\n this.isRefreshed = false;\n }\n else if (this.columns && this.columns.length) {\n this.addRuleElement(this.element.querySelector('.e-group-container'), {});\n }\n this.notGroupRtl();\n if (this.readonly) {\n this.enableReadonly();\n }\n var buttons = this.element.querySelectorAll('label.e-btn');\n var button = void 0;\n for (var i = 0; i < buttons.length; i++) {\n button = buttons.item(i);\n rippleEffect(button, { selector: '.e-btn' });\n }\n }\n };\n QueryBuilder.prototype.renderSummary = function () {\n var contentElem = this.createElement('div', {\n attrs: {\n class: 'e-summary-content',\n id: this.element.id + '_summary_content'\n }\n });\n var textElem = this.createElement('textarea', { attrs: { class: 'e-summary-text', readonly: 'true' }, styles: 'max-height:500px' });\n var editElem = this.createElement('button', { attrs: { type: 'button', class: 'e-edit-rule e-css e-btn e-small e-flat e-primary' } });\n var divElem = this.createElement('div', { attrs: { class: 'e-summary-btndiv' } });\n contentElem.appendChild(textElem);\n textElem.textContent = this.getSqlFromRules(this.rule);\n editElem.textContent = this.l10n.getConstant('Edit');\n divElem.appendChild(editElem);\n contentElem.appendChild(divElem);\n this.element.appendChild(contentElem);\n };\n QueryBuilder.prototype.renderSummaryCollapse = function () {\n var collapseElem = this.createElement('div', {\n attrs: {\n class: 'e-collapse-rule e-icons',\n title: this.l10n.getConstant('SummaryViewTitle')\n }\n });\n this.element.querySelector('.e-group-header').appendChild(collapseElem);\n };\n QueryBuilder.prototype.columnSort = function () {\n if (this.sortDirection.toLowerCase() === 'descending') {\n this.columns = new DataManager(this.columns).executeLocal(new Query().sortByDesc('field'));\n }\n else if (this.sortDirection.toLowerCase() === 'ascending') {\n this.columns = new DataManager(this.columns).executeLocal(new Query().sortBy('field'));\n }\n };\n QueryBuilder.prototype.onChangeNotGroup = function () {\n this.element.innerHTML = '';\n this.groupIdCounter = 0;\n if (!this.headerTemplate) {\n if (this.enableNotCondition) {\n var inputElem = this.createElement('button', { attrs: { type: 'button', class: 'e-qb-toggle' } });\n if (this.groupElem.querySelector('.e-btn-group')) {\n this.groupElem.querySelector('.e-btn-group').insertBefore(inputElem, this.groupElem.querySelector('.e-btngroup-and'));\n }\n }\n else {\n this.groupElem.querySelector('.e-qb-toggle').remove();\n }\n }\n this.setProperties({ rule: this.checkNotGroup(this.rule) }, true);\n this.initWrapper();\n };\n QueryBuilder.prototype.notGroupRtl = function () {\n if (this.enableRtl) {\n addClass(this.element.querySelectorAll('.e-btn-group'), 'e-rtl');\n }\n else {\n removeClass(this.element.querySelectorAll('.e-btn-group'), 'e-rtl');\n }\n };\n QueryBuilder.prototype.checkNotGroup = function (rule) {\n var orgRule;\n if (rule.rules) {\n for (var i = 0; i < rule.rules.length; i++) {\n orgRule = rule.rules[i];\n orgRule = this.checkNotGroup(orgRule);\n rule.rules[i] = orgRule;\n }\n }\n if (!isNullOrUndefined(rule.not)) {\n if (this.enableNotCondition) {\n rule.not = false;\n }\n delete rule.not;\n }\n else if (this.enableNotCondition && !isNullOrUndefined(rule.condition)) {\n rule.not = false;\n }\n return rule;\n };\n QueryBuilder.prototype.onPropertyChanged = function (newProp, oldProp) {\n var properties = Object.keys(newProp);\n this.isPropChange = true;\n var groupElem = this.element.querySelector('.e-group-container');\n var summaryElem = this.element.querySelector('.e-summary-content');\n for (var _i = 0, properties_1 = properties; _i < properties_1.length; _i++) {\n var prop = properties_1[_i];\n switch (prop) {\n case 'summaryView':\n if (newProp.summaryView) {\n groupElem.style.display = 'none';\n if (this.element.querySelectorAll('.e-summary-content').length < 1) {\n this.renderSummary();\n summaryElem = this.element.querySelector('.e-summary-content');\n }\n else {\n this.element.querySelector('.e-summary-text').textContent = this.getSqlFromRules(this.rule);\n }\n summaryElem.style.display = 'block';\n }\n else {\n if (groupElem.querySelectorAll('.e-collapse-rule').length > -1) {\n this.renderSummaryCollapse();\n }\n groupElem.style.display = 'block';\n summaryElem.style.display = 'none';\n }\n break;\n case 'displayMode':\n this.refresh();\n break;\n case 'showButtons':\n if (!isNullOrUndefined(newProp.showButtons.lockGroup)) {\n if (newProp.showButtons.lockGroup) {\n removeClass(this.element.querySelectorAll('.e-lock-grp-btn'), 'e-button-hide');\n }\n else {\n addClass(this.element.querySelectorAll('.e-lock-grp-btn'), 'e-button-hide');\n }\n }\n if (!isNullOrUndefined(newProp.showButtons.lockRule)) {\n if (newProp.showButtons.lockRule) {\n removeClass(this.element.querySelectorAll('.e-lock-rule-btn'), 'e-button-hide');\n }\n else {\n addClass(this.element.querySelectorAll('.e-lock-rule-btn'), 'e-button-hide');\n }\n }\n if (!isNullOrUndefined(newProp.showButtons.cloneGroup)) {\n if (newProp.showButtons.cloneGroup) {\n removeClass(this.element.querySelectorAll('.e-clone-grp-btn'), 'e-button-hide');\n }\n else {\n addClass(this.element.querySelectorAll('.e-clone-grp-btn'), 'e-button-hide');\n }\n }\n if (!isNullOrUndefined(newProp.showButtons.cloneRule)) {\n if (newProp.showButtons.cloneRule) {\n removeClass(this.element.querySelectorAll('.e-clone-rule-btn'), 'e-button-hide');\n }\n else {\n addClass(this.element.querySelectorAll('.e-clone-rule-btn'), 'e-button-hide');\n }\n }\n if (!isNullOrUndefined(newProp.showButtons.ruleDelete)) {\n if (newProp.showButtons.ruleDelete) {\n removeClass(this.element.querySelectorAll('.e-rule-delete'), 'e-button-hide');\n }\n else {\n addClass(this.element.querySelectorAll('.e-rule-delete'), 'e-button-hide');\n }\n }\n if (!isNullOrUndefined(newProp.showButtons.groupDelete)) {\n if (newProp.showButtons.groupDelete) {\n removeClass(this.element.querySelectorAll('.e-deletegroup'), 'e-button-hide');\n }\n else {\n addClass(this.element.querySelectorAll('.e-deletegroup'), 'e-button-hide');\n }\n }\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.element], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.element], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n addClass([this.element], 'e-rtl');\n this.notGroupRtl();\n }\n else {\n removeClass([this.element], 'e-rtl');\n this.notGroupRtl();\n }\n break;\n case 'enablePersistence':\n this.enablePersistence = newProp.enablePersistence;\n break;\n case 'dataSource':\n this.dataSource = newProp.dataSource;\n this.refresh();\n break;\n case 'columns':\n this.columns = newProp.columns;\n this.columnSort();\n this.updateSubFieldsFromColumns(this.columns);\n break;\n case 'sortDirection':\n this.sortDirection = newProp.sortDirection;\n this.columnSort();\n break;\n case 'maxGroupCount':\n this.maxGroupCount = newProp.maxGroupCount;\n break;\n case 'height':\n this.height = newProp.height;\n this.element.style.height = this.height;\n break;\n case 'rule':\n if (this.rule.rules.length === 0 && !isNullOrUndefined(this.rule)) {\n this.reset();\n }\n this.setProperties({ rule: newProp.rule }, true);\n newProp.rule = this.getRuleCollection(this.rule, false);\n this.setRules(this.rule);\n break;\n case 'width':\n this.width = newProp.width;\n this.element.style.width = this.width;\n break;\n case 'locale':\n this.locale = newProp.locale;\n this.intl = new Internationalization(this.locale);\n this.isLocale = true;\n this.refresh();\n this.isLocale = false;\n break;\n case 'enableNotCondition':\n this.onChangeNotGroup();\n break;\n case 'readonly':\n this.isReadonly = newProp.readonly;\n this.enableReadonly();\n break;\n case 'allowDragAndDrop':\n this.allowDragAndDrop = newProp.allowDragAndDrop;\n this.refresh();\n break;\n case 'enableSeparateConnector':\n this.enableSeparateConnector = newProp.enableSeparateConnector;\n this.refresh();\n break;\n }\n }\n this.isPropChange = false;\n };\n QueryBuilder.prototype.preRender = function () {\n this.element.id = this.element.id || getUniqueID('ej2-querybuilder');\n this.defaultLocale = {\n StartsWith: 'Starts With',\n DoesNotStartWith: 'Does Not Start With',\n EndsWith: 'Ends With',\n DoesNotEndWith: 'Does Not End With',\n Contains: 'Contains',\n DoesNotContain: 'Does Not Contain',\n NotLike: 'Not Like',\n Like: 'Like',\n Equal: 'Equal',\n NotEqual: 'Not Equal',\n LessThan: 'Less Than',\n LessThanOrEqual: 'Less Than Or Equal',\n GreaterThan: 'Greater Than',\n GreaterThanOrEqual: 'Greater Than Or Equal',\n Between: 'Between',\n NotBetween: 'Not Between',\n In: 'In',\n NotIn: 'Not In',\n Remove: 'REMOVE',\n SelectField: 'Select a field',\n SelectOperator: 'Select operator',\n DeleteRule: 'Remove this condition',\n DeleteGroup: 'Delete group',\n AddGroup: 'Add Group',\n AddCondition: 'Add Condition',\n Edit: 'EDIT',\n ValidationMessage: 'This field is required',\n SummaryViewTitle: 'Summary View',\n OtherFields: 'Other Fields',\n AND: 'AND',\n OR: 'OR',\n NOT: 'NOT',\n SelectValue: 'Enter Value',\n IsEmpty: 'Is Empty',\n IsNotEmpty: 'Is Not Empty',\n IsNull: 'Is Null',\n IsNotNull: 'Is Not Null',\n True: 'true',\n False: 'false',\n AddButton: 'Add Group/Condition',\n CloneGroup: 'Clone Group',\n LockGroup: 'Lock Group',\n CloneRule: 'Clone Rule',\n LockRule: 'Lock Rule',\n UnlockRule: 'Unlock Rule',\n UnlockGroup: 'Unlock Group'\n };\n this.l10n = new L10n('querybuilder', this.defaultLocale, this.locale);\n this.intl = new Internationalization(this.locale);\n this.groupIdCounter = 0;\n this.subFilterCounter = 0;\n this.ruleIdCounter = 0;\n this.btnGroupId = 0;\n this.isImportRules = false;\n this.parser = [];\n this.customOperators = {\n stringOperator: [\n { value: 'startswith', key: this.l10n.getConstant('StartsWith') },\n { value: 'notstartswith', key: this.l10n.getConstant('DoesNotStartWith') },\n { value: 'endswith', key: this.l10n.getConstant('EndsWith') },\n { value: 'notendswith', key: this.l10n.getConstant('DoesNotEndWith') },\n { value: 'contains', key: this.l10n.getConstant('Contains') },\n { value: 'notcontains', key: this.l10n.getConstant('DoesNotContain') },\n { value: 'equal', key: this.l10n.getConstant('Equal') },\n { value: 'notequal', key: this.l10n.getConstant('NotEqual') },\n { value: 'in', key: this.l10n.getConstant('In') },\n { value: 'notin', key: this.l10n.getConstant('NotIn') },\n { value: 'isempty', key: this.l10n.getConstant('IsEmpty') },\n { value: 'isnotempty', key: this.l10n.getConstant('IsNotEmpty') }\n ],\n dateOperator: [\n { value: 'equal', key: this.l10n.getConstant('Equal') },\n { value: 'greaterthan', key: this.l10n.getConstant('GreaterThan') },\n { value: 'greaterthanorequal', key: this.l10n.getConstant('GreaterThanOrEqual') },\n { value: 'lessthan', key: this.l10n.getConstant('LessThan') },\n { value: 'lessthanorequal', key: this.l10n.getConstant('LessThanOrEqual') },\n { value: 'notequal', key: this.l10n.getConstant('NotEqual') },\n { value: 'between', key: this.l10n.getConstant('Between') },\n { value: 'notbetween', key: this.l10n.getConstant('NotBetween') }\n ],\n booleanOperator: [\n { value: 'equal', key: this.l10n.getConstant('Equal') },\n { value: 'notequal', key: this.l10n.getConstant('NotEqual') }\n ],\n numberOperator: [\n { value: 'equal', key: this.l10n.getConstant('Equal') },\n { value: 'greaterthanorequal', key: this.l10n.getConstant('GreaterThanOrEqual') },\n { value: 'greaterthan', key: this.l10n.getConstant('GreaterThan') },\n { value: 'between', key: this.l10n.getConstant('Between') },\n { value: 'lessthan', key: this.l10n.getConstant('LessThan') },\n { value: 'notbetween', key: this.l10n.getConstant('NotBetween') },\n { value: 'lessthanorequal', key: this.l10n.getConstant('LessThanOrEqual') },\n { value: 'notequal', key: this.l10n.getConstant('NotEqual') },\n { value: 'in', key: this.l10n.getConstant('In') },\n { value: 'notin', key: this.l10n.getConstant('NotIn') }\n ]\n };\n this.operators = {\n equal: '=', notequal: '!=', greaterthan: '>', greaterthanorequal: '>=', lessthan: '<', in: 'IN', notin: 'NOT IN',\n lessthanorequal: '<=', startswith: 'LIKE', endswith: 'LIKE', between: 'BETWEEN', notbetween: 'NOT BETWEEN', contains: 'LIKE',\n isnull: 'IS NULL', isnotnull: 'IS NOT NULL', isempty: 'IS EMPTY', isnotempty: 'IS NOT EMPTY', notstartswith: 'NOT LIKE',\n notendswith: 'NOT LIKE', notcontains: 'NOT LIKE'\n };\n this.sqlOperators = {\n equal: '=', notequal: '!=', greaterthan: '>', greaterthanorequal: '>=', lessthan: '<', in: this.l10n.getConstant('In').toUpperCase(),\n notin: this.l10n.getConstant('NotIn').toUpperCase(), lessthanorequal: '<=', startswith: this.l10n.getConstant('Like').toUpperCase(),\n endswith: this.l10n.getConstant('Like').toUpperCase(), between: this.l10n.getConstant('Between').toUpperCase(),\n notbetween: this.l10n.getConstant('NotBetween').toUpperCase(), contains: this.l10n.getConstant('Like').toUpperCase(),\n isnull: this.l10n.getConstant('IsNull').toUpperCase(), isnotnull: this.l10n.getConstant('IsNotNull').toUpperCase(),\n isempty: this.l10n.getConstant('IsEmpty').toUpperCase(), isnotempty: this.l10n.getConstant('IsNotEmpty').toUpperCase(),\n notstartswith: this.l10n.getConstant('NotLike').toUpperCase(), notendswith: this.l10n.getConstant('NotLike').toUpperCase(),\n notcontains: this.l10n.getConstant('NotLike').toUpperCase()\n };\n if (!this.fields) {\n this.fields = { text: 'label', value: 'field' };\n }\n };\n QueryBuilder.prototype.render = function () {\n this.levelColl = {};\n this.items = [\n {\n text: this.l10n.getConstant('AddGroup'),\n iconCss: 'e-icons e-add-icon e-addgroup'\n },\n {\n text: this.l10n.getConstant('AddCondition'),\n iconCss: 'e-icons e-add-icon e-addrule'\n }\n ];\n this.ruleElem = this.ruleTemplate();\n this.groupElem = this.groupTemplate();\n var stringOper = [\n { value: 'isnull', key: this.l10n.getConstant('IsNull') },\n { value: 'isnotnull', key: this.l10n.getConstant('IsNotNull') }\n ];\n var numberOper = [\n { value: 'isnull', key: this.l10n.getConstant('IsNull') },\n { value: 'isnotnull', key: this.l10n.getConstant('IsNotNull') }\n ];\n this.customOperators['stringOperator'] = this.customOperators['stringOperator'].concat(stringOper); // tslint:disable-line\n this.customOperators['numberOperator'] = this.customOperators['numberOperator'].concat(numberOper); // tslint:disable-line\n if (this.dataSource instanceof DataManager) {\n this.dataManager = this.dataSource;\n this.executeDataManager(new Query().take(1));\n }\n else {\n this.dataManager = new DataManager(this.dataSource);\n this.dataColl = this.dataManager.executeLocal(new Query());\n this.initControl();\n }\n this.renderComplete();\n if (this.allowDragAndDrop) {\n this.initializeDrag();\n }\n };\n QueryBuilder.prototype.initializeDrag = function () {\n this.draggable = new Draggable(this.element, {\n dragTarget: '.e-drag-qb-rule',\n distance: 5,\n helper: this.helper.bind(this),\n dragStart: this.dragStartHandler.bind(this),\n drag: this.dragHandler.bind(this),\n dragStop: this.dragStopHandler.bind(this),\n isReplaceDragEle: true,\n isPreventSelect: false,\n abort: '.e-parent-header',\n isDragScroll: true\n });\n };\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n QueryBuilder.prototype.helper = function (e) {\n var target = this.draggable.currentStateTarget;\n if (!target.classList.contains('e-drag-qb-rule') || (target.classList.contains('e-drag-qb-rule') && closest(target, '.e-disable'))) {\n return false;\n }\n var visualElement = this.createElement('div', {\n className: 'e-cloneproperties e-draganddrop e-dragclone',\n styles: 'height:\"auto\", z-index:2, width:' + this.element.offsetWidth\n });\n var cloneElement;\n if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {\n cloneElement = closest(target, '.e-group-container').cloneNode(true);\n closest(target, '.e-group-container').classList.add('e-qb-dragging-rule');\n }\n else {\n visualElement.classList.add('e-group-body');\n cloneElement = this.createElement('div', { className: 'e-rule-container' });\n var ruleElement = closest(target, '.e-rule-field').cloneNode(true);\n cloneElement.appendChild(ruleElement);\n closest(target, '.e-rule-field').classList.add('e-qb-dragging-rule');\n }\n visualElement.appendChild(cloneElement);\n var childElements = visualElement.querySelectorAll('*');\n childElements.forEach(function (child) {\n child.removeAttribute('id');\n });\n this.element.appendChild(visualElement);\n return visualElement;\n };\n QueryBuilder.prototype.dragStartHandler = function (e) {\n this.draggedRule = e.target;\n this.isDragEventPrevent = false;\n document.body.classList.add('e-prevent-select');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.dragElement = e.dragElement;\n var rule = closest(e.target, '.e-rule-container');\n var group = closest(e.target, '.e-group-container');\n var dragEventArgs = { dragRuleID: rule !== null ? rule.id : group.id, dragGroupID: group.id, cancel: false };\n this.trigger('dragStart', dragEventArgs);\n this.isDragEventPrevent = dragEventArgs.cancel;\n };\n QueryBuilder.prototype.dragHandler = function (e) {\n if (this.isDragEventPrevent) {\n return;\n }\n var borderLineElem = this.element.querySelectorAll('.e-drag-rule-bottom-line');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-drag-rule-bottom-line');\n });\n borderLineElem = this.element.querySelectorAll('.e-drag-rule-top-line');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-drag-rule-top-line');\n });\n if (isNullOrUndefined(e.target)) {\n return;\n }\n if (e.target.nodeName === 'HTML' || closest(e.target, '.e-qb-dragging-rule') || closest(e.target, '.e-group-header') ||\n !closest(e.target, '#' + this.element.id) || closest(e.target, '.e-disable') || (e.target.parentElement && e.target.parentElement.classList.contains('e-btn-group') && this.enableSeparateConnector)) {\n this.dragElement.classList.add('e-notallowedcur');\n return;\n }\n else {\n this.dragElement.classList.remove('e-notallowedcur');\n }\n var targetElem = closest(e.target, '.e-rule-container');\n var grpElem = closest(e.target, '.e-group-container');\n if (targetElem) {\n var rect = targetElem.getBoundingClientRect();\n var mouseY = e.event.clientY || e.event.changedTouches[0].clientY;\n var distanceToTop = mouseY - rect.top;\n var distanceToBottom = rect.bottom - mouseY;\n var threshold = 20; // Adjust as needed\n if (distanceToTop < threshold) {\n targetElem.classList.add('e-drag-rule-top-line');\n }\n else if (distanceToBottom < threshold) {\n targetElem.classList.add('e-drag-rule-bottom-line');\n }\n }\n else if (e.target.classList.contains('e-rule-list') && e.target.children.length === 0) {\n e.target.classList.add('e-drag-rule-bottom-line');\n }\n else if (e.target.classList.contains('e-rule-list') && e.target.children[0].classList.contains('e-group-container')) {\n var rect = e.target.children[0].getBoundingClientRect();\n var mouseY = e.event.clientY || e.event.changedTouches[0].clientY;\n var distanceToTop = mouseY - rect.top;\n var threshold = 20; // Adjust as needed\n if (distanceToTop < threshold) {\n e.target.classList.add('e-drag-rule-top-line');\n }\n }\n else if (closest(e.target, '.e-group-container') || e.target.classList.contains('e-group-container')) {\n if (!grpElem) {\n grpElem = e.target;\n }\n if (grpElem.id.indexOf('group0') > -1) {\n var rect = e.target.getBoundingClientRect();\n var mouseY = e.event.clientY || e.event.changedTouches[0].clientY;\n var distanceToBottom = rect.bottom - mouseY;\n var threshold = 20; // Adjust as needed\n if (distanceToBottom < threshold) {\n e.target.classList.add('e-drag-rule-bottom-line');\n }\n }\n }\n var dragEventArgs = { dragRuleID: targetElem !== null ? targetElem.id : grpElem !== null ? grpElem.id : null,\n dragGroupID: grpElem !== null ? grpElem.id : null, cancel: false };\n this.trigger('drag', dragEventArgs);\n this.isDragEventPrevent = dragEventArgs.cancel;\n };\n QueryBuilder.prototype.dragStopHandler = function (e) {\n var _this = this;\n if (this.isDragEventPrevent) {\n return;\n }\n var targetGroup = closest(e.target, '.e-rule-container');\n if (isNullOrUndefined(targetGroup) && e.target.parentElement &&\n e.target.parentElement.classList.contains('e-btn-group') && this.enableSeparateConnector) {\n targetGroup = closest(e.target.parentElement.previousElementSibling, '.e-rule-container');\n }\n var isPreventelem;\n if (!isNullOrUndefined(e.helper)) {\n isPreventelem = closest(e.helper, '.e-notallowedcur');\n }\n var prevRule;\n if (!isPreventelem) {\n var targetGrp = closest(e.target, '.e-group-container');\n var dropEventArgs = { cancel: false, dropRuleID: targetGroup !== null ? targetGroup.id\n : targetGrp !== null ? targetGrp.id : null, dropGroupID: targetGrp !== null ? targetGrp.id : null };\n this.trigger('drop', dropEventArgs);\n if (dropEventArgs.cancel) {\n isPreventelem = true;\n }\n prevRule = this.getValidRules();\n }\n this.prvtEvtTgrDaD = true;\n var tgrt = this.enableSeparateConnector && e.target.parentElement &&\n e.target.parentElement.classList.contains('e-btn-group') ? e.target.parentElement.previousElementSibling : e.target;\n if (targetGroup && !isPreventelem) {\n var groupId_1 = targetGroup.id.split(this.element.id + '_')[1].split('_')[0];\n if (this.draggable.currentStateTarget.parentElement.classList.contains('e-rule-field') ||\n this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {\n var rule = void 0;\n if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {\n rule = this.getGroup(this.draggedRule);\n this.deleteGroup(closest(this.draggedRule, '.e-group-container'));\n }\n else {\n rule = this.getRule(this.draggedRule);\n this.deleteRule(this.draggedRule);\n }\n var groupRule = extend([], this.getGroup(targetGroup), [], true);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (groupRule.properties) {\n groupRule = groupRule.properties;\n }\n var groupElem = closest(targetGroup, '.e-group-container');\n var nestGrpElem = groupElem.querySelectorAll('.e-group-container');\n nestGrpElem.forEach(function (ele) {\n if (_this.element.querySelector('#' + ele.id)) {\n _this.deleteGroup(ele);\n }\n });\n var ruleElems = groupElem.querySelectorAll('.e-rule-container');\n var ruleIds = [];\n var dropInd = void 0;\n for (var i = 0; i < ruleElems.length; i++) {\n if (ruleElems[i].classList.contains('e-drag-rule-top-line') ||\n ruleElems[i].classList.contains('e-drag-rule-bottom-line')) {\n dropInd = i;\n }\n ruleIds.push(ruleElems[i].id.split(this.element.id + '_')[1]);\n }\n this.deleteRules(ruleIds);\n if (targetGroup.classList.contains('e-drag-rule-top-line')) {\n groupRule.rules.splice(dropInd, 0, rule);\n }\n else {\n groupRule.rules.splice(dropInd + 1, 0, rule);\n }\n groupRule.rules.forEach(function (rule) {\n if (_this.enableSeparateConnector) {\n if (!rule.rules) {\n _this.addRules([rule], groupId_1);\n }\n else {\n _this.addGroups([rule], groupId_1);\n }\n }\n else {\n if (rule.condition) {\n _this.addGroups([rule], groupId_1);\n }\n else {\n _this.addRules([rule], groupId_1);\n }\n }\n });\n }\n }\n else if (tgrt.classList.contains('e-rule-list') && tgrt.children.length === 0 && !isPreventelem) {\n var groupElem = closest(tgrt, '.e-group-container');\n var groupId = groupElem.id.split(this.element.id + '_')[1].split('_')[0];\n var rule = void 0;\n if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {\n rule = this.getGroup(this.draggedRule);\n this.deleteGroup(closest(this.draggedRule, '.e-group-container'));\n }\n else {\n rule = this.getRule(this.draggedRule);\n this.deleteRule(this.draggedRule);\n }\n if (this.enableSeparateConnector) {\n if (!rule.rules) {\n this.addRules([rule], groupId);\n }\n else {\n this.addGroups([rule], groupId);\n }\n }\n else {\n if (rule.condition) {\n this.addGroups([rule], groupId);\n }\n else {\n this.addRules([rule], groupId);\n }\n }\n }\n else if (tgrt.classList.contains('e-rule-list') && tgrt.children[0].classList.contains('e-group-container') && !isPreventelem) {\n var groupElem = closest(tgrt, '.e-group-container');\n var groupId_2 = groupElem.id.split(this.element.id + '_')[1].split('_')[0];\n var rule = void 0;\n if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {\n rule = this.getGroup(this.draggedRule);\n this.deleteGroup(closest(this.draggedRule, '.e-group-container'));\n }\n else {\n rule = this.getRule(this.draggedRule);\n this.deleteRule(this.draggedRule);\n }\n var groupRule = extend([], this.getGroup(tgrt), [], true);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (groupRule.properties) {\n groupRule = groupRule.properties;\n }\n var groupElems = tgrt.querySelectorAll('.e-group-container');\n groupElems.forEach(function (ele) {\n if (_this.element.querySelector('#' + ele.id)) {\n _this.deleteGroup(ele);\n }\n });\n var ruleElems = groupElem.querySelectorAll('.e-rule-container');\n ruleElems.forEach(function (ele) {\n if (_this.element.querySelector('#' + ele.id)) {\n _this.deleteRule(ele);\n }\n });\n if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {\n this.addGroups([rule], groupId_2);\n }\n else {\n this.addRules([rule], groupId_2);\n }\n groupRule.rules.forEach(function (rule) {\n if (_this.enableSeparateConnector) {\n if (!rule.rules) {\n _this.addRules([rule], groupId_2);\n }\n else {\n _this.addGroups([rule], groupId_2);\n }\n }\n else {\n if (rule.condition) {\n _this.addGroups([rule], groupId_2);\n }\n else {\n _this.addRules([rule], groupId_2);\n }\n }\n });\n }\n else if ((closest(e.target, '.e-group-container') || e.target.classList.contains('e-group-container')) && !isPreventelem) {\n var rule = void 0;\n targetGroup = closest(e.target, '.e-group-container');\n if (!targetGroup && e.target.classList.contains('e-group-container')) {\n targetGroup = e.target;\n }\n var groupId = targetGroup.id.split(this.element.id + '_')[1].split('_')[0];\n if (groupId === 'group0') {\n if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {\n rule = this.getGroup(this.draggedRule);\n this.deleteGroup(closest(this.draggedRule, '.e-group-container'));\n }\n else {\n rule = this.getRule(this.draggedRule);\n this.deleteRule(this.draggedRule);\n }\n if (this.enableSeparateConnector) {\n if (!rule.rules) {\n this.addRules([rule], groupId);\n }\n else {\n this.addGroups([rule], groupId);\n }\n }\n else {\n if (rule.condition) {\n this.addGroups([rule], groupId);\n }\n else {\n this.addRules([rule], groupId);\n }\n }\n }\n }\n if (!isPreventelem) {\n this.trigger('ruleChange', { previousRule: prevRule, rule: this.getValidRules(), type: 'drag-and-drop' });\n }\n this.prvtEvtTgrDaD = false;\n document.body.classList.remove('e-prevent-select');\n var borderLineElem = this.element.querySelectorAll('.e-drag-rule-bottom-line');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-drag-rule-bottom-line');\n });\n borderLineElem = this.element.querySelectorAll('.e-drag-rule-top-line');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-drag-rule-top-line');\n });\n borderLineElem = this.element.querySelectorAll('.e-qb-dragging-rule');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-qb-dragging-rule');\n });\n if (e.helper && e.helper.classList.contains('e-cloneproperties') && document.querySelector('.' + e.helper.classList[0])) {\n remove(e.helper);\n }\n if (this.enableSeparateConnector) {\n this.refresh();\n }\n };\n QueryBuilder.prototype.templateParser = function (template) {\n if (template) {\n try {\n if (typeof template !== 'function' && document.querySelectorAll(template).length) {\n return templateCompiler(document.querySelector(template).innerHTML.trim());\n }\n else {\n return compile(template);\n }\n }\n catch (error) {\n return templateCompiler(template);\n }\n }\n return undefined;\n };\n QueryBuilder.prototype.executeDataManager = function (query) {\n var _this = this;\n var data = this.dataManager.executeQuery(query);\n var deferred = new Deferred();\n data.then(function (e) {\n if (e.actual && e.actual.result) {\n _this.dataColl = e.actual.result;\n }\n else {\n _this.dataColl = e.result;\n }\n _this.initControl();\n }).catch(function (e) {\n deferred.reject(e);\n });\n };\n QueryBuilder.prototype.initControl = function () {\n this.initialize();\n this.initWrapper();\n this.wireEvents();\n };\n QueryBuilder.prototype.wireEvents = function () {\n var wrapper = this.getWrapper();\n EventHandler.add(wrapper, 'click', this.clickEventHandler, this);\n EventHandler.add(wrapper, 'focusout', this.focusEventHandler, this);\n EventHandler.add(wrapper, 'focusin', this.focusEventHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);\n if (this.allowDragAndDrop) {\n EventHandler.add(document, 'keydown', this.keyBoardHandler, this);\n }\n window.addEventListener('resize', this.windowResizeHandler.bind(this));\n };\n QueryBuilder.prototype.unWireEvents = function () {\n var wrapper = this.getWrapper();\n EventHandler.remove(wrapper, 'click', this.clickEventHandler);\n EventHandler.remove(wrapper, 'focusout', this.focusEventHandler);\n EventHandler.remove(wrapper, 'focusin', this.focusEventHandler);\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\n EventHandler.remove(document, 'keydown', this.keyBoardHandler);\n window.removeEventListener('resize', this.windowResizeHandler);\n };\n QueryBuilder.prototype.getParentGroup = function (target, isParent) {\n var groupLevel = (target instanceof Element) ? this.levelColl[target.id] : this.levelColl[\"\" + target];\n var len = isParent ? groupLevel.length - 1 : groupLevel.length;\n var rule = this.rule;\n for (var i = 0; i < len; i++) {\n rule = this.findGroupByIdx(groupLevel[i], rule, i === 0);\n }\n return rule;\n };\n /**\n * Delete the Group\n *\n * @param {Element | string} target - 'target' to be passed to delete the group.\n * @returns {void}\n */\n QueryBuilder.prototype.deleteGroup = function (target) {\n var _this = this;\n var groupElem = target;\n var groupId;\n if (typeof target === 'string') {\n groupId = this.element.id + '_' + target;\n target = document.getElementById(groupId);\n groupId = groupId.replace(this.element.id + '_', '');\n }\n else {\n groupId = groupElem.id.replace(this.element.id + '_', '');\n }\n if (groupId === 'group0' || !target) {\n return;\n }\n var args = { groupID: groupId, cancel: false, type: 'deleteGroup' };\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('beforeChange', args, function (observedChangeArgs) {\n _this.deleteGroupSuccessCallBack(observedChangeArgs, target);\n });\n }\n else {\n this.deleteGroupSuccessCallBack(args, target);\n }\n };\n QueryBuilder.prototype.deleteGroupSuccessCallBack = function (args, target) {\n if (!args.cancel) {\n var groupElem = target;\n var rule = this.getParentGroup(groupElem, true);\n var index = 0;\n var i = void 0;\n var len = void 0;\n var beforeRules = this.getValidRules(this.rule);\n var nextElem = groupElem.nextElementSibling;\n var prevElem = groupElem.previousElementSibling;\n var element = groupElem.querySelectorAll('.e-group-container');\n var valElem = groupElem.querySelectorAll('.e-tooltip');\n len = valElem.length;\n for (i = 0; i < len; i++) {\n getComponent(valElem[i], 'tooltip').destroy();\n }\n for (i = 0, len = element.length; i < len; i++) {\n delete this.levelColl[element[i].id];\n }\n while (groupElem.previousElementSibling !== null) {\n groupElem = groupElem.previousElementSibling;\n if (!this.enableSeparateConnector || (this.enableSeparateConnector &&\n ((!this.headerTemplate && !groupElem.classList.contains('e-btn-group')) ||\n this.headerTemplate && (groupElem.classList.contains('e-rule-container') ||\n groupElem.classList.contains('e-group-container'))))) {\n index++;\n }\n }\n if (!this.enableSeparateConnector) {\n if (nextElem && nextElem.className.indexOf('e-separate-rule') > -1) {\n removeClass([nextElem], 'e-separate-rule');\n addClass([nextElem], 'e-joined-rule');\n if (prevElem && prevElem.className.indexOf('e-rule-container') > -1) {\n addClass([prevElem], 'e-prev-joined-rule');\n }\n }\n }\n var elem = groupElem.parentElement.parentElement.parentElement;\n var removeString = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact || this.isAngular) {\n var remRule = rule.rules[index];\n var ruleElemColl = target.querySelectorAll('.e-rule-container');\n if (remRule && remRule.rules) {\n for (var r = 0; r < remRule.rules.length; r++) {\n var column = this.getColumn(remRule.rules[r].field);\n if (ruleElemColl[r]) {\n var isTemplateRendered = ruleElemColl[r].querySelector('.e-template-value');\n if (column && (column.ruleTemplate || (this.isPlatformTemplate(column) && isTemplateRendered))) {\n removeString.push(ruleElemColl[r].id);\n }\n }\n }\n }\n }\n detach(target);\n if (this.headerTemplate) {\n this.clearQBTemplate([target.id]);\n }\n if (removeString.length) {\n this.clearQBTemplate(removeString);\n }\n rule.rules.splice(index, 1);\n delete this.levelColl[args.groupID];\n this.refreshLevelColl();\n this.disableRuleCondition(elem, rule);\n if (this.enableSeparateConnector && prevElem && ((!this.headerTemplate && prevElem.classList.contains('e-btn-group')) ||\n (this.headerTemplate && prevElem.classList.contains('e-custom-group-btn')))) {\n detach(prevElem);\n }\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('change', args);\n }\n this.filterRules(beforeRules, this.getValidRules(this.rule), 'deleteGroup');\n }\n };\n QueryBuilder.prototype.isPlatformTemplate = function (column) {\n var isTemp = false;\n isTemp = column.template && (typeof column.template === 'string' || column.template.create === undefined);\n return isTemp;\n };\n QueryBuilder.prototype.deleteRule = function (target) {\n var _this = this;\n var groupElem = closest(target, '.e-group-container');\n var groupID = groupElem.id.replace(this.element.id + '_', '');\n var ruleID = closest(target, '.e-rule-container').id.replace(this.element.id + '_', '');\n var args = { groupID: groupID, ruleID: ruleID, cancel: false, type: 'deleteRule' };\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('beforeChange', args, function (observedChangeArgs) {\n _this.deleteRuleSuccessCallBack(observedChangeArgs, target);\n });\n }\n else {\n this.deleteRuleSuccessCallBack(args, target);\n }\n };\n QueryBuilder.prototype.deleteRuleSuccessCallBack = function (args, target) {\n if (!args.cancel) {\n var groupElem = closest(target, '.e-group-container');\n var rule = this.getParentGroup(groupElem);\n var ruleElem = closest(target, '.e-rule-container');\n var beforeRules = this.getValidRules(this.rule);\n var prevElem = ruleElem.previousElementSibling;\n var index = 0;\n var clnruleElem = ruleElem;\n var nextElem = ruleElem.nextElementSibling;\n var valElem = ruleElem.querySelectorAll('.e-tooltip');\n var i = void 0;\n var len = valElem.length;\n for (i = 0; i < len; i++) {\n getComponent(valElem[i], 'tooltip').destroy();\n }\n while (ruleElem.previousElementSibling !== null) {\n ruleElem = ruleElem.previousElementSibling;\n if (!this.enableSeparateConnector || (this.enableSeparateConnector &&\n ((!this.headerTemplate && !ruleElem.classList.contains('e-btn-group')) ||\n this.headerTemplate && (ruleElem.classList.contains('e-rule-container') ||\n ruleElem.classList.contains('e-group-container'))))) {\n index++;\n }\n }\n var column = this.getColumn(rule.rules[index].field);\n if (column && column.template && clnruleElem.querySelector('.e-template')) {\n this.templateDestroy(column, clnruleElem.querySelector('.e-template').id);\n }\n if (!prevElem || prevElem.className.indexOf('e-rule-container') < 0) {\n if (nextElem) {\n removeClass([nextElem], 'e-joined-rule');\n }\n }\n if (!nextElem || nextElem.className.indexOf('e-rule-container') < 0) {\n if (prevElem) {\n removeClass([prevElem], 'e-prev-joined-rule');\n }\n }\n var isTemplateRendered = clnruleElem.querySelector('.e-template-value');\n // eslint-disable\n try {\n if (this.enableSeparateConnector && (clnruleElem.previousElementSibling || clnruleElem.nextElementSibling)) {\n var previousElem = clnruleElem.previousElementSibling;\n var nextElem_1 = clnruleElem.nextElementSibling;\n if (isNullOrUndefined(nextElem_1) && ((!this.headerTemplate && previousElem.classList.contains('e-btn-group'))\n || (this.headerTemplate && previousElem.classList.contains('e-custom-group-btn')))) {\n if (previousElem && previousElem.previousElementSibling && previousElem.previousElementSibling.classList.contains('e-rule-container')) {\n var rule_1 = this.getRule(previousElem.previousElementSibling);\n rule_1.condition = null;\n }\n detach(previousElem);\n }\n else if ((!this.headerTemplate && nextElem_1.classList.contains('e-btn-group'))\n || (this.headerTemplate && nextElem_1.classList.contains('e-custom-group-btn'))) {\n detach(nextElem_1);\n }\n }\n detach(clnruleElem);\n }\n catch (err) {\n return;\n }\n if (column && column.ruleTemplate) {\n this.clearQBTemplate([clnruleElem.id]);\n }\n if (column && this.isPlatformTemplate(column) && isTemplateRendered) {\n this.clearQBTemplate([clnruleElem.id]);\n }\n rule.rules.splice(index, 1);\n if (!(rule.rules[0] && rule.rules[0].rules)) {\n this.disableRuleCondition(groupElem, rule, this.enableSeparateConnector ? true : false);\n }\n var tooltipElem = this.element.querySelectorAll('.e-tooltip');\n for (var i_3 = 0; i_3 < tooltipElem.length; i_3++) {\n getComponent(tooltipElem[i_3], 'tooltip').refresh(tooltipElem[i_3]);\n }\n if (!this.isImportRules && !this.prvtEvtTgrDaD) {\n this.trigger('change', args);\n }\n this.filterRules(beforeRules, this.getValidRules(this.rule), 'deleteRule');\n }\n };\n QueryBuilder.prototype.setGroupRules = function (rule, isRoot) {\n if (this.headerTemplate && isRoot) {\n this.isRoot = true;\n }\n this.reset();\n this.groupIdCounter = 1;\n this.ruleIdCounter = 0;\n this.isImportRules = true;\n this.setProperties({ rule: rule }, true);\n rule = this.getRuleCollection(this.rule, false);\n this.importRules(this.rule, this.element.querySelector('.e-group-container'), true, this.rule.not, isRoot);\n if (rule.isLocked) {\n var lockGrpTarget = this.element.querySelector('.e-group-container').querySelector('.e-lock-grp-btn');\n this.groupLock(lockGrpTarget);\n }\n this.isImportRules = false;\n };\n QueryBuilder.prototype.keyBoardHandler = function (e) {\n if (e.currentTarget === this.element && this.readonly && (e.keyCode === 38 || e.keyCode === 40 || e.keyCode === 13)) {\n e.preventDefault();\n }\n else if (e.code === 'Escape' && this.allowDragAndDrop) {\n this.isDragEventPrevent = true;\n document.body.classList.remove('e-prevent-select');\n var borderLineElem = this.element.querySelectorAll('.e-drag-rule-bottom-line');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-drag-rule-bottom-line');\n });\n borderLineElem = this.element.querySelectorAll('.e-drag-rule-top-line');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-drag-rule-top-line');\n });\n borderLineElem = this.element.querySelectorAll('.e-qb-dragging-rule');\n borderLineElem.forEach(function (ele) {\n ele.classList.remove('e-qb-dragging-rule');\n });\n var dragElemnet = this.element.querySelector('.e-cloneproperties');\n if (dragElemnet) {\n remove(dragElemnet);\n }\n if (this.enableSeparateConnector) {\n this.refresh();\n }\n }\n };\n QueryBuilder.prototype.windowResizeHandler = function () {\n if (Browser.isDevice || window.innerWidth < 768) {\n this.displayMode = 'Vertical';\n }\n else {\n this.displayMode = 'Horizontal';\n }\n };\n QueryBuilder.prototype.clearQBTemplate = function (ruleElemColl) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact || this.isAngular) {\n this.clearTemplate(ruleElemColl);\n }\n };\n QueryBuilder.prototype.disableRuleCondition = function (groupElem, rules, isNewRuleAdded, isNewGroup) {\n if (!this.headerTemplate) {\n if (this.readonly) {\n return;\n }\n var count = groupElem.querySelector('.e-rule-list').childElementCount;\n var andElem = groupElem.querySelector('.e-btngroup-and');\n var orElem = groupElem.querySelector('.e-btngroup-or');\n if (count > 1) {\n andElem.disabled = false;\n orElem.disabled = false;\n if (orElem.nextElementSibling.classList.contains('e-btn-disable') ||\n andElem.nextElementSibling.classList.contains('e-btn-disable')) {\n orElem.nextElementSibling.classList.remove('e-btn-disable');\n andElem.nextElementSibling.classList.remove('e-btn-disable');\n }\n if (this.enableSeparateConnector && !isNewRuleAdded) {\n var index = 0;\n var element = void 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var andGroup = groupElem.parentElement.querySelectorAll('.e-btngroup-and');\n var orGroup = groupElem.parentElement.querySelectorAll('.e-btngroup-or');\n andElem = andGroup[andGroup.length - (1 + index)];\n orElem = orGroup[orGroup.length - (1 + index)];\n element = andGroup[andGroup.length - (1 + index)];\n if (element && element.parentElement && element.parentElement.style.display === 'none') {\n index++;\n }\n else {\n break;\n }\n }\n var elem = groupElem.previousElementSibling;\n while (elem && !elem.classList.contains('e-rule-container')) {\n if (elem.classList.contains('e-group-container')) {\n elem = elem.querySelectorAll('.e-rule-container')[elem.querySelectorAll('.e-rule-container').length - 1];\n break;\n }\n elem = elem.previousElementSibling;\n }\n if (isNewGroup && groupElem.classList.contains('e-group-container')) {\n elem = groupElem;\n var prevRule = this.getGroup(elem);\n if (prevRule.condition === 'or') {\n orElem.checked = true;\n }\n else {\n andElem.checked = true;\n }\n }\n else if (elem && elem.classList.contains('e-rule-container')) {\n var ruleID = elem.id.replace(this.element.id + '_', '');\n var prevRule = this.getRule(ruleID);\n if (prevRule.condition === 'or') {\n orElem.checked = true;\n }\n else {\n andElem.checked = true;\n }\n }\n }\n else if (!isNewRuleAdded) {\n if (rules && rules.condition === 'or') {\n orElem.checked = true;\n }\n else {\n andElem.checked = true;\n }\n }\n }\n else {\n if (this.enableSeparateConnector && !isNewRuleAdded) {\n var index = 0;\n var element = void 0;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n var andGroup = groupElem.parentElement.querySelectorAll('.e-btngroup-and');\n var orGroup = groupElem.parentElement.querySelectorAll('.e-btngroup-or');\n andElem = andGroup[andGroup.length - (1 + index)];\n orElem = orGroup[orGroup.length - (1 + index)];\n if (this.isImportRules) {\n andElem = groupElem.parentElement.querySelector('.e-btn-group.e-multi-connector .e-btngroup-and');\n orElem = groupElem.parentElement.querySelector('.e-btn-group.e-multi-connector .e-btngroup-or');\n }\n element = andGroup[andGroup.length - (1 + index)];\n if (element && element.parentElement && element.parentElement.style.display === 'none') {\n index++;\n }\n else {\n break;\n }\n }\n var elem = void 0;\n var tempElem = groupElem.previousElementSibling;\n while (tempElem) {\n if (tempElem.classList.contains('e-group-container')) {\n tempElem = tempElem.querySelectorAll('.e-rule-container')[tempElem.querySelectorAll('.e-rule-container').length - 1];\n }\n if (tempElem.classList.contains('e-rule-container')) {\n elem = tempElem;\n break;\n }\n tempElem = tempElem.previousElementSibling;\n }\n if (isNullOrUndefined(elem) && groupElem.querySelectorAll('.e-rule-container')[groupElem.querySelectorAll('.e-rule-container').length - 1]) {\n elem = groupElem.querySelectorAll('.e-rule-container')[groupElem.querySelectorAll('.e-rule-container').length - 1];\n }\n if (isNewGroup && groupElem.classList.contains('e-group-container')) {\n elem = groupElem;\n var prevRule = this.getGroup(elem);\n if (prevRule.condition === 'or') {\n orElem.checked = true;\n }\n else {\n andElem.checked = true;\n }\n }\n else if (elem) {\n var ruleID = elem.id.replace(this.element.id + '_', '');\n var prevRule = this.getRule(ruleID);\n if (prevRule.condition === 'or' && orElem) {\n orElem.checked = true;\n }\n else if (andElem) {\n andElem.checked = true;\n }\n }\n }\n else if (!isNewRuleAdded && !isNullOrUndefined(andElem)) {\n andElem.checked = false;\n andElem.disabled = true;\n orElem.checked = false;\n orElem.disabled = true;\n if (rules) {\n orElem.nextElementSibling.classList.add('e-btn-disable');\n andElem.nextElementSibling.classList.add('e-btn-disable');\n }\n }\n }\n }\n };\n /**\n * Get the valid rule or rules collection.\n *\n * @param {RuleModel} currentRule - 'currentRule' to be passed to get the valid rules.\n * @returns {RuleModel} - Valid rule or rules collection\n */\n QueryBuilder.prototype.getValidRules = function (currentRule) {\n this.isValueEmpty = true;\n if (!currentRule) {\n currentRule = this.getRules();\n }\n var ruleCondtion = currentRule.condition;\n var notCondition = currentRule.not;\n var ruleColl = extend([], currentRule.rules, [], true);\n var rule = !isNullOrUndefined(currentRule.isLocked) ?\n this.getRuleCollection({ condition: ruleCondtion, rules: ruleColl, not: notCondition, isLocked: currentRule.isLocked }, true) :\n this.getRuleCollection({ condition: ruleCondtion, rules: ruleColl, not: notCondition }, true);\n this.isValueEmpty = false;\n return rule;\n };\n QueryBuilder.prototype.getRuleCollection = function (rule, isValidRule) {\n if (isNullOrUndefined(rule)) {\n return null;\n }\n var orgRule;\n if (rule.rules && rule.rules.length && (Object.keys(rule.rules[0]).length > 6 || isValidRule)) {\n var jLen = rule.rules.length;\n for (var j = 0; j < jLen; j++) {\n orgRule = rule.rules[j];\n orgRule = this.getRuleCollection(orgRule, isValidRule);\n rule.rules[j] = orgRule;\n if (Object.keys(orgRule).length < 1 && isValidRule) {\n rule.rules.splice(j, 1);\n j--;\n jLen--;\n }\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var customObj = rule.custom;\n if ((rule.field && rule.field !== '') && (isNullOrUndefined(customObj) || (customObj && (customObj.type !== 'question' &&\n customObj.type !== 'answer')))) {\n if (rule.operator) {\n if (rule.operator.toString().indexOf('null') > -1 || rule.operator.toString().indexOf('empty') > -1) {\n rule.value = null;\n }\n }\n if ((this.isRefreshed && this.enablePersistence) || (rule.field !== '' && rule.operator !== '' &&\n (this.isValueEmpty ? rule.value !== '' && rule.value !== undefined : rule.value !== undefined)) ||\n (customObj && customObj.isQuestion)) {\n var condition = rule.condition;\n var lockedRule = rule.isLocked;\n rule = { 'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value };\n if (!isNullOrUndefined(lockedRule)) {\n rule.isLocked = lockedRule;\n }\n if (condition) {\n rule.condition = condition;\n }\n if (customObj) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rule.custom = customObj;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((rule.operator === 'in' || rule.operator === 'notin') && rule.value && rule.value.length === 0) {\n rule = {};\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((rule.operator === 'between' || rule.operator === 'notbetween') && Array.isArray(rule.value) && (rule.value.length < 2 || rule.value.some(function (val) { return val === '' || val === null; }))) {\n rule = {};\n }\n }\n else {\n rule = {};\n }\n }\n else {\n if (customObj && (customObj.type === 'question' || customObj.type === 'answer')) {\n var notValue = rule.not;\n rule = { 'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value,\n 'condition': rule.condition, 'rules': rule.rules\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rule.custom = customObj;\n if (this.enableNotCondition) {\n rule.not = notValue;\n }\n }\n else if ((isNullOrUndefined(rule.condition)) && isNullOrUndefined(rule.rules)) {\n rule = {};\n }\n else {\n var isLocked = rule.isLocked;\n if (this.enableNotCondition) {\n rule = { 'condition': rule.condition, 'rules': rule.rules, 'not': rule.not };\n }\n else {\n rule = { 'condition': rule.condition, 'rules': rule.rules };\n }\n if (!isNullOrUndefined(isLocked)) {\n rule.isLocked = isLocked;\n }\n if (customObj) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rule.custom = customObj;\n }\n if (rule.rules && rule.rules.length === 0) {\n rule = {};\n }\n }\n }\n return rule;\n };\n /**\n * Set the rule or rules collection.\n *\n * @param {RuleModel} rule - 'rule' to be passed to set rules.\n * @returns {void}.\n */\n QueryBuilder.prototype.setRules = function (rule) {\n var mRules = extend({}, rule, {}, true);\n if (this.headerTemplate) {\n this.setGroupRules(mRules, true);\n }\n else {\n this.setGroupRules(mRules);\n }\n };\n /**\n * Gets the rule or rule collection.\n *\n * @returns {object} - Rule or rule collection\n */\n QueryBuilder.prototype.getRules = function () {\n var rule;\n if (this.enableNotCondition) {\n rule = { condition: this.rule.condition, rules: this.rule.rules, not: this.rule.not };\n }\n else {\n rule = { condition: this.rule.condition, rules: this.rule.rules };\n }\n if (!isNullOrUndefined(this.rule.isLocked)) {\n rule.isLocked = this.rule.isLocked;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.rule.custom) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rule.custom = this.rule.custom;\n }\n return rule;\n };\n /**\n * Gets the rule.\n *\n * @param {string | HTMLElement} elem - 'elem' to be passed to get rule.\n * @returns {object} - Rule\n */\n QueryBuilder.prototype.getRule = function (elem) {\n var ruleElem;\n var ruleId;\n var index = 0;\n if (elem instanceof HTMLElement) {\n ruleElem = closest(elem, '.e-rule-container');\n }\n else {\n ruleId = this.element.id + '_' + elem;\n ruleElem = document.getElementById(ruleId);\n }\n if (isNullOrUndefined(ruleElem)) {\n return null;\n }\n var groupElem = closest(ruleElem, '.e-group-container');\n var rule = this.getParentGroup(groupElem);\n while (ruleElem.previousElementSibling !== null) {\n ruleElem = ruleElem.previousElementSibling;\n if (!this.enableSeparateConnector || (this.enableSeparateConnector &&\n ((!this.headerTemplate && !ruleElem.classList.contains('e-btn-group')) ||\n this.headerTemplate && (ruleElem.classList.contains('e-rule-container') ||\n ruleElem.classList.contains('e-group-container'))))) {\n index++;\n }\n }\n return rule.rules[index];\n };\n /**\n * Gets the group.\n *\n * @param {string | Element} target - 'target' to be passed to get group.\n * @returns {object} -Group\n */\n QueryBuilder.prototype.getGroup = function (target) {\n if (target instanceof Element && target.className.indexOf('e-group-container') < 1) {\n target = closest(target, '.e-group-container');\n }\n var groupId = (target instanceof Element) ? target.id : this.element.id + '_' + target;\n var rule = this.getParentGroup(groupId);\n return rule;\n };\n /**\n * Deletes the group or groups based on the group ID.\n *\n * @param {string[]} groupIdColl - 'groupIdColl' to be passed to delete groups.\n * @returns {void}\n */\n QueryBuilder.prototype.deleteGroups = function (groupIdColl) {\n var i;\n var len = groupIdColl.length;\n var groupID;\n for (i = 0; i < len; i++) {\n if (groupIdColl[i] === 'group0') {\n continue;\n }\n groupID = this.element.id + '_' + groupIdColl[i];\n this.deleteGroup(document.getElementById(groupID));\n }\n };\n /**\n * Return the Query from current rules collection.\n *\n * @returns {Promise} - Query from current rules collection\n * @blazorType object\n */\n QueryBuilder.prototype.getFilteredRecords = function () {\n var predicate = this.getPredicate(this.getValidRules(this.rule));\n var dataManagerQuery = isNullOrUndefined(predicate) ? new Query() : new Query().where(predicate);\n return this.dataManager.executeQuery(dataManagerQuery);\n };\n /**\n * Deletes the rule or rules based on the rule ID.\n *\n * @param {string[]} ruleIdColl - 'ruleIdColl' to be passed to delete rules.\n * @returns {void}.\n */\n QueryBuilder.prototype.deleteRules = function (ruleIdColl) {\n var i;\n var len = ruleIdColl.length;\n var ruleID;\n for (i = 0; i < len; i++) {\n ruleID = this.element.id + '_' + ruleIdColl[i];\n this.deleteRule(document.getElementById(ruleID));\n }\n };\n /**\n * Gets the query for Data Manager.\n *\n * @param {RuleModel} rule - 'rule' to be passed to get query.\n * @returns {string} - Query for Data Manager\n */\n QueryBuilder.prototype.getDataManagerQuery = function (rule) {\n var predicate = this.getPredicate(rule);\n var query;\n var fields = [];\n for (var i = 0, len = Object.keys(this.columns); i < len.length; i++) {\n fields.push(this.columns[i].field);\n }\n if (rule.rules.length) {\n query = new Query().select(fields).where(predicate);\n }\n else {\n query = new Query().select(fields);\n }\n return query;\n };\n /**\n * Get the predicate from collection of rules.\n *\n * @param {RuleModel} rule - 'rule' to be passed to get predicate.\n * @returns {Predicate} - Predicate from collection of rules\n */\n QueryBuilder.prototype.getPredicate = function (rule) {\n var ruleColl = rule.rules;\n var pred;\n var pred2;\n var ruleValue;\n var ignoreCase = false;\n var column;\n if (!ruleColl) {\n return pred;\n }\n for (var i = 0, len = ruleColl.length; i < len; i++) {\n var operator = ruleColl[i].operator;\n if (operator === 'notstartswith') {\n operator = 'doesnotstartwith';\n }\n else if (operator === 'notendswith') {\n operator = 'doesnotendwith';\n }\n else if (operator === 'notcontains') {\n operator = 'doesnotcontain';\n }\n var keys = Object.keys(ruleColl[i]);\n ignoreCase = false;\n if (keys.indexOf('rules') > -1 && ruleColl[i].rules) {\n pred2 = this.getPredicate(ruleColl[i]);\n if (pred2) {\n if (pred) {\n if (rule.condition === 'and') {\n pred = pred.and(pred2);\n }\n else {\n pred = pred.or(pred2);\n }\n }\n else {\n pred = pred2;\n }\n }\n }\n else if (!isNullOrUndefined(operator) && !isNullOrUndefined(operator.length)) {\n var oper = ruleColl[i].operator.toLowerCase();\n var isDateFilter = false;\n var dateOperColl = ['equal', 'notequal', 'greaterthan', 'greaterthanorequal', 'lessthan', 'lessthanorequal'];\n if (ruleColl[i].type === 'string') {\n ignoreCase = this.matchCase ? false : true;\n }\n if (ruleColl[i].type === 'date' && dateOperColl.indexOf(oper) > -1) {\n ignoreCase = true;\n }\n column = this.getColumn(ruleColl[i].field);\n if (oper.indexOf('null') > -1 || oper.indexOf('empty') > -1) {\n ruleColl[i].value = null;\n }\n else if (ruleColl[i].type === 'date' && !(ruleColl[i].value instanceof Array)) {\n var format = this.getFormat(column.format);\n if (!isNullOrUndefined(ruleColl[i].value)) {\n ruleValue = this.getDate(ruleColl[i].value, format);\n if (dateOperColl.indexOf(oper) > -1 && !this.isTime(ruleColl[i].value)) {\n isDateFilter = true;\n }\n }\n else {\n ruleValue = null;\n }\n }\n else {\n ruleValue = ruleColl[i].value;\n }\n if (i === 0) {\n if (isDateFilter || (oper.indexOf('in') > -1 || oper.indexOf('between') > -1 || oper.indexOf('null') > -1 ||\n oper.indexOf('empty') > -1) && (oper.indexOf('contain') < 0)) {\n pred = isDateFilter ? this.datePredicate(ruleColl[i], ruleValue) :\n this.arrayPredicate(ruleColl[i]);\n }\n else {\n var value = ruleValue;\n if (value !== '') {\n pred = new Predicate(ruleColl[i].field, operator, ruleValue, ignoreCase);\n }\n }\n }\n else {\n if (isDateFilter || (oper.indexOf('in') > -1 || oper.indexOf('between') > -1 ||\n oper.indexOf('null') > -1 || oper.indexOf('empty') > -1) && oper.indexOf('contain') < 0) {\n pred = isDateFilter ? this.datePredicate(ruleColl[i], ruleValue, pred, rule.condition) :\n this.arrayPredicate(ruleColl[i], pred, rule.condition);\n }\n else {\n if (rule.condition === 'and') {\n var value = ruleValue;\n if (pred && value !== '') {\n pred\n = pred.and(ruleColl[i].field, operator, ruleValue, ignoreCase);\n }\n else if (value !== '') {\n pred = new Predicate(ruleColl[i].field, operator, ruleValue, ignoreCase);\n }\n }\n else {\n var value = ruleValue;\n if (pred && value !== '') {\n pred = pred.or(ruleColl[i].field, operator, ruleValue, ignoreCase);\n }\n else if (value !== '') {\n pred = new Predicate(ruleColl[i].field, operator, ruleValue, ignoreCase);\n }\n }\n }\n }\n }\n }\n if (this.dataSource instanceof DataManager) {\n if (!isNullOrUndefined(pred) && (pred.operator === 'isnull' || pred.operator === 'isnotnull')) {\n pred.operator = pred.operator === 'isnull' ? 'equal' : 'notequal';\n }\n }\n return pred;\n };\n QueryBuilder.prototype.getLocale = function () {\n var gregorianFormat = '.dates.calendars.gregorian.days.format.short';\n var localeString = this.locale;\n var mainVal = 'main.';\n var cultureObj = getValue(mainVal + '' + this.locale + gregorianFormat, cldrData);\n if (!cultureObj) {\n localeString = 'en';\n }\n return localeString;\n };\n QueryBuilder.prototype.getColumn = function (field, col) {\n var columns = this.columns;\n var column;\n columns = col ? col : columns;\n for (var i = 0, iLen = columns.length; i < iLen; i++) {\n if (columns[i].field === field) {\n column = columns[i];\n break;\n }\n else if (columns[i].columns) {\n column = this.getColumn(field, columns[i].columns);\n if (column) {\n break;\n }\n }\n else if (field && field.indexOf(this.separator) > -1) {\n if (this.separator !== '' && columns[i].field === field.split(this.separator)[0]) {\n column = columns[i];\n break;\n }\n }\n }\n return column;\n };\n /* eslint-disable */\n /**\n * Return the operator bound to the column.\n *\n * @returns {[key: string]: Object}[] - Operator bound to the column\n */\n /* eslint-enable */\n QueryBuilder.prototype.getOperators = function (field) {\n var column = this.getColumn(field);\n return column.operators;\n };\n QueryBuilder.prototype.setTime = function (date, isStart) {\n if (isStart) {\n date.setHours(0, 0, 0);\n }\n else {\n date.setHours(23, 59, 59);\n }\n return date;\n };\n QueryBuilder.prototype.datePredicate = function (ruleColl, value, predicate, condition) {\n var pred;\n var startDate = this.setTime(new Date(value.getTime()), true);\n var endDate = this.setTime(value);\n switch (ruleColl.operator) {\n case 'equal':\n pred = new Predicate(ruleColl.field, 'greaterthanorequal', startDate);\n pred = pred.and(ruleColl.field, 'lessthanorequal', endDate);\n break;\n case 'notequal':\n pred = new Predicate(ruleColl.field, 'lessthan', startDate);\n pred = pred.or(ruleColl.field, 'greaterthan', endDate);\n break;\n case 'greaterthan':\n pred = new Predicate(ruleColl.field, 'greaterthan', endDate);\n break;\n case 'greaterthanorequal':\n pred = new Predicate(ruleColl.field, 'greaterthanorequal', startDate);\n break;\n case 'lessthan':\n pred = new Predicate(ruleColl.field, 'lessthan', startDate);\n break;\n case 'lessthanorequal':\n pred = new Predicate(ruleColl.field, 'lessthanorequal', endDate);\n break;\n }\n if (pred) {\n if (predicate) {\n if (condition === 'and') {\n predicate = predicate.and(pred);\n }\n else if (condition === 'or') {\n predicate = predicate.or(pred);\n }\n }\n else {\n predicate = pred;\n }\n }\n return predicate;\n };\n QueryBuilder.prototype.arrayPredicate = function (ruleColl, predicate, condition) {\n var value = ruleColl.value;\n var operator = ruleColl.operator.toString();\n var nullValue = ruleColl.value;\n var pred;\n var column = this.getColumn(ruleColl.field);\n var format = this.getFormat(column.format);\n if (operator.indexOf('null') > -1 || operator.indexOf('empty') > -1) {\n switch (operator) {\n case 'isnull':\n pred = new Predicate(ruleColl.field, 'isnull', nullValue);\n break;\n case 'isnotnull':\n pred = new Predicate(ruleColl.field, 'isnotnull', nullValue);\n break;\n case 'isempty':\n pred = new Predicate(ruleColl.field, 'equal', '');\n break;\n case 'isnotempty':\n pred = new Predicate(ruleColl.field, 'notequal', '');\n break;\n }\n }\n if (!(operator.indexOf('null') > -1 || operator.indexOf('empty') > -1)) {\n for (var j = 0, jLen = value.length; j < jLen; j++) {\n if (value[j] !== '' || ((operator === 'in' || operator === 'notin') && column.type === 'string')) {\n if (j === 0) {\n var gte = 'greaterthanorequal';\n switch (operator) {\n case 'between':\n if (column.type !== 'date') {\n pred = new Predicate(ruleColl.field, gte, value[j]);\n }\n else {\n pred = new Predicate(ruleColl.field, gte, value[j] ?\n (this.isTime(value[j]) ? this.getDate(value[j], format) :\n this.setTime(this.getDate(value[j], format), true)) : null);\n }\n break;\n case 'notbetween':\n if (column.type === 'date') {\n pred = new Predicate(ruleColl.field, 'lessthan', value[j] ?\n (this.isTime(value[j]) ? this.getDate(value[j], format) :\n this.setTime(this.getDate(value[j], format), true)) : null);\n }\n else {\n pred = new Predicate(ruleColl.field, 'lessthan', value[j]);\n }\n break;\n case 'in':\n pred = new Predicate(ruleColl.field, 'equal', value[j]);\n break;\n case 'notin':\n pred = new Predicate(ruleColl.field, 'notequal', value[j]);\n break;\n }\n }\n else {\n var gt = 'greaterthan';\n switch (ruleColl.operator) {\n case 'between':\n if (column.type === 'date') {\n pred = pred.and(ruleColl.field, 'lessthanorequal', value[j] ?\n (this.isTime(value[j]) ? this.getDate(value[j], format) :\n this.setTime(this.getDate(value[j], format))) : value[j]);\n }\n else {\n pred = pred.and(ruleColl.field, 'lessthanorequal', value[j]);\n }\n break;\n case 'notbetween':\n if (column.type === 'date') {\n pred = pred.or(ruleColl.field, gt, value[j] ?\n (this.isTime(value[j]) ? this.getDate(value[j], format) :\n this.setTime(this.getDate(value[j], format))) : value[j]);\n }\n else {\n pred = pred.or(ruleColl.field, 'greaterthan', value[j]);\n }\n break;\n case 'in':\n pred = pred.or(ruleColl.field, 'equal', value[j]);\n break;\n case 'notin':\n pred = pred.and(ruleColl.field, 'notequal', value[j]);\n break;\n }\n }\n }\n }\n }\n if (pred) {\n if (predicate) {\n if (condition === 'and') {\n predicate = predicate.and(pred);\n }\n else if (condition === 'or') {\n predicate = predicate.or(pred);\n }\n }\n else {\n predicate = pred;\n }\n }\n return predicate;\n };\n QueryBuilder.prototype.getDate = function (value, format) {\n var currDate = this.intl.parseDate(value, format);\n if (value.indexOf(':') > -1 && (value.indexOf('/') < 0 && value.indexOf(',') < 0\n && value.indexOf('-') < 0)) {\n currDate = new Date();\n currDate.setHours(parseInt(value.split(':')[0], 10));\n currDate.setMinutes(parseInt(value.split(':')[1], 10));\n if (value.split(':')[2]) {\n currDate.setSeconds(parseInt(value.split(':')[2], 10));\n }\n }\n return currDate;\n };\n QueryBuilder.prototype.isTime = function (value) {\n if (value && value.indexOf(':') > -1) {\n return true;\n }\n return false;\n };\n QueryBuilder.prototype.importRules = function (rule, parentElem, isReset, not, isRoot) {\n if (!isReset) {\n parentElem = this.renderGroup(rule, rule.condition, parentElem, not);\n }\n else {\n if (rule.rules && rule.rules.length > 1 && !this.headerTemplate) {\n // enable/disable conditions when rule group is added\n var orElem = parentElem.querySelector('.e-btngroup-or');\n var andElem = parentElem.querySelector('.e-btngroup-and');\n if (this.enableSeparateConnector && parentElem.previousElementSibling) {\n orElem = parentElem.previousElementSibling.querySelector('.e-btngroup-or');\n andElem = parentElem.previousElementSibling.querySelector('.e-btngroup-and');\n }\n orElem.disabled = false;\n andElem.disabled = false;\n if (this.enableSeparateConnector) {\n var elem = parentElem.previousElementSibling;\n while (elem && !elem.classList.contains('e-rule-container')) {\n if (elem.classList.contains('e-group-container')) {\n elem = elem.querySelectorAll('.e-rule-container')[elem.querySelectorAll('.e-rule-container').length - 1];\n break;\n }\n elem = elem.previousElementSibling;\n }\n if (elem && elem.classList.contains('e-rule-container')) {\n var ruleID = elem.id.replace(this.element.id + '_', '');\n var prevRule = this.getRule(ruleID);\n if (prevRule.condition === 'or') {\n orElem.checked = true;\n }\n else {\n andElem.checked = true;\n }\n }\n }\n else {\n if (rule.condition === 'or') {\n orElem.checked = true;\n }\n else {\n andElem.checked = true;\n }\n }\n }\n else {\n // enable/disable conditions when rule condition is added\n this.disableRuleCondition(parentElem);\n }\n if (this.headerTemplate && isRoot) {\n parentElem = this.renderGroup(rule, rule.condition, this.element, rule.not, isRoot);\n }\n if (this.enableNotCondition && !this.headerTemplate) {\n var tglBtnElem = parentElem.querySelector('.e-qb-toggle');\n if (rule.not) {\n addClass([tglBtnElem], 'e-active-toggle');\n if (this.enableSeparateConnector) {\n getComponent(tglBtnElem.querySelector('.e-checkbox'), 'checkbox').checked = rule.not;\n }\n }\n else {\n removeClass([tglBtnElem], 'e-active-toggle');\n }\n }\n }\n if (rule.rules && rule.rules.length === 0 && this.headerTemplate) {\n rule.rules[0] = { 'label': '', 'field': '', 'operator': '', 'type': '', 'value': '' };\n }\n var ruleColl = rule.rules;\n if (!isNullOrUndefined(ruleColl)) {\n for (var i = 0, len = ruleColl.length; i < len; i++) {\n var keys = Object.keys(ruleColl[i]);\n if (!isNullOrUndefined(ruleColl[i].rules) && keys.indexOf('rules') > -1 && (ruleColl[i].rules.length !== 0)) {\n if (this.element.querySelectorAll('.e-group-container').length > this.maxGroupCount) {\n return null;\n }\n parentElem = this.renderGroup(ruleColl[i], ruleColl[i].condition, parentElem, ruleColl[i].not);\n parentElem = this.importRules(ruleColl[i], parentElem, true);\n }\n else if (!isNullOrUndefined(ruleColl[i].rules)) {\n parentElem = this.renderGroup(ruleColl[i], ruleColl[i].condition, parentElem, ruleColl[i].not);\n var andElem = parentElem.querySelector('.e-btngroup-and');\n var orElem = parentElem.querySelector('.e-btngroup-or');\n andElem.disabled = true;\n orElem.disabled = true;\n }\n else {\n this.renderRule(ruleColl[i], parentElem);\n }\n if (!isNullOrUndefined(ruleColl[i].rules) && ruleColl[i].isLocked) {\n var lockGrpTarget = parentElem.querySelector('.e-rule-list').children[i].querySelector('.e-lock-grp-btn');\n this.groupLock(lockGrpTarget);\n }\n }\n }\n if (parentElem) {\n parentElem = closest(parentElem, '.e-rule-list');\n }\n if (parentElem) {\n parentElem = closest(parentElem, '.e-group-container');\n }\n return parentElem;\n };\n QueryBuilder.prototype.renderGroup = function (rule, condition, parentElem, not, isRoot) {\n this.addGroupElement(true, parentElem, condition, false, not, isRoot, rule); //Child group\n var element = parentElem.querySelectorAll('.e-group-container');\n var cloneElem = parentElem.querySelector('.e-rule-list').children;\n if (this.showButtons.cloneGroup && this.cloneGrpBtnClick && this.isMiddleGroup) {\n this.isMiddleGroup = false;\n this.cloneGrpBtnClick = false;\n var index = 0;\n var tempGroupIndex = this.groupIndex + 1;\n if (this.enableSeparateConnector) {\n for (var i = 0; i < tempGroupIndex; i++) {\n if (cloneElem[i].classList.contains('e-rule-container')) {\n tempGroupIndex++;\n index++;\n }\n }\n }\n return cloneElem[this.groupIndex + index + 1]; // group added in the middle\n }\n else if (this.showButtons.cloneGroup && this.cloneGrpBtnClick && this.isLastGroup) {\n this.isLastGroup = false;\n this.cloneGrpBtnClick = false;\n return cloneElem[cloneElem.length - 1]; // group added in the end\n }\n else {\n return element[element.length - 1];\n }\n };\n QueryBuilder.prototype.renderRule = function (rule, parentElem) {\n if (parentElem.className.indexOf('e-group-container') > -1) {\n this.addRuleElement(parentElem, rule); //Create rule\n }\n else {\n this.addRuleElement(parentElem.querySelector('.e-group-container'), rule); //Create group\n }\n };\n QueryBuilder.prototype.enableReadonly = function () {\n var target = this.element;\n var elem = target.querySelectorAll('.e-dropdownlist, .e-dropdowntree, .e-numerictextbox, .e-textbox, .e-datepicker, .e-multiselect .e-lib, .e-radio');\n for (var i = 0; i < elem.length; i++) {\n if (elem[i].classList.contains('e-dropdownlist')) {\n var dropDownObj = getInstance(elem[i], DropDownList);\n dropDownObj.readonly = this.isReadonly;\n }\n else if (elem[i].classList.contains('e-dropdowntree')) {\n var dropDownTreeObj = getComponent(elem[i], 'dropdowntree');\n dropDownTreeObj.readonly = this.isReadonly;\n }\n else if (elem[i].classList.contains('e-numerictextbox')) {\n var numericTextBoxObj = getInstance(elem[i], NumericTextBox);\n numericTextBoxObj.readonly = this.isReadonly;\n }\n else if (elem[i].classList.contains('e-textbox')) {\n var textBoxObj = getInstance(elem[i], TextBox);\n textBoxObj.readonly = this.isReadonly;\n }\n else if (elem[i].classList.contains('e-datepicker')) {\n var datePickerObj = getInstance(elem[i], DatePicker);\n datePickerObj.readonly = this.isReadonly;\n }\n else if (elem[i].classList.contains('e-multiselect')) {\n var multiSelectObj = getInstance(elem[i], MultiSelect);\n multiSelectObj.readonly = this.isReadonly;\n }\n else if (elem[i].classList.contains('e-radio')) {\n var radioButtonObj = getInstance(elem[i], RadioButton);\n if (!radioButtonObj.checked) {\n if (this.isReadonly) {\n elem[i].parentElement.style.display = 'none';\n }\n else {\n elem[i].parentElement.style.display = 'inherit';\n }\n }\n }\n }\n var deleteGroupElems = this.element.querySelectorAll('.e-deletegroup');\n var addRuleGroupElems = this.element.querySelectorAll('.e-addrulegroup');\n var removeRuleElems = this.element.querySelectorAll('.e-removerule');\n if (!this.isReadonly && this.ruleElem.classList.contains('e-readonly')) {\n this.ruleElem.classList.remove('e-readonly');\n }\n var elems = [deleteGroupElems, addRuleGroupElems, removeRuleElems];\n for (var i = 0; i < elems.length; i++) {\n elems[i].forEach(function (elem) {\n if (elem.classList.contains('e-readonly')) {\n elem.classList.remove('e-readonly');\n }\n else {\n elem.classList.add('e-readonly');\n }\n });\n }\n this.enableBtnGroup();\n };\n QueryBuilder.prototype.enableBtnGroup = function () {\n var _this = this;\n var elems = this.element.querySelectorAll('.e-btngroup-and-lbl, .e-btngroup-or-lbl, .e-qb-toggle');\n var not = false;\n elems.forEach(function (elem) {\n if (elem.classList.contains('e-qb-toggle') && !elem.classList.contains('e-active-toggle')\n && !elem.classList.contains('e-readonly')) {\n elem.classList.add('e-readonly');\n not = false;\n }\n else if (elem.classList.contains('e-qb-toggle') && elem.classList.contains('e-not-readonly')) {\n elem.classList.remove('e-not-readonly');\n }\n else if (elem.classList.contains('e-qb-toggle') && elem.classList.contains('e-readonly')) {\n elem.classList.remove('e-readonly');\n }\n else if (elem.classList.contains('e-active-toggle')) {\n elem.classList.add('e-not-readonly');\n not = true;\n }\n else if (elem.previousElementSibling.checked || elem.classList.contains('e-readonly')) {\n elem.classList.remove('e-readonly');\n if (not) {\n if (elem.textContent === 'AND') {\n elem.classList.add('e-readonly-and');\n }\n else {\n elem.classList.add('e-readonly-or');\n }\n }\n else {\n if (elem.textContent === 'AND' && _this.isReadonly) {\n elem.classList.remove('e-not');\n elem.classList.add('e-readonly-and');\n }\n else {\n if (_this.enableNotCondition) {\n elem.classList.add('e-not');\n }\n elem.classList.remove('e-readonly-and');\n }\n if (elem.textContent === 'OR' && _this.isReadonly) {\n elem.classList.add('e-readonly-or-not');\n }\n else {\n elem.classList.remove('e-readonly-or-not');\n }\n }\n }\n else if (elem.classList.contains('e-btn-disable')) {\n // do nothing\n }\n else {\n elem.classList.add('e-readonly');\n }\n });\n };\n QueryBuilder.prototype.isDateFunction = function (value) {\n var dateFunc = ['date', 'time', 'day', 'week', 'month', 'year', 'hour', 'minute', 'second', 'now', 'quarter', 'period', 'extract'];\n for (var i = 0, len = dateFunc.length; i < len; i++) {\n if (value.toLowerCase().indexOf(dateFunc[i]) > -1) {\n return true;\n }\n }\n return false;\n };\n QueryBuilder.prototype.getSqlString = function (rules, enableEscape, queryStr, sqlLocale) {\n var isRoot = false;\n if (!queryStr && queryStr !== '') {\n queryStr = '';\n isRoot = true;\n }\n else {\n queryStr += '(';\n }\n var condition = rules.condition;\n if (rules.not) {\n var rulesNotCondition = void 0;\n if (isRoot) {\n rulesNotCondition = sqlLocale ? this.l10n.getConstant('NOT').toUpperCase() + ' (' : 'NOT (';\n queryStr += rulesNotCondition;\n }\n else {\n rulesNotCondition = sqlLocale ? ' ' + this.l10n.getConstant('NOT').toUpperCase() + ' (' : ' NOT (';\n queryStr += rulesNotCondition;\n }\n }\n if (rules.rules) {\n for (var j = 0, jLen = rules.rules.length; j < jLen; j++) {\n if (rules.rules[j].rules) {\n queryStr = this.getSqlString(rules.rules[j], enableEscape, queryStr, sqlLocale);\n if (this.enableSeparateConnector) {\n condition = rules.rules[j].condition;\n }\n }\n else {\n var rule = rules.rules[j];\n var valueStr = '';\n var ruleOpertor = sqlLocale ? this.sqlOperators[rule.operator] : this.operators[rule.operator];\n if (rule.value instanceof Array) {\n if (rule.operator.toString().indexOf('between') > -1) {\n var ruleCondition = sqlLocale ? ' ' + this.l10n.getConstant('AND').toUpperCase() + ' ' : ' ' + 'AND' + ' ';\n if (rule.type === 'date' && !this.isDateFunction(rule.value[0])) {\n valueStr += '\"' + rule.value[0] + '\"' + ruleCondition + '\"' + rule.value[1] + '\"';\n }\n else {\n valueStr += rule.value[0] + ruleCondition + rule.value[1];\n }\n }\n else {\n if (typeof rule.value[0] === 'string' && rule.value !== null) {\n valueStr += '(\"' + rule.value[0] + '\"';\n for (var k = 1, kLen = rule.value.length; k < kLen; k++) {\n valueStr += ',\"' + rule.value[k] + '\"';\n }\n valueStr += ')';\n }\n else {\n valueStr += '(' + rule.value + ')';\n }\n }\n }\n else {\n if (rule.operator.toString().indexOf('startswith') > -1) {\n valueStr += rule.value ? '(\"' + rule.value + '%\")' : '(' + rule.value + ')';\n }\n else if (rule.operator.toString().indexOf('endswith') > -1) {\n valueStr += rule.value ? '(\"%' + rule.value + '\")' : '(' + rule.value + ')';\n }\n else if (rule.operator.toString().indexOf('contains') > -1) {\n valueStr += rule.value ? '(\"%' + rule.value + '%\")' : '(' + rule.value + ')';\n }\n else {\n if (rule.type === 'number' || typeof rule.value === 'boolean' ||\n (rule.value === null && (rule.operator.toString().indexOf('empty') < -1))) {\n valueStr += rule.value;\n }\n else if (rule.operator.toString().indexOf('empty') > -1) {\n valueStr += '\"\"';\n }\n else {\n valueStr += '\"' + rule.value + '\"';\n }\n }\n }\n if (rule.operator.toString().indexOf('null') > -1) {\n if (enableEscape) {\n rule.field = '`' + rule.field + '`';\n }\n else {\n if (rule.field.indexOf(' ') > -1) {\n rule.field = '\"' + rule.field + '\"';\n }\n }\n queryStr += rule.field + ' ' + ruleOpertor;\n }\n else {\n var custOper = ruleOpertor;\n if (rule.operator === 'isempty') {\n custOper = '=';\n }\n else if (rule.operator === 'isnotempty') {\n custOper = '!=';\n }\n if (enableEscape) {\n rule.field = '`' + rule.field + '`';\n }\n else {\n if (rule.field.indexOf(' ') > -1) {\n rule.field = '\"' + rule.field + '\"';\n }\n }\n queryStr += rule.field + ' ' + custOper + ' ' + valueStr;\n }\n if (rule.condition && rule.condition !== '') {\n condition = rule.condition;\n }\n }\n if (j !== jLen - 1) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var rule = rules.rules[j];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (condition === '' || (rule && rule.condition !== '' && rule.custom && rule.custom.isCustom)) {\n condition = rule.condition;\n }\n if (condition) {\n condition = sqlLocale ? this.l10n.getConstant(condition.toUpperCase()).toUpperCase() : condition.toUpperCase();\n queryStr += ' ' + condition + ' ';\n }\n }\n }\n }\n if (!isRoot) {\n queryStr += ')';\n }\n if (rules.not) {\n queryStr += ')';\n }\n return queryStr;\n };\n /**\n * Sets the rules from the sql query.\n *\n * @param {string} sqlString - 'sql String' to be passed to set the rule.\n * @param {boolean} sqlLocale - Optional. Set `true` if Localization for Sql query.\n * @returns {void}\n */\n QueryBuilder.prototype.setRulesFromSql = function (sqlString, sqlLocale) {\n sqlString = sqlString.replace(/`/g, '');\n var ruleModel = this.getRulesFromSql(sqlString, sqlLocale);\n this.setRules({ condition: ruleModel.condition, not: ruleModel.not, rules: ruleModel.rules });\n };\n /**\n * Get the rules from SQL query.\n *\n * @param {string} sqlString - 'sql String' to be passed to get the rule.\n * @param {boolean} sqlLocale - Set `true` if Localization for Sql query.\n * @returns {object} - Rules from SQL query\n */\n QueryBuilder.prototype.getRulesFromSql = function (sqlString, sqlLocale) {\n this.parser = [];\n this.sqlParser(sqlString, sqlLocale);\n this.setProperties({ rule: { condition: 'and', not: false, rules: [] } }, true);\n var rule = this.processParser(this.parser, this.rule, [0], sqlLocale);\n if (this.enableNotCondition) {\n return { condition: rule.condition, not: rule.not, rules: rule.rules };\n }\n else {\n return { condition: rule.condition, rules: rule.rules };\n }\n };\n /**\n * Gets the sql query from rules.\n *\n * @param {RuleModel} rule - 'rule' to be passed to get the sql.\n * @param {boolean} allowEscape - Set `true` if it exclude the escape character.\n * @param {boolean} sqlLocale - Set `true` if Localization for Sql query.\n * @returns {string} - Sql query from rules.\n */\n QueryBuilder.prototype.getSqlFromRules = function (rule, allowEscape, sqlLocale) {\n if (!rule) {\n rule = this.getValidRules();\n }\n rule = this.getRuleCollection(rule, false);\n var sqlString = this.getSqlString(this.getValidRules(rule), allowEscape, null, sqlLocale).replace(/\"/g, '\\'');\n return sqlString;\n };\n /**\n * Gets the parameter SQL query from rules.\n *\n * @param {RuleModel} rule – Specify the rule to be passed to get the parameter sql string.\n * @returns {ParameterizedSql} – Parameterized SQL query from rules.\n */\n QueryBuilder.prototype.getParameterizedSql = function (rule) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.moduleLoader.loadedModules.length) {\n if (!rule) {\n rule = this.getValidRules();\n }\n var obj = { sql: null };\n this.notify('query-library', { prop: 'getParameterSql', onPropertyChange: false, value: { rule: rule, obj: obj } });\n return obj['sql'];\n }\n else {\n console.warn('[WARNING] :: Module \"query-library\" is not available in QueryBuilder component! You either misspelled the module name or forgot to load it.');\n }\n return null;\n };\n /**\n * Sets the rules from the parameter sql query.\n *\n * @param { ParameterizedSql} sqlQuery – Specifies the parameter SQL to be passed to set the rule and load it to the query builder.\n * @returns {void}\n */\n QueryBuilder.prototype.setParameterizedSql = function (sqlQuery) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.moduleLoader.loadedModules.length) {\n var obj = { sql: null };\n this.notify('query-library', { prop: 'convertParamSqlToSql', onPropertyChange: false, value: { sql: sqlQuery, obj: obj } });\n var sql = obj['sql'];\n if (sql) {\n sql = sql.replace(/`/g, '');\n var ruleModel = this.getRulesFromSql(sql);\n this.setRules({ condition: ruleModel.condition, not: ruleModel.not, rules: ruleModel.rules });\n }\n }\n else {\n console.warn('[WARNING] :: Module \"query-library\" is not available in QueryBuilder component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n * Gets the named parameter SQL query from rules.\n *\n * @param {RuleModel} rule – Specify the rule to be passed to get the named parameter SQL string.\n * @returns {ParameterizedNamedSql} – Parameterized Named SQL query from rules.\n */\n QueryBuilder.prototype.getParameterizedNamedSql = function (rule) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.moduleLoader.loadedModules.length) {\n if (!rule) {\n rule = this.getValidRules();\n }\n var obj = { sql: null };\n this.notify('query-library', { prop: 'getNamedParameterSql', onPropertyChange: false, value: { rule: rule, obj: obj } });\n return obj['sql'];\n }\n else {\n console.warn('[WARNING] :: Module \"query-library\" is not available in QueryBuilder component! You either misspelled the module name or forgot to load it.');\n }\n return null;\n };\n /**\n * Sets the rules from the named parameter SQL query.\n *\n * @param { ParameterizedNamedSql } sqlQuery – Specifies the named parameter SQL to be passed to set the rule and load it to the query builder.\n * @returns {void}\n */\n QueryBuilder.prototype.setParameterizedNamedSql = function (sqlQuery) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.moduleLoader.loadedModules.length) {\n var obj = { sql: null };\n this.notify('query-library', { prop: 'convertNamedParamSqlToSql', onPropertyChange: false, value: { sql: sqlQuery, obj: obj } });\n var sql = obj['sql'];\n if (sql) {\n sql = sql.replace(/`/g, '');\n var ruleModel = this.getRulesFromSql(sql);\n this.setRules({ condition: ruleModel.condition, not: ruleModel.not, rules: ruleModel.rules });\n }\n }\n else {\n console.warn('[WARNING] :: Module \"query-library\" is not available in QueryBuilder component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n * Set the rules from Mongo query.\n *\n * @param {string} mongoQuery - 'sql String' to be passed to get the rule.\n * @param {boolean} mongoLocale - Set `true` if Localization for Mongo query.\n * @returns {void}\n */\n QueryBuilder.prototype.setMongoQuery = function (mongoQuery, mongoLocale) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.moduleLoader.loadedModules.length) {\n this.rule = { condition: 'and', not: false, rules: [] };\n this.notify('query-library', { prop: 'mongoParser', onPropertyChange: false, value: { mongoQuery: JSON.parse(mongoQuery), rule: this.rule, mongoLocale: mongoLocale } });\n }\n else {\n console.warn('[WARNING] :: Module \"query-library\" is not available in QueryBuilder component! You either misspelled the module name or forgot to load it.');\n }\n };\n /**\n * Gets the Mongo query from rules.\n *\n * @param {RuleModel} rule - 'rule' to be passed to get the sql.\n * @returns {object} - Sql query from rules.\n */\n QueryBuilder.prototype.getMongoQuery = function (rule) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.moduleLoader.loadedModules.length) {\n if (!rule) {\n rule = this.getValidRules();\n }\n var obj = { mongoQuery: null };\n this.notify('query-library', { prop: 'getMongoFromRules', onPropertyChange: false, value: { rule: rule, mongoQuery: '', obj: obj } });\n return obj['mongoQuery'];\n }\n else {\n console.warn('[WARNING] :: Module \"query-library\" is not available in QueryBuilder component! You either misspelled the module name or forgot to load it.');\n }\n return '';\n };\n /**\n * Clones the rule based on the rule ID to the specific group.\n *\n * @param {string} ruleID - Specifies the ruleID that needs to be cloned.\n * @param {string} groupID - Specifies the groupID in which the rule to be cloned.\n * @param {number} index - Specifies the index to insert the cloned rule inside the group.\n * @returns {void}\n */\n QueryBuilder.prototype.cloneRule = function (ruleID, groupID, index) {\n var getRule = this.getRule(ruleID.replace(this.element.id + '_', ''));\n var isCloneRule = this.showButtons.cloneRule;\n groupID = groupID.replace(this.element.id + '_', '');\n this.ruleIndex = index;\n this.cloneRuleBtnClick = true;\n this.showButtons.cloneRule = true;\n this.addRules([{\n 'label': getRule.label, 'field': getRule.field, 'type': getRule.type, 'operator': getRule.operator,\n 'value': getRule.value, 'condition': getRule.condition\n }], groupID);\n this.ruleIndex = -1;\n this.cloneRuleBtnClick = false;\n this.showButtons.cloneRule = isCloneRule;\n isCloneRule = false;\n };\n /**\n * Clones the group based on the group ID to the specific group.\n *\n * @param {string} groupID - Specifies the groupID that needs to be cloned.\n * @param {string} parentGroupID - Specifies the parentGroupID in which the group to be cloned.\n * @param {number} index - Specifies the index to insert the cloned group inside the parent group.\n * @returns {void}\n */\n QueryBuilder.prototype.cloneGroup = function (groupID, parentGroupID, index) {\n parentGroupID = parentGroupID.replace(this.element.id + '_', '');\n var group = this.getGroup(parentGroupID);\n var isCloneGroup = this.showButtons.cloneGroup;\n groupID = groupID.replace(this.element.id + '_', '');\n this.groupIndex = index;\n this.cloneGrpBtnClick = true;\n this.showButtons.cloneGroup = true;\n this.addGroups([{ 'condition': group.condition, 'not': group.not, 'rules': group.rules }], groupID);\n this.groupIndex = -1;\n this.cloneGrpBtnClick = false;\n this.showButtons.cloneGroup = isCloneGroup;\n isCloneGroup = false;\n };\n /**\n * Locks the rule based on the rule ID.\n *\n * @param {string} ruleID - Specifies the ruleID that needs to be locked.\n * @returns {void}\n */\n QueryBuilder.prototype.lockRule = function (ruleID) {\n if (ruleID.indexOf(this.element.id) < 0) {\n ruleID = this.element.id + '_' + ruleID;\n }\n var target = document.getElementById(ruleID).querySelectorAll('.e-lock-rule-btn')[0];\n this.ruleLock(target);\n };\n /**\n * Locks the group based on the group ID\n *\n * @param {string} groupID - Specifies the groupID that needs to be locked.\n * @returns {void}\n */\n QueryBuilder.prototype.lockGroup = function (groupID) {\n if (groupID.indexOf(this.element.id) < 0) {\n groupID = this.element.id + '_' + groupID;\n }\n var target = document.getElementById(groupID).querySelectorAll('.e-lock-grp-btn')[0];\n this.groupLock(target);\n };\n QueryBuilder.prototype.sqlParser = function (sqlString, sqlLocale) {\n var st = 0;\n var str;\n do {\n str = sqlString.slice(st);\n st += this.parseSqlStrings(str, sqlLocale);\n } while (str !== '');\n return this.parser;\n };\n QueryBuilder.prototype.parseSqlStrings = function (sqlString, sqlLocale) {\n var operators = ['=', '!=', '<=', '>=', '<', '>'];\n var conditions;\n if (sqlLocale) {\n conditions = [this.l10n.getConstant('AND').toUpperCase(), this.l10n.getConstant('OR').toUpperCase(), this.l10n.getConstant('NOT').toUpperCase()];\n }\n else {\n conditions = ['AND', 'OR', 'NOT'];\n }\n var subOp;\n if (sqlLocale) {\n subOp = [this.l10n.getConstant('In').toUpperCase(), this.l10n.getConstant('NotIn').toUpperCase(),\n this.l10n.getConstant('Like').toUpperCase(), this.l10n.getConstant('NotLike').toUpperCase(),\n this.l10n.getConstant('Between').toUpperCase(), this.l10n.getConstant('NotBetween').toUpperCase(),\n this.l10n.getConstant('IsNull').toUpperCase(), this.l10n.getConstant('IsNotNull').toUpperCase(),\n this.l10n.getConstant('IsEmpty').toUpperCase(), this.l10n.getConstant('IsNotEmpty').toUpperCase()];\n }\n else {\n subOp = ['IN', 'NOT IN', 'LIKE', 'NOT LIKE', 'BETWEEN', 'NOT BETWEEN', 'IS NULL', 'IS NOT NULL', 'IS EMPTY', 'IS NOT EMPTY'];\n }\n var regexStr;\n var regex;\n var matchValue;\n for (var i = 0, iLen = operators.length; i < iLen; i++) {\n regexStr = /^\\w+$/.test(operators[i]) ? '\\\\b' : '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var regExp = RegExp;\n regex = new regExp('^(' + operators[i] + ')' + regexStr, 'ig');\n if (regex.exec(sqlString)) {\n this.parser.push(['Operators', operators[i].toLowerCase()]);\n return operators[i].length;\n }\n }\n var lastPasrser = this.parser[this.parser.length - 1];\n if (!lastPasrser || (lastPasrser && lastPasrser[0] !== 'Literal')) {\n for (var i = 0, iLen = conditions.length; i < iLen; i++) {\n regexStr = /^\\w+$/.test(conditions[i]) ? '\\\\b' : '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var regExp = RegExp;\n regex = new regExp('^(' + conditions[i] + ')' + regexStr, 'ig');\n if (regex.exec(sqlString)) {\n this.parser.push(['Conditions', conditions[i].toLowerCase()]);\n return conditions[i].length;\n }\n }\n }\n for (var i = 0, iLen = subOp.length; i < iLen; i++) {\n regexStr = /^\\w+$/.test(subOp[i]) ? '\\\\b' : '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var regExp = RegExp;\n regex = new regExp('^(' + subOp[i] + ')' + regexStr, 'ig');\n if (regex.exec(sqlString)) {\n this.parser.push(['SubOperators', subOp[i].toLowerCase()]);\n return subOp[i].length;\n }\n }\n //Left Parenthesis\n if (/^\\(/.exec(sqlString)) {\n this.parser.push(['Left', '(']);\n return 1;\n }\n //Right Parenthesis\n if (/^\\)/.exec(sqlString)) {\n this.parser.push(['Right', ')']);\n return 1;\n }\n //Boolean\n if (/^(true|false)/.exec(sqlString)) {\n matchValue = /^(true|false)/.exec(sqlString)[0];\n this.parser.push(['String', matchValue]);\n return matchValue.length;\n }\n //Null\n if (/^null/.exec(sqlString)) {\n matchValue = /^null/.exec(sqlString)[0];\n this.parser.push(['String', null]);\n return matchValue.length;\n }\n if (/^`?([a-z_][a-z0-9_.\\\\[\\]\\\\(\\\\)]{0,}(\\\\:(number|float|string|date|boolean))?)`?/i.exec(sqlString)) {\n matchValue = /^`?([a-z_][a-z0-9_.\\\\[\\]\\\\(\\\\)]{0,}(\\\\:(number|float|string|date|boolean))?)`?/i.exec(sqlString)[1];\n this.parser.push(['Literal', matchValue]);\n return matchValue.length;\n }\n if (this.checkLiteral() && /^'?([a-z_][a-z0-9 _.\\\\[\\]\\\\(\\\\)-]{0,}(\\\\:(number|float|string|date|boolean))?)'?/i.exec(sqlString)) {\n matchValue = /^'?([a-z_][a-z0-9 _.\\\\[\\]\\\\(\\\\)-]{0,}(\\\\:(number|float|string|date|boolean))?)'?/i.exec(sqlString)[1];\n this.parser.push(['Literal', matchValue]);\n return matchValue.length + 2;\n }\n if (this.checkNumberLiteral(sqlString, sqlLocale)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var regExValue = /^[0-9]+(\\.[0-9]+)$/.exec(sqlString);\n if (regExValue) {\n matchValue = regExValue[0];\n this.parser.push(['Literal', matchValue]);\n return matchValue.length;\n }\n }\n //String\n var singleString = this.getSingleQuoteString(sqlString);\n if (singleString !== '') {\n matchValue = singleString;\n if (matchValue[matchValue.length - 2] === '(') {\n var isClosed = false;\n for (var j = matchValue.length; j < sqlString.length; j++) {\n matchValue += sqlString[j];\n if (sqlString[j] === ')') {\n isClosed = true;\n }\n if (isClosed && sqlString[j] === '\\'') {\n break;\n }\n }\n }\n else if (sqlString[matchValue.length] && (sqlString[matchValue.length] !== ')') &&\n !this.checkCondition(sqlString, matchValue)) {\n matchValue = this.combineSingleQuoteString(sqlString, matchValue);\n }\n // end\n this.parser.push(['String', matchValue]);\n return matchValue.length;\n }\n // Double String\n var doubleString = this.getDoubleQuoteString(sqlString);\n if (doubleString !== '') {\n matchValue = doubleString;\n this.parser.push(['DoubleString', matchValue]);\n return matchValue.length;\n }\n //Number\n if (/^\\d*\\.?\\d+/.exec(sqlString)) {\n matchValue = /^\\d*\\.?\\d+/.exec(sqlString)[0];\n this.parser.push(['Number', matchValue]);\n return matchValue.length;\n }\n //Negative Number\n if (/^-?\\d*\\.?\\d+/.exec(sqlString)) {\n matchValue = /^-?\\d*\\.?\\d+/.exec(sqlString)[0];\n this.parser.push(['Number', matchValue]);\n return matchValue.length;\n }\n return 1;\n };\n QueryBuilder.prototype.getDoubleQuoteString = function (sqlString) {\n var start = sqlString.indexOf('\"');\n if (start === 0) {\n var end = sqlString.indexOf('\"', start + 1);\n if (end !== -1) {\n return sqlString.substring(start, end + 1);\n }\n }\n return '';\n };\n QueryBuilder.prototype.checkCondition = function (sqlString, matchValue) {\n if (sqlString.slice(matchValue.length + 1, matchValue.length + 4) === 'AND' ||\n sqlString.slice(matchValue.length + 1, matchValue.length + 3) === 'OR') {\n return true;\n }\n return false;\n };\n QueryBuilder.prototype.getSingleQuoteString = function (sqlString, isBetween) {\n var start = sqlString.indexOf('\\'');\n if ((start !== -1 && isBetween) || (start === 0 && !isBetween)) {\n var end = sqlString.indexOf('\\'', start + 1);\n if (end !== -1) {\n return sqlString.substring(start, end + 1);\n }\n }\n return '';\n };\n QueryBuilder.prototype.combineSingleQuoteString = function (sqlString, matchValue) {\n if (sqlString[matchValue.length] && (sqlString[matchValue.length] !== ')') &&\n !this.checkCondition(sqlString, matchValue) && sqlString[matchValue.length] !== ',') {\n var tempMatchValue = matchValue.substring(0, matchValue.length - 1);\n var tempStr = sqlString.replace(tempMatchValue, '');\n var singleString = this.getSingleQuoteString(tempStr, true);\n if (singleString !== '') {\n var parsedValue = singleString.substring(1, singleString.length);\n matchValue += parsedValue;\n matchValue = this.combineSingleQuoteString(sqlString, matchValue);\n }\n }\n return matchValue;\n };\n QueryBuilder.prototype.checkLiteral = function () {\n var lastParser = this.parser[this.parser.length - 1];\n if (!lastParser) {\n return true;\n }\n else {\n var secParser = this.parser[this.parser.length - 2];\n var betweenParser = this.parser[this.parser.length - 3];\n if (lastParser[0] === 'Left' && (secParser && secParser[0] === 'Conditions')) {\n return true;\n }\n var betweenOperator = 'between';\n if (lastParser[0] === 'Conditions' && (betweenParser && betweenParser[1].indexOf(betweenOperator) < 0)) {\n return true;\n }\n }\n return false;\n };\n QueryBuilder.prototype.checkNumberLiteral = function (sqlString, sqlLocale) {\n var lastParser = this.parser[this.parser.length - 1];\n if (!lastParser) {\n return true;\n }\n else {\n if (/^[0-9]+(?:\\.[0-9]+)$/.exec(sqlString)) {\n var secParser = this.parser[this.parser.length - 2];\n var betweenParser = this.parser[this.parser.length - 3];\n if (lastParser[0] === 'Left' && (secParser && secParser[0] === 'Conditions')) {\n return true;\n }\n var betweenOperator = sqlLocale ? this.l10n.getConstant('Between').toLowerCase() : 'between';\n if (lastParser[0] === 'Conditions' && (betweenParser && betweenParser[1].indexOf(betweenOperator) < 0)) {\n return true;\n }\n }\n }\n return false;\n };\n QueryBuilder.prototype.getOperator = function (value, operator, sqlLocale) {\n var operators = {\n '=': 'equal', '!=': 'notequal', '<': 'lessthan', '>': 'greaterthan', '<=': 'lessthanorequal',\n '>=': 'greaterthanorequal', 'in': 'in', 'not in': 'notin', 'between': 'between', 'not between': 'notbetween',\n 'is empty': 'isempty', 'is null': 'isnull', 'is not null': 'isnotnull', 'is not empty': 'isnotempty'\n };\n if (sqlLocale) {\n var localeOperator = Object.keys(this.sqlOperators);\n for (var i = 0; i < localeOperator.length; i++) {\n if (this.sqlOperators[localeOperator[i]] === operator.toUpperCase()) {\n if (value && value.indexOf('%') === 0 && value[value.length - 1] === '%') {\n return (operator.toUpperCase() === 'NOT LIKE') ? 'notcontains' : 'contains';\n }\n else if (value && value.indexOf('%') !== 0 && value.indexOf('%') === value.length - 1) {\n return (operator.toUpperCase() === 'NOT LIKE') ? 'notstartswith' : 'startswith';\n }\n else if (value && value.indexOf('%') === 0 && value.indexOf('%') !== value.length - 1) {\n return (operator.toUpperCase() === 'NOT LIKE') ? 'notendswith' : 'endswith';\n }\n return localeOperator[i];\n }\n }\n return null;\n }\n if (value) {\n if (value.indexOf('%') === 0 && value[value.length - 1] === '%') {\n return (operator === 'not like') ? 'notcontains' : 'contains';\n }\n else if (value.indexOf('%') !== 0 && value.indexOf('%') === value.length - 1) {\n return (operator === 'not like') ? 'notstartswith' : 'startswith';\n }\n else if (value.indexOf('%') === 0 && value.indexOf('%') !== value.length - 1) {\n return (operator === 'not like') ? 'notendswith' : 'endswith';\n }\n }\n else {\n if (operator === 'not like') {\n return 'notequal';\n }\n else if (operator === 'like') {\n return 'equal';\n }\n }\n return operators[\"\" + operator];\n };\n QueryBuilder.prototype.getTypeFromColumn = function (rules) {\n var columnData = this.getColumn(rules.field);\n if (!isNullOrUndefined(columnData)) {\n return columnData.type;\n }\n return null;\n };\n QueryBuilder.prototype.getLabelFromColumn = function (field) {\n var label = '';\n var l = 0;\n if (this.separator !== '') {\n var fieldColl = field.split(this.separator);\n for (var i = 0; i < fieldColl.length; i++) {\n label += this.getLabelFromField(fieldColl, i + 1);\n l++;\n if (l < fieldColl.length) {\n label += this.separator;\n }\n }\n return label;\n }\n else {\n var labelItem = this.getColumn(field).label;\n return labelItem;\n }\n };\n QueryBuilder.prototype.getLabelFromField = function (field, startIdx) {\n var fieldName = '';\n var j = 0;\n for (var k = 0; k < startIdx; k++) {\n fieldName += field[k];\n j++;\n if (j < startIdx) {\n fieldName += this.separator;\n }\n }\n return this.getColumn(fieldName).label;\n };\n QueryBuilder.prototype.processParser = function (parser, rules, levelColl, sqlLocale) {\n var j;\n var jLen;\n var rule;\n var subRules;\n var numVal = [];\n var strVal = [];\n var k;\n var kLen;\n var l;\n var lLen;\n var grpCount;\n var operator;\n var isLeftOpened = false;\n var isNotOpened = false;\n for (var i = 0, iLen = parser.length; i < iLen; i++) {\n if (parser[i][0] === 'Literal') {\n var column = this.getColumn(parser[i][1]);\n rule = { label: (column && column.label) ? column.label : parser[i][1], field: parser[i][1] };\n if (parser[i + 1][0] === 'SubOperators') {\n if (parser[i + 1][1].indexOf('null') > -1 || parser[i + 1][1].indexOf('empty') > -1) {\n rule.operator = this.getOperator(' ', parser[i + 1][1], sqlLocale);\n rule.value = null;\n rule.type = this.getTypeFromColumn(rule);\n }\n else {\n if (parser.length === 3 && parser[2][0] === 'String' && (parser[2][1]).indexOf('%') !== -1) {\n var oper = parser[i + 2][1] ? parser[i + 2][1].replace(/'/g, '') : parser[i + 2][1];\n rule.operator = this.getOperator(oper, parser[i + 1][1], sqlLocale);\n }\n else {\n var oper = parser[i + 3][1] ? parser[i + 3][1].replace(/'/g, '') : parser[i + 3][1];\n rule.operator = this.getOperator(oper, parser[i + 1][1], sqlLocale);\n }\n }\n operator = parser[i + 1][1];\n i++;\n j = i + 1;\n jLen = iLen;\n if (sqlLocale && rule.operator === 'contains' || rule.operator === 'startswith' || rule.operator === 'endswith') {\n operator = 'like';\n }\n else if (sqlLocale && rule.operator === 'notcontains' || rule.operator === 'notstartswith' || rule.operator === 'notendswith') {\n operator = 'not like';\n }\n else if (sqlLocale) {\n operator = rule.operator;\n }\n for (j = i + 1; j < jLen; j++) {\n if (operator.indexOf('between') < 0 && parser[j][0] === 'Left') {\n isLeftOpened = true;\n }\n else if (parser[j][0] === 'Right' && isLeftOpened) {\n i = j;\n isLeftOpened = false;\n break;\n }\n else {\n if (operator.indexOf('null') > -1 || operator.indexOf('empty') > -1) {\n break;\n }\n if (operator.indexOf('like') > -1 && parser[j][0] === 'String') {\n var val = parser[j][1];\n if (parser[j][1] && parser[j][1][0] === '\\'') {\n val = parser[j][1].substring(1, parser[j][1].length - 1);\n }\n val = val ? val.replace(/%/g, '') : parser[j][1];\n rule.value = val;\n rule.type = 'string';\n }\n else if (operator.indexOf('between') > -1) {\n if (parser[j][0] === 'Literal' || parser[j][0] === 'Left') {\n break;\n }\n if (parser[j][0] === 'Number') {\n numVal.push(Number(parser[j][1]));\n }\n else if (parser[j][0] === 'String') {\n var val = parser[j][1];\n if (parser[j][1] && parser[j][1][0] === '\\'') {\n val = parser[j][1].substring(1, parser[j][1].length - 1);\n }\n strVal.push(val);\n }\n }\n else {\n if (parser[j][0] === 'Number') {\n numVal.push(Number(parser[j][1]));\n }\n else if (parser[j][0] === 'String') {\n var val = parser[j][1];\n if (parser[j][1] && parser[j][1][0] === '\\'') {\n val = parser[j][1].substring(1, parser[j][1].length - 1);\n }\n strVal.push(val);\n }\n }\n rule.type = this.getTypeFromColumn(rule);\n }\n }\n if (operator.indexOf('like') < 0) {\n if (parser[j - 1][0] === 'Number') {\n rule.value = numVal;\n rule.type = 'number';\n }\n else if (parser[j - 1][0] === 'String') {\n rule.value = strVal;\n rule.type = 'string';\n }\n else if (operator.indexOf('between') > -1 && parser[j - 1][0] === 'Conditions') {\n if (strVal.length !== 0) {\n rule.value = strVal;\n rule.type = 'string';\n }\n else {\n rule.value = numVal;\n rule.type = 'number';\n }\n }\n numVal = [];\n strVal = [];\n rule.type = this.getTypeFromColumn(rule);\n }\n if (this.enableSeparateConnector && parser[i + 1][0] === 'Conditions') {\n rule.condition = parser[i + 1][1];\n }\n }\n else if (parser[i + 1][0] === 'Operators') {\n rule.operator = this.getOperator(parser[i + 2][1], parser[i + 1][1], sqlLocale);\n if (rule.operator === 'equal' && parser[i + 2][0] === 'String' && parser[i + 2][1] === '\\'\\'') {\n rule.operator = 'isempty';\n }\n else if (rule.operator === 'notequal' && parser[i + 2][0] === 'String' && parser[i + 2][1] === '\\'\\'') {\n rule.operator = 'isnotempty';\n }\n if (parser[i + 2][0] === 'Number') {\n rule.type = 'number';\n rule.value = Number(parser[i + 2][1]);\n }\n else {\n rule.type = 'string';\n var val = parser[i + 2][1];\n if (val && val[0] === '\\'') {\n val = val.substring(1, val.length - 1);\n }\n rule.value = val;\n }\n if (this.enableSeparateConnector && parser[i + 3][0] === 'Conditions') {\n rule.condition = parser[i + 3][1];\n }\n rule.type = this.getTypeFromColumn(rule);\n }\n rules.rules.push(rule);\n }\n else if (parser[i][0] === 'Left') {\n if (!(parser[0][0] === 'Left') && (parser[i - 1][1] === 'not' || sqlLocale && this.l10n.getConstant('NOT').toLowerCase() === parser[i - 1][1])) {\n isNotOpened = true;\n continue;\n }\n this.parser = parser.splice(i + 1, iLen - (i + 1));\n if (this.enableNotCondition) {\n subRules = { condition: 'and', rules: [], not: false };\n }\n else {\n subRules = { condition: 'and', rules: [] };\n }\n grpCount = 0;\n kLen = rules.rules.length;\n for (k = 0; k < kLen; k++) { //To get the group position\n if (rules.rules[k].rules) {\n grpCount++;\n }\n }\n levelColl.push(grpCount);\n rules.rules.push(subRules);\n subRules = this.processParser(this.parser, subRules, levelColl, sqlLocale);\n return rules;\n }\n else if (parser[i][0] === 'Conditions' && !this.enableSeparateConnector) {\n if (parser[i][1] === 'not' || (sqlLocale && this.l10n.getConstant('NOT').toLowerCase() === parser[i][1])) {\n rules.not = true;\n }\n else {\n rules.condition = parser[i][1];\n }\n }\n else if (parser[i][0] === 'Right') {\n if (isNotOpened && parser[i + 1][0] === 'Right') {\n isNotOpened = false;\n continue;\n }\n this.parser = parser.splice(i + 1, iLen - (i + 1));\n levelColl.pop(); //To get the parent Group\n rules = this.rule;\n lLen = levelColl.length;\n for (l = 0; l < lLen; l++) {\n rules = this.findGroupByIdx(levelColl[l], rules, l === 0);\n }\n return this.processParser(this.parser, rules, levelColl, sqlLocale);\n }\n }\n return rules;\n };\n /**\n * Clone the Group\n *\n * @param {Element | string} target - 'target' to be passed to clone the group.\n * @returns {void}\n */\n QueryBuilder.prototype.groupClone = function (target) {\n var groupElem = target.closest('.e-rule-list').closest('.e-group-container');\n var targetGrpId = target.id.replace(this.element.id + '_', '');\n var groupId = groupElem.id.replace(this.element.id + '_', '');\n var group = this.getGroup(targetGrpId);\n this.groupIndex = Array.prototype.indexOf.call(target.closest('.e-rule-list').children, target.closest('.e-group-container'));\n this.addGroups([{ 'condition': group.condition, 'not': group.not, 'rules': group.rules }], groupId);\n this.groupIndex = -1;\n };\n QueryBuilder.prototype.ruleClone = function (target) {\n var ruleElem = closest(target, '.e-rule-container');\n var groupElem = target.closest('.e-rule-list').closest('.e-group-container');\n var getRule = this.getRule(target);\n var groupId = groupElem.id.replace(this.element.id + '_', '');\n var ruleElemColl = groupElem.querySelectorAll('.e-rule-container');\n for (var i = 0, iLen = ruleElemColl.length; i < iLen; i++) {\n if (ruleElem.id === ruleElemColl[i].id) {\n this.ruleIndex = i;\n }\n }\n if (this.enableSeparateConnector) {\n this.addRules([{ 'label': getRule.label, 'field': getRule.field, 'type': getRule.type, 'operator': getRule.operator,\n 'value': getRule.value, 'condition': getRule.condition }], groupId);\n }\n else {\n this.addRules([{ 'label': getRule.label, 'field': getRule.field, 'type': getRule.type, 'operator': getRule.operator,\n 'value': getRule.value }], groupId);\n }\n this.ruleIndex = -1;\n };\n QueryBuilder.prototype.ruleLock = function (target) {\n var ruleElem = closest(target, '.e-rule-container');\n var rule = this.getRule(ruleElem.id.replace(this.element.id + '_', ''));\n if (ruleElem.classList.contains('e-disable')) {\n rule.isLocked = false;\n this.lockItems = this.lockItems.filter(function (lockItem) { return lockItem !== ruleElem.id; });\n ruleElem.classList.remove('e-disable');\n this.disableRuleControls(target, ruleElem, false);\n target.children[0].classList.add('e-unlock');\n target.children[0].classList.remove('e-lock');\n target.setAttribute('title', this.l10n.getConstant('LockRule'));\n }\n else {\n rule.isLocked = true;\n if (this.lockItems.indexOf(ruleElem.id) < 0) {\n this.lockItems.splice(this.lockItems.length - 1, 0, ruleElem.id);\n }\n ruleElem.classList.add('e-disable');\n this.disableRuleControls(target, ruleElem, true);\n target.children[0].classList.add('e-lock');\n target.children[0].classList.remove('e-unlock');\n target.setAttribute('title', this.l10n.getConstant('UnlockRule'));\n }\n };\n QueryBuilder.prototype.groupLock = function (target) {\n var groupElem = closest(target, '.e-group-container');\n var group = this.getGroup(groupElem.id.replace(this.element.id + '_', ''));\n var isRoot = groupElem.id.indexOf('group0') > -1;\n if (groupElem.classList.contains('e-disable')) {\n if (isRoot) {\n var newGroup = {};\n newGroup.condition = group.condition;\n newGroup.not = group.not;\n newGroup.isLocked = false;\n this.setProperties({ rule: newGroup }, true);\n }\n else {\n group.isLocked = false;\n }\n this.lockItems = this.lockItems.filter(function (lockItem) { return lockItem !== groupElem.id; });\n groupElem.classList.remove('e-disable');\n this.disableHeaderControls(target, groupElem, false);\n target.children[0].classList.add('e-unlock');\n target.children[0].classList.remove('e-lock');\n target.setAttribute('title', this.l10n.getConstant('LockGroup'));\n this.updateLockItems();\n }\n else {\n if (isRoot) {\n var newGroup = {};\n newGroup.condition = group.condition;\n newGroup.not = group.not;\n newGroup.isLocked = true;\n this.setProperties({ rule: newGroup }, true);\n }\n else {\n group.isLocked = true;\n }\n if (this.lockItems.indexOf(groupElem.id) < 0) {\n this.lockItems.splice(this.lockItems.length - 1, 0, groupElem.id);\n }\n groupElem.classList.add('e-disable');\n this.disableHeaderControls(target, groupElem, true);\n target.children[0].classList.add('e-lock');\n target.children[0].classList.remove('e-unlock');\n target.setAttribute('title', this.l10n.getConstant('UnlockGroup'));\n }\n };\n QueryBuilder.prototype.updateLockItems = function () {\n for (var i = 0; i < this.lockItems.length; i++) {\n var idColl = this.lockItems[i].split('_');\n if (idColl.length > 2) {\n var ruleElem = this.element.querySelector('#' + this.lockItems[i]);\n var target = ruleElem.querySelector('.e-lock-rule-btn');\n ruleElem = closest(target, '.e-rule-container');\n if (!ruleElem.classList.contains('e-disable')) {\n this.ruleLock(target);\n }\n }\n else {\n var groupElem = this.element.querySelector('#' + this.lockItems[i]);\n var target = groupElem.querySelector('.e-lock-grp-btn');\n groupElem = closest(target, '.e-group-container');\n if (!groupElem.classList.contains('e-disable')) {\n this.groupLock(target);\n }\n }\n }\n };\n QueryBuilder.prototype.disableHeaderControls = function (target, groupElem, isDisabled) {\n var andElem = groupElem.querySelectorAll('.e-btngroup-and');\n var orElem = groupElem.querySelectorAll('.e-btngroup-or');\n var notElem = groupElem.querySelectorAll('.e-qb-toggle');\n var addElem = groupElem.querySelectorAll('.e-add-btn');\n var deleteGrpElem = groupElem.querySelectorAll('.e-deletegroup');\n var lockElem = groupElem.querySelectorAll('.e-lock-grp-btn');\n var cloneElem = groupElem.querySelectorAll('.e-clone-grp-btn');\n var groupContElem = groupElem.querySelectorAll('.e-group-container');\n var addCondition = groupElem.querySelectorAll('.e-add-condition-btn');\n var addGroup = groupElem.querySelectorAll('.e-add-group-btn');\n for (var i = 0; i < andElem.length; i++) {\n if (isDisabled) {\n if (groupContElem[i] && groupContElem[i].classList.contains('e-disable')) {\n groupContElem[i].classList.add('e-disable');\n }\n andElem[i].disabled = true;\n orElem[i].disabled = true;\n if (addElem[i]) {\n addElem[i].disabled = true;\n }\n if (addCondition[i]) {\n addCondition[i].disabled = true;\n }\n if (addGroup[i]) {\n addGroup[i].disabled = true;\n }\n if (notElem[i]) {\n notElem[i].disabled = true;\n }\n if (deleteGrpElem[i]) {\n deleteGrpElem[i].disabled = true;\n }\n if (cloneElem[i]) {\n cloneElem[i].disabled = true;\n }\n andElem[i].parentElement.classList.add('e-disabled');\n if (lockElem[i] && lockElem[i] !== target) {\n lockElem[i].disabled = true;\n lockElem[i].children[0].classList.remove('e-unlock');\n lockElem[i].children[0].classList.add('e-lock');\n }\n }\n else {\n if (groupContElem[i]) {\n groupContElem[i].classList.remove('e-disable');\n }\n andElem[i].disabled = false;\n orElem[i].disabled = false;\n if (addElem[i]) {\n addElem[i].disabled = false;\n }\n if (addCondition[i]) {\n addCondition[i].disabled = false;\n }\n if (addGroup[i]) {\n addGroup[i].disabled = false;\n }\n if (lockElem[i]) {\n lockElem[i].disabled = false;\n }\n if (notElem[i]) {\n notElem[i].disabled = false;\n }\n if (deleteGrpElem[i]) {\n deleteGrpElem[i].disabled = false;\n }\n if (cloneElem[i]) {\n cloneElem[i].disabled = false;\n }\n andElem[i].parentElement.classList.remove('e-disabled');\n if (lockElem[i]) {\n lockElem[i].children[0].classList.remove('e-lock');\n }\n if (lockElem[i]) {\n lockElem[i].children[0].classList.add('e-unlock');\n }\n }\n }\n this.disableRuleControls(target, groupElem, isDisabled);\n };\n QueryBuilder.prototype.disableRuleControls = function (target, groupElem, isDisabled) {\n var ddlElement = groupElem.querySelectorAll('.e-control.e-dropdownlist');\n var numericElement = groupElem.querySelectorAll('.e-control.e-numerictextbox');\n var textElement = groupElem.querySelectorAll('.e-control.e-textbox');\n var dateElement = groupElem.querySelectorAll('.e-control.e-datepicker');\n var checkboxElement = groupElem.querySelectorAll('.e-control.e-checkbox');\n var radioBtnElement = groupElem.querySelectorAll('.e-control.e-radio');\n var multiSelectElement = groupElem.querySelectorAll('.e-control.e-multiselect');\n var deleteElem = groupElem.querySelectorAll('.e-rule-delete');\n var lockElem = groupElem.querySelectorAll('.e-lock-rule');\n var cloneElem = groupElem.querySelectorAll('.e-clone-rule');\n var ruleElem = groupElem.querySelectorAll('.e-rule-container');\n for (var i = 0; i < deleteElem.length; i++) {\n if (isDisabled) {\n if (ruleElem[i] && ruleElem[i].classList.contains('e-disable')) {\n ruleElem[i].classList.add('e-disable');\n }\n deleteElem[i].disabled = true;\n if (cloneElem[i]) {\n cloneElem[i].disabled = true;\n }\n if (lockElem[i] !== target) {\n lockElem[i].disabled = true;\n lockElem[i].children[0].classList.remove('e-unlock');\n lockElem[i].children[0].classList.add('e-lock');\n }\n }\n else {\n if (ruleElem[i]) {\n ruleElem[i].classList.remove('e-disable');\n }\n if (cloneElem[i]) {\n cloneElem[i].disabled = false;\n }\n deleteElem[i].disabled = false;\n lockElem[i].disabled = false;\n lockElem[i].children[0].classList.remove('e-lock');\n lockElem[i].children[0].classList.add('e-unlock');\n }\n }\n var dropDownObj;\n var numericObj;\n var textObj;\n var dateObj;\n var checkBoxObj;\n var radioBtnObj;\n var multiSelectObj;\n for (var i = 0; i < ddlElement.length; i++) {\n dropDownObj = getComponent(ddlElement[i], 'dropdownlist');\n if (isDisabled) {\n dropDownObj.enabled = false;\n }\n else {\n dropDownObj.enabled = true;\n }\n }\n for (var i = 0; i < numericElement.length; i++) {\n numericObj = getComponent(numericElement[i], 'numerictextbox');\n if (isDisabled) {\n numericObj.enabled = false;\n }\n else {\n numericObj.enabled = true;\n }\n }\n for (var i = 0; i < textElement.length; i++) {\n textObj = getComponent(textElement[i], 'textbox');\n if (isDisabled) {\n textObj.enabled = false;\n }\n else {\n textObj.enabled = true;\n }\n }\n for (var i = 0; i < dateElement.length; i++) {\n dateObj = getComponent(dateElement[i], 'datepicker');\n if (isDisabled) {\n dateObj.enabled = false;\n }\n else {\n dateObj.enabled = true;\n }\n }\n for (var i = 0; i < checkboxElement.length; i++) {\n checkBoxObj = getComponent(checkboxElement[i], 'checkbox');\n if (isDisabled) {\n checkBoxObj.disabled = true;\n }\n else {\n checkBoxObj.disabled = false;\n }\n }\n for (var i = 0; i < radioBtnElement.length; i++) {\n radioBtnObj = getComponent(radioBtnElement[i], 'radio');\n if (isDisabled) {\n radioBtnObj.disabled = true;\n }\n else {\n radioBtnObj.disabled = false;\n }\n }\n for (var i = 0; i < multiSelectElement.length; i++) {\n multiSelectObj = getComponent(multiSelectElement[i], 'multiselect');\n if (isDisabled) {\n multiSelectObj.enabled = false;\n }\n else {\n multiSelectObj.enabled = true;\n }\n }\n };\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"actionBegin\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"beforeChange\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"dataBound\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"ruleChange\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"dragStart\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"drag\", void 0);\n __decorate([\n Event()\n ], QueryBuilder.prototype, \"drop\", void 0);\n __decorate([\n Complex({}, ShowButtons)\n ], QueryBuilder.prototype, \"showButtons\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"summaryView\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"allowValidation\", void 0);\n __decorate([\n Property('Default')\n ], QueryBuilder.prototype, \"fieldMode\", void 0);\n __decorate([\n Property([])\n ], QueryBuilder.prototype, \"columns\", void 0);\n __decorate([\n Property(null)\n ], QueryBuilder.prototype, \"fieldModel\", void 0);\n __decorate([\n Property(null)\n ], QueryBuilder.prototype, \"operatorModel\", void 0);\n __decorate([\n Property(null)\n ], QueryBuilder.prototype, \"valueModel\", void 0);\n __decorate([\n Property()\n ], QueryBuilder.prototype, \"headerTemplate\", void 0);\n __decorate([\n Property('')\n ], QueryBuilder.prototype, \"cssClass\", void 0);\n __decorate([\n Property([])\n ], QueryBuilder.prototype, \"dataSource\", void 0);\n __decorate([\n Property('Horizontal')\n ], QueryBuilder.prototype, \"displayMode\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"enablePersistence\", void 0);\n __decorate([\n Property('Default')\n ], QueryBuilder.prototype, \"sortDirection\", void 0);\n __decorate([\n Property(5)\n ], QueryBuilder.prototype, \"maxGroupCount\", void 0);\n __decorate([\n Property('auto')\n ], QueryBuilder.prototype, \"height\", void 0);\n __decorate([\n Property('auto')\n ], QueryBuilder.prototype, \"width\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"matchCase\", void 0);\n __decorate([\n Property(0)\n ], QueryBuilder.prototype, \"immediateModeDelay\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"enableNotCondition\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"readonly\", void 0);\n __decorate([\n Property(true)\n ], QueryBuilder.prototype, \"addRuleToNewGroups\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"autoSelectField\", void 0);\n __decorate([\n Property(true)\n ], QueryBuilder.prototype, \"autoSelectOperator\", void 0);\n __decorate([\n Property('')\n ], QueryBuilder.prototype, \"separator\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"enableSeparateConnector\", void 0);\n __decorate([\n Complex({ condition: 'and', rules: [] }, Rule)\n ], QueryBuilder.prototype, \"rule\", void 0);\n __decorate([\n Property(false)\n ], QueryBuilder.prototype, \"allowDragAndDrop\", void 0);\n QueryBuilder = __decorate([\n NotifyPropertyChanges\n ], QueryBuilder);\n return QueryBuilder;\n}(Component));\nexport { QueryBuilder };\nvar LevelColl = /** @class */ (function () {\n function LevelColl() {\n }\n return LevelColl;\n}());\n","import { extend, isNullOrUndefined } from '@syncfusion/ej2-base';\nvar QueryLibrary = /** @class */ (function () {\n function QueryLibrary(parent) {\n this.parent = parent;\n this.addEventListener();\n }\n QueryLibrary.prototype.destroy = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.removeEventListener();\n };\n QueryLibrary.prototype.addEventListener = function () {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.on('query-library', this.queryLibrary, this);\n this.parent.on('destroyed', this.destroy, this);\n };\n QueryLibrary.prototype.removeEventListener = function () {\n this.parent.off('query-library', this.queryLibrary);\n this.parent.off('destroyed', this.destroy);\n };\n QueryLibrary.prototype.queryLibrary = function (args) {\n switch (args.prop) {\n case 'getMongoFromRules':\n args.value['obj']['mongoQuery'] = this.getMongoFromRules(args.value['rule'], args.value['mongoQuery']);\n break;\n case 'mongoParser':\n this.mongoParser(args.value['mongoQuery'], args.value['rule'], args.value['mongoLocale']);\n break;\n case 'getParameterSql':\n args.value['obj']['sql'] = this.getParameterSql(args.value['rule']);\n break;\n case 'getNamedParameterSql':\n args.value['obj']['sql'] = this.getNamedParameterSql(args.value['rule']);\n break;\n case 'convertParamSqlToSql':\n args.value['obj']['sql'] = this.convertParamSqlToSql(args.value['sql']);\n break;\n case 'convertNamedParamSqlToSql':\n args.value['obj']['sql'] = this.convertNamedParamSqlToSql(args.value['sql']);\n break;\n }\n };\n QueryLibrary.prototype.getMongoFromRules = function (rule, mongoQuery) {\n mongoQuery = '{';\n if (rule.condition === 'or') {\n mongoQuery += '\"$or\":[';\n mongoQuery = this.convertMongoQuery(rule.rules, mongoQuery) + ']';\n }\n else {\n mongoQuery += '\"$and\":[';\n mongoQuery = this.convertMongoQuery(rule.rules, mongoQuery) + ']';\n }\n mongoQuery += '}';\n return mongoQuery;\n };\n QueryLibrary.prototype.getOperatorFromMongoOperator = function (operator) {\n var operatorValue;\n switch (operator) {\n case '$ne':\n operatorValue = 'notequal';\n break;\n case '$gt':\n operatorValue = 'greaterthan';\n break;\n case '$gte':\n operatorValue = 'greaterthanorequal';\n break;\n case '$lt':\n operatorValue = 'lessthan';\n break;\n case '$lte':\n operatorValue = 'lessthanorequal';\n break;\n case '$nin':\n operatorValue = 'notin';\n break;\n }\n return operatorValue;\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n QueryLibrary.prototype.convertMongoQuery = function (rules, mongoQuery) {\n var _this = this;\n var i = 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rules.forEach(function (item) {\n i++;\n mongoQuery += '{';\n if (item.rules !== undefined) {\n if (item.condition === 'or') {\n mongoQuery += ' \"$or\":[';\n mongoQuery = _this.convertMongoQuery(item.rules, mongoQuery) + ']';\n }\n else {\n mongoQuery += ' \"$and\":[';\n mongoQuery = _this.convertMongoQuery(item.rules, mongoQuery) + ']';\n }\n }\n var itVal = item.type === 'string' && item.operator !== 'in' && item.operator !== 'notin' && item.value && item.value.trim() !== '' ? item.value.replace(/'/g, '\\\\') : '';\n if (item.type === 'string' && (item.operator === 'in' || item.operator === 'notin') && item.value && item.value.length === 1) {\n itVal = item.value[0].replace(/'/g, '\\\\');\n }\n var field = item.field ? item.field.substring(0) : '';\n switch (item.operator) {\n case 'contains':\n mongoQuery += '\"' + field + '\":{\"$regex\":\"' + itVal + '\"}';\n break;\n case 'notcontains':\n mongoQuery += '\"' + field + '\":{\"$not\":{\"$regex\":\"' + item.value + '\"}}';\n break;\n case 'startswith':\n mongoQuery += '\"' + field + '\":{\"$regex\":\"^' + itVal + '\"}';\n break;\n case 'notstartswith':\n mongoQuery += '\"' + field + '\":{\"$not\":{\"$regex\":\"^' + item.value + '\"}}';\n break;\n case 'endswith':\n mongoQuery += '\"' + field + '\":{\"$regex\":\"' + itVal + '$\"}';\n break;\n case 'notendswith':\n mongoQuery += '\"' + field + '\":{\"$not\":{\"$regex\":\"' + item.value + '$\"}}';\n break;\n case 'isnull':\n mongoQuery += '\"' + field + '\": null';\n break;\n case 'isnotnull':\n mongoQuery += '\"' + field + '\":{\"$ne\": null}';\n break;\n case 'isempty':\n mongoQuery += '\"' + field + '\": \"\"';\n break;\n case 'isnotempty':\n mongoQuery += '\"' + field + '\":{\"$ne\": \"\"}';\n break;\n case 'equal':\n if (item.type === 'string') {\n mongoQuery += '\"' + field + '\":\"' + itVal + '\"';\n }\n else if (item.type === 'date') {\n mongoQuery += '\"' + field + '\":\"' + item.value + '\"';\n }\n else if (item.type === 'boolean') {\n mongoQuery += '\"' + field + '\":' + item.value + '';\n }\n else {\n mongoQuery += '\"' + field + '\":' + item.value + '';\n }\n break;\n case 'notequal':\n if (item.type === 'string') {\n mongoQuery += '\"' + field + '\":{\"$ne\":\"' + itVal + '\"}';\n }\n else if (item.type === 'date') {\n mongoQuery += '\"' + field + '\":{\"$ne\":\"' + item.value + '\"}';\n }\n else {\n mongoQuery += '\"' + field + '\":{\"$ne\":' + item.value + '}';\n }\n break;\n case 'in':\n if (item.type === 'string') {\n if (item.value.length > 1) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var s = item.value.map(function (x, j) { return (j < item.value.length ? \"\\\"\" + x + \"\\\"\" : ''); }).toString();\n s = s.endsWith(',') ? s.substring(0, s.length - 1) : s;\n mongoQuery += '\"' + field + '\": { \"$in\": [' + s + ']}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$in\": [\"' + itVal + '\"]}';\n }\n }\n else if (item.type === 'number') {\n if (item.value.length > 1) {\n mongoQuery += '\"' + field + '\": { \"$in\": [' + item.value.toString() + ']}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$in\": [' + item.value + ']}';\n }\n }\n break;\n case 'notin':\n if (item.type === 'string') {\n if (item.value.length > 1) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var s = item.value.map(function (x, j) { return (j < item.value.length ? \"\\\"\" + x + \"\\\"\" : ''); }).toString();\n s = s.endsWith(',') ? s.substring(0, s.length - 1) : s;\n mongoQuery += '\"' + field + '\": { \"$nin\": [' + s + ']}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$nin\": [\"' + itVal + '\"]}';\n }\n }\n else if (item.type === 'number') {\n if (item.value.length > 1) {\n mongoQuery += '\"' + field + '\": { \"$nin\": [' + item.value.toString() + ']}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$nin\": [' + item.value + ']}';\n }\n }\n break;\n case 'greaterthan':\n if (item.type === 'number') {\n mongoQuery += '\"' + field + '\": { \"$gt\": ' + item.value + '}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$gt\": \"' + item.value + '\"}';\n }\n break;\n case 'greaterthanorequal':\n if (item.type === 'number') {\n mongoQuery += '\"' + field + '\": { \"$gte\": ' + item.value + '}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$gte\": \"' + item.value + '\"}';\n }\n break;\n case 'between':\n if (item.type === 'number') {\n mongoQuery += '\"' + field + '\": {\"$gte\":' + item.value[0] + ', \"$lte\":' + item.value[1] + '}';\n }\n else {\n mongoQuery += '\"' + field + '\": {\"$gte\": \"' + item.value[0] + '\", \"$lte\": \"' + item.value[1] + '\"}';\n }\n break;\n case 'notbetween':\n if (item.type === 'number') {\n mongoQuery += '\"$or\":[{\"' + field + '\": {\"$lt\":' + item.value[0] + '}}, {\"' + field + '\": {\"$gt\":' + item.value[1] + '}}]';\n }\n else {\n mongoQuery += '\"$or\":[{\"' + field + '\": {\"$lt\": \"' + item.value[0] + '\"}}, {\"' + field + '\": {\"$gt\": \"' + item.value[1] + '\"}}]';\n }\n break;\n case 'lessthan':\n if (item.type === 'number') {\n mongoQuery += '\"' + field + '\": { \"$lt\": ' + item.value + '}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$lt\": \"' + item.value + '\"}';\n }\n break;\n case 'lessthanorequal':\n if (item.type === 'number') {\n mongoQuery += '\"' + field + '\": { \"$lte\": ' + item.value + '}';\n }\n else {\n mongoQuery += '\"' + field + '\": { \"$lte\": \"' + item.value + '\"}';\n }\n break;\n }\n mongoQuery += '}';\n if (rules.length !== i) {\n mongoQuery += ',';\n }\n });\n return mongoQuery;\n };\n QueryLibrary.prototype.mongoParser = function (mongoQuery, rule, mongoLocale) {\n var mongoList;\n if (Object.keys(mongoQuery).indexOf('$and') > -1) {\n mongoList = mongoQuery['$and'];\n rule.condition = 'and';\n }\n else if (Object.keys(mongoQuery).indexOf('$or') > -1) {\n mongoList = mongoQuery['$or'];\n rule.condition = 'or';\n }\n rule.rules = [];\n this.mongoRecursion(mongoList, rule.rules, mongoLocale);\n };\n QueryLibrary.prototype.mongoRecursion = function (mongoList, rules, mongoLocale) {\n var operatorValue;\n var type;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var stringValue;\n var key;\n var betweenValue;\n var fieldType;\n var condition;\n var value;\n var subRules;\n var rule;\n var keyObj;\n var ruleValue;\n for (var i = 0, len = mongoList.length; i < len; i++) {\n var betweenOperatorArray = [];\n var inOperatorArray = [];\n condition = Object.keys(mongoList[i])[0];\n value = mongoList[i][condition];\n if (condition === '$and') {\n if (this.parent.enableNotCondition) {\n subRules = { condition: condition.replace('$', ''), rules: [], not: false };\n }\n else {\n subRules = { condition: condition.replace('$', ''), rules: [] };\n }\n rules.push(subRules);\n this.mongoRecursion(mongoList[i][condition], rules[rules.length - 1].rules, mongoLocale);\n }\n else if (condition === '$or') {\n var notBetween = void 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var innerObject = [];\n var keys = [];\n var firstKey = [];\n var secondKey = [];\n var innerKeys = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var firstValue = [];\n var secondValue = [];\n var innerFirstValue = [];\n var innerSecondValue = [];\n if (Array.isArray(value) && value.length === 2) {\n keys = Object.keys(value);\n innerFirstValue = value[keys[0]];\n innerSecondValue = value[keys[1]];\n if (typeof innerFirstValue === 'object') {\n innerObject = Object.keys(innerFirstValue)[0];\n innerKeys = Object.keys(innerFirstValue[Object.keys(innerFirstValue)[0]]);\n firstKey = innerKeys[0];\n secondKey = Object.keys(innerSecondValue[Object.keys(innerSecondValue)[0]])[0];\n if (firstKey === '$lt' && secondKey === '$gt') {\n operatorValue = 'notbetween';\n // eslint-disable-next-line security/detect-object-injection\n firstValue = innerFirstValue[innerObject][firstKey];\n // eslint-disable-next-line security/detect-object-injection\n secondValue = innerSecondValue[innerObject][secondKey];\n type = typeof firstValue === 'number' ? 'number' : 'date';\n ruleValue = [firstValue, secondValue];\n rule = { field: innerObject, label: innerObject, value: ruleValue, operator: operatorValue, type: type };\n rules.push(rule);\n notBetween = true;\n }\n }\n }\n if (!notBetween) {\n if (this.parent.enableNotCondition) {\n subRules = { condition: condition.replace('$', ''), rules: [], not: false };\n }\n else {\n subRules = { condition: condition.replace('$', ''), rules: [] };\n }\n rules.push(subRules);\n this.mongoRecursion(mongoList[i][condition], rules[rules.length - 1].rules, mongoLocale);\n }\n }\n else {\n value = mongoList[i][condition];\n if (value === null) { // isnull operator\n operatorValue = 'isnull';\n }\n if (typeof value === 'boolean') { // boolean type values\n operatorValue = 'equal';\n type = 'boolean';\n ruleValue = value;\n }\n if (typeof (value) === 'number') {\n ruleValue = value;\n type = 'number';\n operatorValue = 'equal';\n }\n else if (typeof (value) === 'object' && value !== null) {\n keyObj = Object.keys(value);\n for (var i_1 = 0; i_1 < keyObj.length; i_1++) {\n key = keyObj[i_1];\n stringValue = (value)[keyObj[i_1]];\n if (key === '$ne' && isNullOrUndefined(stringValue)) { // not null operator\n operatorValue = 'isnotnull';\n ruleValue = null;\n }\n if (key === '$ne' && typeof stringValue === 'boolean') { // not equal operator for boolean\n operatorValue = 'notequal';\n ruleValue = stringValue;\n type = 'boolean';\n }\n if (keyObj.length >= 2 && keyObj[i_1]) {\n if (typeof (stringValue) == 'object') { // between and notbetween operators\n operatorValue = 'notbetween';\n condition = Object.keys(stringValue)[0];\n betweenValue = [Object.keys(stringValue[condition])[0]];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n betweenOperatorArray.push(stringValue[condition][betweenValue]);\n type = 'number';\n }\n else {\n operatorValue = 'between';\n betweenOperatorArray.push(stringValue);\n }\n if (typeof (stringValue) === 'number') {\n type = 'number';\n }\n }\n else if (typeof (stringValue) === 'object' && stringValue !== null) { // \"in\" and \"notin\" operator\n if (key === '$not' && Object.keys(stringValue)[0] === '$regex') {\n if (stringValue['$regex'].indexOf('^') > -1) {\n operatorValue = 'notstartswith';\n ruleValue = stringValue['$regex'].replace('^', '');\n }\n else if (stringValue['$regex'].indexOf('$') > -1) {\n operatorValue = 'notendswith';\n ruleValue = stringValue['$regex'].replace('$', '');\n }\n else {\n operatorValue = 'notcontains';\n ruleValue = stringValue['$regex'];\n }\n }\n else {\n operatorValue = key === '$in' ? 'in' : 'notin';\n inOperatorArray = stringValue;\n type = typeof (stringValue[0]) === 'number' ? 'number' : 'string';\n }\n }\n else if (typeof (stringValue) === 'number') { // number type values\n operatorValue = this.getOperatorFromMongoOperator(key);\n type = 'number';\n ruleValue = stringValue;\n }\n if (typeof (stringValue) === 'string') { // string type values\n if (key === '$regex') {\n operatorValue = 'contains';\n ruleValue = stringValue;\n type = 'string';\n }\n if (key === '$ne') { // not equal\n if (stringValue !== null && stringValue.length > 0 && isNaN(Date.parse(stringValue))) {\n operatorValue = 'notequal';\n ruleValue = stringValue;\n }\n else if (isNullOrUndefined(stringValue)) { // is not null operator\n operatorValue = 'isnotnull';\n ruleValue = stringValue;\n }\n else if (stringValue === '') { // is not empty operator\n operatorValue = 'isnotempty';\n ruleValue = stringValue;\n }\n type = 'string';\n }\n if (stringValue.indexOf('^') > -1) {\n operatorValue = 'startswith';\n ruleValue = stringValue.replace('^', '');\n type = 'string';\n }\n if (stringValue.indexOf('$') > -1 && key !== '$not') {\n operatorValue = 'endswith';\n ruleValue = stringValue.replace('$', '');\n type = 'string';\n }\n for (var _i = 0, _a = this.parent.columns; _i < _a.length; _i++) {\n var column = _a[_i];\n if (column.field === condition) {\n fieldType = column.type;\n break;\n }\n }\n if (!isNaN(Date.parse(stringValue)) || fieldType === 'date') { // Date type operators\n operatorValue = operatorValue || this.getOperatorFromMongoOperator(key);\n type = 'date';\n ruleValue = stringValue;\n }\n }\n }\n }\n else if (value && typeof (value) === 'string' && !isNaN(Date.parse(value))) {\n operatorValue = 'equal';\n ruleValue = value;\n type = 'date';\n }\n else if (typeof (value) === 'string' && value !== '' && value !== 'true' && value !== 'false') {\n operatorValue = 'equal';\n ruleValue = value;\n type = 'string';\n }\n else if (typeof (value) === 'string' && value === '') {\n operatorValue = 'isempty';\n ruleValue = value;\n type = 'string';\n }\n if (betweenOperatorArray && betweenOperatorArray.length > 1) { // between opertor value\n rule = { field: condition, label: condition, value: betweenOperatorArray, operator: operatorValue, type: type };\n }\n else if (inOperatorArray && inOperatorArray.length > 1) { // in operator value\n rule = { field: condition, label: condition, value: inOperatorArray, operator: operatorValue, type: type };\n }\n else {\n rule = { field: condition, label: condition, value: ruleValue, operator: operatorValue, type: type };\n }\n rules.push(rule);\n operatorValue = '';\n }\n }\n };\n QueryLibrary.prototype.convertParamSqlToSql = function (sql) {\n var paramSql = sql.sql;\n var paramValues = sql.params;\n var parts = paramSql.split('?');\n var normalSql = parts[0];\n for (var i = 0; i < paramValues.length; i++) {\n normalSql += (typeof (paramValues[i]) === 'string' ? \"'\" + paramValues[i] + \"'\" + parts[i + 1] : paramValues[i] + parts[i + 1]);\n }\n if (normalSql.length >= 2 && normalSql[0] === '(' && normalSql[normalSql.length - 1] === ')') {\n normalSql = normalSql.slice(1, -1);\n }\n normalSql = normalSql.replace(/!= ''(?! =)/g, 'IS NOT EMPTY').replace(/= ''/g, 'IS EMPTY');\n return normalSql;\n };\n QueryLibrary.prototype.convertNamedParamSqlToSql = function (sql) {\n var namedParamSql = sql.sql;\n var params = sql.params;\n var normalSql = namedParamSql;\n Object.keys(params).forEach(function (paramName) {\n var paramValue = params[paramName];\n paramName = ':' + paramName;\n normalSql = normalSql.replace(paramName, typeof (paramValue) === 'string' ? \"'\" + paramValue + \"'\" : String(paramValue));\n });\n if (normalSql.length >= 2 && normalSql[0] === '(' && normalSql[normalSql.length - 1] === ')') {\n normalSql = normalSql.slice(1, -1);\n }\n normalSql = normalSql.replace(/!= ''(?! =)/g, 'IS NOT EMPTY').replace(/= ''/g, 'IS EMPTY');\n return normalSql;\n };\n QueryLibrary.prototype.getParameterSql = function (qbrule) {\n var qbRule = extend({}, qbrule, null, true);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var value = this.updateRuleValue(qbRule, false);\n return this.getParameterSQLVal(this.parent.getSqlFromRules(qbRule), value['ruleVal']);\n };\n QueryLibrary.prototype.getNamedParameterSql = function (qbrule) {\n var qbRule = extend({}, qbrule, null, true);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var value = this.updateRuleValue(qbRule, true);\n return this.getNamedParameterSQLVal(this.parent.getSqlFromRules(qbRule), value['namedRuleVal']);\n };\n QueryLibrary.prototype.getParameterSQLVal = function (content, ruleValue) {\n var replacedString = content.replace(/[%']/g, '');\n return { sql: '(' + replacedString + ')', params: ruleValue };\n };\n QueryLibrary.prototype.getNamedParameterSQLVal = function (content, ruleValue) {\n var replacedString = content.replace(/[%']/g, '');\n return { sql: '(' + replacedString + ')', params: ruleValue };\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n QueryLibrary.prototype.updateRuleValue = function (rule, isNamedParameter) {\n var ruleVal = [];\n var namedRuleVal = {};\n var namedParameters = [];\n return this.updateValue(rule.rules, isNamedParameter, ruleVal, namedRuleVal, namedParameters);\n };\n QueryLibrary.prototype.updateValue = function (rules, isNamedParameter, ruleVal, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n namedRuleVal, namedParameters) {\n if (isNullOrUndefined(rules)) {\n return { ruleVal: ruleVal, namedRuleVal: namedRuleVal };\n }\n for (var i = 0; i < rules.length; i++) {\n if (rules[i].rules) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var value = this.updateValue(rules[i].rules, isNamedParameter, ruleVal, namedRuleVal, namedParameters);\n ruleVal = value['ruleVal'];\n namedRuleVal = value['namedRuleVal'];\n }\n else {\n var namedField = void 0;\n if (rules[i].value instanceof Array) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n for (var j = 0; j < (rules[i].value).length; j++) {\n if (isNamedParameter) {\n namedField = this.getNamedParameter(rules[i].field, namedParameters);\n }\n if (!isNullOrUndefined(rules[i].value[j])) {\n if (rules[i].type === 'string' || rules[i].type === 'date') {\n if (isNamedParameter) {\n namedRuleVal[namedField] = rules[i].value[j];\n }\n else {\n ruleVal.push(rules[i].value[j]);\n }\n }\n else {\n if (isNamedParameter) {\n namedRuleVal[namedField] = rules[i].value[j];\n }\n else {\n ruleVal.push(rules[i].value[j]);\n }\n }\n }\n if (isNamedParameter) {\n rules[i].value[j] = ':' + namedField;\n }\n else {\n rules[i].value[j] = '?';\n }\n }\n }\n else {\n if (isNamedParameter) {\n namedField = this.getNamedParameter(rules[i].field, namedParameters);\n }\n if (rules[i].operator.indexOf('null') < 1) {\n if (rules[i].type !== 'string' || (rules[i].type === 'string' && (rules[i].value !== '' || rules[i].value === 0))) {\n if (rules[i].type === 'string' || rules[i].type === 'date') {\n if (rules[i].operator.indexOf('empty') < 1) {\n var value = rules[i].value.toString();\n switch (rules[i].operator) {\n case 'startswith':\n case 'notstartswith':\n value = value + '%';\n break;\n case 'endswith':\n case 'notendswith':\n value = '%' + value;\n break;\n case 'contains':\n case 'notcontains':\n value = '%' + value + '%';\n break;\n }\n if (isNamedParameter) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n namedRuleVal[namedField] = value;\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ruleVal.push(value);\n }\n }\n else {\n if (isNamedParameter) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n namedRuleVal[namedField] = '';\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ruleVal.push('');\n }\n if (rules[i].operator === 'isempty') {\n rules[i].operator = 'equal';\n }\n else {\n rules[i].operator = 'notequal';\n }\n }\n }\n else {\n if (!isNullOrUndefined(rules[i].value)) {\n if (isNamedParameter) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n namedRuleVal[namedField] = rules[i].value;\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ruleVal.push(rules[i].value);\n }\n }\n }\n if (isNamedParameter) {\n rules[i].value = ':' + namedField;\n }\n else {\n rules[i].value = '?';\n }\n }\n }\n }\n }\n }\n return { ruleVal: ruleVal, namedRuleVal: namedRuleVal };\n };\n QueryLibrary.prototype.getNamedParameter = function (field, namedParameters) {\n var newField = null;\n if (namedParameters.length > 0) {\n for (var i = namedParameters.length - 1; i >= 0; i--) {\n var currField = namedParameters[i];\n if (currField.indexOf(field) > -1) {\n var idx = parseInt(currField.split('_')[1], 10) + 1;\n newField = field + '_' + idx;\n namedParameters.push(newField);\n break;\n }\n }\n }\n if (!newField) {\n newField = field + '_1';\n namedParameters.push(newField);\n }\n return newField;\n };\n QueryLibrary.prototype.getModuleName = function () {\n return 'query-library';\n };\n return QueryLibrary;\n}());\nexport { QueryLibrary };\n"],"names":["this","templateCompiler"],"mappings":"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"}