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