File manager - Edit - /home/web/vm-3fadc827.na4u.ru/www/bitrix/modules/ui/install/js/ui/buttons/dist/ui.buttons.bundle.js.map
Back
{"version":3,"file":"ui.buttons.bundle.js","sources":["../src/button/button-tag.js","../src/base-button.js","../src/button/button-color.js","../src/button/button-size.js","../src/button/button-icon.js","../src/button/button-state.js","../src/button/button-style.js","../src/button/button.js","../src/split-button/split-button-state.js","../src/split-button/split-sub-button-type.js","../src/split-button/split-sub-button.js","../src/split-button/split-button.js","../src/button-manager.js","../src/ibutton.js","../src/button/presets/add-button.js","../src/button/presets/apply-button.js","../src/button/presets/cancel-button.js","../src/button/presets/close-button.js","../src/button/presets/create-button.js","../src/button/presets/save-button.js","../src/button/presets/send-button.js","../src/button/presets/settings-button.js","../src/split-button/presets/add-split-button.js","../src/split-button/presets/apply-split-button.js","../src/split-button/presets/cancel-split-button.js","../src/split-button/presets/close-split-button.js","../src/split-button/presets/create-split-button.js","../src/split-button/presets/save-split-button.js","../src/split-button/presets/send-split-button.js"],"sourcesContent":["/**\n * @namespace {BX.UI}\n */\nexport default class ButtonTag\n{\n\tstatic BUTTON = 0;\n\tstatic LINK = 1;\n\tstatic SUBMIT = 2;\n\tstatic INPUT = 3;\n\tstatic DIV = 4;\n\tstatic SPAN = 5;\n}","import type IButton from './ibutton';\nimport ButtonTag from './button/button-tag';\nimport { Type, Tag, Dom, Event } from 'main.core';\nimport { type BaseButtonOptions } from './base-button-options';\n\nexport default class BaseButton implements IButton\n{\n\tconstructor(options: BaseButtonOptions)\n\t{\n\t\toptions = Type.isPlainObject(options) ? options : {};\n\t\tthis.options = Object.assign(this.getDefaultOptions(), options);\n\n\t\t/**\n\t\t * 'buttonNode', 'textNode' and counterNode options use only in ButtonManager.createFromNode\n\t\t */\n\t\tthis.button = Type.isDomNode(this.options.buttonNode) ? this.options.buttonNode : null;\n\t\tthis.textNode = Type.isDomNode(this.options.textNode) ? this.options.textNode : null;\n\t\tthis.counterNode = Type.isDomNode(this.options.counterNode) ? this.options.counterNode : null;\n\n\t\tthis.text = '';\n\t\tthis.counter = null;\n\t\tthis.events = {};\n\t\tthis.link = '';\n\t\tthis.maxWidth = null;\n\n\t\tthis.tag = this.isEnumValue(this.options.tag, ButtonTag) ? this.options.tag : ButtonTag.BUTTON;\n\t\tif (Type.isStringFilled(this.options.link))\n\t\t{\n\t\t\tthis.tag = ButtonTag.LINK;\n\t\t}\n\n\t\tthis.baseClass = Type.isStringFilled(this.options.baseClass) ? this.options.baseClass : '';\n\t\tthis.disabled = false;\n\n\t\tthis.handleEvent = this.handleEvent.bind(this);\n\n\t\tthis.init(); // needs to initialize private properties in derived classes.\n\n\t\tif (this.options.disabled === true)\n\t\t{\n\t\t\tthis.setDisabled();\n\t\t}\n\n\t\tthis.setText(this.options.text);\n\t\tthis.setCounter(this.options.counter);\n\t\tthis.setProps(this.options.props);\n\t\tthis.setDataSet(this.options.dataset);\n\t\tthis.addClass(this.options.className);\n\t\tthis.setLink(this.options.link);\n\t\tthis.setMaxWidth(this.options.maxWidth);\n\n\t\tthis.bindEvent('click', this.options.onclick);\n\t\tthis.bindEvents(this.options.events);\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tinit(): void\n\t{\n\t\t// needs to initialize private properties in derived classes.\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tgetDefaultOptions(): Object\n\t{\n\t\treturn {};\n\t}\n\n\t/**\n\t * @public\n\t * @return {HTMLElement}\n\t */\n\trender(): HTMLElement\n\t{\n\t\treturn this.getContainer();\n\t}\n\n\t/**\n\t * @public\n\t * @param {HTMLElement} node\n\t * @return {?HTMLElement}\n\t */\n\trenderTo(node: HTMLElement): HTMLElement | null\n\t{\n\t\tif (Type.isDomNode(node))\n\t\t{\n\t\t\treturn node.appendChild(this.getContainer());\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * @public\n\t * @return {HTMLElement}\n\t */\n\tgetContainer(): HTMLElement\n\t{\n\t\tif (this.button !== null)\n\t\t{\n\t\t\treturn this.button;\n\t\t}\n\n\t\tswitch (this.getTag())\n\t\t{\n\t\t\tcase ButtonTag.BUTTON:\n\t\t\tdefault:\n\t\t\t\tthis.button = Tag.render`<button class=\"${this.getBaseClass()}\"></button>`;\n\t\t\t\tbreak;\n\t\t\tcase ButtonTag.INPUT:\n\t\t\t\tthis.button = Tag.render`<input class=\"${this.getBaseClass()}\" type=\"button\">`;\n\t\t\t\tbreak;\n\t\t\tcase ButtonTag.LINK:\n\t\t\t\tthis.button = Tag.render`<a class=\"${this.getBaseClass()}\" href=\"\"></a>`;\n\t\t\t\tbreak;\n\t\t\tcase ButtonTag.SUBMIT:\n\t\t\t\tthis.button = Tag.render`<input class=\"${this.getBaseClass()}\" type=\"submit\">`;\n\t\t\t\tbreak;\n\t\t\tcase ButtonTag.DIV:\n\t\t\t\tthis.button = Tag.render`<div class=\"${this.getBaseClass()}\"></div>`;\n\t\t\t\tbreak;\n\t\t\tcase ButtonTag.SPAN:\n\t\t\t\tthis.button = Tag.render`<span class=\"${this.getBaseClass()}\"></span>`;\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn this.button;\n\t}\n\n\t/**\n\t * @protected\n\t * @return {string}\n\t */\n\tgetBaseClass(): string\n\t{\n\t\treturn this.baseClass;\n\t}\n\n\t/**\n\t * @public\n\t * @param {string} text\n\t * @return {this}\n\t */\n\tsetText(text: string): this\n\t{\n\t\tif (Type.isString(text))\n\t\t{\n\t\t\tthis.text = text;\n\n\t\t\tif (this.isInputType())\n\t\t\t{\n\t\t\t\tthis.getContainer().value = text;\n\t\t\t}\n\t\t\telse if (text.length > 0)\n\t\t\t{\n\t\t\t\tif (this.textNode === null)\n\t\t\t\t{\n\t\t\t\t\tthis.textNode = Tag.render`<span class=\"ui-btn-text\"></span>`;\n\t\t\t\t}\n\n\t\t\t\tif (!this.textNode.parentNode)\n\t\t\t\t{\n\t\t\t\t\tDom.prepend(this.textNode, this.getContainer());\n\t\t\t\t}\n\n\t\t\t\tthis.textNode.textContent = text;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (this.textNode !== null)\n\t\t\t\t{\n\t\t\t\t\tDom.remove(this.textNode);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @return {string}\n\t */\n\tgetText(): string\n\t{\n\t\treturn this.text;\n\t}\n\n\t/**\n\t *\n\t * @param {number | string} counter\n\t * @return {this}\n\t */\n\tsetCounter(counter: number | string): this\n\t{\n\t\tif ([0, '0', '', null, false].includes(counter))\n\t\t{\n\t\t\tif (this.counterNode !== null)\n\t\t\t{\n\t\t\t\tDom.remove(this.counterNode);\n\t\t\t\tthis.counterNode = null;\n\t\t\t}\n\n\t\t\tthis.counter = null;\n\t\t}\n\t\telse if ((Type.isNumber(counter) && counter > 0) || Type.isStringFilled(counter))\n\t\t{\n\t\t\tif (this.isInputType())\n\t\t\t{\n\t\t\t\tthrow new Error('BX.UI.Button: an input button cannot have a counter.');\n\t\t\t}\n\n\t\t\tif (this.counterNode === null)\n\t\t\t{\n\t\t\t\tthis.counterNode = Tag.render`<span class=\"ui-btn-counter\"></span>`;\n\t\t\t\tDom.append(this.counterNode, this.getContainer());\n\t\t\t}\n\n\t\t\tthis.counter = counter;\n\t\t\tthis.counterNode.textContent = counter;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t *\n\t * @return {number | string | null}\n\t */\n\tgetCounter(): number | string | null\n\t{\n\t\treturn this.counter;\n\t}\n\n\t/**\n\t *\n\t * @param {string} link\n\t * @return {this}\n\t */\n\tsetLink(link: string): this\n\t{\n\t\tif (Type.isString(link))\n\t\t{\n\t\t\tif (this.getTag() !== ButtonTag.LINK)\n\t\t\t{\n\t\t\t\tthrow new Error('BX.UI.Button: only an anchor button tag supports a link.');\n\t\t\t}\n\n\t\t\tthis.getContainer().href = link;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t *\n\t * @return {string}\n\t */\n\tgetLink(): string\n\t{\n\t\treturn this.getContainer().href;\n\t}\n\n\tsetMaxWidth(maxWidth: number): this\n\t{\n\t\tif (Type.isNumber(maxWidth) && maxWidth > 0)\n\t\t{\n\t\t\tthis.maxWidth = maxWidth;\n\t\t\tthis.getContainer().style.maxWidth = `${maxWidth}px`;\n\t\t}\n\t\telse if (maxWidth === null)\n\t\t{\n\t\t\tthis.getContainer().style.removeProperty('max-width');\n\t\t\tthis.maxWidth = null;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetMaxWidth(): number | null\n\t{\n\t\treturn this.maxWidth;\n\t}\n\n\t/**\n\t * @public\n\t * @return {ButtonTag}\n\t */\n\tgetTag(): ButtonTag\n\t{\n\t\treturn this.tag;\n\t}\n\n\t/**\n\t * @public\n\t * @param {object.<string, string>} props\n\t * @return {this}\n\t */\n\tsetProps(props: { [propertyName: string]: string }): this\n\t{\n\t\tif (!Type.isPlainObject(props))\n\t\t{\n\t\t\treturn this;\n\t\t}\n\n\t\tfor (let propName in props)\n\t\t{\n\t\t\tconst propValue = props[propName];\n\t\t\tDom.attr(this.getContainer(), propName, propValue);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @return {object.<string, string>}\n\t */\n\tgetProps(): { [propertyName: string]: string }\n\t{\n\t\tconst attrs = this.getContainer().attributes;\n\t\tconst result = {};\n\t\tconst reserved = this.isInputType() ? ['class', 'type'] : ['class'];\n\n\t\tfor (let i = 0; i < attrs.length; i++)\n\t\t{\n\t\t\tconst { name, value } = attrs[i];\n\t\t\tif (reserved.includes(name) || name.startsWith('data-'))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tresult[name] = value;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * @public\n\t * @param {object.<string, string>} props\n\t * @return {this}\n\t */\n\tsetDataSet(props: { [propertyName: string]: string }): this\n\t{\n\t\tif (!Type.isPlainObject(props))\n\t\t{\n\t\t\treturn this;\n\t\t}\n\n\t\tfor (let propName in props)\n\t\t{\n\t\t\tconst propValue = props[propName];\n\t\t\tif (propValue === null)\n\t\t\t{\n\t\t\t\tdelete this.getDataSet()[propName];\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.getDataSet()[propName] = propValue;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @return {DOMStringMap}\n\t */\n\tgetDataSet(): DOMStringMap\n\t{\n\t\treturn this.getContainer().dataset;\n\t}\n\n\t/**\n\t * @public\n\t * @param {string} className\n\t * @return {this}\n\t */\n\taddClass(className: string): this\n\t{\n\t\tif (Type.isStringFilled(className))\n\t\t{\n\t\t\tDom.addClass(this.getContainer(), className);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @param {string} className\n\t * @return {this}\n\t */\n\tremoveClass(className: string): this\n\t{\n\t\tif (Type.isStringFilled(className))\n\t\t{\n\t\t\tDom.removeClass(this.getContainer(), className);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @param {boolean} [flag=true]\n\t * @return {this}\n\t */\n\tsetDisabled(flag?: boolean): this\n\t{\n\t\tif (flag === false)\n\t\t{\n\t\t\tthis.disabled = false;\n\t\t\tthis.setProps({ disabled: null });\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.disabled = true;\n\t\t\tthis.setProps({ disabled: true });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t *\n\t * @return {boolean}\n\t */\n\tisDisabled(): boolean\n\t{\n\t\treturn this.disabled;\n\t}\n\n\t/**\n\t * @public\n\t * @return {boolean}\n\t */\n\tisInputType(): boolean\n\t{\n\t\treturn this.getTag() === ButtonTag.SUBMIT || this.getTag() === ButtonTag.INPUT;\n\t}\n\n\t/**\n\t * @public\n\t * @param {object.<string, function>} events\n\t * @return {this}\n\t */\n\tbindEvents(events: { [event: string]: (button: this, event: MouseEvent) => {} }): this\n\t{\n\t\tif (Type.isPlainObject(events))\n\t\t{\n\t\t\tfor (let eventName in events)\n\t\t\t{\n\t\t\t\tconst fn = events[eventName];\n\t\t\t\tthis.bindEvent(eventName, fn);\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @param {string[]} events\n\t * @return {this}\n\t */\n\tunbindEvents(events: string[]): this\n\t{\n\t\tif (Type.isArray(events))\n\t\t{\n\t\t\tevents.forEach(eventName => {\n\t\t\t\tthis.unbindEvent(eventName);\n\t\t\t});\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @param {string} eventName\n\t * @param {function} fn\n\t * @return {this}\n\t */\n\tbindEvent(eventName: string, fn: (button: this, event: MouseEvent) => {}): this\n\t{\n\t\tif (Type.isStringFilled(eventName) && Type.isFunction(fn))\n\t\t{\n\t\t\tthis.unbindEvent(eventName);\n\t\t\tthis.events[eventName] = fn;\n\t\t\tEvent.bind(this.getContainer(), eventName, this.handleEvent);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @param {string} eventName\n\t * @return {this}\n\t */\n\tunbindEvent(eventName: string): this\n\t{\n\t\tif (this.events[eventName])\n\t\t{\n\t\t\tdelete this.events[eventName];\n\t\t\tEvent.unbind(this.getContainer(), eventName, this.handleEvent);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @private\n\t * @param {MouseEvent} event\n\t */\n\thandleEvent(event)\n\t{\n\t\tconst eventName = event.type;\n\t\tif (this.events[eventName])\n\t\t{\n\t\t\tconst fn = this.events[eventName];\n\t\t\tfn.call(this, this, event);\n\t\t}\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tisEnumValue(value, enumeration): boolean\n\t{\n\t\tfor (let code in enumeration)\n\t\t{\n\t\t\tif (enumeration[code] === value)\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n}","/**\n * @namespace {BX.UI}\n */\nexport default class ButtonColor\n{\n\tstatic DANGER = 'ui-btn-danger';\n\tstatic DANGER_DARK = 'ui-btn-danger-dark';\n\tstatic DANGER_LIGHT = 'ui-btn-danger-light';\n\tstatic SUCCESS = 'ui-btn-success';\n\tstatic SUCCESS_DARK = 'ui-btn-success-dark';\n\tstatic SUCCESS_LIGHT = 'ui-btn-success-light';\n\tstatic PRIMARY_DARK = 'ui-btn-primary-dark';\n\tstatic PRIMARY = 'ui-btn-primary';\n\tstatic SECONDARY = 'ui-btn-secondary';\n\tstatic LINK = 'ui-btn-link';\n\tstatic LIGHT = 'ui-btn-light';\n\tstatic LIGHT_BORDER = 'ui-btn-light-border';\n}","/**\n * @namespace {BX.UI}\n */\nexport default class ButtonSize\n{\n\tstatic LARGE = 'ui-btn-lg';\n\tstatic MEDIUM = 'ui-btn-md';\n\tstatic SMALL = 'ui-btn-sm';\n\tstatic EXTRA_SMALL = 'ui-btn-xs';\n}","/**\n * @namespace {BX.UI}\n */\nexport default class ButtonIcon\n{\n\tstatic UNFOLLOW = 'ui-btn-icon-unfollow';\n\tstatic FOLLOW = 'ui-btn-icon-follow';\n\tstatic ADD = 'ui-btn-icon-add';\n\tstatic STOP = 'ui-btn-icon-stop';\n\tstatic START = 'ui-btn-icon-start';\n\tstatic PAUSE = 'ui-btn-icon-pause';\n\tstatic ADD_FOLDER = 'ui-btn-icon-add-folder';\n\tstatic SETTING = 'ui-btn-icon-setting';\n\tstatic TASK = 'ui-btn-icon-task';\n\tstatic INFO = 'ui-btn-icon-info';\n\tstatic SEARCH = 'ui-btn-icon-search';\n\tstatic PRINT = 'ui-btn-icon-print';\n\tstatic LIST = 'ui-btn-icon-list';\n\tstatic BUSINESS = 'ui-btn-icon-business';\n\tstatic BUSINESS_CONFIRM = 'ui-btn-icon-business-confirm';\n\tstatic BUSINESS_WARNING = 'ui-btn-icon-business-warning';\n\tstatic CAMERA = 'ui-btn-icon-camera';\n\tstatic PHONE_UP = 'ui-btn-icon-phone-up';\n\tstatic PHONE_DOWN = 'ui-btn-icon-phone-down';\n\tstatic PHONE_CALL = 'ui-btn-icon-phone-call';\n\tstatic BACK = 'ui-btn-icon-back';\n\tstatic REMOVE = 'ui-btn-icon-remove';\n\tstatic DOWNLOAD = 'ui-btn-icon-download';\n\tstatic DOTS = 'ui-btn-icon-ui-btn-icon-dots';\n\tstatic DONE = 'ui-btn-icon-done';\n\tstatic DISK = 'ui-btn-icon-disk';\n\tstatic LOCK = 'ui-btn-icon-lock';\n\tstatic MAIL = 'ui-btn-icon-mail';\n\tstatic CHAT = 'ui-btn-icon-chat';\n\tstatic PAGE = 'ui-btn-icon-page';\n\tstatic CLOUD = 'ui-btn-icon-cloud';\n\tstatic EDIT = 'ui-btn-icon-edit';\n\tstatic SHARE = 'ui-btn-icon-share';\n\tstatic ANGLE_UP = 'ui-btn-icon-angle-up';\n\tstatic ANGLE_DOWN = 'ui-btn-icon-angle-down';\n\tstatic EYE_OPENED = 'ui-btn-icon-eye-opened';\n\tstatic EYE_CLOSED = 'ui-btn-icon-eye-closed';\n\tstatic ALERT = 'ui-btn-icon-alert';\n\tstatic FAIL = 'ui-btn-icon-fail';\n\tstatic SUCCESS = 'ui-btn-icon-success';\n\tstatic PLAN = 'ui-btn-icon-plan';\n\tstatic TARIFF = 'ui-btn-icon-tariff';\n\tstatic BATTERY = 'ui-btn-icon-battery';\n\tstatic NO_BATTERY = 'ui-btn-icon-no-battery';\n\tstatic HALF_BATTERY = 'ui-btn-icon-half-battery';\n\tstatic LOW_BATTERY = 'ui-btn-icon-low-battery';\n\tstatic CRIT_BATTERY = 'ui-btn-icon-crit-battery';\n\tstatic DEMO = 'ui-btn-icon-demo';\n}","/**\n * @namespace {BX.UI}\n */\nexport default class ButtonState\n{\n\tstatic HOVER = 'ui-btn-hover';\n\tstatic ACTIVE = 'ui-btn-active';\n\tstatic DISABLED = 'ui-btn-disabled';\n\tstatic CLOCKING = 'ui-btn-clock';\n\tstatic WAITING = 'ui-btn-wait';\n}","/**\n * @namespace {BX.UI}\n */\nexport default class ButtonStyle\n{\n\tstatic NO_CAPS = 'ui-btn-no-caps';\n\tstatic ROUND = 'ui-btn-round';\n\tstatic DROPDOWN = 'ui-btn-dropdown';\n\tstatic COLLAPSED = 'ui-btn-collapsed';\n}","import BaseButton from '../base-button';\nimport { Menu } from 'main.popup';\nimport { Type, Dom, Text, Event } from 'main.core';\nimport ButtonColor from './button-color';\nimport ButtonSize from './button-size';\nimport ButtonIcon from './button-icon';\nimport ButtonState from './button-state';\nimport ButtonStyle from './button-style';\nimport ButtonTag from './button-tag';\nimport { ButtonOptions } from './button-options';\nimport { type MenuOptions } from 'main.popup';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class Button extends BaseButton\n{\n\tstatic BASE_CLASS = 'ui-btn';\n\n\tconstructor(options: ButtonOptions)\n\t{\n\t\toptions = Type.isPlainObject(options) ? options : {};\n\t\toptions.baseClass = Type.isStringFilled(options.baseClass) ? options.baseClass : Button.BASE_CLASS;\n\n\t\tsuper(options);\n\n\t\tthis.size = null;\n\t\tthis.color = null;\n\t\tthis.icon = null;\n\t\tthis.state = null;\n\t\tthis.id = null;\n\t\tthis.context = null;\n\n\t\tthis.menuWindow = null;\n\t\tthis.handleMenuClick = this.handleMenuClick.bind(this);\n\t\tthis.handleMenuClose = this.handleMenuClose.bind(this);\n\n\t\tthis.setSize(this.options.size);\n\t\tthis.setColor(this.options.color);\n\t\tthis.setIcon(this.options.icon);\n\t\tthis.setState(this.options.state);\n\t\tthis.setId(this.options.id);\n\t\tthis.setMenu(this.options.menu);\n\t\tthis.setContext(this.options.context);\n\n\t\tthis.options.noCaps && this.setNoCaps();\n\t\tthis.options.round && this.setRound();\n\n\t\tif (this.options.dropdown || (this.getMenuWindow() && this.options.dropdown !== false))\n\t\t{\n\t\t\tthis.setDropdown();\n\t\t}\n\t}\n\n\tstatic Size = ButtonSize;\n\tstatic Color = ButtonColor;\n\tstatic State = ButtonState;\n\tstatic Icon = ButtonIcon;\n\tstatic Tag = ButtonTag;\n\tstatic Style = ButtonStyle;\n\n\t/**\n\t * @public\n\t * @param {ButtonSize|null} size\n\t * @return {this}\n\t */\n\tsetSize(size: ButtonSize | null): this\n\t{\n\t\treturn this.setProperty('size', size, ButtonSize);\n\t}\n\n\t/**\n\t * @public\n\t * @return {?ButtonSize}\n\t */\n\tgetSize(): ButtonSize | null\n\t{\n\t\treturn this.size;\n\t}\n\n\t/**\n\t * @public\n\t * @param {ButtonColor|null} color\n\t * @return {this}\n\t */\n\tsetColor(color: ButtonColor | null): this\n\t{\n\t\treturn this.setProperty('color', color, ButtonColor);\n\t}\n\n\t/**\n\t * @public\n\t * @return {?ButtonSize}\n\t */\n\tgetColor(): ButtonColor | null\n\t{\n\t\treturn this.color;\n\t}\n\n\t/**\n\t * @public\n\t * @param {?ButtonIcon} icon\n\t * @return {this}\n\t */\n\tsetIcon(icon: ButtonIcon | null): this\n\t{\n\t\tthis.setProperty('icon', icon, ButtonIcon);\n\n\t\tif (this.isInputType() && this.getIcon() !== null)\n\t\t{\n\t\t\tthrow new Error('BX.UI.Button: Input type button cannot have an icon.');\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @return {?ButtonIcon}\n\t */\n\tgetIcon(): ButtonColor | null\n\t{\n\t\treturn this.icon;\n\t}\n\n\t/**\n\t * @public\n\t * @param {ButtonState|null} state\n\t * @return {this}\n\t */\n\tsetState(state: ButtonState | null): this\n\t{\n\t\treturn this.setProperty('state', state, ButtonState);\n\t}\n\n\t/**\n\t * @public\n\t * @return {?ButtonState}\n\t */\n\tgetState(): ButtonState | null\n\t{\n\t\treturn this.state;\n\t}\n\n\t/**\n\t * @public\n\t * @param {boolean} [flag=true]\n\t * @return {this}\n\t */\n\tsetNoCaps(flag: ? boolean): this\n\t{\n\t\tif (flag === false)\n\t\t{\n\t\t\tDom.removeClass(this.getContainer(), ButtonStyle.NO_CAPS);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(this.getContainer(), ButtonStyle.NO_CAPS);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t *\n\t * @return {boolean}\n\t */\n\tisNoCaps(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getContainer(), ButtonStyle.NO_CAPS);\n\t}\n\n\t/**\n\t * @public\n\t * @param {boolean} [flag=true]\n\t * @return {this}\n\t */\n\tsetRound(flag: ? boolean): this\n\t{\n\t\tif (flag === false)\n\t\t{\n\t\t\tDom.removeClass(this.getContainer(), ButtonStyle.ROUND);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(this.getContainer(), ButtonStyle.ROUND);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @return {boolean}\n\t */\n\tisRound(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getContainer(), ButtonStyle.ROUND);\n\t}\n\n\t/**\n\t *\n\t * @param {boolean} [flag=true]\n\t * @return {this}\n\t */\n\tsetDropdown(flag: ? boolean): this\n\t{\n\t\tif (flag === false)\n\t\t{\n\t\t\tDom.removeClass(this.getContainer(), ButtonStyle.DROPDOWN);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(this.getContainer(), ButtonStyle.DROPDOWN);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t *\n\t * @return {boolean}\n\t */\n\tisDropdown(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getContainer(), ButtonStyle.DROPDOWN);\n\t}\n\n\t/**\n\t *\n\t * @param {boolean} [flag=true]\n\t * @return {this}\n\t */\n\tsetCollapsed(flag: ? boolean): this\n\t{\n\t\tif (flag === false)\n\t\t{\n\t\t\tDom.removeClass(this.getContainer(), ButtonStyle.COLLAPSED);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tDom.addClass(this.getContainer(), ButtonStyle.COLLAPSED);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t *\n\t * @return {boolean}\n\t */\n\tisCollapsed(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getContainer(), ButtonStyle.COLLAPSED);\n\t}\n\n\t/**\n\t * @protected\n\t * @param {MenuOptions|false} options\n\t */\n\tsetMenu(options: MenuOptions): this\n\t{\n\t\tif (Type.isPlainObject(options) && Type.isArray(options.items) && options.items.length > 0)\n\t\t{\n\t\t\tthis.setMenu(false);\n\n\t\t\tthis.menuWindow = new Menu({\n\t\t\t\tid: `ui-btn-menu-${Text.getRandom().toLowerCase()}`,\n\t\t\t\tbindElement: this.getMenuBindElement(),\n\t\t\t\t...options\n\t\t\t});\n\n\t\t\tthis.menuWindow.getPopupWindow().subscribe('onClose', this.handleMenuClose);\n\t\t\tEvent.bind(this.getMenuClickElement(), 'click', this.handleMenuClick);\n\t\t}\n\t\telse if (options === false && this.menuWindow !== null)\n\t\t{\n\t\t\tthis.menuWindow.close();\n\n\t\t\tthis.menuWindow.getPopupWindow().unsubscribe('onClose', this.handleMenuClose);\n\t\t\tEvent.unbind(this.getMenuClickElement(), 'click', this.handleMenuClick);\n\n\t\t\tthis.menuWindow.destroy();\n\t\t\tthis.menuWindow = null;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @return {HTMLElement}\n\t */\n\tgetMenuBindElement(): HTMLElement\n\t{\n\t\treturn this.getContainer();\n\t}\n\n\t/**\n\t * @public\n\t * @return {HTMLElement}\n\t */\n\tgetMenuClickElement(): HTMLElement\n\t{\n\t\treturn this.getContainer();\n\t}\n\n\t/**\n\t * @protected\n\t * @param {MouseEvent} event\n\t */\n\thandleMenuClick(event: MouseEvent): void\n\t{\n\t\tthis.getMenuWindow().show();\n\t\tthis.setActive(this.getMenuWindow().getPopupWindow().isShown());\n\t}\n\n\t/**\n\t * @protected\n\t */\n\thandleMenuClose(): void\n\t{\n\t\tthis.setActive(false);\n\t}\n\n\t/**\n\t * @public\n\t * @return {Menu}\n\t */\n\tgetMenuWindow(): Menu\n\t{\n\t\treturn this.menuWindow;\n\t}\n\n\t/**\n\t * @public\n\t * @param {string|null} id\n\t * @return {this}\n\t */\n\tsetId(id: string | null): this\n\t{\n\t\tif (Type.isStringFilled(id) || Type.isNull(id))\n\t\t{\n\t\t\tthis.id = id;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @return {?string}\n\t */\n\tgetId(): ?string\n\t{\n\t\treturn this.id;\n\t}\n\n\t/**\n\t * @public\n\t * @param {boolean} [flag=true]\n\t * @return {this}\n\t */\n\tsetActive(flag?: boolean): this\n\t{\n\t\treturn this.setState(flag === false ? null : ButtonState.ACTIVE);\n\t}\n\n\t/**\n\t * @public\n\t * @return {boolean}\n\t */\n\tisActive(): boolean\n\t{\n\t\treturn this.getState() === ButtonState.ACTIVE;\n\t}\n\n\t/**\n\t * @public\n\t * @param {boolean} [flag=true]\n\t * @return {this}\n\t */\n\tsetHovered(flag?: boolean): this\n\t{\n\t\treturn this.setState(flag === false ? null : ButtonState.HOVER);\n\t}\n\n\t/**\n\t * @public\n\t * @return {boolean}\n\t */\n\tisHover(): boolean\n\t{\n\t\treturn this.getState() === ButtonState.HOVER;\n\t}\n\n\t/**\n\t * @public\n\t * @param {boolean} [flag=true]\n\t * @return {this}\n\t */\n\tsetDisabled(flag): this\n\t{\n\t\tthis.setState(flag === false ? null : ButtonState.DISABLED);\n\t\tsuper.setDisabled(flag);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @return {boolean}\n\t */\n\tisDisabled(): boolean\n\t{\n\t\treturn this.getState() === ButtonState.DISABLED;\n\t}\n\n\t/**\n\t * @public\n\t * @param {boolean} [flag=true]\n\t * @return {this}\n\t */\n\tsetWaiting(flag: ? boolean): this\n\t{\n\t\tif (flag === false)\n\t\t{\n\t\t\tthis.setState(null);\n\t\t\tthis.setProps({ disabled: null });\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.setState(ButtonState.WAITING);\n\t\t\tthis.setProps({ disabled: true });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @return {boolean}\n\t */\n\tisWaiting(): boolean\n\t{\n\t\treturn this.getState() === ButtonState.WAITING;\n\t}\n\n\t/**\n\t * @public\n\t * @param {boolean} [flag=true]\n\t * @return {this}\n\t */\n\tsetClocking(flag?: boolean): this\n\t{\n\t\tif (flag === false)\n\t\t{\n\t\t\tthis.setState(null);\n\t\t\tthis.setProps({ disabled: null });\n\t\t}\n\t\telse\n\t\t{\n\t\t\tthis.setState(ButtonState.CLOCKING);\n\t\t\tthis.setProps({ disabled: true });\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @return {boolean}\n\t */\n\tisClocking(): boolean\n\t{\n\t\treturn this.getState() === ButtonState.CLOCKING;\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tsetProperty(property: string, value?: any, enumeration: Object): this\n\t{\n\t\tif (this.isEnumValue(value, enumeration))\n\t\t{\n\t\t\tDom.removeClass(this.getContainer(), this[property]);\n\t\t\tDom.addClass(this.getContainer(), value);\n\t\t\tthis[property] = value;\n\t\t}\n\t\telse if (value === null)\n\t\t{\n\t\t\tDom.removeClass(this.getContainer(), this[property]);\n\t\t\tthis[property] = null;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @param {*} context\n\t */\n\tsetContext(context: any): this\n\t{\n\t\tif (!Type.isUndefined(context))\n\t\t{\n\t\t\tthis.context = context;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t *\n\t * @return {*}\n\t */\n\tgetContext(): any\n\t{\n\t\treturn this.context;\n\t}\n}\n","/**\n * @namespace {BX.UI}\n */\nexport default class SplitButtonState\n{\n\tstatic HOVER = 'ui-btn-hover';\n\tstatic MAIN_HOVER = 'ui-btn-main-hover';\n\tstatic MENU_HOVER = 'ui-btn-menu-hover';\n\tstatic ACTIVE = 'ui-btn-active';\n\tstatic MAIN_ACTIVE = 'ui-btn-main-active';\n\tstatic MENU_ACTIVE = 'ui-btn-menu-active';\n\tstatic DISABLED = 'ui-btn-disabled';\n\tstatic MAIN_DISABLED = 'ui-btn-main-disabled';\n\tstatic MENU_DISABLED = 'ui-btn-menu-disabled';\n\tstatic CLOCKING = 'ui-btn-clock';\n\tstatic WAITING = 'ui-btn-wait';\n}","/**\n * @namespace {BX.UI}\n */\nexport default class SplitSubButtonType\n{\n\tstatic MAIN = 'ui-btn-main';\n\tstatic MENU = 'ui-btn-menu';\n}","import BaseButton from '../base-button';\nimport SplitButtonState from './split-button-state';\nimport SplitSubButtonType from './split-sub-button-type';\nimport type SplitButton from './split-button';\nimport { Type } from 'main.core';\nimport type { SplitSubButtonOptions } from './split-sub-button-options';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class SplitSubButton extends BaseButton\n{\n\tconstructor(options: SplitSubButtonOptions)\n\t{\n\t\toptions = Type.isPlainObject(options) ? options : {};\n\t\toptions.baseClass =\n\t\t\toptions.buttonType === SplitSubButtonType.MAIN\n\t\t\t\t? SplitSubButtonType.MAIN\n\t\t\t\t: SplitSubButtonType.MENU\n\t\t;\n\n\t\tsuper(options);\n\n\t\tif (this.isInputType())\n\t\t{\n\t\t\tthrow new Error('BX.UI.SplitSubButton: Split button cannot be an input tag.');\n\t\t}\n\t}\n\n\tstatic Type = SplitSubButtonType;\n\n\tinit(): void\n\t{\n\t\tthis.buttonType = this.options.buttonType;\n\t\tthis.splitButton = this.options.splitButton;\n\n\t\tsuper.init();\n\t}\n\n\t/**\n\t * @public\n\t * @return {SplitButton}\n\t */\n\tgetSplitButton(): SplitButton\n\t{\n\t\treturn this.splitButton;\n\t}\n\n\t/**\n\t * @public\n\t * @return {boolean}\n\t */\n\tisMainButton(): boolean\n\t{\n\t\treturn this.buttonType === SplitSubButtonType.MAIN;\n\t}\n\n\t/**\n\t * @public\n\t * @return {boolean}\n\t */\n\tisMenuButton(): boolean\n\t{\n\t\treturn this.buttonType === SplitSubButtonType.MENU;\n\t}\n\n\tsetText(text: string): this\n\t{\n\t\tif (Type.isString(text) && this.isMenuButton())\n\t\t{\n\t\t\tthrow new Error('BX.UI.SplitButton: a menu button doesn\\'t support a text caption.');\n\t\t}\n\n\t\treturn super.setText(text);\n\t}\n\n\t/**\n\t * @public\n\t * @param {boolean} [flag=true]\n\t * @return {this}\n\t */\n\tsetActive(flag?: boolean): this\n\t{\n\t\tthis.toggleState(\n\t\t\tflag,\n\t\t\tSplitButtonState.ACTIVE,\n\t\t\tSplitButtonState.MAIN_ACTIVE,\n\t\t\tSplitButtonState.MENU_ACTIVE\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @return {boolean}\n\t */\n\tisActive(): boolean\n\t{\n\t\tconst state = this.getSplitButton().getState();\n\t\tif (state === SplitButtonState.ACTIVE)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.isMainButton())\n\t\t{\n\t\t\treturn state === SplitButtonState.MAIN_ACTIVE;\n\t\t}\n\n\t\treturn state === SplitButtonState.MENU_ACTIVE;\n\t}\n\n\t/**\n\t * @public\n\t * @param {boolean} [flag=true]\n\t * @return {this}\n\t */\n\tsetDisabled(flag?: boolean): this\n\t{\n\t\tthis.toggleState(\n\t\t\tflag,\n\t\t\tSplitButtonState.DISABLED,\n\t\t\tSplitButtonState.MAIN_DISABLED,\n\t\t\tSplitButtonState.MENU_DISABLED\n\t\t);\n\n\t\tsuper.setDisabled(flag);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @param {boolean} flag\n\t * @return {this}\n\t */\n\tsetHovered(flag): this\n\t{\n\t\tthis.toggleState(\n\t\t\tflag,\n\t\t\tSplitButtonState.HOVER,\n\t\t\tSplitButtonState.MAIN_HOVER,\n\t\t\tSplitButtonState.MENU_HOVER\n\t\t);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @return {boolean}\n\t */\n\tisHovered(): boolean\n\t{\n\t\tconst state = this.getSplitButton().getState();\n\t\tif (state === SplitButtonState.HOVER)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.isMainButton())\n\t\t{\n\t\t\treturn state === SplitButtonState.MAIN_HOVER;\n\t\t}\n\n\t\treturn state === SplitButtonState.MENU_HOVER;\n\t}\n\n\t/**\n\t * @private\n\t * @param flag\n\t * @param globalState\n\t * @param mainState\n\t * @param menuState\n\t */\n\ttoggleState(flag, globalState, mainState, menuState)\n\t{\n\t\tconst state = this.getSplitButton().getState();\n\t\tif (flag === false)\n\t\t{\n\t\t\tif (state === globalState)\n\t\t\t{\n\t\t\t\tthis.getSplitButton().setState(this.isMainButton() ? menuState : mainState);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.getSplitButton().setState(null);\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (state === mainState && this.isMenuButton())\n\t\t\t{\n\t\t\t\tthis.getSplitButton().setState(globalState);\n\t\t\t}\n\t\t\telse if (state === menuState && this.isMainButton())\n\t\t\t{\n\t\t\t\tthis.getSplitButton().setState(globalState);\n\t\t\t}\n\t\t\telse if (state !== globalState)\n\t\t\t{\n\t\t\t\tthis.getSplitButton().setState(this.isMainButton() ? mainState : menuState);\n\t\t\t}\n\t\t}\n\t}\n}","import Button from '../button/button';\nimport SplitSubButton from './split-sub-button';\nimport SplitButtonState from './split-button-state';\nimport ButtonState from '../button/button-state';\nimport { Type, Tag } from 'main.core';\nimport SplitSubButtonType from './split-sub-button-type';\nimport type { SplitButtonOptions } from './split-button-options';\nimport ButtonTag from '../button/button-tag';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class SplitButton extends Button\n{\n\tstatic BASE_CLASS = 'ui-btn-split';\n\n\tconstructor(options: SplitButtonOptions)\n\t{\n\t\toptions = Type.isPlainObject(options) ? options : {};\n\t\t// delete options.round;\n\n\t\tif (Type.isStringFilled(options.link))\n\t\t{\n\t\t\toptions.mainButton = Type.isPlainObject(options.mainButton) ? options.mainButton : {};\n\t\t\toptions.mainButton.link = options.link;\n\t\t\tdelete options.link;\n\t\t}\n\n\t\toptions.tag = ButtonTag.DIV;\n\t\toptions.baseClass = SplitButton.BASE_CLASS;\n\n\t\tsuper(options);\n\t}\n\n\tinit()\n\t{\n\t\tconst mainOptions = Type.isPlainObject(this.options.mainButton) ? this.options.mainButton : {};\n\t\tconst menuOptions = Type.isPlainObject(this.options.menuButton) ? this.options.menuButton : {};\n\t\tmainOptions.buttonType = SplitSubButtonType.MAIN;\n\t\tmainOptions.splitButton = this;\n\n\t\tmenuOptions.buttonType = SplitSubButtonType.MENU;\n\t\tmenuOptions.splitButton = this;\n\n\t\tthis.mainButton = new SplitSubButton(mainOptions);\n\t\tthis.menuButton = new SplitSubButton(menuOptions);\n\t\tthis.menuTarget = SplitSubButtonType.MAIN;\n\n\t\tif (this.options.menuTarget === SplitSubButtonType.MENU)\n\t\t{\n\t\t\tthis.menuTarget = SplitSubButtonType.MENU;\n\t\t}\n\n\t\tsuper.init();\n\t}\n\n\tstatic State = SplitButtonState;\n\n\t/**\n\t * @public\n\t * @return {HTMLElement}\n\t */\n\tgetContainer(): HTMLElement\n\t{\n\t\tif (this.button === null)\n\t\t{\n\t\t\tthis.button = Tag.render`\n\t\t\t\t<div class=\"${this.getBaseClass()}\">${[\n\t\t\t\tthis.getMainButton().getContainer(),\n\t\t\t\tthis.getMenuButton().getContainer()\n\t\t\t]}</div>\n\t\t\t`;\n\t\t}\n\n\t\treturn this.button;\n\t}\n\n\t/**\n\t * @public\n\t * @return {SplitSubButton}\n\t */\n\tgetMainButton(): SplitSubButton\n\t{\n\t\treturn this.mainButton;\n\t}\n\n\t/**\n\t * @public\n\t * @return {SplitSubButton}\n\t */\n\tgetMenuButton(): SplitSubButton\n\t{\n\t\treturn this.menuButton;\n\t}\n\n\t/**\n\t * @public\n\t * @param {string} text\n\t * @return {this}\n\t */\n\tsetText(text: string): this\n\t{\n\t\tif (Type.isString(text))\n\t\t{\n\t\t\tthis.getMainButton().setText(text);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @return {string}\n\t */\n\tgetText(): string\n\t{\n\t\treturn this.getMainButton().getText();\n\t}\n\n\t/**\n\t *\n\t * @param {number | string} counter\n\t * @return {this}\n\t */\n\tsetCounter(counter: number | string): this\n\t{\n\t\treturn this.getMainButton().setCounter(counter);\n\t}\n\n\t/**\n\t *\n\t * @return {number | string | null}\n\t */\n\tgetCounter(): number | string | null\n\t{\n\t\treturn this.getMainButton().getCounter();\n\t}\n\n\t/**\n\t *\n\t * @param {string} link\n\t * @return {this}\n\t */\n\tsetLink(link: string): this\n\t{\n\t\treturn this.getMainButton().setLink(link);\n\t}\n\n\t/**\n\t *\n\t * @return {string}\n\t */\n\tgetLink(): string\n\t{\n\t\treturn this.getMainButton().getLink();\n\t}\n\n\t/**\n\t * @public\n\t * @param {SplitButtonState|null} state\n\t * @return {this}\n\t */\n\tsetState(state: SplitButtonState | null): this\n\t{\n\t\treturn this.setProperty('state', state, SplitButtonState);\n\t}\n\n\t/**\n\t * @public\n\t * @param {boolean} [flag=true]\n\t * @return {this}\n\t */\n\tsetDisabled(flag?: boolean): this\n\t{\n\t\tthis.setState(flag === false ? null : ButtonState.DISABLED);\n\t\tthis.getMainButton().setDisabled(flag);\n\t\tthis.getMenuButton().setDisabled(flag);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @protected\n\t * @return {HTMLElement}\n\t */\n\tgetMenuBindElement(): HTMLElement\n\t{\n\t\tif (this.getMenuTarget() === SplitSubButtonType.MENU)\n\t\t{\n\t\t\treturn this.getMenuButton().getContainer();\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn this.getContainer();\n\t\t}\n\t}\n\n\t/**\n\t * @protected\n\t * @param {MouseEvent} event\n\t */\n\thandleMenuClick(event: MouseEvent): void\n\t{\n\t\tthis.getMenuWindow().show();\n\n\t\tconst isActive = this.getMenuWindow().getPopupWindow().isShown();\n\t\tthis.getMenuButton().setActive(isActive);\n\t}\n\n\t/**\n\t * @protected\n\t */\n\thandleMenuClose(): void\n\t{\n\t\tthis.getMenuButton().setActive(false);\n\t}\n\n\t/**\n\t * @protected\n\t * @return {HTMLElement}\n\t */\n\tgetMenuClickElement(): HTMLElement\n\t{\n\t\treturn this.getMenuButton().getContainer();\n\t}\n\n\t/**\n\t * @public\n\t * @return {SplitSubButtonType}\n\t */\n\tgetMenuTarget(): SplitSubButtonType\n\t{\n\t\treturn this.menuTarget;\n\t}\n\n\t/**\n\t *\n\t * @param {boolean} [flag=true]\n\t * @return {this}\n\t */\n\tsetDropdown(flag?: boolean): this\n\t{\n\t\treturn this;\n\t}\n\n\t/**\n\t * @public\n\t * @return {boolean}\n\t */\n\tisDropdown(): boolean\n\t{\n\t\treturn true;\n\t}\n}","import { Type, Reflection, Dom, Runtime, Tag } from 'main.core';\nimport { EventEmitter, BaseEvent } from 'main.core.events';\nimport { MenuItem } from 'main.popup';\n\nimport BaseButton from './base-button';\nimport Button from './button/button';\nimport SplitButton from './split-button/split-button';\nimport ButtonTag from './button/button-tag';\nimport ButtonColor from './button/button-color';\nimport ButtonSize from './button/button-size';\nimport ButtonState from './button/button-state';\nimport ButtonStyle from './button/button-style';\nimport ButtonIcon from './button/button-icon';\nimport SplitButtonState from './split-button/split-button-state';\n\nimport type { SplitButtonOptions } from './split-button/split-button-options';\nimport type { ButtonOptions } from './button/button-options';\nimport type { SplitSubButtonOptions } from './split-button/split-sub-button-options';\nimport SplitSubButtonType from './split-button/split-sub-button-type';\n\nexport default class ButtonManager\n{\n\t/**\n\t * @public\n\t * @param {HTMLButtonElement | HTMLAnchorElement | HTMLInputElement} node\n\t * @return {Button | SplitButton}\n\t */\n\tstatic createFromNode(\n\t\tnode: HTMLButtonElement | HTMLAnchorElement | HTMLInputElement | HTMLDivElement\n\t): Button | SplitButton\n\t{\n\t\tif (!Type.isDomNode(node))\n\t\t{\n\t\t\tthrow new Error('BX.UI.ButtonManager.createFromNode: \"node\" must be a DOM node.');\n\t\t}\n\n\t\tif (!Dom.hasClass(node, Button.BASE_CLASS) && !Dom.hasClass(node, SplitButton.BASE_CLASS))\n\t\t{\n\t\t\tthrow new Error('BX.UI.ButtonManager.createFromNode: \"node\" is not a button.');\n\t\t}\n\n\t\tconst isSplitButton = Dom.hasClass(node, SplitButton.BASE_CLASS);\n\t\tlet tag = null;\n\t\tlet text = null;\n\t\tlet textNode = null;\n\t\tlet counterNode = null;\n\t\tlet disabled = false;\n\t\tlet mainButtonOptions: SplitSubButtonOptions = {};\n\t\tlet menuButtonOptions: SplitSubButtonOptions = {};\n\n\t\tif (isSplitButton)\n\t\t{\n\t\t\tconst mainButton = node.querySelector(`.${SplitSubButtonType.MAIN}`);\n\t\t\tconst menuButton = node.querySelector(`.${SplitSubButtonType.MENU}`);\n\t\t\tif (!mainButton)\n\t\t\t{\n\t\t\t\tthrow new Error('BX.UI.ButtonManager.createFromNode: a split button doesn\\'t have a main button.');\n\t\t\t}\n\n\t\t\tif (!menuButton)\n\t\t\t{\n\t\t\t\tthrow new Error('BX.UI.ButtonManager.createFromNode: a split button doesn\\'t have a menu button.');\n\t\t\t}\n\n\t\t\tconst mainButtonTag = this.#getTag(mainButton);\n\t\t\tif (mainButtonTag === ButtonTag.INPUT || mainButtonTag === ButtonTag.SUBMIT)\n\t\t\t{\n\t\t\t\ttext = mainButton.value;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t[textNode, counterNode] = this.#getTextNode(mainButton);\n\t\t\t\ttext = textNode.textContent;\n\t\t\t}\n\n\t\t\tdisabled = Dom.hasClass(node, SplitButtonState.DISABLED);\n\n\t\t\tmainButtonOptions = {\n\t\t\t\ttag: mainButtonTag,\n\t\t\t\ttextNode,\n\t\t\t\tcounterNode,\n\t\t\t\tbuttonNode: mainButton,\n\t\t\t\tdisabled: Dom.hasClass(node, SplitButtonState.MAIN_DISABLED)\n\t\t\t};\n\n\t\t\tmenuButtonOptions = {\n\t\t\t\ttag: this.#getTag(menuButton),\n\t\t\t\tbuttonNode: menuButton,\n\t\t\t\ttextNode: null,\n\t\t\t\tcounterNode: null,\n\t\t\t\tdisabled: Dom.hasClass(node, SplitButtonState.MENU_DISABLED)\n\t\t\t};\n\t\t}\n\t\telse\n\t\t{\n\t\t\ttag = this.#getTag(node);\n\t\t\tif (tag === null)\n\t\t\t{\n\t\t\t\tthrow new Error('BX.UI.ButtonManager.createFromNode: \"node\" must be a button, link or input.');\n\t\t\t}\n\n\t\t\tdisabled = Dom.hasClass(node, ButtonState.DISABLED);\n\n\t\t\tif (tag === ButtonTag.INPUT || tag === ButtonTag.SUBMIT)\n\t\t\t{\n\t\t\t\ttext = node.value;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t[textNode, counterNode] = this.#getTextNode(node);\n\t\t\t\ttext = textNode.textContent;\n\t\t\t}\n\t\t}\n\n\t\tconst options: ButtonOptions & SplitButtonOptions = {\n\t\t\tid: node.dataset.btnUniqid,\n\t\t\tbuttonNode: node,\n\t\t\ttextNode: isSplitButton ? null : textNode,\n\t\t\tcounterNode: isSplitButton ? null : counterNode,\n\t\t\tcounter: this.#getCounter(counterNode),\n\t\t\ttag,\n\t\t\ttext,\n\t\t\tdisabled,\n\t\t\tmainButton: mainButtonOptions,\n\t\t\tmenuButton: menuButtonOptions,\n\t\t\tsize: this.#getEnumProp(node, ButtonSize),\n\t\t\tcolor: this.#getEnumProp(node, ButtonColor),\n\t\t\ticon: this.#getEnumProp(node, ButtonIcon),\n\t\t\tstate: this.#getEnumProp(node, isSplitButton ? SplitButtonState : ButtonState),\n\t\t\tnoCaps: Dom.hasClass(node, ButtonStyle.NO_CAPS),\n\t\t\tround: Dom.hasClass(node, ButtonStyle.ROUND)\n\t\t};\n\n\n\t\tconst nodeOptions = Dom.attr(node, 'data-json-options') || {};\n\n\t\tif (Dom.hasClass(node, ButtonStyle.DROPDOWN))\n\t\t{\n\t\t\toptions.dropdown = true;\n\t\t}\n\t\telse if (nodeOptions.dropdown === false)\n\t\t{\n\t\t\toptions.dropdown = false;\n\t\t}\n\n\t\tif (nodeOptions.onclick)\n\t\t{\n\t\t\toptions.onclick = this.#convertEventHandler(nodeOptions.onclick);\n\t\t}\n\n\t\tif (Type.isPlainObject(nodeOptions.events))\n\t\t{\n\t\t\toptions.events = nodeOptions.events;\n\t\t\tthis.#convertEvents(options.events);\n\t\t}\n\n\t\tif (Type.isPlainObject(nodeOptions.menu))\n\t\t{\n\t\t\toptions.menu = nodeOptions.menu;\n\t\t\tthis.#convertMenuEvents(options.menu.items);\n\t\t}\n\n\t\t['mainButton', 'menuButton'].forEach(button => {\n\n\t\t\tif (!Type.isPlainObject(nodeOptions[button]))\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\toptions[button] = Runtime.merge(options[button], nodeOptions[button]);\n\t\t\tif (options[button].onclick)\n\t\t\t{\n\t\t\t\toptions[button].onclick = this.#convertEventHandler(options[button].onclick);\n\t\t\t}\n\n\t\t\tthis.#convertEvents(options[button].events);\n\n\t\t});\n\n\t\tif (Type.isStringFilled(nodeOptions.menuTarget))\n\t\t{\n\t\t\toptions.menuTarget = nodeOptions.menuTarget;\n\t\t}\n\n\t\treturn isSplitButton ? new SplitButton(options) : new Button(options);\n\t}\n\n\tstatic createByUniqId(id): Button | SplitButton | null\n\t{\n\t\tif (!Type.isStringFilled(id))\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\tconst node = document.querySelector(`[data-btn-uniqid=\"${id}\"]`);\n\n\t\treturn node ? this.createFromNode(node) : null;\n\t}\n\n\t/**\n\t * @private\n\t * @param {HTMLElement} node\n\t * @return {null|number}\n\t */\n\tstatic #getTag(node: HTMLElement | HTMLInputElement): ButtonTag | null\n\t{\n\t\tif (node.nodeName === 'A')\n\t\t{\n\t\t\treturn ButtonTag.LINK;\n\t\t}\n\t\telse if (node.nodeName === 'BUTTON')\n\t\t{\n\t\t\treturn ButtonTag.BUTTON;\n\t\t}\n\t\telse if (node.nodeName === 'INPUT' && node.type === 'button')\n\t\t{\n\t\t\treturn ButtonTag.INPUT;\n\t\t}\n\t\telse if (node.nodeName === 'INPUT' && node.type === 'submit')\n\t\t{\n\t\t\treturn ButtonTag.SUBMIT;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * @private\n\t * @param {HTMLElement} node\n\t */\n\tstatic #getTextNode(node: HTMLElement): [HTMLElement, HTMLElement]\n\t{\n\t\tlet textNode = node.querySelector('.ui-btn-text');\n\t\tconst counterNode = node.querySelector('.ui-btn-counter');\n\t\tif (!textNode)\n\t\t{\n\t\t\tif (counterNode)\n\t\t\t{\n\t\t\t\tDom.remove(counterNode);\n\t\t\t}\n\n\t\t\ttextNode = Tag.render`<span class=\"ui-btn-text\">${node.innerHTML.trim()}</span>`;\n\t\t\tDom.clean(node);\n\t\t\tDom.append(textNode, node);\n\n\t\t\tif (counterNode)\n\t\t\t{\n\t\t\t\tDom.append(counterNode, node);\n\t\t\t}\n\t\t}\n\n\t\treturn [textNode, counterNode];\n\t}\n\n\t/**\n\t * @private\n\t * @param counterNode\n\t * @return {null|any}\n\t */\n\tstatic #getCounter(counterNode: HTMLElement): number | string | null\n\t{\n\t\tif (Type.isDomNode(counterNode))\n\t\t{\n\t\t\tconst textContent = counterNode.textContent;\n\t\t\tconst counter = Number(textContent);\n\n\t\t\treturn Type.isNumber(counter) ? counter : textContent;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * @private\n\t * @param {HTMLElement} node\n\t * @param {object} enumeration\n\t * @return {null|*}\n\t */\n\tstatic #getEnumProp(node: HTMLElement, enumeration: Object)\n\t{\n\t\tfor (let key in enumeration)\n\t\t{\n\t\t\tif (!enumeration.hasOwnProperty(key))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (Dom.hasClass(node, enumeration[key]))\n\t\t\t{\n\t\t\t\treturn enumeration[key];\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * @private\n\t * @param handler\n\t * @return {Function}\n\t */\n\tstatic #convertEventHandler(handler): Function\n\t{\n\t\tif (Type.isFunction(handler))\n\t\t{\n\t\t\treturn handler;\n\t\t}\n\n\t\tif (!Type.isObject(handler))\n\t\t{\n\t\t\tthrow new Error('BX.UI.ButtonManager.createFromNode: Event handler must be described as object or function.');\n\t\t}\n\n\t\tif (Type.isStringFilled(handler.code))\n\t\t{\n\t\t\treturn function() { // handle code can use callback arguments\n\t\t\t\teval(handler.code);\n\t\t\t};\n\t\t}\n\t\telse if (Type.isStringFilled(handler.event))\n\t\t{\n\t\t\treturn function(...args) {\n\n\t\t\t\tlet event;\n\t\t\t\tif (args[0] instanceof BaseEvent)\n\t\t\t\t{\n\t\t\t\t\tevent = args[0];\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif (args[0] instanceof BaseButton)\n\t\t\t\t\t{\n\t\t\t\t\t\tevent = new BaseEvent({ data: { button: args[0], event: args[1] } });\n\t\t\t\t\t}\n\t\t\t\t\telse if (args[1] instanceof MenuItem)\n\t\t\t\t\t{\n\t\t\t\t\t\tevent = new BaseEvent({ data: { item: args[1], event: args[0] } });\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tevent = new BaseEvent({ data: args });\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tEventEmitter.emit(handler.event, event);\n\t\t\t};\n\t\t}\n\t\telse if (Type.isStringFilled(handler.handler))\n\t\t{\n\t\t\treturn function(...args) {\n\t\t\t\tconst fn = Reflection.getClass(handler.handler);\n\t\t\t\tif (Type.isFunction(fn))\n\t\t\t\t{\n\t\t\t\t\tlet context = this;\n\t\t\t\t\tif (Type.isStringFilled(handler.context))\n\t\t\t\t\t{\n\t\t\t\t\t\tcontext = Reflection.getClass(handler.context);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn fn.apply(context, args);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`BX.UI.ButtonManager.createFromNode: be aware, the handler ${handler.handler} is not a function.`\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t};\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * @private\n\t * @param events\n\t */\n\tstatic #convertEvents(events)\n\t{\n\t\tif (Type.isPlainObject(events))\n\t\t{\n\t\t\tfor (let [eventName, eventFn] of Object.entries(events))\n\t\t\t{\n\t\t\t\tevents[eventName] = this.#convertEventHandler(eventFn);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t * @param items\n\t */\n\tstatic #convertMenuEvents(items)\n\t{\n\t\tif (!Type.isArray(items))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\titems.forEach(item => {\n\t\t\tif (item.onclick)\n\t\t\t{\n\t\t\t\titem.onclick = this.#convertEventHandler(item.onclick);\n\t\t\t}\n\n\t\t\tif (item.events)\n\t\t\t{\n\t\t\t\tthis.#convertEvents(item.events);\n\t\t\t}\n\n\t\t\tif (Type.isArray(item.items))\n\t\t\t{\n\t\t\t\tthis.#convertMenuEvents(item.items);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @deprecated\n\t * @param uniqId\n\t * @return {null|*}\n\t */\n\tstatic getByUniqid(uniqId)\n\t{\n\t\tconst toolbar = BX.UI.ToolbarManager.getDefaultToolbar();\n\n\t\treturn toolbar ? toolbar.getButton(uniqId) : null;\n\t}\n}","/**\n * @namespace {BX.UI}\n */\nexport default class IButton\n{\n\trender(): HTMLElement\n\t{\n\t\tthrow new Error('BX.UI.IButton: Must be implemented by a subclass');\n\t}\n}","import Button from '../button';\nimport ButtonColor from '../button-color';\nimport { Loc } from 'main.core';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class AddButton extends Button\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_BUTTONS_ADD_BTN_TEXT'),\n\t\t\tcolor: ButtonColor.SUCCESS\n\t\t};\n\t}\n}","import Button from '../button';\nimport ButtonColor from '../button-color';\nimport { Loc } from 'main.core';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class ApplyButton extends Button\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_BUTTONS_APPLY_BTN_TEXT'),\n\t\t\tcolor: ButtonColor.LIGHT_BORDER\n\t\t};\n\t}\n}","import Button from '../button';\nimport ButtonColor from '../button-color';\nimport { Loc } from 'main.core';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class CancelButton extends Button\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_BUTTONS_CANCEL_BTN_TEXT'),\n\t\t\tcolor: ButtonColor.LINK\n\t\t};\n\t}\n}","import Button from '../button';\nimport ButtonColor from '../button-color';\nimport { Loc } from 'main.core';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class CloseButton extends Button\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_BUTTONS_CLOSE_BTN_TEXT'),\n\t\t\tcolor: ButtonColor.LINK\n\t\t};\n\t}\n}","import Button from '../button';\nimport ButtonColor from '../button-color';\nimport { Loc } from 'main.core';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class CreateButton extends Button\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_BUTTONS_CREATE_BTN_TEXT'),\n\t\t\tcolor: ButtonColor.SUCCESS\n\t\t};\n\t}\n}","import Button from '../button';\nimport ButtonColor from '../button-color';\nimport { Loc } from 'main.core';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class SaveButton extends Button\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_BUTTONS_SAVE_BTN_TEXT'),\n\t\t\tcolor: ButtonColor.SUCCESS\n\t\t};\n\t}\n}","import Button from '../button';\nimport ButtonColor from '../button-color';\nimport { Loc } from 'main.core';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class SendButton extends Button\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_BUTTONS_SEND_BTN_TEXT'),\n\t\t\tcolor: ButtonColor.SUCCESS\n\t\t};\n\t}\n}","import Button from '../button';\nimport ButtonColor from '../button-color';\nimport ButtonIcon from '../button-icon';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class SettingsButton extends Button\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ticon: ButtonIcon.SETTING,\n\t\t\tcolor: ButtonColor.LIGHT_BORDER,\n\t\t\tdropdown: false\n\t\t};\n\t}\n}","import SplitButton from '../split-button';\nimport ButtonColor from '../../button/button-color';\nimport { Loc } from 'main.core';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class AddSplitButton extends SplitButton\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_BUTTONS_ADD_BTN_TEXT'),\n\t\t\tcolor: ButtonColor.SUCCESS\n\t\t};\n\t}\n}","import SplitButton from '../split-button';\nimport ButtonColor from '../../button/button-color';\nimport { Loc } from 'main.core';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class ApplySplitButton extends SplitButton\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_BUTTONS_APPLY_BTN_TEXT'),\n\t\t\tcolor: ButtonColor.LIGHT_BORDER\n\t\t};\n\t}\n}","import SplitButton from '../split-button';\nimport ButtonColor from '../../button/button-color';\nimport { Loc } from 'main.core';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class CancelSplitButton extends SplitButton\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_BUTTONS_CANCEL_BTN_TEXT'),\n\t\t\tcolor: ButtonColor.LINK\n\t\t};\n\t}\n}","import SplitButton from '../split-button';\nimport ButtonColor from '../../button/button-color';\nimport { Loc } from 'main.core';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class CloseSplitButton extends SplitButton\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_BUTTONS_CLOSE_BTN_TEXT'),\n\t\t\tcolor: ButtonColor.LINK\n\t\t};\n\t}\n}","import SplitButton from '../split-button';\nimport ButtonColor from '../../button/button-color';\nimport { Loc } from 'main.core';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class CreateSplitButton extends SplitButton\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_BUTTONS_CREATE_BTN_TEXT'),\n\t\t\tcolor: ButtonColor.SUCCESS\n\t\t};\n\t}\n}","import SplitButton from '../split-button';\nimport ButtonColor from '../../button/button-color';\nimport { Loc } from 'main.core';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class SaveSplitButton extends SplitButton\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_BUTTONS_SAVE_BTN_TEXT'),\n\t\t\tcolor: ButtonColor.SUCCESS\n\t\t};\n\t}\n}","import SplitButton from '../split-button';\nimport ButtonColor from '../../button/button-color';\nimport { Loc } from 'main.core';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class SendSplitButton extends SplitButton\n{\n\tgetDefaultOptions()\n\t{\n\t\treturn {\n\t\t\ttext: Loc.getMessage('UI_BUTTONS_SEND_BTN_TEXT'),\n\t\t\tcolor: ButtonColor.SUCCESS\n\t\t};\n\t}\n}"],"names":["ButtonTag","BaseButton","options","Type","isPlainObject","Object","assign","getDefaultOptions","button","isDomNode","buttonNode","textNode","counterNode","text","counter","events","link","maxWidth","tag","isEnumValue","BUTTON","isStringFilled","LINK","baseClass","disabled","handleEvent","bind","init","setDisabled","setText","setCounter","setProps","props","setDataSet","dataset","addClass","className","setLink","setMaxWidth","bindEvent","onclick","bindEvents","getContainer","node","appendChild","getTag","Tag","render","getBaseClass","INPUT","SUBMIT","DIV","SPAN","isString","isInputType","value","length","parentNode","Dom","prepend","textContent","remove","includes","isNumber","Error","append","href","style","removeProperty","propName","propValue","attr","attrs","attributes","result","reserved","i","name","startsWith","getDataSet","removeClass","flag","eventName","fn","isArray","forEach","unbindEvent","isFunction","Event","unbind","event","type","call","enumeration","code","ButtonColor","ButtonSize","ButtonIcon","ButtonState","ButtonStyle","Button","BASE_CLASS","size","color","icon","state","id","context","menuWindow","handleMenuClick","handleMenuClose","setSize","setColor","setIcon","setState","setId","setMenu","menu","setContext","noCaps","setNoCaps","round","setRound","dropdown","getMenuWindow","setDropdown","setProperty","getIcon","NO_CAPS","hasClass","ROUND","DROPDOWN","COLLAPSED","items","Menu","Text","getRandom","toLowerCase","bindElement","getMenuBindElement","getPopupWindow","subscribe","getMenuClickElement","close","unsubscribe","destroy","show","setActive","isShown","isNull","ACTIVE","getState","HOVER","DISABLED","WAITING","CLOCKING","property","isUndefined","SplitButtonState","SplitSubButtonType","SplitSubButton","buttonType","MAIN","MENU","splitButton","isMenuButton","toggleState","MAIN_ACTIVE","MENU_ACTIVE","getSplitButton","isMainButton","MAIN_DISABLED","MENU_DISABLED","MAIN_HOVER","MENU_HOVER","globalState","mainState","menuState","SplitButton","mainButton","mainOptions","menuOptions","menuButton","menuTarget","getMainButton","getMenuButton","getText","getCounter","getLink","getMenuTarget","isActive","ButtonManager","isSplitButton","mainButtonOptions","menuButtonOptions","querySelector","mainButtonTag","btnUniqid","nodeOptions","Runtime","merge","document","createFromNode","uniqId","toolbar","BX","UI","ToolbarManager","getDefaultToolbar","getButton","nodeName","innerHTML","trim","clean","Number","key","hasOwnProperty","handler","isObject","eval","args","BaseEvent","data","MenuItem","item","EventEmitter","emit","Reflection","getClass","apply","console","warn","entries","eventFn","IButton","AddButton","Loc","getMessage","SUCCESS","ApplyButton","LIGHT_BORDER","CancelButton","CloseButton","CreateButton","SaveButton","SendButton","SettingsButton","SETTING","AddSplitButton","ApplySplitButton","CancelSplitButton","CloseSplitButton","CreateSplitButton","SaveSplitButton","SendSplitButton"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.26 |
proxy
|
phpinfo
|
Settings