{"version":3,"file":"ej2-buttons.min.js","sources":["../../src/common/common.js","../../src/button/button.js","../../src/check-box/check-box.js","../../src/radio-button/radio-button.js","../../src/switch/switch.js","../../src/chips/chip-list.js","../../src/chips/chip.js"],"sourcesContent":["import { detach, getUniqueID, rippleEffect, setValue, attributes } from '@syncfusion/ej2-base';\nimport { getValue, addClass, deleteObject } from '@syncfusion/ej2-base';\n/**\n * Initialize wrapper element for angular.\n * @private\n */\nexport function wrapperInitialize(createElement, tag, type, element, WRAPPER, role) {\n var input = element;\n if (element.tagName === tag) {\n var ejInstance = getValue('ej2_instances', element);\n input = createElement('input', { attrs: { 'type': type } });\n var props = ['change', 'cssClass', 'label', 'labelPosition', 'id'];\n for (var index = 0, len = element.attributes.length; index < len; index++) {\n if (props.indexOf(element.attributes[index].nodeName) === -1) {\n input.setAttribute(element.attributes[index].nodeName, element.attributes[index].nodeValue);\n }\n }\n attributes(element, { 'class': WRAPPER, 'role': role, 'aria-checked': 'false' });\n element.appendChild(input);\n setValue('ej2_instances', ejInstance, input);\n deleteObject(element, 'ej2_instances');\n }\n return input;\n}\nexport function getTextNode(element) {\n var node;\n var childnode = element.childNodes;\n for (var i = 0; i < childnode.length; i++) {\n node = childnode[i];\n if (node.nodeType === 3) {\n return node;\n }\n }\n return null;\n}\n/**\n * Destroy the button components.\n * @private\n */\nexport function destroy(ejInst, wrapper, tagName) {\n if (tagName === 'INPUT') {\n wrapper.parentNode.insertBefore(ejInst.element, wrapper);\n detach(wrapper);\n ejInst.element.checked = false;\n ['name', 'value', 'disabled'].forEach(function (key) {\n ejInst.element.removeAttribute(key);\n });\n }\n else {\n ['role', 'aria-checked', 'class'].forEach(function (key) {\n wrapper.removeAttribute(key);\n });\n wrapper.innerHTML = '';\n }\n}\nexport function preRender(proxy, control, wrapper, element, moduleName) {\n element = wrapperInitialize(proxy.createElement, control, 'checkbox', element, wrapper, moduleName);\n proxy.element = element;\n if (proxy.element.getAttribute('type') !== 'checkbox') {\n proxy.element.setAttribute('type', 'checkbox');\n }\n if (!proxy.element.id) {\n proxy.element.id = getUniqueID('e-' + moduleName);\n }\n}\n/**\n * Creates CheckBox component UI with theming and ripple support.\n * @private\n */\nexport function createCheckBox(createElement, enableRipple, options) {\n if (enableRipple === void 0) { enableRipple = false; }\n if (options === void 0) { options = {}; }\n var wrapper = createElement('div', { className: 'e-checkbox-wrapper e-css' });\n if (options.cssClass) {\n addClass([wrapper], options.cssClass.split(' '));\n }\n if (options.enableRtl) {\n wrapper.classList.add('e-rtl');\n }\n if (enableRipple) {\n var rippleSpan = createElement('span', { className: 'e-ripple-container' });\n rippleEffect(rippleSpan, { isCenterRipple: true, duration: 400 });\n wrapper.appendChild(rippleSpan);\n }\n var frameSpan = createElement('span', { className: 'e-frame e-icons' });\n if (options.checked) {\n frameSpan.classList.add('e-check');\n }\n wrapper.appendChild(frameSpan);\n if (options.label) {\n var labelSpan = createElement('span', { className: 'e-label', innerHTML: options.label });\n wrapper.appendChild(labelSpan);\n }\n return wrapper;\n}\nexport function rippleMouseHandler(e, rippleSpan) {\n if (rippleSpan) {\n var event_1 = document.createEvent('MouseEvents');\n event_1.initEvent(e.type, false, true);\n rippleSpan.dispatchEvent(event_1);\n }\n}\n/**\n * Append hidden input to given element\n * @private\n */\nexport function setHiddenInput(proxy, wrap) {\n if (proxy.element.getAttribute('ejs-for')) {\n wrap.appendChild(proxy.createElement('input', {\n attrs: { 'name': proxy.name || proxy.element.name, 'value': 'false', 'type': 'hidden' }\n }));\n }\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 { Property, NotifyPropertyChanges, Component, isBlazor, isRippleEnabled } from '@syncfusion/ej2-base';\nimport { addClass, Event, detach, removeClass } from '@syncfusion/ej2-base';\nimport { rippleEffect, EventHandler, Observer, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { getTextNode } from '../common/common';\nexport var buttonObserver = new Observer();\nvar cssClassName = {\n RTL: 'e-rtl',\n BUTTON: 'e-btn',\n PRIMARY: 'e-primary',\n ICONBTN: 'e-icon-btn'\n};\n/**\n * The Button is a graphical user interface element that triggers an event on its click action. It can contain a text, an image, or both.\n * ```html\n * \n * ```\n * ```typescript\n * \n * ```\n */\nvar Button = /** @class */ (function (_super) {\n __extends(Button, _super);\n /**\n * Constructor for creating the widget\n * @param {ButtonModel} options?\n * @param {string|HTMLButtonElement} element?\n */\n function Button(options, element) {\n return _super.call(this, options, element) || this;\n }\n Button.prototype.preRender = function () {\n // pre render code snippets\n };\n /**\n * Initialize the control rendering\n * @returns void\n * @private\n */\n Button.prototype.render = function () {\n this.initialize();\n this.removeRippleEffect = rippleEffect(this.element, { selector: '.' + cssClassName.BUTTON });\n this.renderComplete();\n };\n Button.prototype.initialize = function () {\n if (this.cssClass) {\n addClass([this.element], this.cssClass.split(' '));\n }\n if (this.isPrimary) {\n this.element.classList.add(cssClassName.PRIMARY);\n }\n if (!isBlazor() || (isBlazor() && this.getModuleName() !== 'progress-btn')) {\n if (this.content) {\n var tempContent = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(this.content) : this.content;\n this.element.innerHTML = tempContent;\n }\n this.setIconCss();\n }\n if (this.enableRtl) {\n this.element.classList.add(cssClassName.RTL);\n }\n if (this.disabled) {\n this.controlStatus(this.disabled);\n }\n else {\n this.wireEvents();\n }\n };\n Button.prototype.controlStatus = function (disabled) {\n this.element.disabled = disabled;\n };\n Button.prototype.setIconCss = function () {\n if (this.iconCss) {\n var span = this.createElement('span', { className: 'e-btn-icon ' + this.iconCss });\n if (!this.element.textContent.trim()) {\n this.element.classList.add(cssClassName.ICONBTN);\n }\n else {\n span.classList.add('e-icon-' + this.iconPosition.toLowerCase());\n if (this.iconPosition === 'Top' || this.iconPosition === 'Bottom') {\n this.element.classList.add('e-' + this.iconPosition.toLowerCase() + '-icon-btn');\n }\n }\n var node = this.element.childNodes[0];\n if (node && (this.iconPosition === 'Left' || this.iconPosition === 'Top')) {\n this.element.insertBefore(span, node);\n }\n else {\n this.element.appendChild(span);\n }\n }\n };\n Button.prototype.wireEvents = function () {\n if (this.isToggle) {\n EventHandler.add(this.element, 'click', this.btnClickHandler, this);\n }\n };\n Button.prototype.unWireEvents = function () {\n if (this.isToggle) {\n EventHandler.remove(this.element, 'click', this.btnClickHandler);\n }\n };\n Button.prototype.btnClickHandler = function () {\n if (this.element.classList.contains('e-active')) {\n this.element.classList.remove('e-active');\n }\n else {\n this.element.classList.add('e-active');\n }\n };\n /**\n * Destroys the widget.\n * @returns void\n */\n Button.prototype.destroy = function () {\n var span;\n var classList = [cssClassName.PRIMARY, cssClassName.RTL, cssClassName.ICONBTN, 'e-success', 'e-info', 'e-danger',\n 'e-warning', 'e-flat', 'e-outline', 'e-small', 'e-bigger', 'e-active', 'e-round',\n 'e-top-icon-btn', 'e-bottom-icon-btn'];\n if (this.cssClass) {\n classList = classList.concat(this.cssClass.split(' '));\n }\n _super.prototype.destroy.call(this);\n removeClass([this.element], classList);\n if (!this.element.getAttribute('class')) {\n this.element.removeAttribute('class');\n }\n if (this.disabled) {\n this.element.removeAttribute('disabled');\n }\n if (this.content) {\n this.element.innerHTML = this.element.innerHTML.replace(this.content, '');\n }\n span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n detach(span);\n }\n this.unWireEvents();\n if (isRippleEnabled) {\n this.removeRippleEffect();\n }\n };\n /**\n * Get component name.\n * @returns string\n * @private\n */\n Button.prototype.getModuleName = function () {\n return 'btn';\n };\n /**\n * Get the properties to be maintained in the persisted state.\n * @returns string\n * @private\n */\n Button.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n /**\n * Dynamically injects the required modules to the component.\n * @private\n */\n Button.Inject = function () {\n // Inject code snippets\n };\n /**\n * Called internally if any of the property value changed.\n * @param {ButtonModel} newProp\n * @param {ButtonModel} oldProp\n * @returns void\n * @private\n */\n Button.prototype.onPropertyChanged = function (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 'isPrimary':\n if (newProp.isPrimary) {\n this.element.classList.add(cssClassName.PRIMARY);\n }\n else {\n this.element.classList.remove(cssClassName.PRIMARY);\n }\n break;\n case 'disabled':\n this.controlStatus(newProp.disabled);\n break;\n case 'iconCss':\n var span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n if (newProp.iconCss) {\n span.className = 'e-btn-icon ' + newProp.iconCss;\n if (this.element.textContent.trim()) {\n if (this.iconPosition === 'Left') {\n span.classList.add('e-icon-left');\n }\n else {\n span.classList.add('e-icon-right');\n }\n }\n }\n else {\n detach(span);\n }\n }\n else {\n this.setIconCss();\n }\n break;\n case 'iconPosition':\n removeClass([this.element], ['e-top-icon-btn', 'e-bottom-icon-btn']);\n span = this.element.querySelector('span.e-btn-icon');\n if (span) {\n detach(span);\n }\n this.setIconCss();\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([this.element], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([this.element], newProp.cssClass.split(' '));\n }\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n this.element.classList.add(cssClassName.RTL);\n }\n else {\n this.element.classList.remove(cssClassName.RTL);\n }\n break;\n case 'content':\n var node = getTextNode(this.element);\n if (!node) {\n this.element.classList.remove(cssClassName.ICONBTN);\n }\n if (!isBlazor() || (isBlazor() && !this.isServerRendered && this.getModuleName() !== 'progress-btn')) {\n if (this.enableHtmlSanitizer) {\n newProp.content = SanitizeHtmlHelper.sanitize(newProp.content);\n }\n this.element.innerHTML = newProp.content;\n this.setIconCss();\n }\n break;\n case 'isToggle':\n if (newProp.isToggle) {\n EventHandler.add(this.element, 'click', this.btnClickHandler, this);\n }\n else {\n EventHandler.remove(this.element, 'click', this.btnClickHandler);\n removeClass([this.element], ['e-active']);\n }\n break;\n }\n }\n };\n /**\n * Click the button element\n * its native method\n * @public\n */\n Button.prototype.click = function () {\n this.element.click();\n };\n /**\n * Sets the focus to Button\n * its native method\n * @public\n */\n Button.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Property('Left')\n ], Button.prototype, \"iconPosition\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"iconCss\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"isPrimary\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"cssClass\", void 0);\n __decorate([\n Property('')\n ], Button.prototype, \"content\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"isToggle\", void 0);\n __decorate([\n Property()\n ], Button.prototype, \"locale\", void 0);\n __decorate([\n Property(false)\n ], Button.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Event()\n ], Button.prototype, \"created\", void 0);\n Button = __decorate([\n NotifyPropertyChanges\n ], Button);\n return Button;\n}(Component));\nexport { Button };\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 { Component, NotifyPropertyChanges, Property } from '@syncfusion/ej2-base';\nimport { Event, EventHandler, isNullOrUndefined, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { addClass, detach, getUniqueID, isRippleEnabled, removeClass, rippleEffect, closest } from '@syncfusion/ej2-base';\nimport { wrapperInitialize, rippleMouseHandler, setHiddenInput } from './../common/common';\nvar CHECK = 'e-check';\nvar DISABLED = 'e-checkbox-disabled';\nvar FRAME = 'e-frame';\nvar INDETERMINATE = 'e-stop';\nvar LABEL = 'e-label';\nvar RIPPLE = 'e-ripple-container';\nvar RIPPLECHECK = 'e-ripple-check';\nvar RIPPLEINDETERMINATE = 'e-ripple-stop';\nvar RTL = 'e-rtl';\nvar WRAPPER = 'e-checkbox-wrapper';\nvar containerAttr = ['title', 'class', 'style', 'disabled', 'readonly', 'name', 'value'];\n/**\n * The CheckBox is a graphical user interface element that allows you to select one or more options from the choices.\n * It contains checked, unchecked, and indeterminate states.\n * ```html\n * \n * \n * ```\n */\nvar CheckBox = /** @class */ (function (_super) {\n __extends(CheckBox, _super);\n /**\n * Constructor for creating the widget\n * @private\n */\n function CheckBox(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isFocused = false;\n _this.isMouseClick = false;\n return _this;\n }\n CheckBox.prototype.changeState = function (state) {\n var ariaState;\n var rippleSpan;\n var frameSpan = this.getWrapper().getElementsByClassName(FRAME)[0];\n if (isRippleEnabled) {\n rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\n }\n if (state === 'check') {\n frameSpan.classList.remove(INDETERMINATE);\n frameSpan.classList.add(CHECK);\n if (rippleSpan) {\n rippleSpan.classList.remove(RIPPLEINDETERMINATE);\n rippleSpan.classList.add(RIPPLECHECK);\n }\n ariaState = 'true';\n this.element.checked = true;\n }\n else if (state === 'uncheck') {\n removeClass([frameSpan], [CHECK, INDETERMINATE]);\n if (rippleSpan) {\n removeClass([rippleSpan], [RIPPLECHECK, RIPPLEINDETERMINATE]);\n }\n ariaState = 'false';\n this.element.checked = false;\n }\n else {\n frameSpan.classList.remove(CHECK);\n frameSpan.classList.add(INDETERMINATE);\n if (rippleSpan) {\n rippleSpan.classList.remove(RIPPLECHECK);\n rippleSpan.classList.add(RIPPLEINDETERMINATE);\n }\n ariaState = 'mixed';\n this.element.indeterminate = true;\n }\n this.getWrapper().setAttribute('aria-checked', ariaState);\n };\n CheckBox.prototype.clickHandler = function (event) {\n if (this.isMouseClick) {\n this.focusOutHandler();\n this.isMouseClick = false;\n }\n if (this.indeterminate) {\n this.changeState(this.checked ? 'check' : 'uncheck');\n this.indeterminate = false;\n this.element.indeterminate = false;\n }\n else if (this.checked) {\n this.changeState('uncheck');\n this.checked = false;\n }\n else {\n this.changeState('check');\n this.checked = true;\n }\n var changeEventArgs = { checked: this.element.checked, event: event };\n this.trigger('change', changeEventArgs);\n };\n /**\n * Destroys the widget.\n * @returns void\n */\n CheckBox.prototype.destroy = function () {\n var _this = this;\n var wrapper = this.getWrapper();\n _super.prototype.destroy.call(this);\n if (this.wrapper) {\n wrapper = this.wrapper;\n if (!this.disabled) {\n this.unWireEvents();\n }\n if (this.tagName === 'INPUT') {\n if (this.getWrapper()) {\n wrapper.parentNode.insertBefore(this.element, wrapper);\n }\n detach(wrapper);\n this.element.checked = false;\n if (this.indeterminate) {\n this.element.indeterminate = false;\n }\n ['name', 'value', 'disabled'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n }\n else {\n ['role', 'aria-checked', 'class'].forEach(function (key) {\n wrapper.removeAttribute(key);\n });\n wrapper.innerHTML = '';\n }\n }\n };\n CheckBox.prototype.focusHandler = function () {\n this.isFocused = true;\n };\n CheckBox.prototype.focusOutHandler = function () {\n this.getWrapper().classList.remove('e-focus');\n this.isFocused = false;\n };\n /**\n * Gets the module name.\n * @private\n */\n CheckBox.prototype.getModuleName = function () {\n return 'checkbox';\n };\n /**\n * Gets the properties to be maintained in the persistence state.\n * @private\n */\n CheckBox.prototype.getPersistData = function () {\n return this.addOnPersist(['checked', 'indeterminate']);\n };\n CheckBox.prototype.getWrapper = function () {\n if (this.element.parentElement) {\n return this.element.parentElement.parentElement;\n }\n else {\n return null;\n }\n };\n CheckBox.prototype.initialize = function () {\n if (isNullOrUndefined(this.initialCheckedValue)) {\n this.initialCheckedValue = this.checked;\n }\n if (this.name) {\n this.element.setAttribute('name', this.name);\n }\n if (this.value) {\n this.element.setAttribute('value', this.value);\n }\n if (this.checked) {\n this.changeState('check');\n }\n if (this.indeterminate) {\n this.changeState();\n }\n if (this.disabled) {\n this.setDisabled();\n }\n };\n CheckBox.prototype.initWrapper = function () {\n var wrapper = this.element.parentElement;\n if (!wrapper.classList.contains(WRAPPER)) {\n wrapper = this.createElement('div', {\n className: WRAPPER, attrs: { 'role': 'checkbox', 'aria-checked': 'false' }\n });\n this.element.parentNode.insertBefore(wrapper, this.element);\n }\n var label = this.createElement('label', { attrs: { for: this.element.id } });\n var frameSpan = this.createElement('span', { className: 'e-icons ' + FRAME });\n wrapper.classList.add('e-wrapper');\n if (this.enableRtl) {\n wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([wrapper], this.cssClass.split(' '));\n }\n wrapper.appendChild(label);\n label.appendChild(this.element);\n setHiddenInput(this, label);\n label.appendChild(frameSpan);\n if (isRippleEnabled) {\n var rippleSpan = this.createElement('span', { className: RIPPLE });\n if (this.labelPosition === 'Before') {\n label.appendChild(rippleSpan);\n }\n else {\n label.insertBefore(rippleSpan, frameSpan);\n }\n rippleEffect(rippleSpan, { duration: 400, isCenterRipple: true });\n }\n if (this.label) {\n this.setText(this.label);\n }\n };\n CheckBox.prototype.keyUpHandler = function () {\n if (this.isFocused) {\n this.getWrapper().classList.add('e-focus');\n }\n };\n CheckBox.prototype.labelMouseHandler = function (e) {\n this.isMouseClick = true;\n var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\n rippleMouseHandler(e, rippleSpan);\n };\n /**\n * Called internally if any of the property value changes.\n * @private\n */\n CheckBox.prototype.onPropertyChanged = function (newProp, oldProp) {\n var wrapper = this.getWrapper();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'checked':\n this.indeterminate = false;\n this.element.indeterminate = false;\n this.changeState(newProp.checked ? 'check' : 'uncheck');\n break;\n case 'indeterminate':\n if (newProp.indeterminate) {\n this.changeState();\n }\n else {\n this.element.indeterminate = false;\n this.changeState(this.checked ? 'check' : 'uncheck');\n }\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.setDisabled();\n this.wrapper = this.getWrapper();\n this.unWireEvents();\n }\n else {\n this.element.disabled = false;\n wrapper.classList.remove(DISABLED);\n wrapper.setAttribute('aria-disabled', 'false');\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([wrapper], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([wrapper], newProp.cssClass.split(' '));\n }\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n wrapper.classList.add(RTL);\n }\n else {\n wrapper.classList.remove(RTL);\n }\n break;\n case 'label':\n this.setText(newProp.label);\n break;\n case 'labelPosition':\n var label = wrapper.getElementsByClassName(LABEL)[0];\n var labelWrap = wrapper.getElementsByTagName('label')[0];\n detach(label);\n if (newProp.labelPosition === 'After') {\n labelWrap.appendChild(label);\n }\n else {\n labelWrap.insertBefore(label, wrapper.getElementsByClassName(FRAME)[0]);\n }\n break;\n case 'name':\n this.element.setAttribute('name', newProp.name);\n break;\n case 'value':\n this.element.setAttribute('value', newProp.value);\n break;\n case 'htmlAttributes':\n this.updateHtmlAttributeToWrapper();\n break;\n }\n }\n };\n /**\n * Initialize Angular, React and Unique ID support.\n * @private\n */\n CheckBox.prototype.preRender = function () {\n var element = this.element;\n this.formElement = closest(this.element, 'form');\n this.tagName = this.element.tagName;\n element = wrapperInitialize(this.createElement, 'EJS-CHECKBOX', 'checkbox', element, WRAPPER, 'checkbox');\n this.element = element;\n if (this.element.getAttribute('type') !== 'checkbox') {\n this.element.setAttribute('type', 'checkbox');\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n };\n /**\n * Initialize the control rendering.\n * @private\n */\n CheckBox.prototype.render = function () {\n this.initWrapper();\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.updateHtmlAttributeToWrapper();\n this.renderComplete();\n this.wrapper = this.getWrapper();\n };\n CheckBox.prototype.setDisabled = function () {\n var wrapper = this.getWrapper();\n this.element.disabled = true;\n wrapper.classList.add(DISABLED);\n wrapper.setAttribute('aria-disabled', 'true');\n };\n CheckBox.prototype.setText = function (text) {\n var label = this.getWrapper().getElementsByClassName(LABEL)[0];\n if (label) {\n label.textContent = text;\n }\n else {\n text = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(text) : text;\n label = this.createElement('span', { className: LABEL, innerHTML: text });\n var labelWrap = this.getWrapper().getElementsByTagName('label')[0];\n if (this.labelPosition === 'Before') {\n labelWrap.insertBefore(label, this.getWrapper().getElementsByClassName(FRAME)[0]);\n }\n else {\n labelWrap.appendChild(label);\n }\n }\n };\n CheckBox.prototype.changeHandler = function (e) {\n e.stopPropagation();\n };\n CheckBox.prototype.formResetHandler = function () {\n this.checked = this.initialCheckedValue;\n this.element.checked = this.initialCheckedValue;\n };\n CheckBox.prototype.unWireEvents = function () {\n var wrapper = this.wrapper;\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'keyup', this.keyUpHandler);\n EventHandler.remove(this.element, 'focus', this.focusHandler);\n EventHandler.remove(this.element, 'focusout', this.focusOutHandler);\n var label = wrapper.getElementsByTagName('label')[0];\n EventHandler.remove(label, 'mousedown', this.labelMouseHandler);\n EventHandler.remove(label, 'mouseup', this.labelMouseHandler);\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n if (this.tagName === 'EJS-CHECKBOX') {\n EventHandler.remove(this.element, 'change', this.changeHandler);\n }\n };\n CheckBox.prototype.wireEvents = function () {\n var wrapper = this.getWrapper();\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'keyup', this.keyUpHandler, this);\n EventHandler.add(this.element, 'focus', this.focusHandler, this);\n EventHandler.add(this.element, 'focusout', this.focusOutHandler, this);\n var label = wrapper.getElementsByTagName('label')[0];\n EventHandler.add(label, 'mousedown', this.labelMouseHandler, this);\n EventHandler.add(label, 'mouseup', this.labelMouseHandler, this);\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\n }\n if (this.tagName === 'EJS-CHECKBOX') {\n EventHandler.add(this.element, 'change', this.changeHandler, this);\n }\n };\n CheckBox.prototype.updateHtmlAttributeToWrapper = function () {\n if (!isNullOrUndefined(this.htmlAttributes)) {\n for (var _i = 0, _a = Object.keys(this.htmlAttributes); _i < _a.length; _i++) {\n var key = _a[_i];\n if (containerAttr.indexOf(key) > -1) {\n var wrapper = this.getWrapper();\n if (key === 'class') {\n addClass([wrapper], this.htmlAttributes[key].split(' '));\n }\n else if (key === 'title') {\n wrapper.setAttribute(key, this.htmlAttributes[key]);\n }\n else if (key === 'style') {\n var frameSpan = this.getWrapper().getElementsByClassName(FRAME)[0];\n frameSpan.setAttribute(key, this.htmlAttributes[key]);\n }\n else {\n this.element.setAttribute(key, this.htmlAttributes[key]);\n }\n }\n }\n }\n };\n /**\n * Click the CheckBox element\n * its native method\n * @public\n */\n CheckBox.prototype.click = function () {\n this.element.click();\n };\n /**\n * Sets the focus to CheckBox\n * its native method\n * @public\n */\n CheckBox.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Event()\n ], CheckBox.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], CheckBox.prototype, \"created\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"checked\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"disabled\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"indeterminate\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"label\", void 0);\n __decorate([\n Property('After')\n ], CheckBox.prototype, \"labelPosition\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], CheckBox.prototype, \"value\", void 0);\n __decorate([\n Property(false)\n ], CheckBox.prototype, \"enableHtmlSanitizer\", void 0);\n __decorate([\n Property({})\n ], CheckBox.prototype, \"htmlAttributes\", void 0);\n CheckBox = __decorate([\n NotifyPropertyChanges\n ], CheckBox);\n return CheckBox;\n}(Component));\nexport { CheckBox };\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 { Component, rippleEffect, NotifyPropertyChanges, Property, closest } from '@syncfusion/ej2-base';\nimport { addClass, getInstance, getUniqueID, isRippleEnabled, removeClass, attributes, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { detach, Event, EventHandler, SanitizeHtmlHelper } from '@syncfusion/ej2-base';\nimport { wrapperInitialize, rippleMouseHandler } from './../common/common';\nvar LABEL = 'e-label';\nvar RIPPLE = 'e-ripple-container';\nvar RTL = 'e-rtl';\nvar WRAPPER = 'e-radio-wrapper';\n/**\n * The RadioButton is a graphical user interface element that allows you to select one option from the choices.\n * It contains checked and unchecked states.\n * ```html\n * \n * \n * ```\n */\nvar RadioButton = /** @class */ (function (_super) {\n __extends(RadioButton, _super);\n /**\n * Constructor for creating the widget\n * @private\n */\n function RadioButton(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isFocused = false;\n return _this;\n }\n RadioButton_1 = RadioButton;\n RadioButton.prototype.changeHandler = function (event) {\n this.checked = true;\n this.dataBind();\n var changeEventArgs = { value: this.value, event: event };\n this.trigger('change', changeEventArgs);\n if (this.tagName === 'EJS-RADIOBUTTON') {\n event.stopPropagation();\n }\n };\n RadioButton.prototype.updateChange = function (state) {\n var input;\n var instance;\n var radioGrp = this.getRadioGroup();\n for (var i = 0; i < radioGrp.length; i++) {\n input = radioGrp[i];\n if (input !== this.element) {\n instance = getInstance(input, RadioButton_1);\n instance.checked = false;\n if (this.tagName === 'EJS-RADIOBUTTON') {\n instance.angularValue = this.value;\n }\n }\n }\n };\n /**\n * Destroys the widget.\n * @returns void\n */\n RadioButton.prototype.destroy = function () {\n var _this = this;\n var radioWrap = this.element.parentElement;\n _super.prototype.destroy.call(this);\n if (!this.disabled) {\n this.unWireEvents();\n }\n if (this.tagName === 'INPUT') {\n radioWrap.parentNode.insertBefore(this.element, radioWrap);\n detach(radioWrap);\n this.element.checked = false;\n ['name', 'value', 'disabled'].forEach(function (key) {\n _this.element.removeAttribute(key);\n });\n }\n else {\n ['role', 'aria-checked', 'class'].forEach(function (key) {\n radioWrap.removeAttribute(key);\n });\n radioWrap.innerHTML = '';\n }\n };\n RadioButton.prototype.focusHandler = function () {\n this.isFocused = true;\n };\n RadioButton.prototype.focusOutHandler = function () {\n this.getLabel().classList.remove('e-focus');\n };\n RadioButton.prototype.getModuleName = function () {\n return 'radio';\n };\n /**\n * To get the value of selected radio button in a group.\n * @method getSelectedValue\n * @return {string}\n */\n RadioButton.prototype.getSelectedValue = function () {\n var input;\n var radioGrp = this.getRadioGroup();\n for (var i = 0, len = radioGrp.length; i < len; i++) {\n input = radioGrp[i];\n if (input.checked) {\n return input.value;\n }\n }\n return '';\n };\n RadioButton.prototype.getRadioGroup = function () {\n return document.querySelectorAll('input.e-radio[name=\"' + this.element.getAttribute('name') + '\"]');\n };\n /**\n * Gets the properties to be maintained in the persistence state.\n * @private\n */\n RadioButton.prototype.getPersistData = function () {\n return this.addOnPersist(['checked']);\n };\n RadioButton.prototype.getLabel = function () {\n return this.element.nextElementSibling;\n };\n RadioButton.prototype.initialize = function () {\n if (isNullOrUndefined(this.initialCheckedValue)) {\n this.initialCheckedValue = this.checked;\n }\n this.initWrapper();\n if (this.name) {\n this.element.setAttribute('name', this.name);\n }\n if (this.value) {\n this.element.setAttribute('value', this.value);\n }\n if (this.checked) {\n this.element.checked = true;\n }\n if (this.disabled) {\n this.setDisabled();\n }\n };\n RadioButton.prototype.initWrapper = function () {\n var rippleSpan;\n var wrapper = this.element.parentElement;\n if (!wrapper.classList.contains(WRAPPER)) {\n wrapper = this.createElement('div', { className: WRAPPER });\n this.element.parentNode.insertBefore(wrapper, this.element);\n }\n var label = this.createElement('label', { attrs: { for: this.element.id } });\n wrapper.appendChild(this.element);\n wrapper.appendChild(label);\n if (isRippleEnabled) {\n rippleSpan = this.createElement('span', { className: (RIPPLE) });\n label.appendChild(rippleSpan);\n rippleEffect(rippleSpan, {\n duration: 400,\n isCenterRipple: true\n });\n }\n wrapper.classList.add('e-wrapper');\n if (this.enableRtl) {\n label.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([label], this.cssClass.split(' '));\n }\n if (this.label) {\n this.setText(this.label);\n }\n };\n RadioButton.prototype.keyUpHandler = function () {\n if (this.isFocused) {\n this.getLabel().classList.add('e-focus');\n }\n };\n RadioButton.prototype.labelRippleHandler = function (e) {\n var ripple = this.getLabel().getElementsByClassName(RIPPLE)[0];\n rippleMouseHandler(e, ripple);\n };\n RadioButton.prototype.formResetHandler = function () {\n this.checked = this.initialCheckedValue;\n if (this.initialCheckedValue) {\n attributes(this.element, { 'checked': 'true' });\n }\n };\n /**\n * Called internally if any of the property value changes.\n * @private\n */\n RadioButton.prototype.onPropertyChanged = function (newProp, oldProp) {\n var label = this.getLabel();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'checked':\n if (newProp.checked) {\n this.updateChange(newProp.checked);\n }\n this.element.checked = newProp.checked;\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.setDisabled();\n this.unWireEvents();\n }\n else {\n this.element.disabled = false;\n this.wireEvents();\n }\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([label], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([label], newProp.cssClass.split(' '));\n }\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n label.classList.add(RTL);\n }\n else {\n label.classList.remove(RTL);\n }\n break;\n case 'label':\n this.setText(newProp.label);\n break;\n case 'labelPosition':\n if (newProp.labelPosition === 'Before') {\n label.classList.add('e-right');\n }\n else {\n label.classList.remove('e-right');\n }\n break;\n case 'name':\n this.element.setAttribute('name', newProp.name);\n break;\n case 'value':\n this.element.setAttribute('value', newProp.value);\n break;\n }\n }\n };\n /**\n * Initialize checked Property, Angular and React and Unique ID support.\n * @private\n */\n RadioButton.prototype.preRender = function () {\n var element = this.element;\n this.formElement = closest(this.element, 'form');\n this.tagName = this.element.tagName;\n element = wrapperInitialize(this.createElement, 'EJS-RADIOBUTTON', 'radio', element, WRAPPER, 'radio');\n this.element = element;\n if (this.element.getAttribute('type') !== 'radio') {\n this.element.setAttribute('type', 'radio');\n }\n if (!this.element.id) {\n this.element.id = getUniqueID('e-' + this.getModuleName());\n }\n if (this.tagName === 'EJS-RADIOBUTTON') {\n var formControlName = this.element.getAttribute('formcontrolname');\n if (formControlName) {\n this.setProperties({ 'name': formControlName }, true);\n this.element.setAttribute('name', formControlName);\n }\n }\n };\n /**\n * Initialize the control rendering\n * @private\n */\n RadioButton.prototype.render = function () {\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.renderComplete();\n };\n RadioButton.prototype.setDisabled = function () {\n this.element.disabled = true;\n };\n RadioButton.prototype.setText = function (text) {\n var label = this.getLabel();\n var textLabel = label.getElementsByClassName(LABEL)[0];\n if (textLabel) {\n textLabel.textContent = text;\n }\n else {\n text = (this.enableHtmlSanitizer) ? SanitizeHtmlHelper.sanitize(text) : text;\n textLabel = this.createElement('span', { className: LABEL, innerHTML: text });\n label.appendChild(textLabel);\n }\n if (this.labelPosition === 'Before') {\n this.getLabel().classList.add('e-right');\n }\n else {\n this.getLabel().classList.remove('e-right');\n }\n };\n RadioButton.prototype.unWireEvents = function () {\n var label = this.getLabel();\n EventHandler.remove(this.element, 'change', this.changeHandler);\n EventHandler.remove(this.element, 'focus', this.focusHandler);\n EventHandler.remove(this.element, 'focusout', this.focusOutHandler);\n EventHandler.remove(this.element, 'keyup', this.keyUpHandler);\n var rippleLabel = label.getElementsByClassName(LABEL)[0];\n if (rippleLabel) {\n EventHandler.remove(rippleLabel, 'mousedown', this.labelRippleHandler);\n EventHandler.remove(rippleLabel, 'mouseup', this.labelRippleHandler);\n }\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n };\n RadioButton.prototype.wireEvents = function () {\n var label = this.getLabel();\n EventHandler.add(this.element, 'change', this.changeHandler, this);\n EventHandler.add(this.element, 'keyup', this.keyUpHandler, this);\n EventHandler.add(this.element, 'focus', this.focusHandler, this);\n EventHandler.add(this.element, 'focusout', this.focusOutHandler, this);\n var rippleLabel = label.getElementsByClassName(LABEL)[0];\n if (rippleLabel) {\n EventHandler.add(rippleLabel, 'mousedown', this.labelRippleHandler, this);\n EventHandler.add(rippleLabel, 'mouseup', this.labelRippleHandler, this);\n }\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\n }\n };\n /**\n * Click the RadioButton element\n * its native method\n * @public\n */\n RadioButton.prototype.click = function () {\n this.element.click();\n };\n /**\n * Sets the focus to RadioButton\n * its native method\n * @public\n */\n RadioButton.prototype.focusIn = function () {\n this.element.focus();\n };\n var RadioButton_1;\n __decorate([\n Event()\n ], RadioButton.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], RadioButton.prototype, \"created\", void 0);\n __decorate([\n Property(false)\n ], RadioButton.prototype, \"checked\", void 0);\n __decorate([\n Property('')\n ], RadioButton.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], RadioButton.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], RadioButton.prototype, \"label\", void 0);\n __decorate([\n Property('After')\n ], RadioButton.prototype, \"labelPosition\", void 0);\n __decorate([\n Property('')\n ], RadioButton.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], RadioButton.prototype, \"value\", void 0);\n __decorate([\n Property(false)\n ], RadioButton.prototype, \"enableHtmlSanitizer\", void 0);\n RadioButton = RadioButton_1 = __decorate([\n NotifyPropertyChanges\n ], RadioButton);\n return RadioButton;\n}(Component));\nexport { RadioButton };\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 { Component, NotifyPropertyChanges, Property, closest } from '@syncfusion/ej2-base';\nimport { Event, EventHandler } from '@syncfusion/ej2-base';\nimport { addClass, isRippleEnabled, removeClass, rippleEffect, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { rippleMouseHandler, destroy, preRender, setHiddenInput } from './../common/common';\nvar CHECK = 'e-check';\nvar DISABLED = 'e-switch-disabled';\nvar RIPPLE = 'e-ripple-container';\nvar RIPPLE_CHECK = 'e-ripple-check';\nvar RTL = 'e-rtl';\nvar WRAPPER = 'e-switch-wrapper';\nvar ACTIVE = 'e-switch-active';\n/**\n * The Switch is a graphical user interface element that allows you to toggle between checked and unchecked states.\n * ```html\n * \n * \n * ```\n */\nvar Switch = /** @class */ (function (_super) {\n __extends(Switch, _super);\n /**\n * Constructor for creating the widget.\n * @private\n */\n function Switch(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.isFocused = false;\n _this.isDrag = false;\n return _this;\n }\n Switch.prototype.changeState = function (state) {\n var ariaState;\n var rippleSpan;\n var wrapper = this.getWrapper();\n var bar = wrapper.querySelector('.e-switch-inner');\n var handle = wrapper.querySelector('.e-switch-handle');\n if (isRippleEnabled) {\n rippleSpan = wrapper.getElementsByClassName(RIPPLE)[0];\n }\n if (state) {\n addClass([bar, handle], ACTIVE);\n ariaState = 'true';\n this.element.checked = true;\n this.checked = true;\n if (rippleSpan) {\n addClass([rippleSpan], [RIPPLE_CHECK]);\n }\n }\n else {\n removeClass([bar, handle], ACTIVE);\n ariaState = 'false';\n this.element.checked = false;\n this.checked = false;\n if (rippleSpan) {\n removeClass([rippleSpan], [RIPPLE_CHECK]);\n }\n }\n wrapper.setAttribute('aria-checked', ariaState);\n };\n Switch.prototype.clickHandler = function (evt) {\n this.isDrag = false;\n this.focusOutHandler();\n this.changeState(!this.checked);\n this.element.focus();\n var changeEventArgs = { checked: this.element.checked, event: evt };\n this.trigger('change', changeEventArgs);\n };\n /**\n * Destroys the Switch widget.\n * @returns void\n */\n Switch.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (!this.disabled) {\n this.unWireEvents();\n }\n destroy(this, this.getWrapper(), this.tagName);\n };\n Switch.prototype.focusHandler = function () {\n this.isFocused = true;\n };\n Switch.prototype.focusOutHandler = function () {\n this.getWrapper().classList.remove('e-focus');\n };\n /**\n * Gets the module name.\n * @private\n */\n Switch.prototype.getModuleName = function () {\n return 'switch';\n };\n /**\n * Gets the properties to be maintained in the persistence state.\n * @private\n */\n Switch.prototype.getPersistData = function () {\n return this.addOnPersist(['checked']);\n };\n Switch.prototype.getWrapper = function () {\n return this.element.parentElement;\n };\n Switch.prototype.initialize = function () {\n if (isNullOrUndefined(this.initialSwitchCheckedValue)) {\n this.initialSwitchCheckedValue = this.checked;\n }\n if (this.name) {\n this.element.setAttribute('name', this.name);\n }\n if (this.value) {\n this.element.setAttribute('value', this.value);\n }\n if (this.checked) {\n this.changeState(true);\n }\n if (this.disabled) {\n this.setDisabled();\n }\n if (this.onLabel || this.offLabel) {\n this.setLabel(this.onLabel, this.offLabel);\n }\n };\n Switch.prototype.initWrapper = function () {\n var wrapper = this.element.parentElement;\n if (!wrapper.classList.contains(WRAPPER)) {\n wrapper = this.createElement('div', {\n className: WRAPPER, attrs: { 'role': 'switch', 'aria-checked': 'false' }\n });\n this.element.parentNode.insertBefore(wrapper, this.element);\n }\n var switchInner = this.createElement('span', { className: 'e-switch-inner' });\n var onLabel = this.createElement('span', { className: 'e-switch-on' });\n var offLabel = this.createElement('span', { className: 'e-switch-off' });\n var handle = this.createElement('span', { className: 'e-switch-handle' });\n wrapper.appendChild(this.element);\n setHiddenInput(this, wrapper);\n switchInner.appendChild(onLabel);\n switchInner.appendChild(offLabel);\n wrapper.appendChild(switchInner);\n wrapper.appendChild(handle);\n if (isRippleEnabled) {\n var rippleSpan = this.createElement('span', { className: RIPPLE });\n handle.appendChild(rippleSpan);\n rippleEffect(rippleSpan, { duration: 400, isCenterRipple: true });\n }\n wrapper.classList.add('e-wrapper');\n if (this.enableRtl) {\n wrapper.classList.add(RTL);\n }\n if (this.cssClass) {\n addClass([wrapper], this.cssClass.split(' '));\n }\n };\n /**\n * Called internally if any of the property value changes.\n * @private\n */\n Switch.prototype.onPropertyChanged = function (newProp, oldProp) {\n var wrapper = this.getWrapper();\n for (var _i = 0, _a = Object.keys(newProp); _i < _a.length; _i++) {\n var prop = _a[_i];\n switch (prop) {\n case 'checked':\n this.changeState(newProp.checked);\n break;\n case 'disabled':\n if (newProp.disabled) {\n this.setDisabled();\n this.unWireEvents();\n }\n else {\n this.element.disabled = false;\n wrapper.classList.remove(DISABLED);\n wrapper.setAttribute('aria-disabled', 'false');\n this.wireEvents();\n }\n break;\n case 'value':\n this.element.setAttribute('value', newProp.value);\n break;\n case 'name':\n this.element.setAttribute('name', newProp.name);\n break;\n case 'onLabel':\n case 'offLabel':\n this.setLabel(newProp.onLabel, newProp.offLabel);\n break;\n case 'enableRtl':\n if (newProp.enableRtl) {\n wrapper.classList.add(RTL);\n }\n else {\n wrapper.classList.remove(RTL);\n }\n break;\n case 'cssClass':\n if (oldProp.cssClass) {\n removeClass([wrapper], oldProp.cssClass.split(' '));\n }\n if (newProp.cssClass) {\n addClass([wrapper], newProp.cssClass.split(' '));\n }\n break;\n }\n }\n };\n /**\n * Initialize Angular, React and Unique ID support.\n * @private\n */\n Switch.prototype.preRender = function () {\n var element = this.element;\n this.formElement = closest(this.element, 'form');\n this.tagName = this.element.tagName;\n preRender(this, 'EJS-SWITCH', WRAPPER, element, this.getModuleName());\n };\n /**\n * Initialize control rendering.\n * @private\n */\n Switch.prototype.render = function () {\n this.initWrapper();\n this.initialize();\n if (!this.disabled) {\n this.wireEvents();\n }\n this.renderComplete();\n };\n Switch.prototype.rippleHandler = function (e) {\n var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\n rippleMouseHandler(e, rippleSpan);\n if (e.type === 'mousedown' && e.currentTarget.classList.contains('e-switch-wrapper') && e.which === 1) {\n this.isDrag = true;\n this.isFocused = false;\n }\n };\n Switch.prototype.rippleTouchHandler = function (eventType) {\n var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\n if (rippleSpan) {\n var event_1 = document.createEvent('MouseEvents');\n event_1.initEvent(eventType, false, true);\n rippleSpan.dispatchEvent(event_1);\n }\n };\n Switch.prototype.setDisabled = function () {\n var wrapper = this.getWrapper();\n this.element.disabled = true;\n wrapper.classList.add(DISABLED);\n wrapper.setAttribute('aria-disabled', 'true');\n };\n Switch.prototype.setLabel = function (onText, offText) {\n var wrapper = this.getWrapper();\n if (onText) {\n wrapper.querySelector('.e-switch-on').textContent = onText;\n }\n if (offText) {\n wrapper.querySelector('.e-switch-off').textContent = offText;\n }\n };\n Switch.prototype.switchFocusHandler = function () {\n if (this.isFocused) {\n this.getWrapper().classList.add('e-focus');\n }\n };\n Switch.prototype.switchMouseUp = function (e) {\n var target = e.target;\n var rippleSpan = this.getWrapper().getElementsByClassName(RIPPLE)[0];\n if (e.type === 'touchmove') {\n e.preventDefault();\n }\n if (e.type === 'touchstart') {\n this.isDrag = true;\n this.rippleTouchHandler('mousedown');\n }\n if (this.isDrag) {\n if ((e.type === 'mouseup' && target.className.indexOf('e-switch') < 0) || e.type === 'touchend') {\n this.clickHandler(e);\n this.rippleTouchHandler('mouseup');\n e.preventDefault();\n }\n }\n };\n Switch.prototype.formResetHandler = function () {\n this.checked = this.initialSwitchCheckedValue;\n this.element.checked = this.initialSwitchCheckedValue;\n };\n /**\n * Toggle the Switch component state into checked/unchecked.\n * @returns void\n */\n Switch.prototype.toggle = function () {\n this.clickHandler();\n };\n Switch.prototype.wireEvents = function () {\n var wrapper = this.getWrapper();\n var handle = wrapper.querySelector('.e-switch-handle');\n this.delegateMouseUpHandler = this.switchMouseUp.bind(this);\n this.delegateKeyUpHandler = this.switchFocusHandler.bind(this);\n EventHandler.add(wrapper, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'focus', this.focusHandler, this);\n EventHandler.add(this.element, 'focusout', this.focusOutHandler, this);\n EventHandler.add(this.element, 'mouseup', this.delegateMouseUpHandler, this);\n EventHandler.add(this.element, 'keyup', this.delegateKeyUpHandler, this);\n EventHandler.add(wrapper, 'mousedown mouseup', this.rippleHandler, this);\n EventHandler.add(wrapper, 'touchstart touchmove touchend', this.switchMouseUp, this);\n if (this.formElement) {\n EventHandler.add(this.formElement, 'reset', this.formResetHandler, this);\n }\n };\n Switch.prototype.unWireEvents = function () {\n var wrapper = this.getWrapper();\n var handle = wrapper.querySelector('.e-switch-handle');\n EventHandler.remove(wrapper, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'focus', this.focusHandler);\n EventHandler.remove(this.element, 'focusout', this.focusOutHandler);\n EventHandler.remove(this.element, 'mouseup', this.delegateMouseUpHandler);\n EventHandler.remove(this.element, 'keyup', this.delegateKeyUpHandler);\n EventHandler.remove(wrapper, 'mousedown mouseup', this.rippleHandler);\n EventHandler.remove(wrapper, 'touchstart touchmove touchend', this.switchMouseUp);\n if (this.formElement) {\n EventHandler.remove(this.formElement, 'reset', this.formResetHandler);\n }\n };\n /**\n * Click the switch element\n * its native method\n * @public\n */\n Switch.prototype.click = function () {\n this.element.click();\n };\n /**\n * Sets the focus to Switch\n * its native method\n * @public\n */\n Switch.prototype.focusIn = function () {\n this.element.focus();\n };\n __decorate([\n Event()\n ], Switch.prototype, \"change\", void 0);\n __decorate([\n Event()\n ], Switch.prototype, \"created\", void 0);\n __decorate([\n Property(false)\n ], Switch.prototype, \"checked\", void 0);\n __decorate([\n Property('')\n ], Switch.prototype, \"cssClass\", void 0);\n __decorate([\n Property(false)\n ], Switch.prototype, \"disabled\", void 0);\n __decorate([\n Property('')\n ], Switch.prototype, \"name\", void 0);\n __decorate([\n Property('')\n ], Switch.prototype, \"onLabel\", void 0);\n __decorate([\n Property('')\n ], Switch.prototype, \"offLabel\", void 0);\n __decorate([\n Property('')\n ], Switch.prototype, \"value\", void 0);\n Switch = __decorate([\n NotifyPropertyChanges\n ], Switch);\n return Switch;\n}(Component));\nexport { Switch };\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 { Component, NotifyPropertyChanges, Property, append, isNullOrUndefined } from '@syncfusion/ej2-base';\nimport { removeClass, rippleEffect, closest } from '@syncfusion/ej2-base';\nimport { EventHandler, detach, Event, addClass, isBlazor, getElement } from '@syncfusion/ej2-base';\nexport var classNames = {\n chipSet: 'e-chip-set',\n chip: 'e-chip',\n avatar: 'e-chip-avatar',\n text: 'e-chip-text',\n icon: 'e-chip-icon',\n delete: 'e-chip-delete',\n deleteIcon: 'e-dlt-btn',\n multiSelection: 'e-multi-selection',\n singleSelection: 'e-selection',\n active: 'e-active',\n chipWrapper: 'e-chip-avatar-wrap',\n iconWrapper: 'e-chip-icon-wrap',\n focused: 'e-focused',\n disabled: 'e-disabled',\n rtl: 'e-rtl',\n};\n/**\n * A chip component is a small block of essential information, mostly used on contacts or filter tags.\n * ```html\n *
\n * ```\n * ```typescript\n * \n * ```\n */\nvar ChipList = /** @class */ (function (_super) {\n __extends(ChipList, _super);\n function ChipList(options, element) {\n var _this = _super.call(this, options, element) || this;\n _this.multiSelectedChip = [];\n return _this;\n }\n /**\n * Initialize the event handler\n * @private\n */\n ChipList.prototype.preRender = function () {\n //prerender\n };\n /**\n * To find the chips length.\n * @returns boolean\n * @private\n */\n ChipList.prototype.chipType = function () {\n return (this.chips && this.chips.length && this.chips.length > 0);\n };\n /**\n * To Initialize the control rendering.\n * @returns void\n * @private\n */\n ChipList.prototype.render = function () {\n this.type = this.chips.length ? 'chipset' : (this.text || this.element.innerText ? 'chip' : 'chipset');\n if (!isBlazor() || !this.isServerRendered) {\n this.setAttributes();\n this.createChip();\n this.setRtl();\n this.select(this.selectedChips);\n }\n this.wireEvent(false);\n this.rippleFunction = rippleEffect(this.element, {\n selector: '.e-chip'\n });\n this.renderComplete();\n };\n ChipList.prototype.createChip = function () {\n this.innerText = this.element.innerText.trim();\n if (isBlazor()) {\n var childElement = this.element.querySelectorAll('.e-chip');\n for (var i = 0; i < childElement.length; i++) {\n if (childElement[i] != null) {\n detach(childElement[i]);\n }\n }\n }\n else {\n this.element.innerHTML = '';\n }\n this.chipCreation(this.type === 'chip' ? [this.innerText ? this.innerText : this.text] : this.chips);\n };\n ChipList.prototype.setAttributes = function () {\n if (this.type === 'chip') {\n this.element.tabIndex = 0;\n this.element.setAttribute('role', 'option');\n }\n else {\n this.element.classList.add(classNames.chipSet);\n this.element.setAttribute('role', 'listbox');\n if (this.selection === 'Multiple') {\n this.element.classList.add(classNames.multiSelection);\n this.element.setAttribute('aria-multiselectable', 'true');\n }\n else if (this.selection === 'Single') {\n this.element.classList.add(classNames.singleSelection);\n this.element.setAttribute('aria-multiselectable', 'false');\n }\n else {\n this.element.setAttribute('aria-multiselectable', 'false');\n }\n }\n };\n ChipList.prototype.setRtl = function () {\n this.element.classList[this.enableRtl ? 'add' : 'remove'](classNames.rtl);\n };\n ChipList.prototype.chipCreation = function (data) {\n var chipListArray = [];\n for (var i = 0; i < data.length; i++) {\n var fieldsData = this.getFieldValues(data[i]);\n var chipArray = this.elementCreation(fieldsData);\n var className = (classNames.chip + ' ' + (fieldsData.enabled ? ' ' : classNames.disabled) + ' ' +\n (fieldsData.avatarIconCss || fieldsData.avatarText ? classNames.chipWrapper : (fieldsData.leadingIconCss ?\n classNames.iconWrapper : ' ')) + ' ' + fieldsData.cssClass).split(' ').filter(function (css) { return css; });\n if (!this.chipType()) {\n chipListArray = chipArray;\n addClass([this.element], className);\n this.element.setAttribute('aria-label', fieldsData.text);\n if (fieldsData.value) {\n this.element.setAttribute('data-value', fieldsData.value.toString());\n }\n }\n else {\n var wrapper = this.createElement('DIV', {\n className: className.join(' '), attrs: {\n tabIndex: '0', role: 'option',\n 'aria-label': fieldsData.text, 'aria-selected': 'false'\n }\n });\n if (fieldsData.value) {\n wrapper.setAttribute('data-value', fieldsData.value.toString());\n }\n append(chipArray, wrapper);\n chipListArray.push(wrapper);\n }\n }\n append(chipListArray, this.element);\n };\n ChipList.prototype.getFieldValues = function (data) {\n var chipEnabled = !(this.enabled.toString() === 'false');\n var fields = {\n text: typeof data === 'object' ? (data.text ? data.text.toString() : this.text.toString()) :\n (!this.chipType() ? (this.innerText ? this.innerText : this.text.toString()) : data.toString()),\n cssClass: typeof data === 'object' ? (data.cssClass ? data.cssClass.toString() : this.cssClass.toString()) :\n (this.cssClass.toString()),\n leadingIconCss: typeof data === 'object' ? (data.leadingIconCss ? data.leadingIconCss.toString() :\n this.leadingIconCss.toString()) : (this.leadingIconCss.toString()),\n avatarIconCss: typeof data === 'object' ? (data.avatarIconCss ? data.avatarIconCss.toString() :\n this.avatarIconCss.toString()) : (this.avatarIconCss.toString()),\n avatarText: typeof data === 'object' ? (data.avatarText ? data.avatarText.toString() : this.avatarText.toString()) :\n (this.avatarText.toString()),\n trailingIconCss: typeof data === 'object' ? (data.trailingIconCss ? data.trailingIconCss.toString() :\n this.trailingIconCss.toString()) : (this.trailingIconCss.toString()),\n enabled: typeof data === 'object' ? (!isNullOrUndefined(data.enabled) ? (data.enabled.toString() === 'false' ? false : true) :\n chipEnabled) : (chipEnabled),\n value: typeof data === 'object' ? ((data.value ? data.value.toString() : null)) : null,\n leadingIconUrl: typeof data === 'object' ? (data.leadingIconUrl ? data.leadingIconUrl.toString() : this.leadingIconUrl) :\n this.leadingIconUrl,\n trailingIconUrl: typeof data === 'object' ? (data.trailingIconUrl ? data.trailingIconUrl.toString() : this.trailingIconUrl) :\n this.trailingIconUrl\n };\n return fields;\n };\n ChipList.prototype.elementCreation = function (fields) {\n var chipArray = [];\n if (fields.avatarText || fields.avatarIconCss) {\n var className = (classNames.avatar + ' ' + fields.avatarIconCss).trim();\n var chipAvatarElement = this.createElement('span', { className: className });\n chipAvatarElement.innerText = fields.avatarText;\n chipArray.push(chipAvatarElement);\n }\n else if (fields.leadingIconCss) {\n var className = (classNames.icon + ' ' + fields.leadingIconCss).trim();\n var chipIconElement = this.createElement('span', { className: className });\n chipArray.push(chipIconElement);\n }\n else if (fields.leadingIconUrl) {\n var className = (classNames.avatar + ' ' + 'image-url').trim();\n var chipIconElement = this.createElement('span', { className: className });\n chipIconElement.style.backgroundImage = 'url(' + fields.leadingIconUrl + ')';\n chipArray.push(chipIconElement);\n }\n var chipTextElement = this.createElement('span', { className: classNames.text });\n chipTextElement.innerText = fields.text;\n chipArray.push(chipTextElement);\n if (fields.trailingIconCss || (this.chipType() && this.enableDelete)) {\n var className = (classNames.delete + ' ' +\n (fields.trailingIconCss ? fields.trailingIconCss : classNames.deleteIcon)).trim();\n var chipdeleteElement = this.createElement('span', { className: className });\n chipArray.push(chipdeleteElement);\n }\n else if (fields.trailingIconUrl) {\n var className = ('trailing-icon-url').trim();\n var chipIconsElement = this.createElement('span', { className: className });\n chipIconsElement.style.backgroundImage = 'url(' + fields.trailingIconUrl + ')';\n chipArray.push(chipIconsElement);\n }\n return chipArray;\n };\n /**\n * A function that finds chip based on given input.\n * @param {number | HTMLElement } fields - We can pass index number or element of chip.\n * {% codeBlock src='chips/find/index.md' %}{% endcodeBlock %}\n */\n ChipList.prototype.find = function (fields) {\n var chipData;\n var chipElement = fields instanceof HTMLElement ?\n fields : this.element.querySelectorAll('.' + classNames.chip)[fields];\n if (chipElement && this.chipType()) {\n chipData = { text: undefined, index: undefined, element: undefined, data: undefined };\n chipData.index = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.chip)).indexOf(chipElement);\n chipData.text = typeof this.chips[chipData.index] === 'object' ?\n (this.chips[chipData.index].text ?\n this.chips[chipData.index].text.toString() : '') :\n this.chips[chipData.index].toString();\n chipData.data = this.chips[chipData.index];\n chipData.element = chipElement;\n }\n return chipData;\n };\n /**\n * Allows adding the chip item(s) by passing a single or array of string, number, or ChipModel values.\n * @param {string[] | number[] | ChipModel[] | string | number | ChipModel} chipsData - We can pass array of string or\n * array of number or array of chip model or string data or number data or chip model.\n * {% codeBlock src='chips/add/index.md' %}{% endcodeBlock %}\n * @deprecated\n */\n ChipList.prototype.add = function (chipsData) {\n var _a;\n if (this.type !== 'chip') {\n var fieldData = chipsData instanceof Array ?\n chipsData : [chipsData];\n (_a = this.chips).push.apply(_a, fieldData);\n this.chipCreation(fieldData);\n }\n };\n /**\n * Allows selecting the chip item(s) by passing a single or array of string, number, or ChipModel values.\n * @param {number | number[] | HTMLElement | HTMLElement[]} fields - We can pass number or array of number\n * or chip element or array of chip element.\n * {% codeBlock src='chips/select/index.md' %}{% endcodeBlock %}\n */\n ChipList.prototype.select = function (fields) {\n this.onSelect(fields, false);\n };\n ChipList.prototype.multiSelection = function (newProp) {\n var items = this.element.querySelectorAll('.' + 'e-chip');\n for (var j = 0; j < newProp.length; j++) {\n if (typeof newProp[j] === 'string') {\n for (var k = 0; k < items.length; k++) {\n if (newProp[j] !== k) {\n if (newProp[j] === items[k].attributes[5].value) {\n this.multiSelectedChip.push(k);\n break;\n }\n }\n }\n }\n else {\n this.multiSelectedChip.push(newProp[j]);\n }\n }\n };\n ChipList.prototype.onSelect = function (fields, callFromProperty) {\n if (this.chipType() && this.selection !== 'None') {\n if (callFromProperty) {\n var chipElements = this.element.querySelectorAll('.' + classNames.chip);\n for (var i = 0; i < chipElements.length; i++) {\n chipElements[i].setAttribute('aria-selected', 'false');\n chipElements[i].classList.remove(classNames.active);\n }\n }\n var fieldData = fields instanceof Array ? fields : [fields];\n for (var i = 0; i < fieldData.length; i++) {\n var chipElement = fieldData[i] instanceof HTMLElement ? fieldData[i]\n : this.element.querySelectorAll('.' + classNames.chip)[fieldData[i]];\n if (chipElement instanceof HTMLElement) {\n this.selectionHandler(chipElement);\n }\n }\n }\n };\n /**\n * Allows removing the chip item(s) by passing a single or array of string, number, or ChipModel values.\n * @param {number | number[] | HTMLElement | HTMLElement[]} fields - We can pass number or array of number\n * or chip element or array of chip element.\n * {% codeBlock src='chips/remove/index.md' %}{% endcodeBlock %}\n */\n ChipList.prototype.remove = function (fields) {\n var _this = this;\n if (this.chipType()) {\n var fieldData = fields instanceof Array ? fields : [fields];\n var chipElements_1 = [];\n var chipCollection_1 = this.element.querySelectorAll('.' + classNames.chip);\n fieldData.forEach(function (data) {\n var chipElement = data instanceof HTMLElement ? data\n : chipCollection_1[data];\n if (chipElement instanceof HTMLElement) {\n chipElements_1.push(chipElement);\n }\n });\n chipElements_1.forEach(function (element) {\n var chips = _this.element.querySelectorAll('.' + classNames.chip);\n var index = Array.prototype.slice.call(chips).indexOf(element);\n _this.deleteHandler(element, index);\n });\n }\n };\n /**\n * Returns the selected chip(s) data.\n * {% codeBlock src='chips/getSelectedChips/index.md' %}{% endcodeBlock %}\n */\n ChipList.prototype.getSelectedChips = function () {\n var selectedChips;\n if (this.chipType() && this.selection !== 'None') {\n var selectedItems = { texts: [], Indexes: [], data: [], elements: [] };\n var items = this.element.querySelectorAll('.' + classNames.active);\n for (var i = 0; i < items.length; i++) {\n var chip = items[i];\n selectedItems.elements.push(chip);\n var index = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.chip)).indexOf(chip);\n selectedItems.Indexes.push(index);\n selectedItems.data.push(this.chips[index]);\n var text = typeof this.chips[index] === 'object' ?\n this.chips[index].text ? this.chips[index].text.toString()\n : null : this.chips[index].toString();\n selectedItems.texts.push(text);\n }\n var selectedItem = {\n text: selectedItems.texts[0], index: selectedItems.Indexes[0],\n data: selectedItems.data[0], element: selectedItems.elements[0]\n };\n selectedChips = !isNullOrUndefined(selectedItem.index) ?\n (this.selection === 'Multiple' ? selectedItems : selectedItem) : undefined;\n }\n return selectedChips;\n };\n ChipList.prototype.wireEvent = function (unWireEvent) {\n if (!unWireEvent) {\n EventHandler.add(this.element, 'click', this.clickHandler, this);\n EventHandler.add(this.element, 'focusout', this.focusOutHandler, this);\n EventHandler.add(this.element, 'keydown', this.keyHandler, this);\n EventHandler.add(this.element, 'keyup', this.keyHandler, this);\n }\n else {\n EventHandler.remove(this.element, 'click', this.clickHandler);\n EventHandler.remove(this.element, 'focusout', this.focusOutHandler);\n EventHandler.remove(this.element, 'keydown', this.keyHandler);\n EventHandler.remove(this.element, 'keyup', this.keyHandler);\n }\n };\n ChipList.prototype.keyHandler = function (e) {\n if (e.target.classList.contains(classNames.chip)) {\n if (e.type === 'keydown') {\n if (e.keyCode === 13) {\n this.clickHandler(e);\n }\n else if (e.keyCode === 46 && this.enableDelete) {\n this.clickHandler(e, true);\n }\n }\n else if (e.keyCode === 9) {\n this.focusInHandler(e.target);\n }\n }\n };\n ChipList.prototype.focusInHandler = function (chipWrapper) {\n if (!chipWrapper.classList.contains(classNames.focused)) {\n chipWrapper.classList.add(classNames.focused);\n }\n };\n ChipList.prototype.focusOutHandler = function (e) {\n var chipWrapper = closest(e.target, '.' + classNames.chip);\n var focusedElement = !this.chipType() ? (this.element.classList.contains(classNames.focused) ?\n this.element : null) : this.element.querySelector('.' + classNames.focused);\n if (chipWrapper && focusedElement) {\n focusedElement.classList.remove(classNames.focused);\n }\n };\n ChipList.prototype.clickHandler = function (e, del) {\n var _this = this;\n if (del === void 0) { del = false; }\n var chipWrapper = closest(e.target, '.' + classNames.chip);\n if (chipWrapper) {\n var chipDataArgs = void 0;\n if (this.chipType()) {\n chipDataArgs = this.find(chipWrapper);\n }\n else {\n var index = Array.prototype.slice.call(this.element.querySelectorAll('.' + classNames.chip)).indexOf(chipWrapper);\n chipDataArgs = {\n text: this.innerText ? this.innerText : this.text,\n element: chipWrapper, data: this.text, index: index\n };\n }\n chipDataArgs.event = e;\n chipDataArgs.cancel = false;\n this.trigger('beforeClick', chipDataArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n observedArgs.element = isBlazor() ? getElement(observedArgs.element) : observedArgs.element;\n _this.clickEventHandler(observedArgs.element, e, del);\n }\n });\n }\n };\n ChipList.prototype.clickEventHandler = function (chipWrapper, e, del) {\n var _this = this;\n if (this.chipType()) {\n var chipData = this.find(chipWrapper);\n chipData.event = e;\n var deleteElement = e.target.classList.contains(classNames.deleteIcon) ?\n e.target : (del ? chipWrapper.querySelector('.' + classNames.deleteIcon) : undefined);\n if (deleteElement && this.enableDelete) {\n chipData.cancel = false;\n var deletedItemArgs = chipData;\n this.trigger('delete', deletedItemArgs, function (observedArgs) {\n if (!observedArgs.cancel) {\n observedArgs.element = isBlazor() ? getElement(observedArgs.element) : observedArgs.element;\n _this.deleteHandler(observedArgs.element, observedArgs.index);\n }\n });\n }\n else if (this.selection !== 'None') {\n this.selectionHandler(chipWrapper);\n chipData.selected = chipWrapper.classList.contains(classNames.active);\n var selectedItemArgs = chipData;\n this.trigger('click', selectedItemArgs);\n }\n else {\n this.focusInHandler(chipWrapper);\n var clickedItemArgs = chipData;\n this.trigger('click', clickedItemArgs);\n }\n }\n else {\n this.focusInHandler(chipWrapper);\n var clickedItemArgs = {\n text: this.innerText ? this.innerText : this.text,\n element: chipWrapper, data: this.text, event: e\n };\n this.trigger('click', clickedItemArgs);\n }\n };\n ChipList.prototype.selectionHandler = function (chipWrapper) {\n if (this.selection === 'Single') {\n var activeElement = this.element.querySelector('.' + classNames.active);\n if (activeElement && activeElement !== chipWrapper) {\n activeElement.classList.remove(classNames.active);\n activeElement.setAttribute('aria-selected', 'false');\n }\n this.setProperties({ selectedChips: null }, true);\n }\n else {\n this.setProperties({ selectedChips: [] }, true);\n }\n if (chipWrapper.classList.contains(classNames.active)) {\n chipWrapper.classList.remove(classNames.active);\n chipWrapper.setAttribute('aria-selected', 'false');\n }\n else {\n chipWrapper.classList.add(classNames.active);\n chipWrapper.setAttribute('aria-selected', 'true');\n }\n this.updateSelectedChips();\n };\n ChipList.prototype.updateSelectedChips = function () {\n var chipListEle = this.element.querySelectorAll('.e-chip');\n var chipCollIndex = [];\n var chipCollValue = [];\n var chip = null;\n var value;\n for (var i = 0; i < chipListEle.length; i++) {\n var selectedEle = this.element.querySelectorAll('.e-chip')[i];\n if (selectedEle.getAttribute('aria-selected') === 'true') {\n value = selectedEle.getAttribute('data-value');\n if (this.selection === 'Single' && selectedEle.classList.contains('e-active')) {\n chip = value ? value : i;\n break;\n }\n else {\n value ? chipCollValue.push(value) : chipCollIndex.push(i);\n }\n }\n }\n this.setProperties({ selectedChips: this.selection === 'Single' ? chip : value ? chipCollValue : chipCollIndex }, true);\n };\n ChipList.prototype.deleteHandler = function (chipWrapper, index) {\n this.allowServerDataBinding = true;\n this.chips.splice(index, 1);\n this.setProperties({ chips: this.chips }, true);\n this.serverDataBind();\n this.allowServerDataBinding = false;\n if (!(isBlazor() && this.isServerRendered)) {\n detach(chipWrapper);\n }\n };\n /**\n * Removes the component from the DOM and detaches all its related event handlers. Also, it removes the attributes and classes.\n * {% codeBlock src='chips/destroy/index.md' %}{% endcodeBlock %}\n */\n ChipList.prototype.destroy = function () {\n removeClass([this.element], [classNames.chipSet, classNames.chip, classNames.rtl,\n classNames.multiSelection, classNames.singleSelection, classNames.disabled, classNames.chipWrapper, classNames.iconWrapper,\n classNames.active, classNames.focused].concat(this.cssClass.toString().split(' ').filter(function (css) { return css; })));\n this.removeMultipleAttributes(['tabindex', 'role', 'aria-label', 'aria-multiselectable'], this.element);\n this.wireEvent(true);\n this.rippleFunction();\n if (isBlazor()) {\n var chipChildElement = !this.chipType() ? this.element.querySelectorAll('.e-chip-text') :\n this.element.querySelectorAll('.e-chip');\n for (var i = 0; i < chipChildElement.length; i++) {\n if (chipChildElement[i] != null) {\n detach(chipChildElement[i]);\n }\n }\n }\n else {\n _super.prototype.destroy.call(this);\n this.element.innerHTML = '';\n this.element.innerText = this.innerText;\n }\n };\n ChipList.prototype.removeMultipleAttributes = function (attributes, element) {\n attributes.forEach(function (attr) {\n element.removeAttribute(attr);\n });\n };\n ChipList.prototype.getPersistData = function () {\n return this.addOnPersist([]);\n };\n ChipList.prototype.getModuleName = function () {\n return 'chip-list';\n };\n /**\n * Called internally if any of the property value changed.\n * @returns void\n * @private\n */\n ChipList.prototype.onPropertyChanged = function (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 'chips':\n case 'text':\n case 'avatarText':\n case 'avatarIconCss':\n case 'leadingIconCss':\n case 'trailingIconCss':\n case 'selection':\n case 'enableDelete':\n case 'enabled':\n if (!(isBlazor() && this.isServerRendered)) {\n this.isServerRendered = false;\n this.refresh();\n this.isServerRendered = true;\n }\n break;\n case 'cssClass':\n if (!(isBlazor() && this.isServerRendered)) {\n if (!this.chipType()) {\n removeClass([this.element], oldProp.cssClass.toString().split(' ').filter(function (css) { return css; }));\n addClass([this.element], newProp.cssClass.toString().split(' ').filter(function (css) { return css; }));\n }\n else {\n this.isServerRendered = false;\n this.refresh();\n this.isServerRendered = true;\n }\n }\n break;\n case 'selectedChips':\n removeClass(this.element.querySelectorAll('.e-active'), 'e-active');\n if (this.selection === 'Multiple') {\n this.multiSelectedChip = [];\n this.multiSelection(newProp.selectedChips);\n this.onSelect(this.multiSelectedChip, true);\n this.updateSelectedChips();\n }\n else {\n this.onSelect(newProp.selectedChips, true);\n }\n break;\n case 'enableRtl':\n this.setRtl();\n break;\n }\n }\n };\n __decorate([\n Property([])\n ], ChipList.prototype, \"chips\", void 0);\n __decorate([\n Property('')\n ], ChipList.prototype, \"text\", void 0);\n __decorate([\n Property('')\n ], ChipList.prototype, \"avatarText\", void 0);\n __decorate([\n Property('')\n ], ChipList.prototype, \"avatarIconCss\", void 0);\n __decorate([\n Property('')\n ], ChipList.prototype, \"leadingIconCss\", void 0);\n __decorate([\n Property('')\n ], ChipList.prototype, \"trailingIconCss\", void 0);\n __decorate([\n Property('')\n ], ChipList.prototype, \"leadingIconUrl\", void 0);\n __decorate([\n Property('')\n ], ChipList.prototype, \"trailingIconUrl\", void 0);\n __decorate([\n Property('')\n ], ChipList.prototype, \"cssClass\", void 0);\n __decorate([\n Property(true)\n ], ChipList.prototype, \"enabled\", void 0);\n __decorate([\n Property([])\n ], ChipList.prototype, \"selectedChips\", void 0);\n __decorate([\n Property('None')\n ], ChipList.prototype, \"selection\", void 0);\n __decorate([\n Property(false)\n ], ChipList.prototype, \"enableDelete\", void 0);\n __decorate([\n Event()\n ], ChipList.prototype, \"created\", void 0);\n __decorate([\n Event()\n ], ChipList.prototype, \"click\", void 0);\n __decorate([\n Event()\n ], ChipList.prototype, \"beforeClick\", void 0);\n __decorate([\n Event()\n ], ChipList.prototype, \"delete\", void 0);\n ChipList = __decorate([\n NotifyPropertyChanges\n ], ChipList);\n return ChipList;\n}(Component));\nexport { ChipList };\n","/**\n * Represents ChipList `Chip` model class.\n */\nvar Chip = /** @class */ (function () {\n function Chip() {\n }\n return Chip;\n}());\nexport { Chip };\n"],"names":["wrapperInitialize","createElement","tag","type","element","WRAPPER","role","input","tagName","ejInstance","getValue","attrs","props","index","len","attributes","length","indexOf","nodeName","setAttribute","nodeValue","class","aria-checked","appendChild","setValue","deleteObject","getTextNode","node","childnode","childNodes","i","nodeType","destroy","ejInst","wrapper","parentNode","insertBefore","detach","checked","forEach","key","removeAttribute","innerHTML","preRender","proxy","control","moduleName","getAttribute","id","getUniqueID","createCheckBox","enableRipple","options","className","cssClass","addClass","split","enableRtl","classList","add","rippleSpan","rippleEffect","isCenterRipple","duration","frameSpan","label","labelSpan","rippleMouseHandler","e","event_1","document","createEvent","initEvent","dispatchEvent","setHiddenInput","wrap","name","value","__extends","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__","this","constructor","prototype","create","__decorate","decorators","target","desc","c","arguments","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","buttonObserver","Observer","cssClassName","RTL","BUTTON","PRIMARY","ICONBTN","Button","_super","call","render","initialize","removeRippleEffect","selector","renderComplete","isPrimary","isBlazor","getModuleName","content","tempContent","SanitizeHtmlHelper","sanitize","setIconCss","disabled","controlStatus","wireEvents","iconCss","span","textContent","trim","iconPosition","toLowerCase","isToggle","EventHandler","btnClickHandler","unWireEvents","remove","contains","concat","removeClass","replace","querySelector","isRippleEnabled","getPersistData","addOnPersist","Inject","onPropertyChanged","newProp","oldProp","_i","_a","keys","isServerRendered","enableHtmlSanitizer","click","focusIn","focus","Property","Event","NotifyPropertyChanges","Component","FRAME","RIPPLE","containerAttr","CheckBox","_this","isFocused","isMouseClick","changeState","state","ariaState","getWrapper","getElementsByClassName","indeterminate","clickHandler","event","focusOutHandler","changeEventArgs","trigger","focusHandler","parentElement","isNullOrUndefined","initialCheckedValue","setDisabled","initWrapper","for","labelPosition","setText","keyUpHandler","labelMouseHandler","labelWrap","getElementsByTagName","updateHtmlAttributeToWrapper","formElement","closest","text","changeHandler","stopPropagation","formResetHandler","htmlAttributes","RadioButton","RadioButton_1","dataBind","updateChange","instance","radioGrp","getRadioGroup","getInstance","angularValue","radioWrap","getLabel","getSelectedValue","querySelectorAll","nextElementSibling","labelRippleHandler","formControlName","setProperties","textLabel","rippleLabel","Switch","isDrag","bar","handle","evt","initialSwitchCheckedValue","onLabel","offLabel","setLabel","switchInner","rippleHandler","currentTarget","which","rippleTouchHandler","eventType","onText","offText","switchFocusHandler","switchMouseUp","preventDefault","toggle","delegateMouseUpHandler","bind","delegateKeyUpHandler","classNames","chipSet","chip","avatar","icon","delete","deleteIcon","multiSelection","singleSelection","active","chipWrapper","iconWrapper","focused","rtl","ChipList","multiSelectedChip","chipType","chips","innerText","setAttributes","createChip","setRtl","select","selectedChips","wireEvent","rippleFunction","childElement","chipCreation","tabIndex","selection","data","chipListArray","fieldsData","getFieldValues","chipArray","elementCreation","enabled","avatarIconCss","avatarText","leadingIconCss","filter","css","join","aria-label","aria-selected","toString","append","push","chipEnabled","trailingIconCss","leadingIconUrl","trailingIconUrl","fields","chipAvatarElement","chipIconElement","style","backgroundImage","chipTextElement","enableDelete","chipdeleteElement","chipIconsElement","find","chipData","chipElement","HTMLElement","undefined","slice","chipsData","fieldData","apply","onSelect","items","j","k","callFromProperty","chipElements","selectionHandler","chipElements_1","chipCollection_1","deleteHandler","getSelectedChips","selectedItems","texts","Indexes","elements","selectedItem","unWireEvent","keyHandler","keyCode","focusInHandler","focusedElement","del","chipDataArgs","cancel","observedArgs","getElement","clickEventHandler","deletedItemArgs","selected","selectedItemArgs","clickedItemArgs","activeElement","updateSelectedChips","chipListEle","chipCollIndex","chipCollValue","selectedEle","allowServerDataBinding","splice","serverDataBind","removeMultipleAttributes","chipChildElement","attr","refresh","Chip"],"mappings":"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"}