@syncfusion/ej2-splitbuttons 27.1.50 → 27.2.2
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/dist/ej2-splitbuttons.min.js +2 -2
- package/dist/ej2-splitbuttons.umd.min.js +2 -2
- package/dist/ej2-splitbuttons.umd.min.js.map +1 -1
- package/dist/es6/ej2-splitbuttons.es2015.js +18 -3
- package/dist/es6/ej2-splitbuttons.es2015.js.map +1 -1
- package/dist/es6/ej2-splitbuttons.es5.js +18 -3
- package/dist/es6/ej2-splitbuttons.es5.js.map +1 -1
- package/dist/global/ej2-splitbuttons.min.js +2 -2
- package/dist/global/ej2-splitbuttons.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +7 -7
- package/src/drop-down-button/drop-down-button.js +17 -2
- package/styles/bootstrap-dark-lite.css +3 -0
- package/styles/bootstrap-dark.css +3 -0
- package/styles/bootstrap-lite.css +3 -0
- package/styles/bootstrap.css +3 -0
- package/styles/bootstrap4-lite.css +3 -0
- package/styles/bootstrap4.css +3 -0
- package/styles/bootstrap5-dark-lite.css +3 -0
- package/styles/bootstrap5-dark.css +3 -0
- package/styles/bootstrap5-lite.css +3 -0
- package/styles/bootstrap5.3-lite.css +3 -0
- package/styles/bootstrap5.3.css +3 -0
- package/styles/bootstrap5.css +3 -0
- package/styles/drop-down-button/_layout.scss +4 -0
- package/styles/drop-down-button/bootstrap-dark.css +3 -0
- package/styles/drop-down-button/bootstrap.css +3 -0
- package/styles/drop-down-button/bootstrap4.css +3 -0
- package/styles/drop-down-button/bootstrap5-dark.css +3 -0
- package/styles/drop-down-button/bootstrap5.3.css +3 -0
- package/styles/drop-down-button/bootstrap5.css +3 -0
- package/styles/drop-down-button/fabric-dark.css +3 -0
- package/styles/drop-down-button/fabric.css +3 -0
- package/styles/drop-down-button/fluent-dark.css +3 -0
- package/styles/drop-down-button/fluent.css +3 -0
- package/styles/drop-down-button/fluent2.css +3 -0
- package/styles/drop-down-button/highcontrast-light.css +3 -0
- package/styles/drop-down-button/highcontrast.css +3 -0
- package/styles/drop-down-button/material-dark.css +3 -0
- package/styles/drop-down-button/material.css +3 -0
- package/styles/drop-down-button/material3-dark.css +3 -0
- package/styles/drop-down-button/material3.css +3 -0
- package/styles/drop-down-button/tailwind-dark.css +3 -0
- package/styles/drop-down-button/tailwind.css +3 -0
- package/styles/fabric-dark-lite.css +3 -0
- package/styles/fabric-dark.css +3 -0
- package/styles/fabric-lite.css +3 -0
- package/styles/fabric.css +3 -0
- package/styles/fluent-dark-lite.css +3 -0
- package/styles/fluent-dark.css +3 -0
- package/styles/fluent-lite.css +3 -0
- package/styles/fluent.css +3 -0
- package/styles/fluent2-lite.css +3 -0
- package/styles/fluent2.css +3 -0
- package/styles/highcontrast-light-lite.css +3 -0
- package/styles/highcontrast-light.css +3 -0
- package/styles/highcontrast-lite.css +3 -0
- package/styles/highcontrast.css +3 -0
- package/styles/material-dark-lite.css +3 -0
- package/styles/material-dark.css +3 -0
- package/styles/material-lite.css +3 -0
- package/styles/material.css +3 -0
- package/styles/material3-dark-lite.css +3 -0
- package/styles/material3-dark.css +3 -0
- package/styles/material3-lite.css +3 -0
- package/styles/material3.css +3 -0
- package/styles/tailwind-dark-lite.css +3 -0
- package/styles/tailwind-dark.css +3 -0
- package/styles/tailwind-lite.css +3 -0
- package/styles/tailwind.css +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ej2-splitbuttons.min.js","sources":["../../src/common/common.js","../../src/button-group/button-group.js","../../src/drop-down-button/drop-down-button.js","../../src/split-button/split-button.js","../../src/progress-button/progress-button.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, extend, deleteObject, Property, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @param {Object} props - Specifies the properties\n * @param {string[]} model - Specifies the model\n * @returns {Object} Component Model\n */\nexport function getModel(props, model) {\n var obj = extend({}, props);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((model).indexOf(prop) < 0) {\n deleteObject(obj, prop);\n }\n }\n return obj;\n}\n/** @hidden\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {number} keyCode - Specifies the keycode\n * @returns {void}\n */\nexport function upDownKeyHandler(ul, keyCode) {\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\n var liIdx = defaultIdx;\n var li;\n var selectedLi = ul.querySelector('.e-selected');\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains('e-focused')) {\n li = ul.children[i];\n liIdx = i;\n li.classList.remove('e-focused');\n if (keyCode === 40) {\n liIdx++;\n }\n else {\n liIdx--;\n }\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\n liIdx = defaultIdx;\n }\n }\n }\n li = ul.children[liIdx];\n liIdx = isValidLI(ul, li, liIdx, keyCode);\n if (liIdx !== -1) {\n addClass([ul.children[liIdx]], 'e-focused');\n ul.children[liIdx].focus();\n }\n}\n/**\n * Get Valid LI element\n *\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {Element} li - Specifies the LI element\n * @param {number} index - Specifies the index\n * @param {number} keyCode - Specifies the keycode\n * @param {number} count - Specifies the count\n * @returns {number} - Index\n */\nfunction isValidLI(ul, li, index, keyCode, count) {\n if (count === void 0) { count = 0; }\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\n }\n else {\n if (keyCode === 40) {\n index++;\n }\n else {\n index--;\n }\n }\n }\n li = ul.children[index];\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n count++;\n if (count === ul.childElementCount) {\n return index = -1;\n }\n index = isValidLI(ul, li, index, keyCode, count);\n }\n return index;\n}\n// 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","import { addClass, createElement as internalCreateElement, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\n/**\n * Initialize ButtonGroup CSS component with specified properties.\n * ```html\n * <div id='buttongroup'>\n * <button></button>\n * <button></button>\n * <button></button>\n * </div>\n * ```\n * ```typescript\n * createButtonGroup('#buttongroup', {\n * cssClass: 'e-outline',\n * buttons: [\n * { content: 'Day' },\n * { content: 'Week' },\n * { content: 'Work Week'}\n * ]\n * });\n * ```\n *\n * @param {string} selector\n * @param {CreateButtonGroupModel} options\n * @returns HTMLElement\n */\n/**\n * Creates button group.\n *\n * @param {string} selector - Specifies the selector.\n * @param {CreateButtonGroupModel} options - Specifies the button group model.\n * @param {Function} createElement - Specifies the element.\n * @returns {HTMLElement} - Button group element.\n */\nexport function createButtonGroup(selector, options, createElement) {\n if (options === void 0) { options = {}; }\n var child;\n var btnElem;\n var nextChild;\n var btnModel;\n if (isNullOrUndefined(createElement)) {\n createElement = internalCreateElement;\n }\n var wrapper = document.querySelector(selector);\n addClass([wrapper], ['e-btn-group', 'e-css']);\n wrapper.setAttribute('role', 'group');\n var childs = wrapper.children;\n options.buttons = options.buttons || [];\n for (var i = 0, j = 0; j < childs.length; i++, j++) {\n child = childs[j];\n btnModel = options.buttons[i];\n if (btnModel !== null) {\n if (child.tagName === 'BUTTON') {\n btnElem = child;\n }\n else {\n btnElem = createElement('label');\n nextChild = childs[j + 1];\n if (nextChild) {\n wrapper.insertBefore(btnElem, nextChild);\n }\n else {\n wrapper.appendChild(btnElem);\n }\n if (child.id) {\n btnElem.setAttribute('for', child.id);\n }\n if (btnModel && btnModel.disabled) {\n child.disabled = true;\n }\n j++;\n }\n if (options.cssClass && btnModel && !btnModel.cssClass) {\n btnModel.cssClass = options.cssClass;\n }\n new Button(btnModel || {}, btnElem);\n }\n }\n return wrapper;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Collection, Event, NotifyPropertyChanges, detach, Property, EventHandler, isRippleEnabled, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { addClass, getUniqueID, rippleEffect, getComponent } from '@syncfusion/ej2-base';\nimport { attributes, Component, closest, select, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { classList, removeClass } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\nimport { Popup } from '@syncfusion/ej2-popups';\nimport { upDownKeyHandler } from './../common/common';\nimport { getModel, Item, setBlankIconStyle } from './../common/common';\nvar classNames = {\n DISABLED: 'e-disabled',\n FOCUS: 'e-focused',\n ICON: 'e-menu-icon',\n ITEM: 'e-item',\n POPUP: 'e-dropdown-popup',\n RTL: 'e-rtl',\n SEPARATOR: 'e-separator',\n VERTICAL: 'e-vertical'\n};\n/**\n * DropDownButton component is used to toggle contextual overlays for displaying list of action items.\n * It can contain both text and images.\n * ```html\n * <button id=\"element\">DropDownButton</button>\n * ```\n * ```typescript\n * <script>\n * var dropDownButtonObj = new DropDownButton({items: [{ text: 'Action1' }, { text: 'Action2' },{ text: 'Action3' }]);\n * dropDownButtonObj.appendTo(\"#element\");\n * </script>\n * ```\n */\nvar DropDownButton = /** @class */ (function (_super) {\n __extends(DropDownButton, _super);\n /**\n * Constructor for creating the widget\n *\n * @param {DropDownButtonModel} options - Specifies dropdown button model\n * @param {string|HTMLButtonElement} element - Specifies element\n * @hidden\n */\n function DropDownButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isPopupCreated = true;\n return _this;\n }\n DropDownButton.prototype.preRender = function () {\n /** */\n };\n /**\n * Get the properties to be maintained in the persisted state.\n *\n * @returns {string} - Persist data\n */\n DropDownButton.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * To open/close DropDownButton popup based on current state of the DropDownButton.\n *\n * @returns {void}\n */\n DropDownButton.prototype.toggle = function () {\n if (this.canOpen()) {\n this.openPopUp();\n }\n else if (this.createPopupOnClick && !this.isPopupCreated) {\n this.createPopup();\n this.openPopUp();\n }\n else {\n this.closePopup();\n }\n };\n /**\n * Initialize the Component rendering\n *\n * @returns {void}\n * @private\n */\n DropDownButton.prototype.render = function () {\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.renderComplete();\n };\n /**\n * Adds a new item to the menu. By default, new item appends to the list as the last item,\n * but you can insert based on the text parameter.\n *\n * @param { ItemModel[] } items - Specifies an array of JSON data.\n * @param { string } text - Specifies the text to insert the newly added item in the menu.\n * @returns {void}.\n */\n DropDownButton.prototype.addItems = function (items, text) {\n var newItem;\n var idx = this.items.length;\n for (var j = 0, len = this.items.length; j < len; j++) {\n if (text === this.items[j].text) {\n idx = j;\n break;\n }\n }\n for (var i = items.length - 1; i >= 0; i--) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n newItem = new Item(this, 'items', items[i], true);\n this.items.splice(idx, 0, newItem);\n }\n if (!this.canOpen()) {\n this.createItems();\n }\n };\n /**\n * Removes the items from the menu.\n *\n * @param { string[] } items - Specifies an array of string to remove the items.\n * @param { string } isUniqueId - Set `true` if specified items is a collection of unique id.\n * @returns {void}.\n */\n DropDownButton.prototype.removeItems = function (items, isUniqueId) {\n var refresh = false;\n for (var i = 0, len = items.length; i < len; i++) {\n for (var j = 0, len_1 = this.items.length; j < len_1; j++) {\n if (items[i] === (isUniqueId ? this.items[j].id : this.items[j].text)) {\n this.items.splice(j, 1);\n refresh = true;\n break;\n }\n }\n }\n if (refresh && this.getULElement()) {\n this.createItems();\n }\n };\n DropDownButton.prototype.createPopup = function () {\n var _a;\n var div = this.createElement('div', {\n className: classNames.POPUP,\n id: this.element.id + '-popup'\n });\n document.body.appendChild(div);\n this.dropDown = new Popup(div, {\n relateTo: this.element,\n collision: { X: 'fit', Y: 'flip' },\n position: { X: 'left', Y: 'bottom' },\n targetType: 'relative',\n content: this.target ? this.getTargetElement() : '',\n enableRtl: this.enableRtl\n });\n this.dropDown.element.setAttribute('role', 'dialog');\n this.dropDown.element.setAttribute('aria-label', 'dropdown menu');\n if (!isNullOrUndefined(this.popupContent)) {\n this.popupContent.style.display = '';\n }\n if (this.dropDown.element.style.position === 'fixed') {\n this.dropDown.refreshPosition(this.element);\n }\n this.dropDown.hide();\n attributes(this.element, (_a = {},\n _a['aria-haspopup'] = this.items.length || this.target ? 'true' : 'false',\n _a['aria-expanded'] = 'false',\n _a['type'] = 'button',\n _a));\n if (this.cssClass) {\n addClass([div], this.cssClass.replace(/\\s+/g, ' ').trim().split(' '));\n }\n this.isPopupCreated = true;\n };\n DropDownButton.prototype.getTargetElement = function () {\n if (this.createPopupOnClick && !this.isColorPicker() && !isNullOrUndefined(this.popupContent)) {\n return this.popupContent;\n }\n return typeof (this.target) === 'string' ? select(this.target) : this.target;\n };\n DropDownButton.prototype.createItems = function (appendItems) {\n var items = this.items;\n var showIcon = this.hasIcon(this.items, 'iconCss');\n var span;\n var item;\n var li;\n var eventArgs;\n var ul = this.getULElement();\n if (ul) {\n ul.innerHTML = '';\n }\n else {\n ul = this.createElement('ul', {\n attrs: { 'role': 'menu', 'tabindex': '0' }\n });\n }\n for (var i = 0; i < items.length; i++) {\n item = items[i];\n var tempItem = item.text;\n li = this.createElement('li', {\n innerHTML: item.url ? '' : tempItem,\n className: item.separator ? classNames.ITEM + ' ' + classNames.SEPARATOR : classNames.ITEM,\n attrs: item.separator ? { 'role': 'separator', 'tabindex': '-1', 'aria-label': 'separator', 'aria-hidden': 'true' } : { 'role': 'menuitem', 'tabindex': '-1', 'aria-label': tempItem },\n id: item.id ? item.id : getUniqueID('e-' + this.getModuleName() + '-item')\n });\n if (this.enableHtmlSanitizer) {\n li.textContent = item.url ? '' : tempItem;\n }\n else {\n li.innerHTML = item.url ? '' : tempItem;\n }\n if (item.url) {\n li.appendChild(this.createAnchor(item));\n li.classList.add('e-url');\n }\n if (item.iconCss) {\n span = this.createElement('span', { className: classNames.ICON + ' ' + item.iconCss });\n if (item.url) {\n li.childNodes[0].appendChild(span);\n }\n else {\n li.insertBefore(span, li.childNodes[0]);\n }\n }\n else {\n if (showIcon && !item.separator) {\n li.classList.add('e-blank-icon');\n }\n }\n var beforeDisabled = item.disabled;\n if (item.disabled) {\n li.classList.add('e-disabled');\n }\n eventArgs = { item: item, element: li };\n this.trigger('beforeItemRender', eventArgs);\n var afterDisabled = eventArgs.item.disabled;\n if (beforeDisabled !== afterDisabled) {\n if (eventArgs.item.disabled) {\n li.classList.add('e-disabled');\n }\n else {\n li.classList.remove('e-disabled');\n }\n }\n ul.appendChild(li);\n }\n if (appendItems) {\n this.getPopUpElement().appendChild(ul);\n }\n if (showIcon) {\n setBlankIconStyle(this.getPopUpElement());\n }\n };\n DropDownButton.prototype.hasIcon = function (items, field) {\n for (var i = 0, len = items.length; i < len; i++) {\n if (items[i][\"\" + field]) {\n return true;\n }\n }\n return false;\n };\n DropDownButton.prototype.createAnchor = function (item) {\n var tempItem = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(item.text) : item.text;\n return this.createElement('a', { className: 'e-menu-text e-menu-url', innerHTML: tempItem, attrs: { 'href': item.url } });\n };\n DropDownButton.prototype.initialize = function () {\n this.button = new Button({\n iconCss: this.iconCss, iconPosition: this.iconPosition, cssClass: this.cssClass, content: this.content,\n disabled: this.disabled, enableRtl: this.enableRtl, enablePersistence: this.enablePersistence\n });\n this.button.createElement = this.createElement;\n this.button.appendTo(this.element);\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n this.appendArrowSpan();\n this.setActiveElem([this.element]);\n this.element.setAttribute('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 };\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() && !(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 _this.dropDown.hide();\n removeClass(_this.activeElem, 'e-active');\n _this.element.setAttribute('aria-expanded', 'false');\n _this.element.removeAttribute('aria-owns');\n if (focusEle) {\n focusEle.focus();\n }\n var closeArgs = { element: ul_2, items: _this.items };\n _this.trigger('close', closeArgs);\n if (!_this.target && ul_2) {\n detach(ul_2);\n }\n if (!_this.target || _this.isColorPicker() || (_this.target && !_this.isColorPicker())) {\n if (_this.createPopupOnClick) {\n _this.destroyPopup();\n }\n }\n }\n else {\n if (ul) {\n ul.focus();\n }\n }\n });\n };\n DropDownButton.prototype.unWireEvents = function () {\n if (!this.createPopupOnClick) {\n EventHandler.remove(document, 'mousedown touchstart', this.delegateMousedownHandler);\n }\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);\n if (this.isPopupCreated) {\n EventHandler.remove(this.getPopUpElement(), 'click', this.clickHandler);\n EventHandler.remove(this.getPopUpElement(), 'keydown', this.keyBoardHandler);\n }\n // 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"],"names":["getModel","props","model","obj","extend","_i","_a","Object","keys","length","prop","indexOf","deleteObject","upDownKeyHandler","ul","keyCode","defaultIdx","childElementCount","liIdx","selectedLi","querySelector","classList","remove","i","len","children","contains","isValidLI","addClass","focus","li","index","count","setBlankIconStyle","popup","blankIcon","blankIconList","slice","call","getElementsByClassName","forEach","style","paddingLeft","paddingRight","removeAttribute","iconLi","isNullOrUndefined","cssProp","icon","enableRtl","padding","margin","size","parseInt","getComputedStyle","fontSize","createButtonGroup","selector","options","createElement","child","btnElem","nextChild","btnModel","internalCreateElement","wrapper","document","setAttribute","childs","buttons","j","tagName","insertBefore","appendChild","id","disabled","cssClass","Button","__extends","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","Item","_super","apply","Property","ChildProperty","classNames","DISABLED","FOCUS","ICON","ITEM","POPUP","RTL","SEPARATOR","VERTICAL","DropDownButton","element","_this","isPopupCreated","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","createPopupOnClick","createPopup","closePopup","render","initialize","wireEvents","renderComplete","addItems","items","text","newItem","idx","splice","createItems","removeItems","isUniqueId","refresh","len_1","getULElement","div","className","body","dropDown","Popup","relateTo","collision","X","Y","position","targetType","content","getTargetElement","popupContent","display","refreshPosition","hide","attributes","replace","trim","split","isColorPicker","select","appendItems","span","item","eventArgs","showIcon","hasIcon","innerHTML","attrs","role","tabindex","tempItem","url","separator","aria-label","aria-hidden","getUniqueID","getModuleName","enableHtmlSanitizer","textContent","createAnchor","add","iconCss","childNodes","beforeDisabled","trigger","getPopUpElement","field","SanitizeHtmlHelper","sanitize","href","button","iconPosition","enablePersistence","appendTo","appendArrowSpan","setActiveElem","prevElem","previousSibling","elem","activeElem","val","destroy","classList_1","detach","removeClass","getAttribute","popupUnWireEvents","destroyPopup","unWireEvents","popupEle","getElementById","EventHandler","clickHandler","keyBoardHandler","undefined","dropDownBtn","getComponent","delegateMousedownHandler","mousedownHandler","bind","window","windowResize","popupWireEvents","popupElement","closeActionEvents","focusoutHandler","rippleFn","rippleEffect","parentElement","isRippleEnabled","e","altKey","keyEventHandler","isSafari","test","navigator","userAgent","preventDefault","triggerSelect","getLI","closest","trgt","liTarget","relatedTarget","selectEventArgs","event","popupElem","splitButton","isReact","appendReactElement","renderReactTemplates","beforeOpenArgs","cancel","observedArgs","ul_1","show","left","wrapperWidth","offsetWidth","popupRect","popupLeft","parseFloat","openArgs","focusEle","beforeCloseArgs","ul_2","closeArgs","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Event","NotifyPropertyChanges","Component","TAGNAME","SplitButton","ele","ejInstance","getValue","btn","type","nodeName","nodeValue","parentNode","setValue","initWrapper","createPrimaryButton","renderControl","createSecondaryButton","secondaryBtnObj","setAria","primaryBtnObj","dropDownBtnModel","beforeItemRender","args","open","close","beforeOpen","callBackPromise","Deferred","resolve","beforeClose","aria-expanded","aria-haspopup","aria-owns","concat","refreshing","isAngular","primaryBtnClickHandler","KeyboardEvents","keyAction","btnKeyBoardHandler","keyConfigs","altdownarrow","enter","getInstance","action","promise","Promise","reject","catch","then","CONTENTCLS","SpinSettings","AnimationSettings","ProgressButton","step","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","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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ej2-splitbuttons.min.js","sources":["../../src/common/common.js","../../src/button-group/button-group.js","../../src/drop-down-button/drop-down-button.js","../../src/split-button/split-button.js","../../src/progress-button/progress-button.js"],"sourcesContent":["var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { ChildProperty, extend, deleteObject, Property, addClass, isNullOrUndefined } from '@syncfusion/ej2-base';\n/**\n * @param {Object} props - Specifies the properties\n * @param {string[]} model - Specifies the model\n * @returns {Object} Component Model\n */\nexport function getModel(props, model) {\n var obj = extend({}, props);\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var prop = _a[_i];\n if ((model).indexOf(prop) < 0) {\n deleteObject(obj, prop);\n }\n }\n return obj;\n}\n/** @hidden\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {number} keyCode - Specifies the keycode\n * @returns {void}\n */\nexport function upDownKeyHandler(ul, keyCode) {\n var defaultIdx = keyCode === 40 ? 0 : ul.childElementCount - 1;\n var liIdx = defaultIdx;\n var li;\n var selectedLi = ul.querySelector('.e-selected');\n if (selectedLi) {\n selectedLi.classList.remove('e-selected');\n }\n for (var i = 0, len = ul.children.length; i < len; i++) {\n if (ul.children[i].classList.contains('e-focused')) {\n li = ul.children[i];\n liIdx = i;\n li.classList.remove('e-focused');\n if (keyCode === 40) {\n liIdx++;\n }\n else {\n liIdx--;\n }\n if (liIdx === (keyCode === 40 ? ul.childElementCount : -1)) {\n liIdx = defaultIdx;\n }\n }\n }\n li = ul.children[liIdx];\n liIdx = isValidLI(ul, li, liIdx, keyCode);\n if (liIdx !== -1) {\n addClass([ul.children[liIdx]], 'e-focused');\n ul.children[liIdx].focus();\n }\n}\n/**\n * Get Valid LI element\n *\n * @param {HTMLElement} ul - Specifies the UL element\n * @param {Element} li - Specifies the LI element\n * @param {number} index - Specifies the index\n * @param {number} keyCode - Specifies the keycode\n * @param {number} count - Specifies the count\n * @returns {number} - Index\n */\nfunction isValidLI(ul, li, index, keyCode, count) {\n if (count === void 0) { count = 0; }\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n if (index === (keyCode === 40 ? ul.childElementCount - 1 : 0)) {\n index = keyCode === 40 ? 0 : ul.childElementCount - 1;\n }\n else {\n if (keyCode === 40) {\n index++;\n }\n else {\n index--;\n }\n }\n }\n li = ul.children[index];\n if (li.classList.contains('e-separator') || li.classList.contains('e-disabled')) {\n count++;\n if (count === ul.childElementCount) {\n return index = -1;\n }\n index = isValidLI(ul, li, index, keyCode, count);\n }\n return index;\n}\n// 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","import { addClass, createElement as internalCreateElement, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { Button } from '@syncfusion/ej2-buttons';\n/**\n * Initialize ButtonGroup CSS component with specified properties.\n * ```html\n * <div id='buttongroup'>\n * <button></button>\n * <button></button>\n * <button></button>\n * </div>\n * ```\n * ```typescript\n * createButtonGroup('#buttongroup', {\n * cssClass: 'e-outline',\n * buttons: [\n * { content: 'Day' },\n * { content: 'Week' },\n * { content: 'Work Week'}\n * ]\n * });\n * ```\n *\n * @param {string} selector\n * @param {CreateButtonGroupModel} options\n * @returns HTMLElement\n */\n/**\n * Creates button group.\n *\n * @param {string} selector - Specifies the selector.\n * @param {CreateButtonGroupModel} options - Specifies the button group model.\n * @param {Function} createElement - Specifies the element.\n * @returns {HTMLElement} - Button group element.\n */\nexport function createButtonGroup(selector, options, createElement) {\n if (options === void 0) { options = {}; }\n var child;\n var btnElem;\n var nextChild;\n var btnModel;\n if (isNullOrUndefined(createElement)) {\n createElement = internalCreateElement;\n }\n var wrapper = document.querySelector(selector);\n addClass([wrapper], ['e-btn-group', 'e-css']);\n wrapper.setAttribute('role', 'group');\n var childs = wrapper.children;\n options.buttons = options.buttons || [];\n for (var i = 0, j = 0; j < childs.length; i++, j++) {\n child = childs[j];\n btnModel = options.buttons[i];\n if (btnModel !== null) {\n if (child.tagName === 'BUTTON') {\n btnElem = child;\n }\n else {\n btnElem = createElement('label');\n nextChild = childs[j + 1];\n if (nextChild) {\n wrapper.insertBefore(btnElem, nextChild);\n }\n else {\n wrapper.appendChild(btnElem);\n }\n if (child.id) {\n btnElem.setAttribute('for', child.id);\n }\n if (btnModel && btnModel.disabled) {\n child.disabled = true;\n }\n j++;\n }\n if (options.cssClass && btnModel && !btnModel.cssClass) {\n btnModel.cssClass = options.cssClass;\n }\n new Button(btnModel || {}, btnElem);\n }\n }\n return wrapper;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { Collection, Event, NotifyPropertyChanges, detach, Property, EventHandler, 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"],"names":["getModel","props","model","obj","extend","_i","_a","Object","keys","length","prop","indexOf","deleteObject","upDownKeyHandler","ul","keyCode","defaultIdx","childElementCount","liIdx","selectedLi","querySelector","classList","remove","i","len","children","contains","isValidLI","addClass","focus","li","index","count","setBlankIconStyle","popup","blankIcon","blankIconList","slice","call","getElementsByClassName","forEach","style","paddingLeft","paddingRight","removeAttribute","iconLi","isNullOrUndefined","cssProp","icon","enableRtl","padding","margin","size","parseInt","getComputedStyle","fontSize","createButtonGroup","selector","options","createElement","child","btnElem","nextChild","btnModel","internalCreateElement","wrapper","document","setAttribute","childs","buttons","j","tagName","insertBefore","appendChild","id","disabled","cssClass","Button","__extends","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","Item","_super","apply","Property","ChildProperty","classNames","DISABLED","FOCUS","ICON","ITEM","POPUP","RTL","SEPARATOR","VERTICAL","DropDownButton","element","_this","isPopupCreated","preRender","getPersistData","addOnPersist","toggle","canOpen","openPopUp","createPopupOnClick","createPopup","closePopup","render","initialize","wireEvents","renderComplete","addItems","items","text","newItem","idx","splice","createItems","removeItems","isUniqueId","refresh","len_1","getULElement","div","className","body","dropDown","Popup","relateTo","collision","X","Y","position","targetType","content","getTargetElement","popupContent","display","refreshPosition","hide","attributes","replace","trim","split","splitButton","getComponent","activeElem","isColorPicker","select","appendItems","span","item","eventArgs","showIcon","hasIcon","innerHTML","attrs","role","tabindex","tempItem","url","separator","aria-label","aria-hidden","getUniqueID","getModuleName","enableHtmlSanitizer","textContent","createAnchor","add","iconCss","childNodes","beforeDisabled","trigger","getPopUpElement","field","SanitizeHtmlHelper","sanitize","href","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","parentElement","isRippleEnabled","e","altKey","keyEventHandler","isSafari","test","navigator","userAgent","preventDefault","triggerSelect","getLI","closest","trgt","liTarget","relatedTarget","selectEventArgs","event","popupElem","isReact","appendReactElement","renderReactTemplates","beforeOpenArgs","cancel","observedArgs","ul_1","show","left","wrapperWidth","offsetWidth","popupRect","popupLeft","parseFloat","openArgs","focusEle","beforeCloseArgs","ul_2","closeArgs","onPropertyChanged","newProp","oldProp","setProperties","arrowSpan","dataBind","focusIn","Collection","Event","NotifyPropertyChanges","Component","TAGNAME","SplitButton","ele","ejInstance","getValue","btn","type","nodeName","nodeValue","parentNode","setValue","initWrapper","createPrimaryButton","renderControl","createSecondaryButton","secondaryBtnObj","setAria","primaryBtnObj","dropDownBtnModel","beforeItemRender","args","open","close","beforeOpen","callBackPromise","Deferred","resolve","beforeClose","aria-expanded","aria-haspopup","aria-owns","concat","refreshing","isAngular","primaryBtnClickHandler","KeyboardEvents","keyAction","btnKeyBoardHandler","keyConfigs","altdownarrow","enter","getInstance","action","promise","Promise","reject","catch","then","CONTENTCLS","SpinSettings","AnimationSettings","ProgressButton","step","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","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"],"mappings":"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"}
|