@syncfusion/ej2-splitbuttons 23.1.41 → 23.1.43
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 +8 -0
- package/dist/ej2-splitbuttons.min.js +2 -2
- package/dist/ej2-splitbuttons.umd.min.js +2 -2
- package/dist/ej2-splitbuttons.umd.min.js.map +1 -1
- package/dist/es6/ej2-splitbuttons.es2015.js +2 -2
- package/dist/es6/ej2-splitbuttons.es2015.js.map +1 -1
- package/dist/es6/ej2-splitbuttons.es5.js +2 -2
- package/dist/es6/ej2-splitbuttons.es5.js.map +1 -1
- package/dist/global/ej2-splitbuttons.min.js +2 -2
- package/dist/global/ej2-splitbuttons.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +6 -6
- package/src/common/common.d.ts +1 -0
- package/src/drop-down-button/drop-down-button.js +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ej2-splitbuttons.umd.min.js","sources":["../src/common/common.js","../src/drop-down-button/drop-down-button.js","../src/split-button/split-button.js","../src/progress-button/progress-button.js","../src/button-group/button-group.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __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, extend, deleteObject, Property, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @param {Object} props - Specifies the properties\n * @param {string[]} model - Specifies the model\n * @returns {Object} Component Model\n */\nexport function getModel(props, model) {\n var obj = extend({}, props);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((model).indexOf(prop) < 0) {\n deleteObject(obj, prop);\n }\n }\n return obj;\n}\n/** @hidden\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {number} keyCode - Specifies the keycode\n * @returns {void}\n */\nexport function upDownKeyHandler(ul, keyCode) {\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\n var liIdx = defaultIdx;\n var li;\n var selectedLi = ul.querySelector('.e-selected');\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains('e-focused')) {\n li = ul.children[i];\n liIdx = i;\n li.classList.remove('e-focused');\n if (keyCode === 40) {\n liIdx++;\n }\n else {\n liIdx--;\n }\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\n liIdx = defaultIdx;\n }\n }\n }\n li = ul.children[liIdx];\n liIdx = isValidLI(ul, li, liIdx, keyCode);\n if (liIdx !== -1) {\n addClass([ul.children[liIdx]], 'e-focused');\n ul.children[liIdx].focus();\n }\n}\n/**\n * Get Valid LI element\n *\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {Element} li - Specifies the LI element\n * @param {number} index - Specifies the index\n * @param {number} keyCode - Specifies the keycode\n * @param {number} count - Specifies the count\n * @returns {number} - Index\n */\nfunction isValidLI(ul, li, index, keyCode, count) {\n if (count === void 0) { count = 0; }\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\n }\n else {\n if (keyCode === 40) {\n index++;\n }\n else {\n index--;\n }\n }\n }\n li = ul.children[index];\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n count++;\n if (count === ul.childElementCount) {\n return index = -1;\n }\n index = isValidLI(ul, li, index, keyCode, count);\n }\n return index;\n}\n/** @hidden\n * @param {HTMLElement} popup - Specifies the popup element.\n * @returns {void}\n */\nexport function setBlankIconStyle(popup, blankIcon) {\n var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon'));\n if (blankIcon) {\n var menuItem = [].slice.call(popup.getElementsByClassName('e-item'));\n menuItem.forEach(function (li) {\n if (li.style.paddingLeft || li.style.paddingRight) {\n li.removeAttribute('style');\n }\n });\n }\n if (!blankIconList.length) {\n return;\n }\n var iconLi = popup.querySelector('.e-item:not(.e-blank-icon):not(.e-separator)');\n if (isNullOrUndefined(iconLi)) {\n return;\n }\n if (iconLi.classList.contains('e-url')) {\n iconLi = iconLi.querySelector('.e-menu-url');\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n var cssProp;\n var enableRtl = popup.classList.contains('e-rtl');\n if (enableRtl) {\n cssProp = { padding: 'paddingRight', margin: 'marginLeft' };\n }\n else {\n cssProp = { padding: 'paddingLeft', margin: 'marginRight' };\n }\n /* eslint-disable */\n var size = parseInt(getComputedStyle(icon).fontSize, 10) + parseInt((enableRtl ? getComputedStyle(icon)[cssProp.margin] : getComputedStyle(icon)[cssProp.margin]), 10)\n + parseInt(getComputedStyle(iconLi).paddingLeft, 10) + \"px\";\n blankIconList.forEach(function (li) {\n if (li.classList.contains('e-url')) {\n li.querySelector('.e-menu-url').style[cssProp.padding] = size;\n }\n else {\n li.style[cssProp.padding] = size;\n }\n });\n /* eslint-enable */\n}\n/**\n * Defines the items of Split Button/DropDownButton.\n */\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"separator\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"url\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"disabled\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __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 { Collection, Event, NotifyPropertyChanges, detach, Property, EventHandler, isRippleEnabled, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { addClass, getUniqueID, rippleEffect, getComponent } from '@syncfusion/ej2-base';\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { classList, removeClass } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { upDownKeyHandler } from './../common/common';\nimport { getModel, Item, setBlankIconStyle } from './../common/common';\nvar classNames = {\n DISABLED: 'e-disabled',\n FOCUS: 'e-focused',\n ICON: 'e-menu-icon',\n ITEM: 'e-item',\n POPUP: 'e-dropdown-popup',\n RTL: 'e-rtl',\n SEPARATOR: 'e-separator',\n VERTICAL: 'e-vertical'\n};\n/**\n * DropDownButton component is used to toggle contextual overlays for displaying list of action items.\n * It can contain both text and images.\n * ```html\n * <button id=\"element\">DropDownButton</button>\n * ```\n * ```typescript\n * <script>\n * var dropDownButtonObj = new DropDownButton({items: [{ text: 'Action1' }, { text: 'Action2' },{ text: 'Action3' }]);\n * dropDownButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar DropDownButton = /** @class */ (function (_super) {\n __extends(DropDownButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {DropDownButtonModel} options - Specifies dropdown button model\n * @param {string|HTMLButtonElement} element - Specifies element\n * @hidden\n */\n function DropDownButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isPopupCreated = true;\n return _this;\n }\n DropDownButton.prototype.preRender = function () {\n /** */\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n DropDownButton.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To open/close DropDownButton popup based on current state of the DropDownButton.\n *\n * @returns {void}\n */\n DropDownButton.prototype.toggle = function () {\n if (this.canOpen()) {\n this.openPopUp();\n }\n else if (this.createPopupOnClick && !this.isPopupCreated) {\n this.createPopup();\n this.openPopUp();\n }\n else {\n this.closePopup();\n }\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.render = function () {\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n DropDownButton.prototype.addItems = function (items, text) {\n var newItem;\n var idx = this.items.length;\n for (var j = 0, len = this.items.length; j < len; j++) {\n if (text === this.items[j].text) {\n idx = j;\n break;\n }\n }\n for (var i = items.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newItem = new Item(this, 'items', items[i], true);\n this.items.splice(idx, 0, newItem);\n }\n if (!this.canOpen()) {\n this.createItems();\n }\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n DropDownButton.prototype.removeItems = function (items, isUniqueId) {\n var refresh = false;\n for (var i = 0, len = items.length; i < len; i++) {\n for (var j = 0, len_1 = this.items.length; j < len_1; j++) {\n if (items[i] === (isUniqueId ? this.items[j].id : this.items[j].text)) {\n this.items.splice(j, 1);\n refresh = true;\n break;\n }\n }\n }\n if (refresh && this.getULElement()) {\n this.createItems();\n }\n };\n DropDownButton.prototype.createPopup = function () {\n var _a;\n var div = this.createElement('div', {\n className: classNames.POPUP,\n id: this.element.id + '-popup'\n });\n document.body.appendChild(div);\n this.dropDown = new Popup(div, {\n relateTo: this.element,\n collision: { X: 'fit', Y: 'flip' },\n position: { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n content: this.target ? this.getTargetElement() : '',\n enableRtl: this.enableRtl\n });\n if (!isNullOrUndefined(this.popupContent)) {\n this.popupContent.style.display = '';\n }\n if (this.dropDown.element.style.position === 'fixed') {\n this.dropDown.refreshPosition(this.element);\n }\n this.dropDown.hide();\n attributes(this.element, (_a = {},\n _a['aria-haspopup'] = this.items.length || this.target ? 'true' : 'false',\n _a['aria-expanded'] = 'false',\n _a['type'] = 'button',\n _a));\n if (this.cssClass) {\n addClass([div], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.isPopupCreated = true;\n };\n DropDownButton.prototype.getTargetElement = function () {\n if (this.createPopupOnClick && !this.isColorPicker() && !isNullOrUndefined(this.popupContent)) {\n return this.popupContent;\n }\n return typeof (this.target) === 'string' ? select(this.target) : this.target;\n };\n DropDownButton.prototype.createItems = function (appendItems) {\n var items = this.items;\n var showIcon = this.hasIcon(this.items, 'iconCss');\n var span;\n var item;\n var li;\n var eventArgs;\n var ul = this.getULElement();\n if (ul) {\n ul.innerHTML = '';\n }\n else {\n ul = this.createElement('ul', {\n attrs: { 'role': 'menu', 'tabindex': '0' }\n });\n }\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n var tempItem = item.text;\n li = this.createElement('li', {\n innerHTML: item.url ? '' : tempItem,\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator ? { 'role': 'separator', 'tabindex': '-1' } : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': tempItem },\n id: item.id ? item.id : getUniqueID('e-' + this.getModuleName() + '-item')\n });\n if (this.enableHtmlSanitizer) {\n li.textContent = item.url ? '' : tempItem;\n }\n else {\n li.innerHTML = item.url ? '' : tempItem;\n }\n if (item.url) {\n li.appendChild(this.createAnchor(item));\n li.classList.add('e-url');\n }\n if (item.iconCss) {\n span = this.createElement('span', { className: classNames.ICON + ' ' + item.iconCss });\n if (item.url) {\n li.childNodes[0].appendChild(span);\n }\n else {\n li.insertBefore(span, li.childNodes[0]);\n }\n }\n else {\n if (showIcon && !item.separator) {\n li.classList.add('e-blank-icon');\n }\n }\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n eventArgs = { item: item, element: li };\n this.trigger('beforeItemRender', eventArgs);\n ul.appendChild(li);\n }\n if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\n }\n };\n DropDownButton.prototype.hasIcon = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n DropDownButton.prototype.createAnchor = function (item) {\n var tempItem = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\n return this.createElement('a', { className: 'e-menu-text e-menu-url', innerHTML: tempItem, attrs: { 'href': item.url } });\n };\n DropDownButton.prototype.initialize = function () {\n this.button = new Button({\n iconCss: this.iconCss, iconPosition: this.iconPosition, cssClass: this.cssClass, content: this.content,\n disabled: this.disabled, enableRtl: this.enableRtl, enablePersistence: this.enablePersistence\n });\n this.button.createElement = this.createElement;\n this.button.appendTo(this.element);\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.appendArrowSpan();\n this.setActiveElem([this.element]);\n this.element.setAttribute('aria-label', this.element.textContent ? this.element.textContent : 'dropdownbutton');\n if ((this.target && !this.isColorPicker() && !this.createPopupOnClick) || !this.createPopupOnClick) {\n this.createPopup();\n }\n else {\n this.isPopupCreated = false;\n if (this.target && !this.isColorPicker() && this.createPopupOnClick) {\n this.popupContent = this.getTargetElement();\n this.popupContent.style.display = 'none';\n }\n }\n };\n DropDownButton.prototype.isColorPicker = function () {\n if (!this.element) {\n return false;\n }\n var prevElem = this.element.previousSibling;\n if (prevElem && prevElem.classList && prevElem.classList.contains('e-split-colorpicker')) {\n return true;\n }\n return false;\n };\n DropDownButton.prototype.appendArrowSpan = function () {\n this.element.appendChild(this.createElement('span', {\n className: 'e-btn-icon e-icons ' + 'e-icon-' + (this.cssClass.indexOf(classNames.VERTICAL) > -1\n ? 'bottom' : 'right') + ' e-caret'\n }));\n };\n DropDownButton.prototype.setActiveElem = function (elem) {\n this.activeElem = elem;\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n DropDownButton.prototype.getModuleName = function () {\n return 'dropdown-btn';\n };\n DropDownButton.prototype.canOpen = function () {\n var val = false;\n if (this.isPopupCreated) {\n val = this.getPopUpElement().classList.contains('e-popup-close');\n }\n return val;\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n DropDownButton.prototype.destroy = function () {\n var _this = this;\n _super.prototype.destroy.call(this);\n if (this.getModuleName() === 'dropdown-btn') {\n var classList_1;\n if (this.element.querySelector('span.e-caret')) {\n detach(this.element.querySelector('span.e-caret'));\n }\n if (this.cssClass) {\n classList_1 = this.cssClass.split(' ');\n }\n this.button.destroy();\n if (classList_1) {\n removeClass([this.element], classList_1);\n }\n removeClass(this.activeElem, ['e-active']);\n var attrList = this.element.getAttribute('class') ? ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type']\n : ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type', 'class'];\n attrList.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.popupUnWireEvents();\n this.destroyPopup();\n this.isPopupCreated = false;\n if (!this.disabled) {\n this.unWireEvents();\n }\n }\n };\n DropDownButton.prototype.destroyPopup = function () {\n if (this.isPopupCreated) {\n this.dropDown.destroy();\n if (this.getPopUpElement()) {\n var popupEle = document.getElementById(this.getPopUpElement().id);\n if (popupEle) {\n removeClass([popupEle], ['e-popup-open', 'e-popup-close']);\n detach(popupEle);\n }\n }\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated && this.dropDown) {\n this.dropDown.element = null;\n this.dropDown = undefined;\n }\n }\n this.isPopupCreated = false;\n };\n DropDownButton.prototype.getPopUpElement = function () {\n var val = null;\n if (!this.dropDown && this.activeElem[0].classList.contains('e-split-btn')) {\n var dropDownBtn = getComponent(this.activeElem[1], 'dropdown-btn');\n if (dropDownBtn) {\n this.dropDown = dropDownBtn.dropDown;\n }\n }\n if (this.dropDown) {\n val = this.dropDown.element;\n }\n return val;\n };\n DropDownButton.prototype.getULElement = function () {\n var val = null;\n if (this.getPopUpElement()) {\n val = this.getPopUpElement().children[0];\n }\n return val;\n };\n DropDownButton.prototype.wireEvents = function () {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n if (!this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);\n };\n DropDownButton.prototype.popupWireEvents = function () {\n if (!this.delegateMousedownHandler) {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n }\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n if (popupElement) {\n EventHandler.add(popupElement, 'click', this.clickHandler, this);\n EventHandler.add(popupElement, 'keydown', this.keyBoardHandler, this);\n if (this.closeActionEvents) {\n EventHandler.add(popupElement, this.closeActionEvents, this.focusoutHandler, this);\n }\n }\n this.rippleFn = rippleEffect(popupElement, { selector: '.' + classNames.ITEM });\n };\n DropDownButton.prototype.popupUnWireEvents = function () {\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n if (popupElement && popupElement.parentElement) {\n EventHandler.remove(popupElement, 'click', this.clickHandler);\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\n if (this.closeActionEvents) {\n EventHandler.remove(popupElement, this.closeActionEvents, this.focusoutHandler);\n }\n }\n if (isRippleEnabled && this.rippleFn) {\n this.rippleFn();\n }\n };\n /**\n * Handles the keyboard interactions.\n *\n * @param {KeyboardEventArgs} e - Specifies keyboard event args.\n * @returns {void}\n * @hidden\n */\n DropDownButton.prototype.keyBoardHandler = function (e) {\n if (e.target === this.element && (e.keyCode === 9 || (!e.altKey && e.keyCode === 40) || e.keyCode === 38)) {\n return;\n }\n switch (e.keyCode) {\n case 38:\n case 40:\n if (e.altKey && (e.keyCode === 38 || e.keyCode === 40)) {\n this.keyEventHandler(e);\n }\n else {\n this.upDownKeyHandler(e);\n }\n break;\n case 9:\n case 13:\n case 27:\n case 32:\n this.keyEventHandler(e);\n break;\n }\n };\n DropDownButton.prototype.upDownKeyHandler = function (e) {\n if (this.target && (e.keyCode === 38 || e.keyCode === 40)) {\n return;\n }\n e.preventDefault();\n upDownKeyHandler(this.getULElement(), e.keyCode);\n };\n DropDownButton.prototype.keyEventHandler = function (e) {\n if (this.target && (e.keyCode === 13 || e.keyCode === 9)) {\n return;\n }\n if (e.keyCode === 13 && this.activeElem[0].classList.contains('e-split-btn')) {\n this.activeElem[0].focus();\n return;\n }\n if (e.target && e.target.className.indexOf('e-edit-template') > -1 && e.keyCode === 32) {\n return;\n }\n if (e.keyCode !== 9) {\n e.preventDefault();\n }\n if (e.keyCode === 27 || e.keyCode === 38 || e.keyCode === 9) {\n if (!this.canOpen()) {\n this.closePopup(e, this.element);\n }\n }\n else {\n this.clickHandler(e);\n }\n };\n DropDownButton.prototype.getLI = function (elem) {\n return elem.tagName === 'LI' ? elem : closest(elem, 'li');\n };\n DropDownButton.prototype.mousedownHandler = function (e) {\n var trgt = e.target;\n if (this.dropDown && !this.canOpen() && !(closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')\n || closest(trgt, '[id=\"' + this.element.id + '\"]'))) {\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.focusoutHandler = function (e) {\n if (this.isPopupCreated && !this.canOpen()) {\n var liTarget = e.relatedTarget;\n if (liTarget && liTarget.className.indexOf('e-item') > -1) {\n var li = this.getLI(liTarget);\n if (li) {\n var liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n var item = this.items[liIdx];\n if (item) {\n var selectEventArgs = { element: li, item: item };\n this.trigger('select', selectEventArgs);\n }\n }\n }\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.clickHandler = function (e) {\n var trgt = e.target;\n if (closest(trgt, '[id=\"' + this.element.id + '\"]')) {\n if (!this.createPopupOnClick || (this.target && this.target !== '' && !this.isColorPicker() && !this.createPopupOnClick)) {\n if (this.getPopUpElement().classList.contains('e-popup-close')) {\n this.openPopUp(e);\n }\n else {\n this.closePopup(e);\n }\n }\n else if (this.isPopupCreated) {\n this.closePopup(e, this.activeElem[0]);\n }\n else {\n this.createPopup();\n this.openPopUp(e);\n }\n }\n else {\n if (closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')) {\n var eventArgs = void 0;\n var liIdx = void 0;\n var item = void 0;\n var li = this.getLI(trgt);\n if (li) {\n liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n item = this.items[liIdx];\n if (item) {\n eventArgs = { element: li, item: item };\n this.trigger('select', eventArgs);\n }\n this.closePopup(e, this.activeElem[0]);\n }\n }\n }\n };\n DropDownButton.prototype.openPopUp = function (e) {\n var _this = this;\n if (e === void 0) { e = null; }\n var isReact = false;\n var popupElem = this.getPopUpElement();\n if (!this.target) {\n this.createItems(true);\n }\n else {\n if (this.activeElem.length > 1) {\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (splitButton.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n splitButton.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n }\n var ul = this.getULElement();\n this.popupWireEvents();\n var beforeOpenArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeOpen', beforeOpenArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var ul_1 = _this.getULElement();\n _this.dropDown.show(null, _this.element);\n addClass([_this.element], 'e-active');\n _this.element.setAttribute('aria-expanded', 'true');\n _this.element.setAttribute('aria-owns', _this.getPopUpElement().id);\n if (ul_1) {\n ul_1.focus();\n }\n if (_this.enableRtl && ul_1.parentElement.style.left !== '0px') {\n var wrapperWidth = void 0;\n if (_this.element.parentElement && _this.element.parentElement.classList.contains('e-split-btn-wrapper')) {\n wrapperWidth = _this.element.parentElement.offsetWidth;\n }\n else {\n wrapperWidth = _this.element.offsetWidth;\n }\n var popupRect = ul_1.parentElement.offsetWidth - wrapperWidth;\n var popupLeft = parseFloat(ul_1.parentElement.style.left) - popupRect;\n if (popupLeft < 0) {\n popupLeft = 0;\n }\n ul_1.parentElement.style.left = popupLeft + \"px\";\n }\n var openArgs = { element: ul_1, items: _this.items };\n _this.trigger('open', openArgs);\n }\n });\n };\n DropDownButton.prototype.closePopup = function (e, focusEle) {\n var _this = this;\n if (e === void 0) { e = null; }\n var ul = this.getULElement();\n var beforeCloseArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var popupElement = _this.getPopUpElement();\n if (popupElement) {\n EventHandler.remove(popupElement, 'keydown', _this.keyBoardHandler);\n }\n _this.popupUnWireEvents();\n var ul_2 = _this.getULElement();\n var selectedLi = void 0;\n if (ul_2) {\n selectedLi = ul_2.querySelector('.e-selected');\n }\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n _this.dropDown.hide();\n removeClass(_this.activeElem, 'e-active');\n _this.element.setAttribute('aria-expanded', 'false');\n _this.element.removeAttribute('aria-owns');\n if (focusEle) {\n focusEle.focus();\n }\n var closeArgs = { element: ul_2, items: _this.items };\n _this.trigger('close', closeArgs);\n if (!_this.target && ul_2) {\n detach(ul_2);\n }\n if (!_this.target || _this.isColorPicker() || (_this.target && !_this.isColorPicker())) {\n if (_this.createPopupOnClick) {\n _this.destroyPopup();\n }\n }\n }\n else {\n if (ul) {\n ul.focus();\n }\n }\n });\n };\n DropDownButton.prototype.unWireEvents = function () {\n if (!this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated) {\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DropDownButtonModel} newProp - Specifies new properties\n * @param {DropDownButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var btnModel = ['content', 'cssClass', 'iconCss', 'iconPosition', 'disabled', 'enableRtl'];\n this.button.setProperties(getModel(newProp, btnModel));\n var popupElement;\n if (this.isPopupCreated) {\n popupElement = this.getPopUpElement();\n this.dropDown.setProperties(getModel(newProp, ['enableRtl']));\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.unWireEvents();\n if (this.isPopupCreated && !this.canOpen()) {\n this.closePopup();\n }\n }\n else {\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (newProp.cssClass.indexOf(classNames.VERTICAL) > -1 || oldProp.cssClass.indexOf(classNames.VERTICAL) > -1) {\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n var arrowSpan = this.element.querySelector('span.e-caret');\n newProp.cssClass.indexOf(classNames.VERTICAL) > -1 ? classList(arrowSpan, ['e-icon-bottom'], ['e-icon-right'])\n : classList(arrowSpan, ['e-icon-right'], ['e-icon-bottom']);\n }\n if (this.isPopupCreated) {\n if (oldProp.cssClass) {\n removeClass([popupElement], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([popupElement], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n }\n break;\n case 'target':\n this.dropDown.content = this.getTargetElement();\n this.dropDown.dataBind();\n break;\n case 'items':\n if (this.isPopupCreated && this.getULElement()) {\n this.createItems();\n }\n break;\n case 'createPopupOnClick':\n if (newProp.createPopupOnClick) {\n this.destroyPopup();\n }\n else {\n this.createPopup();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to DropDownButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n DropDownButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], DropDownButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Collection([], Item)\n ], DropDownButton.prototype, \"items\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"closeActionEvents\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"created\", void 0);\n DropDownButton = __decorate([\n NotifyPropertyChanges\n ], DropDownButton);\n return DropDownButton;\n}(Component));\nexport { DropDownButton };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path='../drop-down-button/drop-down-button-model.d.ts'/>\nimport { Event, remove, addClass, removeClass, detach, getValue, setValue } from '@syncfusion/ej2-base';\nimport { EventHandler, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { attributes, getUniqueID, getInstance, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { getModel, Item } from './../common/common';\nimport { DropDownButton } from '../drop-down-button/drop-down-button';\nvar RTL = 'e-rtl';\nvar TAGNAME = 'EJS-SPLITBUTTON';\n/**\n * SplitButton component has primary and secondary button. Primary button is used to select\n * default action and secondary button is used to toggle contextual overlays for displaying list of\n * action items. It can contain both text and images.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var splitBtnObj = new SplitButton({content: 'SplitButton'});\n * splitBtnObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar SplitButton = /** @class */ (function (_super) {\n __extends(SplitButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {SplitButtonModel} options - Specifies the splitbutton model\n * @param {string|HTMLButtonElement} element - Specifies the element\n * @hidden\n */\n function SplitButton(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize Angular support.\n *\n * @private\n * @returns {void}\n */\n SplitButton.prototype.preRender = function () {\n var ele = this.element;\n if (ele.tagName === TAGNAME) {\n var ejInstance = getValue('ej2_instances', ele);\n var btn = this.createElement('button', { attrs: { 'type': 'button' } });\n var wrapper = this.createElement(TAGNAME, { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n btn.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = btn;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.wrapper = wrapper;\n this.element = ele;\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the Component rendering.\n *\n * @returns {void}\n * @private\n */\n SplitButton.prototype.render = function () {\n this.initWrapper();\n this.createPrimaryButton();\n this.renderControl();\n };\n SplitButton.prototype.renderControl = function () {\n this.createSecondaryButton();\n this.setActiveElem([this.element, this.secondaryBtnObj.element]);\n this.setAria();\n this.wireEvents();\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n SplitButton.prototype.addItems = function (items, text) {\n _super.prototype.addItems.call(this, items, text);\n this.secondaryBtnObj.items = this.items;\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n SplitButton.prototype.removeItems = function (items, isUniqueId) {\n _super.prototype.removeItems.call(this, items, isUniqueId);\n this.secondaryBtnObj.items = this.items;\n };\n SplitButton.prototype.initWrapper = function () {\n if (!this.wrapper) {\n this.wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n this.element.parentNode.insertBefore(this.wrapper, this.element);\n }\n this.element.classList.remove('e-' + this.getModuleName());\n if (this.enableRtl) {\n this.wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([this.wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n };\n SplitButton.prototype.createPrimaryButton = function () {\n var btnModel = {\n cssClass: this.cssClass,\n enableRtl: this.enableRtl,\n iconCss: this.iconCss,\n iconPosition: this.iconPosition,\n content: this.content,\n disabled: this.disabled\n };\n this.primaryBtnObj = new Button(btnModel);\n this.primaryBtnObj.createElement = this.createElement;\n this.primaryBtnObj.appendTo(this.element);\n this.element.classList.add('e-' + this.getModuleName());\n this.element.type = 'button';\n this.wrapper.appendChild(this.element);\n };\n SplitButton.prototype.createSecondaryButton = function () {\n var _this = this;\n var btnElem = this.createElement('button', {\n className: 'e-icon-btn',\n attrs: { 'tabindex': '-1' },\n id: this.element.id + '_dropdownbtn'\n });\n this.wrapper.appendChild(btnElem);\n var dropDownBtnModel = {\n cssClass: this.cssClass,\n disabled: this.disabled,\n enableRtl: this.enableRtl,\n items: this.items,\n target: this.target,\n createPopupOnClick: this.createPopupOnClick\n };\n dropDownBtnModel.beforeItemRender = function (args) {\n if (_this.createPopupOnClick) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n _this.trigger('beforeItemRender', args);\n };\n dropDownBtnModel.open = function (args) {\n _this.trigger('open', args);\n };\n dropDownBtnModel.close = function (args) {\n _this.trigger('close', args);\n };\n dropDownBtnModel.select = function (args) {\n _this.trigger('select', args);\n };\n dropDownBtnModel.beforeOpen = function (args) {\n if (_this.createPopupOnClick && _this.items.length == 0) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n var callBackPromise = new Deferred();\n _this.trigger('beforeOpen', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n dropDownBtnModel.beforeClose = function (args) {\n var callBackPromise = new Deferred();\n _this.trigger('beforeClose', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n this.secondaryBtnObj = new DropDownButton(dropDownBtnModel);\n this.secondaryBtnObj.createElement = this.createElement;\n this.secondaryBtnObj.appendTo(btnElem);\n if (!this.createPopupOnClick) {\n this.secondaryBtnObj.dropDown.relateTo = this.wrapper;\n this.dropDown = this.secondaryBtnObj.dropDown;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.isPopupCreated = this.secondaryBtnObj.isPopupCreated;\n this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element];\n this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right');\n if (this.disabled) {\n this.wrapper.classList.add('e-splitbtn-disabled');\n }\n };\n SplitButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-expanded': 'false', 'aria-haspopup': 'true',\n 'aria-label': this.element.textContent ? this.element.textContent + ' splitbutton' : 'splitbutton', 'aria-owns': this.element.id + '_dropdownbtn-popup'\n });\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n SplitButton.prototype.getModuleName = function () {\n return 'split-btn';\n };\n /**\n * To open/close SplitButton popup based on current state of the SplitButton.\n *\n * @returns {void}\n */\n SplitButton.prototype.toggle = function () {\n this.secondaryBtnObj.toggle();\n };\n SplitButton.prototype.destroy = function () {\n var _this = this;\n var classList = [RTL];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n if (this.element) {\n var element = document.getElementById(this.element.id);\n if (element && element.parentElement === this.wrapper) {\n if (this.wrapper.tagName === TAGNAME) {\n this.wrapper.innerHTML = '';\n removeClass([this.wrapper], ['e-rtl', 'e-' + this.getModuleName() + '-wrapper']);\n removeClass([this.wrapper], this.cssClass.split(' '));\n }\n else {\n removeClass([this.element], classList);\n ['aria-label', 'aria-haspopup', 'aria-expanded', 'aria-owns', 'type'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.wrapper.parentNode.insertBefore(this.element, this.wrapper);\n remove(this.wrapper);\n }\n this.unWireEvents();\n }\n }\n this.wrapper = null;\n this.primaryBtnObj.destroy();\n this.secondaryBtnObj.destroy();\n _super.prototype.destroy.call(this);\n if (!this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n };\n SplitButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.primaryBtnClickHandler, this);\n new KeyboardEvents(this.element, {\n keyAction: this.btnKeyBoardHandler.bind(this),\n keyConfigs: {\n altdownarrow: 'alt+downarrow',\n enter: 'enter'\n }\n });\n };\n SplitButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.primaryBtnClickHandler);\n getInstance(this.element, KeyboardEvents).destroy();\n };\n SplitButton.prototype.primaryBtnClickHandler = function () {\n this.trigger('click', { element: this.element });\n };\n SplitButton.prototype.btnKeyBoardHandler = function (e) {\n switch (e.action) {\n case 'altdownarrow':\n this.clickHandler(e);\n break;\n case 'enter':\n this.clickHandler(e);\n if (this.getPopUpElement() && !this.getPopUpElement().classList.contains('e-popup-close')) {\n this.element.classList.remove('e-active');\n this.secondaryBtnObj.element.classList.add('e-active');\n }\n else {\n this.secondaryBtnObj.element.classList.remove('e-active');\n }\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {SplitButtonModel} newProp - Specifies new properties\n * @param {SplitButtonModel} oldProp - Specifies old properties\n * @returns {void}\n */\n SplitButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var model = ['content', 'iconCss', 'iconPosition', 'cssClass', 'disabled', 'enableRtl'];\n this.primaryBtnObj.setProperties(getModel(newProp, model));\n model = ['beforeOpen', 'beforeItemRender', 'select', 'open',\n 'close', 'cssClass', 'disabled', 'enableRtl', 'createPopupOnClick'];\n if (Object.keys(newProp).indexOf('items') > -1) {\n this.secondaryBtnObj.items = newProp.items;\n this.secondaryBtnObj.dataBind();\n }\n this.secondaryBtnObj.setProperties(getModel(newProp, model));\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.wrapper], oldProp.cssClass.split(' '));\n }\n addClass([this.wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n addClass([this.wrapper], RTL);\n }\n else {\n removeClass([this.wrapper], RTL);\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n addClass([this.wrapper], 'e-splitbtn-disabled');\n }\n else {\n removeClass([this.wrapper], 'e-splitbtn-disabled');\n }\n }\n }\n };\n /**\n * Sets the focus to SplitButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n SplitButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], SplitButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], SplitButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Collection([], Item)\n ], SplitButton.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"target\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"created\", void 0);\n SplitButton = __decorate([\n NotifyPropertyChanges\n ], SplitButton);\n return SplitButton;\n}(DropDownButton));\nexport { SplitButton };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __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 { Button } from '@syncfusion/ej2-buttons';\nimport { EventHandler, Property, NotifyPropertyChanges, Animation, attributes, animationMode } from '@syncfusion/ej2-base';\nimport { Event, remove, removeClass } from '@syncfusion/ej2-base';\nimport { Complex, ChildProperty, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nvar HIDESPINNER = 'e-hide-spinner';\nvar PROGRESS = 'e-progress';\nvar PROGRESSACTIVE = 'e-progress-active';\nvar CONTENTCLS = 'e-btn-content';\n/**\n * Defines the spin settings.\n */\nvar SpinSettings = /** @class */ (function (_super) {\n __extends(SpinSettings, _super);\n function SpinSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], SpinSettings.prototype, \"template\", void 0);\n __decorate([\n Property(16)\n ], SpinSettings.prototype, \"width\", void 0);\n __decorate([\n Property('Left')\n ], SpinSettings.prototype, \"position\", void 0);\n return SpinSettings;\n}(ChildProperty));\nexport { SpinSettings };\n/**\n * Defines the animation settings.\n */\nvar AnimationSettings = /** @class */ (function (_super) {\n __extends(AnimationSettings, _super);\n function AnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(400)\n ], AnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('None')\n ], AnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property('ease')\n ], AnimationSettings.prototype, \"easing\", void 0);\n return AnimationSettings;\n}(ChildProperty));\nexport { AnimationSettings };\n/**\n * The ProgressButton visualizes the progression of an operation to indicate the user\n * that a process is happening in the background with visual representation.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var progressButtonObj = new ProgressButton({ content: 'Progress Button' });\n * progressButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar ProgressButton = /** @class */ (function (_super) {\n __extends(ProgressButton, _super);\n /**\n * Constructor for creating the widget.\n *\n * @param {ProgressButtonModel} options - Specifies progress button model\n * @param {string|HTMLButtonElement} element - Specifies element\n */\n function ProgressButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.step = 1;\n return _this;\n }\n ProgressButton.prototype.preRender = function () {\n _super.prototype.preRender.call(this);\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.render = function () {\n _super.prototype.render.call(this);\n this.init();\n this.wireEvents();\n this.setAria();\n this.renderComplete();\n };\n /**\n * Starts the button progress at the specified percent.\n *\n * @param {number} percent - Starts the button progress at this percent.\n * @returns {void}\n */\n ProgressButton.prototype.start = function (percent) {\n this.isPaused = false;\n this.startProgress(percent ? percent : this.percent, this.progressTime);\n };\n /**\n * Stops the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.stop = function () {\n this.isPaused = true;\n cancelAnimationFrame(this.timerId);\n };\n /**\n * Complete the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.progressComplete = function () {\n this.isPaused = false;\n this.finishProgress();\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ProgressButton.prototype.getModuleName = function () {\n return 'progress-btn';\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n ProgressButton.prototype.destroy = function () {\n var _this = this;\n var classList = [HIDESPINNER, PROGRESSACTIVE, 'e-round-corner', 'e-' + _super.prototype.getModuleName.call(this),\n 'e-spin-' + this.spinSettings.position.toLowerCase()];\n _super.prototype.destroy.call(this);\n this.unWireEvents();\n this.element.innerHTML = '';\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n removeClass([this.element], classList);\n var css = this.element.getAttribute('class') ? ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow']\n : ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'class'];\n css.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n if (this.disabled) {\n this.element.removeAttribute('disabled');\n }\n };\n ProgressButton.prototype.init = function () {\n this.element.classList.add('e-' + _super.prototype.getModuleName.call(this));\n this.setContent();\n this.createSpinner();\n if (this.enableProgress) {\n this.createProgress();\n }\n };\n ProgressButton.prototype.createSpinner = function () {\n var spinner = this.createElement('span', { className: 'e-spinner' });\n this.setSpinPosition(spinner);\n createSpinner({\n target: spinner, width: this.spinSettings.width || 16, template: this.spinSettings.template\n }, this.createElement);\n };\n ProgressButton.prototype.getSpinner = function () {\n return this.element.getElementsByClassName('e-spinner')[0];\n };\n ProgressButton.prototype.getProgress = function () {\n return this.element.getElementsByClassName(PROGRESS)[0];\n };\n ProgressButton.prototype.setSpinPosition = function (ele) {\n var position = this.spinSettings.position || 'Left';\n if (position === 'Left' || position === 'Top') {\n this.element.insertBefore(ele, this.element.getElementsByClassName(CONTENTCLS)[0]);\n }\n else {\n this.element.appendChild(ele);\n }\n this.element.classList.add('e-spin-' + position.toLowerCase());\n };\n ProgressButton.prototype.createProgress = function () {\n this.element.appendChild(this.createElement('span', { className: PROGRESS }));\n };\n ProgressButton.prototype.setContent = function () {\n var cont;\n cont = this.element.innerHTML;\n if (this.enableHtmlSanitizer) {\n cont = SanitizeHtmlHelper.sanitize(this.element.innerHTML);\n }\n this.element.innerHTML = '';\n this.element.appendChild(this.createElement('span', { className: CONTENTCLS, innerHTML: cont }));\n };\n ProgressButton.prototype.setContentIcon = function (content) {\n var contElem = this.createElement('span', { className: CONTENTCLS, innerHTML: content });\n if (this.iconCss) {\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\n if (!this.element.textContent.trim()) {\n this.element.classList.add('e-icon-btn');\n }\n else {\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\n }\n }\n var node = contElem.childNodes[0];\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n contElem.insertBefore(span, node);\n }\n else {\n contElem.appendChild(span);\n }\n }\n this.element.appendChild(contElem);\n };\n ProgressButton.prototype.clickHandler = function () {\n if (this.element.classList.contains(PROGRESSACTIVE)) {\n return;\n }\n this.startProgress();\n };\n ProgressButton.prototype.startProgress = function (percent, progressTime) {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n if (!(clsList.contains(HIDESPINNER))) {\n showSpinner(this.element.querySelector(\".e-spinner\"));\n }\n this.startAnimate(Date.now(), progressTime ? progressTime : 0, progressTime ? Date.now() - (this.duration * 1 / 100) : Date.now(), percent ? percent : 0, 0, this.step, 0, isVertical);\n this.startContAnimate();\n };\n ProgressButton.prototype.startAnimate = function (timestamp, progressTime, prevTime, percent, prevPercent, step, prevProgressTime, isVertical) {\n var _this = this;\n try {\n var timeDiff = timestamp - prevTime;\n var stepTime = this.duration * step / 100;\n var timeDiffBuffer_1 = timeDiff ? (timeDiff < stepTime ? timeDiff - stepTime : timeDiff % stepTime) : 0;\n this.progressTime = progressTime = progressTime + timeDiff - timeDiffBuffer_1;\n prevTime = timestamp - timeDiffBuffer_1;\n percent = percent + (timeDiff - timeDiffBuffer_1) / this.duration * 100;\n prevPercent = ((progressTime - prevProgressTime) % stepTime === 0 || percent === 100) ? percent : prevPercent;\n var args = { percent: prevPercent, currentDuration: progressTime, step: step };\n this.eIsVertical = isVertical;\n if (percent === 0) {\n this.trigger('begin', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else if (percent === 100 || progressTime === this.duration) {\n this.trigger('end', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else {\n this.trigger('progress', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n }\n catch (e) {\n cancelAnimationFrame(this.timerId);\n this.trigger('fail', e);\n }\n };\n ProgressButton.prototype.successCallback = function (args, perc, pPerc, prgTim, pPrgTim, timDif, pTim) {\n var _this = this;\n var percent = perc;\n var prevPercent = pPerc;\n var timeDiffBuffer = timDif;\n var progressTime = prgTim;\n var prevProgressTime = pPrgTim;\n var prevTime = pTim;\n var isVertical = this.eIsVertical;\n if (percent !== args.percent && args.percent !== prevPercent) {\n percent = args.percent;\n }\n this.percent = percent;\n this.step = args.step;\n if ((progressTime - prevProgressTime) % (this.duration * args.step / 100) === 0 || percent === 100) {\n this.timerId = requestAnimationFrame(function () {\n if (_this.enableProgress) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = percent + '%';\n }\n _this.element.setAttribute('aria-valuenow', percent.toString());\n });\n prevPercent = percent;\n prevProgressTime = progressTime;\n }\n if (!this.isPaused) {\n if (progressTime < this.duration && percent < 100) {\n this.interval = window.setTimeout(function () {\n _this.startAnimate(Date.now(), progressTime, prevTime, percent, prevPercent, args.step, prevProgressTime, isVertical);\n }, (this.duration / 100) - timeDiffBuffer);\n }\n else {\n this.interval = window.setTimeout(function () {\n _this.progressTime = _this.percent = 0;\n if (_this.enableProgress) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = '0%';\n }\n _this.element.setAttribute('aria-valuenow', '0');\n _this.hideSpin();\n }, 100);\n }\n }\n };\n ProgressButton.prototype.startContAnimate = function () {\n var _this = this;\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (this.animationSettings.effect !== 'None') {\n (new Animation({})).animate(ele, {\n duration: (this.animationSettings.duration === 0 && animationMode === 'Enable') ? 400 : this.animationSettings.duration,\n name: 'Progress' + this.animationSettings.effect,\n timingFunction: this.animationSettings.easing,\n begin: function () {\n if (_this.spinSettings.position === 'Center') {\n _this.setSpinnerSize();\n }\n },\n end: function () {\n ele.classList.add('e-animate-end');\n }\n });\n }\n else if (this.spinSettings.position === 'Center') {\n this.setSpinnerSize();\n }\n };\n ProgressButton.prototype.finishProgress = function () {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n var count = 100;\n for (var i = this.percent; i < count; i++) {\n i += 10;\n if (i > 100) {\n i = 100;\n }\n if (this.enableProgress) {\n this.getProgress().style[isVertical ? 'height' : 'width'] = (this.percent < 100) ? (i + '%') : '100%';\n }\n }\n this.element.setAttribute('aria-valuenow', '0');\n this.hideSpin();\n var args = { step: this.step, currentDuration: this.progressTime, percent: 100 };\n clearTimeout(this.interval);\n this.trigger('end', args);\n this.progressTime = this.percent = 0;\n };\n ProgressButton.prototype.setSpinnerSize = function () {\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n var spinner = this.getSpinner();\n spinner.style.width = Math.max(spinner.offsetWidth, ele.offsetWidth) + 'px';\n spinner.style.height = Math.max(spinner.offsetHeight, ele.offsetHeight) + 'px';\n ele.classList.add('e-cont-animate');\n };\n ProgressButton.prototype.hideSpin = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (!(this.element.classList.contains(HIDESPINNER))) {\n hideSpinner(this.element.querySelector(\".e-spinner\"));\n }\n this.element.classList.remove(PROGRESSACTIVE);\n if (this.animationSettings.effect !== 'None') {\n cont.classList.remove('e-animate-end');\n }\n if (this.spinSettings.position === 'Center') {\n var ele = this.getSpinner();\n cont.classList.remove('e-cont-animate');\n ele.style.width = 'auto';\n ele.style.height = 'auto';\n }\n };\n ProgressButton.prototype.setIconSpan = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n var iconSpan = this.element.getElementsByClassName('e-btn-icon')[0];\n if (cont.childNodes[0] && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n cont.insertBefore(iconSpan, cont.childNodes[0]);\n }\n else {\n cont.appendChild(iconSpan);\n }\n };\n ProgressButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-label': this.element.textContent + ' progress', 'aria-valuemin': '0', 'aria-valuemax': '100', 'aria-valuenow': '0'\n });\n };\n ProgressButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n };\n ProgressButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ProgressButtonModel} newProp - Specifies new properties\n * @param {ProgressButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var ele = this.element;\n var isSpinning = false;\n var clsList = this.element.querySelector('.e-spinner-pane').classList;\n if (clsList.contains('e-spin-show')) {\n isSpinning = true;\n }\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n this.setContent();\n this.createSpinner();\n if (isSpinning) {\n showSpinner(this.element.querySelector(\".e-spinner\"));\n isSpinning = false;\n }\n if (this.enableProgress) {\n this.createProgress();\n }\n ele.setAttribute('aria-label', ele.textContent + ' progress');\n break;\n case 'iconCss':\n if (!oldProp.iconCss) {\n this.setIconSpan();\n }\n break;\n case 'iconPosition':\n this.setIconSpan();\n break;\n case 'enableProgress':\n if (newProp.enableProgress) {\n this.createProgress();\n }\n else {\n remove(this.getProgress());\n }\n break;\n case 'spinSettings':\n if (newProp.spinSettings.position) {\n ele.classList.remove('e-spin-' + oldProp.spinSettings.position.toLowerCase());\n this.setSpinPosition(this.getSpinner());\n }\n if (newProp.spinSettings.template || newProp.spinSettings.width) {\n ele.removeChild(this.getSpinner());\n this.createSpinner();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to ProgressButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n ProgressButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"enableProgress\", void 0);\n __decorate([\n Property(2000)\n ], ProgressButton.prototype, \"duration\", void 0);\n __decorate([\n Property('Left')\n ], ProgressButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isToggle\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, SpinSettings)\n ], ProgressButton.prototype, \"spinSettings\", void 0);\n __decorate([\n Complex({}, AnimationSettings)\n ], ProgressButton.prototype, \"animationSettings\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"fail\", void 0);\n ProgressButton = __decorate([\n NotifyPropertyChanges\n ], ProgressButton);\n return ProgressButton;\n}(Button));\nexport { ProgressButton };\n","import { addClass, createElement as internalCreateElement, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\n/**\n * Initialize ButtonGroup CSS component with specified properties.\n * ```html\n * <div id='buttongroup'>\n * <button></button>\n * <button></button>\n * <button></button>\n * </div>\n * ```\n * ```typescript\n * createButtonGroup('#buttongroup', {\n * cssClass: 'e-outline',\n * buttons: [\n * { content: 'Day' },\n * { content: 'Week' },\n * { content: 'Work Week'}\n * ]\n * });\n * ```\n *\n * @param {string} selector\n * @param {CreateButtonGroupModel} options\n * @returns HTMLElement\n */\n/**\n * Creates button group.\n *\n * @param {string} selector - Specifies the selector.\n * @param {CreateButtonGroupModel} options - Specifies the button group model.\n * @param {Function} createElement - Specifies the element.\n * @returns {HTMLElement} - Button group element.\n */\nexport function createButtonGroup(selector, options, createElement) {\n if (options === void 0) { options = {}; }\n var child;\n var btnElem;\n var nextChild;\n var btnModel;\n if (isNullOrUndefined(createElement)) {\n createElement = internalCreateElement;\n }\n var wrapper = document.querySelector(selector);\n addClass([wrapper], ['e-btn-group', 'e-css']);\n wrapper.setAttribute('role', 'group');\n var childs = wrapper.children;\n options.buttons = options.buttons || [];\n for (var i = 0, j = 0; j < childs.length; i++, j++) {\n child = childs[j];\n btnModel = options.buttons[i];\n if (btnModel !== null) {\n if (child.tagName === 'BUTTON') {\n btnElem = child;\n }\n else {\n btnElem = createElement('label');\n nextChild = childs[j + 1];\n if (nextChild) {\n wrapper.insertBefore(btnElem, nextChild);\n }\n else {\n wrapper.appendChild(btnElem);\n }\n if (child.id) {\n btnElem.setAttribute('for', child.id);\n }\n if (btnModel && btnModel.disabled) {\n child.disabled = true;\n }\n j++;\n }\n if (options.cssClass && btnModel && !btnModel.cssClass) {\n btnModel.cssClass = options.cssClass;\n }\n new Button(btnModel || {}, btnElem);\n }\n }\n return wrapper;\n}\n"],"names":["getModel","props","model","obj","extend","_i","_a","Object","keys","length","prop","indexOf","deleteObject","upDownKeyHandler","ul","keyCode","defaultIdx","childElementCount","liIdx","selectedLi","querySelector","classList","remove","i","len","children","contains","isValidLI","addClass","focus","li","index","count","setBlankIconStyle","popup","blankIcon","blankIconList","slice","call","getElementsByClassName","forEach","style","paddingLeft","paddingRight","removeAttribute","iconLi","isNullOrUndefined","cssProp","icon","enableRtl","padding","margin","size","parseInt","getComputedStyle","fontSize","__extends","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","Item","_super","apply","Property","ChildProperty","classNames","DropDownButton","options","element","_this","isPopupCreated","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","createPopupOnClick","createPopup","closePopup","render","initialize","disabled","wireEvents","renderComplete","addItems","items","text","newItem","idx","j","splice","createItems","removeItems","isUniqueId","refresh","len_1","id","getULElement","div","createElement","className","document","body","appendChild","dropDown","Popup","relateTo","collision","X","Y","position","targetType","content","getTargetElement","popupContent","display","refreshPosition","hide","attributes","cssClass","replace","trim","split","isColorPicker","select","appendItems","span","item","eventArgs","showIcon","hasIcon","innerHTML","attrs","role","tabindex","tempItem","url","separator","aria-label","getUniqueID","getModuleName","enableHtmlSanitizer","textContent","createAnchor","add","iconCss","childNodes","insertBefore","trigger","getPopUpElement","field","SanitizeHtmlHelper","sanitize","href","button","Button","iconPosition","enablePersistence","appendTo","appendArrowSpan","setActiveElem","setAttribute","prevElem","previousSibling","elem","activeElem","val","destroy","classList_1","detach","removeClass","getAttribute","popupUnWireEvents","destroyPopup","unWireEvents","popupEle","getElementById","EventHandler","clickHandler","keyBoardHandler","undefined","dropDownBtn","getComponent","delegateMousedownHandler","mousedownHandler","bind","popupWireEvents","popupElement","closeActionEvents","focusoutHandler","rippleFn","rippleEffect","selector","parentElement","isRippleEnabled","e","altKey","keyEventHandler","preventDefault","getLI","tagName","closest","trgt","liTarget","relatedTarget","selectEventArgs","popupElem","splitButton","isReact","appendReactElement","renderReactTemplates","beforeOpenArgs","event","cancel","observedArgs","ul_1","show","left","wrapperWidth","offsetWidth","popupRect","popupLeft","parseFloat","openArgs","focusEle","beforeCloseArgs","ul_2","closeArgs","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Event","NotifyPropertyChanges","Component","TAGNAME","SplitButton","ele","ejInstance","getValue","btn","type","wrapper","nodeName","nodeValue","parentNode","setValue","initWrapper","createPrimaryButton","renderControl","createSecondaryButton","secondaryBtnObj","setAria","btnModel","primaryBtnObj","btnElem","dropDownBtnModel","beforeItemRender","args","open","close","beforeOpen","callBackPromise","Deferred","resolve","beforeClose","aria-expanded","aria-haspopup","aria-owns","concat","primaryBtnClickHandler","KeyboardEvents","keyAction","btnKeyBoardHandler","keyConfigs","altdownarrow","enter","getInstance","action","promise","Promise","reject","catch","then","HIDESPINNER","PROGRESSACTIVE","CONTENTCLS","SpinSettings","AnimationSettings","ProgressButton","step","init","start","percent","isPaused","startProgress","progressTime","stop","cancelAnimationFrame","timerId","progressComplete","finishProgress","spinSettings","toLowerCase","setContent","createSpinner","enableProgress","createProgress","spinner","setSpinPosition","width","template","getSpinner","getProgress","cont","setContentIcon","contElem","node","clsList","isVertical","showSpinner","startAnimate","Date","now","duration","startContAnimate","timestamp","prevTime","prevPercent","prevProgressTime","timeDiff","stepTime","timeDiffBuffer_1","currentDuration","eIsVertical","successCallback","perc","pPerc","prgTim","pPrgTim","timDif","pTim","timeDiffBuffer","requestAnimationFrame","toString","interval","window","setTimeout","hideSpin","animationSettings","effect","Animation","animate","animationMode","name","timingFunction","easing","begin","setSpinnerSize","end","clearTimeout","Math","max","height","offsetHeight","hideSpinner","setIconSpan","iconSpan","aria-valuemin","aria-valuemax","aria-valuenow","isSpinning","removeChild","Complex","child","nextChild","internalCreateElement","childs","buttons"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ej2-splitbuttons.umd.min.js","sources":["../src/common/common.js","../src/drop-down-button/drop-down-button.js","../src/split-button/split-button.js","../src/progress-button/progress-button.js","../src/button-group/button-group.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __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, extend, deleteObject, Property, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @param {Object} props - Specifies the properties\n * @param {string[]} model - Specifies the model\n * @returns {Object} Component Model\n */\nexport function getModel(props, model) {\n var obj = extend({}, props);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((model).indexOf(prop) < 0) {\n deleteObject(obj, prop);\n }\n }\n return obj;\n}\n/** @hidden\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {number} keyCode - Specifies the keycode\n * @returns {void}\n */\nexport function upDownKeyHandler(ul, keyCode) {\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\n var liIdx = defaultIdx;\n var li;\n var selectedLi = ul.querySelector('.e-selected');\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains('e-focused')) {\n li = ul.children[i];\n liIdx = i;\n li.classList.remove('e-focused');\n if (keyCode === 40) {\n liIdx++;\n }\n else {\n liIdx--;\n }\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\n liIdx = defaultIdx;\n }\n }\n }\n li = ul.children[liIdx];\n liIdx = isValidLI(ul, li, liIdx, keyCode);\n if (liIdx !== -1) {\n addClass([ul.children[liIdx]], 'e-focused');\n ul.children[liIdx].focus();\n }\n}\n/**\n * Get Valid LI element\n *\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {Element} li - Specifies the LI element\n * @param {number} index - Specifies the index\n * @param {number} keyCode - Specifies the keycode\n * @param {number} count - Specifies the count\n * @returns {number} - Index\n */\nfunction isValidLI(ul, li, index, keyCode, count) {\n if (count === void 0) { count = 0; }\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\n }\n else {\n if (keyCode === 40) {\n index++;\n }\n else {\n index--;\n }\n }\n }\n li = ul.children[index];\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n count++;\n if (count === ul.childElementCount) {\n return index = -1;\n }\n index = isValidLI(ul, li, index, keyCode, count);\n }\n return index;\n}\n/** @hidden\n * @param {HTMLElement} popup - Specifies the popup element.\n * @returns {void}\n */\nexport function setBlankIconStyle(popup, blankIcon) {\n var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon'));\n if (blankIcon) {\n var menuItem = [].slice.call(popup.getElementsByClassName('e-item'));\n menuItem.forEach(function (li) {\n if (li.style.paddingLeft || li.style.paddingRight) {\n li.removeAttribute('style');\n }\n });\n }\n if (!blankIconList.length) {\n return;\n }\n var iconLi = popup.querySelector('.e-item:not(.e-blank-icon):not(.e-separator)');\n if (isNullOrUndefined(iconLi)) {\n return;\n }\n if (iconLi.classList.contains('e-url')) {\n iconLi = iconLi.querySelector('.e-menu-url');\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n var cssProp;\n var enableRtl = popup.classList.contains('e-rtl');\n if (enableRtl) {\n cssProp = { padding: 'paddingRight', margin: 'marginLeft' };\n }\n else {\n cssProp = { padding: 'paddingLeft', margin: 'marginRight' };\n }\n /* eslint-disable */\n var size = parseInt(getComputedStyle(icon).fontSize, 10) + parseInt((enableRtl ? getComputedStyle(icon)[cssProp.margin] : getComputedStyle(icon)[cssProp.margin]), 10)\n + parseInt(getComputedStyle(iconLi).paddingLeft, 10) + \"px\";\n blankIconList.forEach(function (li) {\n if (li.classList.contains('e-url')) {\n li.querySelector('.e-menu-url').style[cssProp.padding] = size;\n }\n else {\n li.style[cssProp.padding] = size;\n }\n });\n /* eslint-enable */\n}\n/**\n * Defines the items of Split Button/DropDownButton.\n */\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"separator\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"url\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"disabled\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __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 { Collection, Event, NotifyPropertyChanges, detach, Property, EventHandler, isRippleEnabled, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { addClass, getUniqueID, rippleEffect, getComponent } from '@syncfusion/ej2-base';\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { classList, removeClass } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { upDownKeyHandler } from './../common/common';\nimport { getModel, Item, setBlankIconStyle } from './../common/common';\nvar classNames = {\n DISABLED: 'e-disabled',\n FOCUS: 'e-focused',\n ICON: 'e-menu-icon',\n ITEM: 'e-item',\n POPUP: 'e-dropdown-popup',\n RTL: 'e-rtl',\n SEPARATOR: 'e-separator',\n VERTICAL: 'e-vertical'\n};\n/**\n * DropDownButton component is used to toggle contextual overlays for displaying list of action items.\n * It can contain both text and images.\n * ```html\n * <button id=\"element\">DropDownButton</button>\n * ```\n * ```typescript\n * <script>\n * var dropDownButtonObj = new DropDownButton({items: [{ text: 'Action1' }, { text: 'Action2' },{ text: 'Action3' }]);\n * dropDownButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar DropDownButton = /** @class */ (function (_super) {\n __extends(DropDownButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {DropDownButtonModel} options - Specifies dropdown button model\n * @param {string|HTMLButtonElement} element - Specifies element\n * @hidden\n */\n function DropDownButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isPopupCreated = true;\n return _this;\n }\n DropDownButton.prototype.preRender = function () {\n /** */\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n DropDownButton.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To open/close DropDownButton popup based on current state of the DropDownButton.\n *\n * @returns {void}\n */\n DropDownButton.prototype.toggle = function () {\n if (this.canOpen()) {\n this.openPopUp();\n }\n else if (this.createPopupOnClick && !this.isPopupCreated) {\n this.createPopup();\n this.openPopUp();\n }\n else {\n this.closePopup();\n }\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.render = function () {\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n DropDownButton.prototype.addItems = function (items, text) {\n var newItem;\n var idx = this.items.length;\n for (var j = 0, len = this.items.length; j < len; j++) {\n if (text === this.items[j].text) {\n idx = j;\n break;\n }\n }\n for (var i = items.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newItem = new Item(this, 'items', items[i], true);\n this.items.splice(idx, 0, newItem);\n }\n if (!this.canOpen()) {\n this.createItems();\n }\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n DropDownButton.prototype.removeItems = function (items, isUniqueId) {\n var refresh = false;\n for (var i = 0, len = items.length; i < len; i++) {\n for (var j = 0, len_1 = this.items.length; j < len_1; j++) {\n if (items[i] === (isUniqueId ? this.items[j].id : this.items[j].text)) {\n this.items.splice(j, 1);\n refresh = true;\n break;\n }\n }\n }\n if (refresh && this.getULElement()) {\n this.createItems();\n }\n };\n DropDownButton.prototype.createPopup = function () {\n var _a;\n var div = this.createElement('div', {\n className: classNames.POPUP,\n id: this.element.id + '-popup'\n });\n document.body.appendChild(div);\n this.dropDown = new Popup(div, {\n relateTo: this.element,\n collision: { X: 'fit', Y: 'flip' },\n position: { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n content: this.target ? this.getTargetElement() : '',\n enableRtl: this.enableRtl\n });\n if (!isNullOrUndefined(this.popupContent)) {\n this.popupContent.style.display = '';\n }\n if (this.dropDown.element.style.position === 'fixed') {\n this.dropDown.refreshPosition(this.element);\n }\n this.dropDown.hide();\n attributes(this.element, (_a = {},\n _a['aria-haspopup'] = this.items.length || this.target ? 'true' : 'false',\n _a['aria-expanded'] = 'false',\n _a['type'] = 'button',\n _a));\n if (this.cssClass) {\n addClass([div], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.isPopupCreated = true;\n };\n DropDownButton.prototype.getTargetElement = function () {\n if (this.createPopupOnClick && !this.isColorPicker() && !isNullOrUndefined(this.popupContent)) {\n return this.popupContent;\n }\n return typeof (this.target) === 'string' ? select(this.target) : this.target;\n };\n DropDownButton.prototype.createItems = function (appendItems) {\n var items = this.items;\n var showIcon = this.hasIcon(this.items, 'iconCss');\n var span;\n var item;\n var li;\n var eventArgs;\n var ul = this.getULElement();\n if (ul) {\n ul.innerHTML = '';\n }\n else {\n ul = this.createElement('ul', {\n attrs: { 'role': 'menu', 'tabindex': '0' }\n });\n }\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n var tempItem = item.text;\n li = this.createElement('li', {\n innerHTML: item.url ? '' : tempItem,\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator ? { 'role': 'separator', 'tabindex': '-1' } : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': tempItem },\n id: item.id ? item.id : getUniqueID('e-' + this.getModuleName() + '-item')\n });\n if (this.enableHtmlSanitizer) {\n li.textContent = item.url ? '' : tempItem;\n }\n else {\n li.innerHTML = item.url ? '' : tempItem;\n }\n if (item.url) {\n li.appendChild(this.createAnchor(item));\n li.classList.add('e-url');\n }\n if (item.iconCss) {\n span = this.createElement('span', { className: classNames.ICON + ' ' + item.iconCss });\n if (item.url) {\n li.childNodes[0].appendChild(span);\n }\n else {\n li.insertBefore(span, li.childNodes[0]);\n }\n }\n else {\n if (showIcon && !item.separator) {\n li.classList.add('e-blank-icon');\n }\n }\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n eventArgs = { item: item, element: li };\n this.trigger('beforeItemRender', eventArgs);\n ul.appendChild(li);\n }\n if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\n }\n };\n DropDownButton.prototype.hasIcon = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n DropDownButton.prototype.createAnchor = function (item) {\n var tempItem = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\n return this.createElement('a', { className: 'e-menu-text e-menu-url', innerHTML: tempItem, attrs: { 'href': item.url } });\n };\n DropDownButton.prototype.initialize = function () {\n this.button = new Button({\n iconCss: this.iconCss, iconPosition: this.iconPosition, cssClass: this.cssClass, content: this.content,\n disabled: this.disabled, enableRtl: this.enableRtl, enablePersistence: this.enablePersistence\n });\n this.button.createElement = this.createElement;\n this.button.appendTo(this.element);\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.appendArrowSpan();\n this.setActiveElem([this.element]);\n this.element.setAttribute('aria-label', this.element.textContent ? this.element.textContent : 'dropdownbutton');\n if ((this.target && !this.isColorPicker() && !this.createPopupOnClick) || !this.createPopupOnClick) {\n this.createPopup();\n }\n else {\n this.isPopupCreated = false;\n if (this.target && !this.isColorPicker() && this.createPopupOnClick) {\n this.popupContent = this.getTargetElement();\n this.popupContent.style.display = 'none';\n }\n }\n };\n DropDownButton.prototype.isColorPicker = function () {\n if (!this.element) {\n return false;\n }\n var prevElem = this.element.previousSibling;\n if (prevElem && prevElem.classList && prevElem.classList.contains('e-split-colorpicker')) {\n return true;\n }\n return false;\n };\n DropDownButton.prototype.appendArrowSpan = function () {\n this.element.appendChild(this.createElement('span', {\n className: 'e-btn-icon e-icons ' + 'e-icon-' + (this.cssClass.indexOf(classNames.VERTICAL) > -1\n ? 'bottom' : 'right') + ' e-caret'\n }));\n };\n DropDownButton.prototype.setActiveElem = function (elem) {\n this.activeElem = elem;\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n DropDownButton.prototype.getModuleName = function () {\n return 'dropdown-btn';\n };\n DropDownButton.prototype.canOpen = function () {\n var val = false;\n if (this.isPopupCreated) {\n val = this.getPopUpElement().classList.contains('e-popup-close');\n }\n return val;\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n DropDownButton.prototype.destroy = function () {\n var _this = this;\n _super.prototype.destroy.call(this);\n if (this.getModuleName() === 'dropdown-btn') {\n var classList_1;\n if (this.element.querySelector('span.e-caret')) {\n detach(this.element.querySelector('span.e-caret'));\n }\n if (this.cssClass) {\n classList_1 = this.cssClass.split(' ');\n }\n this.button.destroy();\n if (classList_1) {\n removeClass([this.element], classList_1);\n }\n removeClass(this.activeElem, ['e-active']);\n var attrList = this.element.getAttribute('class') ? ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type']\n : ['aria-haspopup', 'aria-expanded', 'aria-owns', 'type', 'class'];\n attrList.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.popupUnWireEvents();\n this.destroyPopup();\n this.isPopupCreated = false;\n if (!this.disabled) {\n this.unWireEvents();\n }\n }\n };\n DropDownButton.prototype.destroyPopup = function () {\n if (this.isPopupCreated) {\n this.dropDown.destroy();\n if (this.getPopUpElement()) {\n var popupEle = document.getElementById(this.getPopUpElement().id);\n if (popupEle) {\n removeClass([popupEle], ['e-popup-open', 'e-popup-close']);\n detach(popupEle);\n }\n }\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated && this.dropDown) {\n this.dropDown.element = null;\n this.dropDown = undefined;\n }\n }\n this.isPopupCreated = false;\n };\n DropDownButton.prototype.getPopUpElement = function () {\n var val = null;\n if (!this.dropDown && this.activeElem[0].classList.contains('e-split-btn')) {\n var dropDownBtn = getComponent(this.activeElem[1], 'dropdown-btn');\n if (dropDownBtn) {\n this.dropDown = dropDownBtn.dropDown;\n }\n }\n if (this.dropDown) {\n val = this.dropDown.element;\n }\n return val;\n };\n DropDownButton.prototype.getULElement = function () {\n var val = null;\n if (this.getPopUpElement()) {\n val = this.getPopUpElement().children[0];\n }\n return val;\n };\n DropDownButton.prototype.wireEvents = function () {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n if (!this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);\n };\n DropDownButton.prototype.popupWireEvents = function () {\n if (!this.delegateMousedownHandler) {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n }\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n if (popupElement) {\n EventHandler.add(popupElement, 'click', this.clickHandler, this);\n EventHandler.add(popupElement, 'keydown', this.keyBoardHandler, this);\n if (this.closeActionEvents) {\n EventHandler.add(popupElement, this.closeActionEvents, this.focusoutHandler, this);\n }\n }\n this.rippleFn = rippleEffect(popupElement, { selector: '.' + classNames.ITEM });\n };\n DropDownButton.prototype.popupUnWireEvents = function () {\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n if (popupElement && popupElement.parentElement) {\n EventHandler.remove(popupElement, 'click', this.clickHandler);\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\n if (this.closeActionEvents) {\n EventHandler.remove(popupElement, this.closeActionEvents, this.focusoutHandler);\n }\n }\n if (isRippleEnabled && this.rippleFn) {\n this.rippleFn();\n }\n };\n /**\n * Handles the keyboard interactions.\n *\n * @param {KeyboardEventArgs} e - Specifies keyboard event args.\n * @returns {void}\n * @hidden\n */\n DropDownButton.prototype.keyBoardHandler = function (e) {\n if (e.target === this.element && (e.keyCode === 9 || (!e.altKey && e.keyCode === 40) || e.keyCode === 38)) {\n return;\n }\n switch (e.keyCode) {\n case 38:\n case 40:\n if (e.altKey && (e.keyCode === 38 || e.keyCode === 40)) {\n this.keyEventHandler(e);\n }\n else {\n this.upDownKeyHandler(e);\n }\n break;\n case 9:\n case 13:\n case 27:\n case 32:\n this.keyEventHandler(e);\n break;\n }\n };\n DropDownButton.prototype.upDownKeyHandler = function (e) {\n if (this.target && (e.keyCode === 38 || e.keyCode === 40)) {\n return;\n }\n e.preventDefault();\n upDownKeyHandler(this.getULElement(), e.keyCode);\n };\n DropDownButton.prototype.keyEventHandler = function (e) {\n if (this.target && (e.keyCode === 13 || e.keyCode === 9)) {\n return;\n }\n if (e.keyCode === 13 && this.activeElem[0].classList.contains('e-split-btn')) {\n this.activeElem[0].focus();\n return;\n }\n if (e.target && e.target.className.indexOf('e-edit-template') > -1 && e.keyCode === 32) {\n return;\n }\n if (e.keyCode !== 9) {\n e.preventDefault();\n }\n if (e.keyCode === 27 || e.keyCode === 38 || e.keyCode === 9) {\n if (!this.canOpen()) {\n this.closePopup(e, this.element);\n }\n }\n else {\n this.clickHandler(e);\n }\n };\n DropDownButton.prototype.getLI = function (elem) {\n return elem.tagName === 'LI' ? elem : closest(elem, 'li');\n };\n DropDownButton.prototype.mousedownHandler = function (e) {\n var trgt = e.target;\n if (this.dropDown && !this.canOpen() && !(closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')\n || closest(trgt, '[id=\"' + this.element.id + '\"]'))) {\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.focusoutHandler = function (e) {\n if (this.isPopupCreated && !this.canOpen()) {\n var liTarget = e.relatedTarget;\n if (liTarget && liTarget.className.indexOf('e-item') > -1) {\n var li = this.getLI(liTarget);\n if (li) {\n var liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n var item = this.items[liIdx];\n if (item) {\n var selectEventArgs = { element: li, item: item, event: e };\n this.trigger('select', selectEventArgs);\n }\n }\n }\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.clickHandler = function (e) {\n var trgt = e.target;\n if (closest(trgt, '[id=\"' + this.element.id + '\"]')) {\n if (!this.createPopupOnClick || (this.target && this.target !== '' && !this.isColorPicker() && !this.createPopupOnClick)) {\n if (this.getPopUpElement().classList.contains('e-popup-close')) {\n this.openPopUp(e);\n }\n else {\n this.closePopup(e);\n }\n }\n else if (this.isPopupCreated) {\n this.closePopup(e, this.activeElem[0]);\n }\n else {\n this.createPopup();\n this.openPopUp(e);\n }\n }\n else {\n if (closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')) {\n var eventArgs = void 0;\n var liIdx = void 0;\n var item = void 0;\n var li = this.getLI(trgt);\n if (li) {\n liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n item = this.items[liIdx];\n if (item) {\n eventArgs = { element: li, item: item, event: e };\n this.trigger('select', eventArgs);\n }\n this.closePopup(e, this.activeElem[0]);\n }\n }\n }\n };\n DropDownButton.prototype.openPopUp = function (e) {\n var _this = this;\n if (e === void 0) { e = null; }\n var isReact = false;\n var popupElem = this.getPopUpElement();\n if (!this.target) {\n this.createItems(true);\n }\n else {\n if (this.activeElem.length > 1) {\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (splitButton.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n splitButton.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n }\n var ul = this.getULElement();\n this.popupWireEvents();\n var beforeOpenArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeOpen', beforeOpenArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var ul_1 = _this.getULElement();\n _this.dropDown.show(null, _this.element);\n addClass([_this.element], 'e-active');\n _this.element.setAttribute('aria-expanded', 'true');\n _this.element.setAttribute('aria-owns', _this.getPopUpElement().id);\n if (ul_1) {\n ul_1.focus();\n }\n if (_this.enableRtl && ul_1.parentElement.style.left !== '0px') {\n var wrapperWidth = void 0;\n if (_this.element.parentElement && _this.element.parentElement.classList.contains('e-split-btn-wrapper')) {\n wrapperWidth = _this.element.parentElement.offsetWidth;\n }\n else {\n wrapperWidth = _this.element.offsetWidth;\n }\n var popupRect = ul_1.parentElement.offsetWidth - wrapperWidth;\n var popupLeft = parseFloat(ul_1.parentElement.style.left) - popupRect;\n if (popupLeft < 0) {\n popupLeft = 0;\n }\n ul_1.parentElement.style.left = popupLeft + \"px\";\n }\n var openArgs = { element: ul_1, items: _this.items };\n _this.trigger('open', openArgs);\n }\n });\n };\n DropDownButton.prototype.closePopup = function (e, focusEle) {\n var _this = this;\n if (e === void 0) { e = null; }\n var ul = this.getULElement();\n var beforeCloseArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var popupElement = _this.getPopUpElement();\n if (popupElement) {\n EventHandler.remove(popupElement, 'keydown', _this.keyBoardHandler);\n }\n _this.popupUnWireEvents();\n var ul_2 = _this.getULElement();\n var selectedLi = void 0;\n if (ul_2) {\n selectedLi = ul_2.querySelector('.e-selected');\n }\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n _this.dropDown.hide();\n removeClass(_this.activeElem, 'e-active');\n _this.element.setAttribute('aria-expanded', 'false');\n _this.element.removeAttribute('aria-owns');\n if (focusEle) {\n focusEle.focus();\n }\n var closeArgs = { element: ul_2, items: _this.items };\n _this.trigger('close', closeArgs);\n if (!_this.target && ul_2) {\n detach(ul_2);\n }\n if (!_this.target || _this.isColorPicker() || (_this.target && !_this.isColorPicker())) {\n if (_this.createPopupOnClick) {\n _this.destroyPopup();\n }\n }\n }\n else {\n if (ul) {\n ul.focus();\n }\n }\n });\n };\n DropDownButton.prototype.unWireEvents = function () {\n if (!this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated) {\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DropDownButtonModel} newProp - Specifies new properties\n * @param {DropDownButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var btnModel = ['content', 'cssClass', 'iconCss', 'iconPosition', 'disabled', 'enableRtl'];\n this.button.setProperties(getModel(newProp, btnModel));\n var popupElement;\n if (this.isPopupCreated) {\n popupElement = this.getPopUpElement();\n this.dropDown.setProperties(getModel(newProp, ['enableRtl']));\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.unWireEvents();\n if (this.isPopupCreated && !this.canOpen()) {\n this.closePopup();\n }\n }\n else {\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (newProp.cssClass.indexOf(classNames.VERTICAL) > -1 || oldProp.cssClass.indexOf(classNames.VERTICAL) > -1) {\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n var arrowSpan = this.element.querySelector('span.e-caret');\n newProp.cssClass.indexOf(classNames.VERTICAL) > -1 ? classList(arrowSpan, ['e-icon-bottom'], ['e-icon-right'])\n : classList(arrowSpan, ['e-icon-right'], ['e-icon-bottom']);\n }\n if (this.isPopupCreated) {\n if (oldProp.cssClass) {\n removeClass([popupElement], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([popupElement], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n }\n break;\n case 'target':\n this.dropDown.content = this.getTargetElement();\n this.dropDown.dataBind();\n break;\n case 'items':\n if (this.isPopupCreated && this.getULElement()) {\n this.createItems();\n }\n break;\n case 'createPopupOnClick':\n if (newProp.createPopupOnClick) {\n this.destroyPopup();\n }\n else {\n this.createPopup();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to DropDownButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n DropDownButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], DropDownButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Collection([], Item)\n ], DropDownButton.prototype, \"items\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"closeActionEvents\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"created\", void 0);\n DropDownButton = __decorate([\n NotifyPropertyChanges\n ], DropDownButton);\n return DropDownButton;\n}(Component));\nexport { DropDownButton };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path='../drop-down-button/drop-down-button-model.d.ts'/>\nimport { Event, remove, addClass, removeClass, detach, getValue, setValue } from '@syncfusion/ej2-base';\nimport { EventHandler, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { attributes, getUniqueID, getInstance, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { getModel, Item } from './../common/common';\nimport { DropDownButton } from '../drop-down-button/drop-down-button';\nvar RTL = 'e-rtl';\nvar TAGNAME = 'EJS-SPLITBUTTON';\n/**\n * SplitButton component has primary and secondary button. Primary button is used to select\n * default action and secondary button is used to toggle contextual overlays for displaying list of\n * action items. It can contain both text and images.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var splitBtnObj = new SplitButton({content: 'SplitButton'});\n * splitBtnObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar SplitButton = /** @class */ (function (_super) {\n __extends(SplitButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {SplitButtonModel} options - Specifies the splitbutton model\n * @param {string|HTMLButtonElement} element - Specifies the element\n * @hidden\n */\n function SplitButton(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize Angular support.\n *\n * @private\n * @returns {void}\n */\n SplitButton.prototype.preRender = function () {\n var ele = this.element;\n if (ele.tagName === TAGNAME) {\n var ejInstance = getValue('ej2_instances', ele);\n var btn = this.createElement('button', { attrs: { 'type': 'button' } });\n var wrapper = this.createElement(TAGNAME, { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n btn.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = btn;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.wrapper = wrapper;\n this.element = ele;\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the Component rendering.\n *\n * @returns {void}\n * @private\n */\n SplitButton.prototype.render = function () {\n this.initWrapper();\n this.createPrimaryButton();\n this.renderControl();\n };\n SplitButton.prototype.renderControl = function () {\n this.createSecondaryButton();\n this.setActiveElem([this.element, this.secondaryBtnObj.element]);\n this.setAria();\n this.wireEvents();\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n SplitButton.prototype.addItems = function (items, text) {\n _super.prototype.addItems.call(this, items, text);\n this.secondaryBtnObj.items = this.items;\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n SplitButton.prototype.removeItems = function (items, isUniqueId) {\n _super.prototype.removeItems.call(this, items, isUniqueId);\n this.secondaryBtnObj.items = this.items;\n };\n SplitButton.prototype.initWrapper = function () {\n if (!this.wrapper) {\n this.wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n this.element.parentNode.insertBefore(this.wrapper, this.element);\n }\n this.element.classList.remove('e-' + this.getModuleName());\n if (this.enableRtl) {\n this.wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([this.wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n };\n SplitButton.prototype.createPrimaryButton = function () {\n var btnModel = {\n cssClass: this.cssClass,\n enableRtl: this.enableRtl,\n iconCss: this.iconCss,\n iconPosition: this.iconPosition,\n content: this.content,\n disabled: this.disabled\n };\n this.primaryBtnObj = new Button(btnModel);\n this.primaryBtnObj.createElement = this.createElement;\n this.primaryBtnObj.appendTo(this.element);\n this.element.classList.add('e-' + this.getModuleName());\n this.element.type = 'button';\n this.wrapper.appendChild(this.element);\n };\n SplitButton.prototype.createSecondaryButton = function () {\n var _this = this;\n var btnElem = this.createElement('button', {\n className: 'e-icon-btn',\n attrs: { 'tabindex': '-1' },\n id: this.element.id + '_dropdownbtn'\n });\n this.wrapper.appendChild(btnElem);\n var dropDownBtnModel = {\n cssClass: this.cssClass,\n disabled: this.disabled,\n enableRtl: this.enableRtl,\n items: this.items,\n target: this.target,\n createPopupOnClick: this.createPopupOnClick\n };\n dropDownBtnModel.beforeItemRender = function (args) {\n if (_this.createPopupOnClick) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n _this.trigger('beforeItemRender', args);\n };\n dropDownBtnModel.open = function (args) {\n _this.trigger('open', args);\n };\n dropDownBtnModel.close = function (args) {\n _this.trigger('close', args);\n };\n dropDownBtnModel.select = function (args) {\n _this.trigger('select', args);\n };\n dropDownBtnModel.beforeOpen = function (args) {\n if (_this.createPopupOnClick && _this.items.length == 0) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n var callBackPromise = new Deferred();\n _this.trigger('beforeOpen', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n dropDownBtnModel.beforeClose = function (args) {\n var callBackPromise = new Deferred();\n _this.trigger('beforeClose', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n this.secondaryBtnObj = new DropDownButton(dropDownBtnModel);\n this.secondaryBtnObj.createElement = this.createElement;\n this.secondaryBtnObj.appendTo(btnElem);\n if (!this.createPopupOnClick) {\n this.secondaryBtnObj.dropDown.relateTo = this.wrapper;\n this.dropDown = this.secondaryBtnObj.dropDown;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.isPopupCreated = this.secondaryBtnObj.isPopupCreated;\n this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element];\n this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right');\n if (this.disabled) {\n this.wrapper.classList.add('e-splitbtn-disabled');\n }\n };\n SplitButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-expanded': 'false', 'aria-haspopup': 'true',\n 'aria-label': this.element.textContent ? this.element.textContent + ' splitbutton' : 'splitbutton', 'aria-owns': this.element.id + '_dropdownbtn-popup'\n });\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n SplitButton.prototype.getModuleName = function () {\n return 'split-btn';\n };\n /**\n * To open/close SplitButton popup based on current state of the SplitButton.\n *\n * @returns {void}\n */\n SplitButton.prototype.toggle = function () {\n this.secondaryBtnObj.toggle();\n };\n SplitButton.prototype.destroy = function () {\n var _this = this;\n var classList = [RTL];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n if (this.element) {\n var element = document.getElementById(this.element.id);\n if (element && element.parentElement === this.wrapper) {\n if (this.wrapper.tagName === TAGNAME) {\n this.wrapper.innerHTML = '';\n removeClass([this.wrapper], ['e-rtl', 'e-' + this.getModuleName() + '-wrapper']);\n removeClass([this.wrapper], this.cssClass.split(' '));\n }\n else {\n removeClass([this.element], classList);\n ['aria-label', 'aria-haspopup', 'aria-expanded', 'aria-owns', 'type'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n this.wrapper.parentNode.insertBefore(this.element, this.wrapper);\n remove(this.wrapper);\n }\n this.unWireEvents();\n }\n }\n this.wrapper = null;\n this.primaryBtnObj.destroy();\n this.secondaryBtnObj.destroy();\n _super.prototype.destroy.call(this);\n if (!this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n };\n SplitButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.primaryBtnClickHandler, this);\n new KeyboardEvents(this.element, {\n keyAction: this.btnKeyBoardHandler.bind(this),\n keyConfigs: {\n altdownarrow: 'alt+downarrow',\n enter: 'enter'\n }\n });\n };\n SplitButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.primaryBtnClickHandler);\n getInstance(this.element, KeyboardEvents).destroy();\n };\n SplitButton.prototype.primaryBtnClickHandler = function () {\n this.trigger('click', { element: this.element });\n };\n SplitButton.prototype.btnKeyBoardHandler = function (e) {\n switch (e.action) {\n case 'altdownarrow':\n this.clickHandler(e);\n break;\n case 'enter':\n this.clickHandler(e);\n if (this.getPopUpElement() && !this.getPopUpElement().classList.contains('e-popup-close')) {\n this.element.classList.remove('e-active');\n this.secondaryBtnObj.element.classList.add('e-active');\n }\n else {\n this.secondaryBtnObj.element.classList.remove('e-active');\n }\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {SplitButtonModel} newProp - Specifies new properties\n * @param {SplitButtonModel} oldProp - Specifies old properties\n * @returns {void}\n */\n SplitButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var model = ['content', 'iconCss', 'iconPosition', 'cssClass', 'disabled', 'enableRtl'];\n this.primaryBtnObj.setProperties(getModel(newProp, model));\n model = ['beforeOpen', 'beforeItemRender', 'select', 'open',\n 'close', 'cssClass', 'disabled', 'enableRtl', 'createPopupOnClick'];\n if (Object.keys(newProp).indexOf('items') > -1) {\n this.secondaryBtnObj.items = newProp.items;\n this.secondaryBtnObj.dataBind();\n }\n this.secondaryBtnObj.setProperties(getModel(newProp, model));\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.wrapper], oldProp.cssClass.split(' '));\n }\n addClass([this.wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n addClass([this.wrapper], RTL);\n }\n else {\n removeClass([this.wrapper], RTL);\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n addClass([this.wrapper], 'e-splitbtn-disabled');\n }\n else {\n removeClass([this.wrapper], 'e-splitbtn-disabled');\n }\n }\n }\n };\n /**\n * Sets the focus to SplitButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n SplitButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], SplitButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], SplitButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Collection([], Item)\n ], SplitButton.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"target\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"created\", void 0);\n SplitButton = __decorate([\n NotifyPropertyChanges\n ], SplitButton);\n return SplitButton;\n}(DropDownButton));\nexport { SplitButton };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __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 { Button } from '@syncfusion/ej2-buttons';\nimport { EventHandler, Property, NotifyPropertyChanges, Animation, attributes, animationMode } from '@syncfusion/ej2-base';\nimport { Event, remove, removeClass } from '@syncfusion/ej2-base';\nimport { Complex, ChildProperty, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nvar HIDESPINNER = 'e-hide-spinner';\nvar PROGRESS = 'e-progress';\nvar PROGRESSACTIVE = 'e-progress-active';\nvar CONTENTCLS = 'e-btn-content';\n/**\n * Defines the spin settings.\n */\nvar SpinSettings = /** @class */ (function (_super) {\n __extends(SpinSettings, _super);\n function SpinSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], SpinSettings.prototype, \"template\", void 0);\n __decorate([\n Property(16)\n ], SpinSettings.prototype, \"width\", void 0);\n __decorate([\n Property('Left')\n ], SpinSettings.prototype, \"position\", void 0);\n return SpinSettings;\n}(ChildProperty));\nexport { SpinSettings };\n/**\n * Defines the animation settings.\n */\nvar AnimationSettings = /** @class */ (function (_super) {\n __extends(AnimationSettings, _super);\n function AnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(400)\n ], AnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('None')\n ], AnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property('ease')\n ], AnimationSettings.prototype, \"easing\", void 0);\n return AnimationSettings;\n}(ChildProperty));\nexport { AnimationSettings };\n/**\n * The ProgressButton visualizes the progression of an operation to indicate the user\n * that a process is happening in the background with visual representation.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var progressButtonObj = new ProgressButton({ content: 'Progress Button' });\n * progressButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar ProgressButton = /** @class */ (function (_super) {\n __extends(ProgressButton, _super);\n /**\n * Constructor for creating the widget.\n *\n * @param {ProgressButtonModel} options - Specifies progress button model\n * @param {string|HTMLButtonElement} element - Specifies element\n */\n function ProgressButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.step = 1;\n return _this;\n }\n ProgressButton.prototype.preRender = function () {\n _super.prototype.preRender.call(this);\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.render = function () {\n _super.prototype.render.call(this);\n this.init();\n this.wireEvents();\n this.setAria();\n this.renderComplete();\n };\n /**\n * Starts the button progress at the specified percent.\n *\n * @param {number} percent - Starts the button progress at this percent.\n * @returns {void}\n */\n ProgressButton.prototype.start = function (percent) {\n this.isPaused = false;\n this.startProgress(percent ? percent : this.percent, this.progressTime);\n };\n /**\n * Stops the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.stop = function () {\n this.isPaused = true;\n cancelAnimationFrame(this.timerId);\n };\n /**\n * Complete the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.progressComplete = function () {\n this.isPaused = false;\n this.finishProgress();\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ProgressButton.prototype.getModuleName = function () {\n return 'progress-btn';\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n ProgressButton.prototype.destroy = function () {\n var _this = this;\n var classList = [HIDESPINNER, PROGRESSACTIVE, 'e-round-corner', 'e-' + _super.prototype.getModuleName.call(this),\n 'e-spin-' + this.spinSettings.position.toLowerCase()];\n _super.prototype.destroy.call(this);\n this.unWireEvents();\n this.element.innerHTML = '';\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n removeClass([this.element], classList);\n var css = this.element.getAttribute('class') ? ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow']\n : ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'class'];\n css.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n if (this.disabled) {\n this.element.removeAttribute('disabled');\n }\n };\n ProgressButton.prototype.init = function () {\n this.element.classList.add('e-' + _super.prototype.getModuleName.call(this));\n this.setContent();\n this.createSpinner();\n if (this.enableProgress) {\n this.createProgress();\n }\n };\n ProgressButton.prototype.createSpinner = function () {\n var spinner = this.createElement('span', { className: 'e-spinner' });\n this.setSpinPosition(spinner);\n createSpinner({\n target: spinner, width: this.spinSettings.width || 16, template: this.spinSettings.template\n }, this.createElement);\n };\n ProgressButton.prototype.getSpinner = function () {\n return this.element.getElementsByClassName('e-spinner')[0];\n };\n ProgressButton.prototype.getProgress = function () {\n return this.element.getElementsByClassName(PROGRESS)[0];\n };\n ProgressButton.prototype.setSpinPosition = function (ele) {\n var position = this.spinSettings.position || 'Left';\n if (position === 'Left' || position === 'Top') {\n this.element.insertBefore(ele, this.element.getElementsByClassName(CONTENTCLS)[0]);\n }\n else {\n this.element.appendChild(ele);\n }\n this.element.classList.add('e-spin-' + position.toLowerCase());\n };\n ProgressButton.prototype.createProgress = function () {\n this.element.appendChild(this.createElement('span', { className: PROGRESS }));\n };\n ProgressButton.prototype.setContent = function () {\n var cont;\n cont = this.element.innerHTML;\n if (this.enableHtmlSanitizer) {\n cont = SanitizeHtmlHelper.sanitize(this.element.innerHTML);\n }\n this.element.innerHTML = '';\n this.element.appendChild(this.createElement('span', { className: CONTENTCLS, innerHTML: cont }));\n };\n ProgressButton.prototype.setContentIcon = function (content) {\n var contElem = this.createElement('span', { className: CONTENTCLS, innerHTML: content });\n if (this.iconCss) {\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\n if (!this.element.textContent.trim()) {\n this.element.classList.add('e-icon-btn');\n }\n else {\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\n }\n }\n var node = contElem.childNodes[0];\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n contElem.insertBefore(span, node);\n }\n else {\n contElem.appendChild(span);\n }\n }\n this.element.appendChild(contElem);\n };\n ProgressButton.prototype.clickHandler = function () {\n if (this.element.classList.contains(PROGRESSACTIVE)) {\n return;\n }\n this.startProgress();\n };\n ProgressButton.prototype.startProgress = function (percent, progressTime) {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n if (!(clsList.contains(HIDESPINNER))) {\n showSpinner(this.element.querySelector(\".e-spinner\"));\n }\n this.startAnimate(Date.now(), progressTime ? progressTime : 0, progressTime ? Date.now() - (this.duration * 1 / 100) : Date.now(), percent ? percent : 0, 0, this.step, 0, isVertical);\n this.startContAnimate();\n };\n ProgressButton.prototype.startAnimate = function (timestamp, progressTime, prevTime, percent, prevPercent, step, prevProgressTime, isVertical) {\n var _this = this;\n try {\n var timeDiff = timestamp - prevTime;\n var stepTime = this.duration * step / 100;\n var timeDiffBuffer_1 = timeDiff ? (timeDiff < stepTime ? timeDiff - stepTime : timeDiff % stepTime) : 0;\n this.progressTime = progressTime = progressTime + timeDiff - timeDiffBuffer_1;\n prevTime = timestamp - timeDiffBuffer_1;\n percent = percent + (timeDiff - timeDiffBuffer_1) / this.duration * 100;\n prevPercent = ((progressTime - prevProgressTime) % stepTime === 0 || percent === 100) ? percent : prevPercent;\n var args = { percent: prevPercent, currentDuration: progressTime, step: step };\n this.eIsVertical = isVertical;\n if (percent === 0) {\n this.trigger('begin', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else if (percent === 100 || progressTime === this.duration) {\n this.trigger('end', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else {\n this.trigger('progress', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n }\n catch (e) {\n cancelAnimationFrame(this.timerId);\n this.trigger('fail', e);\n }\n };\n ProgressButton.prototype.successCallback = function (args, perc, pPerc, prgTim, pPrgTim, timDif, pTim) {\n var _this = this;\n var percent = perc;\n var prevPercent = pPerc;\n var timeDiffBuffer = timDif;\n var progressTime = prgTim;\n var prevProgressTime = pPrgTim;\n var prevTime = pTim;\n var isVertical = this.eIsVertical;\n if (percent !== args.percent && args.percent !== prevPercent) {\n percent = args.percent;\n }\n this.percent = percent;\n this.step = args.step;\n if ((progressTime - prevProgressTime) % (this.duration * args.step / 100) === 0 || percent === 100) {\n this.timerId = requestAnimationFrame(function () {\n if (_this.enableProgress) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = percent + '%';\n }\n _this.element.setAttribute('aria-valuenow', percent.toString());\n });\n prevPercent = percent;\n prevProgressTime = progressTime;\n }\n if (!this.isPaused) {\n if (progressTime < this.duration && percent < 100) {\n this.interval = window.setTimeout(function () {\n _this.startAnimate(Date.now(), progressTime, prevTime, percent, prevPercent, args.step, prevProgressTime, isVertical);\n }, (this.duration / 100) - timeDiffBuffer);\n }\n else {\n this.interval = window.setTimeout(function () {\n _this.progressTime = _this.percent = 0;\n if (_this.enableProgress) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = '0%';\n }\n _this.element.setAttribute('aria-valuenow', '0');\n _this.hideSpin();\n }, 100);\n }\n }\n };\n ProgressButton.prototype.startContAnimate = function () {\n var _this = this;\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (this.animationSettings.effect !== 'None') {\n (new Animation({})).animate(ele, {\n duration: (this.animationSettings.duration === 0 && animationMode === 'Enable') ? 400 : this.animationSettings.duration,\n name: 'Progress' + this.animationSettings.effect,\n timingFunction: this.animationSettings.easing,\n begin: function () {\n if (_this.spinSettings.position === 'Center') {\n _this.setSpinnerSize();\n }\n },\n end: function () {\n ele.classList.add('e-animate-end');\n }\n });\n }\n else if (this.spinSettings.position === 'Center') {\n this.setSpinnerSize();\n }\n };\n ProgressButton.prototype.finishProgress = function () {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n var count = 100;\n for (var i = this.percent; i < count; i++) {\n i += 10;\n if (i > 100) {\n i = 100;\n }\n if (this.enableProgress) {\n this.getProgress().style[isVertical ? 'height' : 'width'] = (this.percent < 100) ? (i + '%') : '100%';\n }\n }\n this.element.setAttribute('aria-valuenow', '0');\n this.hideSpin();\n var args = { step: this.step, currentDuration: this.progressTime, percent: 100 };\n clearTimeout(this.interval);\n this.trigger('end', args);\n this.progressTime = this.percent = 0;\n };\n ProgressButton.prototype.setSpinnerSize = function () {\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n var spinner = this.getSpinner();\n spinner.style.width = Math.max(spinner.offsetWidth, ele.offsetWidth) + 'px';\n spinner.style.height = Math.max(spinner.offsetHeight, ele.offsetHeight) + 'px';\n ele.classList.add('e-cont-animate');\n };\n ProgressButton.prototype.hideSpin = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (!(this.element.classList.contains(HIDESPINNER))) {\n hideSpinner(this.element.querySelector(\".e-spinner\"));\n }\n this.element.classList.remove(PROGRESSACTIVE);\n if (this.animationSettings.effect !== 'None') {\n cont.classList.remove('e-animate-end');\n }\n if (this.spinSettings.position === 'Center') {\n var ele = this.getSpinner();\n cont.classList.remove('e-cont-animate');\n ele.style.width = 'auto';\n ele.style.height = 'auto';\n }\n };\n ProgressButton.prototype.setIconSpan = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n var iconSpan = this.element.getElementsByClassName('e-btn-icon')[0];\n if (cont.childNodes[0] && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n cont.insertBefore(iconSpan, cont.childNodes[0]);\n }\n else {\n cont.appendChild(iconSpan);\n }\n };\n ProgressButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-label': this.element.textContent + ' progress', 'aria-valuemin': '0', 'aria-valuemax': '100', 'aria-valuenow': '0'\n });\n };\n ProgressButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n };\n ProgressButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ProgressButtonModel} newProp - Specifies new properties\n * @param {ProgressButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var ele = this.element;\n var isSpinning = false;\n var clsList = this.element.querySelector('.e-spinner-pane').classList;\n if (clsList.contains('e-spin-show')) {\n isSpinning = true;\n }\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n this.setContent();\n this.createSpinner();\n if (isSpinning) {\n showSpinner(this.element.querySelector(\".e-spinner\"));\n isSpinning = false;\n }\n if (this.enableProgress) {\n this.createProgress();\n }\n ele.setAttribute('aria-label', ele.textContent + ' progress');\n break;\n case 'iconCss':\n if (!oldProp.iconCss) {\n this.setIconSpan();\n }\n break;\n case 'iconPosition':\n this.setIconSpan();\n break;\n case 'enableProgress':\n if (newProp.enableProgress) {\n this.createProgress();\n }\n else {\n remove(this.getProgress());\n }\n break;\n case 'spinSettings':\n if (newProp.spinSettings.position) {\n ele.classList.remove('e-spin-' + oldProp.spinSettings.position.toLowerCase());\n this.setSpinPosition(this.getSpinner());\n }\n if (newProp.spinSettings.template || newProp.spinSettings.width) {\n ele.removeChild(this.getSpinner());\n this.createSpinner();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to ProgressButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n ProgressButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"enableProgress\", void 0);\n __decorate([\n Property(2000)\n ], ProgressButton.prototype, \"duration\", void 0);\n __decorate([\n Property('Left')\n ], ProgressButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isToggle\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, SpinSettings)\n ], ProgressButton.prototype, \"spinSettings\", void 0);\n __decorate([\n Complex({}, AnimationSettings)\n ], ProgressButton.prototype, \"animationSettings\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"fail\", void 0);\n ProgressButton = __decorate([\n NotifyPropertyChanges\n ], ProgressButton);\n return ProgressButton;\n}(Button));\nexport { ProgressButton };\n","import { addClass, createElement as internalCreateElement, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\n/**\n * Initialize ButtonGroup CSS component with specified properties.\n * ```html\n * <div id='buttongroup'>\n * <button></button>\n * <button></button>\n * <button></button>\n * </div>\n * ```\n * ```typescript\n * createButtonGroup('#buttongroup', {\n * cssClass: 'e-outline',\n * buttons: [\n * { content: 'Day' },\n * { content: 'Week' },\n * { content: 'Work Week'}\n * ]\n * });\n * ```\n *\n * @param {string} selector\n * @param {CreateButtonGroupModel} options\n * @returns HTMLElement\n */\n/**\n * Creates button group.\n *\n * @param {string} selector - Specifies the selector.\n * @param {CreateButtonGroupModel} options - Specifies the button group model.\n * @param {Function} createElement - Specifies the element.\n * @returns {HTMLElement} - Button group element.\n */\nexport function createButtonGroup(selector, options, createElement) {\n if (options === void 0) { options = {}; }\n var child;\n var btnElem;\n var nextChild;\n var btnModel;\n if (isNullOrUndefined(createElement)) {\n createElement = internalCreateElement;\n }\n var wrapper = document.querySelector(selector);\n addClass([wrapper], ['e-btn-group', 'e-css']);\n wrapper.setAttribute('role', 'group');\n var childs = wrapper.children;\n options.buttons = options.buttons || [];\n for (var i = 0, j = 0; j < childs.length; i++, j++) {\n child = childs[j];\n btnModel = options.buttons[i];\n if (btnModel !== null) {\n if (child.tagName === 'BUTTON') {\n btnElem = child;\n }\n else {\n btnElem = createElement('label');\n nextChild = childs[j + 1];\n if (nextChild) {\n wrapper.insertBefore(btnElem, nextChild);\n }\n else {\n wrapper.appendChild(btnElem);\n }\n if (child.id) {\n btnElem.setAttribute('for', child.id);\n }\n if (btnModel && btnModel.disabled) {\n child.disabled = true;\n }\n j++;\n }\n if (options.cssClass && btnModel && !btnModel.cssClass) {\n btnModel.cssClass = options.cssClass;\n }\n new Button(btnModel || {}, btnElem);\n }\n }\n return wrapper;\n}\n"],"names":["getModel","props","model","obj","extend","_i","_a","Object","keys","length","prop","indexOf","deleteObject","upDownKeyHandler","ul","keyCode","defaultIdx","childElementCount","liIdx","selectedLi","querySelector","classList","remove","i","len","children","contains","isValidLI","addClass","focus","li","index","count","setBlankIconStyle","popup","blankIcon","blankIconList","slice","call","getElementsByClassName","forEach","style","paddingLeft","paddingRight","removeAttribute","iconLi","isNullOrUndefined","cssProp","icon","enableRtl","padding","margin","size","parseInt","getComputedStyle","fontSize","__extends","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","Item","_super","apply","Property","ChildProperty","classNames","DropDownButton","options","element","_this","isPopupCreated","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","createPopupOnClick","createPopup","closePopup","render","initialize","disabled","wireEvents","renderComplete","addItems","items","text","newItem","idx","j","splice","createItems","removeItems","isUniqueId","refresh","len_1","id","getULElement","div","createElement","className","document","body","appendChild","dropDown","Popup","relateTo","collision","X","Y","position","targetType","content","getTargetElement","popupContent","display","refreshPosition","hide","attributes","cssClass","replace","trim","split","isColorPicker","select","appendItems","span","item","eventArgs","showIcon","hasIcon","innerHTML","attrs","role","tabindex","tempItem","url","separator","aria-label","getUniqueID","getModuleName","enableHtmlSanitizer","textContent","createAnchor","add","iconCss","childNodes","insertBefore","trigger","getPopUpElement","field","SanitizeHtmlHelper","sanitize","href","button","Button","iconPosition","enablePersistence","appendTo","appendArrowSpan","setActiveElem","setAttribute","prevElem","previousSibling","elem","activeElem","val","destroy","classList_1","detach","removeClass","getAttribute","popupUnWireEvents","destroyPopup","unWireEvents","popupEle","getElementById","EventHandler","clickHandler","keyBoardHandler","undefined","dropDownBtn","getComponent","delegateMousedownHandler","mousedownHandler","bind","popupWireEvents","popupElement","closeActionEvents","focusoutHandler","rippleFn","rippleEffect","selector","parentElement","isRippleEnabled","e","altKey","keyEventHandler","preventDefault","getLI","tagName","closest","trgt","liTarget","relatedTarget","selectEventArgs","event","popupElem","splitButton","isReact","appendReactElement","renderReactTemplates","beforeOpenArgs","cancel","observedArgs","ul_1","show","left","wrapperWidth","offsetWidth","popupRect","popupLeft","parseFloat","openArgs","focusEle","beforeCloseArgs","ul_2","closeArgs","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Event","NotifyPropertyChanges","Component","TAGNAME","SplitButton","ele","ejInstance","getValue","btn","type","wrapper","nodeName","nodeValue","parentNode","setValue","initWrapper","createPrimaryButton","renderControl","createSecondaryButton","secondaryBtnObj","setAria","btnModel","primaryBtnObj","btnElem","dropDownBtnModel","beforeItemRender","args","open","close","beforeOpen","callBackPromise","Deferred","resolve","beforeClose","aria-expanded","aria-haspopup","aria-owns","concat","primaryBtnClickHandler","KeyboardEvents","keyAction","btnKeyBoardHandler","keyConfigs","altdownarrow","enter","getInstance","action","promise","Promise","reject","catch","then","HIDESPINNER","PROGRESSACTIVE","CONTENTCLS","SpinSettings","AnimationSettings","ProgressButton","step","init","start","percent","isPaused","startProgress","progressTime","stop","cancelAnimationFrame","timerId","progressComplete","finishProgress","spinSettings","toLowerCase","setContent","createSpinner","enableProgress","createProgress","spinner","setSpinPosition","width","template","getSpinner","getProgress","cont","setContentIcon","contElem","node","clsList","isVertical","showSpinner","startAnimate","Date","now","duration","startContAnimate","timestamp","prevTime","prevPercent","prevProgressTime","timeDiff","stepTime","timeDiffBuffer_1","currentDuration","eIsVertical","successCallback","perc","pPerc","prgTim","pPrgTim","timDif","pTim","timeDiffBuffer","requestAnimationFrame","toString","interval","window","setTimeout","hideSpin","animationSettings","effect","Animation","animate","animationMode","name","timingFunction","easing","begin","setSpinnerSize","end","clearTimeout","Math","max","height","offsetHeight","hideSpinner","setIconSpan","iconSpan","aria-valuemin","aria-valuemax","aria-valuenow","isSpinning","removeChild","Complex","child","nextChild","internalCreateElement","childs","buttons"],"mappings":"6YAyBA,SAAgBA,EAASC,EAAOC,GAE5B,IAAK,IADDC,EAAMC,YAAWH,GACZI,EAAK,EAAGC,EAAKC,OAAOC,KAAKL,GAAME,EAAKC,EAAGG,OAAQJ,IAAM,CAC1D,IAAIK,EAAOJ,EAAGD,GACV,EAAQM,QAAQD,GAAQ,GACxBE,eAAaT,EAAKO,GAG1B,OAAOP,EAOX,SAAgBU,EAAiBC,EAAIC,GACjC,IAAIC,EAAyB,KAAZD,EAAiB,EAAID,EAAGG,kBAAoB,EACzDC,EAAQF,EAERG,EAAaL,EAAGM,cAAc,eAC9BD,GACAA,EAAWE,UAAUC,OAAO,cAEhC,IAAK,IAAIC,EAAI,EAAGC,EAAMV,EAAGW,SAAShB,OAAQc,EAAIC,EAAKD,IAC3CT,EAAGW,SAASF,GAAGF,UAAUK,SAAS,eAElCR,EAAQK,EADHT,EAAGW,SAASF,GAEdF,UAAUC,OAAO,aACJ,KAAZP,EACAG,IAGAA,IAEAA,KAAuB,KAAZH,EAAiBD,EAAGG,mBAAqB,KACpDC,EAAQF,KAML,KADfE,EAAQS,EAAUb,EADbA,EAAGW,SAASP,GACSA,EAAOH,MAE7Ba,YAAUd,EAAGW,SAASP,IAAS,aAC/BJ,EAAGW,SAASP,GAAOW,SAa3B,SAASF,EAAUb,EAAIgB,EAAIC,EAAOhB,EAASiB,GAgBvC,QAfc,IAAVA,IAAoBA,EAAQ,IAC5BF,EAAGT,UAAUK,SAAS,gBAAkBI,EAAGT,UAAUK,SAAS,iBAC1DK,KAAuB,KAAZhB,EAAiBD,EAAGG,kBAAoB,EAAI,GACvDc,EAAoB,KAAZhB,EAAiB,EAAID,EAAGG,kBAAoB,EAGpC,KAAZF,EACAgB,IAGAA,MAIZD,EAAKhB,EAAGW,SAASM,IACVV,UAAUK,SAAS,gBAAkBI,EAAGT,UAAUK,SAAS,cAAe,CAE7E,KADAM,IACclB,EAAGG,kBACb,OAAOc,GAAS,EAEpBA,EAAQJ,EAAUb,EAAIgB,EAAIC,EAAOhB,EAASiB,GAE9C,OAAOD,EAMX,SAAgBE,EAAkBC,EAAOC,GACrC,IAAIC,KAAmBC,MAAMC,KAAKJ,EAAMK,uBAAuB,iBAC/D,GAAIJ,EAAW,IACOE,MAAMC,KAAKJ,EAAMK,uBAAuB,WACjDC,QAAQ,SAAUV,IACnBA,EAAGW,MAAMC,aAAeZ,EAAGW,MAAME,eACjCb,EAAGc,gBAAgB,WAI/B,GAAKR,EAAc3B,OAAnB,CAGA,IAAIoC,EAASX,EAAMd,cAAc,gDACjC,IAAI0B,oBAAkBD,GAAtB,CAGIA,EAAOxB,UAAUK,SAAS,WAC1BmB,EAASA,EAAOzB,cAAc,gBAElC,IACI2B,EADAC,EAAOH,EAAOzB,cAAc,gBAE5B6B,EAAYf,EAAMb,UAAUK,SAAS,SAErCqB,EADAE,GACYC,QAAS,eAAgBC,OAAQ,eAGjCD,QAAS,cAAeC,OAAQ,eAGhD,IAAIC,EAAOC,SAASC,iBAAiBN,GAAMO,SAAU,IAAMF,SAAsBC,iBAAiBN,GAAMD,EAAQI,QAAmD,IAC7JE,SAASC,iBAAiBT,GAAQH,YAAa,IAAM,KAC3DN,EAAcI,QAAQ,SAAUV,GACxBA,EAAGT,UAAUK,SAAS,SACtBI,EAAGV,cAAc,eAAeqB,MAAMM,EAAQG,SAAWE,EAGzDtB,EAAGW,MAAMM,EAAQG,SAAWE,MAnJxC,IAAII,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBlD,OAAOqD,iBAChBC,wBAA2BC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOA,EAAEK,eAAeD,KAAIL,EAAEK,GAAKJ,EAAEI,MACpDL,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASM,IAAOC,KAAKC,YAAcT,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEU,UAAkB,OAANT,EAAapD,OAAO8D,OAAOV,IAAMM,EAAGG,UAAYT,EAAES,UAAW,IAAIH,IAV3C,GAaxCK,EAA0C,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HhB,EAAvHiB,EAAIC,UAAUnE,OAAQoE,EAAIF,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOnE,OAAOuE,yBAAyBN,EAAQC,GAAOC,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAAST,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAInD,EAAIgD,EAAW9D,OAAS,EAAGc,GAAK,EAAGA,KAASmC,EAAIa,EAAWhD,MAAIsD,GAAKF,EAAI,EAAIjB,EAAEmB,GAAKF,EAAI,EAAIjB,EAAEc,EAAQC,EAAKI,GAAKnB,EAAEc,EAAQC,KAASI,GAChJ,OAAOF,EAAI,GAAKE,GAAKtE,OAAO0E,eAAeT,EAAQC,EAAKI,GAAIA,GA0I5DK,EAAsB,SAAUC,GAEhC,SAASD,IACL,OAAkB,OAAXC,GAAmBA,EAAOC,MAAMlB,KAAMU,YAAcV,KAoB/D,OAtBAV,EAAU0B,EAAMC,GAIhBb,GACIe,WAAS,KACVH,EAAKd,UAAW,eAAW,GAC9BE,GACIe,WAAS,KACVH,EAAKd,UAAW,UAAM,GACzBE,GACIe,YAAS,IACVH,EAAKd,UAAW,iBAAa,GAChCE,GACIe,WAAS,KACVH,EAAKd,UAAW,YAAQ,GAC3BE,GACIe,WAAS,KACVH,EAAKd,UAAW,WAAO,GAC1BE,GACIe,YAAS,IACVH,EAAKd,UAAW,gBAAY,GACxBc,GACTI,iBCnLE9B,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBlD,OAAOqD,iBAChBC,wBAA2BC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOA,EAAEK,eAAeD,KAAIL,EAAEK,GAAKJ,EAAEI,MACpDL,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASM,IAAOC,KAAKC,YAAcT,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEU,UAAkB,OAANT,EAAapD,OAAO8D,OAAOV,IAAMM,EAAGG,UAAYT,EAAES,UAAW,IAAIH,IAV3C,GAaxCK,EAA0C,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HhB,EAAvHiB,EAAIC,UAAUnE,OAAQoE,EAAIF,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOnE,OAAOuE,yBAAyBN,EAAQC,GAAOC,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAAST,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAInD,EAAIgD,EAAW9D,OAAS,EAAGc,GAAK,EAAGA,KAASmC,EAAIa,EAAWhD,MAAIsD,GAAKF,EAAI,EAAIjB,EAAEmB,GAAKF,EAAI,EAAIjB,EAAEc,EAAQC,EAAKI,GAAKnB,EAAEc,EAAQC,KAASI,GAChJ,OAAOF,EAAI,GAAKE,GAAKtE,OAAO0E,eAAeT,EAAQC,EAAKI,GAAIA,GAU5DU,EAGM,cAHNA,EAIM,SAJNA,EAKO,mBALPA,EAOW,cAPXA,EAQU,aAeVC,EAAgC,SAAUL,GAS1C,SAASK,EAAeC,EAASC,GAC7B,IAAIC,EAAQR,EAAO7C,KAAK4B,KAAMuB,EAASC,IAAYxB,KAEnD,OADAyB,EAAMC,gBAAiB,EAChBD,EAmvBX,OA9vBAnC,EAAUgC,EAAgBL,GAa1BK,EAAepB,UAAUyB,UAAY,aAQrCL,EAAepB,UAAU0B,eAAiB,WACtC,OAAO5B,KAAK6B,kBAOhBP,EAAepB,UAAU4B,OAAS,WAC1B9B,KAAK+B,UACL/B,KAAKgC,YAEAhC,KAAKiC,qBAAuBjC,KAAK0B,gBACtC1B,KAAKkC,cACLlC,KAAKgC,aAGLhC,KAAKmC,cASbb,EAAepB,UAAUkC,OAAS,WAC9BpC,KAAKqC,aACArC,KAAKsC,UACNtC,KAAKuC,aAETvC,KAAKwC,kBAUTlB,EAAepB,UAAUuC,SAAW,SAAUC,EAAOC,GAGjD,IAAK,IAFDC,EACAC,EAAM7C,KAAK0C,MAAMnG,OACZuG,EAAI,EAAGxF,EAAM0C,KAAK0C,MAAMnG,OAAQuG,EAAIxF,EAAKwF,IAC9C,GAAIH,IAAS3C,KAAK0C,MAAMI,GAAGH,KAAM,CAC7BE,EAAMC,EACN,MAGR,IAAK,IAAIzF,EAAIqF,EAAMnG,OAAS,EAAGc,GAAK,EAAGA,IAEnCuF,EAAU,IAAI5B,EAAKhB,KAAM,QAAS0C,EAAMrF,IAAI,GAC5C2C,KAAK0C,MAAMK,OAAOF,EAAK,EAAGD,GAEzB5C,KAAK+B,WACN/B,KAAKgD,eAUb1B,EAAepB,UAAU+C,YAAc,SAAUP,EAAOQ,GAEpD,IAAK,IADDC,GAAU,EACL9F,EAAI,EAAGC,EAAMoF,EAAMnG,OAAQc,EAAIC,EAAKD,IACzC,IAAK,IAAIyF,EAAI,EAAGM,EAAQpD,KAAK0C,MAAMnG,OAAQuG,EAAIM,EAAON,IAClD,GAAIJ,EAAMrF,MAAQ6F,EAAalD,KAAK0C,MAAMI,GAAGO,GAAKrD,KAAK0C,MAAMI,GAAGH,MAAO,CACnE3C,KAAK0C,MAAMK,OAAOD,EAAG,GACrBK,GAAU,EACV,MAIRA,GAAWnD,KAAKsD,gBAChBtD,KAAKgD,eAGb1B,EAAepB,UAAUgC,YAAc,WACnC,IAAI9F,EACAmH,EAAMvD,KAAKwD,cAAc,OACzBC,UAAWpC,EACXgC,GAAIrD,KAAKwB,QAAQ6B,GAAK,WAE1BK,SAASC,KAAKC,YAAYL,GAC1BvD,KAAK6D,SAAW,IAAIC,QAAMP,GACtBQ,SAAU/D,KAAKwB,QACfwC,WAAaC,EAAG,MAAOC,EAAG,QAC1BC,UAAYF,EAAG,OAAQC,EAAG,UAC1BE,WAAY,WACZC,QAASrE,KAAKM,OAASN,KAAKsE,mBAAqB,GACjDvF,UAAWiB,KAAKjB,YAEfH,oBAAkBoB,KAAKuE,gBACxBvE,KAAKuE,aAAahG,MAAMiG,QAAU,IAEO,UAAzCxE,KAAK6D,SAASrC,QAAQjD,MAAM4F,UAC5BnE,KAAK6D,SAASY,gBAAgBzE,KAAKwB,SAEvCxB,KAAK6D,SAASa,OACdC,aAAW3E,KAAKwB,SAAUpF,KACtBA,EAAG,iBAAmB4D,KAAK0C,MAAMnG,QAAUyD,KAAKM,OAAS,OAAS,QAClElE,EAAG,iBAAmB,QACtBA,EAAS,KAAI,SACbA,IACA4D,KAAK4E,UACLlH,YAAU6F,GAAMvD,KAAK4E,SAASC,QAAQ,OAAQ,KAAKC,OAAOC,MAAM,MAEpE/E,KAAK0B,gBAAiB,GAE1BJ,EAAepB,UAAUoE,iBAAmB,WACxC,OAAItE,KAAKiC,oBAAuBjC,KAAKgF,iBAAoBpG,oBAAkBoB,KAAKuE,cAGhD,iBAAjBvE,KAAW,OAAiBiF,SAAOjF,KAAKM,QAAUN,KAAKM,OAF3DN,KAAKuE,cAIpBjD,EAAepB,UAAU8C,YAAc,SAAUkC,GAC7C,IAEIC,EACAC,EACAxH,EACAyH,EALA3C,EAAQ1C,KAAK0C,MACb4C,EAAWtF,KAAKuF,QAAQvF,KAAK0C,MAAO,WAKpC9F,EAAKoD,KAAKsD,eACV1G,EACAA,EAAG4I,UAAY,GAGf5I,EAAKoD,KAAKwD,cAAc,MACpBiC,OAASC,KAAQ,OAAQC,SAAY,OAG7C,IAAK,IAAItI,EAAI,EAAGA,EAAIqF,EAAMnG,OAAQc,IAAK,CAEnC,IAAIuI,GADJR,EAAO1C,EAAMrF,IACOsF,KACpB/E,EAAKoC,KAAKwD,cAAc,MACpBgC,UAAWJ,EAAKS,IAAM,GAAKD,EAC3BnC,UAAW2B,EAAKU,UAAYzE,EAAkB,IAAMA,EAAuBA,EAC3EoE,MAAOL,EAAKU,WAAcJ,KAAQ,YAAaC,SAAY,OAAWD,KAAQ,WAAYC,SAAY,KAAMI,aAAcH,GAC1HvC,GAAI+B,EAAK/B,GAAK+B,EAAK/B,GAAK2C,cAAY,KAAOhG,KAAKiG,gBAAkB,WAElEjG,KAAKkG,oBACLtI,EAAGuI,YAAcf,EAAKS,IAAM,GAAKD,EAGjChI,EAAG4H,UAAYJ,EAAKS,IAAM,GAAKD,EAE/BR,EAAKS,MACLjI,EAAGgG,YAAY5D,KAAKoG,aAAahB,IACjCxH,EAAGT,UAAUkJ,IAAI,UAEjBjB,EAAKkB,SACLnB,EAAOnF,KAAKwD,cAAc,QAAUC,UAAWpC,EAAkB,IAAM+D,EAAKkB,UACxElB,EAAKS,IACLjI,EAAG2I,WAAW,GAAG3C,YAAYuB,GAG7BvH,EAAG4I,aAAarB,EAAMvH,EAAG2I,WAAW,KAIpCjB,IAAaF,EAAKU,WAClBlI,EAAGT,UAAUkJ,IAAI,gBAGrBjB,EAAK9C,UACL1E,EAAGT,UAAUkJ,IAAI,cAErBhB,GAAcD,KAAMA,EAAM5D,QAAS5D,GACnCoC,KAAKyG,QAAQ,mBAAoBpB,GACjCzI,EAAGgH,YAAYhG,GAEfsH,GACAlF,KAAK0G,kBAAkB9C,YAAYhH,GAEnC0I,GACAvH,EAAkBiC,KAAK0G,oBAG/BpF,EAAepB,UAAUqF,QAAU,SAAU7C,EAAOiE,GAChD,IAAK,IAAItJ,EAAI,EAAGC,EAAMoF,EAAMnG,OAAQc,EAAIC,EAAKD,IACzC,GAAIqF,EAAMrF,GAAG,GAAKsJ,GACd,OAAO,EAGf,OAAO,GAEXrF,EAAepB,UAAUkG,aAAe,SAAUhB,GAC9C,IAAIQ,EAAY5F,KAAwB,oBAAI4G,qBAAmBC,SAASzB,EAAKzC,MAAQyC,EAAKzC,KAC1F,OAAO3C,KAAKwD,cAAc,KAAOC,UAAW,yBAA0B+B,UAAWI,EAAUH,OAASqB,KAAQ1B,EAAKS,QAErHvE,EAAepB,UAAUmC,WAAa,WAClCrC,KAAK+G,OAAS,IAAIC,UACdV,QAAStG,KAAKsG,QAASW,aAAcjH,KAAKiH,aAAcrC,SAAU5E,KAAK4E,SAAUP,QAASrE,KAAKqE,QAC/F/B,SAAUtC,KAAKsC,SAAUvD,UAAWiB,KAAKjB,UAAWmI,kBAAmBlH,KAAKkH,oBAEhFlH,KAAK+G,OAAOvD,cAAgBxD,KAAKwD,cACjCxD,KAAK+G,OAAOI,SAASnH,KAAKwB,SACrBxB,KAAKwB,QAAQ6B,KACdrD,KAAKwB,QAAQ6B,GAAK2C,cAAY,KAAOhG,KAAKiG,kBAE9CjG,KAAKoH,kBACLpH,KAAKqH,eAAerH,KAAKwB,UACzBxB,KAAKwB,QAAQ8F,aAAa,aAActH,KAAKwB,QAAQ2E,YAAcnG,KAAKwB,QAAQ2E,YAAc,kBACzFnG,KAAKM,SAAWN,KAAKgF,kBAAoBhF,KAAKiC,qBAAwBjC,KAAKiC,mBAC5EjC,KAAKkC,eAGLlC,KAAK0B,gBAAiB,EAClB1B,KAAKM,SAAWN,KAAKgF,iBAAmBhF,KAAKiC,qBAC7CjC,KAAKuE,aAAevE,KAAKsE,mBACzBtE,KAAKuE,aAAahG,MAAMiG,QAAU,UAI9ClD,EAAepB,UAAU8E,cAAgB,WACrC,IAAKhF,KAAKwB,QACN,OAAO,EAEX,IAAI+F,EAAWvH,KAAKwB,QAAQgG,gBAC5B,SAAID,GAAYA,EAASpK,WAAaoK,EAASpK,UAAUK,SAAS,yBAKtE8D,EAAepB,UAAUkH,gBAAkB,WACvCpH,KAAKwB,QAAQoC,YAAY5D,KAAKwD,cAAc,QACxCC,UAAW,8BAAqCzD,KAAK4E,SAASnI,QAAQ4E,IAAwB,EACxF,SAAW,SAAW,eAGpCC,EAAepB,UAAUmH,cAAgB,SAAUI,GAC/CzH,KAAK0H,WAAaD,GAQtBnG,EAAepB,UAAU+F,cAAgB,WACrC,MAAO,gBAEX3E,EAAepB,UAAU6B,QAAU,WAC/B,IAAI4F,GAAM,EAIV,OAHI3H,KAAK0B,iBACLiG,EAAM3H,KAAK0G,kBAAkBvJ,UAAUK,SAAS,kBAE7CmK,GAOXrG,EAAepB,UAAU0H,QAAU,WAC/B,IAAInG,EAAQzB,KAEZ,GADAiB,EAAOf,UAAU0H,QAAQxJ,KAAK4B,MACD,iBAAzBA,KAAKiG,gBAAoC,CACzC,IAAI4B,EACA7H,KAAKwB,QAAQtE,cAAc,iBAC3B4K,SAAO9H,KAAKwB,QAAQtE,cAAc,iBAElC8C,KAAK4E,WACLiD,EAAc7H,KAAK4E,SAASG,MAAM,MAEtC/E,KAAK+G,OAAOa,UACRC,GACAE,eAAa/H,KAAKwB,SAAUqG,GAEhCE,cAAY/H,KAAK0H,YAAa,cACf1H,KAAKwB,QAAQwG,aAAa,UAAY,gBAAiB,gBAAiB,YAAa,SAC7F,gBAAiB,gBAAiB,YAAa,OAAQ,UACrD1J,QAAQ,SAAUiC,GACvBkB,EAAMD,QAAQ9C,gBAAgB6B,KAElCP,KAAKiI,oBACLjI,KAAKkI,eACLlI,KAAK0B,gBAAiB,EACjB1B,KAAKsC,UACNtC,KAAKmI,iBAIjB7G,EAAepB,UAAUgI,aAAe,WACpC,GAAIlI,KAAK0B,eAAgB,CAErB,GADA1B,KAAK6D,SAAS+D,UACV5H,KAAK0G,kBAAmB,CACxB,IAAI0B,EAAW1E,SAAS2E,eAAerI,KAAK0G,kBAAkBrD,IAC1D+E,IACAL,eAAaK,IAAY,eAAgB,kBACzCN,SAAOM,IAGfE,eAAalL,OAAO4C,KAAK0G,kBAAmB,QAAS1G,KAAKuI,cAC1DD,eAAalL,OAAO4C,KAAK0G,kBAAmB,UAAW1G,KAAKwI,iBACxDxI,KAAK0B,gBAAkB1B,KAAK6D,WAC5B7D,KAAK6D,SAASrC,QAAU,KACxBxB,KAAK6D,cAAW4E,GAGxBzI,KAAK0B,gBAAiB,GAE1BJ,EAAepB,UAAUwG,gBAAkB,WACvC,IAAIiB,EAAM,KACV,IAAK3H,KAAK6D,UAAY7D,KAAK0H,WAAW,GAAGvK,UAAUK,SAAS,eAAgB,CACxE,IAAIkL,EAAcC,eAAa3I,KAAK0H,WAAW,GAAI,gBAC/CgB,IACA1I,KAAK6D,SAAW6E,EAAY7E,UAMpC,OAHI7D,KAAK6D,WACL8D,EAAM3H,KAAK6D,SAASrC,SAEjBmG,GAEXrG,EAAepB,UAAUoD,aAAe,WACpC,IAAIqE,EAAM,KAIV,OAHI3H,KAAK0G,oBACLiB,EAAM3H,KAAK0G,kBAAkBnJ,SAAS,IAEnCoK,GAEXrG,EAAepB,UAAUqC,WAAa,WAClCvC,KAAK4I,yBAA2B5I,KAAK6I,iBAAiBC,KAAK9I,MACtDA,KAAKiC,oBACNqG,eAAajC,IAAI3C,SAAU,uBAAwB1D,KAAK4I,yBAA0B5I,MAEtFsI,eAAajC,IAAIrG,KAAKwB,QAAS,QAASxB,KAAKuI,aAAcvI,MAC3DsI,eAAajC,IAAIrG,KAAKwB,QAAS,UAAWxB,KAAKwI,gBAAiBxI,OAEpEsB,EAAepB,UAAU6I,gBAAkB,WAClC/I,KAAK4I,2BACN5I,KAAK4I,yBAA2B5I,KAAK6I,iBAAiBC,KAAK9I,OAE/D,IAAIgJ,EAAehJ,KAAK0G,kBACpB1G,KAAKiC,oBACLqG,eAAajC,IAAI3C,SAAU,uBAAwB1D,KAAK4I,yBAA0B5I,MAElFgJ,IACAV,eAAajC,IAAI2C,EAAc,QAAShJ,KAAKuI,aAAcvI,MAC3DsI,eAAajC,IAAI2C,EAAc,UAAWhJ,KAAKwI,gBAAiBxI,MAC5DA,KAAKiJ,mBACLX,eAAajC,IAAI2C,EAAchJ,KAAKiJ,kBAAmBjJ,KAAKkJ,gBAAiBlJ,OAGrFA,KAAKmJ,SAAWC,eAAaJ,GAAgBK,SAAU,IAAMhI,KAEjEC,EAAepB,UAAU+H,kBAAoB,WACzC,IAAIe,EAAehJ,KAAK0G,kBACpB1G,KAAKiC,oBACLqG,eAAalL,OAAOsG,SAAU,uBAAwB1D,KAAK4I,0BAE3DI,GAAgBA,EAAaM,gBAC7BhB,eAAalL,OAAO4L,EAAc,QAAShJ,KAAKuI,cAChDD,eAAalL,OAAO4L,EAAc,UAAWhJ,KAAKwI,iBAC9CxI,KAAKiJ,mBACLX,eAAalL,OAAO4L,EAAchJ,KAAKiJ,kBAAmBjJ,KAAKkJ,kBAGnEK,mBAAmBvJ,KAAKmJ,UACxBnJ,KAAKmJ,YAUb7H,EAAepB,UAAUsI,gBAAkB,SAAUgB,GACjD,GAAIA,EAAElJ,SAAWN,KAAKwB,SAA0B,IAAdgI,EAAE3M,UAAmB2M,EAAEC,QAAwB,KAAdD,EAAE3M,UAAiC,KAAd2M,EAAE3M,QAG1F,OAAQ2M,EAAE3M,SACN,KAAK,GACL,KAAK,IACG2M,EAAEC,QAAyB,KAAdD,EAAE3M,SAAgC,KAAd2M,EAAE3M,QAInCmD,KAAKrD,iBAAiB6M,GAHtBxJ,KAAK0J,gBAAgBF,GAKzB,MACJ,KAAK,EACL,KAAK,GACL,KAAK,GACL,KAAK,GACDxJ,KAAK0J,gBAAgBF,KAIjClI,EAAepB,UAAUvD,iBAAmB,SAAU6M,KAC9CxJ,KAAKM,QAAyB,KAAdkJ,EAAE3M,SAAgC,KAAd2M,EAAE3M,WAG1C2M,EAAEG,iBACFhN,EAAiBqD,KAAKsD,eAAgBkG,EAAE3M,WAE5CyE,EAAepB,UAAUwJ,gBAAkB,SAAUF,KAC7CxJ,KAAKM,QAAyB,KAAdkJ,EAAE3M,SAAgC,IAAd2M,EAAE3M,WAGxB,KAAd2M,EAAE3M,SAAkBmD,KAAK0H,WAAW,GAAGvK,UAAUK,SAAS,eAC1DwC,KAAK0H,WAAW,GAAG/J,QAGnB6L,EAAElJ,QAAUkJ,EAAElJ,OAAOmD,UAAUhH,QAAQ,oBAAsB,GAAmB,KAAd+M,EAAE3M,UAGtD,IAAd2M,EAAE3M,SACF2M,EAAEG,iBAEY,KAAdH,EAAE3M,SAAgC,KAAd2M,EAAE3M,SAAgC,IAAd2M,EAAE3M,QACrCmD,KAAK+B,WACN/B,KAAKmC,WAAWqH,EAAGxJ,KAAKwB,SAI5BxB,KAAKuI,aAAaiB,MAG1BlI,EAAepB,UAAU0J,MAAQ,SAAUnC,GACvC,MAAwB,OAAjBA,EAAKoC,QAAmBpC,EAAOqC,UAAQrC,EAAM,OAExDnG,EAAepB,UAAU2I,iBAAmB,SAAUW,GAClD,IAAIO,EAAOP,EAAElJ,QACTN,KAAK6D,UAAa7D,KAAK+B,WAAe+H,UAAQC,EAAM,QAAU/J,KAAK0G,kBAAkBrD,GAAK,OACvFyG,UAAQC,EAAM,QAAU/J,KAAKwB,QAAQ6B,GAAK,OAC7CrD,KAAKmC,WAAWqH,IAGxBlI,EAAepB,UAAUgJ,gBAAkB,SAAUM,GACjD,GAAIxJ,KAAK0B,iBAAmB1B,KAAK+B,UAAW,CACxC,IAAIiI,EAAWR,EAAES,cACjB,GAAID,GAAYA,EAASvG,UAAUhH,QAAQ,WAAa,EAAG,CACvD,IAAImB,EAAKoC,KAAK4J,MAAMI,GACpB,GAAIpM,EAAI,CACJ,IAAIZ,EAAQ4C,MAAMM,UAAUzD,QAAQ2B,KAAK4B,KAAKsD,eAAe/F,SAAUK,GACnEwH,EAAOpF,KAAK0C,MAAM1F,GACtB,GAAIoI,EAAM,CACN,IAAI8E,GAAoB1I,QAAS5D,EAAIwH,KAAMA,EAAM+E,MAAOX,GACxDxJ,KAAKyG,QAAQ,SAAUyD,KAInClK,KAAKmC,WAAWqH,KAGxBlI,EAAepB,UAAUqI,aAAe,SAAUiB,GAC9C,IAAIO,EAAOP,EAAElJ,OACb,GAAIwJ,UAAQC,EAAM,QAAU/J,KAAKwB,QAAQ6B,GAAK,OACrCrD,KAAKiC,oBAAuBjC,KAAKM,QAA0B,KAAhBN,KAAKM,SAAkBN,KAAKgF,kBAAoBhF,KAAKiC,mBAC7FjC,KAAK0G,kBAAkBvJ,UAAUK,SAAS,iBAC1CwC,KAAKgC,UAAUwH,GAGfxJ,KAAKmC,WAAWqH,GAGfxJ,KAAK0B,eACV1B,KAAKmC,WAAWqH,EAAGxJ,KAAK0H,WAAW,KAGnC1H,KAAKkC,cACLlC,KAAKgC,UAAUwH,SAInB,GAAIM,UAAQC,EAAM,QAAU/J,KAAK0G,kBAAkBrD,GAAK,MAAO,CAC3D,IAAIgC,OAAY,EACZrI,OAAQ,EACRoI,OAAO,EACPxH,EAAKoC,KAAK4J,MAAMG,GAChBnM,IACAZ,EAAQ4C,MAAMM,UAAUzD,QAAQ2B,KAAK4B,KAAKsD,eAAe/F,SAAUK,IACnEwH,EAAOpF,KAAK0C,MAAM1F,MAEdqI,GAAc7D,QAAS5D,EAAIwH,KAAMA,EAAM+E,MAAOX,GAC9CxJ,KAAKyG,QAAQ,SAAUpB,IAE3BrF,KAAKmC,WAAWqH,EAAGxJ,KAAK0H,WAAW,OAKnDpG,EAAepB,UAAU8B,UAAY,SAAUwH,GAC3C,IAAI/H,EAAQzB,UACF,IAANwJ,IAAgBA,EAAI,MACxB,IACIY,EAAYpK,KAAK0G,kBACrB,GAAK1G,KAAKM,OAIN,GAAIN,KAAK0H,WAAWnL,OAAS,EAAG,CAC5B,IAAI8N,EAAc1B,eAAa3I,KAAK0H,WAAW,GAAI,aAE/C2C,EAAYC,SAAWF,EAAU7D,WAAWhK,OAAS,IACrD8N,EAEYE,mBAAmBvK,KAAKsE,mBAAoBtE,KAAK0G,mBAC7D1G,KAAKwK,6BAKLxK,KAAKsK,SAAWF,EAAU7D,WAAWhK,OAAS,IAC9CyD,KAEKuK,mBAAmBvK,KAAKsE,mBAAoBtE,KAAK0G,mBACtD1G,KAAKwK,6BAnBbxK,KAAKgD,aAAY,GAuBrB,IAAIpG,EAAKoD,KAAKsD,eACdtD,KAAK+I,kBACL,IAAI0B,GAAmBjJ,QAAS5E,EAAI8F,MAAO1C,KAAK0C,MAAOyH,MAAOX,EAAGkB,QAAQ,GACzE1K,KAAKyG,QAAQ,aAAcgE,EAAgB,SAAUE,GACjD,IAAKA,EAAaD,OAAQ,CACtB,IAAIE,EAAOnJ,EAAM6B,eAQjB,GAPA7B,EAAMoC,SAASgH,KAAK,KAAMpJ,EAAMD,SAChC9D,YAAU+D,EAAMD,SAAU,YAC1BC,EAAMD,QAAQ8F,aAAa,gBAAiB,QAC5C7F,EAAMD,QAAQ8F,aAAa,YAAa7F,EAAMiF,kBAAkBrD,IAC5DuH,GACAA,EAAKjN,QAEL8D,EAAM1C,WAA+C,QAAlC6L,EAAKtB,cAAc/K,MAAMuM,KAAgB,CAC5D,IAAIC,OAAe,EAEfA,EADAtJ,EAAMD,QAAQ8H,eAAiB7H,EAAMD,QAAQ8H,cAAcnM,UAAUK,SAAS,uBAC/DiE,EAAMD,QAAQ8H,cAAc0B,YAG5BvJ,EAAMD,QAAQwJ,YAEjC,IAAIC,EAAYL,EAAKtB,cAAc0B,YAAcD,EAC7CG,EAAYC,WAAWP,EAAKtB,cAAc/K,MAAMuM,MAAQG,EACxDC,EAAY,IACZA,EAAY,GAEhBN,EAAKtB,cAAc/K,MAAMuM,KAAOI,EAAY,KAEhD,IAAIE,GAAa5J,QAASoJ,EAAMlI,MAAOjB,EAAMiB,OAC7CjB,EAAMgF,QAAQ,OAAQ2E,OAIlC9J,EAAepB,UAAUiC,WAAa,SAAUqH,EAAG6B,GAC/C,IAAI5J,EAAQzB,UACF,IAANwJ,IAAgBA,EAAI,MACxB,IAAI5M,EAAKoD,KAAKsD,eACVgI,GAAoB9J,QAAS5E,EAAI8F,MAAO1C,KAAK0C,MAAOyH,MAAOX,EAAGkB,QAAQ,GAC1E1K,KAAKyG,QAAQ,cAAe6E,EAAiB,SAAUX,GACnD,GAAKA,EAAaD,OAiCV9N,GACAA,EAAGe,YAlCe,CACtB,IAAIqL,EAAevH,EAAMiF,kBACrBsC,GACAV,eAAalL,OAAO4L,EAAc,UAAWvH,EAAM+G,iBAEvD/G,EAAMwG,oBACN,IAAIsD,EAAO9J,EAAM6B,eACbrG,OAAa,EACbsO,IACAtO,EAAasO,EAAKrO,cAAc,gBAEhCD,GACAA,EAAWE,UAAUC,OAAO,cAEhCqE,EAAMoC,SAASa,OACfqD,cAAYtG,EAAMiG,WAAY,YAC9BjG,EAAMD,QAAQ8F,aAAa,gBAAiB,SAC5C7F,EAAMD,QAAQ9C,gBAAgB,aAC1B2M,GACAA,EAAS1N,QAEb,IAAI6N,GAAchK,QAAS+J,EAAM7I,MAAOjB,EAAMiB,OAC9CjB,EAAMgF,QAAQ,QAAS+E,IAClB/J,EAAMnB,QAAUiL,GACjBzD,SAAOyD,KAEN9J,EAAMnB,QAAUmB,EAAMuD,iBAAoBvD,EAAMnB,SAAWmB,EAAMuD,kBAC9DvD,EAAMQ,oBACNR,EAAMyG,mBAW1B5G,EAAepB,UAAUiI,aAAe,WAC/BnI,KAAKiC,oBACNqG,eAAalL,OAAOsG,SAAU,uBAAwB1D,KAAK4I,0BAE/DN,eAAalL,OAAO4C,KAAKwB,QAAS,QAASxB,KAAKuI,cAChDD,eAAalL,OAAO4C,KAAKwB,QAAS,UAAWxB,KAAKwI,iBAC9CxI,KAAK0B,iBACL4G,eAAalL,OAAO4C,KAAK0G,kBAAmB,QAAS1G,KAAKuI,cAC1DD,eAAalL,OAAO4C,KAAK0G,kBAAmB,UAAW1G,KAAKwI,mBAWpElH,EAAepB,UAAUuL,kBAAoB,SAAUC,EAASC,GAE5D3L,KAAK+G,OAAO6E,cAAc9P,EAAS4P,GADnB,UAAW,WAAY,UAAW,eAAgB,WAAY,eAE9E,IAAI1C,EACAhJ,KAAK0B,iBACLsH,EAAehJ,KAAK0G,kBACpB1G,KAAK6D,SAAS+H,cAAc9P,EAAS4P,GAAU,gBAEnD,IAAK,IAAIvP,EAAK,EAAGC,EAAKC,OAAOC,KAAKoP,GAAUvP,EAAKC,EAAGG,OAAQJ,IAAM,CAE9D,OADWC,EAAGD,IAEV,IAAK,UACI6D,KAAKwB,QAAQtE,cAAc,iBAC5B8C,KAAKoH,kBAET,MACJ,IAAK,WACGsE,EAAQpJ,UACRtC,KAAKmI,eACDnI,KAAK0B,iBAAmB1B,KAAK+B,WAC7B/B,KAAKmC,cAITnC,KAAKuC,aAET,MACJ,IAAK,WACD,GAAImJ,EAAQ9G,SAASnI,QAAQ4E,IAAwB,GAAKsK,EAAQ/G,SAASnI,QAAQ4E,IAAwB,EAAG,CACrGrB,KAAKwB,QAAQtE,cAAc,iBAC5B8C,KAAKoH,kBAET,IAAIyE,EAAY7L,KAAKwB,QAAQtE,cAAc,gBAC3CwO,EAAQ9G,SAASnI,QAAQ4E,IAAwB,EAAIlE,YAAU0O,GAAY,kBAAmB,iBACxF1O,YAAU0O,GAAY,iBAAkB,kBAE9C7L,KAAK0B,iBACDiK,EAAQ/G,UACRmD,eAAaiB,GAAe2C,EAAQ/G,SAASG,MAAM,MAEnD2G,EAAQ9G,UACRlH,YAAUsL,GAAe0C,EAAQ9G,SAASC,QAAQ,OAAQ,KAAKC,OAAOC,MAAM,OAGpF,MACJ,IAAK,SACD/E,KAAK6D,SAASQ,QAAUrE,KAAKsE,mBAC7BtE,KAAK6D,SAASiI,WACd,MACJ,IAAK,QACG9L,KAAK0B,gBAAkB1B,KAAKsD,gBAC5BtD,KAAKgD,cAET,MACJ,IAAK,qBACG0I,EAAQzJ,mBACRjC,KAAKkI,eAGLlI,KAAKkC,iBAazBZ,EAAepB,UAAU6L,QAAU,WAC/B/L,KAAKwB,QAAQ7D,SAEjByC,GACIe,WAAS,KACVG,EAAepB,UAAW,eAAW,GACxCE,GACIe,WAAS,KACVG,EAAepB,UAAW,gBAAY,GACzCE,GACIe,YAAS,IACVG,EAAepB,UAAW,gBAAY,GACzCE,GACIe,WAAS,KACVG,EAAepB,UAAW,eAAW,GACxCE,GACIe,WAAS,SACVG,EAAepB,UAAW,oBAAgB,GAC7CE,GACIe,YAAS,IACVG,EAAepB,UAAW,2BAAuB,GACpDE,GACI4L,gBAAehL,IAChBM,EAAepB,UAAW,aAAS,GACtCE,GACIe,YAAS,IACVG,EAAepB,UAAW,0BAAsB,GACnDE,GACIe,WAAS,KACVG,EAAepB,UAAW,cAAU,GACvCE,GACIe,WAAS,KACVG,EAAepB,UAAW,yBAAqB,GAClDE,GACI6L,WACD3K,EAAepB,UAAW,wBAAoB,GACjDE,GACI6L,WACD3K,EAAepB,UAAW,kBAAc,GAC3CE,GACI6L,WACD3K,EAAepB,UAAW,mBAAe,GAC5CE,GACI6L,WACD3K,EAAepB,UAAW,aAAS,GACtCE,GACI6L,WACD3K,EAAepB,UAAW,YAAQ,GACrCE,GACI6L,WACD3K,EAAepB,UAAW,cAAU,GACvCE,GACI6L,WACD3K,EAAepB,UAAW,eAAW,GACxCoB,EAAiBlB,GACb8L,yBACD5K,IAEL6K,aClzBE7M,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBlD,OAAOqD,iBAChBC,wBAA2BC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOA,EAAEK,eAAeD,KAAIL,EAAEK,GAAKJ,EAAEI,MACpDL,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASM,IAAOC,KAAKC,YAAcT,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEU,UAAkB,OAANT,EAAapD,OAAO8D,OAAOV,IAAMM,EAAGG,UAAYT,EAAES,UAAW,IAAIH,IAV3C,GAaxCK,EAA0C,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HhB,EAAvHiB,EAAIC,UAAUnE,OAAQoE,EAAIF,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOnE,OAAOuE,yBAAyBN,EAAQC,GAAOC,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAAST,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAInD,EAAIgD,EAAW9D,OAAS,EAAGc,GAAK,EAAGA,KAASmC,EAAIa,EAAWhD,MAAIsD,GAAKF,EAAI,EAAIjB,EAAEmB,GAAKF,EAAI,EAAIjB,EAAEc,EAAQC,EAAKI,GAAKnB,EAAEc,EAAQC,KAASI,GAChJ,OAAOF,EAAI,GAAKE,GAAKtE,OAAO0E,eAAeT,EAAQC,EAAKI,GAAIA,GAW5DyL,EAAU,kBAeVC,EAA6B,SAAUpL,GASvC,SAASoL,EAAY9K,EAASC,GAC1B,OAAOP,EAAO7C,KAAK4B,KAAMuB,EAASC,IAAYxB,KAuWlD,OAhXAV,EAAU+M,EAAapL,GAiBvBoL,EAAYnM,UAAUyB,UAAY,WAC9B,IAAI2K,EAAMtM,KAAKwB,QACf,GAAI8K,EAAIzC,UAAYuC,EAAS,CAIzB,IAAK,IAHDG,EAAaC,WAAS,gBAAiBF,GACvCG,EAAMzM,KAAKwD,cAAc,UAAYiC,OAASiH,KAAQ,YACtDC,EAAU3M,KAAKwD,cAAc4I,GAAW3I,UAAW,KAAOzD,KAAKiG,gBAAkB,aAC5EpD,EAAM,EAAGvF,EAAMgP,EAAI3H,WAAWpI,OAAQsG,EAAMvF,EAAKuF,IACtD4J,EAAInF,aAAagF,EAAI3H,WAAW9B,GAAK+J,SAAUN,EAAI3H,WAAW9B,GAAKgK,WAEvEP,EAAIQ,WAAWtG,aAAamG,EAASL,GACrCxE,SAAOwE,GACPA,EAAMG,EACNE,EAAQ/I,YAAY0I,GACpBS,WAAS,gBAAiBR,EAAYD,GACtCtM,KAAK2M,QAAUA,EACf3M,KAAKwB,QAAU8K,EAEdtM,KAAKwB,QAAQ6B,KACdrD,KAAKwB,QAAQ6B,GAAK2C,cAAY,KAAOhG,KAAKiG,mBASlDoG,EAAYnM,UAAUkC,OAAS,WAC3BpC,KAAKgN,cACLhN,KAAKiN,sBACLjN,KAAKkN,iBAETb,EAAYnM,UAAUgN,cAAgB,WAClClN,KAAKmN,wBACLnN,KAAKqH,eAAerH,KAAKwB,QAASxB,KAAKoN,gBAAgB5L,UACvDxB,KAAKqN,UACLrN,KAAKuC,aACLvC,KAAKwC,kBAUT6J,EAAYnM,UAAUuC,SAAW,SAAUC,EAAOC,GAC9C1B,EAAOf,UAAUuC,SAASrE,KAAK4B,KAAM0C,EAAOC,GAC5C3C,KAAKoN,gBAAgB1K,MAAQ1C,KAAK0C,OAStC2J,EAAYnM,UAAU+C,YAAc,SAAUP,EAAOQ,GACjDjC,EAAOf,UAAU+C,YAAY7E,KAAK4B,KAAM0C,EAAOQ,GAC/ClD,KAAKoN,gBAAgB1K,MAAQ1C,KAAK0C,OAEtC2J,EAAYnM,UAAU8M,YAAc,WAC3BhN,KAAK2M,UACN3M,KAAK2M,QAAU3M,KAAKwD,cAAc,OAASC,UAAW,KAAOzD,KAAKiG,gBAAkB,aACpFjG,KAAKwB,QAAQsL,WAAWtG,aAAaxG,KAAK2M,QAAS3M,KAAKwB,UAE5DxB,KAAKwB,QAAQrE,UAAUC,OAAO,KAAO4C,KAAKiG,iBACtCjG,KAAKjB,WACLiB,KAAK2M,QAAQxP,UAAUkJ,IAvGzB,SAyGErG,KAAK4E,UACLlH,YAAUsC,KAAK2M,SAAU3M,KAAK4E,SAASC,QAAQ,OAAQ,KAAKC,OAAOC,MAAM,OAGjFsH,EAAYnM,UAAU+M,oBAAsB,WACxC,IAAIK,GACA1I,SAAU5E,KAAK4E,SACf7F,UAAWiB,KAAKjB,UAChBuH,QAAStG,KAAKsG,QACdW,aAAcjH,KAAKiH,aACnB5C,QAASrE,KAAKqE,QACd/B,SAAUtC,KAAKsC,UAEnBtC,KAAKuN,cAAgB,IAAIvG,SAAOsG,GAChCtN,KAAKuN,cAAc/J,cAAgBxD,KAAKwD,cACxCxD,KAAKuN,cAAcpG,SAASnH,KAAKwB,SACjCxB,KAAKwB,QAAQrE,UAAUkJ,IAAI,KAAOrG,KAAKiG,iBACvCjG,KAAKwB,QAAQkL,KAAO,SACpB1M,KAAK2M,QAAQ/I,YAAY5D,KAAKwB,UAElC6K,EAAYnM,UAAUiN,sBAAwB,WAC1C,IAAI1L,EAAQzB,KACRwN,EAAUxN,KAAKwD,cAAc,UAC7BC,UAAW,aACXgC,OAASE,SAAY,MACrBtC,GAAIrD,KAAKwB,QAAQ6B,GAAK,iBAE1BrD,KAAK2M,QAAQ/I,YAAY4J,GACzB,IAAIC,GACA7I,SAAU5E,KAAK4E,SACftC,SAAUtC,KAAKsC,SACfvD,UAAWiB,KAAKjB,UAChB2D,MAAO1C,KAAK0C,MACZpC,OAAQN,KAAKM,OACb2B,mBAAoBjC,KAAKiC,oBAE7BwL,EAAiBC,iBAAmB,SAAUC,GACtClM,EAAMQ,qBACNR,EAAM2L,gBAAgBvJ,SAASE,SAAWtC,EAAMkL,QAChDlL,EAAMoC,SAAWpC,EAAM2L,gBAAgBvJ,UAE3CpC,EAAMgF,QAAQ,mBAAoBkH,IAEtCF,EAAiBG,KAAO,SAAUD,GAC9BlM,EAAMgF,QAAQ,OAAQkH,IAE1BF,EAAiBI,MAAQ,SAAUF,GAC/BlM,EAAMgF,QAAQ,QAASkH,IAE3BF,EAAiBxI,OAAS,SAAU0I,GAChClM,EAAMgF,QAAQ,SAAUkH,IAE5BF,EAAiBK,WAAa,SAAUH,GAChClM,EAAMQ,oBAA4C,GAAtBR,EAAMiB,MAAMnG,SACxCkF,EAAM2L,gBAAgBvJ,SAASE,SAAWtC,EAAMkL,QAChDlL,EAAMoC,SAAWpC,EAAM2L,gBAAgBvJ,UAE3C,IAAIkK,EAAkB,IAAIC,EAI1B,OAHAvM,EAAMgF,QAAQ,aAAckH,EAAM,SAAUhD,GACxCoD,EAAgBE,QAAQtD,KAErBoD,GAEXN,EAAiBS,YAAc,SAAUP,GACrC,IAAII,EAAkB,IAAIC,EAI1B,OAHAvM,EAAMgF,QAAQ,cAAekH,EAAM,SAAUhD,GACzCoD,EAAgBE,QAAQtD,KAErBoD,GAEX/N,KAAKoN,gBAAkB,IAAI9L,EAAemM,GAC1CzN,KAAKoN,gBAAgB5J,cAAgBxD,KAAKwD,cAC1CxD,KAAKoN,gBAAgBjG,SAASqG,GACzBxN,KAAKiC,qBACNjC,KAAKoN,gBAAgBvJ,SAASE,SAAW/D,KAAK2M,QAC9C3M,KAAK6D,SAAW7D,KAAKoN,gBAAgBvJ,UAGzC7D,KAAK0B,eAAiB1B,KAAKoN,gBAAgB1L,eAC3C1B,KAAKoN,gBAAgB1F,YAAc1H,KAAKwB,QAASxB,KAAKoN,gBAAgB5L,SACtExB,KAAKoN,gBAAgB5L,QAAQtE,cAAc,eAAeC,UAAUC,OAAO,gBACvE4C,KAAKsC,UACLtC,KAAK2M,QAAQxP,UAAUkJ,IAAI,wBAGnCgG,EAAYnM,UAAUmN,QAAU,WAC5B1I,aAAW3E,KAAKwB,SACZ2M,gBAAiB,QAASC,gBAAiB,OAC3CrI,aAAc/F,KAAKwB,QAAQ2E,YAAcnG,KAAKwB,QAAQ2E,YAAc,eAAiB,cAAekI,YAAarO,KAAKwB,QAAQ6B,GAAK,wBAS3IgJ,EAAYnM,UAAU+F,cAAgB,WAClC,MAAO,aAOXoG,EAAYnM,UAAU4B,OAAS,WAC3B9B,KAAKoN,gBAAgBtL,UAEzBuK,EAAYnM,UAAU0H,QAAU,WAC5B,IAAInG,EAAQzB,KACR7C,GAvNF,SA2NF,GAHI6C,KAAK4E,WACLzH,EAAYA,EAAUmR,OAAOtO,KAAK4E,SAASG,MAAM,OAEjD/E,KAAKwB,QAAS,CACd,IAAIA,EAAUkC,SAAS2E,eAAerI,KAAKwB,QAAQ6B,IAC/C7B,GAAWA,EAAQ8H,gBAAkBtJ,KAAK2M,UACtC3M,KAAK2M,QAAQ9C,UAAYuC,GACzBpM,KAAK2M,QAAQnH,UAAY,GACzBuC,eAAa/H,KAAK2M,UAAW,QAAS,KAAO3M,KAAKiG,gBAAkB,aACpE8B,eAAa/H,KAAK2M,SAAU3M,KAAK4E,SAASG,MAAM,QAGhDgD,eAAa/H,KAAKwB,SAAUrE,IAC3B,aAAc,gBAAiB,gBAAiB,YAAa,QAAQmB,QAAQ,SAAUiC,GACpFkB,EAAMD,QAAQ9C,gBAAgB6B,KAElCP,KAAK2M,QAAQG,WAAWtG,aAAaxG,KAAKwB,QAASxB,KAAK2M,SACxDvP,SAAO4C,KAAK2M,UAEhB3M,KAAKmI,gBAGbnI,KAAK2M,QAAU,KACf3M,KAAKuN,cAAc3F,UACnB5H,KAAKoN,gBAAgBxF,UACrB3G,EAAOf,UAAU0H,QAAQxJ,KAAK4B,MACzBA,KAAKwB,QAAQwG,aAAa,UAC3BhI,KAAKwB,QAAQ9C,gBAAgB,UAGrC2N,EAAYnM,UAAUqC,WAAa,WAC/B+F,eAAajC,IAAIrG,KAAKwB,QAAS,QAASxB,KAAKuO,uBAAwBvO,MACrE,IAAIwO,iBAAexO,KAAKwB,SACpBiN,UAAWzO,KAAK0O,mBAAmB5F,KAAK9I,MACxC2O,YACIC,aAAc,gBACdC,MAAO,YAInBxC,EAAYnM,UAAUiI,aAAe,WACjCG,eAAalL,OAAO4C,KAAKwB,QAAS,QAASxB,KAAKuO,wBAChDO,cAAY9O,KAAKwB,QAASgN,kBAAgB5G,WAE9CyE,EAAYnM,UAAUqO,uBAAyB,WAC3CvO,KAAKyG,QAAQ,SAAWjF,QAASxB,KAAKwB,WAE1C6K,EAAYnM,UAAUwO,mBAAqB,SAAUlF,GACjD,OAAQA,EAAEuF,QACN,IAAK,eACD/O,KAAKuI,aAAaiB,GAClB,MACJ,IAAK,QACDxJ,KAAKuI,aAAaiB,GACdxJ,KAAK0G,oBAAsB1G,KAAK0G,kBAAkBvJ,UAAUK,SAAS,kBACrEwC,KAAKwB,QAAQrE,UAAUC,OAAO,YAC9B4C,KAAKoN,gBAAgB5L,QAAQrE,UAAUkJ,IAAI,aAG3CrG,KAAKoN,gBAAgB5L,QAAQrE,UAAUC,OAAO,cAY9DiP,EAAYnM,UAAUuL,kBAAoB,SAAUC,EAASC,GACzD,IAAI3P,GAAS,UAAW,UAAW,eAAgB,WAAY,WAAY,aAC3EgE,KAAKuN,cAAc3B,cAAc9P,EAAS4P,EAAS1P,IACnDA,GAAS,aAAc,mBAAoB,SAAU,OACjD,QAAS,WAAY,WAAY,YAAa,sBAC9CK,OAAOC,KAAKoP,GAASjP,QAAQ,UAAY,IACzCuD,KAAKoN,gBAAgB1K,MAAQgJ,EAAQhJ,MACrC1C,KAAKoN,gBAAgBtB,YAEzB9L,KAAKoN,gBAAgBxB,cAAc9P,EAAS4P,EAAS1P,IACrD,IAAK,IAAIG,EAAK,EAAGC,EAAKC,OAAOC,KAAKoP,GAAUvP,EAAKC,EAAGG,OAAQJ,IAAM,CAE9D,OADWC,EAAGD,IAEV,IAAK,WACGwP,EAAQ/G,UACRmD,eAAa/H,KAAK2M,SAAUhB,EAAQ/G,SAASG,MAAM,MAEvDrH,YAAUsC,KAAK2M,SAAUjB,EAAQ9G,SAASC,QAAQ,OAAQ,KAAKC,OAAOC,MAAM,MAC5E,MACJ,IAAK,YACG2G,EAAQ3M,UACRrB,YAAUsC,KAAK2M,SApT7B,SAuTc5E,eAAa/H,KAAK2M,SAvThC,SAyTU,MACJ,IAAK,WACGjB,EAAQpJ,SACR5E,YAAUsC,KAAK2M,SAAU,uBAGzB5E,eAAa/H,KAAK2M,SAAU,0BAYhDN,EAAYnM,UAAU6L,QAAU,WAC5B/L,KAAKwB,QAAQ7D,SAEjByC,GACIe,WAAS,KACVkL,EAAYnM,UAAW,eAAW,GACrCE,GACIe,WAAS,KACVkL,EAAYnM,UAAW,gBAAY,GACtCE,GACIe,YAAS,IACVkL,EAAYnM,UAAW,gBAAY,GACtCE,GACIe,WAAS,KACVkL,EAAYnM,UAAW,eAAW,GACrCE,GACIe,WAAS,SACVkL,EAAYnM,UAAW,oBAAgB,GAC1CE,GACIe,YAAS,IACVkL,EAAYnM,UAAW,0BAAsB,GAChDE,GACI4L,gBAAehL,IAChBqL,EAAYnM,UAAW,aAAS,GACnCE,GACIe,WAAS,KACVkL,EAAYnM,UAAW,cAAU,GACpCE,GACI6L,WACDI,EAAYnM,UAAW,wBAAoB,GAC9CE,GACI6L,WACDI,EAAYnM,UAAW,kBAAc,GACxCE,GACI6L,WACDI,EAAYnM,UAAW,mBAAe,GACzCE,GACI6L,WACDI,EAAYnM,UAAW,aAAS,GACnCE,GACI6L,WACDI,EAAYnM,UAAW,aAAS,GACnCE,GACI6L,WACDI,EAAYnM,UAAW,YAAQ,GAClCE,GACI6L,WACDI,EAAYnM,UAAW,cAAU,GACpCE,GACI6L,WACDI,EAAYnM,UAAW,eAAW,GACrCmM,EAAcjM,GACV8L,yBACDG,IAEL/K,GAKE0M,EAA0B,WAmB1B,OAlBA,WACI,IAAIvM,EAAQzB,KAIZA,KAAKgP,QAAU,IAAIC,QAAQ,SAAUhB,EAASiB,GAC1CzN,EAAMwM,QAAUA,EAChBxM,EAAMyN,OAASA,IAKnBlP,KAAKmP,MAAQnP,KAAKgP,QAAQG,MAAMrG,KAAK9I,KAAKgP,SAI1ChP,KAAKoP,KAAOpP,KAAKgP,QAAQI,KAAKtG,KAAK9I,KAAKgP,aCnb5C1P,EAAwC,WACxC,IAAIC,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBlD,OAAOqD,iBAChBC,wBAA2BC,OAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAII,KAAKJ,EAAOA,EAAEK,eAAeD,KAAIL,EAAEK,GAAKJ,EAAEI,MACpDL,EAAGC,IAE5B,OAAO,SAAUD,EAAGC,GAEhB,SAASM,IAAOC,KAAKC,YAAcT,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEU,UAAkB,OAANT,EAAapD,OAAO8D,OAAOV,IAAMM,EAAGG,UAAYT,EAAES,UAAW,IAAIH,IAV3C,GAaxCK,EAA0C,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,IAA2HhB,EAAvHiB,EAAIC,UAAUnE,OAAQoE,EAAIF,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOnE,OAAOuE,yBAAyBN,EAAQC,GAAOC,EACrH,GAAuB,iBAAZK,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAAST,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAInD,EAAIgD,EAAW9D,OAAS,EAAGc,GAAK,EAAGA,KAASmC,EAAIa,EAAWhD,MAAIsD,GAAKF,EAAI,EAAIjB,EAAEmB,GAAKF,EAAI,EAAIjB,EAAEc,EAAQC,EAAKI,GAAKnB,EAAEc,EAAQC,KAASI,GAChJ,OAAOF,EAAI,GAAKE,GAAKtE,OAAO0E,eAAeT,EAAQC,EAAKI,GAAIA,GAO5D0O,EAAc,iBAEdC,EAAiB,oBACjBC,EAAa,gBAIbC,EAA8B,SAAUvO,GAExC,SAASuO,IACL,OAAkB,OAAXvO,GAAmBA,EAAOC,MAAMlB,KAAMU,YAAcV,KAW/D,OAbAV,EAAUkQ,EAAcvO,GAIxBb,GACIe,WAAS,OACVqO,EAAatP,UAAW,gBAAY,GACvCE,GACIe,WAAS,KACVqO,EAAatP,UAAW,aAAS,GACpCE,GACIe,WAAS,SACVqO,EAAatP,UAAW,gBAAY,GAChCsP,GACTpO,iBAKEqO,EAAmC,SAAUxO,GAE7C,SAASwO,IACL,OAAkB,OAAXxO,GAAmBA,EAAOC,MAAMlB,KAAMU,YAAcV,KAW/D,OAbAV,EAAUmQ,EAAmBxO,GAI7Bb,GACIe,WAAS,MACVsO,EAAkBvP,UAAW,gBAAY,GAC5CE,GACIe,WAAS,SACVsO,EAAkBvP,UAAW,cAAU,GAC1CE,GACIe,WAAS,SACVsO,EAAkBvP,UAAW,cAAU,GACnCuP,GACTrO,iBAeEsO,EAAgC,SAAUzO,GAQ1C,SAASyO,EAAenO,EAASC,GAC7B,IAAIC,EAAQR,EAAO7C,KAAK4B,KAAMuB,EAASC,IAAYxB,KAEnD,OADAyB,EAAMkO,KAAO,EACNlO,EAgcX,OA1cAnC,EAAUoQ,EAAgBzO,GAY1ByO,EAAexP,UAAUyB,UAAY,WACjCV,EAAOf,UAAUyB,UAAUvD,KAAK4B,OAQpC0P,EAAexP,UAAUkC,OAAS,WAC9BnB,EAAOf,UAAUkC,OAAOhE,KAAK4B,MAC7BA,KAAK4P,OACL5P,KAAKuC,aACLvC,KAAKqN,UACLrN,KAAKwC,kBAQTkN,EAAexP,UAAU2P,MAAQ,SAAUC,GACvC9P,KAAK+P,UAAW,EAChB/P,KAAKgQ,cAAcF,GAAoB9P,KAAK8P,QAAS9P,KAAKiQ,eAO9DP,EAAexP,UAAUgQ,KAAO,WAC5BlQ,KAAK+P,UAAW,EAChBI,qBAAqBnQ,KAAKoQ,UAO9BV,EAAexP,UAAUmQ,iBAAmB,WACxCrQ,KAAK+P,UAAW,EAChB/P,KAAKsQ,kBAQTZ,EAAexP,UAAU+F,cAAgB,WACrC,MAAO,gBAOXyJ,EAAexP,UAAU0H,QAAU,WAC/B,IAAInG,EAAQzB,KACR7C,GAAakS,EAAaC,EAAgB,iBAAkB,KAAOrO,EAAOf,UAAU+F,cAAc7H,KAAK4B,MACvG,UAAYA,KAAKuQ,aAAapM,SAASqM,eAC3CvP,EAAOf,UAAU0H,QAAQxJ,KAAK4B,MAC9BA,KAAKmI,eACLnI,KAAKwB,QAAQgE,UAAY,GACrBxF,KAAK4E,WACLzH,EAAYA,EAAUmR,OAAOtO,KAAK4E,SAASG,MAAM,OAErDgD,eAAa/H,KAAKwB,SAAUrE,IAClB6C,KAAKwB,QAAQwG,aAAa,UAAY,aAAc,gBAAiB,gBAAiB,kBACzF,aAAc,gBAAiB,gBAAiB,gBAAiB,UACpE1J,QAAQ,SAAUiC,GAClBkB,EAAMD,QAAQ9C,gBAAgB6B,KAE9BP,KAAKsC,UACLtC,KAAKwB,QAAQ9C,gBAAgB,aAGrCgR,EAAexP,UAAU0P,KAAO,WAC5B5P,KAAKwB,QAAQrE,UAAUkJ,IAAI,KAAOpF,EAAOf,UAAU+F,cAAc7H,KAAK4B,OACtEA,KAAKyQ,aACLzQ,KAAK0Q,gBACD1Q,KAAK2Q,gBACL3Q,KAAK4Q,kBAGblB,EAAexP,UAAUwQ,cAAgB,WACrC,IAAIG,EAAU7Q,KAAKwD,cAAc,QAAUC,UAAW,cACtDzD,KAAK8Q,gBAAgBD,GACrBH,iBACIpQ,OAAQuQ,EAASE,MAAO/Q,KAAKuQ,aAAaQ,OAAS,GAAIC,SAAUhR,KAAKuQ,aAAaS,UACpFhR,KAAKwD,gBAEZkM,EAAexP,UAAU+Q,WAAa,WAClC,OAAOjR,KAAKwB,QAAQnD,uBAAuB,aAAa,IAE5DqR,EAAexP,UAAUgR,YAAc,WACnC,OAAOlR,KAAKwB,QAAQnD,uBAtKb,cAsK8C,IAEzDqR,EAAexP,UAAU4Q,gBAAkB,SAAUxE,GACjD,IAAInI,EAAWnE,KAAKuQ,aAAapM,UAAY,OAC5B,SAAbA,GAAoC,QAAbA,EACvBnE,KAAKwB,QAAQgF,aAAa8F,EAAKtM,KAAKwB,QAAQnD,uBAAuBkR,GAAY,IAG/EvP,KAAKwB,QAAQoC,YAAY0I,GAE7BtM,KAAKwB,QAAQrE,UAAUkJ,IAAI,UAAYlC,EAASqM,gBAEpDd,EAAexP,UAAU0Q,eAAiB,WACtC5Q,KAAKwB,QAAQoC,YAAY5D,KAAKwD,cAAc,QAAUC,UAnL/C,iBAqLXiM,EAAexP,UAAUuQ,WAAa,WAClC,IAAIU,EACJA,EAAOnR,KAAKwB,QAAQgE,UAChBxF,KAAKkG,sBACLiL,EAAOvK,qBAAmBC,SAAS7G,KAAKwB,QAAQgE,YAEpDxF,KAAKwB,QAAQgE,UAAY,GACzBxF,KAAKwB,QAAQoC,YAAY5D,KAAKwD,cAAc,QAAUC,UAAW8L,EAAY/J,UAAW2L,MAE5FzB,EAAexP,UAAUkR,eAAiB,SAAU/M,GAChD,IAAIgN,EAAWrR,KAAKwD,cAAc,QAAUC,UAAW8L,EAAY/J,UAAWnB,IAC9E,GAAIrE,KAAKsG,QAAS,CACd,IAAInB,EAAOnF,KAAKwD,cAAc,QAAUC,UAAW,cAAgBzD,KAAKsG,UACnEtG,KAAKwB,QAAQ2E,YAAYrB,QAI1BK,EAAKhI,UAAUkJ,IAAI,UAAYrG,KAAKiH,aAAauJ,eACvB,QAAtBxQ,KAAKiH,cAAgD,WAAtBjH,KAAKiH,cACpCjH,KAAKwB,QAAQrE,UAAUkJ,IAAI,KAAOrG,KAAKiH,aAAauJ,cAAgB,cALxExQ,KAAKwB,QAAQrE,UAAUkJ,IAAI,cAQ/B,IAAIiL,EAAOD,EAAS9K,WAAW,IAC3B+K,GAA+B,SAAtBtR,KAAKiH,cAAiD,QAAtBjH,KAAKiH,aAI9CoK,EAASzN,YAAYuB,GAHrBkM,EAAS7K,aAAarB,EAAMmM,GAMpCtR,KAAKwB,QAAQoC,YAAYyN,IAE7B3B,EAAexP,UAAUqI,aAAe,WAChCvI,KAAKwB,QAAQrE,UAAUK,SAAS8R,IAGpCtP,KAAKgQ,iBAETN,EAAexP,UAAU8P,cAAgB,SAAUF,EAASG,GACxD,IAAIsB,EAAUvR,KAAKwB,QAAQrE,UACvBqU,EAAaD,EAAQ/T,SAAS,cAClC+T,EAAQlL,IAAIiJ,GACNiC,EAAQ/T,SAAS6R,IACnBoC,cAAYzR,KAAKwB,QAAQtE,cAAc,eAE3C8C,KAAK0R,aAAaC,KAAKC,MAAO3B,GAA8B,EAAGA,EAAe0B,KAAKC,MAAyB,EAAhB5R,KAAK6R,SAAe,IAAOF,KAAKC,MAAO9B,GAAoB,EAAG,EAAG9P,KAAK2P,KAAM,EAAG6B,GAC3KxR,KAAK8R,oBAETpC,EAAexP,UAAUwR,aAAe,SAAUK,EAAW9B,EAAc+B,EAAUlC,EAASmC,EAAatC,EAAMuC,EAAkBV,GAC/H,IAAI/P,EAAQzB,KACZ,IACI,IAAImS,EAAWJ,EAAYC,EACvBI,EAAWpS,KAAK6R,SAAWlC,EAAO,IAClC0C,EAAmBF,EAAYA,EAAWC,EAAWD,EAAWC,EAAWD,EAAWC,EAAY,EACtGpS,KAAKiQ,aAAeA,EAAeA,EAAekC,EAAWE,EAC7DL,EAAWD,EAAYM,EACvBvC,IAAqBqC,EAAWE,GAAoBrS,KAAK6R,SAAW,IAEpE,IAAIlE,GAASmC,QADbmC,GAAgBhC,EAAeiC,GAAoBE,GAAa,GAAiB,MAAZtC,EAAmBA,EAAUmC,EAC/DK,gBAAiBrC,EAAcN,KAAMA,GACxE3P,KAAKuS,YAAcf,EACH,IAAZ1B,EACA9P,KAAKyG,QAAQ,QAASkH,EAAM,SAAUhD,GAClClJ,EAAM+Q,gBAAgB7H,EAAcmF,EAASmC,EAAahC,EAAciC,EAAkBG,EAAkBL,KAG/F,MAAZlC,GAAmBG,IAAiBjQ,KAAK6R,SAC9C7R,KAAKyG,QAAQ,MAAOkH,EAAM,SAAUhD,GAChClJ,EAAM+Q,gBAAgB7H,EAAcmF,EAASmC,EAAahC,EAAciC,EAAkBG,EAAkBL,KAIhHhS,KAAKyG,QAAQ,WAAYkH,EAAM,SAAUhD,GACrClJ,EAAM+Q,gBAAgB7H,EAAcmF,EAASmC,EAAahC,EAAciC,EAAkBG,EAAkBL,KAIxH,MAAOxI,GACH2G,qBAAqBnQ,KAAKoQ,SAC1BpQ,KAAKyG,QAAQ,OAAQ+C,KAG7BkG,EAAexP,UAAUsS,gBAAkB,SAAU7E,EAAM8E,EAAMC,EAAOC,EAAQC,EAASC,EAAQC,GAC7F,IAAIrR,EAAQzB,KACR8P,EAAU2C,EACVR,EAAcS,EACdK,EAAiBF,EACjB5C,EAAe0C,EACfT,EAAmBU,EACnBZ,EAAWc,EACXtB,EAAaxR,KAAKuS,YAClBzC,IAAYnC,EAAKmC,SAAWnC,EAAKmC,UAAYmC,IAC7CnC,EAAUnC,EAAKmC,SAEnB9P,KAAK8P,QAAUA,EACf9P,KAAK2P,KAAOhC,EAAKgC,MACZM,EAAeiC,IAAqBlS,KAAK6R,SAAWlE,EAAKgC,KAAO,MAAS,GAAiB,MAAZG,IAC/E9P,KAAKoQ,QAAU4C,sBAAsB,WAC7BvR,EAAMkP,iBACNlP,EAAMyP,cAAc3S,MAAMiT,EAAa,SAAW,SAAW1B,EAAU,KAE3ErO,EAAMD,QAAQ8F,aAAa,gBAAiBwI,EAAQmD,cAExDhB,EAAcnC,EACdoC,EAAmBjC,GAElBjQ,KAAK+P,WACFE,EAAejQ,KAAK6R,UAAY/B,EAAU,IAC1C9P,KAAKkT,SAAWC,OAAOC,WAAW,WAC9B3R,EAAMiQ,aAAaC,KAAKC,MAAO3B,EAAc+B,EAAUlC,EAASmC,EAAatE,EAAKgC,KAAMuC,EAAkBV,IAC1GxR,KAAK6R,SAAW,IAAOkB,GAG3B/S,KAAKkT,SAAWC,OAAOC,WAAW,WAC9B3R,EAAMwO,aAAexO,EAAMqO,QAAU,EACjCrO,EAAMkP,iBACNlP,EAAMyP,cAAc3S,MAAMiT,EAAa,SAAW,SAAW,MAEjE/P,EAAMD,QAAQ8F,aAAa,gBAAiB,KAC5C7F,EAAM4R,YACP,OAIf3D,EAAexP,UAAU4R,iBAAmB,WACxC,IAAIrQ,EAAQzB,KACRsM,EAAMtM,KAAKwB,QAAQnD,uBAAuBkR,GAAY,GACpB,SAAlCvP,KAAKsT,kBAAkBC,OACvB,IAAKC,gBAAeC,QAAQnH,GACxBuF,SAA+C,IAApC7R,KAAKsT,kBAAkBzB,UAAoC,WAAlB6B,gBAA8B,IAAM1T,KAAKsT,kBAAkBzB,SAC/G8B,KAAM,WAAa3T,KAAKsT,kBAAkBC,OAC1CK,eAAgB5T,KAAKsT,kBAAkBO,OACvCC,MAAO,WACiC,WAAhCrS,EAAM8O,aAAapM,UACnB1C,EAAMsS,kBAGdC,IAAK,WACD1H,EAAInP,UAAUkJ,IAAI,oBAIU,WAA/BrG,KAAKuQ,aAAapM,UACvBnE,KAAK+T,kBAGbrE,EAAexP,UAAUoQ,eAAiB,WACtC,IAAIiB,EAAUvR,KAAKwB,QAAQrE,UACvBqU,EAAaD,EAAQ/T,SAAS,cAClC+T,EAAQlL,IAAIiJ,GAEZ,IAAK,IAAIjS,EAAI2C,KAAK8P,QAASzS,EADf,IAC0BA,KAClCA,GAAK,IACG,MACJA,EAAI,KAEJ2C,KAAK2Q,iBACL3Q,KAAKkR,cAAc3S,MAAMiT,EAAa,SAAW,SAAYxR,KAAK8P,QAAU,IAAQzS,EAAI,IAAO,QAGvG2C,KAAKwB,QAAQ8F,aAAa,gBAAiB,KAC3CtH,KAAKqT,WACL,IAAI1F,GAASgC,KAAM3P,KAAK2P,KAAM2C,gBAAiBtS,KAAKiQ,aAAcH,QAAS,KAC3EmE,aAAajU,KAAKkT,UAClBlT,KAAKyG,QAAQ,MAAOkH,GACpB3N,KAAKiQ,aAAejQ,KAAK8P,QAAU,GAEvCJ,EAAexP,UAAU6T,eAAiB,WACtC,IAAIzH,EAAMtM,KAAKwB,QAAQnD,uBAAuBkR,GAAY,GACtDsB,EAAU7Q,KAAKiR,aACnBJ,EAAQtS,MAAMwS,MAAQmD,KAAKC,IAAItD,EAAQ7F,YAAasB,EAAItB,aAAe,KACvE6F,EAAQtS,MAAM6V,OAASF,KAAKC,IAAItD,EAAQwD,aAAc/H,EAAI+H,cAAgB,KAC1E/H,EAAInP,UAAUkJ,IAAI,mBAEtBqJ,EAAexP,UAAUmT,SAAW,WAChC,IAAIlC,EAAOnR,KAAKwB,QAAQnD,uBAAuBkR,GAAY,GAQ3D,GAPMvP,KAAKwB,QAAQrE,UAAUK,SAAS6R,IAClCiF,cAAYtU,KAAKwB,QAAQtE,cAAc,eAE3C8C,KAAKwB,QAAQrE,UAAUC,OAAOkS,GACQ,SAAlCtP,KAAKsT,kBAAkBC,QACvBpC,EAAKhU,UAAUC,OAAO,iBAES,WAA/B4C,KAAKuQ,aAAapM,SAAuB,CACzC,IAAImI,EAAMtM,KAAKiR,aACfE,EAAKhU,UAAUC,OAAO,kBACtBkP,EAAI/N,MAAMwS,MAAQ,OAClBzE,EAAI/N,MAAM6V,OAAS,SAG3B1E,EAAexP,UAAUqU,YAAc,WACnC,IAAIpD,EAAOnR,KAAKwB,QAAQnD,uBAAuBkR,GAAY,GACvDiF,EAAWxU,KAAKwB,QAAQnD,uBAAuB,cAAc,IAC7D8S,EAAK5K,WAAW,IAA6B,SAAtBvG,KAAKiH,cAAiD,QAAtBjH,KAAKiH,aAI5DkK,EAAKvN,YAAY4Q,GAHjBrD,EAAK3K,aAAagO,EAAUrD,EAAK5K,WAAW,KAMpDmJ,EAAexP,UAAUmN,QAAU,WAC/B1I,aAAW3E,KAAKwB,SACZuE,aAAc/F,KAAKwB,QAAQ2E,YAAc,YAAasO,gBAAiB,IAAKC,gBAAiB,MAAOC,gBAAiB,OAG7HjF,EAAexP,UAAUqC,WAAa,WAClC+F,eAAajC,IAAIrG,KAAKwB,QAAS,QAASxB,KAAKuI,aAAcvI,OAE/D0P,EAAexP,UAAUiI,aAAe,WACpCG,eAAalL,OAAO4C,KAAKwB,QAAS,QAASxB,KAAKuI,eAUpDmH,EAAexP,UAAUuL,kBAAoB,SAAUC,EAASC,GAC5D,IAAIW,EAAMtM,KAAKwB,QACXoT,GAAa,EACH5U,KAAKwB,QAAQtE,cAAc,mBAAmBC,UAChDK,SAAS,iBACjBoX,GAAa,GAEjB3T,EAAOf,UAAUuL,kBAAkBrN,KAAK4B,KAAM0L,EAASC,GACvD,IAAK,IAAIxP,EAAK,EAAGC,EAAKC,OAAOC,KAAKoP,GAAUvP,EAAKC,EAAGG,OAAQJ,IAAM,CAE9D,OADWC,EAAGD,IAEV,IAAK,UACD6D,KAAKyQ,aACLzQ,KAAK0Q,gBACDkE,IACAnD,cAAYzR,KAAKwB,QAAQtE,cAAc,eACvC0X,GAAa,GAEb5U,KAAK2Q,gBACL3Q,KAAK4Q,iBAETtE,EAAIhF,aAAa,aAAcgF,EAAInG,YAAc,aACjD,MACJ,IAAK,UACIwF,EAAQrF,SACTtG,KAAKuU,cAET,MACJ,IAAK,eACDvU,KAAKuU,cACL,MACJ,IAAK,iBACG7I,EAAQiF,eACR3Q,KAAK4Q,iBAGLxT,SAAO4C,KAAKkR,eAEhB,MACJ,IAAK,eACGxF,EAAQ6E,aAAapM,WACrBmI,EAAInP,UAAUC,OAAO,UAAYuO,EAAQ4E,aAAapM,SAASqM,eAC/DxQ,KAAK8Q,gBAAgB9Q,KAAKiR,gBAE1BvF,EAAQ6E,aAAaS,UAAYtF,EAAQ6E,aAAaQ,SACtDzE,EAAIuI,YAAY7U,KAAKiR,cACrBjR,KAAK0Q,oBAazBhB,EAAexP,UAAU6L,QAAU,WAC/B/L,KAAKwB,QAAQ7D,SAEjByC,GACIe,YAAS,IACVuO,EAAexP,UAAW,sBAAkB,GAC/CE,GACIe,WAAS,MACVuO,EAAexP,UAAW,gBAAY,GACzCE,GACIe,WAAS,SACVuO,EAAexP,UAAW,oBAAgB,GAC7CE,GACIe,WAAS,KACVuO,EAAexP,UAAW,eAAW,GACxCE,GACIe,YAAS,IACVuO,EAAexP,UAAW,gBAAY,GACzCE,GACIe,YAAS,IACVuO,EAAexP,UAAW,iBAAa,GAC1CE,GACIe,WAAS,KACVuO,EAAexP,UAAW,gBAAY,GACzCE,GACIe,WAAS,KACVuO,EAAexP,UAAW,eAAW,GACxCE,GACIe,YAAS,IACVuO,EAAexP,UAAW,gBAAY,GACzCE,GACIe,YAAS,IACVuO,EAAexP,UAAW,2BAAuB,GACpDE,GACI0U,aAAYtF,IACbE,EAAexP,UAAW,oBAAgB,GAC7CE,GACI0U,aAAYrF,IACbC,EAAexP,UAAW,yBAAqB,GAClDE,GACI6L,WACDyD,EAAexP,UAAW,eAAW,GACxCE,GACI6L,WACDyD,EAAexP,UAAW,aAAS,GACtCE,GACI6L,WACDyD,EAAexP,UAAW,gBAAY,GACzCE,GACI6L,WACDyD,EAAexP,UAAW,WAAO,GACpCE,GACI6L,WACDyD,EAAexP,UAAW,YAAQ,GACrCwP,EAAiBtP,GACb8L,yBACDwD,IAEL1I,+IC3fF,SAAkCqC,EAAU9H,EAASiC,QACjC,IAAZjC,IAAsBA,MAC1B,IAAIwT,EACAvH,EACAwH,EACA1H,EACA1O,oBAAkB4E,KAClBA,EAAgByR,iBAEpB,IAAItI,EAAUjJ,SAASxG,cAAcmM,GACrC3L,YAAUiP,IAAW,cAAe,UACpCA,EAAQrF,aAAa,OAAQ,SAC7B,IAAI4N,EAASvI,EAAQpP,SACrBgE,EAAQ4T,QAAU5T,EAAQ4T,YAC1B,IAAK,IAAI9X,EAAI,EAAGyF,EAAI,EAAGA,EAAIoS,EAAO3Y,OAAQc,IAAKyF,IAC3CiS,EAAQG,EAAOpS,GAEE,QADjBwK,EAAW/L,EAAQ4T,QAAQ9X,MAED,WAAlB0X,EAAMlL,QACN2D,EAAUuH,GAGVvH,EAAUhK,EAAc,UACxBwR,EAAYE,EAAOpS,EAAI,IAEnB6J,EAAQnG,aAAagH,EAASwH,GAG9BrI,EAAQ/I,YAAY4J,GAEpBuH,EAAM1R,IACNmK,EAAQlG,aAAa,MAAOyN,EAAM1R,IAElCiK,GAAYA,EAAShL,WACrByS,EAAMzS,UAAW,GAErBQ,KAEAvB,EAAQqD,UAAY0I,IAAaA,EAAS1I,WAC1C0I,EAAS1I,SAAWrD,EAAQqD,UAEhC,IAAIoC,SAAOsG,MAAgBE,IAGnC,OAAOb"}
|