@syncfusion/ej2-inplace-editor 20.4.48 → 20.4.54
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.
- package/CHANGELOG.md +10 -0
- package/dist/ej2-inplace-editor.min.js +2 -2
- package/dist/ej2-inplace-editor.umd.min.js +2 -2
- package/dist/ej2-inplace-editor.umd.min.js.map +1 -1
- package/dist/es6/ej2-inplace-editor.es2015.js +56 -52
- package/dist/es6/ej2-inplace-editor.es2015.js.map +1 -1
- package/dist/es6/ej2-inplace-editor.es5.js +57 -53
- package/dist/es6/ej2-inplace-editor.es5.js.map +1 -1
- package/dist/global/ej2-inplace-editor.min.js +2 -2
- package/dist/global/ej2-inplace-editor.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +15 -15
- package/src/inplace-editor/base/inplace-editor.js +57 -53
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ej2-inplace-editor.es2015.js","sources":["../src/es6/inplace-editor/base/util.js","../src/es6/inplace-editor/base/events.js","../src/es6/inplace-editor/base/models.js","../src/es6/inplace-editor/base/classes.js","../src/es6/inplace-editor/base/inplace-editor.js","../src/es6/inplace-editor/base/index.js","../src/es6/inplace-editor/modules/base-module.js","../src/es6/inplace-editor/modules/auto-complete.js","../src/es6/inplace-editor/modules/color-picker.js","../src/es6/inplace-editor/modules/combo-box.js","../src/es6/inplace-editor/modules/date-range-picker.js","../src/es6/inplace-editor/modules/multi-select.js","../src/es6/inplace-editor/modules/rte.js","../src/es6/inplace-editor/modules/slider.js","../src/es6/inplace-editor/modules/time-picker.js","../src/es6/inplace-editor/modules/index.js","../src/es6/inplace-editor/index.js","../src/es6/index.js"],"sourcesContent":["import { isNullOrUndefined as isNOU, Internationalization, isBlazor } from '@syncfusion/ej2-base';\n/**\n * Exports util methods used by In-place editor.\n */\nconst intl = new Internationalization();\n/**\n * @param {string} type - specifies the string type\n * @param {valueType} val - specifies the value type\n * @param {modelType} model - specifies the model type\n * @returns {string} - returns the string\n */\nexport function parseValue(type, val, model) {\n if (isNOU(val) || val === '') {\n return '';\n }\n let result;\n let tempFormat;\n switch (type) {\n case 'Color': {\n const hex = val;\n result = (hex.length > 7) ? hex.slice(0, -2) : hex;\n break;\n }\n case 'Date':\n tempFormat = model.format;\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' });\n break;\n case 'DateRange': {\n tempFormat = model.format;\n const date = val;\n result = intl.formatDate(date[0], { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' }) + ' - '\n + intl.formatDate(date[1], { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' });\n break;\n }\n case 'DateTime':\n tempFormat = model.format;\n if (isNOU(tempFormat) || tempFormat === '') {\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' }) + ' '\n + intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 't' : 'hm' });\n }\n else {\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' });\n }\n break;\n case 'Time':\n tempFormat = model.format;\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 't' : 'hm' });\n break;\n case 'Numeric': {\n tempFormat = isNOU(model.format) ? 'n2' :\n model.format;\n const tempVal = isNOU(val) ? null : (typeof (val) === 'number' ? val : intl.parseNumber(val));\n result = intl.formatNumber(tempVal, { format: tempFormat });\n break;\n }\n default:\n result = val.toString();\n break;\n }\n return result;\n}\n/**\n * @param {string} type - specifies the string value\n * @param {valueType} val - specifies the value type\n * @returns {valueType} - returns the value type\n */\nexport function getCompValue(type, val) {\n if (isNOU(val) || val === '') {\n return val;\n }\n if ((type === 'Date' || type === 'Time' || type === 'DateTime') && typeof (val) === 'string') {\n val = new Date(val);\n }\n else if (type === 'DateRange') {\n if (typeof (val) === 'object' && typeof (val[0]) === 'string') {\n val = [new Date(val[0]), new Date(val[1])];\n }\n else if (typeof (val) === 'string') {\n const temp = val.split('-');\n val = [new Date(temp[0]), new Date(temp[1])];\n }\n }\n return val;\n}\n/**\n * @param {string} value - specifies the string value\n * @returns {string} - returns the string\n * @hidden\n */\nexport function encode(value) {\n const data = [];\n for (let i = value.length - 1; i >= 0; i--) {\n data.unshift(['&#', value[i].charCodeAt(0), ';'].join(''));\n }\n return data.join('');\n}\n","/**\n * In-place Editor events defined here.\n */\n/** @hidden */\nexport const render = 'render';\n/** @hidden */\nexport const update = 'update';\n/** @hidden */\nexport const destroy = 'destroy';\n/** @hidden */\nexport const setFocus = 'set-focus';\n/** @hidden */\nexport const accessValue = 'access-value';\n/** @hidden */\nexport const destroyModules = 'destroy-modules';\n/** @hidden */\nexport const showPopup = 'show-popup';\n","var __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};\nimport { ChildProperty, Property } from '@syncfusion/ej2-base';\n/**\n * Configures the popup settings of the In-place editor.\n */\nexport class PopupSettings extends ChildProperty {\n}\n__decorate([\n Property('')\n], PopupSettings.prototype, \"title\", void 0);\n__decorate([\n Property(null)\n], PopupSettings.prototype, \"model\", void 0);\n/**\n * @hidden\n */\nexport const modulesList = {\n /* eslint-disable */\n 'AutoComplete': 'auto-complete',\n 'Color': 'color-picker',\n 'ComboBox': 'combo-box',\n 'DateRange': 'date-range-picker',\n 'MultiSelect': 'multi-select',\n 'RTE': 'rte',\n 'Slider': 'slider',\n 'Time': 'time-picker'\n /* eslint-enable */\n};\n/**\n * @hidden\n */\n// eslint-disable-next-line\nexport let localeConstant = {\n /* eslint-disable */\n 'Click': { 'editAreaClick': 'Click to edit' },\n 'DblClick': { 'editAreaDoubleClick': 'Double click to edit' },\n 'EditIconClick': { 'editAreaClick': 'Click to edit' }\n /* eslint-enable */\n};\n","/**\n * In-place Editor classes defined here.\n */\n/** @hidden */\nexport const ROOT = 'e-inplaceeditor';\n/** @hidden */\nexport const ROOT_TIP = 'e-inplaceeditor-tip';\n/** @hidden */\nexport const VALUE_WRAPPER = 'e-editable-value-wrapper';\n/** @hidden */\nexport const VALUE = 'e-editable-value';\n/** @hidden */\nexport const OVERLAY_ICON = 'e-editable-overlay-icon';\n/** @hidden */\nexport const TIP_TITLE = 'e-editable-tip-title';\n/** @hidden */\nexport const TITLE = 'e-editable-title';\n/** @hidden */\nexport const INLINE = 'e-editable-inline';\n/** @hidden */\nexport const POPUP = 'e-editable-popup';\n/** @hidden */\nexport const WRAPPER = 'e-editable-wrapper';\n/** @hidden */\nexport const LOADING = 'e-editable-loading';\n/** @hidden */\nexport const FORM = 'e-editable-form';\n/** @hidden */\nexport const CTRL_GROUP = 'e-component-group';\n/** @hidden */\nexport const INPUT = 'e-editable-component';\n/** @hidden */\nexport const BUTTONS = 'e-editable-action-buttons';\n/** @hidden */\nexport const EDITABLE_ERROR = 'e-editable-error';\n/** @hidden */\nexport const ELEMENTS = 'e-editable-elements';\n/** @hidden */\nexport const OPEN = 'e-editable-open';\n/** @hidden */\nexport const BTN_SAVE = 'e-btn-save';\n/** @hidden */\nexport const BTN_CANCEL = 'e-btn-cancel';\n/** @hidden */\nexport const RTE_SPIN_WRAP = 'e-rte-spin-wrap';\n/** @hidden */\nexport const CTRL_OVERLAY = 'e-control-overlay';\n/** @hidden */\nexport const DISABLE = 'e-disable';\n/** @hidden */\nexport const ICONS = 'e-icons';\n/** @hidden */\nexport const PRIMARY = 'e-primary';\n/** @hidden */\nexport const SHOW = 'e-show';\n/** @hidden */\nexport const HIDE = 'e-hide';\n/** @hidden */\nexport const RTL = 'e-rtl';\n/** @hidden */\nexport const ERROR = 'e-error';\n/** @hidden */\nexport const LOAD = 'e-loading';\n","var __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};\nimport { Component, NotifyPropertyChanges, Property, Event, select } from '@syncfusion/ej2-base';\nimport { detach, addClass, removeClass, EventHandler, setStyleAttribute, Complex } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU, closest, extend, L10n, compile, Browser, Touch } from '@syncfusion/ej2-base';\nimport { updateBlazorTemplate, resetBlazorTemplate, SanitizeHtmlHelper, getValue, isBlazor } from '@syncfusion/ej2-base';\nimport { DataManager, UrlAdaptor, Query, WebApiAdaptor, ODataV4Adaptor, Predicate } from '@syncfusion/ej2-data';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { DatePicker, DateTimePicker } from '@syncfusion/ej2-calendars';\nimport { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport { NumericTextBox, TextBox } from '@syncfusion/ej2-inputs';\nimport { FormValidator, MaskedTextBox } from '@syncfusion/ej2-inputs';\nimport { DropDownList } from '@syncfusion/ej2-dropdowns';\n/* Helper modules */\nimport * as events from './events';\nimport * as classes from './classes';\n/* Models */\nimport { PopupSettings, modulesList, localeConstant } from './models';\n/* Interface */\nimport { parseValue, getCompValue, encode } from './util';\n/**\n * ```html\n * * The In-place editor control is used to edit an element in a place and to update the value in server.\n * <div id='element' />\n * <script>\n * var editorObj = new InPlaceEditor();\n * editorObj.appendTo('#element');\n * </script>\n * ```\n */\nlet InPlaceEditor = class InPlaceEditor extends Component {\n /**\n * Initializes a new instance of the In-place editor class.\n *\n * @param {InPlaceEditorModel} options - Specifies In-place editor model properties as options.\n * @param {string} element - Specifies the element for which In-place editor applies.\n */\n constructor(options, element) {\n super(options, element);\n this.needsID = true;\n }\n initializeValue() {\n this.initRender = true;\n this.isTemplate = false;\n this.isVue = false;\n this.isExtModule = false;\n this.submitBtn = undefined;\n this.cancelBtn = undefined;\n this.isClearTarget = false;\n this.btnElements = undefined;\n this.dataManager = undefined;\n this.oldValue = undefined;\n this.divComponents = ['RTE', 'Slider'];\n this.clearComponents = ['AutoComplete', 'Mask', 'Text'];\n this.dateType = ['Date', 'DateTime', 'Time'];\n this.inputDataEle = ['Date', 'DateTime', 'DateRange', 'Time', 'Numeric'];\n this.dropDownEle = ['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'];\n this.moduleList = ['AutoComplete', 'Color', 'ComboBox', 'DateRange', 'MultiSelect', 'RTE', 'Slider', 'Time'];\n }\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n preRender() {\n this.initializeValue();\n this.onScrollResizeHandler = this.scrollResizeHandler.bind(this);\n if (isNOU(this.model)) {\n this.setProperties({ model: {} }, true);\n }\n this.titleEle = this.createElement('div', { className: classes.TITLE });\n if (!isNOU(this.popupSettings.model) && this.popupSettings.model.afterOpen) {\n this.afterOpenEvent = this.popupSettings.model.afterOpen;\n }\n }\n /**\n * To Initialize the In-place editor rendering\n *\n * @returns {void}\n * @private\n */\n render() {\n if (isNOU(this.element.getAttribute('tabindex'))) {\n this.element.setAttribute('tabindex', '0');\n }\n this.checkIsTemplate();\n this.disable(this.disabled);\n this.updateAdaptor();\n this.appendValueElement();\n this.updateValue();\n // eslint-disable-next-line\n this.textOption === 'Never' ?\n this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)))\n : this.renderInitialValue();\n this.wireEvents();\n this.setRtl(this.enableRtl);\n this.enableEditor(this.enableEditMode, true);\n this.setClass('add', this.cssClass);\n this.renderComplete();\n }\n setClass(action, val) {\n if (!this.isEmpty(val)) {\n const allClassName = val.split(' ');\n for (let i = 0; i < allClassName.length; i++) {\n if (allClassName[i].trim() !== '') {\n // eslint-disable-next-line\n action === 'add' ? addClass([this.element], [allClassName[i]]) : removeClass([this.element], [allClassName[i]]);\n }\n }\n }\n }\n appendValueElement() {\n this.valueWrap = this.createElement('div', { id: this.element.id + '_wrap', className: classes.VALUE_WRAPPER });\n if (!isBlazor()) {\n this.element.innerHTML = '';\n }\n this.valueEle = this.createElement('span', { className: classes.VALUE });\n this.editIcon = this.createElement('span', {\n className: classes.OVERLAY_ICON + ' ' + classes.ICONS,\n attrs: { 'title': this.getLocale({ editIcon: 'Click to edit' }, 'editIcon') }\n });\n this.valueWrap.appendChild(this.valueEle);\n this.valueWrap.appendChild(this.editIcon);\n this.element.appendChild(this.valueWrap);\n }\n renderInitialValue() {\n if (['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'].indexOf(this.type) > -1\n && !isNOU(this.value) && !this.isEmpty(this.value.toString()) && !isNOU(this.model.fields)\n && !isNOU(this.model.dataSource)) {\n this.renderValue(this.getLocale({ loadingText: 'Loading...' }, 'loadingText'));\n this.valueWrap.classList.add(classes.LOAD);\n createSpinner({ target: this.valueWrap, width: 10 });\n showSpinner(this.valueWrap);\n this.getInitFieldMapValue();\n }\n else {\n this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)));\n }\n }\n getInitFieldMapValue() {\n const model = this.model;\n const mText = model.fields.text;\n const mVal = model.fields.value;\n const query = isNOU(model.query) ? new Query() : model.query;\n if (model.dataSource instanceof DataManager) {\n model.dataSource.executeQuery(this.getInitQuery(model, query)).then((e) => {\n // eslint-disable-next-line\n this.updateInitValue(mText, mVal, e.result);\n });\n }\n else {\n this.updateInitValue(mText, mVal, new DataManager(model.dataSource).executeLocal(\n // eslint-disable-next-line\n this.getInitQuery(model, query)));\n }\n }\n getInitQuery(model, query) {\n let predicate;\n const mVal = model.fields.value;\n const value = this.value;\n if (this.type !== 'MultiSelect' || typeof (this.value) !== 'object') {\n predicate = new Predicate(mVal, 'equal', this.value);\n }\n else {\n let i = 0;\n for (const val of value) {\n predicate = ((i === 0) ? predicate = new Predicate(mVal, 'equal', val) : predicate.or(mVal, 'equal', val));\n i++;\n }\n }\n return query.where(predicate);\n }\n // eslint-disable-next-line\n updateInitValue(mText, mVal, result) {\n if (result.length <= 0) {\n return;\n }\n if (result.length === 1) {\n this.valueEle.innerHTML = this.checkValue(getValue((isNOU(mText) ? mVal : mText), result[0]));\n }\n else {\n const val = [];\n for (const obj of result) {\n val.push(getValue((isNOU(mText) ? mVal : mText), obj));\n }\n this.valueEle.innerHTML = this.checkValue(val.toString());\n }\n hideSpinner(this.valueWrap);\n this.valueWrap.classList.remove(classes.LOAD);\n }\n renderValue(val) {\n // eslint-disable-next-line\n this.enableHtmlSanitizer && this.type !== 'RTE' && this.type !== 'MultiSelect' ? this.valueEle.innerText = val :\n (this.valueEle.innerHTML = this.enableHtmlParse ? val : encode(val));\n if (this.type === 'Color') {\n setStyleAttribute(this.valueEle, { 'color': val });\n }\n if (this.mode === 'Inline') {\n if (this.isEditorOpen()) {\n removeClass([this.valueWrap], [classes.HIDE]);\n }\n }\n }\n isEditorOpen() {\n if (this.isVue && (this.enableEditMode || (!isNOU(this.valueWrap) &&\n !(this.valueWrap.classList.contains(classes.HIDE) || this.valueWrap.classList.contains('e-tooltip'))))) {\n return false;\n }\n else {\n return true;\n }\n }\n renderEditor() {\n this.prevValue = this.value;\n this.beginEditArgs = { mode: this.mode, cancelFocus: false, cancel: false };\n this.trigger('beginEdit', this.beginEditArgs);\n if (this.beginEditArgs.cancel) {\n return;\n }\n // eslint-disable-next-line\n let tipOptions = undefined;\n const target = select('.' + classes.VALUE_WRAPPER, this.element);\n if (this.editableOn !== 'EditIconClick') {\n target.parentElement.removeAttribute('title');\n }\n if (this.valueWrap.classList.contains(classes.OPEN)) {\n return;\n }\n if (this.mode === 'Inline') {\n addClass([this.valueWrap], [classes.HIDE]);\n this.inlineWrapper = this.createElement('div', { className: classes.INLINE });\n this.element.appendChild(this.inlineWrapper);\n if (['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'].indexOf(this.type) > -1) {\n this.checkRemoteData(this.model);\n }\n else {\n this.renderAndOpen();\n }\n }\n else {\n if (!isNOU(this.popupSettings.model) && this.popupSettings.model.afterOpen) {\n this.popupSettings.model.afterOpen = this.afterOpenHandler.bind(this);\n }\n const content = this.createElement('div', { className: classes.POPUP });\n if (!this.isEmpty(this.popupSettings.title)) {\n this.titleEle.innerHTML = this.popupSettings.title;\n content.appendChild(this.titleEle);\n }\n tipOptions = {\n content: content, opensOn: 'Custom',\n enableRtl: this.enableRtl, cssClass: classes.ROOT_TIP,\n afterOpen: this.afterOpenHandler.bind(this)\n };\n content.appendChild(this.renderControl(document.body));\n extend(tipOptions, this.popupSettings.model, tipOptions, true);\n this.tipObj = new Tooltip(tipOptions);\n this.tipObj.appendTo(target);\n this.tipObj.open(target);\n }\n if (this.actionOnBlur !== 'Ignore') {\n this.wireDocEvent();\n }\n addClass([this.valueWrap], [classes.OPEN]);\n this.setProperties({ enableEditMode: true }, true);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n }\n renderAndOpen() {\n this.renderControl(this.inlineWrapper);\n this.afterOpenHandler(null);\n }\n checkRemoteData(model) {\n if (model.dataSource instanceof DataManager) {\n model.dataBound = () => {\n this.afterOpenHandler(null);\n };\n this.renderControl(this.inlineWrapper);\n if ((isNOU(model.value) && isNOU(this.value)) || (model.value === this.value\n && (!isNOU(model.value) && model.value.length === 0))) {\n this.showDropDownPopup();\n }\n }\n else {\n this.renderAndOpen();\n }\n }\n showDropDownPopup() {\n if (this.type === 'DropDownList') {\n if (!this.model.allowFiltering) {\n this.componentObj.focusIn();\n }\n this.componentObj.showPopup();\n }\n else {\n if (this.isExtModule) {\n this.notify(((this.type === 'MultiSelect') ? events.setFocus : events.showPopup), {});\n }\n }\n }\n setAttribute(ele, attr) {\n const value = this.name && this.name.length !== 0 ? this.name : this.element.id;\n attr.forEach((val) => {\n ele.setAttribute(val, ((val === 'id') ? (value + '_editor') : value));\n });\n }\n renderControl(target) {\n let ele;\n this.containerEle = this.createElement('div', { className: classes.WRAPPER });\n this.loader = this.createElement('div', { className: classes.LOADING });\n this.formEle = this.createElement('form', { className: classes.FORM });\n const ctrlGroupEle = this.createElement('div', { className: classes.CTRL_GROUP });\n const inputWrap = this.createElement('div', { className: classes.INPUT });\n target.appendChild(this.containerEle);\n this.loadSpinner();\n this.containerEle.appendChild(this.formEle);\n this.formEle.appendChild(ctrlGroupEle);\n if (this.isTemplate) {\n this.appendTemplate(inputWrap, this.template);\n }\n else {\n if (Array.prototype.indexOf.call(this.divComponents, this.type) > -1) {\n ele = this.createElement('div');\n this.setAttribute(ele, ['id']);\n }\n else {\n ele = this.createElement('input');\n this.setAttribute(ele, ['id', 'name']);\n }\n this.componentRoot = ele;\n inputWrap.appendChild(ele);\n inputWrap.appendChild(this.loader);\n }\n ctrlGroupEle.appendChild(inputWrap);\n ctrlGroupEle.appendChild(this.createElement('div', { className: classes.EDITABLE_ERROR }));\n this.appendButtons(this.formEle);\n if (!this.isTemplate) {\n this.renderComponent(ele);\n }\n this.removeSpinner();\n if (this.submitOnEnter) {\n this.wireEditorKeyDownEvent(this.containerEle);\n }\n return this.containerEle;\n }\n appendButtons(trg) {\n if (this.showButtons && trg) {\n this.btnElements = this.renderButtons();\n trg.appendChild(this.btnElements);\n this.wireBtnEvents();\n }\n }\n renderButtons() {\n const btnWrap = this.createElement('div', { className: classes.BUTTONS });\n const primary = (!isNOU(this.saveButton.content) && this.saveButton.content.length !== 0) ? (' ' + classes.PRIMARY) : '';\n this.submitBtn = this.createButtons({\n constant: 'save', type: 'submit', container: btnWrap,\n title: { save: 'Save' }, model: this.saveButton,\n className: classes.BTN_SAVE + primary\n });\n this.cancelBtn = this.createButtons({\n type: 'button', constant: 'cancel', title: { cancel: 'Cancel' },\n container: btnWrap, model: this.cancelButton,\n className: classes.BTN_CANCEL\n });\n return btnWrap;\n }\n createButtons(args) {\n let btnObj = undefined;\n if (Object.keys(args.model).length > 0) {\n const btnEle = this.createElement('button', {\n className: args.className,\n attrs: { 'type': args.type, 'title': (args.constant == \"save\") ? (isNOU(this.saveButton.content) ? this.getLocale(args.title, args.constant) : this.saveButton.content) : (isNOU(this.cancelButton.content) ? this.getLocale(args.title, args.constant) : this.cancelButton.content) }\n });\n args.container.appendChild(btnEle);\n btnObj = new Button(args.model, btnEle);\n }\n return btnObj;\n }\n renderComponent(ele) {\n this.isExtModule = (Array.prototype.indexOf.call(this.moduleList, this.type) > -1) ? true : false;\n let classProp;\n if (!isNOU(this.model.cssClass)) {\n classProp = this.model.cssClass.indexOf(classes.ELEMENTS) < 0 ?\n this.model.cssClass === '' ? classes.ELEMENTS : this.model.cssClass + ' ' + classes.ELEMENTS :\n this.model.cssClass;\n }\n else {\n classProp = classes.ELEMENTS;\n }\n extend(this.model, this.model, {\n cssClass: classProp, enableRtl: this.enableRtl, locale: this.locale, change: this.changeHandler.bind(this)\n });\n if (!isNOU(this.value)) {\n this.updateModelValue(false);\n }\n if (this.isExtModule) {\n this.notify(events.render, { module: modulesList[this.type], target: ele, type: this.type });\n }\n else {\n if (isNOU(this.model.showClearButton) && !isBlazor()) {\n this.model.showClearButton = true;\n }\n switch (this.type) {\n case 'Date':\n this.componentObj = new DatePicker(this.model);\n break;\n case 'DateTime':\n this.componentObj = new DateTimePicker(this.model);\n break;\n case 'DropDownList':\n this.componentObj = new DropDownList(this.model);\n break;\n case 'Mask':\n this.componentObj = new MaskedTextBox(this.model);\n break;\n case 'Numeric':\n if (this.model.value) {\n // eslint-disable-next-line no-useless-escape\n const expRegex = new RegExp('[eE][\\-+]?([0-9]+)');\n if (expRegex.test(this.model.value)) {\n this.model.value = this.model.value;\n }\n else {\n this.model.value = this.model.value.toString().replace(/[`~!@#$%^&*()_|\\=?;:'\",<>\\{\\}\\[\\]\\\\\\/]/gi, '');\n }\n }\n this.componentObj = new NumericTextBox(this.model);\n break;\n case 'Text':\n this.componentObj = new TextBox(this.model);\n break;\n }\n this.componentObj.appendTo(ele);\n }\n }\n updateAdaptor() {\n switch (this.adaptor) {\n case 'UrlAdaptor':\n this.dataAdaptor = new UrlAdaptor;\n break;\n case 'WebApiAdaptor':\n this.dataAdaptor = new WebApiAdaptor;\n break;\n case 'ODataV4Adaptor':\n this.dataAdaptor = new ODataV4Adaptor;\n break;\n }\n }\n loadSpinner(callType) {\n addClass([this.loader], [classes.SHOW]);\n if (callType === 'validate' && (this.type === 'RTE' || this.type === 'Color' || this.type === 'Slider')) {\n addClass([this.loader], [classes.RTE_SPIN_WRAP]);\n addClass([this.getEditElement()], [classes.CTRL_OVERLAY]);\n this.spinObj = { target: this.loader };\n }\n else {\n this.spinObj = { target: this.loader, width: Browser.isDevice ? '16px' : '14px' };\n }\n if (this.formEle) {\n addClass([this.formEle], [classes.LOAD]);\n }\n if (this.btnElements) {\n addClass([this.btnElements], [classes.HIDE]);\n }\n setStyleAttribute(this.loader, { 'width': '100%' });\n createSpinner(this.spinObj);\n showSpinner(this.spinObj.target);\n }\n removeSpinner(callType) {\n this.loader.removeAttribute('style');\n hideSpinner(this.spinObj.target);\n detach(this.spinObj.target.firstChild);\n if (callType === 'submit' && (this.type === 'RTE' || this.type === 'Color' || this.type === 'Slider')) {\n removeClass([this.loader], [classes.RTE_SPIN_WRAP]);\n removeClass([this.getEditElement()], [classes.CTRL_OVERLAY]);\n }\n if (this.formEle) {\n removeClass([this.formEle], [classes.LOAD]);\n }\n if (this.btnElements) {\n removeClass([this.btnElements], [classes.HIDE]);\n }\n removeClass([this.loader], [classes.SHOW]);\n }\n getEditElement() {\n return select('.' + classes.ELEMENTS, this.formEle);\n }\n // eslint-disable-next-line\n getLocale(prop, val) {\n return new L10n('inplace-editor', prop, this.locale).getConstant(val);\n }\n checkValue(val) {\n return (!this.isEmpty(val)) ? val : this.emptyText;\n }\n extendModelValue(val) {\n // eslint-disable-next-line\n const model = this.model;\n extend(model, { value: val });\n this.setProperties({ model: model }, true);\n }\n updateValue() {\n this.oldValue = this.value;\n if (this.enableHtmlSanitizer && typeof (this.value) === 'string') {\n this.oldValue = this.sanitizeHelper(this.value);\n }\n if (!isNOU(this.value)) {\n this.setProperties({ value: getCompValue(this.type, this.oldValue) }, true);\n this.extendModelValue(getCompValue(this.type, this.oldValue));\n }\n }\n updateModelValue(updateOldValue) {\n if (this.type === 'MultiSelect' && !this.isEmpty(this.value)) {\n this.model.value = !updateOldValue ? this.value.slice() : this.oldValue.slice();\n }\n else {\n this.model.value = !updateOldValue ? this.value : this.oldValue;\n }\n }\n setValue() {\n if (this.isExtModule) {\n this.notify(events.update, { type: this.type });\n }\n else if (this.componentObj) {\n if (this.type === 'Numeric' && this.componentObj.value === null) {\n this.componentObj.setProperties({ value: null }, true);\n }\n this.setProperties({ value: this.componentObj.value }, true);\n this.extendModelValue(this.componentObj.value);\n }\n }\n getDropDownsValue(display) {\n let value;\n if (Array.prototype.indexOf.call(this.dropDownEle, this.type) > -1 && this.type !== 'MultiSelect') {\n value = display ? select('.e-' + this.type.toLocaleLowerCase(), this.containerEle).value :\n this.value.toString();\n }\n else if (this.type === 'MultiSelect') {\n this.notify(events.accessValue, { type: this.type });\n value = display ? this.printValue : this.value.join();\n }\n return value;\n }\n getSendValue() {\n if (this.isEmpty(this.value)) {\n return '';\n }\n if (Array.prototype.indexOf.call(this.dropDownEle, this.type) > -1) {\n return this.getDropDownsValue(false);\n }\n else if (Array.prototype.indexOf.call(this.dateType, this.type) > -1) {\n return this.value.toISOString();\n }\n else if (this.type === 'DateRange') {\n return this.value[0].toISOString() + ' - ' + this.value[1].toISOString();\n }\n else {\n return this.value.toString();\n }\n }\n getRenderValue() {\n if (this.type === 'Mask' && this.componentObj.value.length !== 0) {\n return this.componentObj.getMaskedValue();\n }\n else if (Array.prototype.indexOf.call(this.inputDataEle, this.type) > -1) {\n return this.componentRoot.value;\n }\n else if (Array.prototype.indexOf.call(this.dropDownEle, this.type) > -1) {\n return this.getDropDownsValue(true);\n }\n else {\n return parseValue(this.type, this.value, this.model);\n }\n }\n setRtl(value) {\n // eslint-disable-next-line\n value ? addClass([this.element], [classes.RTL]) : removeClass([this.element], [classes.RTL]);\n }\n setFocus() {\n if (this.isTemplate) {\n return;\n }\n // eslint-disable-next-line\n this.isExtModule ? this.notify(events.setFocus, {}) : this.componentObj.element.focus();\n }\n removeEditor(isBlazorDestroy) {\n // eslint-disable-next-line\n const blazorContain = Object.keys(window);\n if (isBlazor() && !this.isStringTemplate) {\n resetBlazorTemplate(this.element.id + 'template', 'Template');\n }\n let tipEle;\n if (this.tipObj && this.formEle) {\n tipEle = closest(this.formEle, '.' + classes.ROOT_TIP);\n tipEle.classList.add(classes.HIDE);\n }\n this.unWireDocEvent();\n this.destroyComponents();\n this.formEle = undefined;\n if (!isNOU(select('.' + classes.INLINE, this.element))) {\n detach(this.inlineWrapper);\n this.inlineWrapper = undefined;\n }\n else if (this.tipObj) {\n if (this.type === 'MultiSelect') {\n EventHandler.remove(this.containerEle, 'mousedown', this.popMouseDown);\n EventHandler.remove(this.containerEle, 'click', this.popClickHandler);\n }\n this.tipObj.close();\n this.tipObj.destroy();\n this.tipObj = undefined;\n }\n this.containerEle = undefined;\n removeClass([this.valueWrap], [classes.OPEN, classes.HIDE]);\n if (!isBlazorDestroy) {\n this.setProperties({ enableEditMode: false }, true);\n }\n if (this.editableOn !== 'EditIconClick') {\n const titleConstant = (this.editableOn === 'DblClick') ? 'editAreaDoubleClick' : 'editAreaClick';\n if (!isNOU(this.valueWrap.parentElement)) {\n this.valueWrap.parentElement.setAttribute('title', this.getLocale(localeConstant[this.editableOn], titleConstant));\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate();\n }\n }\n destroyComponents() {\n if (this.showButtons) {\n this.destroyButtons();\n }\n if (this.isExtModule) {\n this.notify(events.destroyModules, {});\n }\n else {\n if (this.templateEle) {\n document.body.appendChild(this.templateEle);\n this.templateEle.style.display = 'none';\n this.templateEle = undefined;\n }\n if (!isNOU(this.componentObj)) {\n this.componentObj.destroy();\n this.componentObj = undefined;\n }\n }\n if (this.formValidate) {\n this.formValidate = undefined;\n }\n if (this.submitOnEnter && this.containerEle) {\n this.unWireEditorKeyDownEvent(this.containerEle);\n }\n }\n destroyButtons() {\n if (!isNOU(this.submitBtn)) {\n EventHandler.remove(this.submitBtn.element, 'mousedown', this.submitHandler);\n EventHandler.remove(this.submitBtn.element, 'click', this.submitPrevent);\n EventHandler.remove(this.submitBtn.element, 'keydown', this.btnKeyDownHandler);\n this.submitBtn.destroy();\n this.submitBtn = undefined;\n }\n if (!isNOU(this.cancelBtn)) {\n EventHandler.remove(this.cancelBtn.element, 'mousedown', this.cancelBtnClick);\n EventHandler.remove(this.cancelBtn.element, 'keydown', this.btnKeyDownHandler);\n this.cancelBtn.destroy();\n this.cancelBtn = undefined;\n }\n this.btnElements = undefined;\n }\n getQuery(params) {\n const query = new Query();\n Object.keys(params).forEach((key) => {\n query.addParams(key, params[key]);\n });\n return query;\n }\n sendValue() {\n const eventArgs = { data: { name: this.name, primaryKey: this.primaryKey, value: this.getSendValue() } };\n this.trigger('actionBegin', eventArgs, (actionBeginArgs) => {\n if (actionBeginArgs.cancel) {\n this.removeSpinner('submit');\n if (this.mode === 'Popup') {\n this.updateArrow();\n }\n }\n else {\n if (!this.isEmpty(this.url) && !this.isEmpty(this.primaryKey)\n && (this.initRender || (!this.initRender && this.prevValue !== this.value))) {\n this.dataManager = new DataManager({ url: this.url, adaptor: this.dataAdaptor });\n if (this.adaptor === 'UrlAdaptor') {\n this.dataManager.executeQuery(this.getQuery(actionBeginArgs.data), this.successHandler.bind(this), this.failureHandler.bind(this));\n }\n else {\n // eslint-disable-next-line\n const crud = this.dataManager.insert(actionBeginArgs.data);\n crud.then((e) => this.successHandler(e)).catch((e) => this.failureHandler(e));\n }\n }\n else {\n const eventArg = { data: {}, value: actionBeginArgs.data.value };\n this.triggerSuccess(eventArg);\n }\n this.dataManager = undefined;\n }\n });\n }\n isEmpty(value) {\n return (!isNOU(value) && value.length !== 0) ? false : true;\n }\n checkIsTemplate() {\n this.isTemplate = (!isNOU(this.template) && this.template !== '') ? true : false;\n }\n templateCompile(trgEle, tempStr) {\n let tempEle;\n // eslint-disable-next-line\n const blazorContain = Object.keys(window);\n if (typeof tempStr === 'string') {\n tempStr = tempStr.trim();\n }\n // eslint-disable-next-line\n const compiler = compile(tempStr);\n if (!isNOU(compiler)) {\n const isString = (isBlazor() &&\n !this.isStringTemplate && (tempStr).indexOf('<div>Blazor') === 0) ?\n this.isStringTemplate : true;\n tempEle = compiler({}, this, 'template', this.element.id + 'template', isString);\n }\n if (!isNOU(compiler) && tempEle.length > 0) {\n [].slice.call(tempEle).forEach((el) => {\n trgEle.appendChild(el);\n });\n if (isBlazor() && !this.isStringTemplate && (tempStr).indexOf('<div>Blazor') === 0) {\n updateBlazorTemplate(this.element.id + 'template', 'Template', this);\n }\n }\n }\n /**\n * @param {string} value - specifies the string value\n * @returns {string} - returns the string\n * @hidden\n */\n sanitizeHelper(value) {\n if (this.enableHtmlSanitizer) {\n const item = SanitizeHtmlHelper.beforeSanitize();\n const beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(item, item, beforeEvent);\n // eslint-disable-next-line\n this.trigger('beforeSanitizeHtml', item, (args) => {\n if (item.cancel && !isNOU(item.helper)) {\n value = item.helper(value);\n }\n else if (!item.cancel) {\n value = SanitizeHtmlHelper.serializeValue(item, value);\n }\n });\n }\n return value;\n }\n appendTemplate(trgEle, tempStr) {\n tempStr = typeof (tempStr) === 'string' ? this.sanitizeHelper(tempStr) : tempStr;\n this.setProperties({ template: tempStr }, true);\n if (typeof tempStr === 'string' || isNOU(tempStr.innerHTML)) {\n if (tempStr[0] === '.' || tempStr[0] === '#') {\n if (document.querySelectorAll(tempStr).length) {\n this.templateEle = document.querySelector(tempStr);\n trgEle.appendChild(this.templateEle);\n this.templateEle.style.display = '';\n }\n else {\n this.templateCompile(trgEle, tempStr);\n }\n }\n else {\n this.templateCompile(trgEle, tempStr);\n }\n }\n else {\n this.templateEle = tempStr;\n trgEle.appendChild(this.templateEle);\n }\n }\n disable(value) {\n // eslint-disable-next-line\n value ? addClass([this.element], [classes.DISABLE]) : removeClass([this.element], [classes.DISABLE]);\n }\n enableEditor(val, isInit) {\n if (isInit && !val) {\n return;\n }\n // eslint-disable-next-line\n (val) ? this.renderEditor() : this.cancelHandler('cancel');\n }\n checkValidation(fromSubmit, isValidate) {\n let args;\n if (this.validationRules) {\n const rules = Object.keys(this.validationRules);\n let validationLength = Object.keys(this.validationRules[rules[0]]).length;\n validationLength = 'validateHidden' in this.validationRules[rules[0]] ? validationLength - 1 : validationLength;\n let count = 0;\n this.formValidate = new FormValidator(this.formEle, {\n rules: this.validationRules,\n validationBegin: (e) => {\n if (this.type === 'RTE') {\n let ele = document.createElement('div');\n ele.innerHTML = e.value;\n e.value = ele.innerText;\n }\n },\n validationComplete: (e) => {\n count = count + 1;\n args = {\n errorMessage: e.message,\n data: { name: this.name, primaryKey: this.primaryKey, value: this.checkValue(this.getSendValue()) }\n };\n this.trigger('validating', args, (validateArgs) => {\n if (e.status === 'failure') {\n e.errorElement.innerText = validateArgs.errorMessage;\n this.toggleErrorClass(true);\n }\n else {\n this.toggleErrorClass(false);\n }\n if (!isNOU(fromSubmit) && fromSubmit && (validationLength === count || e.status === 'failure')) {\n fromSubmit = false;\n this.afterValidation(isValidate);\n count = 0;\n }\n });\n },\n customPlacement: (inputElement, errorElement) => {\n if (this.formEle) {\n select('.' + classes.EDITABLE_ERROR, this.formEle).appendChild(errorElement);\n }\n }\n });\n count = 0;\n this.formValidate.validate();\n }\n else if (this.template !== '') {\n args = {\n errorMessage: '',\n data: { name: this.name, primaryKey: this.primaryKey, value: this.checkValue(this.getSendValue()) }\n };\n this.trigger('validating', args, (validateArgs) => {\n if (validateArgs.errorMessage) {\n select('.' + classes.EDITABLE_ERROR, this.formEle).innerHTML = validateArgs.errorMessage;\n this.toggleErrorClass(true);\n }\n else {\n this.toggleErrorClass(false);\n }\n this.afterValidation(isValidate);\n });\n }\n else {\n this.afterValidation(isValidate);\n }\n }\n afterValidation(isValidate) {\n if (!this.formEle.classList.contains(classes.ERROR) && isValidate) {\n this.loadSpinner('validate');\n if (this.mode === 'Popup') {\n this.updateArrow();\n }\n this.sendValue();\n }\n }\n toggleErrorClass(value) {\n if (isNOU(this.formEle)) {\n return;\n }\n const inputEle = select('.e-input-group', this.formEle);\n // eslint-disable-next-line\n const errorClass = (element, val, action) => {\n [].slice.call(element).forEach((ele) => {\n if (ele) {\n // eslint-disable-next-line\n action === 'add' ? addClass([ele], [val]) : removeClass([ele], [val]);\n }\n });\n };\n errorClass([this.formEle, inputEle], classes.ERROR, value ? 'add' : 'remove');\n }\n updateArrow() {\n const pos = this.tipObj.tipPointerPosition;\n this.tipObj.tipPointerPosition = (pos === 'Middle') ? 'Auto' : 'Middle';\n this.tipObj.tipPointerPosition = pos;\n this.tipObj.dataBind();\n }\n triggerSuccess(args) {\n const val = args.value;\n this.trigger('actionSuccess', args, (actionArgs) => {\n this.oldValue = val;\n this.removeSpinner('submit');\n if (!actionArgs.cancel) {\n this.renderValue(this.checkValue((actionArgs.value !== val) ? actionArgs.value : this.getRenderValue()));\n }\n if (actionArgs.cancel && this.mode === 'Inline') {\n removeClass([this.valueWrap], [classes.HIDE]);\n }\n this.removeEditor();\n });\n }\n triggerEndEdit(closeBeginBy) {\n const endEditArgs = { cancel: false, mode: this.mode, action: closeBeginBy };\n this.trigger('endEdit', endEditArgs, (args) => {\n if (!args.cancel) {\n if (this.formEle && this.formEle.classList.contains(classes.ERROR)) {\n this.updateModelValue(true);\n this.setProperties({ value: this.oldValue }, true);\n }\n this.removeEditor();\n }\n });\n }\n wireEvents() {\n this.wireEditEvent(this.editableOn);\n EventHandler.add(this.editIcon, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keydown', this.valueKeyDownHandler, this);\n document.addEventListener('scroll', this.onScrollResizeHandler);\n window.addEventListener('resize', this.onScrollResizeHandler);\n if (Array.prototype.indexOf.call(this.clearComponents, this.type) > -1) {\n EventHandler.add(this.element, 'mousedown', this.mouseDownHandler, this);\n }\n }\n wireDocEvent() {\n EventHandler.add(document, 'mousedown', this.docClickHandler, this);\n }\n wireEditEvent(event) {\n if (event === 'EditIconClick') {\n return;\n }\n const titleConstant = (event === 'Click') ? 'editAreaClick' : 'editAreaDoubleClick';\n this.element.setAttribute('title', this.getLocale(localeConstant[event], titleConstant));\n if (Browser.isDevice && Browser.isIos && event === 'DblClick') {\n this.touchModule = new Touch(this.valueWrap, { tap: this.doubleTapHandler.bind(this) });\n }\n else {\n EventHandler.add(this.valueWrap, event.toLowerCase(), this.clickHandler, this);\n }\n }\n wireEditorKeyDownEvent(ele) {\n EventHandler.add(ele, 'keydown', this.enterKeyDownHandler, this);\n }\n wireBtnEvents() {\n if (!isNOU(this.submitBtn)) {\n EventHandler.add(this.submitBtn.element, 'mousedown', this.submitHandler, this);\n EventHandler.add(this.submitBtn.element, 'click', this.submitPrevent, this);\n EventHandler.add(this.submitBtn.element, 'keydown', this.btnKeyDownHandler, this);\n }\n if (!isNOU(this.cancelBtn)) {\n EventHandler.add(this.cancelBtn.element, 'mousedown', this.cancelBtnClick, this);\n EventHandler.add(this.cancelBtn.element, 'keydown', this.btnKeyDownHandler, this);\n }\n }\n cancelBtnClick(e) {\n this.cancelHandler('cancel');\n this.trigger('cancelClick', e);\n }\n unWireEvents() {\n this.unWireEditEvent(this.editableOn);\n EventHandler.remove(this.editIcon, 'click', this.clickHandler);\n document.removeEventListener('scroll', this.onScrollResizeHandler);\n window.removeEventListener('resize', this.onScrollResizeHandler);\n EventHandler.remove(this.element, 'keydown', this.valueKeyDownHandler);\n if (Array.prototype.indexOf.call(this.clearComponents, this.type) > -1) {\n EventHandler.remove(this.element, 'mousedown', this.mouseDownHandler);\n }\n }\n unWireDocEvent() {\n EventHandler.remove(document, 'mousedown', this.docClickHandler);\n }\n unWireEditEvent(event) {\n if (event === 'EditIconClick') {\n return;\n }\n this.element.removeAttribute('title');\n if (Browser.isDevice && Browser.isIos && event === 'DblClick') {\n this.touchModule.destroy();\n this.touchModule = undefined;\n }\n else {\n EventHandler.remove(this.valueWrap, event.toLowerCase(), this.clickHandler);\n }\n }\n unWireEditorKeyDownEvent(ele) {\n EventHandler.remove(ele, 'keydown', this.enterKeyDownHandler);\n }\n submitPrevent(e) {\n e.preventDefault();\n }\n btnKeyDownHandler(e) {\n const trg = e.target;\n if ((e.keyCode === 13 && e.which === 13) || (e.keyCode === 32 && e.which === 32)) {\n if (trg.classList.contains(classes.BTN_SAVE)) {\n this.save();\n }\n else if (trg.classList.contains(classes.BTN_CANCEL)) {\n this.cancelHandler('cancel');\n }\n }\n if (e.keyCode === 9 && e.shiftKey === false &&\n (isNOU(e.target.nextElementSibling) ||\n e.target.nextElementSibling.tagName !== 'BUTTON')) {\n if (this.actionOnBlur === 'Submit') {\n this.save();\n }\n else if (this.actionOnBlur === 'Cancel') {\n this.cancelHandler('cancel');\n }\n }\n }\n afterOpenHandler(e) {\n if (this.mode === 'Popup' && this.type === 'MultiSelect') {\n EventHandler.add(this.containerEle, 'mousedown', this.popMouseDown, this);\n EventHandler.add(this.containerEle, 'click', this.popClickHandler, this);\n }\n if (this.mode === 'Popup' && !this.isEmpty(this.titleEle.innerHTML)) {\n e.element.classList.add(classes.TIP_TITLE);\n }\n if (this.type === 'RTE') {\n this.rteModule.refresh();\n this.setAttribute(select('.e-richtexteditor textarea', this.containerEle), ['name']);\n }\n else if (this.type === 'Slider') {\n this.sliderModule.refresh();\n this.setAttribute(select('.e-slider-input', this.containerEle), ['name']);\n }\n if (!this.beginEditArgs.cancelFocus) {\n if (this.mode === 'Inline' && (['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'].indexOf(this.type) > -1)\n && this.model.dataSource instanceof DataManager) {\n this.showDropDownPopup();\n }\n else {\n this.setFocus();\n }\n }\n if (this.afterOpenEvent) {\n this.tipObj.setProperties({ afterOpen: this.afterOpenEvent }, true);\n this.tipObj.trigger('afterOpen', e);\n }\n }\n popMouseDown(e) {\n const trgClass = e.target.classList;\n if (trgClass.contains('e-chips-close') && !trgClass.contains('e-close-hooker')) {\n this.updateArrow();\n }\n }\n doubleTapHandler(e) {\n if (e.tapCount > 1) {\n this.clickHandler(e.originalEvent);\n }\n }\n clickHandler(e) {\n if (this.editableOn !== 'EditIconClick') {\n e.stopPropagation();\n }\n this.renderEditor();\n }\n submitHandler(e) {\n e.preventDefault();\n this.save();\n this.trigger('submitClick', e);\n }\n cancelHandler(action) {\n this.triggerEndEdit(action);\n }\n popClickHandler(e) {\n const tipTarget = select('.' + classes.VALUE_WRAPPER, this.element);\n if (e.target.classList.contains('e-chips-close')) {\n this.tipObj.refresh(tipTarget);\n }\n }\n // eslint-disable-next-line\n successHandler(e) {\n this.initRender = false;\n const eventArgs = { data: e, value: this.getSendValue() };\n this.triggerSuccess(eventArgs);\n }\n // eslint-disable-next-line\n failureHandler(e) {\n const eventArgs = { data: e, value: this.getSendValue() };\n // eslint-disable-next-line\n this.trigger('actionFailure', eventArgs, (args) => {\n this.removeSpinner('submit');\n if (this.mode === 'Popup') {\n this.updateArrow();\n }\n });\n }\n enterKeyDownHandler(e) {\n if (!closest(e.target, '.' + classes.INPUT + ' .e-richtexteditor') && (!e.currentTarget.getElementsByTagName(\"textarea\")[0])) {\n if ((e.keyCode === 13 && e.which === 13) && closest(e.target, '.' + classes.INPUT)) {\n this.save();\n this.trigger('submitClick', e);\n }\n else if (e.keyCode === 27 && e.which === 27) {\n this.cancelHandler('cancel');\n }\n }\n }\n valueKeyDownHandler(e) {\n if (e.keyCode === 9 && e.shiftKey === true && e.target.tagName !== 'BUTTON') {\n if (this.actionOnBlur === 'Submit') {\n this.save();\n }\n else if (this.actionOnBlur === 'Cancel') {\n this.cancelHandler('cancel');\n }\n }\n if ((e.keyCode === 13 && e.which === 13) && e.target.classList.contains(classes.ROOT) &&\n !this.valueWrap.classList.contains(classes.OPEN) && !this.element.classList.contains(classes.DISABLE)) {\n e.preventDefault();\n this.renderEditor();\n }\n }\n mouseDownHandler(e) {\n if (e.target.classList.contains('e-clear-icon')) {\n this.isClearTarget = true;\n }\n }\n scrollResizeHandler() {\n if (this.mode === 'Popup' && this.tipObj && !(Browser.isDevice)) {\n this.triggerEndEdit('cancel');\n }\n }\n docClickHandler(e) {\n const trg = e.target;\n if (this.isClearTarget) {\n this.isClearTarget = false;\n return;\n }\n const relateRoot = closest(trg, '.' + classes.ROOT);\n const relateTipRoot = closest(trg, '.' + classes.ROOT_TIP);\n const relateElements = closest(trg, '.' + classes.ELEMENTS);\n const relateRTEElements = closest(trg, '.e-rte-elements');\n if ((!isNOU(relateRoot) && relateRoot.isEqualNode(this.element)) ||\n (!isNOU(relateTipRoot) && this.tipObj && (relateTipRoot.id.indexOf(this.valueWrap.id) > -1)) ||\n !isNOU(relateElements) || !isNOU(relateRTEElements) || trg.classList.contains('e-chips-close')) {\n return;\n }\n else {\n if (this.actionOnBlur === 'Submit') {\n this.save();\n }\n else if (this.actionOnBlur === 'Cancel') {\n this.cancelHandler('cancel');\n }\n }\n }\n changeHandler(e) {\n const eventArgs = {\n previousValue: this.compPrevValue === undefined ? this.value : this.compPrevValue,\n value: e.value\n };\n if (this.type === 'AutoComplete' || this.type === 'ComboBox' || this.type === 'DropDownList') {\n eventArgs.itemData = e.itemData;\n eventArgs.previousItemData = e.previousItemData;\n }\n this.compPrevValue = eventArgs.value;\n this.trigger('change', eventArgs);\n }\n /**\n * Validate current editor value.\n *\n * @returns {void}\n */\n validate() {\n this.checkValidation(true, false);\n }\n /**\n * Submit the edited input value to the server.\n *\n * @returns {void}\n */\n save() {\n if (!this.formEle) {\n return;\n }\n this.element.focus();\n this.editEle = select('.' + classes.INPUT, this.formEle);\n let errEle = null;\n // eslint-disable-next-line\n errEle = select('.' + classes.ERROR, this.editEle);\n if (!this.isTemplate) {\n this.setValue();\n }\n const endEditArgs = { cancel: false, mode: this.mode, action: 'submit' };\n this.trigger('endEdit', endEditArgs, (args) => {\n if (!args.cancel) {\n this.checkValidation(true, true);\n }\n });\n }\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n destroy() {\n this.removeEditor(isBlazor());\n if (this.isExtModule) {\n this.notify(events.destroy, {});\n }\n this.unWireEvents();\n const classList = [classes.DISABLE, classes.RTL];\n classList.forEach((val) => {\n removeClass([this.element], [val]);\n });\n while (this.element.firstElementChild) {\n this.element.removeChild(this.element.firstElementChild);\n }\n if (!(isBlazor() && this.isServerRendered)) {\n super.destroy();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate();\n }\n }\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - returns the string\n */\n getPersistData() {\n return this.addOnPersist(['value']);\n }\n /**\n * To provide the array of modules needed for component rendering\n *\n * @returns {ModuleDeclaration[]} - returns the module declaration\n * @hidden\n */\n requiredModules() {\n const modules = [];\n modules.push({ member: modulesList[this.type], args: [this] });\n return modules;\n }\n /**\n * Returns the current module name.\n *\n * @returns {string} - returrns the string\n * @private\n */\n getModuleName() {\n return 'inplaceeditor';\n }\n /**\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\n *\n * @param {InPlaceEditorModel} newProp - specifies the new property\n * @param {InPlaceEditorModel} oldProp - specifies the old property\n * @returns {void}\n * @private\n */\n onPropertyChanged(newProp, oldProp) {\n if (this.isEditorOpen()) {\n const editModeChanged = 'enableEditMode' in newProp;\n if ((editModeChanged && oldProp.enableEditMode && !newProp.enableEditMode) || (!editModeChanged && this.enableEditMode)) {\n this.triggerEndEdit('cancel');\n }\n else {\n this.removeEditor();\n }\n }\n for (const prop of Object.keys(newProp)) {\n switch (prop) {\n case 'showButtons':\n // eslint-disable-next-line\n (newProp.showButtons) ? this.appendButtons(this.formEle) : this.destroyButtons();\n break;\n case 'value':\n this.updateValue();\n // eslint-disable-next-line\n this.textOption === 'Never' ? this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)))\n : this.renderInitialValue();\n break;\n case 'emptyText':\n // eslint-disable-next-line\n this.textOption === 'Never' ? this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)))\n : this.renderInitialValue();\n break;\n case 'template':\n this.checkIsTemplate();\n break;\n case 'disabled':\n this.disable(newProp.disabled);\n break;\n case 'enableRtl':\n this.setRtl(newProp.enableRtl);\n break;\n case 'cssClass':\n this.setClass('remove', oldProp.cssClass);\n this.setClass('add', newProp.cssClass);\n break;\n case 'mode':\n this.enableEditor(this.enableEditMode);\n break;\n case 'enableEditMode':\n this.enableEditor(newProp.enableEditMode);\n break;\n case 'editableOn':\n this.unWireEditEvent(oldProp.editableOn);\n if (newProp.editableOn !== 'EditIconClick') {\n this.wireEditEvent(newProp.editableOn);\n }\n break;\n }\n }\n }\n};\n__decorate([\n Property('')\n], InPlaceEditor.prototype, \"name\", void 0);\n__decorate([\n Property(null)\n], InPlaceEditor.prototype, \"value\", void 0);\n__decorate([\n Property('')\n], InPlaceEditor.prototype, \"template\", void 0);\n__decorate([\n Property(true)\n], InPlaceEditor.prototype, \"enableHtmlSanitizer\", void 0);\n__decorate([\n Property(true)\n], InPlaceEditor.prototype, \"enableHtmlParse\", void 0);\n__decorate([\n Property('')\n], InPlaceEditor.prototype, \"cssClass\", void 0);\n__decorate([\n Property('')\n], InPlaceEditor.prototype, \"primaryKey\", void 0);\n__decorate([\n Property('Empty')\n], InPlaceEditor.prototype, \"emptyText\", void 0);\n__decorate([\n Property('')\n], InPlaceEditor.prototype, \"url\", void 0);\n__decorate([\n Property('Popup')\n], InPlaceEditor.prototype, \"mode\", void 0);\n__decorate([\n Property('UrlAdaptor')\n], InPlaceEditor.prototype, \"adaptor\", void 0);\n__decorate([\n Property('Text')\n], InPlaceEditor.prototype, \"type\", void 0);\n__decorate([\n Property('Click')\n], InPlaceEditor.prototype, \"editableOn\", void 0);\n__decorate([\n Property('Never')\n], InPlaceEditor.prototype, \"textOption\", void 0);\n__decorate([\n Property('Submit')\n], InPlaceEditor.prototype, \"actionOnBlur\", void 0);\n__decorate([\n Property(false)\n], InPlaceEditor.prototype, \"enablePersistence\", void 0);\n__decorate([\n Property(false)\n], InPlaceEditor.prototype, \"disabled\", void 0);\n__decorate([\n Property(true)\n], InPlaceEditor.prototype, \"showButtons\", void 0);\n__decorate([\n Property(false)\n], InPlaceEditor.prototype, \"enableEditMode\", void 0);\n__decorate([\n Property(true)\n], InPlaceEditor.prototype, \"submitOnEnter\", void 0);\n__decorate([\n Complex({}, PopupSettings)\n], InPlaceEditor.prototype, \"popupSettings\", void 0);\n__decorate([\n Property(null)\n], InPlaceEditor.prototype, \"model\", void 0);\n__decorate([\n Property({ iconCss: 'e-icons e-save-icon' })\n], InPlaceEditor.prototype, \"saveButton\", void 0);\n__decorate([\n Property({ iconCss: 'e-icons e-cancel-icon' })\n], InPlaceEditor.prototype, \"cancelButton\", void 0);\n__decorate([\n Property(null)\n], InPlaceEditor.prototype, \"validationRules\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"created\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"beforeSanitizeHtml\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"actionBegin\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"actionSuccess\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"actionFailure\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"validating\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"beginEdit\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"endEdit\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"change\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"submitClick\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"cancelClick\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"destroyed\", void 0);\nInPlaceEditor = __decorate([\n NotifyPropertyChanges\n], InPlaceEditor);\nexport { InPlaceEditor };\n","/**\n * Base modules\n */\nexport * from './util';\nexport * from './events';\nexport * from './models';\nexport * from './classes';\nexport * from './inplace-editor';\n","import { isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport * as events from '../base/events';\n/**\n * The `Base` module.\n */\nexport class Base {\n constructor(parent, module) {\n this.parent = parent;\n this.module = module;\n this.addEventListener();\n }\n render(e) {\n this.module.render(e);\n }\n showPopup() {\n this.module.showPopup();\n }\n focus() {\n this.module.focus();\n }\n update(e) {\n this.module.updateValue(e);\n }\n getValue() {\n this.module.getRenderValue();\n }\n destroyComponent() {\n if (isNOU(this.module.compObj)) {\n return;\n }\n this.module.compObj.destroy();\n this.module.compObj = undefined;\n }\n destroy() {\n this.destroyComponent();\n this.removeEventListener();\n }\n addEventListener() {\n this.parent.on(events.render, this.render, this);\n this.parent.on(events.setFocus, this.focus, this);\n this.parent.on(events.showPopup, this.showPopup, this);\n this.parent.on(events.update, this.update, this);\n this.parent.on(events.accessValue, this.getValue, this);\n this.parent.on(events.destroyModules, this.destroyComponent, this);\n this.parent.on(events.destroy, this.destroy, this);\n }\n removeEventListener() {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.render, this.render);\n this.parent.off(events.setFocus, this.focus);\n this.parent.off(events.showPopup, this.showPopup);\n this.parent.off(events.update, this.update);\n this.parent.off(events.accessValue, this.getValue);\n this.parent.off(events.destroyModules, this.destroyComponent);\n this.parent.off(events.destroy, this.destroy);\n }\n}\n","import { AutoComplete as EJ2AutoComplete } from '@syncfusion/ej2-dropdowns';\nimport { Base } from './base-module';\n/**\n * The `AutoComplete` module is used configure the properties of Auto complete type editor.\n */\nexport class AutoComplete {\n constructor(parent) {\n this.compObj = undefined;\n this.parent = parent;\n this.parent.atcModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n this.compObj = new EJ2AutoComplete(this.parent.model);\n this.compObj.appendTo(e.target);\n }\n /**\n * @hidden\n * @returns {void}\n */\n showPopup() {\n this.compObj.focusIn();\n this.compObj.showPopup();\n }\n focus() {\n this.compObj.element.focus();\n }\n updateValue(e) {\n if (this.compObj && e.type === 'AutoComplete') {\n this.parent.setProperties({ value: this.compObj.value }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n /**\n * Destroys the module.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - returns the string\n */\n getModuleName() {\n return 'auto-complete';\n }\n}\n","import { ColorPicker as EJ2ColorPicker } from '@syncfusion/ej2-inputs';\nimport { Base } from './base-module';\n/**\n * The `ColorPicker` module is used configure the properties of Color picker type editor.\n */\nexport class ColorPicker {\n constructor(parent) {\n this.compObj = undefined;\n this.parent = parent;\n this.parent.colorModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n this.compObj = new EJ2ColorPicker(this.parent.model);\n this.compObj.appendTo(e.target);\n }\n focus() {\n this.compObj.element.focus();\n }\n updateValue(e) {\n if (this.compObj && e.type === 'Color') {\n this.parent.setProperties({ value: this.compObj.value }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n /**\n * Destroys the module.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - retunrs the string\n */\n getModuleName() {\n return 'color-picker';\n }\n}\n","import { ComboBox as EJ2ComboBox } from '@syncfusion/ej2-dropdowns';\nimport { Base } from './base-module';\n/**\n * The `ComboBox` module is used configure the properties of Combo box type editor.\n */\nexport class ComboBox {\n constructor(parent) {\n this.compObj = undefined;\n this.parent = parent;\n this.parent.comboBoxModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n this.compObj = new EJ2ComboBox(this.parent.model);\n this.compObj.appendTo(e.target);\n }\n focus() {\n this.compObj.element.focus();\n }\n /**\n * @hidden\n * @returns {void}\n */\n showPopup() {\n this.compObj.focusIn();\n this.compObj.showPopup();\n }\n /**\n * Destroys the module.\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n updateValue(e) {\n if (this.compObj && e.type === 'ComboBox') {\n this.parent.setProperties({ value: this.compObj.value }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n /**\n * For internal use only - Get the module name.\n * @returns {string} - returns the string\n */\n getModuleName() {\n return 'combo-box';\n }\n}\n","import { DateRangePicker as EJ2DateRangePicker } from '@syncfusion/ej2-calendars';\nimport { Base } from './base-module';\n/**\n * The `DateRangePicker` module is used configure the properties of Date range picker type editor.\n */\nexport class DateRangePicker {\n constructor(parent) {\n this.compObj = undefined;\n this.parent = parent;\n this.parent.dateRangeModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n this.compObj = new EJ2DateRangePicker(this.parent.model);\n this.compObj.appendTo(e.target);\n }\n focus() {\n this.compObj.element.focus();\n }\n /**\n * For internal use only - Get the module name.\n * @returns {string} - returns the string\n */\n getModuleName() {\n return 'date-range-picker';\n }\n updateValue(e) {\n if (this.compObj && e.type === 'DateRange') {\n this.parent.setProperties({ value: this.compObj.value }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n /**\n * Destroys the module.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n}\n","import { closest } from '@syncfusion/ej2-base';\nimport { MultiSelect as EJ2MultiSelect } from '@syncfusion/ej2-dropdowns';\nimport { Base } from './base-module';\n/**\n * The `MultiSelect` module is used configure the properties of Multi select type editor.\n */\nexport class MultiSelect {\n constructor(parent) {\n this.isPopOpen = false;\n this.compObj = undefined;\n this.parent = parent;\n this.parent.multiSelectModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n const compModel = Object.assign({}, this.parent.model);\n this.openEvent = compModel.open;\n this.closeEvent = compModel.close;\n compModel.open = this.openHandler.bind(this);\n compModel.close = this.closeHandler.bind(this);\n this.compObj = new EJ2MultiSelect(compModel);\n this.compObj.appendTo(e.target);\n }\n openHandler(e) {\n this.isPopOpen = true;\n if (this.openEvent) {\n this.compObj.setProperties({ open: this.openEvent }, true);\n this.compObj.trigger('open', e);\n }\n }\n closeHandler(e) {\n this.isPopOpen = false;\n if (this.closeEvent) {\n this.compObj.setProperties({ close: this.closeEvent }, true);\n this.compObj.trigger('close', e);\n }\n }\n focus() {\n if (!this.isPopOpen) {\n const evt = document.createEvent('MouseEvent');\n evt.initEvent('mousedown', true, true);\n closest(this.compObj.element, '.e-multi-select-wrapper').dispatchEvent(evt);\n }\n }\n updateValue(e) {\n if (this.compObj && e.type === 'MultiSelect') {\n this.parent.setProperties({ value: this.compObj.value }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n getRenderValue() {\n this.parent.printValue = this.compObj.text;\n }\n /**\n * Destroys the module.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - returns the string\n */\n getModuleName() {\n return 'multi-select';\n }\n}\n","import { RichTextEditor, HtmlEditor } from '@syncfusion/ej2-richtexteditor';\nimport { MarkdownEditor, Toolbar, Link, Image, QuickToolbar, Table, FileManager } from '@syncfusion/ej2-richtexteditor';\nimport { Base } from './base-module';\n/**\n * The `RTE` module is used configure the properties of RTE type editor.\n */\nexport class Rte {\n constructor(parent) {\n this.compObj = undefined;\n RichTextEditor.Inject(HtmlEditor, MarkdownEditor, Toolbar, Link, Image, QuickToolbar, Table, FileManager);\n this.parent = parent;\n this.parent.rteModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n this.compObj = new RichTextEditor(this.parent.model);\n this.compObj.appendTo(e.target);\n }\n focus() {\n this.compObj.focusIn();\n }\n updateValue(e) {\n if (this.compObj && e.type === 'RTE') {\n this.parent.setProperties({ value: this.getRteValue() }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n getRteValue() {\n let rteVal;\n if (this.compObj.editorMode === 'Markdown') {\n rteVal = this.compObj.contentModule.getEditPanel().value;\n return (rteVal === '') ? '' : rteVal;\n }\n else {\n rteVal = this.compObj.contentModule.getEditPanel().innerHTML;\n return (rteVal === '<p><br></p>' || rteVal === '<p><br></p>' || rteVal === '') ? '' : rteVal;\n }\n }\n refresh() {\n this.compObj.refresh();\n }\n /**\n * Destroys the rte module.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - returns the string\n */\n getModuleName() {\n return 'rte';\n }\n}\n","import { Slider as EJ2Slider } from '@syncfusion/ej2-inputs';\nimport { Base } from './base-module';\n/**\n * The `Slider` module is used configure the properties of Slider type editor.\n */\nexport class Slider {\n constructor(parent) {\n this.compObj = undefined;\n this.parent = parent;\n this.parent.sliderModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n this.compObj = new EJ2Slider(this.parent.model);\n this.compObj.appendTo(e.target);\n }\n focus() {\n this.compObj.element.focus();\n }\n updateValue(e) {\n if (this.compObj && e.type === 'Slider') {\n this.parent.setProperties({ value: this.compObj.value }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n refresh() {\n this.compObj.refresh();\n }\n /**\n * Destroys the slider module.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - returns the string\n */\n getModuleName() {\n return 'slider';\n }\n}\n","import { TimePicker as EJ2TimePicker } from '@syncfusion/ej2-calendars';\nimport { Base } from './base-module';\n/**\n * The `TimePicker` module is used configure the properties of Time picker type editor.\n */\nexport class TimePicker {\n constructor(parent) {\n this.compObj = undefined;\n this.parent = parent;\n this.parent.timeModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n this.compObj = new EJ2TimePicker(this.parent.model);\n this.compObj.appendTo(e.target);\n }\n focus() {\n this.compObj.focusIn();\n }\n updateValue(e) {\n if (this.compObj && e.type === 'Time') {\n this.parent.setProperties({ value: this.compObj.value }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - returns the string\n */\n getModuleName() {\n return 'time-picker';\n }\n /**\n * Destroys the module.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n}\n","/**\n *\n */\nexport * from './base-module';\nexport * from './auto-complete';\nexport * from './color-picker';\nexport * from './combo-box';\nexport * from './date-range-picker';\nexport * from './multi-select';\nexport * from './rte';\nexport * from './slider';\nexport * from './time-picker';\n","/**\n *\n */\nexport * from './base/index';\nexport * from './modules/index';\n","/**\n *\n */\nexport * from './inplace-editor/index';\n"],"names":["isNOU","this","__decorate","classes.TITLE","classes.VALUE_WRAPPER","classes.VALUE","classes.OVERLAY_ICON","classes.ICONS","classes.LOAD","classes.HIDE","classes.OPEN","classes.INLINE","classes.POPUP","classes.ROOT_TIP","events.setFocus","events.showPopup","classes.WRAPPER","classes.LOADING","classes.FORM","classes.CTRL_GROUP","classes.INPUT","classes.EDITABLE_ERROR","classes.BUTTONS","classes.PRIMARY","classes.BTN_SAVE","classes.BTN_CANCEL","classes.ELEMENTS","events.render","classes.SHOW","classes.RTE_SPIN_WRAP","classes.CTRL_OVERLAY","events.update","events.accessValue","classes.RTL","events.destroyModules","classes.DISABLE","classes.ERROR","classes.TIP_TITLE","classes.ROOT","events.destroy","AutoComplete","EJ2AutoComplete","ColorPicker","EJ2ColorPicker","ComboBox","EJ2ComboBox","DateRangePicker","EJ2DateRangePicker","MultiSelect","EJ2MultiSelect","Slider","EJ2Slider","TimePicker","EJ2TimePicker"],"mappings":";;;;;;;;;AACA;;;AAGA,MAAM,IAAI,GAAG,IAAI,oBAAoB,EAAE,CAAC;;;;;;;AAOxC,AAAO,SAAS,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;IACzC,IAAIA,iBAAK,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,EAAE,EAAE;QAC1B,OAAO,EAAE,CAAC;KACb;IACD,IAAI,MAAM,CAAC;IACX,IAAI,UAAU,CAAC;IACf,QAAQ,IAAI;QACR,KAAK,OAAO,EAAE;YACV,MAAM,GAAG,GAAG,GAAG,CAAC;YAChB,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACnD,MAAM;SACT;QACD,KAAK,MAAM;YACP,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1B,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;YACtG,MAAM;QACV,KAAK,WAAW,EAAE;YACd,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1B,MAAM,IAAI,GAAG,GAAG,CAAC;YACjB,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK;kBAC3G,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;YACvG,MAAM;SACT;QACD,KAAK,UAAU;YACX,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1B,IAAIA,iBAAK,CAAC,UAAU,CAAC,IAAI,UAAU,KAAK,EAAE,EAAE;gBACxC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,GAAG,GAAG;sBACrG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC;aACrG;iBACI;gBACD,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;aACzG;YACD,MAAM;QACV,KAAK,MAAM;YACP,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;YAC1B,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC;YACrG,MAAM;QACV,KAAK,SAAS,EAAE;YACZ,UAAU,GAAGA,iBAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI;gBACnC,KAAK,CAAC,MAAM,CAAC;YACjB,MAAM,OAAO,GAAGA,iBAAK,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,QAAQ,GAAG,CAAC,KAAK,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9F,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC5D,MAAM;SACT;QACD;YACI,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM;KACb;IACD,OAAO,MAAM,CAAC;CACjB;;;;;;AAMD,AAAO,SAAS,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE;IACpC,IAAIA,iBAAK,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,EAAE,EAAE;QAC1B,OAAO,GAAG,CAAC;KACd;IACD,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,UAAU,KAAK,QAAQ,GAAG,CAAC,KAAK,QAAQ,EAAE;QAC1F,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;KACvB;SACI,IAAI,IAAI,KAAK,WAAW,EAAE;QAC3B,IAAI,QAAQ,GAAG,CAAC,KAAK,QAAQ,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YAC3D,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9C;aACI,IAAI,QAAQ,GAAG,CAAC,KAAK,QAAQ,EAAE;YAChC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5B,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD;KACJ;IACD,OAAO,GAAG,CAAC;CACd;;;;;;AAMD,AAAO,SAAS,MAAM,CAAC,KAAK,EAAE;IAC1B,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9D;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CACxB;;AC/FD;;;;AAIA,AAAO,MAAM,MAAM,GAAG,QAAQ,CAAC;;AAE/B,AAAO,MAAM,MAAM,GAAG,QAAQ,CAAC;;AAE/B,AAAO,MAAM,OAAO,GAAG,SAAS,CAAC;;AAEjC,AAAO,MAAM,QAAQ,GAAG,WAAW,CAAC;;AAEpC,AAAO,MAAM,WAAW,GAAG,cAAc,CAAC;;AAE1C,AAAO,MAAM,cAAc,GAAG,iBAAiB,CAAC;;AAEhD,AAAO,MAAM,SAAS,GAAG,YAAY;;AChBrC,IAAI,UAAU,GAAG,CAACC,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IACnF,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;SAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CACjE,CAAC;AACF,AACA;;;AAGA,AAAO,MAAM,aAAa,SAAS,aAAa,CAAC;CAChD;AACD,UAAU,CAAC;IACP,QAAQ,CAAC,EAAE,CAAC;CACf,EAAE,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7C,UAAU,CAAC;IACP,QAAQ,CAAC,IAAI,CAAC;CACjB,EAAE,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;;;;AAI7C,AAAO,MAAM,WAAW,GAAG;;IAEvB,cAAc,EAAE,eAAe;IAC/B,OAAO,EAAE,cAAc;IACvB,UAAU,EAAE,WAAW;IACvB,WAAW,EAAE,mBAAmB;IAChC,aAAa,EAAE,cAAc;IAC7B,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,aAAa;;CAExB,CAAC;;;;;AAKF,AAAO,IAAI,cAAc,GAAG;;IAExB,OAAO,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE;IAC7C,UAAU,EAAE,EAAE,qBAAqB,EAAE,sBAAsB,EAAE;IAC7D,eAAe,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE;;CAExD;;AC3CD;;;;AAIA,AAAO,MAAM,IAAI,GAAG,iBAAiB,CAAC;;AAEtC,AAAO,MAAM,QAAQ,GAAG,qBAAqB,CAAC;;AAE9C,AAAO,MAAM,aAAa,GAAG,0BAA0B,CAAC;;AAExD,AAAO,MAAM,KAAK,GAAG,kBAAkB,CAAC;;AAExC,AAAO,MAAM,YAAY,GAAG,yBAAyB,CAAC;;AAEtD,AAAO,MAAM,SAAS,GAAG,sBAAsB,CAAC;;AAEhD,AAAO,MAAM,KAAK,GAAG,kBAAkB,CAAC;;AAExC,AAAO,MAAM,MAAM,GAAG,mBAAmB,CAAC;;AAE1C,AAAO,MAAM,KAAK,GAAG,kBAAkB,CAAC;;AAExC,AAAO,MAAM,OAAO,GAAG,oBAAoB,CAAC;;AAE5C,AAAO,MAAM,OAAO,GAAG,oBAAoB,CAAC;;AAE5C,AAAO,MAAM,IAAI,GAAG,iBAAiB,CAAC;;AAEtC,AAAO,MAAM,UAAU,GAAG,mBAAmB,CAAC;;AAE9C,AAAO,MAAM,KAAK,GAAG,sBAAsB,CAAC;;AAE5C,AAAO,MAAM,OAAO,GAAG,2BAA2B,CAAC;;AAEnD,AAAO,MAAM,cAAc,GAAG,kBAAkB,CAAC;;AAEjD,AAAO,MAAM,QAAQ,GAAG,qBAAqB,CAAC;;AAE9C,AAAO,MAAM,IAAI,GAAG,iBAAiB,CAAC;;AAEtC,AAAO,MAAM,QAAQ,GAAG,YAAY,CAAC;;AAErC,AAAO,MAAM,UAAU,GAAG,cAAc,CAAC;;AAEzC,AAAO,MAAM,aAAa,GAAG,iBAAiB,CAAC;;AAE/C,AAAO,MAAM,YAAY,GAAG,mBAAmB,CAAC;;AAEhD,AAAO,MAAM,OAAO,GAAG,WAAW,CAAC;;AAEnC,AAAO,MAAM,KAAK,GAAG,SAAS,CAAC;;AAE/B,AAAO,MAAM,OAAO,GAAG,WAAW,CAAC;;AAEnC,AAAO,MAAM,IAAI,GAAG,QAAQ,CAAC;;AAE7B,AAAO,MAAM,IAAI,GAAG,QAAQ,CAAC;;AAE7B,AAAO,MAAM,GAAG,GAAG,OAAO,CAAC;;AAE3B,AAAO,MAAM,KAAK,GAAG,SAAS,CAAC;;AAE/B,AAAO,MAAM,IAAI,GAAG,WAAW;;AC9D/B,IAAIC,YAAU,GAAG,CAACD,SAAI,IAAIA,SAAI,CAAC,UAAU,KAAK,UAAU,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IACnF,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;SAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CACjE,CAAC;AACF,AAYA;AACA,AAEA;AACA,AACA;AACA,AACA;;;;;;;;;;AAUA,IAAI,aAAa,GAAG,MAAM,aAAa,SAAS,SAAS,CAAC;;;;;;;IAOtD,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE;QAC1B,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACvB;IACD,eAAe,GAAG;QACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvC,IAAI,CAAC,eAAe,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACzE,IAAI,CAAC,WAAW,GAAG,CAAC,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;QAC/E,IAAI,CAAC,UAAU,GAAG,CAAC,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;KAChH;;;;;;;IAOD,SAAS,GAAG;QACR,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAID,iBAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACnB,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;SAC3C;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAEG,KAAa,EAAE,CAAC,CAAC;QACxE,IAAI,CAACH,iBAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE;YACxE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC;SAC5D;KACJ;;;;;;;IAOD,MAAM,GAAG;QACL,IAAIA,iBAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE;YAC9C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;SAC9C;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;;QAEnB,IAAI,CAAC,UAAU,KAAK,OAAO;YACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;cAC9E,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IACD,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC1C,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;;oBAE/B,MAAM,KAAK,KAAK,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnH;aACJ;SACJ;KACJ;IACD,kBAAkB,GAAG;QACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAEI,aAAqB,EAAE,CAAC,CAAC;QAChH,IAAI,CAAC,QAAQ,EAAE,EAAE;YACb,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;SAC/B;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAEC,KAAa,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YACvC,SAAS,EAAEC,YAAoB,GAAG,GAAG,GAAGC,KAAa;YACrD,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,UAAU,CAAC,EAAE;SAChF,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC5C;IACD,kBAAkB,GAAG;QACjB,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;eAChF,CAACP,iBAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAACA,iBAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;eACvF,CAACA,iBAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;YAC/E,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAACQ,IAAY,CAAC,CAAC;YAC3C,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACrD,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B;aACI;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACpF;KACJ;IACD,oBAAoB,GAAG;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;QAChC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAChC,MAAM,KAAK,GAAGR,iBAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;QAC7D,IAAI,KAAK,CAAC,UAAU,YAAY,WAAW,EAAE;YACzC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;;gBAEvE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;aAC/C,CAAC,CAAC;SACN;aACI;YACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,YAAY;;YAEhF,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;SACrC;KACJ;IACD,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE;QACvB,IAAI,SAAS,CAAC;QACd,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YACjE,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACxD;aACI;YACD,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;gBACrB,SAAS,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC3G,CAAC,EAAE,CAAC;aACP;SACJ;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;KACjC;;IAED,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE;QACjC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;YACpB,OAAO;SACV;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAEA,iBAAK,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACjG;aACI;YACD,MAAM,GAAG,GAAG,EAAE,CAAC;YACf,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;gBACtB,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAEA,iBAAK,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;aAC1D;YACD,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC7D;QACD,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAACQ,IAAY,CAAC,CAAC;KACjD;IACD,WAAW,CAAC,GAAG,EAAE;;QAEb,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,GAAG;aACzG,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YACvB,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;SACtD;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YACxB,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACrB,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAACC,IAAY,CAAC,CAAC,CAAC;aACjD;SACJ;KACJ;IACD,YAAY,GAAG;QACX,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,KAAK,CAACT,iBAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC7D,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAACS,IAAY,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YACxG,OAAO,KAAK,CAAC;SAChB;aACI;YACD,OAAO,IAAI,CAAC;SACf;KACJ;IACD,YAAY,GAAG;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC5E,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAC3B,OAAO;SACV;;QAED,IAAI,UAAU,GAAG,SAAS,CAAC;QAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,GAAGL,aAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,UAAU,KAAK,eAAe,EAAE;YACrC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;SACjD;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAACM,IAAY,CAAC,EAAE;YACjD,OAAO;SACV;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YACxB,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAACD,IAAY,CAAC,CAAC,CAAC;YAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAEE,MAAc,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7C,IAAI,CAAC,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;gBACrF,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpC;iBACI;gBACD,IAAI,CAAC,aAAa,EAAE,CAAC;aACxB;SACJ;aACI;YACD,IAAI,CAACX,iBAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE;gBACxE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzE;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAEY,KAAa,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;gBACzC,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBACnD,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACtC;YACD,UAAU,GAAG;gBACT,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ;gBACnC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAEC,QAAgB;gBACrD,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;aAC9C,CAAC;YACF,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC5B;QACD,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;YAChC,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;QACD,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAACH,IAAY,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;;QAEnD,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC/B;KACJ;IACD,aAAa,GAAG;QACZ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;KAC/B;IACD,eAAe,CAAC,KAAK,EAAE;QACnB,IAAI,KAAK,CAAC,UAAU,YAAY,WAAW,EAAE;YACzC,KAAK,CAAC,SAAS,GAAG,MAAM;gBACpB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;aAC/B,CAAC;YACF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,IAAI,CAACV,iBAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAIA,iBAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;oBACpE,CAACA,iBAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE;gBACvD,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;SACJ;aACI;YACD,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;KACJ;IACD,iBAAiB,GAAG;QAChB,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;YAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;gBAC5B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;aAC/B;YACD,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;SACjC;aACI;YACD,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,IAAIc,QAAe,GAAGC,SAAgB,GAAG,EAAE,CAAC,CAAC;aACzF;SACJ;KACJ;IACD,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChF,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;YAClB,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,GAAG,SAAS,IAAI,KAAK,EAAE,CAAC;SACzE,CAAC,CAAC;KACN;IACD,aAAa,CAAC,MAAM,EAAE;QAClB,IAAI,GAAG,CAAC;QACR,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAEC,OAAe,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAEC,OAAe,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,EAAEC,IAAY,EAAE,CAAC,CAAC;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAEC,UAAkB,EAAE,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAEC,KAAa,EAAE,CAAC,CAAC;QAC1E,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;SACjD;aACI;YACD,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;gBAClE,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAChC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;aAClC;iBACI;gBACD,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAClC,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;aAC1C;YACD,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;YACzB,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC3B,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtC;QACD,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACpC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAEC,cAAsB,EAAE,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAClD;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;IACD,aAAa,CAAC,GAAG,EAAE;QACf,IAAI,IAAI,CAAC,WAAW,IAAI,GAAG,EAAE;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;KACJ;IACD,aAAa,GAAG;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,SAAS,EAAEC,OAAe,EAAE,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,CAAC,CAACtB,iBAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,KAAK,GAAG,GAAGuB,OAAe,IAAI,EAAE,CAAC;QACzH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YAChC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO;YACpD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU;YAC/C,SAAS,EAAEC,QAAgB,GAAG,OAAO;SACxC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YAChC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;YAC/D,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY;YAC5C,SAAS,EAAEC,UAAkB;SAChC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;KAClB;IACD,aAAa,CAAC,IAAI,EAAE;QAChB,IAAI,MAAM,GAAG,SAAS,CAAC;QACvB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACpC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;gBACxC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,KAAKzB,iBAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,KAAKA,iBAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;aACzR,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;SAC3C;QACD,OAAO,MAAM,CAAC;KACjB;IACD,eAAe,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC;QAClG,IAAI,SAAS,CAAC;QACd,IAAI,CAACA,iBAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YAC7B,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC0B,QAAgB,CAAC,GAAG,CAAC;gBACzD,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,EAAE,GAAGA,QAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,GAAGA,QAAgB;gBAC5F,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC3B;aACI;YACD,SAAS,GAAGA,QAAgB,CAAC;SAChC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;YAC3B,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;SAC7G,CAAC,CAAC;QACH,IAAI,CAAC1B,iBAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACpB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;SAChC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC2B,MAAa,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;SAChG;aACI;YACD,IAAI3B,iBAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;gBAClD,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;aACrC;YACD,QAAQ,IAAI,CAAC,IAAI;gBACb,KAAK,MAAM;oBACP,IAAI,CAAC,YAAY,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC/C,MAAM;gBACV,KAAK,UAAU;oBACX,IAAI,CAAC,YAAY,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,cAAc;oBACf,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACjD,MAAM;gBACV,KAAK,MAAM;oBACP,IAAI,CAAC,YAAY,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAClD,MAAM;gBACV,KAAK,SAAS;oBACV,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;;wBAElB,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,oBAAoB,CAAC,CAAC;wBAClD,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;4BACjC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;yBACvC;6BACI;4BACD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,0CAA0C,EAAE,EAAE,CAAC,CAAC;yBAC1G;qBACJ;oBACD,IAAI,CAAC,YAAY,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACnD,MAAM;gBACV,KAAK,MAAM;oBACP,IAAI,CAAC,YAAY,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC5C,MAAM;aACb;YACD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SACnC;KACJ;IACD,aAAa,GAAG;QACZ,QAAQ,IAAI,CAAC,OAAO;YAChB,KAAK,YAAY;gBACb,IAAI,CAAC,WAAW,GAAG,IAAI,UAAU,CAAC;gBAClC,MAAM;YACV,KAAK,eAAe;gBAChB,IAAI,CAAC,WAAW,GAAG,IAAI,aAAa,CAAC;gBACrC,MAAM;YACV,KAAK,gBAAgB;gBACjB,IAAI,CAAC,WAAW,GAAG,IAAI,cAAc,CAAC;gBACtC,MAAM;SACb;KACJ;IACD,WAAW,CAAC,QAAQ,EAAE;QAClB,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC4B,IAAY,CAAC,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,UAAU,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE;YACrG,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAACC,aAAqB,CAAC,CAAC,CAAC;YACjD,QAAQ,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,CAACC,YAAoB,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;SAC1C;aACI;YACD,IAAI,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;SACrF;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAACtB,IAAY,CAAC,CAAC,CAAC;SAC5C;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,QAAQ,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAACC,IAAY,CAAC,CAAC,CAAC;SAChD;QACD,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACpD,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KACpC;IACD,aAAa,CAAC,QAAQ,EAAE;QACpB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,QAAQ,KAAK,QAAQ,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE;YACnG,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAACoB,aAAqB,CAAC,CAAC,CAAC;YACpD,WAAW,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,CAACC,YAAoB,CAAC,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAACtB,IAAY,CAAC,CAAC,CAAC;SAC/C;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAACC,IAAY,CAAC,CAAC,CAAC;SACnD;QACD,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAACmB,IAAY,CAAC,CAAC,CAAC;KAC9C;IACD,cAAc,GAAG;QACb,OAAO,MAAM,CAAC,GAAG,GAAGF,QAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KACvD;;IAED,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE;QACjB,OAAO,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;KACzE;IACD,UAAU,CAAC,GAAG,EAAE;QACZ,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;KACtD;IACD,gBAAgB,CAAC,GAAG,EAAE;;QAElB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;KAC9C;IACD,WAAW,GAAG;QACV,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,IAAI,CAAC,mBAAmB,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YAC9D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnD;QACD,IAAI,CAAC1B,iBAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC5E,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;SACjE;KACJ;IACD,gBAAgB,CAAC,cAAc,EAAE;QAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC1D,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;SACnF;aACI;YACD,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;SACnE;KACJ;IACD,QAAQ,GAAG;QACP,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,MAAM,CAAC+B,MAAa,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;SACnD;aACI,IAAI,IAAI,CAAC,YAAY,EAAE;YACxB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,IAAI,EAAE;gBAC7D,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;aAC1D;YACD,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAClD;KACJ;IACD,iBAAiB,CAAC,OAAO,EAAE;QACvB,IAAI,KAAK,CAAC;QACV,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;YAC/F,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK;gBACpF,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SAC7B;aACI,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;YAClC,IAAI,CAAC,MAAM,CAACC,WAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACrD,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACzD;QACD,OAAO,KAAK,CAAC;KAChB;IACD,YAAY,GAAG;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC1B,OAAO,EAAE,CAAC;SACb;QACD,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YAChE,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACxC;aACI,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YAClE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SACnC;aACI,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;YAChC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SAC5E;aACI;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SAChC;KACJ;IACD,cAAc,GAAG;QACb,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;SAC7C;aACI,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YACtE,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;SACnC;aACI,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YACrE,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SACvC;aACI;YACD,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACxD;KACJ;IACD,MAAM,CAAC,KAAK,EAAE;;QAEV,KAAK,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAACC,GAAW,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAACA,GAAW,CAAC,CAAC,CAAC;KAChG;IACD,QAAQ,GAAG;QACP,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,OAAO;SACV;;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAACnB,QAAe,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KAC3F;IACD,YAAY,CAAC,eAAe,EAAE;;QAE1B,AACA,IAAI,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACtC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,UAAU,EAAE,UAAU,CAAC,CAAC;SACjE;QACD,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC7B,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAGD,QAAgB,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,GAAG,CAACJ,IAAY,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAACT,iBAAK,CAAC,MAAM,CAAC,GAAG,GAAGW,MAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE;YACpD,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;SAClC;aACI,IAAI,IAAI,CAAC,MAAM,EAAE;YAClB,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;gBAC7B,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;gBACvE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;aACzE;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;SAC3B;QACD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAACD,IAAY,EAAED,IAAY,CAAC,CAAC,CAAC;QAC5D,IAAI,CAAC,eAAe,EAAE;YAClB,IAAI,CAAC,aAAa,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;SACvD;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,eAAe,EAAE;YACrC,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,qBAAqB,GAAG,eAAe,CAAC;YACjG,IAAI,CAACT,iBAAK,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;gBACtC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;aACtH;SACJ;;QAED,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;KACJ;IACD,iBAAiB,GAAG;QAChB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;QACD,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,MAAM,CAACkC,cAAqB,EAAE,EAAE,CAAC,CAAC;SAC1C;aACI;YACD,IAAI,IAAI,CAAC,WAAW,EAAE;gBAClB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC5C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;gBACxC,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;aAChC;YACD,IAAI,CAAClC,iBAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;aACjC;SACJ;QACD,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;SACjC;QACD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,YAAY,EAAE;YACzC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpD;KACJ;IACD,cAAc,GAAG;QACb,IAAI,CAACA,iBAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACxB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC7E,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACzE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC/E,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC9B;QACD,IAAI,CAACA,iBAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACxB,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9E,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC/E,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAC9B;QACD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;KAChC;IACD,QAAQ,CAAC,MAAM,EAAE;QACb,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;YACjC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SACrC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;KAChB;IACD,SAAS,GAAG;QACR,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,CAAC;QACzG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,CAAC,eAAe,KAAK;YACxD,IAAI,eAAe,CAAC,MAAM,EAAE;gBACxB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;gBAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;oBACvB,IAAI,CAAC,WAAW,EAAE,CAAC;iBACtB;aACJ;iBACI;gBACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;wBACrD,IAAI,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC7E,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;oBACjF,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,EAAE;wBAC/B,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;qBACtI;yBACI;;wBAED,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;wBAC3D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;qBACjF;iBACJ;qBACI;oBACD,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACjE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;iBACjC;gBACD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;aAChC;SACJ,CAAC,CAAC;KACN;IACD,OAAO,CAAC,KAAK,EAAE;QACX,OAAO,CAAC,CAACA,iBAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;KAC/D;IACD,eAAe,GAAG;QACd,IAAI,CAAC,UAAU,GAAG,CAAC,CAACA,iBAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC;KACpF;IACD,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE;QAC7B,IAAI,OAAO,CAAC;;QAEZ,AACA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;SAC5B;;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAACA,iBAAK,CAAC,QAAQ,CAAC,EAAE;YAClB,MAAM,QAAQ,GAAG,CAAC,QAAQ,EAAE;gBACxB,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;gBAChE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACjC,OAAO,GAAG,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,UAAU,EAAE,QAAQ,CAAC,CAAC;SACpF;QACD,IAAI,CAACA,iBAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACxC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK;gBACnC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;aAC1B,CAAC,CAAC;YACH,IAAI,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;gBAChF,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;aACxE;SACJ;KACJ;;;;;;IAMD,cAAc,CAAC,KAAK,EAAE;QAClB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC1B,MAAM,IAAI,GAAG,kBAAkB,CAAC,cAAc,EAAE,CAAC;YACjD,MAAM,WAAW,GAAG;gBAChB,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,IAAI;aACf,CAAC;YACF,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;;YAEhC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK;gBAC/C,IAAI,IAAI,CAAC,MAAM,IAAI,CAACA,iBAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBACpC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;iBAC9B;qBACI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBACnB,KAAK,GAAG,kBAAkB,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;iBAC1D;aACJ,CAAC,CAAC;SACN;QACD,OAAO,KAAK,CAAC;KAChB;IACD,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE;QAC5B,OAAO,GAAG,QAAQ,OAAO,CAAC,KAAK,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;QACjF,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAIA,iBAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACzD,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBAC1C,IAAI,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;oBAC3C,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBACnD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACrC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;iBACvC;qBACI;oBACD,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;iBACzC;aACJ;iBACI;gBACD,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aACzC;SACJ;aACI;YACD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACxC;KACJ;IACD,OAAO,CAAC,KAAK,EAAE;;QAEX,KAAK,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAACmC,OAAe,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAACA,OAAe,CAAC,CAAC,CAAC;KACxG;IACD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE;QACtB,IAAI,MAAM,IAAI,CAAC,GAAG,EAAE;YAChB,OAAO;SACV;;QAED,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;KAC9D;IACD,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE;QACpC,IAAI,IAAI,CAAC;QACT,IAAI,IAAI,CAAC,eAAe,EAAE;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAChD,IAAI,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC1E,gBAAgB,GAAG,gBAAgB,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,gBAAgB,GAAG,CAAC,GAAG,gBAAgB,CAAC;YAChH,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,YAAY,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE;gBAChD,KAAK,EAAE,IAAI,CAAC,eAAe;gBAC3B,eAAe,EAAE,CAAC,CAAC,KAAK;oBACpB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;wBACrB,IAAI,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;wBACxC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;wBACxB,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC;qBAC3B;iBACJ;gBACD,kBAAkB,EAAE,CAAC,CAAC,KAAK;oBACvB,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;oBAClB,IAAI,GAAG;wBACH,YAAY,EAAE,CAAC,CAAC,OAAO;wBACvB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE;qBACtG,CAAC;oBACF,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK;wBAC/C,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE;4BACxB,CAAC,CAAC,YAAY,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC;4BACrD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;yBAC/B;6BACI;4BACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;yBAChC;wBACD,IAAI,CAACnC,iBAAK,CAAC,UAAU,CAAC,IAAI,UAAU,KAAK,gBAAgB,KAAK,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE;4BAC5F,UAAU,GAAG,KAAK,CAAC;4BACnB,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;4BACjC,KAAK,GAAG,CAAC,CAAC;yBACb;qBACJ,CAAC,CAAC;iBACN;gBACD,eAAe,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK;oBAC7C,IAAI,IAAI,CAAC,OAAO,EAAE;wBACd,MAAM,CAAC,GAAG,GAAGqB,cAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;qBAChF;iBACJ;aACJ,CAAC,CAAC;YACH,KAAK,GAAG,CAAC,CAAC;YACV,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;SAChC;aACI,IAAI,IAAI,CAAC,QAAQ,KAAK,EAAE,EAAE;YAC3B,IAAI,GAAG;gBACH,YAAY,EAAE,EAAE;gBAChB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE;aACtG,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,YAAY,KAAK;gBAC/C,IAAI,YAAY,CAAC,YAAY,EAAE;oBAC3B,MAAM,CAAC,GAAG,GAAGA,cAAsB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC;oBACzF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;iBAC/B;qBACI;oBACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;iBAChC;gBACD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;aACpC,CAAC,CAAC;SACN;aACI;YACD,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;SACpC;KACJ;IACD,eAAe,CAAC,UAAU,EAAE;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAACe,KAAa,CAAC,IAAI,UAAU,EAAE;YAC/D,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;gBACvB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB;KACJ;IACD,gBAAgB,CAAC,KAAK,EAAE;QACpB,IAAIpC,iBAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACrB,OAAO;SACV;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;;QAExD,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK;YACzC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;gBACpC,IAAI,GAAG,EAAE;;oBAEL,MAAM,KAAK,KAAK,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;iBACzE;aACJ,CAAC,CAAC;SACN,CAAC;QACF,UAAU,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAEoC,KAAa,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;KACjF;IACD,WAAW,GAAG;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,GAAG,QAAQ,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,GAAG,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;KAC1B;IACD,cAAc,CAAC,IAAI,EAAE;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,UAAU,KAAK;YAChD,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;YACpB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,KAAK,KAAK,GAAG,IAAI,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;aAC5G;YACD,IAAI,UAAU,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;gBAC7C,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC3B,IAAY,CAAC,CAAC,CAAC;aACjD;YACD,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAC,CAAC;KACN;IACD,cAAc,CAAC,YAAY,EAAE;QACzB,MAAM,WAAW,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QAC7E,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,IAAI,KAAK;YAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACd,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC2B,KAAa,CAAC,EAAE;oBAChE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBAC5B,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;iBACtD;gBACD,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;SACJ,CAAC,CAAC;KACN;IACD,UAAU,GAAG;QACT,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAClE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QAC1E,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAChE,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YACpE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;SAC5E;KACJ;IACD,YAAY,GAAG;QACX,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;KACvE;IACD,aAAa,CAAC,KAAK,EAAE;QACjB,IAAI,KAAK,KAAK,eAAe,EAAE;YAC3B,OAAO;SACV;QACD,MAAM,aAAa,GAAG,CAAC,KAAK,KAAK,OAAO,IAAI,eAAe,GAAG,qBAAqB,CAAC;QACpF,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QACzF,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,KAAK,UAAU,EAAE;YAC3D,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC3F;aACI;YACD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SAClF;KACJ;IACD,sBAAsB,CAAC,GAAG,EAAE;QACxB,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;KACpE;IACD,aAAa,GAAG;QACZ,IAAI,CAACpC,iBAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACxB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAChF,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAC5E,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;SACrF;QACD,IAAI,CAACA,iBAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YACxB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACjF,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;SACrF;KACJ;IACD,cAAc,CAAC,CAAC,EAAE;QACd,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;KAClC;IACD,YAAY,GAAG;QACX,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/D,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACnE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACjE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACvE,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YACpE,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;SACzE;KACJ;IACD,cAAc,GAAG;QACb,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;KACpE;IACD,eAAe,CAAC,KAAK,EAAE;QACnB,IAAI,KAAK,KAAK,eAAe,EAAE;YAC3B,OAAO;SACV;QACD,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,KAAK,UAAU,EAAE;YAC3D,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;SAChC;aACI;YACD,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SAC/E;KACJ;IACD,wBAAwB,CAAC,GAAG,EAAE;QAC1B,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;KACjE;IACD,aAAa,CAAC,CAAC,EAAE;QACb,CAAC,CAAC,cAAc,EAAE,CAAC;KACtB;IACD,iBAAiB,CAAC,CAAC,EAAE;QACjB,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,EAAE;YAC9E,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAACwB,QAAgB,CAAC,EAAE;gBAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;aACf;iBACI,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAACC,UAAkB,CAAC,EAAE;gBACjD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aAChC;SACJ;QACD,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK;aACtCzB,iBAAK,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC;gBAC/B,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,KAAK,QAAQ,CAAC,EAAE;YACvD,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;gBAChC,IAAI,CAAC,IAAI,EAAE,CAAC;aACf;iBACI,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aAChC;SACJ;KACJ;IACD,gBAAgB,CAAC,CAAC,EAAE;QAChB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE;YACtD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC1E,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;SAC5E;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YACjE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAACqC,SAAiB,CAAC,CAAC;SAC9C;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;YACrB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,4BAA4B,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;SACxF;aACI,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;YAC7B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;SAC7E;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YACjC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,KAAK,CAAC,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;mBAC5G,IAAI,CAAC,KAAK,CAAC,UAAU,YAAY,WAAW,EAAE;gBACjD,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;iBACI;gBACD,IAAI,CAAC,QAAQ,EAAE,CAAC;aACnB;SACJ;QACD,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;SACvC;KACJ;IACD,YAAY,CAAC,CAAC,EAAE;QACZ,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;QACpC,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;YAC5E,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;KACJ;IACD,gBAAgB,CAAC,CAAC,EAAE;QAChB,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,EAAE;YAChB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;SACtC;KACJ;IACD,YAAY,CAAC,CAAC,EAAE;QACZ,IAAI,IAAI,CAAC,UAAU,KAAK,eAAe,EAAE;YACrC,CAAC,CAAC,eAAe,EAAE,CAAC;SACvB;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IACD,aAAa,CAAC,CAAC,EAAE;QACb,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;KAClC;IACD,aAAa,CAAC,MAAM,EAAE;QAClB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;KAC/B;IACD,eAAe,CAAC,CAAC,EAAE;QACf,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,GAAGjC,aAAqB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;YAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;SAClC;KACJ;;IAED,cAAc,CAAC,CAAC,EAAE;QACd,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QAC1D,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;KAClC;;IAED,cAAc,CAAC,CAAC,EAAE;QACd,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;;QAE1D,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,SAAS,EAAE,CAAC,IAAI,KAAK;YAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;gBACvB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;SACJ,CAAC,CAAC;KACN;IACD,mBAAmB,CAAC,CAAC,EAAE;QACnB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,GAAGgB,KAAa,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YAC1H,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,GAAGA,KAAa,CAAC,EAAE;gBAChF,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;aAClC;iBACI,IAAI,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,EAAE;gBACzC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aAChC;SACJ;KACJ;IACD,mBAAmB,CAAC,CAAC,EAAE;QACnB,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE;YACzE,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;gBAChC,IAAI,CAAC,IAAI,EAAE,CAAC;aACf;iBACI,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aAChC;SACJ;QACD,IAAI,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAACkB,IAAY,CAAC;YACjF,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC5B,IAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAACyB,OAAe,CAAC,EAAE;YACvG,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB;KACJ;IACD,gBAAgB,CAAC,CAAC,EAAE;QAChB,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE;YAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;KACJ;IACD,mBAAmB,GAAG;QAClB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE;YAC7D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SACjC;KACJ;IACD,eAAe,CAAC,CAAC,EAAE;QACf,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC;QACrB,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,OAAO;SACV;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAGG,IAAY,CAAC,CAAC;QACpD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAGzB,QAAgB,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAGa,QAAgB,CAAC,CAAC;QAC5D,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;QAC1D,IAAI,CAAC,CAAC1B,iBAAK,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;aAC1D,CAACA,iBAAK,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC5F,CAACA,iBAAK,CAAC,cAAc,CAAC,IAAI,CAACA,iBAAK,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;YAChG,OAAO;SACV;aACI;YACD,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;gBAChC,IAAI,CAAC,IAAI,EAAE,CAAC;aACf;iBACI,IAAI,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE;gBACrC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;aAChC;SACJ;KACJ;IACD,aAAa,CAAC,CAAC,EAAE;QACb,MAAM,SAAS,GAAG;YACd,aAAa,EAAE,IAAI,CAAC,aAAa,KAAK,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa;YACjF,KAAK,EAAE,CAAC,CAAC,KAAK;SACjB,CAAC;QACF,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE;YAC1F,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;YAChC,SAAS,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC;SACnD;QACD,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;KACrC;;;;;;IAMD,QAAQ,GAAG;QACP,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACrC;;;;;;IAMD,IAAI,GAAG;QACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,OAAO;SACV;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,GAAGoB,KAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,MAAM,GAAG,IAAI,CAAC;;QAElB,MAAM,GAAG,MAAM,CAAC,GAAG,GAAGgB,KAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;QACD,MAAM,WAAW,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;QACzE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,IAAI,KAAK;YAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACd,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACpC;SACJ,CAAC,CAAC;KACN;;;;;;IAMD,OAAO,GAAG;QACN,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,MAAM,CAACG,OAAc,EAAE,EAAE,CAAC,CAAC;SACnC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,SAAS,GAAG,CAACJ,OAAe,EAAEF,GAAW,CAAC,CAAC;QACjD,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;YACvB,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;SACtC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE;YACnC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;SAC5D;QACD,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACxC,KAAK,CAAC,OAAO,EAAE,CAAC;SACnB;;QAED,IAAI,IAAI,CAAC,OAAO,EAAE;YACd,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;KACJ;;;;;;IAMD,cAAc,GAAG;QACb,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;KACvC;;;;;;;IAOD,eAAe,GAAG;QACd,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,OAAO,OAAO,CAAC;KAClB;;;;;;;IAOD,aAAa,GAAG;QACZ,OAAO,eAAe,CAAC;KAC1B;;;;;;;;;IASD,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE;QAChC,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;YACrB,MAAM,eAAe,GAAG,gBAAgB,IAAI,OAAO,CAAC;YACpD,IAAI,CAAC,eAAe,IAAI,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,cAAc,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE;gBACrH,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;aACjC;iBACI;gBACD,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;SACJ;QACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACrC,QAAQ,IAAI;gBACR,KAAK,aAAa;;oBAEd,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;oBACjF,MAAM;gBACV,KAAK,OAAO;oBACR,IAAI,CAAC,WAAW,EAAE,CAAC;;oBAEnB,IAAI,CAAC,UAAU,KAAK,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;0BACxG,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAChC,MAAM;gBACV,KAAK,WAAW;;oBAEZ,IAAI,CAAC,UAAU,KAAK,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;0BACxG,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAChC,MAAM;gBACV,KAAK,UAAU;oBACX,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,MAAM;gBACV,KAAK,UAAU;oBACX,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC/B,MAAM;gBACV,KAAK,WAAW;oBACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC/B,MAAM;gBACV,KAAK,UAAU;oBACX,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC1C,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACvC,MAAM;gBACV,KAAK,MAAM;oBACP,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBACvC,MAAM;gBACV,KAAK,gBAAgB;oBACjB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;oBAC1C,MAAM;gBACV,KAAK,YAAY;oBACb,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBACzC,IAAI,OAAO,CAAC,UAAU,KAAK,eAAe,EAAE;wBACxC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;qBAC1C;oBACD,MAAM;aACb;SACJ;KACJ;CACJ,CAAC;AACF/B,YAAU,CAAC;IACP,QAAQ,CAAC,EAAE,CAAC;CACf,EAAE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5CA,YAAU,CAAC;IACP,QAAQ,CAAC,IAAI,CAAC;CACjB,EAAE,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7CA,YAAU,CAAC;IACP,QAAQ,CAAC,EAAE,CAAC;CACf,EAAE,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AAChDA,YAAU,CAAC;IACP,QAAQ,CAAC,IAAI,CAAC;CACjB,EAAE,aAAa,CAAC,SAAS,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3DA,YAAU,CAAC;IACP,QAAQ,CAAC,IAAI,CAAC;CACjB,EAAE,aAAa,CAAC,SAAS,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;AACvDA,YAAU,CAAC;IACP,QAAQ,CAAC,EAAE,CAAC;CACf,EAAE,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AAChDA,YAAU,CAAC;IACP,QAAQ,CAAC,EAAE,CAAC;CACf,EAAE,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AAClDA,YAAU,CAAC;IACP,QAAQ,CAAC,OAAO,CAAC;CACpB,EAAE,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;AACjDA,YAAU,CAAC;IACP,QAAQ,CAAC,EAAE,CAAC;CACf,EAAE,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3CA,YAAU,CAAC;IACP,QAAQ,CAAC,OAAO,CAAC;CACpB,EAAE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5CA,YAAU,CAAC;IACP,QAAQ,CAAC,YAAY,CAAC;CACzB,EAAE,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/CA,YAAU,CAAC;IACP,QAAQ,CAAC,MAAM,CAAC;CACnB,EAAE,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC5CA,YAAU,CAAC;IACP,QAAQ,CAAC,OAAO,CAAC;CACpB,EAAE,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AAClDA,YAAU,CAAC;IACP,QAAQ,CAAC,OAAO,CAAC;CACpB,EAAE,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AAClDA,YAAU,CAAC;IACP,QAAQ,CAAC,QAAQ,CAAC;CACrB,EAAE,aAAa,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AACpDA,YAAU,CAAC;IACP,QAAQ,CAAC,KAAK,CAAC;CAClB,EAAE,aAAa,CAAC,SAAS,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC;AACzDA,YAAU,CAAC;IACP,QAAQ,CAAC,KAAK,CAAC;CAClB,EAAE,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;AAChDA,YAAU,CAAC;IACP,QAAQ,CAAC,IAAI,CAAC;CACjB,EAAE,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;AACnDA,YAAU,CAAC;IACP,QAAQ,CAAC,KAAK,CAAC;CAClB,EAAE,aAAa,CAAC,SAAS,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;AACtDA,YAAU,CAAC;IACP,QAAQ,CAAC,IAAI,CAAC;CACjB,EAAE,aAAa,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;AACrDA,YAAU,CAAC;IACP,OAAO,CAAC,EAAE,EAAE,aAAa,CAAC;CAC7B,EAAE,aAAa,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;AACrDA,YAAU,CAAC;IACP,QAAQ,CAAC,IAAI,CAAC;CACjB,EAAE,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7CA,YAAU,CAAC;IACP,QAAQ,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAC/C,EAAE,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AAClDA,YAAU,CAAC;IACP,QAAQ,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;CACjD,EAAE,aAAa,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;AACpDA,YAAU,CAAC;IACP,QAAQ,CAAC,IAAI,CAAC;CACjB,EAAE,aAAa,CAAC,SAAS,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;AACvDA,YAAU,CAAC;IACP,KAAK,EAAE;CACV,EAAE,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/CA,YAAU,CAAC;IACP,KAAK,EAAE;CACV,EAAE,aAAa,CAAC,SAAS,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC1DA,YAAU,CAAC;IACP,KAAK,EAAE;CACV,EAAE,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;AACnDA,YAAU,CAAC;IACP,KAAK,EAAE;CACV,EAAE,aAAa,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;AACrDA,YAAU,CAAC;IACP,KAAK,EAAE;CACV,EAAE,aAAa,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;AACrDA,YAAU,CAAC;IACP,KAAK,EAAE;CACV,EAAE,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AAClDA,YAAU,CAAC;IACP,KAAK,EAAE;CACV,EAAE,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;AACjDA,YAAU,CAAC;IACP,KAAK,EAAE;CACV,EAAE,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/CA,YAAU,CAAC;IACP,KAAK,EAAE;CACV,EAAE,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9CA,YAAU,CAAC;IACP,KAAK,EAAE;CACV,EAAE,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;AACnDA,YAAU,CAAC;IACP,KAAK,EAAE;CACV,EAAE,aAAa,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;AACnDA,YAAU,CAAC;IACP,KAAK,EAAE;CACV,EAAE,aAAa,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;AACjD,aAAa,GAAGA,YAAU,CAAC;IACvB,qBAAqB;CACxB,EAAE,aAAa,CAAC,CAAC;;AC35ClB;;GAEG;;ACAH;;;AAGA,AAAO,MAAM,IAAI,CAAC;IACd,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;KAC3B;IACD,MAAM,CAAC,CAAC,EAAE;QACN,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,SAAS,GAAG;QACR,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;KAC3B;IACD,KAAK,GAAG;QACJ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;KACvB;IACD,MAAM,CAAC,CAAC,EAAE;QACN,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KAC9B;IACD,QAAQ,GAAG;QACP,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;KAChC;IACD,gBAAgB,GAAG;QACf,IAAIF,iBAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YAC5B,OAAO;SACV;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;KACnC;IACD,OAAO,GAAG;QACN,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9B;IACD,gBAAgB,GAAG;QACf,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC2B,MAAa,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,EAAE,CAACb,QAAe,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,EAAE,CAACC,SAAgB,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,EAAE,CAACgB,MAAa,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,EAAE,CAACC,WAAkB,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,EAAE,CAACE,cAAqB,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,CAAC,MAAM,CAAC,EAAE,CAACK,OAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;KACtD;IACD,mBAAmB,GAAG;QAClB,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YACzB,OAAO;SACV;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAACZ,MAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAACb,QAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CAACC,SAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,GAAG,CAACgB,MAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,GAAG,CAACC,WAAkB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAACE,cAAqB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAACK,OAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KACjD;CACJ;;ACxDD;;;AAGA,AAAO,MAAMC,cAAY,CAAC;IACtB,WAAW,CAAC,MAAM,EAAE;QAChB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC3C;IACD,MAAM,CAAC,CAAC,EAAE;QACN,IAAI,CAAC,OAAO,GAAG,IAAIC,YAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;KACnC;;;;;IAKD,SAAS,GAAG;QACR,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;KAC5B;IACD,KAAK,GAAG;QACJ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KAChC;IACD,WAAW,CAAC,CAAC,EAAE;QACX,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,EAAE;YAC3C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACpD;KACJ;;;;;;;;IAQD,OAAO,GAAG;QACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;;;;;;IAMD,aAAa,GAAG;QACZ,OAAO,eAAe,CAAC;KAC1B;CACJ;;ACjDD;;;AAGA,AAAO,MAAMC,aAAW,CAAC;IACrB,WAAW,CAAC,MAAM,EAAE;QAChB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC3C;IACD,MAAM,CAAC,CAAC,EAAE;QACN,IAAI,CAAC,OAAO,GAAG,IAAIC,WAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;KACnC;IACD,KAAK,GAAG;QACJ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KAChC;IACD,WAAW,CAAC,CAAC,EAAE;QACX,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE;YACpC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACpD;KACJ;;;;;;;;IAQD,OAAO,GAAG;QACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;;;;;;IAMD,aAAa,GAAG;QACZ,OAAO,cAAc,CAAC;KACzB;CACJ;;ACzCD;;;AAGA,AAAO,MAAMC,UAAQ,CAAC;IAClB,WAAW,CAAC,MAAM,EAAE;QAChB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC3C;IACD,MAAM,CAAC,CAAC,EAAE;QACN,IAAI,CAAC,OAAO,GAAG,IAAIC,QAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;KACnC;IACD,KAAK,GAAG;QACJ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KAChC;;;;;IAKD,SAAS,GAAG;QACR,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;KAC5B;;;;;;;IAOD,OAAO,GAAG;QACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;IACD,WAAW,CAAC,CAAC,EAAE;QACX,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACpD;KACJ;;;;;IAKD,aAAa,GAAG;QACZ,OAAO,WAAW,CAAC;KACtB;CACJ;;AC/CD;;;AAGA,AAAO,MAAMC,iBAAe,CAAC;IACzB,WAAW,CAAC,MAAM,EAAE;QAChB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC3C;IACD,MAAM,CAAC,CAAC,EAAE;QACN,IAAI,CAAC,OAAO,GAAG,IAAIC,eAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;KACnC;IACD,KAAK,GAAG;QACJ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KAChC;;;;;IAKD,aAAa,GAAG;QACZ,OAAO,mBAAmB,CAAC;KAC9B;IACD,WAAW,CAAC,CAAC,EAAE;QACX,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE;YACxC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACpD;KACJ;;;;;;;;IAQD,OAAO,GAAG;QACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;CACJ;;ACvCD;;;AAGA,AAAO,MAAMC,aAAW,CAAC;IACrB,WAAW,CAAC,MAAM,EAAE;QAChB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC3C;IACD,MAAM,CAAC,CAAC,EAAE;QACN,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC;QAClC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAIC,WAAc,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;KACnC;IACD,WAAW,CAAC,CAAC,EAAE;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACnC;KACJ;IACD,YAAY,CAAC,CAAC,EAAE;QACZ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;SACpC;KACJ;IACD,KAAK,GAAG;QACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACjB,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YAC/C,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;SAC/E;KACJ;IACD,WAAW,CAAC,CAAC,EAAE;QACX,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,EAAE;YAC1C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACpD;KACJ;IACD,cAAc,GAAG;QACb,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;KAC9C;;;;;;;;IAQD,OAAO,GAAG;QACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;;;;;;IAMD,aAAa,GAAG;QACZ,OAAO,cAAc,CAAC;KACzB;CACJ;;ACpED;;;AAGA,AAAO,MAAM,GAAG,CAAC;IACb,WAAW,CAAC,MAAM,EAAE;QAChB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QAC1G,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC3C;IACD,MAAM,CAAC,CAAC,EAAE;QACN,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;KACnC;IACD,KAAK,GAAG;QACJ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;KAC1B;IACD,WAAW,CAAC,CAAC,EAAE;QACX,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACpD;KACJ;IACD,WAAW,GAAG;QACV,IAAI,MAAM,CAAC;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE;YACxC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;YACzD,OAAO,CAAC,MAAM,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;SACxC;aACI;YACD,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC;YAC7D,OAAO,CAAC,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,+BAA+B,IAAI,MAAM,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;SAClH;KACJ;IACD,OAAO,GAAG;QACN,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;KAC1B;;;;;;;;IAQD,OAAO,GAAG;QACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;;;;;;IAMD,aAAa,GAAG;QACZ,OAAO,KAAK,CAAC;KAChB;CACJ;;ACzDD;;;AAGA,AAAO,MAAMC,QAAM,CAAC;IAChB,WAAW,CAAC,MAAM,EAAE;QAChB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC3C;IACD,MAAM,CAAC,CAAC,EAAE;QACN,IAAI,CAAC,OAAO,GAAG,IAAIC,MAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;KACnC;IACD,KAAK,GAAG;QACJ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KAChC;IACD,WAAW,CAAC,CAAC,EAAE;QACX,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACpD;KACJ;IACD,OAAO,GAAG;QACN,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;KAC1B;;;;;;;;IAQD,OAAO,GAAG;QACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;;;;;;IAMD,aAAa,GAAG;QACZ,OAAO,QAAQ,CAAC;KACnB;CACJ;;AC5CD;;;AAGA,AAAO,MAAMC,YAAU,CAAC;IACpB,WAAW,CAAC,MAAM,EAAE;QAChB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC3C;IACD,MAAM,CAAC,CAAC,EAAE;QACN,IAAI,CAAC,OAAO,GAAG,IAAIC,UAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;KACnC;IACD,KAAK,GAAG;QACJ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;KAC1B;IACD,WAAW,CAAC,CAAC,EAAE;QACX,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/D,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACpD;KACJ;;;;;;IAMD,aAAa,GAAG;QACZ,OAAO,aAAa,CAAC;KACxB;;;;;;;;IAQD,OAAO,GAAG;QACN,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;CACJ;;AC3CD;;GAEG;;ACFH;;GAEG;;ACFH;;GAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ej2-inplace-editor.es2015.js","sources":["../src/es6/inplace-editor/base/util.js","../src/es6/inplace-editor/base/events.js","../src/es6/inplace-editor/base/models.js","../src/es6/inplace-editor/base/classes.js","../src/es6/inplace-editor/base/inplace-editor.js","../src/es6/inplace-editor/base/index.js","../src/es6/inplace-editor/modules/base-module.js","../src/es6/inplace-editor/modules/auto-complete.js","../src/es6/inplace-editor/modules/color-picker.js","../src/es6/inplace-editor/modules/combo-box.js","../src/es6/inplace-editor/modules/date-range-picker.js","../src/es6/inplace-editor/modules/multi-select.js","../src/es6/inplace-editor/modules/rte.js","../src/es6/inplace-editor/modules/slider.js","../src/es6/inplace-editor/modules/time-picker.js","../src/es6/inplace-editor/modules/index.js","../src/es6/inplace-editor/index.js","../src/es6/index.js"],"sourcesContent":["import { isNullOrUndefined as isNOU, Internationalization, isBlazor } from '@syncfusion/ej2-base';\n/**\n * Exports util methods used by In-place editor.\n */\nconst intl = new Internationalization();\n/**\n * @param {string} type - specifies the string type\n * @param {valueType} val - specifies the value type\n * @param {modelType} model - specifies the model type\n * @returns {string} - returns the string\n */\nexport function parseValue(type, val, model) {\n if (isNOU(val) || val === '') {\n return '';\n }\n let result;\n let tempFormat;\n switch (type) {\n case 'Color': {\n const hex = val;\n result = (hex.length > 7) ? hex.slice(0, -2) : hex;\n break;\n }\n case 'Date':\n tempFormat = model.format;\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' });\n break;\n case 'DateRange': {\n tempFormat = model.format;\n const date = val;\n result = intl.formatDate(date[0], { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' }) + ' - '\n + intl.formatDate(date[1], { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' });\n break;\n }\n case 'DateTime':\n tempFormat = model.format;\n if (isNOU(tempFormat) || tempFormat === '') {\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' }) + ' '\n + intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 't' : 'hm' });\n }\n else {\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 'd' : 'yMd' });\n }\n break;\n case 'Time':\n tempFormat = model.format;\n result = intl.formatDate(val, { format: tempFormat, type: type, skeleton: isBlazor() ? 't' : 'hm' });\n break;\n case 'Numeric': {\n tempFormat = isNOU(model.format) ? 'n2' :\n model.format;\n const tempVal = isNOU(val) ? null : (typeof (val) === 'number' ? val : intl.parseNumber(val));\n result = intl.formatNumber(tempVal, { format: tempFormat });\n break;\n }\n default:\n result = val.toString();\n break;\n }\n return result;\n}\n/**\n * @param {string} type - specifies the string value\n * @param {valueType} val - specifies the value type\n * @returns {valueType} - returns the value type\n */\nexport function getCompValue(type, val) {\n if (isNOU(val) || val === '') {\n return val;\n }\n if ((type === 'Date' || type === 'Time' || type === 'DateTime') && typeof (val) === 'string') {\n val = new Date(val);\n }\n else if (type === 'DateRange') {\n if (typeof (val) === 'object' && typeof (val[0]) === 'string') {\n val = [new Date(val[0]), new Date(val[1])];\n }\n else if (typeof (val) === 'string') {\n const temp = val.split('-');\n val = [new Date(temp[0]), new Date(temp[1])];\n }\n }\n return val;\n}\n/**\n * @param {string} value - specifies the string value\n * @returns {string} - returns the string\n * @hidden\n */\nexport function encode(value) {\n const data = [];\n for (let i = value.length - 1; i >= 0; i--) {\n data.unshift(['&#', value[i].charCodeAt(0), ';'].join(''));\n }\n return data.join('');\n}\n","/**\n * In-place Editor events defined here.\n */\n/** @hidden */\nexport const render = 'render';\n/** @hidden */\nexport const update = 'update';\n/** @hidden */\nexport const destroy = 'destroy';\n/** @hidden */\nexport const setFocus = 'set-focus';\n/** @hidden */\nexport const accessValue = 'access-value';\n/** @hidden */\nexport const destroyModules = 'destroy-modules';\n/** @hidden */\nexport const showPopup = 'show-popup';\n","var __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};\nimport { ChildProperty, Property } from '@syncfusion/ej2-base';\n/**\n * Configures the popup settings of the In-place editor.\n */\nexport class PopupSettings extends ChildProperty {\n}\n__decorate([\n Property('')\n], PopupSettings.prototype, \"title\", void 0);\n__decorate([\n Property(null)\n], PopupSettings.prototype, \"model\", void 0);\n/**\n * @hidden\n */\nexport const modulesList = {\n /* eslint-disable */\n 'AutoComplete': 'auto-complete',\n 'Color': 'color-picker',\n 'ComboBox': 'combo-box',\n 'DateRange': 'date-range-picker',\n 'MultiSelect': 'multi-select',\n 'RTE': 'rte',\n 'Slider': 'slider',\n 'Time': 'time-picker'\n /* eslint-enable */\n};\n/**\n * @hidden\n */\n// eslint-disable-next-line\nexport let localeConstant = {\n /* eslint-disable */\n 'Click': { 'editAreaClick': 'Click to edit' },\n 'DblClick': { 'editAreaDoubleClick': 'Double click to edit' },\n 'EditIconClick': { 'editAreaClick': 'Click to edit' }\n /* eslint-enable */\n};\n","/**\n * In-place Editor classes defined here.\n */\n/** @hidden */\nexport const ROOT = 'e-inplaceeditor';\n/** @hidden */\nexport const ROOT_TIP = 'e-inplaceeditor-tip';\n/** @hidden */\nexport const VALUE_WRAPPER = 'e-editable-value-wrapper';\n/** @hidden */\nexport const VALUE = 'e-editable-value';\n/** @hidden */\nexport const OVERLAY_ICON = 'e-editable-overlay-icon';\n/** @hidden */\nexport const TIP_TITLE = 'e-editable-tip-title';\n/** @hidden */\nexport const TITLE = 'e-editable-title';\n/** @hidden */\nexport const INLINE = 'e-editable-inline';\n/** @hidden */\nexport const POPUP = 'e-editable-popup';\n/** @hidden */\nexport const WRAPPER = 'e-editable-wrapper';\n/** @hidden */\nexport const LOADING = 'e-editable-loading';\n/** @hidden */\nexport const FORM = 'e-editable-form';\n/** @hidden */\nexport const CTRL_GROUP = 'e-component-group';\n/** @hidden */\nexport const INPUT = 'e-editable-component';\n/** @hidden */\nexport const BUTTONS = 'e-editable-action-buttons';\n/** @hidden */\nexport const EDITABLE_ERROR = 'e-editable-error';\n/** @hidden */\nexport const ELEMENTS = 'e-editable-elements';\n/** @hidden */\nexport const OPEN = 'e-editable-open';\n/** @hidden */\nexport const BTN_SAVE = 'e-btn-save';\n/** @hidden */\nexport const BTN_CANCEL = 'e-btn-cancel';\n/** @hidden */\nexport const RTE_SPIN_WRAP = 'e-rte-spin-wrap';\n/** @hidden */\nexport const CTRL_OVERLAY = 'e-control-overlay';\n/** @hidden */\nexport const DISABLE = 'e-disable';\n/** @hidden */\nexport const ICONS = 'e-icons';\n/** @hidden */\nexport const PRIMARY = 'e-primary';\n/** @hidden */\nexport const SHOW = 'e-show';\n/** @hidden */\nexport const HIDE = 'e-hide';\n/** @hidden */\nexport const RTL = 'e-rtl';\n/** @hidden */\nexport const ERROR = 'e-error';\n/** @hidden */\nexport const LOAD = 'e-loading';\n","var __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};\nimport { Component, NotifyPropertyChanges, Property, Event, select } from '@syncfusion/ej2-base';\nimport { detach, addClass, removeClass, EventHandler, setStyleAttribute, Complex } from '@syncfusion/ej2-base';\nimport { isNullOrUndefined as isNOU, closest, extend, L10n, compile, Browser, Touch } from '@syncfusion/ej2-base';\nimport { updateBlazorTemplate, resetBlazorTemplate, SanitizeHtmlHelper, getValue, isBlazor } from '@syncfusion/ej2-base';\nimport { DataManager, UrlAdaptor, Query, WebApiAdaptor, ODataV4Adaptor, Predicate } from '@syncfusion/ej2-data';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { DatePicker, DateTimePicker } from '@syncfusion/ej2-calendars';\nimport { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';\nimport { Tooltip } from '@syncfusion/ej2-popups';\nimport { NumericTextBox, TextBox } from '@syncfusion/ej2-inputs';\nimport { FormValidator, MaskedTextBox } from '@syncfusion/ej2-inputs';\nimport { DropDownList } from '@syncfusion/ej2-dropdowns';\n/* Helper modules */\nimport * as events from './events';\nimport * as classes from './classes';\n/* Models */\nimport { PopupSettings, modulesList, localeConstant } from './models';\n/* Interface */\nimport { parseValue, getCompValue, encode } from './util';\n/**\n * ```html\n * * The In-place editor control is used to edit an element in a place and to update the value in server.\n * <div id='element' />\n * <script>\n * var editorObj = new InPlaceEditor();\n * editorObj.appendTo('#element');\n * </script>\n * ```\n */\nlet InPlaceEditor = class InPlaceEditor extends Component {\n /**\n * Initializes a new instance of the In-place editor class.\n *\n * @param {InPlaceEditorModel} options - Specifies In-place editor model properties as options.\n * @param {string} element - Specifies the element for which In-place editor applies.\n */\n constructor(options, element) {\n super(options, element);\n this.needsID = true;\n }\n initializeValue() {\n this.initRender = true;\n this.isTemplate = false;\n this.isVue = false;\n this.isExtModule = false;\n this.submitBtn = undefined;\n this.cancelBtn = undefined;\n this.isClearTarget = false;\n this.btnElements = undefined;\n this.dataManager = undefined;\n this.oldValue = undefined;\n this.divComponents = ['RTE', 'Slider'];\n this.clearComponents = ['AutoComplete', 'Mask', 'Text'];\n this.dateType = ['Date', 'DateTime', 'Time'];\n this.inputDataEle = ['Date', 'DateTime', 'DateRange', 'Time', 'Numeric'];\n this.dropDownEle = ['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'];\n this.moduleList = ['AutoComplete', 'Color', 'ComboBox', 'DateRange', 'MultiSelect', 'RTE', 'Slider', 'Time'];\n }\n /**\n * Initialize the event handler\n *\n * @returns {void}\n * @private\n */\n preRender() {\n this.initializeValue();\n this.onScrollResizeHandler = this.scrollResizeHandler.bind(this);\n if (isNOU(this.model)) {\n this.setProperties({ model: {} }, true);\n }\n this.titleEle = this.createElement('div', { className: classes.TITLE });\n if (!isNOU(this.popupSettings.model) && this.popupSettings.model.afterOpen) {\n this.afterOpenEvent = this.popupSettings.model.afterOpen;\n }\n }\n /**\n * To Initialize the In-place editor rendering\n *\n * @returns {void}\n * @private\n */\n render() {\n if (isNOU(this.element.getAttribute('tabindex'))) {\n this.element.setAttribute('tabindex', '0');\n }\n this.checkIsTemplate();\n this.disable(this.disabled);\n this.updateAdaptor();\n this.appendValueElement();\n this.updateValue();\n // eslint-disable-next-line\n this.textOption === 'Never' ?\n this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)))\n : this.renderInitialValue();\n this.wireEvents();\n this.setRtl(this.enableRtl);\n this.enableEditor(this.enableEditMode, true);\n this.setClass('add', this.cssClass);\n this.renderComplete();\n }\n setClass(action, val) {\n if (!this.isEmpty(val)) {\n const allClassName = val.split(' ');\n for (let i = 0; i < allClassName.length; i++) {\n if (allClassName[i].trim() !== '') {\n // eslint-disable-next-line\n action === 'add' ? addClass([this.element], [allClassName[i]]) : removeClass([this.element], [allClassName[i]]);\n }\n }\n }\n }\n appendValueElement() {\n this.valueWrap = this.createElement('div', { id: this.element.id + '_wrap', className: classes.VALUE_WRAPPER });\n if (!isBlazor()) {\n this.element.innerHTML = '';\n }\n this.valueEle = this.createElement('span', { className: classes.VALUE });\n this.editIcon = this.createElement('span', {\n className: classes.OVERLAY_ICON + ' ' + classes.ICONS,\n attrs: { 'title': this.getLocale({ editIcon: 'Click to edit' }, 'editIcon') }\n });\n this.valueWrap.appendChild(this.valueEle);\n this.valueWrap.appendChild(this.editIcon);\n this.element.appendChild(this.valueWrap);\n }\n renderInitialValue() {\n if (['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'].indexOf(this.type) > -1\n && !isNOU(this.value) && !this.isEmpty(this.value.toString()) && !isNOU(this.model.fields)\n && !isNOU(this.model.dataSource)) {\n this.renderValue(this.getLocale({ loadingText: 'Loading...' }, 'loadingText'));\n this.valueWrap.classList.add(classes.LOAD);\n createSpinner({ target: this.valueWrap, width: 10 });\n showSpinner(this.valueWrap);\n this.getInitFieldMapValue();\n }\n else {\n this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)));\n }\n }\n getInitFieldMapValue() {\n const model = this.model;\n const mText = model.fields.text;\n const mVal = model.fields.value;\n const query = isNOU(model.query) ? new Query() : model.query;\n if (model.dataSource instanceof DataManager) {\n model.dataSource.executeQuery(this.getInitQuery(model, query)).then((e) => {\n // eslint-disable-next-line\n this.updateInitValue(mText, mVal, e.result);\n });\n }\n else {\n this.updateInitValue(mText, mVal, new DataManager(model.dataSource).executeLocal(\n // eslint-disable-next-line\n this.getInitQuery(model, query)));\n }\n }\n getInitQuery(model, query) {\n let predicate;\n const mVal = model.fields.value;\n const value = this.value;\n if (this.type !== 'MultiSelect' || typeof (this.value) !== 'object') {\n predicate = new Predicate(mVal, 'equal', this.value);\n }\n else {\n let i = 0;\n for (const val of value) {\n predicate = ((i === 0) ? predicate = new Predicate(mVal, 'equal', val) : predicate.or(mVal, 'equal', val));\n i++;\n }\n }\n return query.where(predicate);\n }\n // eslint-disable-next-line\n updateInitValue(mText, mVal, result) {\n if (result.length <= 0) {\n return;\n }\n if (result.length === 1) {\n this.valueEle.innerHTML = this.checkValue(getValue((isNOU(mText) ? mVal : mText), result[0]));\n }\n else {\n const val = [];\n for (const obj of result) {\n val.push(getValue((isNOU(mText) ? mVal : mText), obj));\n }\n this.valueEle.innerHTML = this.checkValue(val.toString());\n }\n hideSpinner(this.valueWrap);\n this.valueWrap.classList.remove(classes.LOAD);\n }\n renderValue(val) {\n // eslint-disable-next-line\n this.enableHtmlSanitizer && this.type !== 'RTE' && this.type !== 'MultiSelect' ? this.valueEle.innerText = val :\n (this.valueEle.innerHTML = this.enableHtmlParse ? val : encode(val));\n if (this.type === 'Color') {\n setStyleAttribute(this.valueEle, { 'color': val });\n }\n if (this.mode === 'Inline') {\n if (this.isEditorOpen()) {\n removeClass([this.valueWrap], [classes.HIDE]);\n }\n }\n }\n isEditorOpen() {\n if (this.isVue && (this.enableEditMode || (!isNOU(this.valueWrap) &&\n !(this.valueWrap.classList.contains(classes.HIDE) || this.valueWrap.classList.contains('e-tooltip'))))) {\n return false;\n }\n else {\n return true;\n }\n }\n renderEditor() {\n this.prevValue = this.value;\n this.beginEditArgs = { mode: this.mode, cancelFocus: false, cancel: false };\n this.trigger('beginEdit', this.beginEditArgs);\n if (this.beginEditArgs.cancel) {\n return;\n }\n // eslint-disable-next-line\n let tipOptions = undefined;\n const target = select('.' + classes.VALUE_WRAPPER, this.element);\n if (this.editableOn !== 'EditIconClick') {\n target.parentElement.removeAttribute('title');\n }\n if (this.valueWrap.classList.contains(classes.OPEN)) {\n return;\n }\n if (this.mode === 'Inline') {\n addClass([this.valueWrap], [classes.HIDE]);\n this.inlineWrapper = this.createElement('div', { className: classes.INLINE });\n this.element.appendChild(this.inlineWrapper);\n if (['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'].indexOf(this.type) > -1) {\n this.checkRemoteData(this.model);\n }\n else {\n this.renderAndOpen();\n }\n }\n else {\n if (!isNOU(this.popupSettings.model) && this.popupSettings.model.afterOpen) {\n this.popupSettings.model.afterOpen = this.afterOpenHandler.bind(this);\n }\n const content = this.createElement('div', { className: classes.POPUP });\n if (!this.isEmpty(this.popupSettings.title)) {\n this.titleEle.innerHTML = this.popupSettings.title;\n content.appendChild(this.titleEle);\n }\n tipOptions = {\n content: content, opensOn: 'Custom',\n enableRtl: this.enableRtl, cssClass: classes.ROOT_TIP,\n afterOpen: this.afterOpenHandler.bind(this)\n };\n content.appendChild(this.renderControl(document.body));\n extend(tipOptions, this.popupSettings.model, tipOptions, true);\n this.tipObj = new Tooltip(tipOptions);\n this.tipObj.appendTo(target);\n this.tipObj.open(target);\n }\n if (this.actionOnBlur !== 'Ignore') {\n this.wireDocEvent();\n }\n addClass([this.valueWrap], [classes.OPEN]);\n this.setProperties({ enableEditMode: true }, true);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.renderReactTemplates();\n }\n }\n renderAndOpen() {\n this.renderControl(this.inlineWrapper);\n this.afterOpenHandler(null);\n }\n checkRemoteData(model) {\n if (model.dataSource instanceof DataManager) {\n model.dataBound = () => {\n this.afterOpenHandler(null);\n };\n this.renderControl(this.inlineWrapper);\n if ((isNOU(model.value) && isNOU(this.value)) || (model.value === this.value\n && (!isNOU(model.value) && model.value.length === 0))) {\n this.showDropDownPopup();\n }\n }\n else {\n this.renderAndOpen();\n }\n }\n showDropDownPopup() {\n if (this.type === 'DropDownList') {\n if (!this.model.allowFiltering) {\n this.componentObj.focusIn();\n }\n this.componentObj.showPopup();\n }\n else {\n if (this.isExtModule) {\n this.notify(((this.type === 'MultiSelect') ? events.setFocus : events.showPopup), {});\n }\n }\n }\n setAttribute(ele, attr) {\n const value = this.name && this.name.length !== 0 ? this.name : this.element.id;\n attr.forEach((val) => {\n ele.setAttribute(val, ((val === 'id') ? (value + '_editor') : value));\n });\n }\n renderControl(target) {\n let ele;\n this.containerEle = this.createElement('div', { className: classes.WRAPPER });\n this.loader = this.createElement('div', { className: classes.LOADING });\n this.formEle = this.createElement('form', { className: classes.FORM });\n const ctrlGroupEle = this.createElement('div', { className: classes.CTRL_GROUP });\n const inputWrap = this.createElement('div', { className: classes.INPUT });\n target.appendChild(this.containerEle);\n this.loadSpinner();\n this.containerEle.appendChild(this.formEle);\n this.formEle.appendChild(ctrlGroupEle);\n if (this.isTemplate) {\n this.appendTemplate(inputWrap, this.template);\n }\n else {\n if (Array.prototype.indexOf.call(this.divComponents, this.type) > -1) {\n ele = this.createElement('div');\n this.setAttribute(ele, ['id']);\n }\n else {\n ele = this.createElement('input');\n this.setAttribute(ele, ['id', 'name']);\n }\n this.componentRoot = ele;\n inputWrap.appendChild(ele);\n inputWrap.appendChild(this.loader);\n }\n ctrlGroupEle.appendChild(inputWrap);\n ctrlGroupEle.appendChild(this.createElement('div', { className: classes.EDITABLE_ERROR }));\n this.appendButtons(this.formEle);\n if (!this.isTemplate) {\n this.renderComponent(ele);\n }\n this.removeSpinner();\n if (this.submitOnEnter) {\n this.wireEditorKeyDownEvent(this.containerEle);\n }\n return this.containerEle;\n }\n appendButtons(trg) {\n if (this.showButtons && trg) {\n this.btnElements = this.renderButtons();\n trg.appendChild(this.btnElements);\n this.wireBtnEvents();\n }\n }\n renderButtons() {\n const btnWrap = this.createElement('div', { className: classes.BUTTONS });\n const primary = (!isNOU(this.saveButton.content) && this.saveButton.content.length !== 0) ? (' ' + classes.PRIMARY) : '';\n this.submitBtn = this.createButtons({\n constant: 'save', type: 'submit', container: btnWrap,\n title: { save: 'Save' }, model: this.saveButton,\n className: classes.BTN_SAVE + primary\n });\n this.cancelBtn = this.createButtons({\n type: 'button', constant: 'cancel', title: { cancel: 'Cancel' },\n container: btnWrap, model: this.cancelButton,\n className: classes.BTN_CANCEL\n });\n return btnWrap;\n }\n createButtons(args) {\n let btnObj = undefined;\n if (Object.keys(args.model).length > 0) {\n const btnEle = this.createElement('button', {\n className: args.className,\n attrs: { 'type': args.type, 'title': (args.constant == \"save\") ? (isNOU(this.saveButton.content) ? this.getLocale(args.title, args.constant) : this.saveButton.content) : (isNOU(this.cancelButton.content) ? this.getLocale(args.title, args.constant) : this.cancelButton.content) }\n });\n args.container.appendChild(btnEle);\n btnObj = new Button(args.model, btnEle);\n }\n return btnObj;\n }\n renderComponent(ele) {\n this.isExtModule = (Array.prototype.indexOf.call(this.moduleList, this.type) > -1) ? true : false;\n let classProp;\n if (!isNOU(this.model.cssClass)) {\n classProp = this.model.cssClass.indexOf(classes.ELEMENTS) < 0 ?\n this.model.cssClass === '' ? classes.ELEMENTS : this.model.cssClass + ' ' + classes.ELEMENTS :\n this.model.cssClass;\n }\n else {\n classProp = classes.ELEMENTS;\n }\n extend(this.model, this.model, {\n cssClass: classProp, enableRtl: this.enableRtl, locale: this.locale, change: this.changeHandler.bind(this)\n });\n if (!isNOU(this.value)) {\n this.updateModelValue(false);\n }\n if (this.isExtModule) {\n this.notify(events.render, { module: modulesList[this.type], target: ele, type: this.type });\n }\n else {\n if (isNOU(this.model.showClearButton) && !isBlazor()) {\n this.model.showClearButton = true;\n }\n switch (this.type) {\n case 'Date':\n this.componentObj = new DatePicker(this.model);\n break;\n case 'DateTime':\n this.componentObj = new DateTimePicker(this.model);\n break;\n case 'DropDownList':\n this.componentObj = new DropDownList(this.model);\n break;\n case 'Mask':\n this.componentObj = new MaskedTextBox(this.model);\n break;\n case 'Numeric':\n if (this.model.value) {\n // eslint-disable-next-line no-useless-escape\n const expRegex = new RegExp('[eE][\\-+]?([0-9]+)');\n if (expRegex.test(this.model.value)) {\n this.model.value = this.model.value;\n }\n else {\n this.model.value = this.model.value.toString().replace(/[`~!@#$%^&*()_|\\=?;:'\",<>\\{\\}\\[\\]\\\\\\/]/gi, '');\n }\n }\n this.componentObj = new NumericTextBox(this.model);\n break;\n case 'Text':\n this.componentObj = new TextBox(this.model);\n break;\n }\n this.componentObj.appendTo(ele);\n }\n }\n updateAdaptor() {\n switch (this.adaptor) {\n case 'UrlAdaptor':\n this.dataAdaptor = new UrlAdaptor;\n break;\n case 'WebApiAdaptor':\n this.dataAdaptor = new WebApiAdaptor;\n break;\n case 'ODataV4Adaptor':\n this.dataAdaptor = new ODataV4Adaptor;\n break;\n }\n }\n loadSpinner(callType) {\n addClass([this.loader], [classes.SHOW]);\n if (callType === 'validate' && (this.type === 'RTE' || this.type === 'Color' || this.type === 'Slider')) {\n addClass([this.loader], [classes.RTE_SPIN_WRAP]);\n addClass([this.getEditElement()], [classes.CTRL_OVERLAY]);\n this.spinObj = { target: this.loader };\n }\n else {\n this.spinObj = { target: this.loader, width: Browser.isDevice ? '16px' : '14px' };\n }\n if (this.formEle) {\n addClass([this.formEle], [classes.LOAD]);\n }\n if (this.btnElements) {\n addClass([this.btnElements], [classes.HIDE]);\n }\n setStyleAttribute(this.loader, { 'width': '100%' });\n createSpinner(this.spinObj);\n showSpinner(this.spinObj.target);\n }\n removeSpinner(callType) {\n this.loader.removeAttribute('style');\n hideSpinner(this.spinObj.target);\n detach(this.spinObj.target.firstChild);\n if (callType === 'submit' && (this.type === 'RTE' || this.type === 'Color' || this.type === 'Slider')) {\n removeClass([this.loader], [classes.RTE_SPIN_WRAP]);\n removeClass([this.getEditElement()], [classes.CTRL_OVERLAY]);\n }\n if (this.formEle) {\n removeClass([this.formEle], [classes.LOAD]);\n }\n if (this.btnElements) {\n removeClass([this.btnElements], [classes.HIDE]);\n }\n removeClass([this.loader], [classes.SHOW]);\n }\n getEditElement() {\n return select('.' + classes.ELEMENTS, this.formEle);\n }\n // eslint-disable-next-line\n getLocale(prop, val) {\n return new L10n('inplace-editor', prop, this.locale).getConstant(val);\n }\n checkValue(val) {\n return (!this.isEmpty(val)) ? val : this.emptyText;\n }\n extendModelValue(val) {\n // eslint-disable-next-line\n const model = this.model;\n extend(model, { value: val });\n this.setProperties({ model: model }, true);\n }\n updateValue() {\n this.oldValue = this.value;\n if (this.enableHtmlSanitizer && typeof (this.value) === 'string') {\n this.oldValue = this.sanitizeHelper(this.value);\n }\n if (!isNOU(this.value)) {\n this.setProperties({ value: getCompValue(this.type, this.oldValue) }, true);\n this.extendModelValue(getCompValue(this.type, this.oldValue));\n }\n }\n updateModelValue(updateOldValue) {\n if (this.type === 'MultiSelect' && !this.isEmpty(this.value)) {\n this.model.value = !updateOldValue ? this.value.slice() : this.oldValue.slice();\n }\n else {\n this.model.value = !updateOldValue ? this.value : this.oldValue;\n }\n }\n setValue() {\n if (this.isExtModule) {\n this.notify(events.update, { type: this.type });\n }\n else if (this.componentObj) {\n if (this.type === 'Numeric' && this.componentObj.value === null) {\n this.componentObj.setProperties({ value: null }, true);\n }\n this.setProperties({ value: this.componentObj.value }, true);\n this.extendModelValue(this.componentObj.value);\n }\n }\n getDropDownsValue(display) {\n let value;\n if (Array.prototype.indexOf.call(this.dropDownEle, this.type) > -1 && this.type !== 'MultiSelect') {\n value = display ? select('.e-' + this.type.toLocaleLowerCase(), this.containerEle).value :\n this.value.toString();\n }\n else if (this.type === 'MultiSelect') {\n this.notify(events.accessValue, { type: this.type });\n value = display ? this.printValue : this.value.join();\n }\n return value;\n }\n getSendValue() {\n if (this.isEmpty(this.value)) {\n return '';\n }\n if (Array.prototype.indexOf.call(this.dropDownEle, this.type) > -1) {\n return this.getDropDownsValue(false);\n }\n else if (Array.prototype.indexOf.call(this.dateType, this.type) > -1) {\n return this.value.toISOString();\n }\n else if (this.type === 'DateRange') {\n return this.value[0].toISOString() + ' - ' + this.value[1].toISOString();\n }\n else {\n return this.value.toString();\n }\n }\n getRenderValue() {\n if (this.type === 'Mask' && this.componentObj.value.length !== 0) {\n return this.componentObj.getMaskedValue();\n }\n else if (Array.prototype.indexOf.call(this.inputDataEle, this.type) > -1) {\n return this.componentRoot.value;\n }\n else if (Array.prototype.indexOf.call(this.dropDownEle, this.type) > -1) {\n return this.getDropDownsValue(true);\n }\n else {\n return parseValue(this.type, this.value, this.model);\n }\n }\n setRtl(value) {\n // eslint-disable-next-line\n value ? addClass([this.element], [classes.RTL]) : removeClass([this.element], [classes.RTL]);\n }\n setFocus() {\n if (this.isTemplate) {\n return;\n }\n // eslint-disable-next-line\n this.isExtModule ? this.notify(events.setFocus, {}) : this.componentObj.element.focus();\n }\n removeEditor(isBlazorDestroy) {\n // eslint-disable-next-line\n const blazorContain = Object.keys(window);\n if (isBlazor() && !this.isStringTemplate) {\n resetBlazorTemplate(this.element.id + 'template', 'Template');\n }\n let tipEle;\n if (this.tipObj && this.formEle) {\n tipEle = closest(this.formEle, '.' + classes.ROOT_TIP);\n tipEle.classList.add(classes.HIDE);\n }\n this.unWireDocEvent();\n this.destroyComponents();\n this.formEle = undefined;\n if (!isNOU(select('.' + classes.INLINE, this.element))) {\n detach(this.inlineWrapper);\n this.inlineWrapper = undefined;\n }\n else if (this.tipObj) {\n if (this.type === 'MultiSelect') {\n EventHandler.remove(this.containerEle, 'mousedown', this.popMouseDown);\n EventHandler.remove(this.containerEle, 'click', this.popClickHandler);\n }\n this.tipObj.close();\n this.tipObj.destroy();\n this.tipObj = undefined;\n }\n this.containerEle = undefined;\n removeClass([this.valueWrap], [classes.OPEN, classes.HIDE]);\n if (!isBlazorDestroy) {\n this.setProperties({ enableEditMode: false }, true);\n }\n if (this.editableOn !== 'EditIconClick') {\n const titleConstant = (this.editableOn === 'DblClick') ? 'editAreaDoubleClick' : 'editAreaClick';\n if (!isNOU(this.valueWrap.parentElement)) {\n this.valueWrap.parentElement.setAttribute('title', this.getLocale(localeConstant[this.editableOn], titleConstant));\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate();\n }\n }\n destroyComponents() {\n if (this.showButtons) {\n this.destroyButtons();\n }\n if (this.isExtModule) {\n this.notify(events.destroyModules, {});\n }\n else {\n if (this.templateEle) {\n document.body.appendChild(this.templateEle);\n this.templateEle.style.display = 'none';\n this.templateEle = undefined;\n }\n if (!isNOU(this.componentObj)) {\n this.componentObj.destroy();\n this.componentObj = undefined;\n }\n }\n if (this.formValidate) {\n this.formValidate = undefined;\n }\n if (this.submitOnEnter && this.containerEle) {\n this.unWireEditorKeyDownEvent(this.containerEle);\n }\n }\n destroyButtons() {\n if (!isNOU(this.submitBtn)) {\n EventHandler.remove(this.submitBtn.element, 'mousedown', this.submitHandler);\n EventHandler.remove(this.submitBtn.element, 'click', this.submitPrevent);\n EventHandler.remove(this.submitBtn.element, 'keydown', this.btnKeyDownHandler);\n this.submitBtn.destroy();\n this.submitBtn = undefined;\n }\n if (!isNOU(this.cancelBtn)) {\n EventHandler.remove(this.cancelBtn.element, 'mouseup', this.cancelBtnClick);\n EventHandler.remove(this.cancelBtn.element, 'keydown', this.btnKeyDownHandler);\n this.cancelBtn.destroy();\n this.cancelBtn = undefined;\n }\n this.btnElements = undefined;\n }\n getQuery(params) {\n const query = new Query();\n Object.keys(params).forEach((key) => {\n query.addParams(key, params[key]);\n });\n return query;\n }\n sendValue() {\n const eventArgs = { data: { name: this.name, primaryKey: this.primaryKey, value: this.getSendValue() } };\n this.trigger('actionBegin', eventArgs, (actionBeginArgs) => {\n if (actionBeginArgs.cancel) {\n this.removeSpinner('submit');\n if (this.mode === 'Popup') {\n this.updateArrow();\n }\n }\n else {\n if (!this.isEmpty(this.url) && !this.isEmpty(this.primaryKey)\n && (this.initRender || (!this.initRender && this.prevValue !== this.value))) {\n this.dataManager = new DataManager({ url: this.url, adaptor: this.dataAdaptor });\n if (this.adaptor === 'UrlAdaptor') {\n this.dataManager.executeQuery(this.getQuery(actionBeginArgs.data), this.successHandler.bind(this), this.failureHandler.bind(this));\n }\n else {\n // eslint-disable-next-line\n const crud = this.dataManager.insert(actionBeginArgs.data);\n crud.then((e) => this.successHandler(e)).catch((e) => this.failureHandler(e));\n }\n }\n else {\n const eventArg = { data: {}, value: actionBeginArgs.data.value };\n this.triggerSuccess(eventArg);\n }\n this.dataManager = undefined;\n }\n });\n }\n isEmpty(value) {\n return (!isNOU(value) && value.length !== 0) ? false : true;\n }\n checkIsTemplate() {\n this.isTemplate = (!isNOU(this.template) && this.template !== '') ? true : false;\n }\n templateCompile(trgEle, tempStr) {\n let tempEle;\n // eslint-disable-next-line\n const blazorContain = Object.keys(window);\n if (typeof tempStr === 'string') {\n tempStr = tempStr.trim();\n }\n // eslint-disable-next-line\n const compiler = compile(tempStr);\n if (!isNOU(compiler)) {\n const isString = (isBlazor() &&\n !this.isStringTemplate && (tempStr).indexOf('<div>Blazor') === 0) ?\n this.isStringTemplate : true;\n tempEle = compiler({}, this, 'template', this.element.id + 'template', isString);\n }\n if (!isNOU(compiler) && tempEle.length > 0) {\n [].slice.call(tempEle).forEach((el) => {\n trgEle.appendChild(el);\n });\n if (isBlazor() && !this.isStringTemplate && (tempStr).indexOf('<div>Blazor') === 0) {\n updateBlazorTemplate(this.element.id + 'template', 'Template', this);\n }\n }\n }\n /**\n * @param {string} value - specifies the string value\n * @returns {string} - returns the string\n * @hidden\n */\n sanitizeHelper(value) {\n if (this.enableHtmlSanitizer) {\n const item = SanitizeHtmlHelper.beforeSanitize();\n const beforeEvent = {\n cancel: false,\n helper: null\n };\n extend(item, item, beforeEvent);\n // eslint-disable-next-line\n this.trigger('beforeSanitizeHtml', item, (args) => {\n if (item.cancel && !isNOU(item.helper)) {\n value = item.helper(value);\n }\n else if (!item.cancel) {\n value = SanitizeHtmlHelper.serializeValue(item, value);\n }\n });\n }\n return value;\n }\n appendTemplate(trgEle, tempStr) {\n tempStr = typeof (tempStr) === 'string' ? this.sanitizeHelper(tempStr) : tempStr;\n this.setProperties({ template: tempStr }, true);\n if (typeof tempStr === 'string' || isNOU(tempStr.innerHTML)) {\n if (tempStr[0] === '.' || tempStr[0] === '#') {\n if (document.querySelectorAll(tempStr).length) {\n this.templateEle = document.querySelector(tempStr);\n trgEle.appendChild(this.templateEle);\n this.templateEle.style.display = '';\n }\n else {\n this.templateCompile(trgEle, tempStr);\n }\n }\n else {\n this.templateCompile(trgEle, tempStr);\n }\n }\n else {\n this.templateEle = tempStr;\n trgEle.appendChild(this.templateEle);\n }\n }\n disable(value) {\n // eslint-disable-next-line\n value ? addClass([this.element], [classes.DISABLE]) : removeClass([this.element], [classes.DISABLE]);\n }\n enableEditor(val, isInit) {\n if (isInit && !val) {\n return;\n }\n // eslint-disable-next-line\n (val) ? this.renderEditor() : this.cancelHandler('cancel');\n }\n checkValidation(fromSubmit, isValidate) {\n let args;\n if (this.validationRules) {\n const rules = Object.keys(this.validationRules);\n let validationLength = Object.keys(this.validationRules[rules[0]]).length;\n validationLength = 'validateHidden' in this.validationRules[rules[0]] ? validationLength - 1 : validationLength;\n let count = 0;\n this.formValidate = new FormValidator(this.formEle, {\n rules: this.validationRules,\n validationBegin: (e) => {\n if (this.type === 'RTE') {\n let ele = document.createElement('div');\n ele.innerHTML = e.value;\n e.value = ele.innerText;\n }\n },\n validationComplete: (e) => {\n count = count + 1;\n args = {\n errorMessage: e.message,\n data: { name: this.name, primaryKey: this.primaryKey, value: this.checkValue(this.getSendValue()) }\n };\n this.trigger('validating', args, (validateArgs) => {\n if (e.status === 'failure') {\n e.errorElement.innerText = validateArgs.errorMessage;\n this.toggleErrorClass(true);\n }\n else {\n this.toggleErrorClass(false);\n }\n if (!isNOU(fromSubmit) && fromSubmit && (validationLength === count || e.status === 'failure')) {\n fromSubmit = false;\n this.afterValidation(isValidate);\n count = 0;\n }\n });\n },\n customPlacement: (inputElement, errorElement) => {\n if (this.formEle) {\n select('.' + classes.EDITABLE_ERROR, this.formEle).appendChild(errorElement);\n }\n }\n });\n count = 0;\n this.formValidate.validate();\n }\n else if (this.template !== '') {\n args = {\n errorMessage: '',\n data: { name: this.name, primaryKey: this.primaryKey, value: this.checkValue(this.getSendValue()) }\n };\n this.trigger('validating', args, (validateArgs) => {\n if (validateArgs.errorMessage) {\n select('.' + classes.EDITABLE_ERROR, this.formEle).innerHTML = validateArgs.errorMessage;\n this.toggleErrorClass(true);\n }\n else {\n this.toggleErrorClass(false);\n }\n this.afterValidation(isValidate);\n });\n }\n else {\n this.afterValidation(isValidate);\n }\n }\n afterValidation(isValidate) {\n if (!this.formEle.classList.contains(classes.ERROR) && isValidate) {\n this.loadSpinner('validate');\n if (this.mode === 'Popup') {\n this.updateArrow();\n }\n this.sendValue();\n }\n }\n toggleErrorClass(value) {\n if (isNOU(this.formEle)) {\n return;\n }\n const inputEle = select('.e-input-group', this.formEle);\n // eslint-disable-next-line\n const errorClass = (element, val, action) => {\n [].slice.call(element).forEach((ele) => {\n if (ele) {\n // eslint-disable-next-line\n action === 'add' ? addClass([ele], [val]) : removeClass([ele], [val]);\n }\n });\n };\n errorClass([this.formEle, inputEle], classes.ERROR, value ? 'add' : 'remove');\n }\n updateArrow() {\n const pos = this.tipObj.tipPointerPosition;\n this.tipObj.tipPointerPosition = (pos === 'Middle') ? 'Auto' : 'Middle';\n this.tipObj.tipPointerPosition = pos;\n this.tipObj.dataBind();\n }\n triggerSuccess(args) {\n const val = args.value;\n this.trigger('actionSuccess', args, (actionArgs) => {\n this.oldValue = val;\n this.removeSpinner('submit');\n if (!actionArgs.cancel) {\n this.renderValue(this.checkValue((actionArgs.value !== val) ? actionArgs.value : this.getRenderValue()));\n }\n if (actionArgs.cancel && this.mode === 'Inline') {\n removeClass([this.valueWrap], [classes.HIDE]);\n }\n this.removeEditor();\n });\n }\n triggerEndEdit(closeBeginBy) {\n const endEditArgs = { cancel: false, mode: this.mode, action: closeBeginBy };\n this.trigger('endEdit', endEditArgs, (args) => {\n if (!args.cancel) {\n if (this.formEle && this.formEle.classList.contains(classes.ERROR)) {\n this.updateModelValue(true);\n this.setProperties({ value: this.oldValue }, true);\n }\n this.removeEditor();\n }\n });\n }\n wireEvents() {\n this.wireEditEvent(this.editableOn);\n EventHandler.add(this.editIcon, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keydown', this.valueKeyDownHandler, this);\n document.addEventListener('scroll', this.onScrollResizeHandler);\n window.addEventListener('resize', this.onScrollResizeHandler);\n if (Array.prototype.indexOf.call(this.clearComponents, this.type) > -1) {\n EventHandler.add(this.element, 'mousedown', this.mouseDownHandler, this);\n }\n }\n wireDocEvent() {\n EventHandler.add(document, 'mousedown', this.docClickHandler, this);\n }\n wireEditEvent(event) {\n if (event === 'EditIconClick') {\n return;\n }\n const titleConstant = (event === 'Click') ? 'editAreaClick' : 'editAreaDoubleClick';\n this.element.setAttribute('title', this.getLocale(localeConstant[event], titleConstant));\n if (Browser.isDevice && Browser.isIos && event === 'DblClick') {\n this.touchModule = new Touch(this.valueWrap, { tap: this.doubleTapHandler.bind(this) });\n }\n else {\n EventHandler.add(this.valueWrap, event.toLowerCase(), this.clickHandler, this);\n }\n }\n wireEditorKeyDownEvent(ele) {\n EventHandler.add(ele, 'keydown', this.enterKeyDownHandler, this);\n }\n wireBtnEvents() {\n if (!isNOU(this.submitBtn)) {\n EventHandler.add(this.submitBtn.element, 'mousedown', this.submitHandler, this);\n EventHandler.add(this.submitBtn.element, 'click', this.submitPrevent, this);\n EventHandler.add(this.submitBtn.element, 'keydown', this.btnKeyDownHandler, this);\n }\n if (!isNOU(this.cancelBtn)) {\n EventHandler.add(this.cancelBtn.element, 'mouseup', this.cancelBtnClick, this);\n EventHandler.add(this.cancelBtn.element, 'keydown', this.btnKeyDownHandler, this);\n }\n }\n cancelBtnClick(e) {\n this.cancelHandler('cancel');\n this.trigger('cancelClick', e);\n }\n unWireEvents() {\n this.unWireEditEvent(this.editableOn);\n EventHandler.remove(this.editIcon, 'click', this.clickHandler);\n document.removeEventListener('scroll', this.onScrollResizeHandler);\n window.removeEventListener('resize', this.onScrollResizeHandler);\n EventHandler.remove(this.element, 'keydown', this.valueKeyDownHandler);\n if (Array.prototype.indexOf.call(this.clearComponents, this.type) > -1) {\n EventHandler.remove(this.element, 'mousedown', this.mouseDownHandler);\n }\n }\n unWireDocEvent() {\n EventHandler.remove(document, 'mousedown', this.docClickHandler);\n }\n unWireEditEvent(event) {\n if (event === 'EditIconClick') {\n return;\n }\n this.element.removeAttribute('title');\n if (Browser.isDevice && Browser.isIos && event === 'DblClick') {\n this.touchModule.destroy();\n this.touchModule = undefined;\n }\n else {\n EventHandler.remove(this.valueWrap, event.toLowerCase(), this.clickHandler);\n }\n }\n unWireEditorKeyDownEvent(ele) {\n EventHandler.remove(ele, 'keydown', this.enterKeyDownHandler);\n }\n submitPrevent(e) {\n e.preventDefault();\n }\n btnKeyDownHandler(e) {\n const trg = e.target;\n if ((e.keyCode === 13 && e.which === 13) || (e.keyCode === 32 && e.which === 32)) {\n if (trg.classList.contains(classes.BTN_SAVE)) {\n this.save();\n }\n else if (trg.classList.contains(classes.BTN_CANCEL)) {\n this.cancelHandler('cancel');\n }\n }\n if (e.keyCode === 9 && e.shiftKey === false &&\n (isNOU(e.target.nextElementSibling) ||\n e.target.nextElementSibling.tagName !== 'BUTTON')) {\n if (this.actionOnBlur === 'Submit') {\n this.save();\n }\n else if (this.actionOnBlur === 'Cancel') {\n this.cancelHandler('cancel');\n }\n }\n }\n afterOpenHandler(e) {\n if (this.mode === 'Popup' && this.type === 'MultiSelect') {\n EventHandler.add(this.containerEle, 'mousedown', this.popMouseDown, this);\n EventHandler.add(this.containerEle, 'click', this.popClickHandler, this);\n }\n if (this.mode === 'Popup' && !this.isEmpty(this.titleEle.innerHTML)) {\n e.element.classList.add(classes.TIP_TITLE);\n }\n if (this.type === 'RTE') {\n this.rteModule.refresh();\n this.setAttribute(select('.e-richtexteditor textarea', this.containerEle), ['name']);\n }\n else if (this.type === 'Slider') {\n this.sliderModule.refresh();\n this.setAttribute(select('.e-slider-input', this.containerEle), ['name']);\n }\n if (!this.beginEditArgs.cancelFocus) {\n if (this.mode === 'Inline' && (['AutoComplete', 'ComboBox', 'DropDownList', 'MultiSelect'].indexOf(this.type) > -1)\n && this.model.dataSource instanceof DataManager) {\n this.showDropDownPopup();\n }\n else {\n this.setFocus();\n }\n }\n if (this.afterOpenEvent) {\n this.tipObj.setProperties({ afterOpen: this.afterOpenEvent }, true);\n this.tipObj.trigger('afterOpen', e);\n }\n }\n popMouseDown(e) {\n const trgClass = e.target.classList;\n if (trgClass.contains('e-chips-close') && !trgClass.contains('e-close-hooker')) {\n this.updateArrow();\n }\n }\n doubleTapHandler(e) {\n if (e.tapCount > 1) {\n this.clickHandler(e.originalEvent);\n }\n }\n clickHandler(e) {\n if (this.editableOn !== 'EditIconClick') {\n e.stopPropagation();\n }\n this.renderEditor();\n }\n submitHandler(e) {\n e.preventDefault();\n this.save();\n this.trigger('submitClick', e);\n }\n cancelHandler(action) {\n this.triggerEndEdit(action);\n }\n popClickHandler(e) {\n const tipTarget = select('.' + classes.VALUE_WRAPPER, this.element);\n if (e.target.classList.contains('e-chips-close')) {\n this.tipObj.refresh(tipTarget);\n }\n }\n // eslint-disable-next-line\n successHandler(e) {\n this.initRender = false;\n const eventArgs = { data: e, value: this.getSendValue() };\n this.triggerSuccess(eventArgs);\n }\n // eslint-disable-next-line\n failureHandler(e) {\n const eventArgs = { data: e, value: this.getSendValue() };\n // eslint-disable-next-line\n this.trigger('actionFailure', eventArgs, (args) => {\n this.removeSpinner('submit');\n if (this.mode === 'Popup') {\n this.updateArrow();\n }\n });\n }\n enterKeyDownHandler(e) {\n if (!closest(e.target, '.' + classes.INPUT + ' .e-richtexteditor') && (!e.currentTarget.getElementsByTagName(\"textarea\")[0])) {\n if ((e.keyCode === 13 && e.which === 13) && closest(e.target, '.' + classes.INPUT)) {\n this.save();\n this.trigger('submitClick', e);\n }\n else if (e.keyCode === 27 && e.which === 27) {\n this.cancelHandler('cancel');\n }\n }\n }\n valueKeyDownHandler(e) {\n if (e.keyCode === 9 && e.shiftKey === true && e.target.tagName !== 'BUTTON') {\n if (this.actionOnBlur === 'Submit') {\n this.save();\n }\n else if (this.actionOnBlur === 'Cancel') {\n this.cancelHandler('cancel');\n }\n }\n if ((e.keyCode === 13 && e.which === 13) && e.target.classList.contains(classes.ROOT) &&\n !this.valueWrap.classList.contains(classes.OPEN) && !this.element.classList.contains(classes.DISABLE)) {\n e.preventDefault();\n this.renderEditor();\n }\n }\n mouseDownHandler(e) {\n if (e.target.classList.contains('e-clear-icon')) {\n this.isClearTarget = true;\n }\n }\n scrollResizeHandler() {\n if (this.mode === 'Popup' && this.tipObj && !(Browser.isDevice)) {\n this.triggerEndEdit('cancel');\n }\n }\n docClickHandler(e) {\n const trg = e.target;\n if (this.isClearTarget) {\n this.isClearTarget = false;\n return;\n }\n const relateRoot = closest(trg, '.' + classes.ROOT);\n const relateTipRoot = closest(trg, '.' + classes.ROOT_TIP);\n const relateElements = closest(trg, '.' + classes.ELEMENTS);\n const relateRTEElements = closest(trg, '.e-rte-elements');\n if ((!isNOU(relateRoot) && relateRoot.isEqualNode(this.element)) ||\n (!isNOU(relateTipRoot) && this.tipObj && (relateTipRoot.id.indexOf(this.valueWrap.id) > -1)) ||\n !isNOU(relateElements) || !isNOU(relateRTEElements) || trg.classList.contains('e-chips-close')) {\n return;\n }\n else {\n if (this.actionOnBlur === 'Submit') {\n this.save();\n }\n else if (this.actionOnBlur === 'Cancel') {\n this.cancelHandler('cancel');\n }\n }\n }\n changeHandler(e) {\n const eventArgs = {\n previousValue: this.compPrevValue === undefined ? this.value : this.compPrevValue,\n value: e.value\n };\n if (this.type === 'AutoComplete' || this.type === 'ComboBox' || this.type === 'DropDownList') {\n eventArgs.itemData = e.itemData;\n eventArgs.previousItemData = e.previousItemData;\n }\n this.compPrevValue = eventArgs.value;\n this.trigger('change', eventArgs);\n }\n /**\n * Validate current editor value.\n *\n * @returns {void}\n */\n validate() {\n this.checkValidation(true, false);\n }\n /**\n * Submit the edited input value to the server.\n *\n * @returns {void}\n */\n save() {\n if (!this.formEle) {\n return;\n }\n this.element.focus();\n this.editEle = select('.' + classes.INPUT, this.formEle);\n let errEle = null;\n // eslint-disable-next-line\n errEle = select('.' + classes.ERROR, this.editEle);\n if (!this.isTemplate) {\n this.setValue();\n }\n const endEditArgs = { cancel: false, mode: this.mode, action: 'submit' };\n this.trigger('endEdit', endEditArgs, (args) => {\n if (!args.cancel) {\n this.checkValidation(true, true);\n }\n });\n }\n /**\n * Removes the control from the DOM and also removes all its related events.\n *\n * @returns {void}\n */\n destroy() {\n this.removeEditor(isBlazor());\n if (this.isExtModule) {\n this.notify(events.destroy, {});\n }\n this.unWireEvents();\n const classList = [classes.DISABLE, classes.RTL];\n classList.forEach((val) => {\n removeClass([this.element], [val]);\n });\n while (this.element.firstElementChild) {\n this.element.removeChild(this.element.firstElementChild);\n }\n if (!(isBlazor() && this.isServerRendered)) {\n super.destroy();\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact) {\n this.clearTemplate();\n }\n }\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - returns the string\n */\n getPersistData() {\n return this.addOnPersist(['value']);\n }\n /**\n * To provide the array of modules needed for component rendering\n *\n * @returns {ModuleDeclaration[]} - returns the module declaration\n * @hidden\n */\n requiredModules() {\n const modules = [];\n modules.push({ member: modulesList[this.type], args: [this] });\n return modules;\n }\n /**\n * Returns the current module name.\n *\n * @returns {string} - returrns the string\n * @private\n */\n getModuleName() {\n return 'inplaceeditor';\n }\n /**\n * Gets called when the model property changes.The data that describes the old and new values of property that changed.\n *\n * @param {InPlaceEditorModel} newProp - specifies the new property\n * @param {InPlaceEditorModel} oldProp - specifies the old property\n * @returns {void}\n * @private\n */\n onPropertyChanged(newProp, oldProp) {\n let checkValidation = this.validationRules ? !isNOU(this.element.querySelectorAll('.' + classes.ERROR)) &&\n this.element.querySelectorAll('.' + classes.ERROR).length > 0 ? false : true : true;\n if (checkValidation) {\n if (this.isEditorOpen()) {\n const editModeChanged = 'enableEditMode' in newProp;\n if ((editModeChanged && oldProp.enableEditMode && !newProp.enableEditMode) || (!editModeChanged && this.enableEditMode)) {\n this.triggerEndEdit('cancel');\n }\n else {\n this.removeEditor();\n }\n }\n for (const prop of Object.keys(newProp)) {\n switch (prop) {\n case 'showButtons':\n // eslint-disable-next-line\n (newProp.showButtons) ? this.appendButtons(this.formEle) : this.destroyButtons();\n break;\n case 'value':\n this.updateValue();\n // eslint-disable-next-line\n this.textOption === 'Never' ? this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)))\n : this.renderInitialValue();\n break;\n case 'emptyText':\n // eslint-disable-next-line\n this.textOption === 'Never' ? this.renderValue(this.checkValue(parseValue(this.type, this.value, this.model)))\n : this.renderInitialValue();\n break;\n case 'template':\n this.checkIsTemplate();\n break;\n case 'disabled':\n this.disable(newProp.disabled);\n break;\n case 'enableRtl':\n this.setRtl(newProp.enableRtl);\n break;\n case 'cssClass':\n this.setClass('remove', oldProp.cssClass);\n this.setClass('add', newProp.cssClass);\n break;\n case 'mode':\n this.enableEditor(this.enableEditMode);\n break;\n case 'enableEditMode':\n this.enableEditor(newProp.enableEditMode);\n break;\n case 'editableOn':\n this.unWireEditEvent(oldProp.editableOn);\n if (newProp.editableOn !== 'EditIconClick') {\n this.wireEditEvent(newProp.editableOn);\n }\n break;\n }\n }\n }\n }\n};\n__decorate([\n Property('')\n], InPlaceEditor.prototype, \"name\", void 0);\n__decorate([\n Property(null)\n], InPlaceEditor.prototype, \"value\", void 0);\n__decorate([\n Property('')\n], InPlaceEditor.prototype, \"template\", void 0);\n__decorate([\n Property(true)\n], InPlaceEditor.prototype, \"enableHtmlSanitizer\", void 0);\n__decorate([\n Property(true)\n], InPlaceEditor.prototype, \"enableHtmlParse\", void 0);\n__decorate([\n Property('')\n], InPlaceEditor.prototype, \"cssClass\", void 0);\n__decorate([\n Property('')\n], InPlaceEditor.prototype, \"primaryKey\", void 0);\n__decorate([\n Property('Empty')\n], InPlaceEditor.prototype, \"emptyText\", void 0);\n__decorate([\n Property('')\n], InPlaceEditor.prototype, \"url\", void 0);\n__decorate([\n Property('Popup')\n], InPlaceEditor.prototype, \"mode\", void 0);\n__decorate([\n Property('UrlAdaptor')\n], InPlaceEditor.prototype, \"adaptor\", void 0);\n__decorate([\n Property('Text')\n], InPlaceEditor.prototype, \"type\", void 0);\n__decorate([\n Property('Click')\n], InPlaceEditor.prototype, \"editableOn\", void 0);\n__decorate([\n Property('Never')\n], InPlaceEditor.prototype, \"textOption\", void 0);\n__decorate([\n Property('Submit')\n], InPlaceEditor.prototype, \"actionOnBlur\", void 0);\n__decorate([\n Property(false)\n], InPlaceEditor.prototype, \"enablePersistence\", void 0);\n__decorate([\n Property(false)\n], InPlaceEditor.prototype, \"disabled\", void 0);\n__decorate([\n Property(true)\n], InPlaceEditor.prototype, \"showButtons\", void 0);\n__decorate([\n Property(false)\n], InPlaceEditor.prototype, \"enableEditMode\", void 0);\n__decorate([\n Property(true)\n], InPlaceEditor.prototype, \"submitOnEnter\", void 0);\n__decorate([\n Complex({}, PopupSettings)\n], InPlaceEditor.prototype, \"popupSettings\", void 0);\n__decorate([\n Property(null)\n], InPlaceEditor.prototype, \"model\", void 0);\n__decorate([\n Property({ iconCss: 'e-icons e-save-icon' })\n], InPlaceEditor.prototype, \"saveButton\", void 0);\n__decorate([\n Property({ iconCss: 'e-icons e-cancel-icon' })\n], InPlaceEditor.prototype, \"cancelButton\", void 0);\n__decorate([\n Property(null)\n], InPlaceEditor.prototype, \"validationRules\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"created\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"beforeSanitizeHtml\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"actionBegin\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"actionSuccess\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"actionFailure\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"validating\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"beginEdit\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"endEdit\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"change\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"submitClick\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"cancelClick\", void 0);\n__decorate([\n Event()\n], InPlaceEditor.prototype, \"destroyed\", void 0);\nInPlaceEditor = __decorate([\n NotifyPropertyChanges\n], InPlaceEditor);\nexport { InPlaceEditor };\n","/**\n * Base modules\n */\nexport * from './util';\nexport * from './events';\nexport * from './models';\nexport * from './classes';\nexport * from './inplace-editor';\n","import { isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';\nimport * as events from '../base/events';\n/**\n * The `Base` module.\n */\nexport class Base {\n constructor(parent, module) {\n this.parent = parent;\n this.module = module;\n this.addEventListener();\n }\n render(e) {\n this.module.render(e);\n }\n showPopup() {\n this.module.showPopup();\n }\n focus() {\n this.module.focus();\n }\n update(e) {\n this.module.updateValue(e);\n }\n getValue() {\n this.module.getRenderValue();\n }\n destroyComponent() {\n if (isNOU(this.module.compObj)) {\n return;\n }\n this.module.compObj.destroy();\n this.module.compObj = undefined;\n }\n destroy() {\n this.destroyComponent();\n this.removeEventListener();\n }\n addEventListener() {\n this.parent.on(events.render, this.render, this);\n this.parent.on(events.setFocus, this.focus, this);\n this.parent.on(events.showPopup, this.showPopup, this);\n this.parent.on(events.update, this.update, this);\n this.parent.on(events.accessValue, this.getValue, this);\n this.parent.on(events.destroyModules, this.destroyComponent, this);\n this.parent.on(events.destroy, this.destroy, this);\n }\n removeEventListener() {\n if (this.parent.isDestroyed) {\n return;\n }\n this.parent.off(events.render, this.render);\n this.parent.off(events.setFocus, this.focus);\n this.parent.off(events.showPopup, this.showPopup);\n this.parent.off(events.update, this.update);\n this.parent.off(events.accessValue, this.getValue);\n this.parent.off(events.destroyModules, this.destroyComponent);\n this.parent.off(events.destroy, this.destroy);\n }\n}\n","import { AutoComplete as EJ2AutoComplete } from '@syncfusion/ej2-dropdowns';\nimport { Base } from './base-module';\n/**\n * The `AutoComplete` module is used configure the properties of Auto complete type editor.\n */\nexport class AutoComplete {\n constructor(parent) {\n this.compObj = undefined;\n this.parent = parent;\n this.parent.atcModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n this.compObj = new EJ2AutoComplete(this.parent.model);\n this.compObj.appendTo(e.target);\n }\n /**\n * @hidden\n * @returns {void}\n */\n showPopup() {\n this.compObj.focusIn();\n this.compObj.showPopup();\n }\n focus() {\n this.compObj.element.focus();\n }\n updateValue(e) {\n if (this.compObj && e.type === 'AutoComplete') {\n this.parent.setProperties({ value: this.compObj.value }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n /**\n * Destroys the module.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - returns the string\n */\n getModuleName() {\n return 'auto-complete';\n }\n}\n","import { ColorPicker as EJ2ColorPicker } from '@syncfusion/ej2-inputs';\nimport { Base } from './base-module';\n/**\n * The `ColorPicker` module is used configure the properties of Color picker type editor.\n */\nexport class ColorPicker {\n constructor(parent) {\n this.compObj = undefined;\n this.parent = parent;\n this.parent.colorModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n this.compObj = new EJ2ColorPicker(this.parent.model);\n this.compObj.appendTo(e.target);\n }\n focus() {\n this.compObj.element.focus();\n }\n updateValue(e) {\n if (this.compObj && e.type === 'Color') {\n this.parent.setProperties({ value: this.compObj.value }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n /**\n * Destroys the module.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - retunrs the string\n */\n getModuleName() {\n return 'color-picker';\n }\n}\n","import { ComboBox as EJ2ComboBox } from '@syncfusion/ej2-dropdowns';\nimport { Base } from './base-module';\n/**\n * The `ComboBox` module is used configure the properties of Combo box type editor.\n */\nexport class ComboBox {\n constructor(parent) {\n this.compObj = undefined;\n this.parent = parent;\n this.parent.comboBoxModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n this.compObj = new EJ2ComboBox(this.parent.model);\n this.compObj.appendTo(e.target);\n }\n focus() {\n this.compObj.element.focus();\n }\n /**\n * @hidden\n * @returns {void}\n */\n showPopup() {\n this.compObj.focusIn();\n this.compObj.showPopup();\n }\n /**\n * Destroys the module.\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n updateValue(e) {\n if (this.compObj && e.type === 'ComboBox') {\n this.parent.setProperties({ value: this.compObj.value }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n /**\n * For internal use only - Get the module name.\n * @returns {string} - returns the string\n */\n getModuleName() {\n return 'combo-box';\n }\n}\n","import { DateRangePicker as EJ2DateRangePicker } from '@syncfusion/ej2-calendars';\nimport { Base } from './base-module';\n/**\n * The `DateRangePicker` module is used configure the properties of Date range picker type editor.\n */\nexport class DateRangePicker {\n constructor(parent) {\n this.compObj = undefined;\n this.parent = parent;\n this.parent.dateRangeModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n this.compObj = new EJ2DateRangePicker(this.parent.model);\n this.compObj.appendTo(e.target);\n }\n focus() {\n this.compObj.element.focus();\n }\n /**\n * For internal use only - Get the module name.\n * @returns {string} - returns the string\n */\n getModuleName() {\n return 'date-range-picker';\n }\n updateValue(e) {\n if (this.compObj && e.type === 'DateRange') {\n this.parent.setProperties({ value: this.compObj.value }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n /**\n * Destroys the module.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n}\n","import { closest } from '@syncfusion/ej2-base';\nimport { MultiSelect as EJ2MultiSelect } from '@syncfusion/ej2-dropdowns';\nimport { Base } from './base-module';\n/**\n * The `MultiSelect` module is used configure the properties of Multi select type editor.\n */\nexport class MultiSelect {\n constructor(parent) {\n this.isPopOpen = false;\n this.compObj = undefined;\n this.parent = parent;\n this.parent.multiSelectModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n const compModel = Object.assign({}, this.parent.model);\n this.openEvent = compModel.open;\n this.closeEvent = compModel.close;\n compModel.open = this.openHandler.bind(this);\n compModel.close = this.closeHandler.bind(this);\n this.compObj = new EJ2MultiSelect(compModel);\n this.compObj.appendTo(e.target);\n }\n openHandler(e) {\n this.isPopOpen = true;\n if (this.openEvent) {\n this.compObj.setProperties({ open: this.openEvent }, true);\n this.compObj.trigger('open', e);\n }\n }\n closeHandler(e) {\n this.isPopOpen = false;\n if (this.closeEvent) {\n this.compObj.setProperties({ close: this.closeEvent }, true);\n this.compObj.trigger('close', e);\n }\n }\n focus() {\n if (!this.isPopOpen) {\n const evt = document.createEvent('MouseEvent');\n evt.initEvent('mousedown', true, true);\n closest(this.compObj.element, '.e-multi-select-wrapper').dispatchEvent(evt);\n }\n }\n updateValue(e) {\n if (this.compObj && e.type === 'MultiSelect') {\n this.parent.setProperties({ value: this.compObj.value }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n getRenderValue() {\n this.parent.printValue = this.compObj.text;\n }\n /**\n * Destroys the module.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - returns the string\n */\n getModuleName() {\n return 'multi-select';\n }\n}\n","import { RichTextEditor, HtmlEditor } from '@syncfusion/ej2-richtexteditor';\nimport { MarkdownEditor, Toolbar, Link, Image, QuickToolbar, Table, FileManager } from '@syncfusion/ej2-richtexteditor';\nimport { Base } from './base-module';\n/**\n * The `RTE` module is used configure the properties of RTE type editor.\n */\nexport class Rte {\n constructor(parent) {\n this.compObj = undefined;\n RichTextEditor.Inject(HtmlEditor, MarkdownEditor, Toolbar, Link, Image, QuickToolbar, Table, FileManager);\n this.parent = parent;\n this.parent.rteModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n this.compObj = new RichTextEditor(this.parent.model);\n this.compObj.appendTo(e.target);\n }\n focus() {\n this.compObj.focusIn();\n }\n updateValue(e) {\n if (this.compObj && e.type === 'RTE') {\n this.parent.setProperties({ value: this.getRteValue() }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n getRteValue() {\n let rteVal;\n if (this.compObj.editorMode === 'Markdown') {\n rteVal = this.compObj.contentModule.getEditPanel().value;\n return (rteVal === '') ? '' : rteVal;\n }\n else {\n rteVal = this.compObj.contentModule.getEditPanel().innerHTML;\n return (rteVal === '<p><br></p>' || rteVal === '<p><br></p>' || rteVal === '') ? '' : rteVal;\n }\n }\n refresh() {\n this.compObj.refresh();\n }\n /**\n * Destroys the rte module.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - returns the string\n */\n getModuleName() {\n return 'rte';\n }\n}\n","import { Slider as EJ2Slider } from '@syncfusion/ej2-inputs';\nimport { Base } from './base-module';\n/**\n * The `Slider` module is used configure the properties of Slider type editor.\n */\nexport class Slider {\n constructor(parent) {\n this.compObj = undefined;\n this.parent = parent;\n this.parent.sliderModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n this.compObj = new EJ2Slider(this.parent.model);\n this.compObj.appendTo(e.target);\n }\n focus() {\n this.compObj.element.focus();\n }\n updateValue(e) {\n if (this.compObj && e.type === 'Slider') {\n this.parent.setProperties({ value: this.compObj.value }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n refresh() {\n this.compObj.refresh();\n }\n /**\n * Destroys the slider module.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - returns the string\n */\n getModuleName() {\n return 'slider';\n }\n}\n","import { TimePicker as EJ2TimePicker } from '@syncfusion/ej2-calendars';\nimport { Base } from './base-module';\n/**\n * The `TimePicker` module is used configure the properties of Time picker type editor.\n */\nexport class TimePicker {\n constructor(parent) {\n this.compObj = undefined;\n this.parent = parent;\n this.parent.timeModule = this;\n this.base = new Base(this.parent, this);\n }\n render(e) {\n this.compObj = new EJ2TimePicker(this.parent.model);\n this.compObj.appendTo(e.target);\n }\n focus() {\n this.compObj.focusIn();\n }\n updateValue(e) {\n if (this.compObj && e.type === 'Time') {\n this.parent.setProperties({ value: this.compObj.value }, true);\n this.parent.extendModelValue(this.compObj.value);\n }\n }\n /**\n * For internal use only - Get the module name.\n *\n * @returns {string} - returns the string\n */\n getModuleName() {\n return 'time-picker';\n }\n /**\n * Destroys the module.\n *\n * @function destroy\n * @returns {void}\n * @hidden\n */\n destroy() {\n this.base.destroy();\n }\n}\n","/**\n *\n */\nexport * from './base-module';\nexport * from './auto-complete';\nexport * from './color-picker';\nexport * from './combo-box';\nexport * from './date-range-picker';\nexport * from './multi-select';\nexport * from './rte';\nexport * from './slider';\nexport * from './time-picker';\n","/**\n *\n */\nexport * from './base/index';\nexport * from './modules/index';\n","/**\n *\n */\nexport * from './inplace-editor/index';\n"],"names":["isNOU","this","__decorate","classes.TITLE","classes.VALUE_WRAPPER","classes.VALUE","classes.OVERLAY_ICON","classes.ICONS","classes.LOAD","classes.HIDE","classes.OPEN","classes.INLINE","classes.POPUP","classes.ROOT_TIP","events.setFocus","events.showPopup","classes.WRAPPER","classes.LOADING","classes.FORM","classes.CTRL_GROUP","classes.INPUT","classes.EDITABLE_ERROR","classes.BUTTONS","classes.PRIMARY","classes.BTN_SAVE","classes.BTN_CANCEL","classes.ELEMENTS","events.render","classes.SHOW","classes.RTE_SPIN_WRAP","classes.CTRL_OVERLAY","events.update","events.accessValue","classes.RTL","events.destroyModules","classes.DISABLE","classes.ERROR","classes.TIP_TITLE","classes.ROOT","events.destroy","AutoComplete","EJ2AutoComplete","ColorPicker","EJ2ColorPicker","ComboBox","EJ2ComboBox","DateRangePicker","EJ2DateRangePicker","MultiSelect","EJ2MultiSelect","Slider","EJ2Slider","TimePicker","EJ2TimePicker"],"mappings":"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"}
|