@syncfusion/ej2-splitbuttons 20.1.47 → 20.2.36

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.
Files changed (109) hide show
  1. package/dist/ej2-splitbuttons.umd.min.js +2 -2
  2. package/dist/ej2-splitbuttons.umd.min.js.map +1 -1
  3. package/dist/es6/ej2-splitbuttons.es2015.js +11 -3
  4. package/dist/es6/ej2-splitbuttons.es2015.js.map +1 -1
  5. package/dist/es6/ej2-splitbuttons.es5.js +11 -3
  6. package/dist/es6/ej2-splitbuttons.es5.js.map +1 -1
  7. package/dist/global/ej2-splitbuttons.min.js +2 -2
  8. package/dist/global/ej2-splitbuttons.min.js.map +1 -1
  9. package/dist/global/index.d.ts +1 -1
  10. package/dist/ts/button-group/button-group.ts +84 -0
  11. package/dist/ts/common/common.ts +203 -0
  12. package/dist/ts/drop-down-button/drop-down-button.ts +806 -0
  13. package/dist/ts/progress-button/progress-button.ts +689 -0
  14. package/dist/ts/split-button/split-button.ts +501 -0
  15. package/helpers/e2e/dropdownbuttonHelper.js +55 -38
  16. package/helpers/e2e/index.js +10 -8
  17. package/helpers/e2e/progressbuttonHelper.js +52 -35
  18. package/helpers/e2e/splitbuttonHelper.js +58 -41
  19. package/package.json +7 -7
  20. package/src/drop-down-button/drop-down-button.js +11 -3
  21. package/styles/bootstrap-dark.css +4 -338
  22. package/styles/bootstrap.css +4 -333
  23. package/styles/bootstrap4.css +12 -342
  24. package/styles/bootstrap5-dark.css +20 -331
  25. package/styles/bootstrap5.css +18 -329
  26. package/styles/button-group/_fusionnew-definition.scss +31 -0
  27. package/styles/button-group/_layout.scss +1 -1
  28. package/styles/button-group/_material3-definition.scss +31 -0
  29. package/styles/button-group/_theme.scss +48 -12
  30. package/styles/button-group/bootstrap-dark.css +1 -114
  31. package/styles/button-group/bootstrap.css +1 -108
  32. package/styles/button-group/bootstrap4.css +5 -119
  33. package/styles/button-group/bootstrap5-dark.css +15 -108
  34. package/styles/button-group/bootstrap5.css +13 -106
  35. package/styles/button-group/fabric-dark.css +1 -114
  36. package/styles/button-group/fabric.css +1 -114
  37. package/styles/button-group/fluent-dark.css +1 -114
  38. package/styles/button-group/fluent.css +1 -114
  39. package/styles/button-group/highcontrast-light.css +1 -114
  40. package/styles/button-group/highcontrast.css +1 -126
  41. package/styles/button-group/material-dark.css +1 -114
  42. package/styles/button-group/material.css +1 -115
  43. package/styles/button-group/tailwind-dark.css +9 -114
  44. package/styles/button-group/tailwind.css +9 -114
  45. package/styles/drop-down-button/_fusionnew-definition.scss +51 -0
  46. package/styles/drop-down-button/_layout.scss +4 -2
  47. package/styles/drop-down-button/_material3-definition.scss +51 -0
  48. package/styles/drop-down-button/bootstrap-dark.css +2 -36
  49. package/styles/drop-down-button/bootstrap.css +2 -36
  50. package/styles/drop-down-button/bootstrap4.css +3 -36
  51. package/styles/drop-down-button/bootstrap5-dark.css +4 -35
  52. package/styles/drop-down-button/bootstrap5.css +4 -35
  53. package/styles/drop-down-button/fabric-dark.css +2 -36
  54. package/styles/drop-down-button/fabric.css +2 -36
  55. package/styles/drop-down-button/fluent-dark.css +2 -36
  56. package/styles/drop-down-button/fluent.css +2 -36
  57. package/styles/drop-down-button/highcontrast-light.css +2 -36
  58. package/styles/drop-down-button/highcontrast.css +2 -36
  59. package/styles/drop-down-button/icons/_fusionnew.scss +10 -0
  60. package/styles/drop-down-button/icons/_material3.scss +10 -0
  61. package/styles/drop-down-button/material-dark.css +2 -36
  62. package/styles/drop-down-button/material.css +2 -36
  63. package/styles/drop-down-button/tailwind-dark.css +4 -36
  64. package/styles/drop-down-button/tailwind.css +4 -36
  65. package/styles/fabric-dark.css +4 -338
  66. package/styles/fabric.css +4 -338
  67. package/styles/fluent-dark.css +5 -339
  68. package/styles/fluent.css +5 -339
  69. package/styles/highcontrast-light.css +4 -338
  70. package/styles/highcontrast.css +4 -350
  71. package/styles/material-dark.css +4 -338
  72. package/styles/material.css +4 -339
  73. package/styles/progress-button/_fluent-definition.scss +1 -1
  74. package/styles/progress-button/_fusionnew-definition.scss +21 -0
  75. package/styles/progress-button/_material3-definition.scss +21 -0
  76. package/styles/progress-button/bootstrap-dark.css +3 -120
  77. package/styles/progress-button/bootstrap.css +3 -120
  78. package/styles/progress-button/bootstrap4.css +3 -120
  79. package/styles/progress-button/bootstrap5-dark.css +3 -124
  80. package/styles/progress-button/bootstrap5.css +3 -124
  81. package/styles/progress-button/fabric-dark.css +3 -120
  82. package/styles/progress-button/fabric.css +3 -120
  83. package/styles/progress-button/fluent-dark.css +4 -125
  84. package/styles/progress-button/fluent.css +4 -125
  85. package/styles/progress-button/highcontrast-light.css +3 -120
  86. package/styles/progress-button/highcontrast.css +3 -120
  87. package/styles/progress-button/material-dark.css +3 -120
  88. package/styles/progress-button/material.css +3 -120
  89. package/styles/progress-button/tailwind-dark.css +3 -124
  90. package/styles/progress-button/tailwind.css +3 -124
  91. package/styles/split-button/_fusionnew-definition.scss +25 -0
  92. package/styles/split-button/_material3-definition.scss +25 -0
  93. package/styles/split-button/bootstrap-dark.css +1 -71
  94. package/styles/split-button/bootstrap.css +1 -71
  95. package/styles/split-button/bootstrap4.css +4 -70
  96. package/styles/split-button/bootstrap5-dark.css +1 -67
  97. package/styles/split-button/bootstrap5.css +1 -67
  98. package/styles/split-button/fabric-dark.css +1 -71
  99. package/styles/split-button/fabric.css +1 -71
  100. package/styles/split-button/fluent-dark.css +1 -67
  101. package/styles/split-button/fluent.css +1 -67
  102. package/styles/split-button/highcontrast-light.css +1 -71
  103. package/styles/split-button/highcontrast.css +1 -71
  104. package/styles/split-button/material-dark.css +1 -71
  105. package/styles/split-button/material.css +1 -71
  106. package/styles/split-button/tailwind-dark.css +1 -71
  107. package/styles/split-button/tailwind.css +1 -71
  108. package/styles/tailwind-dark.css +14 -343
  109. package/styles/tailwind.css +14 -343
@@ -1 +1 @@
1
- {"version":3,"file":"ej2-splitbuttons.min.js","sources":["../../src/common/common.js","../../src/button-group/button-group.js","../../src/drop-down-button/drop-down-button.js","../../src/split-button/split-button.js","../../src/progress-button/progress-button.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) {\n var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon'));\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","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","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 } 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 {\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 (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['aria-owns'] = this.getPopUpElement().id,\n _a['type'] = 'button',\n _a['aria-label'] = this.element.textContent + ' dropdownbutton',\n _a));\n if (this.cssClass) {\n addClass([div], this.cssClass.split(' '));\n }\n this.isPopupCreated = true;\n };\n DropDownButton.prototype.getTargetElement = function () {\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 = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\n li = this.createElement('li', {\n innerHTML: item.url ? '' : tempItem,\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: { 'role': 'menuItem', 'tabindex': '-1' },\n id: item.id ? item.id : getUniqueID('e-' + this.getModuleName() + '-item')\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 if ((this.target && !this.isColorPicker()) || !this.createPopupOnClick) {\n this.createPopup();\n }\n else {\n this.isPopupCreated = false;\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) {\n this.dropDown = undefined;\n }\n }\n this.isPopupCreated = false;\n };\n DropDownButton.prototype.getPopUpElement = function () {\n var val = null;\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 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 }\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 }\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.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.clickHandler = function (e) {\n var trgt = e.target;\n if (closest(trgt, '[id=\"' + this.element.id + '\"]')) {\n if (!this.createPopupOnClick || (this.target && !this.isColorPicker())) {\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 }\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 }\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 ul_1.focus();\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 var popupElement = this.getPopUpElement();\n if (popupElement) {\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\n }\n this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.popupUnWireEvents();\n var ul_2 = _this.getULElement();\n var selectedLi = ul_2.querySelector('.e-selected');\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 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()) {\n if (_this.createPopupOnClick) {\n _this.destroyPopup();\n }\n }\n if (_this.target) {\n _this.isPopupCreated = _this.createPopupOnClick ? false : true;\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) {\n var arrowSpan = this.element.querySelector('span.e-caret');\n classList(arrowSpan, ['e-icon-bottom'], ['e-icon-right']);\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.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 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.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 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 this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element];\n this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right');\n };\n SplitButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-expanded': 'false', 'aria-haspopup': 'true',\n 'aria-label': this.element.textContent + ' 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.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 }\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 }\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.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 }\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 } 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);\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,\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);\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);\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"],"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","blankIconList","slice","call","getElementsByClassName","iconLi","isNullOrUndefined","cssProp","icon","enableRtl","padding","margin","size","parseInt","getComputedStyle","fontSize","paddingLeft","forEach","style","createButtonGroup","selector","options","createElement","child","btnElem","nextChild","btnModel","internalCreateElement","wrapper","document","setAttribute","childs","buttons","j","tagName","insertBefore","appendChild","id","disabled","cssClass","Button","__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","DISABLED","FOCUS","ICON","ITEM","POPUP","RTL","SEPARATOR","VERTICAL","DropDownButton","element","_this","isPopupCreated","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","closePopup","render","initialize","wireEvents","renderComplete","addItems","items","text","newItem","idx","splice","createItems","removeItems","isUniqueId","refresh","len_1","getULElement","createPopup","div","className","body","dropDown","Popup","relateTo","collision","X","Y","position","targetType","content","getTargetElement","refreshPosition","hide","attributes","getPopUpElement","textContent","split","select","appendItems","span","item","eventArgs","showIcon","hasIcon","innerHTML","attrs","role","tabindex","tempItem","SanitizeHtmlHelper","sanitize","url","separator","getUniqueID","getModuleName","createAnchor","add","iconCss","childNodes","trigger","field","href","button","iconPosition","enablePersistence","appendTo","appendArrowSpan","setActiveElem","isColorPicker","createPopupOnClick","prevElem","previousSibling","elem","activeElem","val","destroy","classList_1","detach","removeClass","getAttribute","removeAttribute","popupUnWireEvents","destroyPopup","unWireEvents","popupEle","getElementById","EventHandler","clickHandler","keyBoardHandler","undefined","delegateMousedownHandler","mousedownHandler","bind","popupWireEvents","popupElement","rippleFn","rippleEffect","parentElement","e","altKey","keyEventHandler","preventDefault","getLI","closest","trgt","popupElem","splitButton","getComponent","isReact","appendReactElement","beforeOpenArgs","event","cancel","observedArgs","ul_1","show","openArgs","focusEle","beforeCloseArgs","ul_2","closeArgs","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Event","NotifyPropertyChanges","Component","TAGNAME","SplitButton","ele","ejInstance","getValue","btn","type","nodeName","nodeValue","parentNode","setValue","initWrapper","createPrimaryButton","renderControl","createSecondaryButton","secondaryBtnObj","setAria","primaryBtnObj","dropDownBtnModel","beforeItemRender","args","open","close","beforeOpen","callBackPromise","Deferred","resolve","beforeClose","aria-expanded","aria-haspopup","aria-label","aria-owns","concat","primaryBtnClickHandler","KeyboardEvents","keyAction","btnKeyBoardHandler","keyConfigs","altdownarrow","getInstance","action","promise","Promise","reject","catch","then","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","enableHtmlSanitizer","setContentIcon","contElem","trim","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","name","timingFunction","easing","begin","setSpinnerSize","end","clearTimeout","Math","max","offsetWidth","height","offsetHeight","hideSpinner","setIconSpan","iconSpan","aria-valuemin","aria-valuemax","aria-valuenow","isSpinning","removeChild","Complex"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-splitbuttons.min.js","sources":["../../src/common/common.js","../../src/button-group/button-group.js","../../src/drop-down-button/drop-down-button.js","../../src/split-button/split-button.js","../../src/progress-button/progress-button.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) {\n var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon'));\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","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","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 } 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 {\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 (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['aria-owns'] = this.getPopUpElement().id,\n _a['type'] = 'button',\n _a['aria-label'] = this.element.textContent ? this.element.textContent : 'dropdownbutton',\n _a));\n if (this.cssClass) {\n addClass([div], this.cssClass.split(' '));\n }\n this.isPopupCreated = true;\n };\n DropDownButton.prototype.getTargetElement = function () {\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: { '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 if ((this.target && !this.isColorPicker()) || !this.createPopupOnClick) {\n this.createPopup();\n }\n else {\n this.isPopupCreated = false;\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) {\n this.dropDown = undefined;\n }\n }\n this.isPopupCreated = false;\n };\n DropDownButton.prototype.getPopUpElement = function () {\n var val = null;\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 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 }\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 }\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.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.clickHandler = function (e) {\n var trgt = e.target;\n if (closest(trgt, '[id=\"' + this.element.id + '\"]')) {\n if (!this.createPopupOnClick || (this.target && !this.isColorPicker())) {\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 ul_1.focus();\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 var popupElement = this.getPopUpElement();\n if (popupElement) {\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\n }\n this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n _this.popupUnWireEvents();\n var ul_2 = _this.getULElement();\n var selectedLi = ul_2.querySelector('.e-selected');\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 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()) {\n if (_this.createPopupOnClick) {\n _this.destroyPopup();\n }\n }\n if (_this.target) {\n _this.isPopupCreated = _this.createPopupOnClick ? false : true;\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) {\n var arrowSpan = this.element.querySelector('span.e-caret');\n classList(arrowSpan, ['e-icon-bottom'], ['e-icon-right']);\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.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 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.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 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 this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element];\n this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right');\n };\n SplitButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-expanded': 'false', 'aria-haspopup': 'true',\n 'aria-label': this.element.textContent + ' 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.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 }\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 }\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.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 }\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 } 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);\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,\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);\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);\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"],"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","blankIconList","slice","call","getElementsByClassName","iconLi","isNullOrUndefined","cssProp","icon","enableRtl","padding","margin","size","parseInt","getComputedStyle","fontSize","paddingLeft","forEach","style","createButtonGroup","selector","options","createElement","child","btnElem","nextChild","btnModel","internalCreateElement","wrapper","document","setAttribute","childs","buttons","j","tagName","insertBefore","appendChild","id","disabled","cssClass","Button","__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","DISABLED","FOCUS","ICON","ITEM","POPUP","RTL","SEPARATOR","VERTICAL","DropDownButton","element","_this","isPopupCreated","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","closePopup","render","initialize","wireEvents","renderComplete","addItems","items","text","newItem","idx","splice","createItems","removeItems","isUniqueId","refresh","len_1","getULElement","createPopup","div","className","body","dropDown","Popup","relateTo","collision","X","Y","position","targetType","content","getTargetElement","refreshPosition","hide","attributes","getPopUpElement","textContent","split","select","appendItems","span","item","eventArgs","showIcon","hasIcon","innerHTML","attrs","role","tabindex","tempItem","url","separator","aria-label","getUniqueID","getModuleName","enableHtmlSanitizer","createAnchor","add","iconCss","childNodes","trigger","field","SanitizeHtmlHelper","sanitize","href","button","iconPosition","enablePersistence","appendTo","appendArrowSpan","setActiveElem","isColorPicker","createPopupOnClick","prevElem","previousSibling","elem","activeElem","val","destroy","classList_1","detach","removeClass","getAttribute","removeAttribute","popupUnWireEvents","destroyPopup","unWireEvents","popupEle","getElementById","EventHandler","clickHandler","keyBoardHandler","undefined","delegateMousedownHandler","mousedownHandler","bind","popupWireEvents","popupElement","rippleFn","rippleEffect","parentElement","e","altKey","keyEventHandler","preventDefault","getLI","closest","trgt","popupElem","splitButton","getComponent","isReact","appendReactElement","renderReactTemplates","beforeOpenArgs","event","cancel","observedArgs","ul_1","show","openArgs","focusEle","beforeCloseArgs","ul_2","closeArgs","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Event","NotifyPropertyChanges","Component","TAGNAME","SplitButton","ele","ejInstance","getValue","btn","type","nodeName","nodeValue","parentNode","setValue","initWrapper","createPrimaryButton","renderControl","createSecondaryButton","secondaryBtnObj","setAria","primaryBtnObj","dropDownBtnModel","beforeItemRender","args","open","close","beforeOpen","callBackPromise","Deferred","resolve","beforeClose","aria-expanded","aria-haspopup","aria-owns","concat","primaryBtnClickHandler","KeyboardEvents","keyAction","btnKeyBoardHandler","keyConfigs","altdownarrow","getInstance","action","promise","Promise","reject","catch","then","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","trim","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","name","timingFunction","easing","begin","setSpinnerSize","end","clearTimeout","Math","max","offsetWidth","height","offsetHeight","hideSpinner","setIconSpan","iconSpan","aria-valuemin","aria-valuemax","aria-valuenow","isSpinning","removeChild","Complex"],"mappings":"uEAyBA,SAAgBA,GAASC,EAAOC,GAE5B,IAAK,GADDC,GAAMC,YAAWH,GACZI,EAAK,EAAGC,EAAKC,OAAOC,KAAKL,GAAME,EAAKC,EAAGG,OAAQJ,IAAM,CAC1D,GAAIK,GAAOJ,EAAGD,EACV,GAAQM,QAAQD,GAAQ,GACxBE,eAAaT,EAAKO,GAG1B,MAAOP,GAOX,QAAgBU,GAAiBC,EAAIC,GACjC,GAAIC,GAAyB,KAAZD,EAAiB,EAAID,EAAGG,kBAAoB,EACzDC,EAAQF,EAERG,EAAaL,EAAGM,cAAc,cAC9BD,IACAA,EAAWE,UAAUC,OAAO,aAEhC,KAAK,GAAIC,GAAI,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,QAASF,GAAUb,EAAIgB,EAAIC,EAAOhB,EAASiB,GAgBvC,OAfc,KAAVA,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,MAAOc,IAAS,CAEpBA,GAAQJ,EAAUb,EAAIgB,EAAIC,EAAOhB,EAASiB,GAE9C,MAAOD,GAMX,QAAgBE,GAAkBC,GAC9B,GAAIC,MAAmBC,MAAMC,KAAKH,EAAMI,uBAAuB,gBAC/D,IAAKH,EAAc1B,OAAnB,CAGA,GAAI8B,GAASL,EAAMd,cAAc,+CACjC,KAAIoB,oBAAkBD,GAAtB,CAGIA,EAAOlB,UAAUK,SAAS,WAC1Ba,EAASA,EAAOnB,cAAc,eAElC,IACIqB,GADAC,EAAOH,EAAOnB,cAAc,gBAE5BuB,EAAYT,EAAMb,UAAUK,SAAS,QAErCe,GADAE,GACYC,QAAS,eAAgBC,OAAQ,eAGjCD,QAAS,cAAeC,OAAQ,cAGhD,IAAIC,GAAOC,SAASC,iBAAiBN,GAAMO,SAAU,IAAMF,SAAsBC,iBAAiBN,GAAMD,EAAQI,QAAmD,IAC7JE,SAASC,iBAAiBT,GAAQW,YAAa,IAAM,IAC3Df,GAAcgB,QAAQ,SAAUrB,GACxBA,EAAGT,UAAUK,SAAS,SACtBI,EAAGV,cAAc,eAAegC,MAAMX,EAAQG,SAAWE,EAGzDhB,EAAGsB,MAAMX,EAAQG,SAAWE,MCzGxC,QAAgBO,GAAkBC,EAAUC,EAASC,OACjC,KAAZD,IAAsBA,KAC1B,IAAIE,GACAC,EACAC,EACAC,CACApB,qBAAkBgB,KAClBA,EAAgBK,gBAEpB,IAAIC,GAAUC,SAAS3C,cAAckC,EACrC1B,aAAUkC,IAAW,cAAe,UACpCA,EAAQE,aAAa,OAAQ,QAC7B,IAAIC,GAASH,EAAQrC,QACrB8B,GAAQW,QAAUX,EAAQW,WAC1B,KAAK,GAAI3C,GAAI,EAAG4C,EAAI,EAAGA,EAAIF,EAAOxD,OAAQc,IAAK4C,IAC3CV,EAAQQ,EAAOE,GAEE,QADjBP,EAAWL,EAAQW,QAAQ3C,MAED,WAAlBkC,EAAMW,QACNV,EAAUD,GAGVC,EAAUF,EAAc,UACxBG,EAAYM,EAAOE,EAAI,IAEnBL,EAAQO,aAAaX,EAASC,GAG9BG,EAAQQ,YAAYZ,GAEpBD,EAAMc,IACNb,EAAQM,aAAa,MAAOP,EAAMc,IAElCX,GAAYA,EAASY,WACrBf,EAAMe,UAAW,GAErBL,KAEAZ,EAAQkB,UAAYb,IAAaA,EAASa,WAC1Cb,EAASa,SAAWlB,EAAQkB,UAEhC,GAAIC,UAAOd,MAAgBF,GAGnC,OAAOI,GD9EX,GAAIa,GAAwC,WACxC,GAAIC,GAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrE,OAAOwE,iBAChBC,uBAA2BC,QAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,GAAII,KAAKJ,GAAOA,EAAEK,eAAeD,KAAIL,EAAEK,GAAKJ,EAAEI,MACpDL,EAAGC,GAE5B,OAAO,UAAUD,EAAGC,GAEhB,QAASM,KAAOC,KAAKC,YAAcT,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEU,UAAkB,OAANT,EAAavE,OAAOiF,OAAOV,IAAMM,EAAGG,UAAYT,EAAES,UAAW,GAAIH,QAGnFK,EAA0C,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HhB,GAAvHiB,EAAIC,UAAUtF,OAAQuF,EAAIF,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOtF,OAAO0F,yBAAyBN,EAAQC,GAAOC,CACrH,IAAuB,gBAAZK,UAAoD,kBAArBA,SAAQC,SAAyBH,EAAIE,QAAQC,SAAST,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAItE,GAAImE,EAAWjF,OAAS,EAAGc,GAAK,EAAGA,KAASsD,EAAIa,EAAWnE,MAAIyE,GAAKF,EAAI,EAAIjB,EAAEmB,GAAKF,EAAI,EAAIjB,EAAEc,EAAQC,EAAKI,GAAKnB,EAAEc,EAAQC,KAASI,EAChJ,OAAOF,GAAI,GAAKE,GAAKzF,OAAO6F,eAAeT,EAAQC,EAAKI,GAAIA,GAkI5DK,EAAsB,SAAUC,GAEhC,QAASD,KACL,MAAkB,QAAXC,GAAmBA,EAAOC,MAAMlB,KAAMU,YAAcV,KAoB/D,MAtBAV,GAAU0B,EAAMC,GAIhBb,GACIe,WAAS,KACVH,EAAKd,UAAW,cAAW,IAC9BE,GACIe,WAAS,KACVH,EAAKd,UAAW,SAAM,IACzBE,GACIe,YAAS,IACVH,EAAKd,UAAW,gBAAa,IAChCE,GACIe,WAAS,KACVH,EAAKd,UAAW,WAAQ,IAC3BE,GACIe,WAAS,KACVH,EAAKd,UAAW,UAAO,IAC1BE,GACIe,YAAS,IACVH,EAAKd,UAAW,eAAY,IACxBc,GACTI,iBE3KE9B,EAAwC,WACxC,GAAIC,GAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrE,OAAOwE,iBAChBC,uBAA2BC,QAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,GAAII,KAAKJ,GAAOA,EAAEK,eAAeD,KAAIL,EAAEK,GAAKJ,EAAEI,MACpDL,EAAGC,GAE5B,OAAO,UAAUD,EAAGC,GAEhB,QAASM,KAAOC,KAAKC,YAAcT,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEU,UAAkB,OAANT,EAAavE,OAAOiF,OAAOV,IAAMM,EAAGG,UAAYT,EAAES,UAAW,GAAIH,QAGnFK,EAA0C,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HhB,GAAvHiB,EAAIC,UAAUtF,OAAQuF,EAAIF,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOtF,OAAO0F,yBAAyBN,EAAQC,GAAOC,CACrH,IAAuB,gBAAZK,UAAoD,kBAArBA,SAAQC,SAAyBH,EAAIE,QAAQC,SAAST,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAItE,GAAImE,EAAWjF,OAAS,EAAGc,GAAK,EAAGA,KAASsD,EAAIa,EAAWnE,MAAIyE,GAAKF,EAAI,EAAIjB,EAAEmB,GAAKF,EAAI,EAAIjB,EAAEc,EAAQC,EAAKI,GAAKnB,EAAEc,EAAQC,KAASI,EAChJ,OAAOF,GAAI,GAAKE,GAAKzF,OAAO6F,eAAeT,EAAQC,EAAKI,GAAIA,GAU5DU,GACAC,SAAU,aACVC,MAAO,YACPC,KAAM,cACNC,KAAM,SACNC,MAAO,mBACPC,IAAK,QACLC,UAAW,cACXC,SAAU,cAeVC,EAAgC,SAAUb,GAS1C,QAASa,GAAe5D,EAAS6D,GAC7B,GAAIC,GAAQf,EAAOjE,KAAKgD,KAAM9B,EAAS6D,IAAY/B,IAEnD,OADAgC,GAAMC,gBAAiB,EAChBD,EA+pBX,MA1qBA1C,GAAUwC,EAAgBb,GAa1Ba,EAAe5B,UAAUgC,UAAY,aAQrCJ,EAAe5B,UAAUiC,eAAiB,WACtC,MAAOnC,MAAKoC,kBAOhBN,EAAe5B,UAAUmC,OAAS,WAC1BrC,KAAKsC,UACLtC,KAAKuC,YAGLvC,KAAKwC,cASbV,EAAe5B,UAAUuC,OAAS,WAC9BzC,KAAK0C,aACA1C,KAAKb,UACNa,KAAK2C,aAET3C,KAAK4C,kBAUTd,EAAe5B,UAAU2C,SAAW,SAAUC,EAAOC,GAGjD,IAAK,GAFDC,GACAC,EAAMjD,KAAK8C,MAAM1H,OACZ0D,EAAI,EAAG3C,EAAM6D,KAAK8C,MAAM1H,OAAQ0D,EAAI3C,EAAK2C,IAC9C,GAAIiE,IAAS/C,KAAK8C,MAAMhE,GAAGiE,KAAM,CAC7BE,EAAMnE,CACN,OAGR,IAAK,GAAI5C,GAAI4G,EAAM1H,OAAS,EAAGc,GAAK,EAAGA,IAEnC8G,EAAU,GAAIhC,GAAKhB,KAAM,QAAS8C,EAAM5G,IAAI,GAC5C8D,KAAK8C,MAAMI,OAAOD,EAAK,EAAGD,EAEzBhD,MAAKsC,WACNtC,KAAKmD,eAUbrB,EAAe5B,UAAUkD,YAAc,SAAUN,EAAOO,GAEpD,IAAK,GADDC,IAAU,EACLpH,EAAI,EAAGC,EAAM2G,EAAM1H,OAAQc,EAAIC,EAAKD,IACzC,IAAK,GAAI4C,GAAI,EAAGyE,EAAQvD,KAAK8C,MAAM1H,OAAQ0D,EAAIyE,EAAOzE,IAClD,GAAIgE,EAAM5G,MAAQmH,EAAarD,KAAK8C,MAAMhE,GAAGI,GAAKc,KAAK8C,MAAMhE,GAAGiE,MAAO,CACnE/C,KAAK8C,MAAMI,OAAOpE,EAAG,GACrBwE,GAAU,CACV,OAIRA,GAAWtD,KAAKwD,gBAChBxD,KAAKmD,eAGbrB,EAAe5B,UAAUuD,YAAc,WACnC,GAAIxI,GACAyI,EAAM1D,KAAK7B,cAAc,OACzBwF,UAAWtC,EAAWK,MACtBxC,GAAIc,KAAK+B,QAAQ7C,GAAK,UAE1BR,UAASkF,KAAK3E,YAAYyE,GAC1B1D,KAAK6D,SAAW,GAAIC,SAAMJ,GACtBK,SAAU/D,KAAK+B,QACfiC,WAAaC,EAAG,MAAOC,EAAG,QAC1BC,UAAYF,EAAG,OAAQC,EAAG,UAC1BE,WAAY,WACZC,QAASrE,KAAKM,OAASN,KAAKsE,mBAAqB,GACjDhH,UAAW0C,KAAK1C,YAEyB,UAAzC0C,KAAK6D,SAAS9B,QAAQhE,MAAMoG,UAC5BnE,KAAK6D,SAASU,gBAAgBvE,KAAK+B,SAEvC/B,KAAK6D,SAASW,OACdC,aAAWzE,KAAK+B,SAAU9G,KACtBA,EAAG,iBAAmB+E,KAAK8C,MAAM1H,QAAU4E,KAAKM,OAAS,OAAS,QAClErF,EAAG,iBAAmB,QACtBA,EAAG,aAAe+E,KAAK0E,kBAAkBxF,GACzCjE,EAAS,KAAI,SACbA,EAAG,cAAgB+E,KAAK+B,QAAQ4C,YAAc3E,KAAK+B,QAAQ4C,YAAc,iBACzE1J,IACA+E,KAAKZ,UACL7C,YAAUmH,GAAM1D,KAAKZ,SAASwF,MAAM,MAExC5E,KAAKiC,gBAAiB,GAE1BH,EAAe5B,UAAUoE,iBAAmB,WACxC,MAAgC,gBAAjBtE,aAA4B6E,SAAO7E,KAAKM,QAAUN,KAAKM,QAE1EwB,EAAe5B,UAAUiD,YAAc,SAAU2B,GAC7C,GAEIC,GACAC,EACAvI,EACAwI,EALAnC,EAAQ9C,KAAK8C,MACboC,EAAWlF,KAAKmF,QAAQnF,KAAK8C,MAAO,WAKpCrH,EAAKuE,KAAKwD,cACV/H,GACAA,EAAG2J,UAAY,GAGf3J,EAAKuE,KAAK7B,cAAc,MACpBkH,OAASC,KAAQ,OAAQC,SAAY,MAG7C,KAAK,GAAIrJ,GAAI,EAAGA,EAAI4G,EAAM1H,OAAQc,IAAK,CAEnC,GAAIsJ,IADJR,EAAOlC,EAAM5G,IACO6G,IACpBtG,GAAKuD,KAAK7B,cAAc,MACpBiH,UAAWJ,EAAKS,IAAM,GAAKD,EAC3B7B,UAAWqB,EAAKU,UAAYrE,EAAWI,KAAO,IAAMJ,EAAWO,UAAYP,EAAWI,KACtF4D,OAASC,KAAQ,WAAYC,SAAY,KAAMI,aAAcH,GAC7DtG,GAAI8F,EAAK9F,GAAK8F,EAAK9F,GAAK0G,cAAY,KAAO5F,KAAK6F,gBAAkB,WAElE7F,KAAK8F,oBACLrJ,EAAGkI,YAAcK,EAAKS,IAAM,GAAKD,EAGjC/I,EAAG2I,UAAYJ,EAAKS,IAAM,GAAKD,EAE/BR,EAAKS,MACLhJ,EAAGwC,YAAYe,KAAK+F,aAAaf,IACjCvI,EAAGT,UAAUgK,IAAI,UAEjBhB,EAAKiB,SACLlB,EAAO/E,KAAK7B,cAAc,QAAUwF,UAAWtC,EAAWG,KAAO,IAAMwD,EAAKiB,UACxEjB,EAAKS,IACLhJ,EAAGyJ,WAAW,GAAGjH,YAAY8F,GAG7BtI,EAAGuC,aAAa+F,EAAMtI,EAAGyJ,WAAW,KAIpChB,IAAaF,EAAKU,WAClBjJ,EAAGT,UAAUgK,IAAI,gBAGrBhB,EAAK7F,UACL1C,EAAGT,UAAUgK,IAAI,cAErBf,GAAcD,KAAMA,EAAMjD,QAAStF,GACnCuD,KAAKmG,QAAQ,mBAAoBlB,GACjCxJ,EAAGwD,YAAYxC,GAEfqI,GACA9E,KAAK0E,kBAAkBzF,YAAYxD,GAEnCyJ,GACAtI,EAAkBoD,KAAK0E,oBAG/B5C,EAAe5B,UAAUiF,QAAU,SAAUrC,EAAOsD,GAChD,IAAK,GAAIlK,GAAI,EAAGC,EAAM2G,EAAM1H,OAAQc,EAAIC,EAAKD,IACzC,GAAI4G,EAAM5G,GAAGkK,GACT,OAAO,CAGf,QAAO,GAEXtE,EAAe5B,UAAU6F,aAAe,SAAUf,GAC9C,GAAIQ,GAAYxF,yBAA4BqG,qBAAmBC,SAAStB,EAAKjC,MAAQiC,EAAKjC,IAC1F,OAAO/C,MAAK7B,cAAc,KAAOwF,UAAW,yBAA0ByB,UAAWI,EAAUH,OAASkB,KAAQvB,EAAKS,QAErH3D,EAAe5B,UAAUwC,WAAa,WAClC1C,KAAKwG,OAAS,GAAInH,WACd4G,QAASjG,KAAKiG,QAASQ,aAAczG,KAAKyG,aAAcrH,SAAUY,KAAKZ,SAAUiF,QAASrE,KAAKqE,QAC/FlF,SAAUa,KAAKb,SAAU7B,UAAW0C,KAAK1C,UAAWoJ,kBAAmB1G,KAAK0G,oBAEhF1G,KAAKwG,OAAOrI,cAAgB6B,KAAK7B,cACjC6B,KAAKwG,OAAOG,SAAS3G,KAAK+B,SACrB/B,KAAK+B,QAAQ7C,KACdc,KAAK+B,QAAQ7C,GAAK0G,cAAY,KAAO5F,KAAK6F,kBAE9C7F,KAAK4G,kBACL5G,KAAK6G,eAAe7G,KAAK+B,UACpB/B,KAAKM,SAAWN,KAAK8G,kBAAqB9G,KAAK+G,mBAChD/G,KAAKyD,cAGLzD,KAAKiC,gBAAiB,GAG9BH,EAAe5B,UAAU4G,cAAgB,WACrC,IAAK9G,KAAK+B,QACN,OAAO,CAEX,IAAIiF,GAAWhH,KAAK+B,QAAQkF,eAC5B,UAAID,GAAYA,EAAShL,WAAagL,EAAShL,UAAUK,SAAS,yBAKtEyF,EAAe5B,UAAU0G,gBAAkB,WACvC5G,KAAK+B,QAAQ9C,YAAYe,KAAK7B,cAAc,QACxCwF,UAAW,8BAAqC3D,KAAKZ,SAAS9D,QAAQ+F,EAAWQ,WAAa,EACxF,SAAW,SAAW,eAGpCC,EAAe5B,UAAU2G,cAAgB,SAAUK,GAC/ClH,KAAKmH,WAAaD,GAQtBpF,EAAe5B,UAAU2F,cAAgB,WACrC,MAAO,gBAEX/D,EAAe5B,UAAUoC,QAAU,WAC/B,GAAI8E,IAAM,CAIV,OAHIpH,MAAKiC,iBACLmF,EAAMpH,KAAK0E,kBAAkB1I,UAAUK,SAAS,kBAE7C+K,GAOXtF,EAAe5B,UAAUmH,QAAU,WAC/B,GAAIrF,GAAQhC,IAEZ,IADAiB,EAAOf,UAAUmH,QAAQrK,KAAKgD,MACD,iBAAzBA,KAAK6F,gBAAoC,CACzC,GAAIyB,EACAtH,MAAK+B,QAAQhG,cAAc,iBAC3BwL,SAAOvH,KAAK+B,QAAQhG,cAAc,iBAElCiE,KAAKZ,WACLkI,EAActH,KAAKZ,SAASwF,MAAM,MAEtC5E,KAAKwG,OAAOa,UACRC,GACAE,eAAaxH,KAAK+B,SAAUuF,GAEhCE,cAAYxH,KAAKmH,YAAa,cACfnH,KAAK+B,QAAQ0F,aAAa,UAAY,gBAAiB,gBAAiB,YAAa,SAC7F,gBAAiB,gBAAiB,YAAa,OAAQ,UACrD3J,QAAQ,SAAUyC,GACvByB,EAAMD,QAAQ2F,gBAAgBnH,KAElCP,KAAK2H,oBACL3H,KAAK4H,eACL5H,KAAKiC,gBAAiB,EACjBjC,KAAKb,UACNa,KAAK6H,iBAIjB/F,EAAe5B,UAAU0H,aAAe,WACpC,GAAI5H,KAAKiC,eAAgB,CAErB,GADAjC,KAAK6D,SAASwD,UACVrH,KAAK0E,kBAAmB,CACxB,GAAIoD,GAAWpJ,SAASqJ,eAAe/H,KAAK0E,kBAAkBxF,GAC1D4I,KACAN,eAAaM,IAAY,eAAgB,kBACzCP,SAAOO,IAGfE,eAAa/L,OAAO+D,KAAK0E,kBAAmB,QAAS1E,KAAKiI,cAC1DD,eAAa/L,OAAO+D,KAAK0E,kBAAmB,UAAW1E,KAAKkI,iBACxDlI,KAAKiC,iBACLjC,KAAK6D,aAAWsE,IAGxBnI,KAAKiC,gBAAiB,GAE1BH,EAAe5B,UAAUwE,gBAAkB,WACvC,GAAI0C,GAAM,IAIV,OAHIpH,MAAK6D,WACLuD,EAAMpH,KAAK6D,SAAS9B,SAEjBqF,GAEXtF,EAAe5B,UAAUsD,aAAe,WACpC,GAAI4D,GAAM,IAIV,OAHIpH,MAAK0E,oBACL0C,EAAMpH,KAAK0E,kBAAkBtI,SAAS,IAEnCgL,GAEXtF,EAAe5B,UAAUyC,WAAa,WAClC3C,KAAKoI,yBAA2BpI,KAAKqI,iBAAiBC,KAAKtI,MACtDA,KAAK+G,oBACNiB,eAAahC,IAAItH,SAAU,uBAAwBsB,KAAKoI,yBAA0BpI,MAEtFgI,eAAahC,IAAIhG,KAAK+B,QAAS,QAAS/B,KAAKiI,aAAcjI,MAC3DgI,eAAahC,IAAIhG,KAAK+B,QAAS,UAAW/B,KAAKkI,gBAAiBlI,OAEpE8B,EAAe5B,UAAUqI,gBAAkB,WACvC,GAAIC,GAAexI,KAAK0E,iBACpB1E,MAAK+G,oBACLiB,eAAahC,IAAItH,SAAU,uBAAwBsB,KAAKoI,yBAA0BpI,MAElFwI,IACAR,eAAahC,IAAIwC,EAAc,QAASxI,KAAKiI,aAAcjI,MAC3DgI,eAAahC,IAAIwC,EAAc,UAAWxI,KAAKkI,gBAAiBlI,OAEpEA,KAAKyI,SAAWC,eAAaF,GAAgBvK,SAAU,IAAMoD,EAAWI,QAE5EK,EAAe5B,UAAUyH,kBAAoB,WACzC,GAAIa,GAAexI,KAAK0E,iBACpB1E,MAAK+G,oBACLiB,eAAa/L,OAAOyC,SAAU,uBAAwBsB,KAAKoI,0BAE3DI,GAAgBA,EAAaG,gBAC7BX,eAAa/L,OAAOuM,EAAc,QAASxI,KAAKiI,cAChDD,eAAa/L,OAAOuM,EAAc,UAAWxI,KAAKkI,mBAU1DpG,EAAe5B,UAAUgI,gBAAkB,SAAUU,GACjD,GAAIA,EAAEtI,SAAWN,KAAK+B,SAA0B,IAAd6G,EAAElN,UAAmBkN,EAAEC,QAAwB,KAAdD,EAAElN,UAAiC,KAAdkN,EAAElN,QAG1F,OAAQkN,EAAElN,SACN,IAAK,IACL,IAAK,KACGkN,EAAEC,QAAyB,KAAdD,EAAElN,SAAgC,KAAdkN,EAAElN,QAInCsE,KAAKxE,iBAAiBoN,GAHtB5I,KAAK8I,gBAAgBF,EAKzB,MACJ,KAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,IACD5I,KAAK8I,gBAAgBF,KAIjC9G,EAAe5B,UAAU1E,iBAAmB,SAAUoN,KAC9C5I,KAAKM,QAAyB,KAAdsI,EAAElN,SAAgC,KAAdkN,EAAElN,WAG1CkN,EAAEG,iBACFvN,EAAiBwE,KAAKwD,eAAgBoF,EAAElN,WAE5CoG,EAAe5B,UAAU4I,gBAAkB,SAAUF,KAC7C5I,KAAKM,QAAyB,KAAdsI,EAAElN,SAAgC,IAAdkN,EAAElN,WAGtCkN,EAAEtI,QAAUsI,EAAEtI,OAAOqD,UAAUrI,QAAQ,oBAAsB,GAAmB,KAAdsN,EAAElN,UAGtD,IAAdkN,EAAElN,SACFkN,EAAEG,iBAEY,KAAdH,EAAElN,SAAgC,KAAdkN,EAAElN,SAAgC,IAAdkN,EAAElN,QACrCsE,KAAKsC,WACNtC,KAAKwC,WAAWoG,EAAG5I,KAAK+B,SAI5B/B,KAAKiI,aAAaW,MAG1B9G,EAAe5B,UAAU8I,MAAQ,SAAU9B,GACvC,MAAwB,OAAjBA,EAAKnI,QAAmBmI,EAAO+B,UAAQ/B,EAAM,OAExDpF,EAAe5B,UAAUmI,iBAAmB,SAAUO,GAClD,GAAIM,GAAON,EAAEtI,QACTN,KAAK6D,UAAa7D,KAAKsC,WAAe2G,UAAQC,EAAM,QAAUlJ,KAAK0E,kBAAkBxF,GAAK,OACvF+J,UAAQC,EAAM,QAAUlJ,KAAK+B,QAAQ7C,GAAK,OAC7Cc,KAAKwC,WAAWoG,IAGxB9G,EAAe5B,UAAU+H,aAAe,SAAUW,GAC9C,GAAIM,GAAON,EAAEtI,MACb,IAAI2I,UAAQC,EAAM,QAAUlJ,KAAK+B,QAAQ7C,GAAK,OACrCc,KAAK+G,oBAAuB/G,KAAKM,SAAWN,KAAK8G,gBAC9C9G,KAAK0E,kBAAkB1I,UAAUK,SAAS,iBAC1C2D,KAAKuC,UAAUqG,GAGf5I,KAAKwC,WAAWoG,GAGf5I,KAAKiC,eACVjC,KAAKwC,WAAWoG,EAAG5I,KAAKmH,WAAW,KAGnCnH,KAAKyD,cACLzD,KAAKuC,UAAUqG,QAInB,IAAIK,UAAQC,EAAM,QAAUlJ,KAAK0E,kBAAkBxF,GAAK,MAAO,CAC3D,GAAI+F,OAAY,GACZpJ,MAAQ,GACRmJ,MAAO,GACPvI,EAAKuD,KAAKgJ,MAAME,EAChBzM,KACAZ,EAAQ+D,MAAMM,UAAU5E,QAAQ0B,KAAKgD,KAAKwD,eAAepH,SAAUK,IACnEuI,EAAOhF,KAAK8C,MAAMjH,MAEdoJ,GAAclD,QAAStF,EAAIuI,KAAMA,GACjChF,KAAKmG,QAAQ,SAAUlB,IAE3BjF,KAAKwC,WAAWoG,EAAG5I,KAAKmH,WAAW,OAKnDrF,EAAe5B,UAAUqC,UAAY,SAAUqG,GAC3C,GAAI5G,GAAQhC,SACF,KAAN4I,IAAgBA,EAAI,KACxB,IACIO,GAAYnJ,KAAK0E,iBACrB,IAAK1E,KAAKM,OAIN,GAAIN,KAAKmH,WAAW/L,OAAS,EAAG,CAC5B,GAAIgO,GAAcC,eAAarJ,KAAKmH,WAAW,GAAI,YAE/CiC,GAAYE,SAAWH,EAAUjD,WAAW9K,OAAS,IACrDgO,EAEYG,mBAAmBvJ,KAAKsE,mBAAoBtE,KAAK0E,mBAC7D1E,KAAKwJ,4BAKLxJ,MAAKsJ,SAAWH,EAAUjD,WAAW9K,OAAS,IAC9C4E,KAEKuJ,mBAAmBvJ,KAAKsE,mBAAoBtE,KAAK0E,mBACtD1E,KAAKwJ,4BAnBbxJ,MAAKmD,aAAY,EAuBrB,IAAI1H,GAAKuE,KAAKwD,cACdxD,MAAKuI,iBACL,IAAIkB,IAAmB1H,QAAStG,EAAIqH,MAAO9C,KAAK8C,MAAO4G,MAAOd,EAAGe,QAAQ,EACzE3J,MAAKmG,QAAQ,aAAcsD,EAAgB,SAAUG,GACjD,IAAKA,EAAaD,OAAQ,CACtB,GAAIE,GAAO7H,EAAMwB,cACjBxB,GAAM6B,SAASiG,KAAK,KAAM9H,EAAMD,SAChCxF,YAAUyF,EAAMD,SAAU,YAC1BC,EAAMD,QAAQpD,aAAa,gBAAiB,QAC5CkL,EAAKrN,OACL,IAAIuN,IAAahI,QAAS8H,EAAM/G,MAAOd,EAAMc,MAC7Cd,GAAMmE,QAAQ,OAAQ4D,OAIlCjI,EAAe5B,UAAUsC,WAAa,SAAUoG,EAAGoB,GAC/C,GAAIhI,GAAQhC,SACF,KAAN4I,IAAgBA,EAAI,KACxB,IACIqB,IAAoBlI,QADf/B,KAAKwD,eACuBV,MAAO9C,KAAK8C,MAAO4G,MAAOd,EAAGe,QAAQ,GACtEnB,EAAexI,KAAK0E,iBACpB8D,IACAR,eAAa/L,OAAOuM,EAAc,UAAWxI,KAAKkI,iBAEtDlI,KAAKmG,QAAQ,cAAe8D,EAAiB,SAAUL,GACnD,IAAKA,EAAaD,OAAQ,CACtB3H,EAAM2F,mBACN,IAAIuC,GAAOlI,EAAMwB,eACb1H,EAAaoO,EAAKnO,cAAc,cAChCD,IACAA,EAAWE,UAAUC,OAAO,cAEhC+F,EAAM6B,SAASW,OACfgD,cAAYxF,EAAMmF,WAAY,YAC9BnF,EAAMD,QAAQpD,aAAa,gBAAiB,SACxCqL,GACAA,EAASxN,OAEb,IAAI2N,IAAcpI,QAASmI,EAAMpH,MAAOd,EAAMc,MAC9Cd,GAAMmE,QAAQ,QAASgE,IAClBnI,EAAM1B,QAAU4J,GACjB3C,SAAO2C,GAENlI,EAAM1B,SAAU0B,EAAM8E,iBACnB9E,EAAM+E,oBACN/E,EAAM4F,eAGV5F,EAAM1B,SACN0B,EAAMC,gBAAiBD,EAAM+E,wBAK7CjF,EAAe5B,UAAU2H,aAAe,WAC/B7H,KAAK+G,oBACNiB,eAAa/L,OAAOyC,SAAU,uBAAwBsB,KAAKoI,0BAE/DJ,eAAa/L,OAAO+D,KAAK+B,QAAS,QAAS/B,KAAKiI,cAChDD,eAAa/L,OAAO+D,KAAK+B,QAAS,UAAW/B,KAAKkI,iBAC9ClI,KAAKiC,iBACL+F,eAAa/L,OAAO+D,KAAK0E,kBAAmB,QAAS1E,KAAKiI,cAC1DD,eAAa/L,OAAO+D,KAAK0E,kBAAmB,UAAW1E,KAAKkI,mBAWpEpG,EAAe5B,UAAUkK,kBAAoB,SAAUC,EAASC,GAC5D,GAAI/L,IAAY,UAAW,WAAY,UAAW,eAAgB,WAAY,YAC9EyB,MAAKwG,OAAO+D,cAAc5P,EAAS0P,EAAS9L,GAC5C,IAAIiK,EACAxI,MAAKiC,iBACLuG,EAAexI,KAAK0E,kBACpB1E,KAAK6D,SAAS0G,cAAc5P,EAAS0P,GAAU,eAEnD,KAAK,GAAIrP,GAAK,EAAGC,EAAKC,OAAOC,KAAKkP,GAAUrP,EAAKC,EAAGG,OAAQJ,IAExD,OADWC,EAAGD,IAEV,IAAK,UACIgF,KAAK+B,QAAQhG,cAAc,iBAC5BiE,KAAK4G,iBAET,MACJ,KAAK,WACGyD,EAAQlL,UACRa,KAAK6H,eACD7H,KAAKiC,iBAAmBjC,KAAKsC,WAC7BtC,KAAKwC,cAITxC,KAAK2C,YAET,MACJ,KAAK,WACD,GAAI0H,EAAQjL,SAAS9D,QAAQ+F,EAAWQ,WAAa,EAAG,CACpD,GAAI2I,GAAYxK,KAAK+B,QAAQhG,cAAc,eAC3CC,aAAUwO,GAAY,kBAAmB,iBAEzCxK,KAAKiC,iBACDqI,EAAQlL,UACRoI,eAAagB,GAAe8B,EAAQlL,SAASwF,MAAM,MAEnDyF,EAAQjL,UACR7C,YAAUiM,GAAe6B,EAAQjL,SAASwF,MAAM,MAGxD,MACJ,KAAK,SACD5E,KAAK6D,SAASQ,QAAUrE,KAAKsE,mBAC7BtE,KAAK6D,SAAS4G,UACd,MACJ,KAAK,QACGzK,KAAKiC,gBAAkBjC,KAAKwD,gBAC5BxD,KAAKmD,aAET,MACJ,KAAK,qBACGkH,EAAQtD,mBACR/G,KAAK4H,eAGL5H,KAAKyD,gBAazB3B,EAAe5B,UAAUwK,QAAU,WAC/B1K,KAAK+B,QAAQvF,SAEjB4D,GACIe,WAAS,KACVW,EAAe5B,UAAW,cAAW,IACxCE,GACIe,WAAS,KACVW,EAAe5B,UAAW,eAAY,IACzCE,GACIe,YAAS,IACVW,EAAe5B,UAAW,eAAY,IACzCE,GACIe,WAAS,KACVW,EAAe5B,UAAW,cAAW,IACxCE,GACIe,WAAS,SACVW,EAAe5B,UAAW,mBAAgB,IAC7CE,GACIe,YAAS,IACVW,EAAe5B,UAAW,0BAAuB,IACpDE,GACIuK,gBAAe3J,IAChBc,EAAe5B,UAAW,YAAS,IACtCE,GACIe,YAAS,IACVW,EAAe5B,UAAW,yBAAsB,IACnDE,GACIe,WAAS,KACVW,EAAe5B,UAAW,aAAU,IACvCE,GACIwK,WACD9I,EAAe5B,UAAW,uBAAoB,IACjDE,GACIwK,WACD9I,EAAe5B,UAAW,iBAAc,IAC3CE,GACIwK,WACD9I,EAAe5B,UAAW,kBAAe,IAC5CE,GACIwK,WACD9I,EAAe5B,UAAW,YAAS,IACtCE,GACIwK,WACD9I,EAAe5B,UAAW,WAAQ,IACrCE,GACIwK,WACD9I,EAAe5B,UAAW,aAAU,IACvCE,GACIwK,WACD9I,EAAe5B,UAAW,cAAW,IACxC4B,EAAiB1B,GACbyK,yBACD/I,IAELgJ,aC9tBExL,EAAwC,WACxC,GAAIC,GAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrE,OAAOwE,iBAChBC,uBAA2BC,QAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,GAAII,KAAKJ,GAAOA,EAAEK,eAAeD,KAAIL,EAAEK,GAAKJ,EAAEI,MACpDL,EAAGC,GAE5B,OAAO,UAAUD,EAAGC,GAEhB,QAASM,KAAOC,KAAKC,YAAcT,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEU,UAAkB,OAANT,EAAavE,OAAOiF,OAAOV,IAAMM,EAAGG,UAAYT,EAAES,UAAW,GAAIH,QAGnFK,EAA0C,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HhB,GAAvHiB,EAAIC,UAAUtF,OAAQuF,EAAIF,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOtF,OAAO0F,yBAAyBN,EAAQC,GAAOC,CACrH,IAAuB,gBAAZK,UAAoD,kBAArBA,SAAQC,SAAyBH,EAAIE,QAAQC,SAAST,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAItE,GAAImE,EAAWjF,OAAS,EAAGc,GAAK,EAAGA,KAASsD,EAAIa,EAAWnE,MAAIyE,GAAKF,EAAI,EAAIjB,EAAEmB,GAAKF,EAAI,EAAIjB,EAAEc,EAAQC,EAAKI,GAAKnB,EAAEc,EAAQC,KAASI,EAChJ,OAAOF,GAAI,GAAKE,GAAKzF,OAAO6F,eAAeT,EAAQC,EAAKI,GAAIA,GAU5DgB,EAAM,QACNoJ,EAAU,kBAeVC,EAA6B,SAAU/J,GASvC,QAAS+J,GAAY9M,EAAS6D,GAC1B,MAAOd,GAAOjE,KAAKgD,KAAM9B,EAAS6D,IAAY/B,KA2UlD,MApVAV,GAAU0L,EAAa/J,GAiBvB+J,EAAY9K,UAAUgC,UAAY,WAC9B,GAAI+I,GAAMjL,KAAK+B,OACf,IAAIkJ,EAAIlM,UAAYgM,EAAS,CAIzB,IAAK,GAHDG,GAAaC,WAAS,gBAAiBF,GACvCG,EAAMpL,KAAK7B,cAAc,UAAYkH,OAASgG,KAAQ,YACtD5M,EAAUuB,KAAK7B,cAAc4M,GAAWpH,UAAW,KAAO3D,KAAK6F,gBAAkB,aAC5E5C,EAAM,EAAG9G,EAAM8O,EAAIxG,WAAWrJ,OAAQ6H,EAAM9G,EAAK8G,IACtDmI,EAAIzM,aAAasM,EAAIxG,WAAWxB,GAAKqI,SAAUL,EAAIxG,WAAWxB,GAAKsI,UAEvEN,GAAIO,WAAWxM,aAAaP,EAASwM,GACrC1D,SAAO0D,GACPA,EAAMG,EACN3M,EAAQQ,YAAYgM,GACpBQ,WAAS,gBAAiBP,EAAYD,GACtCjL,KAAKvB,QAAUA,EACfuB,KAAK+B,QAAUkJ,EAEdjL,KAAK+B,QAAQ7C,KACdc,KAAK+B,QAAQ7C,GAAK0G,cAAY,KAAO5F,KAAK6F,mBASlDmF,EAAY9K,UAAUuC,OAAS,WAC3BzC,KAAK0L,cACL1L,KAAK2L,sBACL3L,KAAK4L,iBAETZ,EAAY9K,UAAU0L,cAAgB,WAClC5L,KAAK6L,wBACL7L,KAAK6G,eAAe7G,KAAK+B,QAAS/B,KAAK8L,gBAAgB/J,UACvD/B,KAAK+L,UACL/L,KAAK2C,aACL3C,KAAK4C,kBAUToI,EAAY9K,UAAU2C,SAAW,SAAUC,EAAOC,GAC9C9B,EAAOf,UAAU2C,SAAS7F,KAAKgD,KAAM8C,EAAOC,GAC5C/C,KAAK8L,gBAAgBhJ,MAAQ9C,KAAK8C,OAStCkI,EAAY9K,UAAUkD,YAAc,SAAUN,EAAOO,GACjDpC,EAAOf,UAAUkD,YAAYpG,KAAKgD,KAAM8C,EAAOO,GAC/CrD,KAAK8L,gBAAgBhJ,MAAQ9C,KAAK8C,OAEtCkI,EAAY9K,UAAUwL,YAAc,WAC3B1L,KAAKvB,UACNuB,KAAKvB,QAAUuB,KAAK7B,cAAc,OAASwF,UAAW,KAAO3D,KAAK6F,gBAAkB,aACpF7F,KAAK+B,QAAQyJ,WAAWxM,aAAagB,KAAKvB,QAASuB,KAAK+B,UAE5D/B,KAAK+B,QAAQ/F,UAAUC,OAAO,KAAO+D,KAAK6F,iBACtC7F,KAAK1C,WACL0C,KAAKvB,QAAQzC,UAAUgK,IAAIrE,GAE3B3B,KAAKZ,UACL7C,YAAUyD,KAAKvB,SAAUuB,KAAKZ,SAASwF,MAAM,OAGrDoG,EAAY9K,UAAUyL,oBAAsB,WACxC,GAAIpN,IACAa,SAAUY,KAAKZ,SACf9B,UAAW0C,KAAK1C,UAChB2I,QAASjG,KAAKiG,QACdQ,aAAczG,KAAKyG,aACnBpC,QAASrE,KAAKqE,QACdlF,SAAUa,KAAKb,SAEnBa,MAAKgM,cAAgB,GAAI3M,UAAOd,GAChCyB,KAAKgM,cAAc7N,cAAgB6B,KAAK7B,cACxC6B,KAAKgM,cAAcrF,SAAS3G,KAAK+B,SACjC/B,KAAK+B,QAAQ/F,UAAUgK,IAAI,KAAOhG,KAAK6F,iBACvC7F,KAAK+B,QAAQsJ,KAAO,SACpBrL,KAAKvB,QAAQQ,YAAYe,KAAK+B,UAElCiJ,EAAY9K,UAAU2L,sBAAwB,WAC1C,GAAI7J,GAAQhC,KACR3B,EAAU2B,KAAK7B,cAAc,UAC7BwF,UAAW,aACX0B,OAASE,SAAY,MACrBrG,GAAIc,KAAK+B,QAAQ7C,GAAK,gBAE1Bc,MAAKvB,QAAQQ,YAAYZ,EACzB,IAAI4N,IACA7M,SAAUY,KAAKZ,SACfD,SAAUa,KAAKb,SACf7B,UAAW0C,KAAK1C,UAChBwF,MAAO9C,KAAK8C,MACZxC,OAAQN,KAAKM,OACbyG,mBAAoB/G,KAAK+G,mBAE7BkF,GAAiBC,iBAAmB,SAAUC,GACtCnK,EAAM+E,qBACN/E,EAAM8J,gBAAgBjI,SAASE,SAAW/B,EAAMvD,QAChDuD,EAAM6B,SAAW7B,EAAM8J,gBAAgBjI,UAE3C7B,EAAMmE,QAAQ,mBAAoBgG,IAEtCF,EAAiBG,KAAO,SAAUD,GAC9BnK,EAAMmE,QAAQ,OAAQgG,IAE1BF,EAAiBI,MAAQ,SAAUF,GAC/BnK,EAAMmE,QAAQ,QAASgG,IAE3BF,EAAiBpH,OAAS,SAAUsH,GAChCnK,EAAMmE,QAAQ,SAAUgG,IAE5BF,EAAiBK,WAAa,SAAUH,GACpC,GAAII,GAAkB,GAAIC,EAI1B,OAHAxK,GAAMmE,QAAQ,aAAcgG,EAAM,SAAUvC,GACxC2C,EAAgBE,QAAQ7C,KAErB2C,GAEXN,EAAiBS,YAAc,SAAUP,GACrC,GAAII,GAAkB,GAAIC,EAI1B,OAHAxK,GAAMmE,QAAQ,cAAegG,EAAM,SAAUvC,GACzC2C,EAAgBE,QAAQ7C,KAErB2C,GAEXvM,KAAK8L,gBAAkB,GAAIhK,GAAemK,GAC1CjM,KAAK8L,gBAAgB3N,cAAgB6B,KAAK7B,cAC1C6B,KAAK8L,gBAAgBnF,SAAStI,GACzB2B,KAAK+G,qBACN/G,KAAK8L,gBAAgBjI,SAASE,SAAW/D,KAAKvB,QAC9CuB,KAAK6D,SAAW7D,KAAK8L,gBAAgBjI,UAEzC7D,KAAK8L,gBAAgB3E,YAAcnH,KAAK+B,QAAS/B,KAAK8L,gBAAgB/J,SACtE/B,KAAK8L,gBAAgB/J,QAAQhG,cAAc,eAAeC,UAAUC,OAAO,iBAE/E+O,EAAY9K,UAAU6L,QAAU,WAC5BtH,aAAWzE,KAAK+B,SACZ4K,gBAAiB,QAASC,gBAAiB,OAC3CjH,aAAc3F,KAAK+B,QAAQ4C,YAAc,eAAgBkI,YAAa7M,KAAK+B,QAAQ7C,GAAK,wBAShG8L,EAAY9K,UAAU2F,cAAgB,WAClC,MAAO,aAOXmF,EAAY9K,UAAUmC,OAAS,WAC3BrC,KAAK8L,gBAAgBzJ,UAEzB2I,EAAY9K,UAAUmH,QAAU,WAC5B,GAAIrF,GAAQhC,KACRhE,GAAa2F,EAIjB,IAHI3B,KAAKZ,WACLpD,EAAYA,EAAU8Q,OAAO9M,KAAKZ,SAASwF,MAAM,OAEjD5E,KAAK+B,QAAS,CACd,GAAIA,GAAUrD,SAASqJ,eAAe/H,KAAK+B,QAAQ7C,GAC/C6C,IAAWA,EAAQ4G,gBAAkB3I,KAAKvB,UACtCuB,KAAKvB,QAAQM,UAAYgM,GACzB/K,KAAKvB,QAAQ2G,UAAY,GACzBoC,eAAaxH,KAAKvB,UAAW,QAAS,KAAOuB,KAAK6F,gBAAkB,aACpE2B,eAAaxH,KAAKvB,SAAUuB,KAAKZ,SAASwF,MAAM,QAGhD4C,eAAaxH,KAAK+B,SAAU/F,IAC3B,aAAc,gBAAiB,gBAAiB,YAAa,QAAQ8B,QAAQ,SAAUyC,GACpFyB,EAAMD,QAAQ2F,gBAAgBnH,KAElCP,KAAKvB,QAAQ+M,WAAWxM,aAAagB,KAAK+B,QAAS/B,KAAKvB,SACxDxC,SAAO+D,KAAKvB,UAEhBuB,KAAK6H,gBAGb7H,KAAKgM,cAAc3E,UACnBrH,KAAK8L,gBAAgBzE,UACrBpG,EAAOf,UAAUmH,QAAQrK,KAAKgD,MACzBA,KAAK+B,QAAQ0F,aAAa,UAC3BzH,KAAK+B,QAAQ2F,gBAAgB,UAGrCsD,EAAY9K,UAAUyC,WAAa,WAC/BqF,eAAahC,IAAIhG,KAAK+B,QAAS,QAAS/B,KAAK+M,uBAAwB/M,MACrE,GAAIgN,kBAAehN,KAAK+B,SACpBkL,UAAWjN,KAAKkN,mBAAmB5E,KAAKtI,MACxCmN,YACIC,aAAc,oBAI1BpC,EAAY9K,UAAU2H,aAAe,WACjCG,eAAa/L,OAAO+D,KAAK+B,QAAS,QAAS/B,KAAK+M,wBAChDM,cAAYrN,KAAK+B,QAASiL,kBAAgB3F,WAE9C2D,EAAY9K,UAAU6M,uBAAyB,WAC3C/M,KAAKmG,QAAQ,SAAWpE,QAAS/B,KAAK+B,WAE1CiJ,EAAY9K,UAAUgN,mBAAqB,SAAUtE,GACjD,OAAQA,EAAE0E,QACN,IAAK,eACDtN,KAAKiI,aAAaW,KAW9BoC,EAAY9K,UAAUkK,kBAAoB,SAAUC,EAASC,GACzD,GAAIzP,IAAS,UAAW,UAAW,eAAgB,WAAY,WAAY,YAC3EmF,MAAKgM,cAAczB,cAAc5P,EAAS0P,EAASxP,IACnDA,GAAS,aAAc,mBAAoB,SAAU,OACjD,QAAS,WAAY,WAAY,YAAa,sBAC9CK,OAAOC,KAAKkP,GAAS/O,QAAQ,UAAY,IACzC0E,KAAK8L,gBAAgBhJ,MAAQuH,EAAQvH,MACrC9C,KAAK8L,gBAAgBrB,YAEzBzK,KAAK8L,gBAAgBvB,cAAc5P,EAAS0P,EAASxP,GACrD,KAAK,GAAIG,GAAK,EAAGC,EAAKC,OAAOC,KAAKkP,GAAUrP,EAAKC,EAAGG,OAAQJ,IAExD,OADWC,EAAGD,IAEV,IAAK,WACGsP,EAAQlL,UACRoI,eAAaxH,KAAKvB,SAAU6L,EAAQlL,SAASwF,MAAM,MAEvDrI,YAAUyD,KAAKvB,SAAU4L,EAAQjL,SAASwF,MAAM,KAChD,MACJ,KAAK,YACGyF,EAAQ/M,UACRf,YAAUyD,KAAKvB,SAAUkD,GAGzB6F,eAAaxH,KAAKvB,SAAUkD,KAahDqJ,EAAY9K,UAAUwK,QAAU,WAC5B1K,KAAK+B,QAAQvF,SAEjB4D,GACIe,WAAS,KACV6J,EAAY9K,UAAW,cAAW,IACrCE,GACIe,WAAS,KACV6J,EAAY9K,UAAW,eAAY,IACtCE,GACIe,YAAS,IACV6J,EAAY9K,UAAW,eAAY,IACtCE,GACIe,WAAS,KACV6J,EAAY9K,UAAW,cAAW,IACrCE,GACIe,WAAS,SACV6J,EAAY9K,UAAW,mBAAgB,IAC1CE,GACIe,YAAS,IACV6J,EAAY9K,UAAW,yBAAsB,IAChDE,GACIuK,gBAAe3J,IAChBgK,EAAY9K,UAAW,YAAS,IACnCE,GACIe,WAAS,KACV6J,EAAY9K,UAAW,aAAU,IACpCE,GACIwK,WACDI,EAAY9K,UAAW,uBAAoB,IAC9CE,GACIwK,WACDI,EAAY9K,UAAW,iBAAc,IACxCE,GACIwK,WACDI,EAAY9K,UAAW,kBAAe,IACzCE,GACIwK,WACDI,EAAY9K,UAAW,YAAS,IACnCE,GACIwK,WACDI,EAAY9K,UAAW,YAAS,IACnCE,GACIwK,WACDI,EAAY9K,UAAW,WAAQ,IAClCE,GACIwK,WACDI,EAAY9K,UAAW,aAAU,IACpCE,GACIwK,WACDI,EAAY9K,UAAW,cAAW,IACrC8K,EAAc5K,GACVyK,yBACDG,IAELlJ,GAKE0K,EAA0B,WAC1B,QAASA,KACL,GAAIxK,GAAQhC,IAIZA,MAAKuN,QAAU,GAAIC,SAAQ,SAAUf,EAASgB,GAC1CzL,EAAMyK,QAAUA,EAChBzK,EAAMyL,OAASA,IAKnBzN,KAAK0N,MAAQ1N,KAAKuN,QAAQG,MAAMpF,KAAKtI,KAAKuN,SAI1CvN,KAAK2N,KAAO3N,KAAKuN,QAAQI,KAAKrF,KAAKtI,KAAKuN,SAE5C,MAAOf,MCzZPlN,EAAwC,WACxC,GAAIC,GAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBrE,OAAOwE,iBAChBC,uBAA2BC,QAAS,SAAUJ,EAAGC,GAAKD,EAAEG,UAAYF,IACvE,SAAUD,EAAGC,GAAK,IAAK,GAAII,KAAKJ,GAAOA,EAAEK,eAAeD,KAAIL,EAAEK,GAAKJ,EAAEI,MACpDL,EAAGC,GAE5B,OAAO,UAAUD,EAAGC,GAEhB,QAASM,KAAOC,KAAKC,YAAcT,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEU,UAAkB,OAANT,EAAavE,OAAOiF,OAAOV,IAAMM,EAAGG,UAAYT,EAAES,UAAW,GAAIH,QAGnFK,EAA0C,SAAUC,EAAYC,EAAQC,EAAKC,GAC7E,GAA2HhB,GAAvHiB,EAAIC,UAAUtF,OAAQuF,EAAIF,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOtF,OAAO0F,yBAAyBN,EAAQC,GAAOC,CACrH,IAAuB,gBAAZK,UAAoD,kBAArBA,SAAQC,SAAyBH,EAAIE,QAAQC,SAAST,EAAYC,EAAQC,EAAKC,OACpH,KAAK,GAAItE,GAAImE,EAAWjF,OAAS,EAAGc,GAAK,EAAGA,KAASsD,EAAIa,EAAWnE,MAAIyE,GAAKF,EAAI,EAAIjB,EAAEmB,GAAKF,EAAI,EAAIjB,EAAEc,EAAQC,EAAKI,GAAKnB,EAAEc,EAAQC,KAASI,EAChJ,OAAOF,GAAI,GAAKE,GAAKzF,OAAO6F,eAAeT,EAAQC,EAAKI,GAAIA,GAU5DiN,EAAa,gBAIbC,EAA8B,SAAU5M,GAExC,QAAS4M,KACL,MAAkB,QAAX5M,GAAmBA,EAAOC,MAAMlB,KAAMU,YAAcV,KAW/D,MAbAV,GAAUuO,EAAc5M,GAIxBb,GACIe,WAAS,OACV0M,EAAa3N,UAAW,eAAY,IACvCE,GACIe,WAAS,KACV0M,EAAa3N,UAAW,YAAS,IACpCE,GACIe,WAAS,SACV0M,EAAa3N,UAAW,eAAY,IAChC2N,GACTzM,iBAKE0M,EAAmC,SAAU7M,GAE7C,QAAS6M,KACL,MAAkB,QAAX7M,GAAmBA,EAAOC,MAAMlB,KAAMU,YAAcV,KAW/D,MAbAV,GAAUwO,EAAmB7M,GAI7Bb,GACIe,WAAS,MACV2M,EAAkB5N,UAAW,eAAY,IAC5CE,GACIe,WAAS,SACV2M,EAAkB5N,UAAW,aAAU,IAC1CE,GACIe,WAAS,SACV2M,EAAkB5N,UAAW,aAAU,IACnC4N,GACT1M,iBAeE2M,EAAgC,SAAU9M,GAQ1C,QAAS8M,GAAe7P,EAAS6D,GAC7B,GAAIC,GAAQf,EAAOjE,KAAKgD,KAAM9B,EAAS6D,IAAY/B,IAEnD,OADAgC,GAAMgM,KAAO,EACNhM,EAgcX,MA1cA1C,GAAUyO,EAAgB9M,GAY1B8M,EAAe7N,UAAUgC,UAAY,WACjCjB,EAAOf,UAAUgC,UAAUlF,KAAKgD,OAQpC+N,EAAe7N,UAAUuC,OAAS,WAC9BxB,EAAOf,UAAUuC,OAAOzF,KAAKgD,MAC7BA,KAAKiO,OACLjO,KAAK2C,aACL3C,KAAK+L,UACL/L,KAAK4C,kBAQTmL,EAAe7N,UAAUgO,MAAQ,SAAUC,GACvCnO,KAAKoO,UAAW,EAChBpO,KAAKqO,cAAcF,GAAoBnO,KAAKmO,QAASnO,KAAKsO,eAO9DP,EAAe7N,UAAUqO,KAAO,WAC5BvO,KAAKoO,UAAW,EAChBI,qBAAqBxO,KAAKyO,UAO9BV,EAAe7N,UAAUwO,iBAAmB,WACxC1O,KAAKoO,UAAW,EAChBpO,KAAK2O,kBAQTZ,EAAe7N,UAAU2F,cAAgB,WACrC,MAAO,gBAOXkI,EAAe7N,UAAUmH,QAAU,WAC/B,GAAIrF,GAAQhC,KACRhE,GAlIM,iBAEG,oBAgIiC,iBAAkB,KAAOiF,EAAOf,UAAU2F,cAAc7I,KAAKgD,MACvG,UAAYA,KAAK4O,aAAazK,SAAS0K,cAC3C5N,GAAOf,UAAUmH,QAAQrK,KAAKgD,MAC9BA,KAAK6H,eACL7H,KAAK+B,QAAQqD,UAAY,GACrBpF,KAAKZ,WACLpD,EAAYA,EAAU8Q,OAAO9M,KAAKZ,SAASwF,MAAM,OAErD4C,eAAaxH,KAAK+B,SAAU/F,IAClBgE,KAAK+B,QAAQ0F,aAAa,UAAY,aAAc,gBAAiB,gBAAiB,kBACzF,aAAc,gBAAiB,gBAAiB,gBAAiB,UACpE3J,QAAQ,SAAUyC,GAClByB,EAAMD,QAAQ2F,gBAAgBnH,KAE9BP,KAAKb,UACLa,KAAK+B,QAAQ2F,gBAAgB,aAGrCqG,EAAe7N,UAAU+N,KAAO,WAC5BjO,KAAK+B,QAAQ/F,UAAUgK,IAAI,KAAO/E,EAAOf,UAAU2F,cAAc7I,KAAKgD,OACtEA,KAAK8O,aACL9O,KAAK+O,gBACD/O,KAAKgP,gBACLhP,KAAKiP,kBAGblB,EAAe7N,UAAU6O,cAAgB,WACrC,GAAIG,GAAUlP,KAAK7B,cAAc,QAAUwF,UAAW,aACtD3D,MAAKmP,gBAAgBD,GACrBH,iBACIzO,OAAQ4O,EAASE,MAAOpP,KAAK4O,aAAaQ,OAAS,GAAIC,SAAUrP,KAAK4O,aAAaS,UACpFrP,KAAK7B,gBAEZ4P,EAAe7N,UAAUoP,WAAa,WAClC,MAAOtP,MAAK+B,QAAQ9E,uBAAuB,aAAa,IAE5D8Q,EAAe7N,UAAUqP,YAAc,WACnC,MAAOvP,MAAK+B,QAAQ9E,uBAtKb,cAsK8C,IAEzD8Q,EAAe7N,UAAUiP,gBAAkB,SAAUlE,GACjD,GAAI9G,GAAWnE,KAAK4O,aAAazK,UAAY,MAC5B,UAAbA,GAAoC,QAAbA,EACvBnE,KAAK+B,QAAQ/C,aAAaiM,EAAKjL,KAAK+B,QAAQ9E,uBAAuB2Q,GAAY,IAG/E5N,KAAK+B,QAAQ9C,YAAYgM,GAE7BjL,KAAK+B,QAAQ/F,UAAUgK,IAAI,UAAY7B,EAAS0K,gBAEpDd,EAAe7N,UAAU+O,eAAiB,WACtCjP,KAAK+B,QAAQ9C,YAAYe,KAAK7B,cAAc,QAAUwF,UAnL/C,iBAqLXoK,EAAe7N,UAAU4O,WAAa,WAClC,GAAIU,EACJA,GAAOxP,KAAK+B,QAAQqD,UAChBpF,KAAK8F,sBACL0J,EAAOnJ,qBAAmBC,SAAStG,KAAK+B,QAAQqD,YAEpDpF,KAAK+B,QAAQqD,UAAY,GACzBpF,KAAK+B,QAAQ9C,YAAYe,KAAK7B,cAAc,QAAUwF,UAAWiK,EAAYxI,UAAWoK,MAE5FzB,EAAe7N,UAAUuP,eAAiB,SAAUpL,GAChD,GAAIqL,GAAW1P,KAAK7B,cAAc,QAAUwF,UAAWiK,EAAYxI,UAAWf,GAC9E,IAAIrE,KAAKiG,QAAS,CACd,GAAIlB,GAAO/E,KAAK7B,cAAc,QAAUwF,UAAW,cAAgB3D,KAAKiG,SACnEjG,MAAK+B,QAAQ4C,YAAYgL,QAI1B5K,EAAK/I,UAAUgK,IAAI,UAAYhG,KAAKyG,aAAaoI,eACvB,QAAtB7O,KAAKyG,cAAgD,WAAtBzG,KAAKyG,cACpCzG,KAAK+B,QAAQ/F,UAAUgK,IAAI,KAAOhG,KAAKyG,aAAaoI,cAAgB,cALxE7O,KAAK+B,QAAQ/F,UAAUgK,IAAI,aAQ/B,IAAI4J,GAAOF,EAASxJ,WAAW,IAC3B0J,GAA+B,SAAtB5P,KAAKyG,cAAiD,QAAtBzG,KAAKyG,aAI9CiJ,EAASzQ,YAAY8F,GAHrB2K,EAAS1Q,aAAa+F,EAAM6K,GAMpC5P,KAAK+B,QAAQ9C,YAAYyQ,IAE7B3B,EAAe7N,UAAU+H,aAAe,WAChCjI,KAAK+B,QAAQ/F,UAAUK,SArNd,sBAwNb2D,KAAKqO,iBAETN,EAAe7N,UAAUmO,cAAgB,SAAUF,EAASG,GACxD,GAAIuB,GAAU7P,KAAK+B,QAAQ/F,UACvB8T,EAAaD,EAAQxT,SAAS,aAClCwT,GAAQ7J,IA7NK,qBA8NP6J,EAAQxT,SAhOJ,mBAiON0T,cAAY/P,KAAK+B,SAErB/B,KAAKgQ,aAAaC,KAAKC,MAAO5B,GAA8B,EAAGA,EAAe2B,KAAKC,MAAyB,EAAhBlQ,KAAKmQ,SAAe,IAAOF,KAAKC,MAAO/B,GAAoB,EAAG,EAAGnO,KAAKgO,KAAM,EAAG8B,GAC3K9P,KAAKoQ,oBAETrC,EAAe7N,UAAU8P,aAAe,SAAUK,EAAW/B,EAAcgC,EAAUnC,EAASoC,EAAavC,EAAMwC,EAAkBV,GAC/H,GAAI9N,GAAQhC,IACZ,KACI,GAAIyQ,GAAWJ,EAAYC,EACvBI,EAAW1Q,KAAKmQ,SAAWnC,EAAO,IAClC2C,EAAmBF,EAAYA,EAAWC,EAAWD,EAAWC,EAAWD,EAAWC,EAAY,CACtG1Q,MAAKsO,aAAeA,EAAeA,EAAemC,EAAWE,EAC7DL,EAAWD,EAAYM,EACvBxC,IAAqBsC,EAAWE,GAAoB3Q,KAAKmQ,SAAW,GAEpE,IAAIhE,IAASgC,QADboC,GAAgBjC,EAAekC,GAAoBE,GAAa,GAAiB,MAAZvC,EAAmBA,EAAUoC,EAC/DK,gBAAiBtC,EAAcN,KAAMA,EACxEhO,MAAK6Q,YAAcf,EACH,IAAZ3B,EACAnO,KAAKmG,QAAQ,QAASgG,EAAM,SAAUvC,GAClC5H,EAAM8O,gBAAgBlH,EAAcuE,EAASoC,EAAajC,EAAckC,EAAkBG,EAAkBL,KAG/F,MAAZnC,GAAmBG,IAAiBtO,KAAKmQ,SAC9CnQ,KAAKmG,QAAQ,MAAOgG,EAAM,SAAUvC,GAChC5H,EAAM8O,gBAAgBlH,EAAcuE,EAASoC,EAAajC,EAAckC,EAAkBG,EAAkBL,KAIhHtQ,KAAKmG,QAAQ,WAAYgG,EAAM,SAAUvC,GACrC5H,EAAM8O,gBAAgBlH,EAAcuE,EAASoC,EAAajC,EAAckC,EAAkBG,EAAkBL,KAIxH,MAAO1H,GACH4F,qBAAqBxO,KAAKyO,SAC1BzO,KAAKmG,QAAQ,OAAQyC,KAG7BmF,EAAe7N,UAAU4Q,gBAAkB,SAAU3E,EAAM4E,EAAMC,EAAOC,EAAQC,EAASC,EAAQC,GAC7F,GAAIpP,GAAQhC,KACRmO,EAAU4C,EACVR,EAAcS,EACdK,EAAiBF,EACjB7C,EAAe2C,EACfT,EAAmBU,EACnBZ,EAAWc,EACXtB,EAAa9P,KAAK6Q,WAClB1C,KAAYhC,EAAKgC,SAAWhC,EAAKgC,UAAYoC,IAC7CpC,EAAUhC,EAAKgC,SAEnBnO,KAAKmO,QAAUA,EACfnO,KAAKgO,KAAO7B,EAAK6B,MACZM,EAAekC,IAAqBxQ,KAAKmQ,SAAWhE,EAAK6B,KAAO,MAAS,GAAiB,MAAZG,IAC/EnO,KAAKyO,QAAU6C,sBAAsB,WAC7BtP,EAAMgN,iBACNhN,EAAMuN,cAAcxR,MAAM+R,EAAa,SAAW,SAAW3B,EAAU,KAE3EnM,EAAMD,QAAQpD,aAAa,gBAAiBwP,EAAQoD,cAExDhB,EAAcpC,EACdqC,EAAmBlC,GAElBtO,KAAKoO,WACFE,EAAetO,KAAKmQ,UAAYhC,EAAU,IAC1CnO,KAAKwR,SAAWC,OAAOC,WAAW,WAC9B1P,EAAMgO,aAAaC,KAAKC,MAAO5B,EAAcgC,EAAUnC,EAASoC,EAAapE,EAAK6B,KAAMwC,EAAkBV,IAC1G9P,KAAKmQ,SAAW,IAAOkB,GAG3BrR,KAAKwR,SAAWC,OAAOC,WAAW,WAC9B1P,EAAMsM,aAAetM,EAAMmM,QAAU,EACjCnM,EAAMgN,iBACNhN,EAAMuN,cAAcxR,MAAM+R,EAAa,SAAW,SAAW,MAEjE9N,EAAMD,QAAQpD,aAAa,gBAAiB,KAC5CqD,EAAM2P,YACP,OAIf5D,EAAe7N,UAAUkQ,iBAAmB,WACxC,GAAIpO,GAAQhC,KACRiL,EAAMjL,KAAK+B,QAAQ9E,uBAAuB2Q,GAAY,EACpB,UAAlC5N,KAAK4R,kBAAkBC,OACvB,GAAKC,iBAAeC,QAAQ9G,GACxBkF,SAAUnQ,KAAK4R,kBAAkBzB,SACjC6B,KAAM,WAAahS,KAAK4R,kBAAkBC,OAC1CI,eAAgBjS,KAAK4R,kBAAkBM,OACvCC,MAAO,WACiC,WAAhCnQ,EAAM4M,aAAazK,UACnBnC,EAAMoQ,kBAGdC,IAAK,WACDpH,EAAIjP,UAAUgK,IAAI,oBAIU,WAA/BhG,KAAK4O,aAAazK,UACvBnE,KAAKoS,kBAGbrE,EAAe7N,UAAUyO,eAAiB,WACtC,GAAIkB,GAAU7P,KAAK+B,QAAQ/F,UACvB8T,EAAaD,EAAQxT,SAAS,aAClCwT,GAAQ7J,IAxUK,oBA0Ub,KAAK,GAAI9J,GAAI8D,KAAKmO,QAASjS,EADf,IAC0BA,KAClCA,GAAK,IACG,MACJA,EAAI,KAEJ8D,KAAKgP,iBACLhP,KAAKuP,cAAcxR,MAAM+R,EAAa,SAAW,SAAY9P,KAAKmO,QAAU,IAAQjS,EAAI,IAAO,OAGvG8D,MAAK+B,QAAQpD,aAAa,gBAAiB,KAC3CqB,KAAK2R,UACL,IAAIxF,IAAS6B,KAAMhO,KAAKgO,KAAM4C,gBAAiB5Q,KAAKsO,aAAcH,QAAS,IAC3EmE,cAAatS,KAAKwR,UAClBxR,KAAKmG,QAAQ,MAAOgG,GACpBnM,KAAKsO,aAAetO,KAAKmO,QAAU,GAEvCJ,EAAe7N,UAAUkS,eAAiB,WACtC,GAAInH,GAAMjL,KAAK+B,QAAQ9E,uBAAuB2Q,GAAY,GACtDsB,EAAUlP,KAAKsP,YACnBJ,GAAQnR,MAAMqR,MAAQmD,KAAKC,IAAItD,EAAQuD,YAAaxH,EAAIwH,aAAe,KACvEvD,EAAQnR,MAAM2U,OAASH,KAAKC,IAAItD,EAAQyD,aAAc1H,EAAI0H,cAAgB,KAC1E1H,EAAIjP,UAAUgK,IAAI,mBAEtB+H,EAAe7N,UAAUyR,SAAW,WAChC,GAAInC,GAAOxP,KAAK+B,QAAQ9E,uBAAuB2Q,GAAY,EAQ3D,IAPM5N,KAAK+B,QAAQ/F,UAAUK,SArWnB,mBAsWNuW,cAAY5S,KAAK+B,SAErB/B,KAAK+B,QAAQ/F,UAAUC,OAtWV,qBAuWyB,SAAlC+D,KAAK4R,kBAAkBC,QACvBrC,EAAKxT,UAAUC,OAAO,iBAES,WAA/B+D,KAAK4O,aAAazK,SAAuB,CACzC,GAAI8G,GAAMjL,KAAKsP,YACfE,GAAKxT,UAAUC,OAAO,kBACtBgP,EAAIlN,MAAMqR,MAAQ,OAClBnE,EAAIlN,MAAM2U,OAAS,SAG3B3E,EAAe7N,UAAU2S,YAAc,WACnC,GAAIrD,GAAOxP,KAAK+B,QAAQ9E,uBAAuB2Q,GAAY,GACvDkF,EAAW9S,KAAK+B,QAAQ9E,uBAAuB,cAAc,IAC7DuS,EAAKtJ,WAAW,IAA6B,SAAtBlG,KAAKyG,cAAiD,QAAtBzG,KAAKyG,aAI5D+I,EAAKvQ,YAAY6T,GAHjBtD,EAAKxQ,aAAa8T,EAAUtD,EAAKtJ,WAAW,KAMpD6H,EAAe7N,UAAU6L,QAAU,WAC/BtH,aAAWzE,KAAK+B,SACZ4D,aAAc3F,KAAK+B,QAAQ4C,YAAc,YAAaoO,gBAAiB,IAAKC,gBAAiB,MAAOC,gBAAiB,OAG7HlF,EAAe7N,UAAUyC,WAAa,WAClCqF,eAAahC,IAAIhG,KAAK+B,QAAS,QAAS/B,KAAKiI,aAAcjI,OAE/D+N,EAAe7N,UAAU2H,aAAe,WACpCG,eAAa/L,OAAO+D,KAAK+B,QAAS,QAAS/B,KAAKiI,eAUpD8F,EAAe7N,UAAUkK,kBAAoB,SAAUC,EAASC,GAC5D,GAAIW,GAAMjL,KAAK+B,QACXmR,GAAa,CACHlT,MAAK+B,QAAQhG,cAAc,mBAAmBC,UAChDK,SAAS,iBACjB6W,GAAa,GAEjBjS,EAAOf,UAAUkK,kBAAkBpN,KAAKgD,KAAMqK,EAASC,EACvD,KAAK,GAAItP,GAAK,EAAGC,EAAKC,OAAOC,KAAKkP,GAAUrP,EAAKC,EAAGG,OAAQJ,IAExD,OADWC,EAAGD,IAEV,IAAK,UACDgF,KAAK8O,aACL9O,KAAK+O,gBACDmE,IACAnD,cAAY/P,KAAK+B,SACjBmR,GAAa,GAEblT,KAAKgP,gBACLhP,KAAKiP,iBAEThE,EAAItM,aAAa,aAAcsM,EAAItG,YAAc,YACjD,MACJ,KAAK,UACI2F,EAAQrE,SACTjG,KAAK6S,aAET,MACJ,KAAK,eACD7S,KAAK6S,aACL,MACJ,KAAK,iBACGxI,EAAQ2E,eACRhP,KAAKiP,iBAGLhT,SAAO+D,KAAKuP,cAEhB,MACJ,KAAK,eACGlF,EAAQuE,aAAazK,WACrB8G,EAAIjP,UAAUC,OAAO,UAAYqO,EAAQsE,aAAazK,SAAS0K,eAC/D7O,KAAKmP,gBAAgBnP,KAAKsP,gBAE1BjF,EAAQuE,aAAaS,UAAYhF,EAAQuE,aAAaQ,SACtDnE,EAAIkI,YAAYnT,KAAKsP,cACrBtP,KAAK+O,mBAazBhB,EAAe7N,UAAUwK,QAAU,WAC/B1K,KAAK+B,QAAQvF,SAEjB4D,GACIe,YAAS,IACV4M,EAAe7N,UAAW,qBAAkB,IAC/CE,GACIe,WAAS,MACV4M,EAAe7N,UAAW,eAAY,IACzCE,GACIe,WAAS,SACV4M,EAAe7N,UAAW,mBAAgB,IAC7CE,GACIe,WAAS,KACV4M,EAAe7N,UAAW,cAAW,IACxCE,GACIe,YAAS,IACV4M,EAAe7N,UAAW,eAAY,IACzCE,GACIe,YAAS,IACV4M,EAAe7N,UAAW,gBAAa,IAC1CE,GACIe,WAAS,KACV4M,EAAe7N,UAAW,eAAY,IACzCE,GACIe,WAAS,KACV4M,EAAe7N,UAAW,cAAW,IACxCE,GACIe,YAAS,IACV4M,EAAe7N,UAAW,eAAY,IACzCE,GACIe,YAAS,IACV4M,EAAe7N,UAAW,0BAAuB,IACpDE,GACIgT,aAAYvF,IACbE,EAAe7N,UAAW,mBAAgB,IAC7CE,GACIgT,aAAYtF,IACbC,EAAe7N,UAAW,wBAAqB,IAClDE,GACIwK,WACDmD,EAAe7N,UAAW,cAAW,IACxCE,GACIwK,WACDmD,EAAe7N,UAAW,YAAS,IACtCE,GACIwK,WACDmD,EAAe7N,UAAW,eAAY,IACzCE,GACIwK,WACDmD,EAAe7N,UAAW,UAAO,IACpCE,GACIwK,WACDmD,EAAe7N,UAAW,WAAQ,IACrC6N,EAAiB3N,GACbyK,yBACDkD,IAEL1O"}
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 20.1.47
3
+ * version : 20.2.36
4
4
  * Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing