@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.umd.min.js","sources":["../src/common/common.js","../src/drop-down-button/drop-down-button.js","../src/split-button/split-button.js","../src/progress-button/progress-button.js","../src/button-group/button-group.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, extend, deleteObject, Property, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @param {Object} props - Specifies the properties\n * @param {string[]} model - Specifies the model\n * @returns {Object} Component Model\n */\nexport function getModel(props, model) {\n var obj = extend({}, props);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((model).indexOf(prop) < 0) {\n deleteObject(obj, prop);\n }\n }\n return obj;\n}\n/** @hidden\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {number} keyCode - Specifies the keycode\n * @returns {void}\n */\nexport function upDownKeyHandler(ul, keyCode) {\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\n var liIdx = defaultIdx;\n var li;\n var selectedLi = ul.querySelector('.e-selected');\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains('e-focused')) {\n li = ul.children[i];\n liIdx = i;\n li.classList.remove('e-focused');\n if (keyCode === 40) {\n liIdx++;\n }\n else {\n liIdx--;\n }\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\n liIdx = defaultIdx;\n }\n }\n }\n li = ul.children[liIdx];\n liIdx = isValidLI(ul, li, liIdx, keyCode);\n if (liIdx !== -1) {\n addClass([ul.children[liIdx]], 'e-focused');\n ul.children[liIdx].focus();\n }\n}\n/**\n * Get Valid LI element\n *\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {Element} li - Specifies the LI element\n * @param {number} index - Specifies the index\n * @param {number} keyCode - Specifies the keycode\n * @param {number} count - Specifies the count\n * @returns {number} - Index\n */\nfunction isValidLI(ul, li, index, keyCode, count) {\n if (count === void 0) { count = 0; }\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\n }\n else {\n if (keyCode === 40) {\n index++;\n }\n else {\n index--;\n }\n }\n }\n li = ul.children[index];\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n count++;\n if (count === ul.childElementCount) {\n return index = -1;\n }\n index = isValidLI(ul, li, index, keyCode, count);\n }\n return index;\n}\n/** @hidden\n * @param {HTMLElement} popup - Specifies the popup element.\n * @returns {void}\n */\nexport function setBlankIconStyle(popup) {\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","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","import { addClass, createElement as internalCreateElement, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\n/**\n * Initialize ButtonGroup CSS component with specified properties.\n * ```html\n * <div id='buttongroup'>\n * <button></button>\n * <button></button>\n * <button></button>\n * </div>\n * ```\n * ```typescript\n * createButtonGroup('#buttongroup', {\n * cssClass: 'e-outline',\n * buttons: [\n * { content: 'Day' },\n * { content: 'Week' },\n * { content: 'Work Week'}\n * ]\n * });\n * ```\n *\n * @param {string} selector\n * @param {CreateButtonGroupModel} options\n * @returns HTMLElement\n */\n/**\n * Creates button group.\n *\n * @param {string} selector - Specifies the selector.\n * @param {CreateButtonGroupModel} options - Specifies the button group model.\n * @param {Function} createElement - Specifies the element.\n * @returns {HTMLElement} - Button group element.\n */\nexport function createButtonGroup(selector, options, createElement) {\n if (options === void 0) { options = {}; }\n var child;\n var btnElem;\n var nextChild;\n var btnModel;\n if (isNullOrUndefined(createElement)) {\n createElement = internalCreateElement;\n }\n var wrapper = document.querySelector(selector);\n addClass([wrapper], ['e-btn-group', 'e-css']);\n wrapper.setAttribute('role', 'group');\n var childs = wrapper.children;\n options.buttons = options.buttons || [];\n for (var i = 0, j = 0; j < childs.length; i++, j++) {\n child = childs[j];\n btnModel = options.buttons[i];\n if (btnModel !== null) {\n if (child.tagName === 'BUTTON') {\n btnElem = child;\n }\n else {\n btnElem = createElement('label');\n nextChild = childs[j + 1];\n if (nextChild) {\n wrapper.insertBefore(btnElem, nextChild);\n }\n else {\n wrapper.appendChild(btnElem);\n }\n if (child.id) {\n btnElem.setAttribute('for', child.id);\n }\n if (btnModel && btnModel.disabled) {\n child.disabled = true;\n }\n j++;\n }\n if (options.cssClass && btnModel && !btnModel.cssClass) {\n btnModel.cssClass = options.cssClass;\n }\n new Button(btnModel || {}, btnElem);\n }\n }\n return wrapper;\n}\n"],"names":["getModel","props","model","obj","extend","_i","_a","Object","keys","length","prop","indexOf","deleteObject","upDownKeyHandler","ul","keyCode","defaultIdx","childElementCount","liIdx","selectedLi","querySelector","classList","remove","i","len","children","contains","isValidLI","addClass","focus","li","index","count","setBlankIconStyle","popup","blankIconList","slice","call","getElementsByClassName","iconLi","isNullOrUndefined","cssProp","icon","enableRtl","padding","margin","size","parseInt","getComputedStyle","fontSize","paddingLeft","forEach","style","__extends","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","Item","_super","apply","Property","ChildProperty","classNames","DropDownButton","options","element","_this","isPopupCreated","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","closePopup","render","initialize","disabled","wireEvents","renderComplete","addItems","items","text","newItem","idx","j","splice","createItems","removeItems","isUniqueId","refresh","len_1","id","getULElement","createPopup","div","createElement","className","document","body","appendChild","dropDown","Popup","relateTo","collision","X","Y","position","targetType","content","getTargetElement","refreshPosition","hide","attributes","getPopUpElement","textContent","cssClass","split","select","appendItems","span","item","eventArgs","showIcon","hasIcon","innerHTML","attrs","role","tabindex","tempItem","SanitizeHtmlHelper","sanitize","url","separator","getUniqueID","getModuleName","createAnchor","add","iconCss","childNodes","insertBefore","trigger","field","href","button","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","selector","parentElement","e","altKey","keyEventHandler","preventDefault","getLI","tagName","closest","trgt","popupElem","splitButton","getComponent","isReact","appendReactElement","beforeOpenArgs","event","cancel","observedArgs","ul_1","show","setAttribute","openArgs","focusEle","beforeCloseArgs","ul_2","closeArgs","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Event","NotifyPropertyChanges","Component","TAGNAME","SplitButton","ele","ejInstance","getValue","btn","type","wrapper","nodeName","nodeValue","parentNode","setValue","initWrapper","createPrimaryButton","renderControl","createSecondaryButton","secondaryBtnObj","setAria","btnModel","primaryBtnObj","btnElem","dropDownBtnModel","beforeItemRender","args","open","close","beforeOpen","callBackPromise","Deferred","resolve","beforeClose","aria-expanded","aria-haspopup","aria-label","aria-owns","concat","primaryBtnClickHandler","KeyboardEvents","keyAction","btnKeyBoardHandler","keyConfigs","altdownarrow","getInstance","action","promise","Promise","reject","catch","then","HIDESPINNER","PROGRESSACTIVE","CONTENTCLS","SpinSettings","AnimationSettings","ProgressButton","step","init","start","percent","isPaused","startProgress","progressTime","stop","cancelAnimationFrame","timerId","progressComplete","finishProgress","spinSettings","toLowerCase","setContent","createSpinner","enableProgress","createProgress","spinner","setSpinPosition","width","template","getSpinner","getProgress","cont","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","child","nextChild","internalCreateElement","childs","buttons"],"mappings":"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"}
1
+ {"version":3,"file":"ej2-splitbuttons.umd.min.js","sources":["../src/common/common.js","../src/drop-down-button/drop-down-button.js","../src/split-button/split-button.js","../src/progress-button/progress-button.js","../src/button-group/button-group.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, extend, deleteObject, Property, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @param {Object} props - Specifies the properties\n * @param {string[]} model - Specifies the model\n * @returns {Object} Component Model\n */\nexport function getModel(props, model) {\n var obj = extend({}, props);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((model).indexOf(prop) < 0) {\n deleteObject(obj, prop);\n }\n }\n return obj;\n}\n/** @hidden\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {number} keyCode - Specifies the keycode\n * @returns {void}\n */\nexport function upDownKeyHandler(ul, keyCode) {\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\n var liIdx = defaultIdx;\n var li;\n var selectedLi = ul.querySelector('.e-selected');\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains('e-focused')) {\n li = ul.children[i];\n liIdx = i;\n li.classList.remove('e-focused');\n if (keyCode === 40) {\n liIdx++;\n }\n else {\n liIdx--;\n }\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\n liIdx = defaultIdx;\n }\n }\n }\n li = ul.children[liIdx];\n liIdx = isValidLI(ul, li, liIdx, keyCode);\n if (liIdx !== -1) {\n addClass([ul.children[liIdx]], 'e-focused');\n ul.children[liIdx].focus();\n }\n}\n/**\n * Get Valid LI element\n *\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {Element} li - Specifies the LI element\n * @param {number} index - Specifies the index\n * @param {number} keyCode - Specifies the keycode\n * @param {number} count - Specifies the count\n * @returns {number} - Index\n */\nfunction isValidLI(ul, li, index, keyCode, count) {\n if (count === void 0) { count = 0; }\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\n }\n else {\n if (keyCode === 40) {\n index++;\n }\n else {\n index--;\n }\n }\n }\n li = ul.children[index];\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n count++;\n if (count === ul.childElementCount) {\n return index = -1;\n }\n index = isValidLI(ul, li, index, keyCode, count);\n }\n return index;\n}\n/** @hidden\n * @param {HTMLElement} popup - Specifies the popup element.\n * @returns {void}\n */\nexport function setBlankIconStyle(popup) {\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","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","import { addClass, createElement as internalCreateElement, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\n/**\n * Initialize ButtonGroup CSS component with specified properties.\n * ```html\n * <div id='buttongroup'>\n * <button></button>\n * <button></button>\n * <button></button>\n * </div>\n * ```\n * ```typescript\n * createButtonGroup('#buttongroup', {\n * cssClass: 'e-outline',\n * buttons: [\n * { content: 'Day' },\n * { content: 'Week' },\n * { content: 'Work Week'}\n * ]\n * });\n * ```\n *\n * @param {string} selector\n * @param {CreateButtonGroupModel} options\n * @returns HTMLElement\n */\n/**\n * Creates button group.\n *\n * @param {string} selector - Specifies the selector.\n * @param {CreateButtonGroupModel} options - Specifies the button group model.\n * @param {Function} createElement - Specifies the element.\n * @returns {HTMLElement} - Button group element.\n */\nexport function createButtonGroup(selector, options, createElement) {\n if (options === void 0) { options = {}; }\n var child;\n var btnElem;\n var nextChild;\n var btnModel;\n if (isNullOrUndefined(createElement)) {\n createElement = internalCreateElement;\n }\n var wrapper = document.querySelector(selector);\n addClass([wrapper], ['e-btn-group', 'e-css']);\n wrapper.setAttribute('role', 'group');\n var childs = wrapper.children;\n options.buttons = options.buttons || [];\n for (var i = 0, j = 0; j < childs.length; i++, j++) {\n child = childs[j];\n btnModel = options.buttons[i];\n if (btnModel !== null) {\n if (child.tagName === 'BUTTON') {\n btnElem = child;\n }\n else {\n btnElem = createElement('label');\n nextChild = childs[j + 1];\n if (nextChild) {\n wrapper.insertBefore(btnElem, nextChild);\n }\n else {\n wrapper.appendChild(btnElem);\n }\n if (child.id) {\n btnElem.setAttribute('for', child.id);\n }\n if (btnModel && btnModel.disabled) {\n child.disabled = true;\n }\n j++;\n }\n if (options.cssClass && btnModel && !btnModel.cssClass) {\n btnModel.cssClass = options.cssClass;\n }\n new Button(btnModel || {}, btnElem);\n }\n }\n return wrapper;\n}\n"],"names":["getModel","props","model","obj","extend","_i","_a","Object","keys","length","prop","indexOf","deleteObject","upDownKeyHandler","ul","keyCode","defaultIdx","childElementCount","liIdx","selectedLi","querySelector","classList","remove","i","len","children","contains","isValidLI","addClass","focus","li","index","count","setBlankIconStyle","popup","blankIconList","slice","call","getElementsByClassName","iconLi","isNullOrUndefined","cssProp","icon","enableRtl","padding","margin","size","parseInt","getComputedStyle","fontSize","paddingLeft","forEach","style","__extends","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","Item","_super","apply","Property","ChildProperty","classNames","DropDownButton","options","element","_this","isPopupCreated","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","closePopup","render","initialize","disabled","wireEvents","renderComplete","addItems","items","text","newItem","idx","j","splice","createItems","removeItems","isUniqueId","refresh","len_1","id","getULElement","createPopup","div","createElement","className","document","body","appendChild","dropDown","Popup","relateTo","collision","X","Y","position","targetType","content","getTargetElement","refreshPosition","hide","attributes","getPopUpElement","textContent","cssClass","split","select","appendItems","span","item","eventArgs","showIcon","hasIcon","innerHTML","attrs","role","tabindex","tempItem","url","separator","aria-label","getUniqueID","getModuleName","enableHtmlSanitizer","createAnchor","add","iconCss","childNodes","insertBefore","trigger","field","SanitizeHtmlHelper","sanitize","href","button","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","selector","parentElement","e","altKey","keyEventHandler","preventDefault","getLI","tagName","closest","trgt","popupElem","splitButton","getComponent","isReact","appendReactElement","renderReactTemplates","beforeOpenArgs","event","cancel","observedArgs","ul_1","show","setAttribute","openArgs","focusEle","beforeCloseArgs","ul_2","closeArgs","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Event","NotifyPropertyChanges","Component","TAGNAME","SplitButton","ele","ejInstance","getValue","btn","type","wrapper","nodeName","nodeValue","parentNode","setValue","initWrapper","createPrimaryButton","renderControl","createSecondaryButton","secondaryBtnObj","setAria","btnModel","primaryBtnObj","btnElem","dropDownBtnModel","beforeItemRender","args","open","close","beforeOpen","callBackPromise","Deferred","resolve","beforeClose","aria-expanded","aria-haspopup","aria-owns","concat","primaryBtnClickHandler","KeyboardEvents","keyAction","btnKeyBoardHandler","keyConfigs","altdownarrow","getInstance","action","promise","Promise","reject","catch","then","HIDESPINNER","PROGRESSACTIVE","CONTENTCLS","SpinSettings","AnimationSettings","ProgressButton","step","init","start","percent","isPaused","startProgress","progressTime","stop","cancelAnimationFrame","timerId","progressComplete","finishProgress","spinSettings","toLowerCase","setContent","createSpinner","enableProgress","createProgress","spinner","setSpinPosition","width","template","getSpinner","getProgress","cont","setContentIcon","contElem","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","child","nextChild","internalCreateElement","childs","buttons"],"mappings":"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"}