@syncfusion/ej2-splitbuttons 21.2.5 → 22.1.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +1 -0
- package/CHANGELOG.md +3 -3
- package/dist/ej2-splitbuttons.min.js +2 -2
- package/dist/ej2-splitbuttons.umd.min.js +2 -2
- package/dist/ej2-splitbuttons.umd.min.js.map +1 -1
- package/dist/es6/ej2-splitbuttons.es2015.js +42 -5
- package/dist/es6/ej2-splitbuttons.es2015.js.map +1 -1
- package/dist/es6/ej2-splitbuttons.es5.js +42 -5
- package/dist/es6/ej2-splitbuttons.es5.js.map +1 -1
- package/dist/global/ej2-splitbuttons.min.js +2 -2
- package/dist/global/ej2-splitbuttons.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +7 -7
- package/src/drop-down-button/drop-down-button.js +29 -4
- package/src/progress-button/progress-button-model.d.ts +2 -1
- package/src/progress-button/progress-button.d.ts +2 -1
- package/src/split-button/split-button.js +13 -1
- package/styles/bootstrap-dark.css +0 -84
- package/styles/bootstrap.css +0 -7
- package/styles/bootstrap4.css +8 -5
- package/styles/bootstrap5-dark.css +0 -7
- package/styles/bootstrap5.css +0 -7
- package/styles/button-group/_layout.scss +7 -1
- package/styles/button-group/_material3-dark-definition.scss +1 -0
- package/styles/button-group/_material3-definition.scss +31 -0
- package/styles/button-group/_theme.scss +67 -1
- package/styles/button-group/material3-dark.css +902 -0
- package/styles/button-group/material3-dark.scss +5 -0
- package/styles/button-group/material3.css +958 -0
- package/styles/button-group/material3.scss +5 -0
- package/styles/drop-down-button/_layout.scss +7 -2
- package/styles/drop-down-button/_material3-dark-definition.scss +1 -0
- package/styles/drop-down-button/_material3-definition.scss +51 -0
- package/styles/drop-down-button/_theme.scss +6 -1
- package/styles/drop-down-button/icons/_material3-dark.scss +1 -0
- package/styles/drop-down-button/material3-dark.css +293 -0
- package/styles/drop-down-button/material3-dark.scss +7 -0
- package/styles/drop-down-button/material3.css +349 -0
- package/styles/drop-down-button/material3.scss +7 -0
- package/styles/fabric-dark.css +0 -84
- package/styles/fabric.css +0 -7
- package/styles/fluent-dark.css +4 -7
- package/styles/fluent.css +4 -7
- package/styles/highcontrast-light.css +0 -84
- package/styles/highcontrast.css +0 -84
- package/styles/material-dark.css +0 -84
- package/styles/material.css +0 -7
- package/styles/material3-dark.css +2000 -0
- package/styles/material3-dark.scss +6 -0
- package/styles/material3.css +2050 -0
- package/styles/material3.scss +6 -0
- package/styles/progress-button/_material3-dark-definition.scss +1 -0
- package/styles/progress-button/_material3-definition.scss +25 -0
- package/styles/progress-button/_theme.scss +220 -65
- package/styles/progress-button/bootstrap-dark.css +0 -84
- package/styles/progress-button/bootstrap.css +0 -7
- package/styles/progress-button/bootstrap4.css +0 -5
- package/styles/progress-button/bootstrap5-dark.css +0 -7
- package/styles/progress-button/bootstrap5.css +0 -7
- package/styles/progress-button/fabric-dark.css +0 -84
- package/styles/progress-button/fabric.css +0 -7
- package/styles/progress-button/fluent-dark.css +0 -7
- package/styles/progress-button/fluent.css +0 -7
- package/styles/progress-button/highcontrast-light.css +0 -84
- package/styles/progress-button/highcontrast.css +0 -84
- package/styles/progress-button/material-dark.css +0 -84
- package/styles/progress-button/material.css +0 -7
- package/styles/progress-button/material3-dark.css +557 -0
- package/styles/progress-button/material3-dark.scss +6 -0
- package/styles/progress-button/material3.css +613 -0
- package/styles/progress-button/material3.scss +6 -0
- package/styles/progress-button/tailwind-dark.css +0 -5
- package/styles/progress-button/tailwind.css +0 -5
- package/styles/split-button/_layout.scss +59 -2
- package/styles/split-button/_material3-dark-definition.scss +1 -0
- package/styles/split-button/_material3-definition.scss +26 -0
- package/styles/split-button/_theme.scss +21 -1
- package/styles/split-button/bootstrap4.css +8 -0
- package/styles/split-button/fluent-dark.css +4 -0
- package/styles/split-button/fluent.css +4 -0
- package/styles/split-button/material3-dark.css +413 -0
- package/styles/split-button/material3-dark.scss +7 -0
- package/styles/split-button/material3.css +463 -0
- package/styles/split-button/material3.scss +7 -0
- package/styles/split-button/tailwind-dark.css +6 -0
- package/styles/split-button/tailwind.css +6 -0
- package/styles/tailwind-dark.css +6 -5
- package/styles/tailwind.css +6 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ej2-splitbuttons.umd.min.js","sources":["../src/common/common.js","../src/drop-down-button/drop-down-button.js","../src/split-button/split-button.js","../src/progress-button/progress-button.js","../src/button-group/button-group.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, extend, deleteObject, Property, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @param {Object} props - Specifies the properties\n * @param {string[]} model - Specifies the model\n * @returns {Object} Component Model\n */\nexport function getModel(props, model) {\n var obj = extend({}, props);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((model).indexOf(prop) < 0) {\n deleteObject(obj, prop);\n }\n }\n return obj;\n}\n/** @hidden\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {number} keyCode - Specifies the keycode\n * @returns {void}\n */\nexport function upDownKeyHandler(ul, keyCode) {\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\n var liIdx = defaultIdx;\n var li;\n var selectedLi = ul.querySelector('.e-selected');\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains('e-focused')) {\n li = ul.children[i];\n liIdx = i;\n li.classList.remove('e-focused');\n if (keyCode === 40) {\n liIdx++;\n }\n else {\n liIdx--;\n }\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\n liIdx = defaultIdx;\n }\n }\n }\n li = ul.children[liIdx];\n liIdx = isValidLI(ul, li, liIdx, keyCode);\n if (liIdx !== -1) {\n addClass([ul.children[liIdx]], 'e-focused');\n ul.children[liIdx].focus();\n }\n}\n/**\n * Get Valid LI element\n *\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {Element} li - Specifies the LI element\n * @param {number} index - Specifies the index\n * @param {number} keyCode - Specifies the keycode\n * @param {number} count - Specifies the count\n * @returns {number} - Index\n */\nfunction isValidLI(ul, li, index, keyCode, count) {\n if (count === void 0) { count = 0; }\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\n }\n else {\n if (keyCode === 40) {\n index++;\n }\n else {\n index--;\n }\n }\n }\n li = ul.children[index];\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n count++;\n if (count === ul.childElementCount) {\n return index = -1;\n }\n index = isValidLI(ul, li, index, keyCode, count);\n }\n return index;\n}\n/** @hidden\n * @param {HTMLElement} popup - Specifies the popup element.\n * @returns {void}\n */\nexport function setBlankIconStyle(popup, blankIcon) {\n var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon'));\n if (blankIcon) {\n var menuItem = [].slice.call(popup.getElementsByClassName('e-item'));\n menuItem.forEach(function (li) {\n if (li.style.paddingLeft || li.style.paddingRight) {\n li.removeAttribute('style');\n }\n });\n }\n if (!blankIconList.length) {\n return;\n }\n var iconLi = popup.querySelector('.e-item:not(.e-blank-icon):not(.e-separator)');\n if (isNullOrUndefined(iconLi)) {\n return;\n }\n if (iconLi.classList.contains('e-url')) {\n iconLi = iconLi.querySelector('.e-menu-url');\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n var cssProp;\n var enableRtl = popup.classList.contains('e-rtl');\n if (enableRtl) {\n cssProp = { padding: 'paddingRight', margin: 'marginLeft' };\n }\n else {\n cssProp = { padding: 'paddingLeft', margin: 'marginRight' };\n }\n /* eslint-disable */\n var size = parseInt(getComputedStyle(icon).fontSize, 10) + parseInt((enableRtl ? getComputedStyle(icon)[cssProp.margin] : getComputedStyle(icon)[cssProp.margin]), 10)\n + parseInt(getComputedStyle(iconLi).paddingLeft, 10) + \"px\";\n blankIconList.forEach(function (li) {\n if (li.classList.contains('e-url')) {\n li.querySelector('.e-menu-url').style[cssProp.padding] = size;\n }\n else {\n li.style[cssProp.padding] = size;\n }\n });\n /* eslint-enable */\n}\n/**\n * Defines the items of Split Button/DropDownButton.\n */\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"separator\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"url\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"disabled\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Collection, Event, NotifyPropertyChanges, detach, Property, EventHandler, isRippleEnabled } 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['type'] = 'button',\n _a['aria-label'] = this.element.textContent ? this.element.textContent : 'dropdownbutton',\n _a));\n if (this.cssClass) {\n addClass([div], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.isPopupCreated = true;\n };\n DropDownButton.prototype.getTargetElement = function () {\n return typeof (this.target) === 'string' ? select(this.target) : this.target;\n };\n DropDownButton.prototype.createItems = function (appendItems) {\n var items = this.items;\n var showIcon = this.hasIcon(this.items, 'iconCss');\n var span;\n var item;\n var li;\n var eventArgs;\n var ul = this.getULElement();\n if (ul) {\n ul.innerHTML = '';\n }\n else {\n ul = this.createElement('ul', {\n attrs: { 'role': 'menu', 'tabindex': '0' }\n });\n }\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n var tempItem = item.text;\n li = this.createElement('li', {\n innerHTML: item.url ? '' : tempItem,\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator ? { 'role': 'separator', 'tabindex': '-1' } : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': tempItem },\n id: item.id ? item.id : getUniqueID('e-' + this.getModuleName() + '-item')\n });\n if (this.enableHtmlSanitizer) {\n li.textContent = item.url ? '' : tempItem;\n }\n else {\n li.innerHTML = item.url ? '' : tempItem;\n }\n if (item.url) {\n li.appendChild(this.createAnchor(item));\n li.classList.add('e-url');\n }\n if (item.iconCss) {\n span = this.createElement('span', { className: classNames.ICON + ' ' + item.iconCss });\n if (item.url) {\n li.childNodes[0].appendChild(span);\n }\n else {\n li.insertBefore(span, li.childNodes[0]);\n }\n }\n else {\n if (showIcon && !item.separator) {\n li.classList.add('e-blank-icon');\n }\n }\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n eventArgs = { item: item, element: li };\n this.trigger('beforeItemRender', eventArgs);\n ul.appendChild(li);\n }\n if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\n }\n };\n DropDownButton.prototype.hasIcon = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n DropDownButton.prototype.createAnchor = function (item) {\n var tempItem = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\n return this.createElement('a', { className: 'e-menu-text e-menu-url', innerHTML: tempItem, attrs: { 'href': item.url } });\n };\n DropDownButton.prototype.initialize = function () {\n this.button = new Button({\n iconCss: this.iconCss, iconPosition: this.iconPosition, cssClass: this.cssClass, content: this.content,\n disabled: this.disabled, enableRtl: this.enableRtl, enablePersistence: this.enablePersistence\n });\n this.button.createElement = this.createElement;\n this.button.appendTo(this.element);\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.appendArrowSpan();\n this.setActiveElem([this.element]);\n 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 && this.dropDown) {\n this.dropDown.element = null;\n this.dropDown = undefined;\n }\n }\n this.isPopupCreated = false;\n };\n DropDownButton.prototype.getPopUpElement = function () {\n var val = null;\n if (this.dropDown) {\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 if (this.closeActionEvents) {\n EventHandler.add(popupElement, this.closeActionEvents, this.focusoutHandler, this);\n }\n }\n this.rippleFn = rippleEffect(popupElement, { selector: '.' + classNames.ITEM });\n };\n DropDownButton.prototype.popupUnWireEvents = function () {\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n if (popupElement && popupElement.parentElement) {\n EventHandler.remove(popupElement, 'click', this.clickHandler);\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\n if (this.closeActionEvents) {\n EventHandler.remove(popupElement, this.closeActionEvents, this.focusoutHandler);\n }\n }\n if (isRippleEnabled && this.rippleFn) {\n this.rippleFn();\n }\n };\n /**\n * Handles the keyboard interactions.\n *\n * @param {KeyboardEventArgs} e - Specifies keyboard event args.\n * @returns {void}\n * @hidden\n */\n DropDownButton.prototype.keyBoardHandler = function (e) {\n if (e.target === this.element && (e.keyCode === 9 || (!e.altKey && e.keyCode === 40) || e.keyCode === 38)) {\n return;\n }\n switch (e.keyCode) {\n case 38:\n case 40:\n if (e.altKey && (e.keyCode === 38 || e.keyCode === 40)) {\n this.keyEventHandler(e);\n }\n else {\n this.upDownKeyHandler(e);\n }\n break;\n case 9:\n case 13:\n case 27:\n case 32:\n this.keyEventHandler(e);\n break;\n }\n };\n DropDownButton.prototype.upDownKeyHandler = function (e) {\n if (this.target && (e.keyCode === 38 || e.keyCode === 40)) {\n return;\n }\n e.preventDefault();\n upDownKeyHandler(this.getULElement(), e.keyCode);\n };\n DropDownButton.prototype.keyEventHandler = function (e) {\n if (this.target && (e.keyCode === 13 || e.keyCode === 9)) {\n return;\n }\n if (e.keyCode === 13 && this.activeElem[0].classList.contains('e-split-btn')) {\n this.activeElem[0].focus();\n return;\n }\n if (e.target && e.target.className.indexOf('e-edit-template') > -1 && e.keyCode === 32) {\n return;\n }\n if (e.keyCode !== 9) {\n e.preventDefault();\n }\n if (e.keyCode === 27 || e.keyCode === 38 || e.keyCode === 9) {\n if (!this.canOpen()) {\n this.closePopup(e, this.element);\n }\n }\n else {\n this.clickHandler(e);\n }\n };\n DropDownButton.prototype.getLI = function (elem) {\n return elem.tagName === 'LI' ? elem : closest(elem, 'li');\n };\n DropDownButton.prototype.mousedownHandler = function (e) {\n var trgt = e.target;\n if (this.dropDown && !this.canOpen() && !(closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')\n || closest(trgt, '[id=\"' + this.element.id + '\"]'))) {\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.focusoutHandler = function (e) {\n if (this.isPopupCreated && !this.canOpen()) {\n var liTarget = e.relatedTarget;\n if (liTarget && liTarget.className.indexOf('e-item') > -1) {\n var li = this.getLI(liTarget);\n if (li) {\n var liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n var item = this.items[liIdx];\n if (item) {\n var selectEventArgs = { element: li, item: item };\n this.trigger('select', selectEventArgs);\n }\n }\n }\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.clickHandler = function (e) {\n var trgt = e.target;\n if (closest(trgt, '[id=\"' + this.element.id + '\"]')) {\n if (!this.createPopupOnClick || (this.target && !this.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 _this.element.setAttribute('aria-owns', _this.getPopUpElement().id);\n if (ul_1) {\n ul_1.focus();\n }\n var openArgs = { element: ul_1, items: _this.items };\n _this.trigger('open', openArgs);\n }\n });\n };\n DropDownButton.prototype.closePopup = function (e, focusEle) {\n var _this = this;\n if (e === void 0) { e = null; }\n var ul = this.getULElement();\n var beforeCloseArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var popupElement = _this.getPopUpElement();\n if (popupElement) {\n EventHandler.remove(popupElement, 'keydown', _this.keyBoardHandler);\n }\n _this.popupUnWireEvents();\n var ul_2 = _this.getULElement();\n var selectedLi = void 0;\n if (ul_2) {\n selectedLi = ul_2.querySelector('.e-selected');\n }\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n _this.dropDown.hide();\n removeClass(_this.activeElem, 'e-active');\n _this.element.setAttribute('aria-expanded', 'false');\n _this.element.removeAttribute('aria-owns');\n if (focusEle) {\n focusEle.focus();\n }\n var closeArgs = { element: ul_2, items: _this.items };\n _this.trigger('close', closeArgs);\n if (!_this.target && ul_2) {\n detach(ul_2);\n }\n if (!_this.target || _this.isColorPicker()) {\n if (_this.createPopupOnClick) {\n _this.destroyPopup();\n }\n }\n if (_this.target) {\n _this.isPopupCreated = _this.createPopupOnClick ? false : true;\n }\n }\n else {\n if (ul) {\n ul.focus();\n }\n }\n });\n };\n DropDownButton.prototype.unWireEvents = function () {\n if (!this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated) {\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DropDownButtonModel} newProp - Specifies new properties\n * @param {DropDownButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var btnModel = ['content', 'cssClass', 'iconCss', 'iconPosition', 'disabled', 'enableRtl'];\n this.button.setProperties(getModel(newProp, btnModel));\n var popupElement;\n if (this.isPopupCreated) {\n popupElement = this.getPopUpElement();\n this.dropDown.setProperties(getModel(newProp, ['enableRtl']));\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.unWireEvents();\n if (this.isPopupCreated && !this.canOpen()) {\n this.closePopup();\n }\n }\n else {\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (newProp.cssClass.indexOf(classNames.VERTICAL) > -1 || oldProp.cssClass.indexOf(classNames.VERTICAL) > -1) {\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n var arrowSpan = this.element.querySelector('span.e-caret');\n newProp.cssClass.indexOf(classNames.VERTICAL) > -1 ? classList(arrowSpan, ['e-icon-bottom'], ['e-icon-right'])\n : classList(arrowSpan, ['e-icon-right'], ['e-icon-bottom']);\n }\n if (this.isPopupCreated) {\n if (oldProp.cssClass) {\n removeClass([popupElement], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([popupElement], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n }\n break;\n case 'target':\n this.dropDown.content = this.getTargetElement();\n this.dropDown.dataBind();\n break;\n case 'items':\n if (this.isPopupCreated && this.getULElement()) {\n this.createItems();\n }\n break;\n case 'createPopupOnClick':\n if (newProp.createPopupOnClick) {\n this.destroyPopup();\n }\n else {\n this.createPopup();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to DropDownButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n DropDownButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], DropDownButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Collection([], Item)\n ], DropDownButton.prototype, \"items\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"closeActionEvents\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"created\", void 0);\n DropDownButton = __decorate([\n NotifyPropertyChanges\n ], DropDownButton);\n return DropDownButton;\n}(Component));\nexport { DropDownButton };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path='../drop-down-button/drop-down-button-model.d.ts'/>\nimport { Event, remove, addClass, removeClass, detach, getValue, setValue } from '@syncfusion/ej2-base';\nimport { EventHandler, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { attributes, getUniqueID, getInstance, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { getModel, Item } from './../common/common';\nimport { DropDownButton } from '../drop-down-button/drop-down-button';\nvar RTL = 'e-rtl';\nvar TAGNAME = 'EJS-SPLITBUTTON';\n/**\n * SplitButton component has primary and secondary button. Primary button is used to select\n * default action and secondary button is used to toggle contextual overlays for displaying list of\n * action items. It can contain both text and images.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var splitBtnObj = new SplitButton({content: 'SplitButton'});\n * splitBtnObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar SplitButton = /** @class */ (function (_super) {\n __extends(SplitButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {SplitButtonModel} options - Specifies the splitbutton model\n * @param {string|HTMLButtonElement} element - Specifies the element\n * @hidden\n */\n function SplitButton(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize Angular support.\n *\n * @private\n * @returns {void}\n */\n SplitButton.prototype.preRender = function () {\n var ele = this.element;\n if (ele.tagName === TAGNAME) {\n var ejInstance = getValue('ej2_instances', ele);\n var btn = this.createElement('button', { attrs: { 'type': 'button' } });\n var wrapper = this.createElement(TAGNAME, { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n btn.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = btn;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.wrapper = wrapper;\n this.element = ele;\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the Component rendering.\n *\n * @returns {void}\n * @private\n */\n SplitButton.prototype.render = function () {\n this.initWrapper();\n this.createPrimaryButton();\n this.renderControl();\n };\n SplitButton.prototype.renderControl = function () {\n this.createSecondaryButton();\n this.setActiveElem([this.element, this.secondaryBtnObj.element]);\n this.setAria();\n this.wireEvents();\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n SplitButton.prototype.addItems = function (items, text) {\n _super.prototype.addItems.call(this, items, text);\n this.secondaryBtnObj.items = this.items;\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n SplitButton.prototype.removeItems = function (items, isUniqueId) {\n _super.prototype.removeItems.call(this, items, isUniqueId);\n this.secondaryBtnObj.items = this.items;\n };\n SplitButton.prototype.initWrapper = function () {\n if (!this.wrapper) {\n this.wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n this.element.parentNode.insertBefore(this.wrapper, this.element);\n }\n this.element.classList.remove('e-' + this.getModuleName());\n if (this.enableRtl) {\n this.wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([this.wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n };\n SplitButton.prototype.createPrimaryButton = function () {\n var btnModel = {\n cssClass: this.cssClass,\n enableRtl: this.enableRtl,\n iconCss: this.iconCss,\n iconPosition: this.iconPosition,\n content: this.content,\n disabled: this.disabled\n };\n this.primaryBtnObj = new Button(btnModel);\n this.primaryBtnObj.createElement = this.createElement;\n this.primaryBtnObj.appendTo(this.element);\n this.element.classList.add('e-' + this.getModuleName());\n this.element.type = 'button';\n this.wrapper.appendChild(this.element);\n };\n SplitButton.prototype.createSecondaryButton = function () {\n var _this = this;\n var btnElem = this.createElement('button', {\n className: 'e-icon-btn',\n attrs: { 'tabindex': '-1' },\n id: this.element.id + '_dropdownbtn'\n });\n this.wrapper.appendChild(btnElem);\n var dropDownBtnModel = {\n cssClass: this.cssClass,\n disabled: this.disabled,\n enableRtl: this.enableRtl,\n items: this.items,\n target: this.target,\n createPopupOnClick: this.createPopupOnClick\n };\n dropDownBtnModel.beforeItemRender = function (args) {\n if (_this.createPopupOnClick) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n _this.trigger('beforeItemRender', args);\n };\n dropDownBtnModel.open = function (args) {\n _this.trigger('open', args);\n };\n dropDownBtnModel.close = function (args) {\n _this.trigger('close', args);\n };\n dropDownBtnModel.select = function (args) {\n _this.trigger('select', args);\n };\n dropDownBtnModel.beforeOpen = function (args) {\n if (_this.createPopupOnClick && _this.items.length == 0) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n var callBackPromise = new Deferred();\n _this.trigger('beforeOpen', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n dropDownBtnModel.beforeClose = function (args) {\n var callBackPromise = new Deferred();\n _this.trigger('beforeClose', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n this.secondaryBtnObj = new DropDownButton(dropDownBtnModel);\n this.secondaryBtnObj.createElement = this.createElement;\n this.secondaryBtnObj.appendTo(btnElem);\n if (!this.createPopupOnClick) {\n this.secondaryBtnObj.dropDown.relateTo = this.wrapper;\n this.dropDown = this.secondaryBtnObj.dropDown;\n }\n 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 enter: 'enter'\n }\n });\n };\n SplitButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.primaryBtnClickHandler);\n getInstance(this.element, KeyboardEvents).destroy();\n };\n SplitButton.prototype.primaryBtnClickHandler = function () {\n this.trigger('click', { element: this.element });\n };\n SplitButton.prototype.btnKeyBoardHandler = function (e) {\n switch (e.action) {\n case 'altdownarrow':\n this.clickHandler(e);\n break;\n case 'enter':\n this.clickHandler(e);\n if (!this.getPopUpElement().classList.contains('e-popup-close')) {\n this.element.classList.remove('e-active');\n this.secondaryBtnObj.element.classList.add('e-active');\n }\n else {\n this.secondaryBtnObj.element.classList.remove('e-active');\n }\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {SplitButtonModel} newProp - Specifies new properties\n * @param {SplitButtonModel} oldProp - Specifies old properties\n * @returns {void}\n */\n SplitButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var model = ['content', 'iconCss', 'iconPosition', 'cssClass', 'disabled', 'enableRtl'];\n this.primaryBtnObj.setProperties(getModel(newProp, model));\n model = ['beforeOpen', 'beforeItemRender', 'select', 'open',\n 'close', 'cssClass', 'disabled', 'enableRtl', 'createPopupOnClick'];\n if (Object.keys(newProp).indexOf('items') > -1) {\n this.secondaryBtnObj.items = newProp.items;\n this.secondaryBtnObj.dataBind();\n }\n this.secondaryBtnObj.setProperties(getModel(newProp, model));\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.wrapper], oldProp.cssClass.split(' '));\n }\n addClass([this.wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n addClass([this.wrapper], RTL);\n }\n else {\n removeClass([this.wrapper], RTL);\n }\n break;\n }\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.querySelector(\".e-spinner\"));\n }\n this.startAnimate(Date.now(), progressTime ? progressTime : 0, progressTime ? Date.now() - (this.duration * 1 / 100) : Date.now(), percent ? percent : 0, 0, this.step, 0, isVertical);\n this.startContAnimate();\n };\n ProgressButton.prototype.startAnimate = function (timestamp, progressTime, prevTime, percent, prevPercent, step, prevProgressTime, isVertical) {\n var _this = this;\n try {\n var timeDiff = timestamp - prevTime;\n var stepTime = this.duration * step / 100;\n var timeDiffBuffer_1 = timeDiff ? (timeDiff < stepTime ? timeDiff - stepTime : timeDiff % stepTime) : 0;\n this.progressTime = progressTime = progressTime + timeDiff - timeDiffBuffer_1;\n prevTime = timestamp - timeDiffBuffer_1;\n percent = percent + (timeDiff - timeDiffBuffer_1) / this.duration * 100;\n prevPercent = ((progressTime - prevProgressTime) % stepTime === 0 || percent === 100) ? percent : prevPercent;\n var args = { percent: prevPercent, currentDuration: progressTime, step: step };\n this.eIsVertical = isVertical;\n if (percent === 0) {\n this.trigger('begin', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else if (percent === 100 || progressTime === this.duration) {\n this.trigger('end', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else {\n this.trigger('progress', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n }\n catch (e) {\n cancelAnimationFrame(this.timerId);\n this.trigger('fail', e);\n }\n };\n ProgressButton.prototype.successCallback = function (args, perc, pPerc, prgTim, pPrgTim, timDif, pTim) {\n var _this = this;\n var percent = perc;\n var prevPercent = pPerc;\n var timeDiffBuffer = timDif;\n var progressTime = prgTim;\n var prevProgressTime = pPrgTim;\n var prevTime = pTim;\n var isVertical = this.eIsVertical;\n if (percent !== args.percent && args.percent !== prevPercent) {\n percent = args.percent;\n }\n this.percent = percent;\n this.step = args.step;\n if ((progressTime - prevProgressTime) % (this.duration * args.step / 100) === 0 || percent === 100) {\n this.timerId = requestAnimationFrame(function () {\n if (_this.enableProgress) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = percent + '%';\n }\n _this.element.setAttribute('aria-valuenow', percent.toString());\n });\n prevPercent = percent;\n prevProgressTime = progressTime;\n }\n if (!this.isPaused) {\n if (progressTime < this.duration && percent < 100) {\n this.interval = window.setTimeout(function () {\n _this.startAnimate(Date.now(), progressTime, prevTime, percent, prevPercent, args.step, prevProgressTime, isVertical);\n }, (this.duration / 100) - timeDiffBuffer);\n }\n else {\n this.interval = window.setTimeout(function () {\n _this.progressTime = _this.percent = 0;\n if (_this.enableProgress) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = '0%';\n }\n _this.element.setAttribute('aria-valuenow', '0');\n _this.hideSpin();\n }, 100);\n }\n }\n };\n ProgressButton.prototype.startContAnimate = function () {\n var _this = this;\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (this.animationSettings.effect !== 'None') {\n (new Animation({})).animate(ele, {\n duration: this.animationSettings.duration,\n name: 'Progress' + this.animationSettings.effect,\n timingFunction: this.animationSettings.easing,\n begin: function () {\n if (_this.spinSettings.position === 'Center') {\n _this.setSpinnerSize();\n }\n },\n end: function () {\n ele.classList.add('e-animate-end');\n }\n });\n }\n else if (this.spinSettings.position === 'Center') {\n this.setSpinnerSize();\n }\n };\n ProgressButton.prototype.finishProgress = function () {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n var count = 100;\n for (var i = this.percent; i < count; i++) {\n i += 10;\n if (i > 100) {\n i = 100;\n }\n if (this.enableProgress) {\n this.getProgress().style[isVertical ? 'height' : 'width'] = (this.percent < 100) ? (i + '%') : '100%';\n }\n }\n this.element.setAttribute('aria-valuenow', '0');\n this.hideSpin();\n var args = { step: this.step, currentDuration: this.progressTime, percent: 100 };\n clearTimeout(this.interval);\n this.trigger('end', args);\n this.progressTime = this.percent = 0;\n };\n ProgressButton.prototype.setSpinnerSize = function () {\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n var spinner = this.getSpinner();\n spinner.style.width = Math.max(spinner.offsetWidth, ele.offsetWidth) + 'px';\n spinner.style.height = Math.max(spinner.offsetHeight, ele.offsetHeight) + 'px';\n ele.classList.add('e-cont-animate');\n };\n ProgressButton.prototype.hideSpin = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (!(this.element.classList.contains(HIDESPINNER))) {\n hideSpinner(this.element.querySelector(\".e-spinner\"));\n }\n this.element.classList.remove(PROGRESSACTIVE);\n if (this.animationSettings.effect !== 'None') {\n cont.classList.remove('e-animate-end');\n }\n if (this.spinSettings.position === 'Center') {\n var ele = this.getSpinner();\n cont.classList.remove('e-cont-animate');\n ele.style.width = 'auto';\n ele.style.height = 'auto';\n }\n };\n ProgressButton.prototype.setIconSpan = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n var iconSpan = this.element.getElementsByClassName('e-btn-icon')[0];\n if (cont.childNodes[0] && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n cont.insertBefore(iconSpan, cont.childNodes[0]);\n }\n else {\n cont.appendChild(iconSpan);\n }\n };\n ProgressButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-label': this.element.textContent + ' progress', 'aria-valuemin': '0', 'aria-valuemax': '100', 'aria-valuenow': '0'\n });\n };\n ProgressButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n };\n ProgressButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ProgressButtonModel} newProp - Specifies new properties\n * @param {ProgressButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var ele = this.element;\n var isSpinning = false;\n var clsList = this.element.querySelector('.e-spinner-pane').classList;\n if (clsList.contains('e-spin-show')) {\n isSpinning = true;\n }\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n this.setContent();\n this.createSpinner();\n if (isSpinning) {\n showSpinner(this.element.querySelector(\".e-spinner\"));\n isSpinning = false;\n }\n if (this.enableProgress) {\n this.createProgress();\n }\n ele.setAttribute('aria-label', ele.textContent + ' progress');\n break;\n case 'iconCss':\n if (!oldProp.iconCss) {\n this.setIconSpan();\n }\n break;\n case 'iconPosition':\n this.setIconSpan();\n break;\n case 'enableProgress':\n if (newProp.enableProgress) {\n this.createProgress();\n }\n else {\n remove(this.getProgress());\n }\n break;\n case 'spinSettings':\n if (newProp.spinSettings.position) {\n ele.classList.remove('e-spin-' + oldProp.spinSettings.position.toLowerCase());\n this.setSpinPosition(this.getSpinner());\n }\n if (newProp.spinSettings.template || newProp.spinSettings.width) {\n ele.removeChild(this.getSpinner());\n this.createSpinner();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to ProgressButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n ProgressButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"enableProgress\", void 0);\n __decorate([\n Property(2000)\n ], ProgressButton.prototype, \"duration\", void 0);\n __decorate([\n Property('Left')\n ], ProgressButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isToggle\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, SpinSettings)\n ], ProgressButton.prototype, \"spinSettings\", void 0);\n __decorate([\n Complex({}, AnimationSettings)\n ], ProgressButton.prototype, \"animationSettings\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"fail\", void 0);\n ProgressButton = __decorate([\n NotifyPropertyChanges\n ], ProgressButton);\n return ProgressButton;\n}(Button));\nexport { ProgressButton };\n","import { addClass, createElement as internalCreateElement, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\n/**\n * Initialize ButtonGroup CSS component with specified properties.\n * ```html\n * <div id='buttongroup'>\n * <button></button>\n * <button></button>\n * <button></button>\n * </div>\n * ```\n * ```typescript\n * createButtonGroup('#buttongroup', {\n * cssClass: 'e-outline',\n * buttons: [\n * { content: 'Day' },\n * { content: 'Week' },\n * { content: 'Work Week'}\n * ]\n * });\n * ```\n *\n * @param {string} selector\n * @param {CreateButtonGroupModel} options\n * @returns HTMLElement\n */\n/**\n * Creates button group.\n *\n * @param {string} selector - Specifies the selector.\n * @param {CreateButtonGroupModel} options - Specifies the button group model.\n * @param {Function} createElement - Specifies the element.\n * @returns {HTMLElement} - Button group element.\n */\nexport function createButtonGroup(selector, options, createElement) {\n if (options === void 0) { options = {}; }\n var child;\n var btnElem;\n var nextChild;\n var btnModel;\n if (isNullOrUndefined(createElement)) {\n createElement = internalCreateElement;\n }\n var wrapper = document.querySelector(selector);\n addClass([wrapper], ['e-btn-group', 'e-css']);\n wrapper.setAttribute('role', 'group');\n var childs = wrapper.children;\n options.buttons = options.buttons || [];\n for (var i = 0, j = 0; j < childs.length; i++, j++) {\n child = childs[j];\n btnModel = options.buttons[i];\n if (btnModel !== null) {\n if (child.tagName === 'BUTTON') {\n btnElem = child;\n }\n else {\n btnElem = createElement('label');\n nextChild = childs[j + 1];\n if (nextChild) {\n wrapper.insertBefore(btnElem, nextChild);\n }\n else {\n wrapper.appendChild(btnElem);\n }\n if (child.id) {\n btnElem.setAttribute('for', child.id);\n }\n if (btnModel && btnModel.disabled) {\n child.disabled = true;\n }\n j++;\n }\n if (options.cssClass && btnModel && !btnModel.cssClass) {\n btnModel.cssClass = options.cssClass;\n }\n new Button(btnModel || {}, btnElem);\n }\n }\n return wrapper;\n}\n"],"names":["getModel","props","model","obj","extend","_i","_a","Object","keys","length","prop","indexOf","deleteObject","upDownKeyHandler","ul","keyCode","defaultIdx","childElementCount","liIdx","selectedLi","querySelector","classList","remove","i","len","children","contains","isValidLI","addClass","focus","li","index","count","setBlankIconStyle","popup","blankIcon","blankIconList","slice","call","getElementsByClassName","forEach","style","paddingLeft","paddingRight","removeAttribute","iconLi","isNullOrUndefined","cssProp","icon","enableRtl","padding","margin","size","parseInt","getComputedStyle","fontSize","__extends","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","Item","_super","apply","Property","ChildProperty","classNames","DropDownButton","options","element","_this","isPopupCreated","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","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","textContent","cssClass","replace","trim","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","getPopUpElement","field","SanitizeHtmlHelper","sanitize","href","button","Button","iconPosition","enablePersistence","appendTo","appendArrowSpan","setActiveElem","isColorPicker","createPopupOnClick","prevElem","previousSibling","elem","activeElem","val","destroy","classList_1","detach","removeClass","getAttribute","popupUnWireEvents","destroyPopup","unWireEvents","popupEle","getElementById","EventHandler","clickHandler","keyBoardHandler","undefined","delegateMousedownHandler","mousedownHandler","bind","popupWireEvents","popupElement","closeActionEvents","focusoutHandler","rippleFn","rippleEffect","selector","parentElement","isRippleEnabled","e","altKey","keyEventHandler","preventDefault","getLI","tagName","closest","trgt","liTarget","relatedTarget","selectEventArgs","popupElem","splitButton","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","enter","getInstance","action","promise","Promise","reject","catch","then","HIDESPINNER","PROGRESSACTIVE","CONTENTCLS","SpinSettings","AnimationSettings","ProgressButton","step","init","start","percent","isPaused","startProgress","progressTime","stop","cancelAnimationFrame","timerId","progressComplete","finishProgress","spinSettings","toLowerCase","setContent","createSpinner","enableProgress","createProgress","spinner","setSpinPosition","width","template","getSpinner","getProgress","cont","setContentIcon","contElem","node","clsList","isVertical","showSpinner","startAnimate","Date","now","duration","startContAnimate","timestamp","prevTime","prevPercent","prevProgressTime","timeDiff","stepTime","timeDiffBuffer_1","currentDuration","eIsVertical","successCallback","perc","pPerc","prgTim","pPrgTim","timDif","pTim","timeDiffBuffer","requestAnimationFrame","toString","interval","window","setTimeout","hideSpin","animationSettings","effect","Animation","animate","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, blankIcon) {\n var blankIconList = [].slice.call(popup.getElementsByClassName('e-blank-icon'));\n if (blankIcon) {\n var menuItem = [].slice.call(popup.getElementsByClassName('e-item'));\n menuItem.forEach(function (li) {\n if (li.style.paddingLeft || li.style.paddingRight) {\n li.removeAttribute('style');\n }\n });\n }\n if (!blankIconList.length) {\n return;\n }\n var iconLi = popup.querySelector('.e-item:not(.e-blank-icon):not(.e-separator)');\n if (isNullOrUndefined(iconLi)) {\n return;\n }\n if (iconLi.classList.contains('e-url')) {\n iconLi = iconLi.querySelector('.e-menu-url');\n }\n var icon = iconLi.querySelector('.e-menu-icon');\n var cssProp;\n var enableRtl = popup.classList.contains('e-rtl');\n if (enableRtl) {\n cssProp = { padding: 'paddingRight', margin: 'marginLeft' };\n }\n else {\n cssProp = { padding: 'paddingLeft', margin: 'marginRight' };\n }\n /* eslint-disable */\n var size = parseInt(getComputedStyle(icon).fontSize, 10) + parseInt((enableRtl ? getComputedStyle(icon)[cssProp.margin] : getComputedStyle(icon)[cssProp.margin]), 10)\n + parseInt(getComputedStyle(iconLi).paddingLeft, 10) + \"px\";\n blankIconList.forEach(function (li) {\n if (li.classList.contains('e-url')) {\n li.querySelector('.e-menu-url').style[cssProp.padding] = size;\n }\n else {\n li.style[cssProp.padding] = size;\n }\n });\n /* eslint-enable */\n}\n/**\n * Defines the items of Split Button/DropDownButton.\n */\nvar Item = /** @class */ (function (_super) {\n __extends(Item, _super);\n function Item() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('')\n ], Item.prototype, \"iconCss\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"id\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"separator\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], Item.prototype, \"url\", void 0);\n __decorate([\n Property(false)\n ], Item.prototype, \"disabled\", void 0);\n return Item;\n}(ChildProperty));\nexport { Item };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Collection, Event, NotifyPropertyChanges, detach, Property, EventHandler, isRippleEnabled } from '@syncfusion/ej2-base';\nimport { addClass, getUniqueID, rippleEffect, getComponent } from '@syncfusion/ej2-base';\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { classList, removeClass } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { upDownKeyHandler } from './../common/common';\nimport { getModel, Item, setBlankIconStyle } from './../common/common';\nvar classNames = {\n DISABLED: 'e-disabled',\n FOCUS: 'e-focused',\n ICON: 'e-menu-icon',\n ITEM: 'e-item',\n POPUP: 'e-dropdown-popup',\n RTL: 'e-rtl',\n SEPARATOR: 'e-separator',\n VERTICAL: 'e-vertical'\n};\n/**\n * DropDownButton component is used to toggle contextual overlays for displaying list of action items.\n * It can contain both text and images.\n * ```html\n * <button id=\"element\">DropDownButton</button>\n * ```\n * ```typescript\n * <script>\n * var dropDownButtonObj = new DropDownButton({items: [{ text: 'Action1' }, { text: 'Action2' },{ text: 'Action3' }]);\n * dropDownButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar DropDownButton = /** @class */ (function (_super) {\n __extends(DropDownButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {DropDownButtonModel} options - Specifies dropdown button model\n * @param {string|HTMLButtonElement} element - Specifies element\n * @hidden\n */\n function DropDownButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isPopupCreated = true;\n return _this;\n }\n DropDownButton.prototype.preRender = function () {\n /** */\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n DropDownButton.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To open/close DropDownButton popup based on current state of the DropDownButton.\n *\n * @returns {void}\n */\n DropDownButton.prototype.toggle = function () {\n if (this.canOpen()) {\n this.openPopUp();\n }\n else if (this.createPopupOnClick && !this.isPopupCreated) {\n this.createPopup();\n this.openPopUp();\n }\n else {\n this.closePopup();\n }\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.render = function () {\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n DropDownButton.prototype.addItems = function (items, text) {\n var newItem;\n var idx = this.items.length;\n for (var j = 0, len = this.items.length; j < len; j++) {\n if (text === this.items[j].text) {\n idx = j;\n break;\n }\n }\n for (var i = items.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newItem = new Item(this, 'items', items[i], true);\n this.items.splice(idx, 0, newItem);\n }\n if (!this.canOpen()) {\n this.createItems();\n }\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n DropDownButton.prototype.removeItems = function (items, isUniqueId) {\n var refresh = false;\n for (var i = 0, len = items.length; i < len; i++) {\n for (var j = 0, len_1 = this.items.length; j < len_1; j++) {\n if (items[i] === (isUniqueId ? this.items[j].id : this.items[j].text)) {\n this.items.splice(j, 1);\n refresh = true;\n break;\n }\n }\n }\n if (refresh && this.getULElement()) {\n this.createItems();\n }\n };\n DropDownButton.prototype.createPopup = function () {\n var _a;\n var div = this.createElement('div', {\n className: classNames.POPUP,\n id: this.element.id + '-popup'\n });\n document.body.appendChild(div);\n this.dropDown = new Popup(div, {\n relateTo: this.element,\n collision: { X: 'fit', Y: 'flip' },\n position: { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n content: this.target ? this.getTargetElement() : '',\n enableRtl: this.enableRtl\n });\n if (this.dropDown.element.style.position === 'fixed') {\n this.dropDown.refreshPosition(this.element);\n }\n this.dropDown.hide();\n attributes(this.element, (_a = {},\n _a['aria-haspopup'] = this.items.length || this.target ? 'true' : 'false',\n _a['aria-expanded'] = 'false',\n _a['type'] = 'button',\n _a['aria-label'] = this.element.textContent ? this.element.textContent : 'dropdownbutton',\n _a));\n if (this.cssClass) {\n addClass([div], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.isPopupCreated = true;\n };\n DropDownButton.prototype.getTargetElement = function () {\n return typeof (this.target) === 'string' ? select(this.target) : this.target;\n };\n DropDownButton.prototype.createItems = function (appendItems) {\n var items = this.items;\n var showIcon = this.hasIcon(this.items, 'iconCss');\n var span;\n var item;\n var li;\n var eventArgs;\n var ul = this.getULElement();\n if (ul) {\n ul.innerHTML = '';\n }\n else {\n ul = this.createElement('ul', {\n attrs: { 'role': 'menu', 'tabindex': '0' }\n });\n }\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n var tempItem = item.text;\n li = this.createElement('li', {\n innerHTML: item.url ? '' : tempItem,\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator ? { 'role': 'separator', 'tabindex': '-1' } : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': tempItem },\n id: item.id ? item.id : getUniqueID('e-' + this.getModuleName() + '-item')\n });\n if (this.enableHtmlSanitizer) {\n li.textContent = item.url ? '' : tempItem;\n }\n else {\n li.innerHTML = item.url ? '' : tempItem;\n }\n if (item.url) {\n li.appendChild(this.createAnchor(item));\n li.classList.add('e-url');\n }\n if (item.iconCss) {\n span = this.createElement('span', { className: classNames.ICON + ' ' + item.iconCss });\n if (item.url) {\n li.childNodes[0].appendChild(span);\n }\n else {\n li.insertBefore(span, li.childNodes[0]);\n }\n }\n else {\n if (showIcon && !item.separator) {\n li.classList.add('e-blank-icon');\n }\n }\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n eventArgs = { item: item, element: li };\n this.trigger('beforeItemRender', eventArgs);\n ul.appendChild(li);\n }\n if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\n }\n };\n DropDownButton.prototype.hasIcon = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n DropDownButton.prototype.createAnchor = function (item) {\n var tempItem = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\n return this.createElement('a', { className: 'e-menu-text e-menu-url', innerHTML: tempItem, attrs: { 'href': item.url } });\n };\n DropDownButton.prototype.initialize = function () {\n this.button = new Button({\n iconCss: this.iconCss, iconPosition: this.iconPosition, cssClass: this.cssClass, content: this.content,\n disabled: this.disabled, enableRtl: this.enableRtl, enablePersistence: this.enablePersistence\n });\n this.button.createElement = this.createElement;\n this.button.appendTo(this.element);\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.appendArrowSpan();\n this.setActiveElem([this.element]);\n 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 && this.dropDown) {\n this.dropDown.element = null;\n this.dropDown = undefined;\n }\n }\n this.isPopupCreated = false;\n };\n DropDownButton.prototype.getPopUpElement = function () {\n var val = null;\n if (!this.dropDown && this.activeElem[0].classList.contains('e-split-btn')) {\n var dropDownBtn = getComponent(this.activeElem[1], 'dropdown-btn');\n if (dropDownBtn) {\n this.dropDown = dropDownBtn.dropDown;\n }\n }\n if (this.dropDown) {\n val = this.dropDown.element;\n }\n return val;\n };\n DropDownButton.prototype.getULElement = function () {\n var val = null;\n if (this.getPopUpElement()) {\n val = this.getPopUpElement().children[0];\n }\n return val;\n };\n DropDownButton.prototype.wireEvents = function () {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n if (!this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);\n };\n DropDownButton.prototype.popupWireEvents = function () {\n if (!this.delegateMousedownHandler) {\n this.delegateMousedownHandler = this.mousedownHandler.bind(this);\n }\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.add(document, 'mousedown touchstart', this.delegateMousedownHandler, this);\n }\n if (popupElement) {\n EventHandler.add(popupElement, 'click', this.clickHandler, this);\n EventHandler.add(popupElement, 'keydown', this.keyBoardHandler, this);\n if (this.closeActionEvents) {\n EventHandler.add(popupElement, this.closeActionEvents, this.focusoutHandler, this);\n }\n }\n this.rippleFn = rippleEffect(popupElement, { selector: '.' + classNames.ITEM });\n };\n DropDownButton.prototype.popupUnWireEvents = function () {\n var popupElement = this.getPopUpElement();\n if (this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n if (popupElement && popupElement.parentElement) {\n EventHandler.remove(popupElement, 'click', this.clickHandler);\n EventHandler.remove(popupElement, 'keydown', this.keyBoardHandler);\n if (this.closeActionEvents) {\n EventHandler.remove(popupElement, this.closeActionEvents, this.focusoutHandler);\n }\n }\n if (isRippleEnabled && this.rippleFn) {\n this.rippleFn();\n }\n };\n /**\n * Handles the keyboard interactions.\n *\n * @param {KeyboardEventArgs} e - Specifies keyboard event args.\n * @returns {void}\n * @hidden\n */\n DropDownButton.prototype.keyBoardHandler = function (e) {\n if (e.target === this.element && (e.keyCode === 9 || (!e.altKey && e.keyCode === 40) || e.keyCode === 38)) {\n return;\n }\n switch (e.keyCode) {\n case 38:\n case 40:\n if (e.altKey && (e.keyCode === 38 || e.keyCode === 40)) {\n this.keyEventHandler(e);\n }\n else {\n this.upDownKeyHandler(e);\n }\n break;\n case 9:\n case 13:\n case 27:\n case 32:\n this.keyEventHandler(e);\n break;\n }\n };\n DropDownButton.prototype.upDownKeyHandler = function (e) {\n if (this.target && (e.keyCode === 38 || e.keyCode === 40)) {\n return;\n }\n e.preventDefault();\n upDownKeyHandler(this.getULElement(), e.keyCode);\n };\n DropDownButton.prototype.keyEventHandler = function (e) {\n if (this.target && (e.keyCode === 13 || e.keyCode === 9)) {\n return;\n }\n if (e.keyCode === 13 && this.activeElem[0].classList.contains('e-split-btn')) {\n this.activeElem[0].focus();\n return;\n }\n if (e.target && e.target.className.indexOf('e-edit-template') > -1 && e.keyCode === 32) {\n return;\n }\n if (e.keyCode !== 9) {\n e.preventDefault();\n }\n if (e.keyCode === 27 || e.keyCode === 38 || e.keyCode === 9) {\n if (!this.canOpen()) {\n this.closePopup(e, this.element);\n }\n }\n else {\n this.clickHandler(e);\n }\n };\n DropDownButton.prototype.getLI = function (elem) {\n return elem.tagName === 'LI' ? elem : closest(elem, 'li');\n };\n DropDownButton.prototype.mousedownHandler = function (e) {\n var trgt = e.target;\n if (this.dropDown && !this.canOpen() && !(closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')\n || closest(trgt, '[id=\"' + this.element.id + '\"]'))) {\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.focusoutHandler = function (e) {\n if (this.isPopupCreated && !this.canOpen()) {\n var liTarget = e.relatedTarget;\n if (liTarget && liTarget.className.indexOf('e-item') > -1) {\n var li = this.getLI(liTarget);\n if (li) {\n var liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n var item = this.items[liIdx];\n if (item) {\n var selectEventArgs = { element: li, item: item };\n this.trigger('select', selectEventArgs);\n }\n }\n }\n this.closePopup(e);\n }\n };\n DropDownButton.prototype.clickHandler = function (e) {\n var trgt = e.target;\n if (closest(trgt, '[id=\"' + this.element.id + '\"]')) {\n if (!this.createPopupOnClick || (this.target && this.target !== '' && !this.isColorPicker())) {\n if (this.getPopUpElement().classList.contains('e-popup-close')) {\n this.openPopUp(e);\n }\n else {\n this.closePopup(e);\n }\n }\n else if (this.isPopupCreated) {\n this.closePopup(e, this.activeElem[0]);\n }\n else {\n this.createPopup();\n this.openPopUp(e);\n }\n }\n else {\n if (closest(trgt, '[id=\"' + this.getPopUpElement().id + '\"]')) {\n var eventArgs = void 0;\n var liIdx = void 0;\n var item = void 0;\n var li = this.getLI(trgt);\n if (li) {\n liIdx = Array.prototype.indexOf.call(this.getULElement().children, li);\n item = this.items[liIdx];\n if (item) {\n eventArgs = { element: li, item: item };\n this.trigger('select', eventArgs);\n }\n this.closePopup(e, this.activeElem[0]);\n }\n }\n }\n };\n DropDownButton.prototype.openPopUp = function (e) {\n var _this = this;\n if (e === void 0) { e = null; }\n var isReact = false;\n var popupElem = this.getPopUpElement();\n if (!this.target) {\n this.createItems(true);\n }\n else {\n if (this.activeElem.length > 1) {\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (splitButton.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n splitButton.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.isReact && popupElem.childNodes.length < 1) {\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n this.renderReactTemplates();\n }\n }\n }\n var ul = this.getULElement();\n this.popupWireEvents();\n var beforeOpenArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeOpen', beforeOpenArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var ul_1 = _this.getULElement();\n _this.dropDown.show(null, _this.element);\n addClass([_this.element], 'e-active');\n _this.element.setAttribute('aria-expanded', 'true');\n _this.element.setAttribute('aria-owns', _this.getPopUpElement().id);\n if (ul_1) {\n ul_1.focus();\n }\n if (_this.enableRtl && ul_1.parentElement.style.left !== '0px') {\n var wrapperWidth = void 0;\n if (_this.element.parentElement && _this.element.parentElement.classList.contains('e-split-btn-wrapper')) {\n wrapperWidth = _this.element.parentElement.offsetWidth;\n }\n else {\n wrapperWidth = _this.element.offsetWidth;\n }\n var popupRect = ul_1.parentElement.offsetWidth - wrapperWidth;\n var popupLeft = parseFloat(ul_1.parentElement.style.left) - popupRect;\n if (popupLeft < 0) {\n popupLeft = 0;\n }\n ul_1.parentElement.style.left = popupLeft + \"px\";\n }\n var openArgs = { element: ul_1, items: _this.items };\n _this.trigger('open', openArgs);\n }\n });\n };\n DropDownButton.prototype.closePopup = function (e, focusEle) {\n var _this = this;\n if (e === void 0) { e = null; }\n var ul = this.getULElement();\n var beforeCloseArgs = { element: ul, items: this.items, event: e, cancel: false };\n this.trigger('beforeClose', beforeCloseArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n var popupElement = _this.getPopUpElement();\n if (popupElement) {\n EventHandler.remove(popupElement, 'keydown', _this.keyBoardHandler);\n }\n _this.popupUnWireEvents();\n var ul_2 = _this.getULElement();\n var selectedLi = void 0;\n if (ul_2) {\n selectedLi = ul_2.querySelector('.e-selected');\n }\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n _this.dropDown.hide();\n removeClass(_this.activeElem, 'e-active');\n _this.element.setAttribute('aria-expanded', 'false');\n _this.element.removeAttribute('aria-owns');\n if (focusEle) {\n focusEle.focus();\n }\n var closeArgs = { element: ul_2, items: _this.items };\n _this.trigger('close', closeArgs);\n if (!_this.target && ul_2) {\n detach(ul_2);\n }\n if (!_this.target || _this.isColorPicker()) {\n if (_this.createPopupOnClick) {\n _this.destroyPopup();\n }\n }\n }\n else {\n if (ul) {\n ul.focus();\n }\n }\n });\n };\n DropDownButton.prototype.unWireEvents = function () {\n if (!this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated) {\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {DropDownButtonModel} newProp - Specifies new properties\n * @param {DropDownButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var btnModel = ['content', 'cssClass', 'iconCss', 'iconPosition', 'disabled', 'enableRtl'];\n this.button.setProperties(getModel(newProp, btnModel));\n var popupElement;\n if (this.isPopupCreated) {\n popupElement = this.getPopUpElement();\n this.dropDown.setProperties(getModel(newProp, ['enableRtl']));\n }\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.unWireEvents();\n if (this.isPopupCreated && !this.canOpen()) {\n this.closePopup();\n }\n }\n else {\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (newProp.cssClass.indexOf(classNames.VERTICAL) > -1 || oldProp.cssClass.indexOf(classNames.VERTICAL) > -1) {\n if (!this.element.querySelector('span.e-caret')) {\n this.appendArrowSpan();\n }\n var arrowSpan = this.element.querySelector('span.e-caret');\n newProp.cssClass.indexOf(classNames.VERTICAL) > -1 ? classList(arrowSpan, ['e-icon-bottom'], ['e-icon-right'])\n : classList(arrowSpan, ['e-icon-right'], ['e-icon-bottom']);\n }\n if (this.isPopupCreated) {\n if (oldProp.cssClass) {\n removeClass([popupElement], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([popupElement], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n }\n break;\n case 'target':\n this.dropDown.content = this.getTargetElement();\n this.dropDown.dataBind();\n break;\n case 'items':\n if (this.isPopupCreated && this.getULElement()) {\n this.createItems();\n }\n break;\n case 'createPopupOnClick':\n if (newProp.createPopupOnClick) {\n this.destroyPopup();\n }\n else {\n this.createPopup();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to DropDownButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n DropDownButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], DropDownButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Collection([], Item)\n ], DropDownButton.prototype, \"items\", void 0);\n __decorate([\n Property(false)\n ], DropDownButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"target\", void 0);\n __decorate([\n Property('')\n ], DropDownButton.prototype, \"closeActionEvents\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], DropDownButton.prototype, \"created\", void 0);\n DropDownButton = __decorate([\n NotifyPropertyChanges\n ], DropDownButton);\n return DropDownButton;\n}(Component));\nexport { DropDownButton };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path='../drop-down-button/drop-down-button-model.d.ts'/>\nimport { Event, remove, addClass, removeClass, detach, getValue, setValue } from '@syncfusion/ej2-base';\nimport { EventHandler, Collection, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { attributes, getUniqueID, getInstance, KeyboardEvents } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { getModel, Item } from './../common/common';\nimport { DropDownButton } from '../drop-down-button/drop-down-button';\nvar RTL = 'e-rtl';\nvar TAGNAME = 'EJS-SPLITBUTTON';\n/**\n * SplitButton component has primary and secondary button. Primary button is used to select\n * default action and secondary button is used to toggle contextual overlays for displaying list of\n * action items. It can contain both text and images.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var splitBtnObj = new SplitButton({content: 'SplitButton'});\n * splitBtnObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar SplitButton = /** @class */ (function (_super) {\n __extends(SplitButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {SplitButtonModel} options - Specifies the splitbutton model\n * @param {string|HTMLButtonElement} element - Specifies the element\n * @hidden\n */\n function SplitButton(options, element) {\n return _super.call(this, options, element) || this;\n }\n /**\n * Initialize Angular support.\n *\n * @private\n * @returns {void}\n */\n SplitButton.prototype.preRender = function () {\n var ele = this.element;\n if (ele.tagName === TAGNAME) {\n var ejInstance = getValue('ej2_instances', ele);\n var btn = this.createElement('button', { attrs: { 'type': 'button' } });\n var wrapper = this.createElement(TAGNAME, { className: 'e-' + this.getModuleName() + '-wrapper' });\n for (var idx = 0, len = ele.attributes.length; idx < len; idx++) {\n btn.setAttribute(ele.attributes[idx].nodeName, ele.attributes[idx].nodeValue);\n }\n ele.parentNode.insertBefore(wrapper, ele);\n detach(ele);\n ele = btn;\n wrapper.appendChild(ele);\n setValue('ej2_instances', ejInstance, ele);\n this.wrapper = wrapper;\n this.element = ele;\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the Component rendering.\n *\n * @returns {void}\n * @private\n */\n SplitButton.prototype.render = function () {\n this.initWrapper();\n this.createPrimaryButton();\n this.renderControl();\n };\n SplitButton.prototype.renderControl = function () {\n this.createSecondaryButton();\n this.setActiveElem([this.element, this.secondaryBtnObj.element]);\n this.setAria();\n this.wireEvents();\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n SplitButton.prototype.addItems = function (items, text) {\n _super.prototype.addItems.call(this, items, text);\n this.secondaryBtnObj.items = this.items;\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n SplitButton.prototype.removeItems = function (items, isUniqueId) {\n _super.prototype.removeItems.call(this, items, isUniqueId);\n this.secondaryBtnObj.items = this.items;\n };\n SplitButton.prototype.initWrapper = function () {\n if (!this.wrapper) {\n this.wrapper = this.createElement('div', { className: 'e-' + this.getModuleName() + '-wrapper' });\n this.element.parentNode.insertBefore(this.wrapper, this.element);\n }\n this.element.classList.remove('e-' + this.getModuleName());\n if (this.enableRtl) {\n this.wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([this.wrapper], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n };\n SplitButton.prototype.createPrimaryButton = function () {\n var btnModel = {\n cssClass: this.cssClass,\n enableRtl: this.enableRtl,\n iconCss: this.iconCss,\n iconPosition: this.iconPosition,\n content: this.content,\n disabled: this.disabled\n };\n this.primaryBtnObj = new Button(btnModel);\n this.primaryBtnObj.createElement = this.createElement;\n this.primaryBtnObj.appendTo(this.element);\n this.element.classList.add('e-' + this.getModuleName());\n this.element.type = 'button';\n this.wrapper.appendChild(this.element);\n };\n SplitButton.prototype.createSecondaryButton = function () {\n var _this = this;\n var btnElem = this.createElement('button', {\n className: 'e-icon-btn',\n attrs: { 'tabindex': '-1' },\n id: this.element.id + '_dropdownbtn'\n });\n this.wrapper.appendChild(btnElem);\n var dropDownBtnModel = {\n cssClass: this.cssClass,\n disabled: this.disabled,\n enableRtl: this.enableRtl,\n items: this.items,\n target: this.target,\n createPopupOnClick: this.createPopupOnClick\n };\n dropDownBtnModel.beforeItemRender = function (args) {\n if (_this.createPopupOnClick) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n _this.trigger('beforeItemRender', args);\n };\n dropDownBtnModel.open = function (args) {\n _this.trigger('open', args);\n };\n dropDownBtnModel.close = function (args) {\n _this.trigger('close', args);\n };\n dropDownBtnModel.select = function (args) {\n _this.trigger('select', args);\n };\n dropDownBtnModel.beforeOpen = function (args) {\n if (_this.createPopupOnClick && _this.items.length == 0) {\n _this.secondaryBtnObj.dropDown.relateTo = _this.wrapper;\n _this.dropDown = _this.secondaryBtnObj.dropDown;\n }\n var callBackPromise = new Deferred();\n _this.trigger('beforeOpen', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n dropDownBtnModel.beforeClose = function (args) {\n var callBackPromise = new Deferred();\n _this.trigger('beforeClose', args, function (observedArgs) {\n callBackPromise.resolve(observedArgs);\n });\n return callBackPromise;\n };\n this.secondaryBtnObj = new DropDownButton(dropDownBtnModel);\n this.secondaryBtnObj.createElement = this.createElement;\n this.secondaryBtnObj.appendTo(btnElem);\n if (!this.createPopupOnClick) {\n this.secondaryBtnObj.dropDown.relateTo = this.wrapper;\n this.dropDown = this.secondaryBtnObj.dropDown;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.isPopupCreated = this.secondaryBtnObj.isPopupCreated;\n this.secondaryBtnObj.activeElem = [this.element, this.secondaryBtnObj.element];\n this.secondaryBtnObj.element.querySelector('.e-btn-icon').classList.remove('e-icon-right');\n if (this.disabled) {\n this.wrapper.classList.add('e-splitbtn-disabled');\n }\n };\n SplitButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-expanded': 'false', 'aria-haspopup': 'true',\n 'aria-label': this.element.textContent + ' 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 enter: 'enter'\n }\n });\n };\n SplitButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.primaryBtnClickHandler);\n getInstance(this.element, KeyboardEvents).destroy();\n };\n SplitButton.prototype.primaryBtnClickHandler = function () {\n this.trigger('click', { element: this.element });\n };\n SplitButton.prototype.btnKeyBoardHandler = function (e) {\n switch (e.action) {\n case 'altdownarrow':\n this.clickHandler(e);\n break;\n case 'enter':\n this.clickHandler(e);\n if (this.getPopUpElement() && !this.getPopUpElement().classList.contains('e-popup-close')) {\n this.element.classList.remove('e-active');\n this.secondaryBtnObj.element.classList.add('e-active');\n }\n else {\n this.secondaryBtnObj.element.classList.remove('e-active');\n }\n break;\n }\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {SplitButtonModel} newProp - Specifies new properties\n * @param {SplitButtonModel} oldProp - Specifies old properties\n * @returns {void}\n */\n SplitButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var model = ['content', 'iconCss', 'iconPosition', 'cssClass', 'disabled', 'enableRtl'];\n this.primaryBtnObj.setProperties(getModel(newProp, model));\n model = ['beforeOpen', 'beforeItemRender', 'select', 'open',\n 'close', 'cssClass', 'disabled', 'enableRtl', 'createPopupOnClick'];\n if (Object.keys(newProp).indexOf('items') > -1) {\n this.secondaryBtnObj.items = newProp.items;\n this.secondaryBtnObj.dataBind();\n }\n this.secondaryBtnObj.setProperties(getModel(newProp, model));\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.wrapper], oldProp.cssClass.split(' '));\n }\n addClass([this.wrapper], newProp.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n addClass([this.wrapper], RTL);\n }\n else {\n removeClass([this.wrapper], RTL);\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n addClass([this.wrapper], 'e-splitbtn-disabled');\n }\n else {\n removeClass([this.wrapper], 'e-splitbtn-disabled');\n }\n }\n }\n };\n /**\n * Sets the focus to SplitButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n SplitButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('')\n ], SplitButton.prototype, \"content\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property('Left')\n ], SplitButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property(false)\n ], SplitButton.prototype, \"createPopupOnClick\", void 0);\n __decorate([\n Collection([], Item)\n ], SplitButton.prototype, \"items\", void 0);\n __decorate([\n Property('')\n ], SplitButton.prototype, \"target\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeItemRender\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeOpen\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"beforeClose\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"close\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"open\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"select\", void 0);\n __decorate([\n Event()\n ], SplitButton.prototype, \"created\", void 0);\n SplitButton = __decorate([\n NotifyPropertyChanges\n ], SplitButton);\n return SplitButton;\n}(DropDownButton));\nexport { SplitButton };\n/**\n * Deferred is used to handle asynchronous operation.\n */\nvar Deferred = /** @class */ (function () {\n function Deferred() {\n var _this = this;\n /**\n * Promise is an object that represents a value that may not be available yet, but will be resolved at some point in the future.\n */\n this.promise = new Promise(function (resolve, reject) {\n _this.resolve = resolve;\n _this.reject = reject;\n });\n /**\n * Defines the callback function triggers when the Deferred object is rejected.\n */\n this.catch = this.promise.catch.bind(this.promise);\n /**\n * Defines the callback function triggers when the Deferred object is resolved.\n */\n this.then = this.promise.then.bind(this.promise);\n }\n return Deferred;\n}());\nexport { Deferred };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { EventHandler, Property, NotifyPropertyChanges, Animation, attributes } from '@syncfusion/ej2-base';\nimport { Event, remove, removeClass } from '@syncfusion/ej2-base';\nimport { Complex, ChildProperty, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\nvar HIDESPINNER = 'e-hide-spinner';\nvar PROGRESS = 'e-progress';\nvar PROGRESSACTIVE = 'e-progress-active';\nvar CONTENTCLS = 'e-btn-content';\n/**\n * Defines the spin settings.\n */\nvar SpinSettings = /** @class */ (function (_super) {\n __extends(SpinSettings, _super);\n function SpinSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(null)\n ], SpinSettings.prototype, \"template\", void 0);\n __decorate([\n Property(16)\n ], SpinSettings.prototype, \"width\", void 0);\n __decorate([\n Property('Left')\n ], SpinSettings.prototype, \"position\", void 0);\n return SpinSettings;\n}(ChildProperty));\nexport { SpinSettings };\n/**\n * Defines the animation settings.\n */\nvar AnimationSettings = /** @class */ (function (_super) {\n __extends(AnimationSettings, _super);\n function AnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property(400)\n ], AnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('None')\n ], AnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property('ease')\n ], AnimationSettings.prototype, \"easing\", void 0);\n return AnimationSettings;\n}(ChildProperty));\nexport { AnimationSettings };\n/**\n * The ProgressButton visualizes the progression of an operation to indicate the user\n * that a process is happening in the background with visual representation.\n * ```html\n * <button id=\"element\"></button>\n * ```\n * ```typescript\n * <script>\n * var progressButtonObj = new ProgressButton({ content: 'Progress Button' });\n * progressButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar ProgressButton = /** @class */ (function (_super) {\n __extends(ProgressButton, _super);\n /**\n * Constructor for creating the widget.\n *\n * @param {ProgressButtonModel} options - Specifies progress button model\n * @param {string|HTMLButtonElement} element - Specifies element\n */\n function ProgressButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.step = 1;\n return _this;\n }\n ProgressButton.prototype.preRender = function () {\n _super.prototype.preRender.call(this);\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.render = function () {\n _super.prototype.render.call(this);\n this.init();\n this.wireEvents();\n this.setAria();\n this.renderComplete();\n };\n /**\n * Starts the button progress at the specified percent.\n *\n * @param {number} percent - Starts the button progress at this percent.\n * @returns {void}\n */\n ProgressButton.prototype.start = function (percent) {\n this.isPaused = false;\n this.startProgress(percent ? percent : this.percent, this.progressTime);\n };\n /**\n * Stops the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.stop = function () {\n this.isPaused = true;\n cancelAnimationFrame(this.timerId);\n };\n /**\n * Complete the button progress.\n *\n * @returns {void}\n */\n ProgressButton.prototype.progressComplete = function () {\n this.isPaused = false;\n this.finishProgress();\n };\n /**\n * Get component name.\n *\n * @returns {string} - Module Name\n * @private\n */\n ProgressButton.prototype.getModuleName = function () {\n return 'progress-btn';\n };\n /**\n * Destroys the widget.\n *\n * @returns {void}\n */\n ProgressButton.prototype.destroy = function () {\n var _this = this;\n var classList = [HIDESPINNER, PROGRESSACTIVE, 'e-round-corner', 'e-' + _super.prototype.getModuleName.call(this),\n 'e-spin-' + this.spinSettings.position.toLowerCase()];\n _super.prototype.destroy.call(this);\n this.unWireEvents();\n this.element.innerHTML = '';\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n removeClass([this.element], classList);\n var css = this.element.getAttribute('class') ? ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow']\n : ['aria-label', 'aria-valuemin', 'aria-valuemax', 'aria-valuenow', 'class'];\n css.forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n if (this.disabled) {\n this.element.removeAttribute('disabled');\n }\n };\n ProgressButton.prototype.init = function () {\n this.element.classList.add('e-' + _super.prototype.getModuleName.call(this));\n this.setContent();\n this.createSpinner();\n if (this.enableProgress) {\n this.createProgress();\n }\n };\n ProgressButton.prototype.createSpinner = function () {\n var spinner = this.createElement('span', { className: 'e-spinner' });\n this.setSpinPosition(spinner);\n createSpinner({\n target: spinner, width: this.spinSettings.width || 16, template: this.spinSettings.template\n }, this.createElement);\n };\n ProgressButton.prototype.getSpinner = function () {\n return this.element.getElementsByClassName('e-spinner')[0];\n };\n ProgressButton.prototype.getProgress = function () {\n return this.element.getElementsByClassName(PROGRESS)[0];\n };\n ProgressButton.prototype.setSpinPosition = function (ele) {\n var position = this.spinSettings.position || 'Left';\n if (position === 'Left' || position === 'Top') {\n this.element.insertBefore(ele, this.element.getElementsByClassName(CONTENTCLS)[0]);\n }\n else {\n this.element.appendChild(ele);\n }\n this.element.classList.add('e-spin-' + position.toLowerCase());\n };\n ProgressButton.prototype.createProgress = function () {\n this.element.appendChild(this.createElement('span', { className: PROGRESS }));\n };\n ProgressButton.prototype.setContent = function () {\n var cont;\n cont = this.element.innerHTML;\n if (this.enableHtmlSanitizer) {\n cont = SanitizeHtmlHelper.sanitize(this.element.innerHTML);\n }\n this.element.innerHTML = '';\n this.element.appendChild(this.createElement('span', { className: CONTENTCLS, innerHTML: cont }));\n };\n ProgressButton.prototype.setContentIcon = function (content) {\n var contElem = this.createElement('span', { className: CONTENTCLS, innerHTML: content });\n if (this.iconCss) {\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\n if (!this.element.textContent.trim()) {\n this.element.classList.add('e-icon-btn');\n }\n else {\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\n }\n }\n var node = contElem.childNodes[0];\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n contElem.insertBefore(span, node);\n }\n else {\n contElem.appendChild(span);\n }\n }\n this.element.appendChild(contElem);\n };\n ProgressButton.prototype.clickHandler = function () {\n if (this.element.classList.contains(PROGRESSACTIVE)) {\n return;\n }\n this.startProgress();\n };\n ProgressButton.prototype.startProgress = function (percent, progressTime) {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n if (!(clsList.contains(HIDESPINNER))) {\n showSpinner(this.element.querySelector(\".e-spinner\"));\n }\n this.startAnimate(Date.now(), progressTime ? progressTime : 0, progressTime ? Date.now() - (this.duration * 1 / 100) : Date.now(), percent ? percent : 0, 0, this.step, 0, isVertical);\n this.startContAnimate();\n };\n ProgressButton.prototype.startAnimate = function (timestamp, progressTime, prevTime, percent, prevPercent, step, prevProgressTime, isVertical) {\n var _this = this;\n try {\n var timeDiff = timestamp - prevTime;\n var stepTime = this.duration * step / 100;\n var timeDiffBuffer_1 = timeDiff ? (timeDiff < stepTime ? timeDiff - stepTime : timeDiff % stepTime) : 0;\n this.progressTime = progressTime = progressTime + timeDiff - timeDiffBuffer_1;\n prevTime = timestamp - timeDiffBuffer_1;\n percent = percent + (timeDiff - timeDiffBuffer_1) / this.duration * 100;\n prevPercent = ((progressTime - prevProgressTime) % stepTime === 0 || percent === 100) ? percent : prevPercent;\n var args = { percent: prevPercent, currentDuration: progressTime, step: step };\n this.eIsVertical = isVertical;\n if (percent === 0) {\n this.trigger('begin', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else if (percent === 100 || progressTime === this.duration) {\n this.trigger('end', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n else {\n this.trigger('progress', args, function (observedArgs) {\n _this.successCallback(observedArgs, percent, prevPercent, progressTime, prevProgressTime, timeDiffBuffer_1, prevTime);\n });\n }\n }\n catch (e) {\n cancelAnimationFrame(this.timerId);\n this.trigger('fail', e);\n }\n };\n ProgressButton.prototype.successCallback = function (args, perc, pPerc, prgTim, pPrgTim, timDif, pTim) {\n var _this = this;\n var percent = perc;\n var prevPercent = pPerc;\n var timeDiffBuffer = timDif;\n var progressTime = prgTim;\n var prevProgressTime = pPrgTim;\n var prevTime = pTim;\n var isVertical = this.eIsVertical;\n if (percent !== args.percent && args.percent !== prevPercent) {\n percent = args.percent;\n }\n this.percent = percent;\n this.step = args.step;\n if ((progressTime - prevProgressTime) % (this.duration * args.step / 100) === 0 || percent === 100) {\n this.timerId = requestAnimationFrame(function () {\n if (_this.enableProgress) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = percent + '%';\n }\n _this.element.setAttribute('aria-valuenow', percent.toString());\n });\n prevPercent = percent;\n prevProgressTime = progressTime;\n }\n if (!this.isPaused) {\n if (progressTime < this.duration && percent < 100) {\n this.interval = window.setTimeout(function () {\n _this.startAnimate(Date.now(), progressTime, prevTime, percent, prevPercent, args.step, prevProgressTime, isVertical);\n }, (this.duration / 100) - timeDiffBuffer);\n }\n else {\n this.interval = window.setTimeout(function () {\n _this.progressTime = _this.percent = 0;\n if (_this.enableProgress) {\n _this.getProgress().style[isVertical ? 'height' : 'width'] = '0%';\n }\n _this.element.setAttribute('aria-valuenow', '0');\n _this.hideSpin();\n }, 100);\n }\n }\n };\n ProgressButton.prototype.startContAnimate = function () {\n var _this = this;\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (this.animationSettings.effect !== 'None') {\n (new Animation({})).animate(ele, {\n duration: this.animationSettings.duration,\n name: 'Progress' + this.animationSettings.effect,\n timingFunction: this.animationSettings.easing,\n begin: function () {\n if (_this.spinSettings.position === 'Center') {\n _this.setSpinnerSize();\n }\n },\n end: function () {\n ele.classList.add('e-animate-end');\n }\n });\n }\n else if (this.spinSettings.position === 'Center') {\n this.setSpinnerSize();\n }\n };\n ProgressButton.prototype.finishProgress = function () {\n var clsList = this.element.classList;\n var isVertical = clsList.contains('e-vertical');\n clsList.add(PROGRESSACTIVE);\n var count = 100;\n for (var i = this.percent; i < count; i++) {\n i += 10;\n if (i > 100) {\n i = 100;\n }\n if (this.enableProgress) {\n this.getProgress().style[isVertical ? 'height' : 'width'] = (this.percent < 100) ? (i + '%') : '100%';\n }\n }\n this.element.setAttribute('aria-valuenow', '0');\n this.hideSpin();\n var args = { step: this.step, currentDuration: this.progressTime, percent: 100 };\n clearTimeout(this.interval);\n this.trigger('end', args);\n this.progressTime = this.percent = 0;\n };\n ProgressButton.prototype.setSpinnerSize = function () {\n var ele = this.element.getElementsByClassName(CONTENTCLS)[0];\n var spinner = this.getSpinner();\n spinner.style.width = Math.max(spinner.offsetWidth, ele.offsetWidth) + 'px';\n spinner.style.height = Math.max(spinner.offsetHeight, ele.offsetHeight) + 'px';\n ele.classList.add('e-cont-animate');\n };\n ProgressButton.prototype.hideSpin = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n if (!(this.element.classList.contains(HIDESPINNER))) {\n hideSpinner(this.element.querySelector(\".e-spinner\"));\n }\n this.element.classList.remove(PROGRESSACTIVE);\n if (this.animationSettings.effect !== 'None') {\n cont.classList.remove('e-animate-end');\n }\n if (this.spinSettings.position === 'Center') {\n var ele = this.getSpinner();\n cont.classList.remove('e-cont-animate');\n ele.style.width = 'auto';\n ele.style.height = 'auto';\n }\n };\n ProgressButton.prototype.setIconSpan = function () {\n var cont = this.element.getElementsByClassName(CONTENTCLS)[0];\n var iconSpan = this.element.getElementsByClassName('e-btn-icon')[0];\n if (cont.childNodes[0] && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n cont.insertBefore(iconSpan, cont.childNodes[0]);\n }\n else {\n cont.appendChild(iconSpan);\n }\n };\n ProgressButton.prototype.setAria = function () {\n attributes(this.element, {\n 'aria-label': this.element.textContent + ' progress', 'aria-valuemin': '0', 'aria-valuemax': '100', 'aria-valuenow': '0'\n });\n };\n ProgressButton.prototype.wireEvents = function () {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n };\n ProgressButton.prototype.unWireEvents = function () {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n };\n /**\n * Called internally if any of the property value changed.\n *\n * @param {ProgressButtonModel} newProp - Specifies new properties\n * @param {ProgressButtonModel} oldProp - Specifies old properties\n * @returns {void}\n * @private\n */\n ProgressButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var ele = this.element;\n var isSpinning = false;\n var clsList = this.element.querySelector('.e-spinner-pane').classList;\n if (clsList.contains('e-spin-show')) {\n isSpinning = true;\n }\n _super.prototype.onPropertyChanged.call(this, newProp, oldProp);\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'content':\n this.setContent();\n this.createSpinner();\n if (isSpinning) {\n showSpinner(this.element.querySelector(\".e-spinner\"));\n isSpinning = false;\n }\n if (this.enableProgress) {\n this.createProgress();\n }\n ele.setAttribute('aria-label', ele.textContent + ' progress');\n break;\n case 'iconCss':\n if (!oldProp.iconCss) {\n this.setIconSpan();\n }\n break;\n case 'iconPosition':\n this.setIconSpan();\n break;\n case 'enableProgress':\n if (newProp.enableProgress) {\n this.createProgress();\n }\n else {\n remove(this.getProgress());\n }\n break;\n case 'spinSettings':\n if (newProp.spinSettings.position) {\n ele.classList.remove('e-spin-' + oldProp.spinSettings.position.toLowerCase());\n this.setSpinPosition(this.getSpinner());\n }\n if (newProp.spinSettings.template || newProp.spinSettings.width) {\n ele.removeChild(this.getSpinner());\n this.createSpinner();\n }\n break;\n }\n }\n };\n /**\n * Sets the focus to ProgressButton\n * its native method\n *\n * @public\n * @returns {void}\n */\n ProgressButton.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"enableProgress\", void 0);\n __decorate([\n Property(2000)\n ], ProgressButton.prototype, \"duration\", void 0);\n __decorate([\n Property('Left')\n ], ProgressButton.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], ProgressButton.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"isToggle\", void 0);\n __decorate([\n Property(false)\n ], ProgressButton.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Complex({}, SpinSettings)\n ], ProgressButton.prototype, \"spinSettings\", void 0);\n __decorate([\n Complex({}, AnimationSettings)\n ], ProgressButton.prototype, \"animationSettings\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"begin\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"progress\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"end\", void 0);\n __decorate([\n Event()\n ], ProgressButton.prototype, \"fail\", void 0);\n ProgressButton = __decorate([\n NotifyPropertyChanges\n ], ProgressButton);\n return ProgressButton;\n}(Button));\nexport { ProgressButton };\n","import { addClass, createElement as internalCreateElement, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\n/**\n * Initialize ButtonGroup CSS component with specified properties.\n * ```html\n * <div id='buttongroup'>\n * <button></button>\n * <button></button>\n * <button></button>\n * </div>\n * ```\n * ```typescript\n * createButtonGroup('#buttongroup', {\n * cssClass: 'e-outline',\n * buttons: [\n * { content: 'Day' },\n * { content: 'Week' },\n * { content: 'Work Week'}\n * ]\n * });\n * ```\n *\n * @param {string} selector\n * @param {CreateButtonGroupModel} options\n * @returns HTMLElement\n */\n/**\n * Creates button group.\n *\n * @param {string} selector - Specifies the selector.\n * @param {CreateButtonGroupModel} options - Specifies the button group model.\n * @param {Function} createElement - Specifies the element.\n * @returns {HTMLElement} - Button group element.\n */\nexport function createButtonGroup(selector, options, createElement) {\n if (options === void 0) { options = {}; }\n var child;\n var btnElem;\n var nextChild;\n var btnModel;\n if (isNullOrUndefined(createElement)) {\n createElement = internalCreateElement;\n }\n var wrapper = document.querySelector(selector);\n addClass([wrapper], ['e-btn-group', 'e-css']);\n wrapper.setAttribute('role', 'group');\n var childs = wrapper.children;\n options.buttons = options.buttons || [];\n for (var i = 0, j = 0; j < childs.length; i++, j++) {\n child = childs[j];\n btnModel = options.buttons[i];\n if (btnModel !== null) {\n if (child.tagName === 'BUTTON') {\n btnElem = child;\n }\n else {\n btnElem = createElement('label');\n nextChild = childs[j + 1];\n if (nextChild) {\n wrapper.insertBefore(btnElem, nextChild);\n }\n else {\n wrapper.appendChild(btnElem);\n }\n if (child.id) {\n btnElem.setAttribute('for', child.id);\n }\n if (btnModel && btnModel.disabled) {\n child.disabled = true;\n }\n j++;\n }\n if (options.cssClass && btnModel && !btnModel.cssClass) {\n btnModel.cssClass = options.cssClass;\n }\n new Button(btnModel || {}, btnElem);\n }\n }\n return wrapper;\n}\n"],"names":["getModel","props","model","obj","extend","_i","_a","Object","keys","length","prop","indexOf","deleteObject","upDownKeyHandler","ul","keyCode","defaultIdx","childElementCount","liIdx","selectedLi","querySelector","classList","remove","i","len","children","contains","isValidLI","addClass","focus","li","index","count","setBlankIconStyle","popup","blankIcon","blankIconList","slice","call","getElementsByClassName","forEach","style","paddingLeft","paddingRight","removeAttribute","iconLi","isNullOrUndefined","cssProp","icon","enableRtl","padding","margin","size","parseInt","getComputedStyle","fontSize","__extends","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","Item","_super","apply","Property","ChildProperty","classNames","DropDownButton","options","element","_this","isPopupCreated","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","createPopupOnClick","createPopup","closePopup","render","initialize","disabled","wireEvents","renderComplete","addItems","items","text","newItem","idx","j","splice","createItems","removeItems","isUniqueId","refresh","len_1","id","getULElement","div","createElement","className","document","body","appendChild","dropDown","Popup","relateTo","collision","X","Y","position","targetType","content","getTargetElement","refreshPosition","hide","attributes","textContent","cssClass","replace","trim","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","getPopUpElement","field","SanitizeHtmlHelper","sanitize","href","button","Button","iconPosition","enablePersistence","appendTo","appendArrowSpan","setActiveElem","isColorPicker","prevElem","previousSibling","elem","activeElem","val","destroy","classList_1","detach","removeClass","getAttribute","popupUnWireEvents","destroyPopup","unWireEvents","popupEle","getElementById","EventHandler","clickHandler","keyBoardHandler","undefined","dropDownBtn","getComponent","delegateMousedownHandler","mousedownHandler","bind","popupWireEvents","popupElement","closeActionEvents","focusoutHandler","rippleFn","rippleEffect","selector","parentElement","isRippleEnabled","e","altKey","keyEventHandler","preventDefault","getLI","tagName","closest","trgt","liTarget","relatedTarget","selectEventArgs","popupElem","splitButton","isReact","appendReactElement","renderReactTemplates","beforeOpenArgs","event","cancel","observedArgs","ul_1","show","setAttribute","left","wrapperWidth","offsetWidth","popupRect","popupLeft","parseFloat","openArgs","focusEle","beforeCloseArgs","ul_2","closeArgs","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Event","NotifyPropertyChanges","Component","TAGNAME","SplitButton","ele","ejInstance","getValue","btn","type","wrapper","nodeName","nodeValue","parentNode","setValue","initWrapper","createPrimaryButton","renderControl","createSecondaryButton","secondaryBtnObj","setAria","btnModel","primaryBtnObj","btnElem","dropDownBtnModel","beforeItemRender","args","open","close","beforeOpen","callBackPromise","Deferred","resolve","beforeClose","aria-expanded","aria-haspopup","aria-owns","concat","primaryBtnClickHandler","KeyboardEvents","keyAction","btnKeyBoardHandler","keyConfigs","altdownarrow","enter","getInstance","action","promise","Promise","reject","catch","then","HIDESPINNER","PROGRESSACTIVE","CONTENTCLS","SpinSettings","AnimationSettings","ProgressButton","step","init","start","percent","isPaused","startProgress","progressTime","stop","cancelAnimationFrame","timerId","progressComplete","finishProgress","spinSettings","toLowerCase","setContent","createSpinner","enableProgress","createProgress","spinner","setSpinPosition","width","template","getSpinner","getProgress","cont","setContentIcon","contElem","node","clsList","isVertical","showSpinner","startAnimate","Date","now","duration","startContAnimate","timestamp","prevTime","prevPercent","prevProgressTime","timeDiff","stepTime","timeDiffBuffer_1","currentDuration","eIsVertical","successCallback","perc","pPerc","prgTim","pPrgTim","timDif","pTim","timeDiffBuffer","requestAnimationFrame","toString","interval","window","setTimeout","hideSpin","animationSettings","effect","Animation","animate","name","timingFunction","easing","begin","setSpinnerSize","end","clearTimeout","Math","max","height","offsetHeight","hideSpinner","setIconSpan","iconSpan","aria-valuemin","aria-valuemax","aria-valuenow","isSpinning","removeChild","Complex","child","nextChild","internalCreateElement","childs","buttons"],"mappings":"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"}
|