@syncfusion/ej2-splitbuttons 27.1.56 → 28.1.33
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/README.md +4 -4
- package/dist/ej2-splitbuttons.min.js +3 -3
- package/dist/ej2-splitbuttons.umd.min.js +3 -3
- package/dist/ej2-splitbuttons.umd.min.js.map +1 -1
- package/dist/es6/ej2-splitbuttons.es2015.js +140 -46
- package/dist/es6/ej2-splitbuttons.es2015.js.map +1 -1
- package/dist/es6/ej2-splitbuttons.es5.js +146 -46
- package/dist/es6/ej2-splitbuttons.es5.js.map +1 -1
- package/dist/global/ej2-splitbuttons.min.js +3 -3
- package/dist/global/ej2-splitbuttons.min.js.map +1 -1
- package/dist/global/index.d.ts +2 -2
- package/package.json +8 -8
- package/src/common/common.d.ts +5 -0
- package/src/common/common.js +2 -2
- package/src/drop-down-button/drop-down-button-model.d.ts +63 -1
- package/src/drop-down-button/drop-down-button.d.ts +60 -3
- package/src/drop-down-button/drop-down-button.js +146 -45
- package/styles/bds-lite.css +1937 -0
- package/styles/bds-lite.scss +13 -0
- package/styles/bds.css +2148 -0
- package/styles/bds.scss +17 -0
- package/styles/bootstrap-dark-lite.css +11 -0
- package/styles/bootstrap-dark.css +11 -1
- package/styles/bootstrap-lite.css +11 -0
- package/styles/bootstrap.css +11 -1
- package/styles/bootstrap4-lite.css +11 -0
- package/styles/bootstrap4.css +11 -1
- package/styles/bootstrap5-dark-lite.css +11 -0
- package/styles/bootstrap5-dark.css +11 -1
- package/styles/bootstrap5-lite.css +11 -0
- package/styles/bootstrap5.3-lite.css +11 -0
- package/styles/bootstrap5.3.css +11 -1
- package/styles/bootstrap5.css +11 -1
- package/styles/button-group/_group-button-mixin.scss +2 -2
- package/styles/button-group/_layout.scss +1 -1
- package/styles/button-group/_tailwind3-definition.scss +31 -0
- package/styles/button-group/_theme.scss +83 -12
- package/styles/button-group/bds.css +861 -0
- package/styles/button-group/bds.scss +5 -0
- package/styles/button-group/tailwind3.css +847 -0
- package/styles/button-group/tailwind3.scss +5 -0
- package/styles/drop-down-button/_bigger.scss +20 -0
- package/styles/drop-down-button/_layout.scss +36 -3
- package/styles/drop-down-button/_tailwind3-definition.scss +53 -0
- package/styles/drop-down-button/_theme.scss +7 -0
- package/styles/drop-down-button/bds.css +372 -0
- package/styles/drop-down-button/bds.scss +7 -0
- package/styles/drop-down-button/bootstrap-dark.css +11 -1
- package/styles/drop-down-button/bootstrap.css +11 -1
- package/styles/drop-down-button/bootstrap4.css +11 -1
- package/styles/drop-down-button/bootstrap5-dark.css +11 -1
- package/styles/drop-down-button/bootstrap5.3.css +11 -1
- package/styles/drop-down-button/bootstrap5.css +11 -1
- package/styles/drop-down-button/fabric-dark.css +11 -1
- package/styles/drop-down-button/fabric.css +11 -1
- package/styles/drop-down-button/fluent-dark.css +11 -1
- package/styles/drop-down-button/fluent.css +11 -1
- package/styles/drop-down-button/fluent2.css +11 -1
- package/styles/drop-down-button/highcontrast-light.css +11 -1
- package/styles/drop-down-button/highcontrast.css +11 -1
- package/styles/drop-down-button/icons/_tailwind3.scss +10 -0
- package/styles/drop-down-button/material-dark.css +11 -1
- package/styles/drop-down-button/material.css +11 -1
- package/styles/drop-down-button/material3-dark.css +11 -1
- package/styles/drop-down-button/material3.css +11 -1
- package/styles/drop-down-button/tailwind-dark.css +11 -1
- package/styles/drop-down-button/tailwind.css +11 -1
- package/styles/drop-down-button/tailwind3.css +295 -0
- package/styles/drop-down-button/tailwind3.scss +7 -0
- package/styles/fabric-dark-lite.css +11 -0
- package/styles/fabric-dark.css +11 -1
- package/styles/fabric-lite.css +11 -0
- package/styles/fabric.css +11 -1
- package/styles/fluent-dark-lite.css +11 -0
- package/styles/fluent-dark.css +11 -1
- package/styles/fluent-lite.css +11 -0
- package/styles/fluent.css +11 -1
- package/styles/fluent2-lite.css +11 -0
- package/styles/fluent2.css +11 -1
- package/styles/highcontrast-light-lite.css +11 -0
- package/styles/highcontrast-light.css +11 -1
- package/styles/highcontrast-lite.css +11 -0
- package/styles/highcontrast.css +11 -1
- package/styles/material-dark-lite.css +11 -0
- package/styles/material-dark.css +11 -1
- package/styles/material-lite.css +11 -0
- package/styles/material.css +11 -1
- package/styles/material3-dark-lite.css +11 -0
- package/styles/material3-dark.css +11 -1
- package/styles/material3-lite.css +11 -0
- package/styles/material3.css +11 -1
- package/styles/progress-button/_tailwind3-definition.scss +20 -0
- package/styles/progress-button/_theme.scss +70 -0
- package/styles/progress-button/bds.css +683 -0
- package/styles/progress-button/bds.scss +6 -0
- package/styles/progress-button/tailwind3.css +636 -0
- package/styles/progress-button/tailwind3.scss +6 -0
- package/styles/split-button/_layout.scss +2 -2
- package/styles/split-button/_tailwind3-definition.scss +23 -0
- package/styles/split-button/_theme.scss +6 -1
- package/styles/split-button/bds.css +461 -0
- package/styles/split-button/bds.scss +7 -0
- package/styles/split-button/tailwind3.css +342 -0
- package/styles/split-button/tailwind3.scss +7 -0
- package/styles/tailwind-dark-lite.css +11 -0
- package/styles/tailwind-dark.css +11 -1
- package/styles/tailwind-lite.css +11 -0
- package/styles/tailwind.css +11 -1
- package/styles/tailwind3-lite.css +1891 -0
- package/styles/tailwind3-lite.scss +13 -0
- package/styles/tailwind3.css +2110 -0
- package/styles/tailwind3.scss +17 -0
|
@@ -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// eslint-disable-next-line jsdoc/require-param, valid-jsdoc\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 if (this.createPopupOnClick) {\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n if (splitButton) {\n splitButton.isPopupCreated = true;\n }\n }\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('tabindex', '0');\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.cssClass = isNullOrUndefined(this.cssClass) ? '' : this.cssClass;\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 var splitButton = getComponent(this.activeElem[0], 'split-btn');\n if (this.createPopupOnClick && splitButton) {\n var dropDownButton = getComponent(this.activeElem[1], 'dropdown-btn');\n if (dropDownButton) {\n dropDownButton.isPopupCreated = false;\n }\n }\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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.isSafari = function () {\n return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\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.triggerSelect(e);\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() && this.getPopUpElement() && !(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 || e.target);\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 li = this.getLI(e.target);\n if (li) {\n this.triggerSelect(e);\n this.closePopup(e, this.activeElem[0]);\n }\n }\n }\n };\n DropDownButton.prototype.triggerSelect = function (e) {\n var eventArgs;\n var liIdx;\n var item;\n var li = this.getLI(e.target);\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 }\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 if (splitButton.appendReactElement) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n splitButton.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n }\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.appendReactElement) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n }\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 && !_this.isSafari()) {\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 if (ul_1 && _this.isSafari()) {\n ul_1.focus();\n }\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 if (_this.dropDown) {\n _this.dropDown.hide();\n }\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 oldProp.cssClass = isNullOrUndefined(oldProp.cssClass) ? '' : oldProp.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 // eslint-disable-next-line @typescript-eslint/no-unused-expressions\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(true)\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 if (this.spinSettings.position) {\n classList.push('e-spin-' + this.spinSettings.position.toLowerCase());\n }\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.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 && _this.getProgress()) {\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 && _this.getProgress()) {\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 && this.getProgress()) {\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(true)\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":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","getModel","props","model","obj","extend","_i","_a","keys","prop","indexOf","deleteObject","upDownKeyHandler","ul","keyCode","defaultIdx","childElementCount","liIdx","selectedLi","querySelector","classList","remove","len","children","contains","isValidLI","li","index","count","addClass","focus","setBlankIconStyle","popup","blankIcon","icon","cssProp","size","blankIconList","slice","call","getElementsByClassName","forEach","style","paddingLeft","paddingRight","removeAttribute","iconLi","isNullOrUndefined","enableRtl","padding","margin","parseInt","getComputedStyle","fontSize","_super","ChildProperty","Item","Property","apply","classNames","DropDownButton","Component","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","createPopupOnClick","isPopupCreated","createPopup","closePopup","render","initialize","disabled","wireEvents","renderComplete","addItems","items","text","newItem","idx","j","splice","createItems","removeItems","isUniqueId","refresh","len_1","id","getULElement","splitButton","div","createElement","className","element","document","body","appendChild","dropDown","Popup","relateTo","collision","X","Y","position","targetType","content","getTargetElement","setAttribute","popupContent","display","refreshPosition","hide","attributes","cssClass","replace","trim","split","getComponent","activeElem","isColorPicker","select","appendItems","showIcon","hasIcon","innerHTML","attrs","role","tabindex","item","tempItem","url","separator","aria-label","aria-hidden","getUniqueID","getModuleName","beforeDisabled","enableHtmlSanitizer","textContent","createAnchor","add","iconCss","span","childNodes","insertBefore","trigger","eventArgs","getPopUpElement","field","SanitizeHtmlHelper","sanitize","href","button","Button","iconPosition","enablePersistence","appendTo","appendArrowSpan","setActiveElem","prevElem","previousSibling","elem","val","destroy","classList_1","_this","detach","removeClass","getAttribute","popupUnWireEvents","destroyPopup","unWireEvents","popupEle","getElementById","EventHandler","clickHandler","keyBoardHandler","undefined","dropDownButton","dropDownBtn","delegateMousedownHandler","mousedownHandler","bind","window","windowResize","popupWireEvents","popupElement","closeActionEvents","focusoutHandler","rippleFn","rippleEffect","selector","parentElement","isRippleEnabled","e","altKey","keyEventHandler","isSafari","test","navigator","userAgent","preventDefault","triggerSelect","getLI","tagName","closest","trgt","liTarget","relatedTarget","event","popupElem","isReact","appendReactElement","renderReactTemplates","beforeOpenArgs","cancel","observedArgs","openArgs","ul_1","show","left","wrapperWidth","offsetWidth","popupRect","popupLeft","parseFloat","focusEle","beforeCloseArgs","ul_2","closeArgs","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Event","NotifyPropertyChanges","options","RTL","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","PROGRESS","PROGRESSACTIVE","CONTENTCLS","SpinSettings","AnimationSettings","ProgressButton","init","start","percent","isPaused","startProgress","progressTime","stop","cancelAnimationFrame","timerId","progressComplete","finishProgress","spinSettings","push","toLowerCase","setContent","createSpinner","enableProgress","createProgress","spinner","setSpinPosition","width","template","getSpinner","getProgress","cont","clsList","isVertical","showSpinner","startAnimate","Date","now","duration","step","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","internalCreateElement","child","nextChild","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 * @param {boolean} blankIcon - Specifies the blankIcon value.\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') && li.querySelector('.e-menu-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, append, formatUnit, Animation } from '@syncfusion/ej2-base';\nimport { addClass, getUniqueID, rippleEffect, getComponent, ChildProperty, Complex } from '@syncfusion/ej2-base';\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { classList, removeClass, compile } 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 POPUPWIDTH: 'e-dropdown-popup-width'\n};\n/**\n * Animation configuration settings.\n */\nvar DropDownMenuAnimationSettings = /** @class */ (function (_super) {\n __extends(DropDownMenuAnimationSettings, _super);\n function DropDownMenuAnimationSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n __decorate([\n Property('SlideDown')\n ], DropDownMenuAnimationSettings.prototype, \"effect\", void 0);\n __decorate([\n Property(400)\n ], DropDownMenuAnimationSettings.prototype, \"duration\", void 0);\n __decorate([\n Property('ease')\n ], DropDownMenuAnimationSettings.prototype, \"easing\", void 0);\n return DropDownMenuAnimationSettings;\n}(ChildProperty));\nexport { DropDownMenuAnimationSettings };\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: this.popupWidth !== 'auto' ? classNames.POPUP + \" \" + classNames.POPUPWIDTH : classNames.POPUP,\n id: this.element.id + '-popup'\n });\n document.body.appendChild(div);\n this.dropDown = new Popup(div, {\n width: this.popupWidth,\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 if (this.createPopupOnClick) {\n var splitButton = getComponent(this.activeElem[0], 'split-btn');\n if (splitButton) {\n splitButton.isPopupCreated = true;\n }\n }\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 _this = this;\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 if (this.itemTemplate) {\n var compiledTemplate_1 = this.compiletemplate(this.itemTemplate);\n items.forEach(function (item) {\n var li = _this.createElement('li', {\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator\n ? { 'role': 'separator', 'tabindex': '-1', 'aria-label': 'separator', 'aria-hidden': 'true' }\n : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': item.text },\n id: item.id ? item.id : getUniqueID('e-' + _this.getModuleName() + '-item')\n });\n var compiledElement = compiledTemplate_1(item, _this, 'template', null, false, null, li);\n if (compiledElement) {\n append(compiledElement, li);\n }\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n var eventArgs = { item: item, element: li };\n _this.trigger('beforeItemRender', eventArgs);\n if (eventArgs.item.disabled !== item.disabled) {\n li.classList[eventArgs.item.disabled ? 'add' : 'remove']('e-disabled');\n }\n ul.appendChild(li);\n });\n }\n else {\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 }\n if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\n }\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n DropDownButton.prototype.compiletemplate = function (template) {\n if (!this.itemTemplate) {\n return undefined;\n }\n try {\n if (typeof this.itemTemplate !== 'function') {\n var templateElement = document.querySelector(this.itemTemplate);\n if (templateElement) {\n return compile(templateElement.innerHTML.trim());\n }\n }\n return compile(template);\n }\n catch (_a) {\n return compile(template);\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('tabindex', '0');\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.cssClass = isNullOrUndefined(this.cssClass) ? '' : this.cssClass;\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 var splitButton = getComponent(this.activeElem[0], 'split-btn');\n if (this.createPopupOnClick && splitButton) {\n var dropDownButton = getComponent(this.activeElem[1], 'dropdown-btn');\n if (dropDownButton) {\n dropDownButton.isPopupCreated = false;\n }\n }\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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.isSafari = function () {\n return /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\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.triggerSelect(e);\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() && this.getPopUpElement() && !(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 || e.target);\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 li = this.getLI(e.target);\n if (li) {\n this.triggerSelect(e);\n this.closePopup(e, this.activeElem[0]);\n }\n }\n }\n };\n DropDownButton.prototype.triggerSelect = function (e) {\n var eventArgs;\n var liIdx;\n var item;\n var li = this.getLI(e.target);\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 }\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.activeElem[0] && this.activeElem[0].classList.contains('e-dropdown-btn') && popupElem.style.width && popupElem.style.width !== 'auto') {\n this.setWidth(popupElem);\n }\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 if (splitButton.appendReactElement) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n splitButton.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n }\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isReact = true;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (this.appendReactElement) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.appendReactElement(this.getTargetElement(), this.getPopUpElement());\n }\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 var animationOptions = _this.animationSettings.effect !== 'None' ? {\n name: _this.animationSettings.effect, duration: _this.animationSettings.duration,\n timingFunction: _this.animationSettings.easing\n } : null;\n if (animationOptions) {\n _this.animatePopup(animationOptions, ul_1);\n }\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 && !_this.isSafari()) {\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 if (ul_1 && _this.isSafari()) {\n ul_1.focus();\n }\n }\n });\n };\n DropDownButton.prototype.animatePopup = function (animationOptions, element) {\n new Animation(animationOptions).animate(element, {\n begin: function (args) {\n args.element.parentElement.style.height = args.element.parentElement.offsetHeight + 'px';\n }\n });\n };\n DropDownButton.prototype.setWidth = function (popupElem) {\n var width = formatUnit(popupElem.style.width);\n if (width.indexOf('%') > -1) {\n var btnWidth = this.element.offsetWidth * parseFloat(width) / 100;\n popupElem.style.width = btnWidth + \"px\";\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 if (_this.dropDown) {\n _this.dropDown.hide();\n }\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 oldProp.cssClass = isNullOrUndefined(oldProp.cssClass) ? '' : oldProp.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 // eslint-disable-next-line @typescript-eslint/no-unused-expressions\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(true)\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 Property(null)\n ], DropDownButton.prototype, \"itemTemplate\", void 0);\n __decorate([\n Property('auto')\n ], DropDownButton.prototype, \"popupWidth\", void 0);\n __decorate([\n Complex({ effect: 'None' }, DropDownMenuAnimationSettings)\n ], DropDownButton.prototype, \"animationSettings\", 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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\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 if (this.spinSettings.position) {\n classList.push('e-spin-' + this.spinSettings.position.toLowerCase());\n }\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.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 && _this.getProgress()) {\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 && _this.getProgress()) {\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 && this.getProgress()) {\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(true)\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":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","getModel","props","model","obj","extend","_i","_a","keys","prop","indexOf","deleteObject","upDownKeyHandler","ul","keyCode","defaultIdx","childElementCount","liIdx","selectedLi","querySelector","classList","remove","len","children","contains","isValidLI","li","index","count","addClass","focus","setBlankIconStyle","popup","blankIcon","icon","cssProp","size","blankIconList","slice","call","getElementsByClassName","forEach","style","paddingLeft","paddingRight","removeAttribute","iconLi","isNullOrUndefined","enableRtl","padding","margin","parseInt","getComputedStyle","fontSize","_super","ChildProperty","Item","Property","apply","classNames","DropDownMenuAnimationSettings","Component","DropDownButton","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","createPopupOnClick","isPopupCreated","createPopup","closePopup","render","initialize","disabled","wireEvents","renderComplete","addItems","items","text","newItem","idx","j","splice","createItems","removeItems","isUniqueId","refresh","len_1","id","getULElement","splitButton","div","createElement","className","popupWidth","element","document","body","appendChild","dropDown","Popup","width","relateTo","collision","X","Y","position","targetType","content","getTargetElement","setAttribute","popupContent","display","refreshPosition","hide","attributes","cssClass","replace","trim","split","getComponent","activeElem","isColorPicker","select","appendItems","_this","showIcon","hasIcon","innerHTML","attrs","role","tabindex","itemTemplate","compiledTemplate_1","compiletemplate","item","separator","aria-label","aria-hidden","getUniqueID","getModuleName","compiledElement","eventArgs","append","add","trigger","tempItem","url","beforeDisabled","enableHtmlSanitizer","textContent","createAnchor","iconCss","span","childNodes","insertBefore","getPopUpElement","template","templateElement","compile","field","SanitizeHtmlHelper","sanitize","href","button","Button","iconPosition","enablePersistence","appendTo","appendArrowSpan","setActiveElem","prevElem","previousSibling","elem","val","destroy","classList_1","detach","removeClass","getAttribute","popupUnWireEvents","destroyPopup","unWireEvents","popupEle","getElementById","EventHandler","clickHandler","keyBoardHandler","undefined","dropDownButton","dropDownBtn","delegateMousedownHandler","mousedownHandler","bind","window","windowResize","popupWireEvents","popupElement","closeActionEvents","focusoutHandler","rippleFn","rippleEffect","selector","parentElement","isRippleEnabled","e","altKey","keyEventHandler","isSafari","test","navigator","userAgent","preventDefault","triggerSelect","getLI","tagName","closest","trgt","liTarget","relatedTarget","event","popupElem","setWidth","isReact","appendReactElement","renderReactTemplates","beforeOpenArgs","cancel","observedArgs","openArgs","ul_1","animationOptions","animationSettings","effect","name","duration","timingFunction","easing","animatePopup","show","left","wrapperWidth","offsetWidth","popupRect","popupLeft","parseFloat","Animation","animate","begin","args","height","offsetHeight","formatUnit","btnWidth","focusEle","beforeCloseArgs","ul_2","closeArgs","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Complex","Event","NotifyPropertyChanges","options","RTL","TAGNAME","SplitButton","ele","ejInstance","getValue","btn","type","wrapper","nodeName","nodeValue","parentNode","setValue","initWrapper","createPrimaryButton","renderControl","createSecondaryButton","secondaryBtnObj","setAria","btnModel","primaryBtnObj","btnElem","dropDownBtnModel","beforeItemRender","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","PROGRESS","PROGRESSACTIVE","CONTENTCLS","SpinSettings","AnimationSettings","ProgressButton","init","start","percent","isPaused","startProgress","progressTime","stop","cancelAnimationFrame","timerId","progressComplete","finishProgress","spinSettings","push","toLowerCase","setContent","createSpinner","enableProgress","createProgress","spinner","setSpinPosition","getSpinner","getProgress","cont","clsList","isVertical","showSpinner","startAnimate","Date","now","step","startContAnimate","timestamp","prevTime","prevPercent","prevProgressTime","timeDiff","stepTime","timeDiffBuffer_1","currentDuration","eIsVertical","successCallback","perc","pPerc","prgTim","pPrgTim","timDif","pTim","timeDiffBuffer","requestAnimationFrame","toString","interval","setTimeout","hideSpin","animationMode","setSpinnerSize","end","clearTimeout","Math","max","hideSpinner","setIconSpan","iconSpan","isSpinning","removeChild","internalCreateElement","child","nextChild","childs","buttons"],"mappings":"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"}
|