Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/ui/buttons/dist/ |
Upload File : |
{"version":3,"file":"ui.buttons.bundle.js","sources":["../src/button-counter.js","../src/button/button-size.js","../src/helpers/counter-size.js","../src/button/button-tag.js","../src/base-button.js","../src/button/button-color.js","../src/button/button-icon.js","../src/button/button-state.js","../src/button/button-style.js","../src/button/air-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/helpers/get-switcher-size.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":["// eslint-disable-next-line max-classes-per-file\nimport { Counter, CounterColor as ButtonCounterColor, CounterSize as ButtonCounterSize, CounterStyle as ButtonCounterStyle } from 'ui.cnt';\n\nexport type ButtonCounterOptions = {\n\tcolor: ?string;\n\tstyle: ?ButtonCounterStyle;\n\tvalue: ?number;\n\tmaxValue: ?number;\n\tuseSymbolPercent?: boolean;\n}\n\nexport class ButtonCounter\n{\n\t#counter: Counter;\n\n\tconstructor(options: ButtonCounterOptions) {\n\t\tthis.validateOptions(options);\n\n\t\tthis.#counter = new Counter({\n\t\t\tcolor: options.color ?? ButtonCounterColor.DANGER,\n\t\t\tstyle: options.style ?? ButtonCounterStyle.FILLED_ALERT,\n\t\t\tsize: options.size ?? ButtonCounterSize.MEDIUM,\n\t\t\tvalue: options.value,\n\t\t\tmaxValue: options.maxValue,\n\t\t\tusePercentSymbol: options.useSymbolPercent,\n\t\t\tuseAirDesign: true,\n\t\t});\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\treturn this.#counter.render();\n\t}\n\n\tgetValue(): number\n\t{\n\t\treturn this.#counter.getValue();\n\t}\n\n\tsetValue(value: number): void\n\t{\n\t\tthis.#counter.update(value);\n\t}\n\n\tsetColor(color: string): void\n\t{\n\t\tthis.#counter.setColor(color);\n\t}\n\n\tvalidateOptions(options: ButtonCounterOptions): void\n\t{\n\t\t// todo add implementation\n\t}\n}\n","/**\n * @namespace {BX.UI}\n */\nexport default class ButtonSize\n{\n\tstatic EXTRA_LARGE = 'ui-btn-xl';\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\tstatic EXTRA_EXTRA_SMALL = 'ui-btn-xss';\n}\n","import { ButtonCounterSize } from 'ui.buttons';\nimport ButtonSize from '../button/button-size';\n\nexport const getCounterSize = (buttonSize: string): string => ({\n\t[ButtonSize.EXTRA_EXTRA_SMALL]: ButtonCounterSize.SMALL,\n\t[ButtonSize.EXTRA_SMALL]: ButtonCounterSize.SMALL,\n\t[ButtonSize.SMALL]: ButtonCounterSize.SMALL,\n\t[ButtonSize.MEDIUM]: ButtonCounterSize.MEDIUM,\n\t[ButtonSize.LARGE]: ButtonCounterSize.LARGE,\n\t[ButtonSize.EXTRA_LARGE]: ButtonCounterSize.LARGE,\n}[buttonSize] ?? ButtonCounterSize.MEDIUM);\n","/**\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, Tag, Dom, Event } from 'main.core';\nimport 'ui.design-tokens.air';\n\nimport { ButtonCounter, type ButtonCounterOptions } from './button-counter';\nimport { getCounterSize } from './helpers/counter-size';\nimport { ButtonCounterSize } from './index';\nimport ButtonTag from './button/button-tag';\nimport type { BaseButtonOptions } from './base-button-options';\nimport type IButton from './ibutton';\n\nimport './ui.buttons.css';\nimport './ui.air-buttons.css';\n\nexport type SetCounterOptions = {\n\tcounter: ButtonCounterOptions,\n\tposition: 'left' | 'right',\n};\n\nexport default class BaseButton implements IButton\n{\n\t#useAirDesign: boolean = false;\n\t#leftCounter: ?ButtonCounter;\n\t#rightCounter: ?ButtonCounter;\n\t#leftCounterContainer: ?HTMLElement;\n\t#rightCounterContainer: ?HTMLElement;\n\n\tconstructor(options: BaseButtonOptions)\n\t{\n\t\tthis.options = Object.assign(this.getDefaultOptions(), Type.isPlainObject(options) ? 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.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.setAirDesign(this.options.useAirDesign === true);\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\tif (this.hasAirDesign())\n\t\t{\n\t\t\tif (this.options.leftCounter)\n\t\t\t{\n\t\t\t\tthis.setLeftCounter({\n\t\t\t\t\t...this.options.leftCounter,\n\t\t\t\t\tsize: getCounterSize(this.options.size),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.options.rightCounter)\n\t\t\t{\n\t\t\t\tthis.setRightCounter({\n\t\t\t\t\t...this.options.rightCounter,\n\t\t\t\t\tsize: getCounterSize(this.options.size),\n\t\t\t\t});\n\t\t\t}\n\t\t}\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\tsetAirDesign(use: boolean): void\n\t{\n\t\tthis.#useAirDesign = use === true;\n\n\t\tDom.toggleClass(this.getContainer(), '--air', this.#useAirDesign);\n\t}\n\n\thasAirDesign(): boolean\n\t{\n\t\treturn this.#useAirDesign;\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tgetDefaultOptions(): Object\n\t{\n\t\treturn {};\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\treturn this.getContainer();\n\t}\n\n\trenderTo(node: HTMLElement): HTMLElement\n\t{\n\t\tDom.append(this.getContainer(), node);\n\n\t\treturn this.getContainer();\n\t}\n\n\tgetContainer(): HTMLElement\n\t{\n\t\tthis.button ??= {\n\t\t\t[ButtonTag.LINK]: () => Tag.render`<a class=\"${this.getBaseClass()}\" href=\"\"></a>`,\n\t\t\t[ButtonTag.INPUT]: () => Tag.render`<input class=\"${this.getBaseClass()}\" type=\"button\">`,\n\t\t\t[ButtonTag.SUBMIT]: () => Tag.render`<input class=\"${this.getBaseClass()}\" type=\"submit\">`,\n\t\t\t[ButtonTag.DIV]: () => Tag.render`<div class=\"${this.getBaseClass()}\"></div>`,\n\t\t}[this.getTag()]?.() ?? Tag.render`<button class=\"${this.getBaseClass()}\"></button>`;\n\n\t\treturn this.button;\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tgetBaseClass(): string\n\t{\n\t\treturn this.baseClass;\n\t}\n\n\tsetText(text: string): this\n\t{\n\t\tif (!Type.isString(text) && !this.hasAirDesign())\n\t\t{\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.text = text || '';\n\n\t\tif (this.isInputType())\n\t\t{\n\t\t\tthis.getContainer().value = this.text;\n\t\t}\n\t\telse if (this.text.length > 0 || this.hasAirDesign())\n\t\t{\n\t\t\tif (this.textNode === null)\n\t\t\t{\n\t\t\t\tthis.textNode = Tag.render`<span class=\"ui-btn-text\"><span class=\"ui-btn-text-inner\"></span></span>`;\n\t\t\t}\n\n\t\t\tif (!this.textNode.parentNode)\n\t\t\t{\n\t\t\t\tDom.prepend(this.textNode, this.getContainer());\n\t\t\t}\n\n\t\t\tconst textContentNode = this.textNode.querySelector('.ui-btn-text-inner') ?? this.textNode;\n\t\t\ttextContentNode.textContent = text;\n\t\t}\n\t\telse if (this.textNode !== null)\n\t\t{\n\t\t\tDom.remove(this.textNode);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetTextContainer(): HTMLElement\n\t{\n\t\treturn this.textNode;\n\t}\n\n\tgetText(): string\n\t{\n\t\treturn this.text;\n\t}\n\n\t/**\n\t * Use for buttons with air option\n\t * Use only to create or delete a counter. Update counter value via getLeftCounter() method.\n\t *\n\t * @param options Object | null Object for creating. null for deleting.\n\t */\n\tsetLeftCounter(options: ButtonCounterOptions | null): this\n\t{\n\t\tif (this.hasAirDesign() === false)\n\t\t{\n\t\t\tconsole.warn('Left counter works only with air buttons. Use setLeftCounter or useAirDesign option in constructor.');\n\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!options)\n\t\t{\n\t\t\tthis.#removeLeftCounter();\n\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.#leftCounter)\n\t\t{\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.#removeLeftCounter();\n\t\tthis.#leftCounter = new ButtonCounter({\n\t\t\t...options,\n\t\t\tsize: Type.isString(options.size) ? options.size : ButtonCounterSize.MEDIUM,\n\t\t});\n\n\t\tif (this.textNode)\n\t\t{\n\t\t\tthis.#leftCounterContainer = Tag.render`\n\t\t\t\t<div class=\"ui-btn-left-counter\">\n\t\t\t\t\t${this.#leftCounter.render()}\n\t\t\t\t</div>\n\t\t\t`;\n\n\t\t\tDom.prepend(this.#leftCounterContainer, this.textNode);\n\t\t\tDom.addClass(this.getContainer(), '--with-left-counter');\n\t\t}\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * Use for buttons with air option\n\t * Use only to create or delete a counter. Update counter value via getRightCounter() method.\n\t *\n\t * @param options Object | null Object for creating. null for deleting.\n\t */\n\tsetRightCounter(options: ButtonCounterOptions | null): this\n\t{\n\t\tif (this.hasAirDesign() === false)\n\t\t{\n\t\t\tconsole.warn('Right counter works only with air buttons. Use setRightCounter or useAirDesign option in constructor.');\n\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!options)\n\t\t{\n\t\t\tthis.#removeRightCounter();\n\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.#removeRightCounter();\n\n\t\tthis.#rightCounter = new ButtonCounter({\n\t\t\t...options,\n\t\t\tsize: Type.isString(options.size) ? options.size : ButtonCounterSize.MEDIUM,\n\t\t});\n\n\t\tif (this.textNode)\n\t\t{\n\t\t\tthis.#rightCounterContainer = Tag.render`\n\t\t\t\t<div class=\"ui-btn-right-counter\">${this.#rightCounter.render()}</div>\n\t\t\t`;\n\n\t\t\tDom.append(this.#rightCounterContainer, this.textNode);\n\t\t\tDom.addClass(this.getContainer(), '--with-right-counter');\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetLeftCounter(): ButtonCounter\n\t{\n\t\treturn this.#leftCounter;\n\t}\n\n\tgetRightCounter(): ButtonCounter\n\t{\n\t\treturn this.#rightCounter;\n\t}\n\n\t#removeLeftCounter(): void\n\t{\n\t\tDom.remove(this.#leftCounterContainer);\n\t\tDom.removeClass(this.getContainer(), '--with-left-counter');\n\t\tthis.#leftCounterContainer = null;\n\t\tthis.#leftCounter = null;\n\t}\n\n\t#removeRightCounter(): void\n\t{\n\t\tDom.remove(this.#rightCounterContainer);\n\t\tDom.removeClass(this.getContainer(), '--with-right-counter');\n\t\tthis.#rightCounterContainer = null;\n\t\tthis.#rightCounter = null;\n\t}\n\n\t/**\n\t * use for old buttons (without useAirTheme option)\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\tDom.remove(this.counterNode);\n\t\t\tthis.counterNode = null;\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.hasAirDesign())\n\t\t\t{\n\t\t\t\tconsole.warn('Use setCounter or counter option only for not air buttons. For fir buttons use setLeftCounter or setRightCounter methods or leftCounter or rightCounter options.');\n\n\t\t\t\treturn this;\n\t\t\t}\n\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\tgetCounter(): number | string | null\n\t{\n\t\treturn this.counter;\n\t}\n\n\tsetLink(link: string): this\n\t{\n\t\tif (Type.isStringFilled(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\tgetLink(): string\n\t{\n\t\treturn this.getContainer().href;\n\t}\n\n\tsetMaxWidth(maxWidth: number): this\n\t{\n\t\tthis.maxWidth = maxWidth > 0 ? maxWidth : null;\n\t\tDom.style(this.getContainer(), 'max-width', maxWidth > 0 ? `${maxWidth}px` : null);\n\n\t\treturn this;\n\t}\n\n\tgetMaxWidth(): number | null\n\t{\n\t\treturn this.maxWidth;\n\t}\n\n\tgetTag(): ButtonTag\n\t{\n\t\treturn this.tag;\n\t}\n\n\tsetProps(props: { [propertyName: string]: string }): this\n\t{\n\t\tif (Type.isPlainObject(props))\n\t\t{\n\t\t\tDom.attr(this.getContainer(), props);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tgetProps(): { [property: string]: string }\n\t{\n\t\tconst reserved = this.isInputType() ? ['class', 'type'] : ['class'];\n\n\t\treturn [...this.getContainer().attributes]\n\t\t\t.filter(({ name }) => !reserved.includes(name) && !name.startsWith('data-'))\n\t\t\t.reduce((props, { name, value }) => ({\n\t\t\t\t...props,\n\t\t\t\t[name]: value,\n\t\t\t}), {})\n\t\t;\n\t}\n\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\tObject.entries(props).forEach(([property, value]) => {\n\t\t\tthis.getDataSet()[property] = value;\n\t\t\tif (value === null)\n\t\t\t{\n\t\t\t\tdelete this.getDataSet()[property];\n\t\t\t}\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tgetDataSet(): DOMStringMap\n\t{\n\t\treturn this.getContainer().dataset;\n\t}\n\n\taddClass(className: string): this\n\t{\n\t\tDom.addClass(this.getContainer(), className);\n\n\t\treturn this;\n\t}\n\n\tremoveClass(className: string): this\n\t{\n\t\tDom.removeClass(this.getContainer(), className);\n\n\t\treturn this;\n\t}\n\n\tsetDisabled(disabled: boolean = true): this\n\t{\n\t\tthis.disabled = disabled;\n\t\tthis.setProps({ disabled: disabled ? true : null });\n\n\t\treturn this;\n\t}\n\n\tisDisabled(): boolean\n\t{\n\t\treturn this.disabled;\n\t}\n\n\tisInputType(): boolean\n\t{\n\t\treturn [ButtonTag.SUBMIT, ButtonTag.INPUT].includes(this.getTag());\n\t}\n\n\tbindEvents(events: { [event: string]: (button: this, event: MouseEvent) => {} }): this\n\t{\n\t\tif (Type.isPlainObject(events))\n\t\t{\n\t\t\tObject.entries(events).forEach(([name, handler]) => this.bindEvent(name, handler));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tunbindEvents(events: string[]): this\n\t{\n\t\tif (Type.isArray(events))\n\t\t{\n\t\t\tevents.forEach((eventName) => this.unbindEvent(eventName));\n\t\t}\n\n\t\treturn this;\n\t}\n\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\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#handleEvent = (event: MouseEvent): void => {\n\t\tthis.events[event.type]?.call(this, this, event);\n\t};\n\n\t/**\n\t * @protected\n\t */\n\tisEnumValue(value: any, enumeration: Object): boolean\n\t{\n\t\treturn Object.values(enumeration).includes(value);\n\t}\n}\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 SECONDARY_LIGHT = 'ui-btn-secondary-light';\n\tstatic WARNING_LIGHT = 'ui-btn-warning-light';\n\tstatic LINK = 'ui-btn-link';\n\tstatic LIGHT = 'ui-btn-light';\n\tstatic LIGHT_BORDER = 'ui-btn-light-border';\n\tstatic AI = 'ui-btn-color-ai';\n\tstatic BASE_LIGHT = 'ui-btn-base-light';\n\tstatic COLLAB = 'ui-btn-collab';\n\tstatic PRIMARY_BORDER = 'ui-btn-primary-border';\n\tstatic CURTAIN_PRIMARY = 'ui-btn-primary-curtain';\n\tstatic CURTAIN_WARNING = 'ui-btn-primary-warning';\n}\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-dots';\n\tstatic DONE = 'ui-btn-icon-done';\n\tstatic CANCEL = 'ui-btn-icon-cancel';\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\tstatic ROBOTS = 'ui-btn-icon-robots';\n\tstatic NOTE = 'ui-btn-icon-note';\n\tstatic SCRIPT = 'ui-btn-icon-script';\n\tstatic PRINT2 = 'ui-btn-icon-print-2';\n\tstatic FUNNEL = 'ui-btn-icon-funnel';\n\tstatic FORWARD = 'ui-btn-icon-forward';\n\tstatic COPY = 'ui-btn-icon-copy';\n\tstatic AI = 'ui-btn-icon-ai ui-icon-set__scope';\n\tstatic BUSINESS_NEW = 'ui-btn-icon-business-new';\n\tstatic OUTLINE_ADD = 'ui-btn-icon-outline-add';\n\tstatic HELP = 'ui-btn-icon-help';\n\tstatic CHECK = 'ui-btn-icon-check';\n\tstatic CHEVRON_LEFT_S = 'ui-btn-icon-chevron-left-s';\n\tstatic CHEVRON_RIGHT_S = 'ui-btn-icon-chevron-right-s';\n\tstatic REFRESH = 'ui-btn-icon-refresh';\n\tstatic CITY = 'ui-btn-icon-city';\n\tstatic TWO_PERSONS = 'ui-btn-icon-two-persons';\n\tstatic COPILOT = 'ui-btn-icon-copilot';\n\tstatic RELOAD = 'ui-btn-icon-reload';\n}\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\tstatic AI_WAITING = 'ui-btn-ai-waiting';\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\tstatic DEPEND_ON_THEME = 'ui-btn-themes';\n}\n","/**\n * @namespace {BX.UI}\n */\nexport default class AirButtonStyle\n{\n\tstatic FILLED = '--style-filled';\n\tstatic TINTED = '--style-tinted';\n\tstatic TINTED_ALERT = '--style-tinted-alert';\n\tstatic OUTLINE_ACCENT_1 = '--style-outline-accent-1';\n\tstatic OUTLINE_ACCENT_2 = '--style-outline-accent-2';\n\tstatic OUTLINE = '--style-outline';\n\tstatic OUTLINE_NO_ACCENT = '--style-outline-no-accent';\n\tstatic PLAIN_ACCENT = '--style-plain-accent';\n\tstatic PLAIN = '--style-plain';\n\tstatic PLAIN_NO_ACCENT = '--style-plain-no-accent';\n\tstatic SELECTION = '--style-selection';\n\tstatic FILLED_COPILOT = '--style-filled-copilot';\n\tstatic FILLED_SUCCESS = '--style-filled-success';\n\tstatic FILLED_ALERT = '--style-filled-alert';\n}\n","import { Type, Dom, Text, Event, Tag } from 'main.core';\nimport { Menu, type MenuOptions } from 'main.popup';\n\nimport { SplitButton, type ButtonCounterOptions } from 'ui.buttons';\nimport { Icon } from 'ui.icon-set.api.core';\nimport 'ui.cnt';\n\nimport BaseButton from '../base-button';\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 AirButtonStyle from './air-button-style';\nimport type { ButtonOptions } from './button-options';\n\n/**\n * @namespace {BX.UI}\n */\nexport default class Button extends BaseButton\n{\n\tstatic BASE_CLASS = 'ui-btn';\n\n\t#style: ?string;\n\t#isWide: boolean = false;\n\t#layout: {\n\t\ticon: HTMLElement,\n\t} = {};\n\n\tconstructor(options: ButtonOptions)\n\t{\n\t\tsuper({\n\t\t\tdependOnTheme: options.className?.includes(ButtonStyle.DEPEND_ON_THEME),\n\t\t\t...(Type.isPlainObject(options) ? options : {}),\n\t\t\tbaseClass: Type.isStringFilled(options?.baseClass) ? options.baseClass : Button.BASE_CLASS,\n\t\t});\n\n\t\tthis.isDependOnTheme = null;\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.setDependOnTheme(this.options.dependOnTheme ?? false);\n\t\tthis.setSize(this.options.size);\n\t\tthis.setColor(this.options.color);\n\t\tthis.setIcon(this.options.icon, this.options.iconPosition || 'left');\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\t\tthis.setWide(this.options.wide === true);\n\t\tthis.setLeftCorners(this.options.removeLeftCorners !== true);\n\t\tthis.setRightCorners(this.options.removeRightCorners !== true);\n\t\tif (this.options.collapsedIcon)\n\t\t{\n\t\t\tthis.setCollapsedIcon(this.options.collapsedIcon);\n\t\t}\n\n\t\tif (this.hasAirDesign())\n\t\t{\n\t\t\tthis.setStyle(this.options.style || AirButtonStyle.FILLED);\n\t\t\tthis.setNoCaps(true);\n\n\t\t\tif (!this.text && !(this instanceof SplitButton))\n\t\t\t{\n\t\t\t\tthis.setCollapsed(true);\n\t\t\t}\n\t\t}\n\n\t\tif (this.options.noCaps)\n\t\t{\n\t\t\tthis.setNoCaps();\n\t\t}\n\n\t\tif (this.options.round)\n\t\t{\n\t\t\tthis.setRound();\n\t\t}\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\tstatic AirStyle = AirButtonStyle;\n\n\tsetText(text: string): this\n\t{\n\t\tsuper.setText(text);\n\n\t\tif (this.hasAirDesign())\n\t\t{\n\t\t\tDom.toggleClass(this.getContainer(), ButtonStyle.COLLAPSED, !this.text);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsetSize(size: ButtonSize | null): this\n\t{\n\t\treturn this.setProperty('size', size, ButtonSize);\n\t}\n\n\tgetSize(): ButtonSize | null\n\t{\n\t\treturn this.size;\n\t}\n\n\tsetColor(color: ButtonColor | null): this\n\t{\n\t\treturn this.setProperty('color', color, ButtonColor);\n\t}\n\n\tgetColor(): ButtonColor | null\n\t{\n\t\treturn this.color;\n\t}\n\n\tsetIcon(icon: ?string, iconPosition: 'right' | 'left' = 'left'): this\n\t{\n\t\tif (icon && !icon.startsWith('ui-btn-icon'))\n\t\t{\n\t\t\tthis.#layout.icon?.remove();\n\t\t\tthis.#layout.icon = new Icon({ icon }).render();\n\t\t\tDom.addClass(this.getContainer(), '--with-icon');\n\t\t\tDom.prepend(this.#layout.icon, this.getContainer());\n\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.setProperty('icon', icon, ButtonIcon);\n\n\t\tconst iconClass = {\n\t\t\tleft: '--with-left-icon',\n\t\t\tright: '--with-right-icon',\n\t\t}[iconPosition] ?? '';\n\n\t\tDom.removeClass(this.getContainer(), '--with-icon');\n\t\tDom.toggleClass(this.getContainer(), ['ui-icon-set__scope', iconClass], Boolean(icon));\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\tsetCollapsedIcon(icon: ButtonIcon | null): this\n\t{\n\t\tthis.setProperty('icon', icon, ButtonIcon);\n\n\t\tDom.toggleClass(this.getContainer(), ['ui-icon-set__scope', '--with-collapsed-icon'], Boolean(icon));\n\t}\n\n\tgetIcon(): ButtonIcon | null\n\t{\n\t\treturn this.icon;\n\t}\n\n\tsetState(state: ButtonState | null): this\n\t{\n\t\treturn this.setProperty('state', state, ButtonState);\n\t}\n\n\tgetState(): ButtonState | null\n\t{\n\t\treturn this.state;\n\t}\n\n\tsetNoCaps(noCaps: boolean = true): this\n\t{\n\t\tDom.toggleClass(this.getContainer(), ButtonStyle.NO_CAPS, noCaps);\n\n\t\treturn this;\n\t}\n\n\tisNoCaps(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getContainer(), ButtonStyle.NO_CAPS);\n\t}\n\n\tsetRound(round: boolean = true): this\n\t{\n\t\tDom.toggleClass(this.getContainer(), ButtonStyle.ROUND, round);\n\n\t\treturn this;\n\t}\n\n\tisRound(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getContainer(), ButtonStyle.ROUND);\n\t}\n\n\tsetDependOnTheme(dependOnTheme: boolean = true): this\n\t{\n\t\tDom.toggleClass(this.getContainer(), ButtonStyle.DEPEND_ON_THEME, dependOnTheme);\n\n\t\treturn this;\n\t}\n\n\tsetDropdown(dropdown: boolean = true): this\n\t{\n\t\tDom.toggleClass(this.getContainer(), ButtonStyle.DROPDOWN, dropdown);\n\n\t\treturn this;\n\t}\n\n\tisDropdown(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getContainer(), ButtonStyle.DROPDOWN);\n\t}\n\n\tsetCollapsed(collapsed: boolean = true): this\n\t{\n\t\tconst isAirWithoutText = this.hasAirDesign() && !this.getText();\n\t\tDom.toggleClass(this.getContainer(), ButtonStyle.COLLAPSED, collapsed || isAirWithoutText);\n\n\t\treturn this;\n\t}\n\n\tisCollapsed(): boolean\n\t{\n\t\treturn Dom.hasClass(this.getContainer(), ButtonStyle.COLLAPSED);\n\t}\n\n\t// works only with air buttons\n\tsetLeftCorners(withLeftCorners: boolean = true): this\n\t{\n\t\tDom.toggleClass(this.getContainer(), '--remove-left-corners', !withLeftCorners);\n\n\t\treturn this;\n\t}\n\n\t// works only with air buttons\n\tsetRightCorners(withRightCorners: boolean = true): this\n\t{\n\t\tDom.toggleClass(this.getContainer(), '--remove-right-corners', !withRightCorners);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @protected\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\tgetMenuBindElement(): HTMLElement\n\t{\n\t\treturn this.getContainer();\n\t}\n\n\tgetMenuClickElement(): HTMLElement\n\t{\n\t\treturn this.getContainer();\n\t}\n\n\t/**\n\t * @protected\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\tsetAirDesign(use: boolean) {\n\t\tsuper.setAirDesign(use);\n\n\t\tconst isButtonInOldFormat = !this.getContainer()?.querySelector('.ui-btn-text-inner');\n\n\t\tif (this.hasAirDesign() && isButtonInOldFormat)\n\t\t{\n\t\t\tDom.remove(this.textNode);\n\t\t\tthis.textNode = null;\n\t\t\tthis.setText(this.getText());\n\t\t}\n\t}\n\n\t/**\n\t * @protected\n\t */\n\thandleMenuClose(): void\n\t{\n\t\tthis.setActive(false);\n\t}\n\n\tgetMenuWindow(): Menu\n\t{\n\t\treturn this.menuWindow;\n\t}\n\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\tgetId(): ?string\n\t{\n\t\treturn this.id;\n\t}\n\n\tsetActive(active: boolean = true): this\n\t{\n\t\treturn this.setState(active ? ButtonState.ACTIVE : null);\n\t}\n\n\tisActive(): boolean\n\t{\n\t\treturn this.getState() === ButtonState.ACTIVE;\n\t}\n\n\tsetHovered(hovered: boolean = true): this\n\t{\n\t\treturn this.setState(hovered ? ButtonState.HOVER : null);\n\t}\n\n\tisHover(): boolean\n\t{\n\t\treturn this.getState() === ButtonState.HOVER;\n\t}\n\n\tsetDisabled(disabled: boolean = true): this\n\t{\n\t\tthis.setState(disabled ? ButtonState.DISABLED : null);\n\t\tsuper.setDisabled(disabled);\n\n\t\treturn this;\n\t}\n\n\tisDisabled(): boolean\n\t{\n\t\treturn this.getState() === ButtonState.DISABLED;\n\t}\n\n\tsetWaiting(waiting: boolean = true): this\n\t{\n\t\tthis.setState(waiting ? ButtonState.WAITING : null);\n\t\tthis.setProps({ disabled: waiting ? true : null });\n\n\t\treturn this;\n\t}\n\n\tisWaiting(): boolean\n\t{\n\t\treturn this.getState() === ButtonState.WAITING;\n\t}\n\n\tsetClocking(clocking: boolean = true): this\n\t{\n\t\tthis.setState(clocking ? ButtonState.CLOCKING : null);\n\t\tthis.setProps({ disabled: clocking ? true : null });\n\n\t\treturn this;\n\t}\n\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\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\tgetContext(): any\n\t{\n\t\treturn this.context;\n\t}\n\n\tsetWide(isWide: boolean): this\n\t{\n\t\tthis.#isWide = isWide === true;\n\n\t\tDom.toggleClass(this.getContainer(), '--wide', this.#isWide);\n\n\t\treturn this;\n\t}\n\n\tisWide(): boolean\n\t{\n\t\treturn this.#isWide;\n\t}\n\n\t// This method works only with useAirDesign: true option\n\tsetStyle(style: string): void\n\t{\n\t\tif (this.hasAirDesign() === false)\n\t\t{\n\t\t\tconsole.warn('Style option works only with air buttons.');\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (Object.values(AirButtonStyle).includes(style) === false)\n\t\t{\n\t\t\tconsole.warn('Undefined style option. Use value from AirButtonStyle');\n\n\t\t\treturn;\n\t\t}\n\n\t\tDom.removeClass(this.getContainer(), this.#style);\n\t\tDom.addClass(this.getContainer(), style);\n\n\t\tthis.#style = style;\n\t}\n\n\tgetStyle(): string\n\t{\n\t\treturn this.#style;\n\t}\n\n\tsetLeftCounter(options: ButtonCounterOptions | null): this\n\t{\n\t\tsuper.setLeftCounter(this.prepareCounterOptions(options));\n\n\t\treturn this;\n\t}\n\n\tsetRightCounter(options: ButtonCounterOptions | null): this\n\t{\n\t\tsuper.setRightCounter(this.prepareCounterOptions(options));\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @protected\n\t */\n\tprepareCounterOptions(options: ButtonCounterOptions | null): ButtonCounterOptions | null\n\t{\n\t\tif (!options)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\treturn {\n\t\t\t...options,\n\t\t\t...(this.getSize() ? { size: this.getSize() } : {}),\n\t\t};\n\t}\n\n\tstartShimmer(): void\n\t{\n\t\tconst highlighter = Tag.render`<span class=\"ui-button__shimmer\"></span>`;\n\n\t\tDom.append(highlighter, this.getContainer());\n\t}\n\n\tstopShimmer(): void\n\t{\n\t\tconst highlighter = this.getContainer().querySelector('.ui-button__shimmer');\n\n\t\tDom.remove(highlighter);\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\tstatic AI_WAITING = 'ui-btn-ai-waiting';\n}\n","/**\n * @namespace {BX.UI}\n */\nexport default class SplitSubButtonType\n{\n\tstatic MAIN = 'ui-btn-main';\n\tstatic MENU = 'ui-btn-menu';\n\tstatic SWITCHER = 'ui-btn-switcher';\n}\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 { Dom, Type } from 'main.core';\nimport { Switcher, SwitcherSize, SwitcherColor, AirSwitcherStyle } from 'ui.switcher';\n\nimport type { SplitSubButtonOptions, SplitButtonSwitcherButtonOptions } 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 = options.buttonType === SplitSubButtonType.MAIN\n\t\t\t? SplitSubButtonType.MAIN\n\t\t\t: SplitSubButtonType.MENU\n\t\t;\n\n\t\tif (options.buttonType === SplitSubButtonType.SWITCHER)\n\t\t{\n\t\t\toptions.baseClass += ' --switcher';\n\t\t}\n\n\t\tsuper(options);\n\n\t\tif (this.isSwitcherButton())\n\t\t{\n\t\t\tconst additionalSwitcherOptions = Type.isPlainObject(this.options.switcherOptions)\n\t\t\t\t? this.options.switcherOptions\n\t\t\t\t: {}\n\t\t\t;\n\n\t\t\tthis.#initSwitcher({\n\t\t\t\t...additionalSwitcherOptions,\n\t\t\t\tsize: this.options.switcherOptions.size,\n\t\t\t\tuseAirDesign: this.options.switcherOptions.useAirDesign === true,\n\t\t\t});\n\t\t}\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\tisSwitcherButton(): boolean\n\t{\n\t\treturn this.buttonType === SplitSubButtonType.SWITCHER;\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#renderSwitcher(container: HTMLElement): void\n\t{\n\t\tDom.clean(container);\n\n\t\treturn this.switcher?.renderTo(container);\n\t}\n\n\t#initSwitcher(switcherOptions: SplitButtonSwitcherButtonOptions = {}): void\n\t{\n\t\tif (switcherOptions.node)\n\t\t{\n\t\t\tthis.switcher = new Switcher({\n\t\t\t\tnode: switcherOptions.node,\n\t\t\t\tchecked: Dom.hasClass(switcherOptions.node, Switcher.classNameOff) === false,\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.switcher = new Switcher({\n\t\t\tsize: SwitcherSize.medium,\n\t\t\tcolor: SwitcherColor.green,\n\t\t\tstyle: AirSwitcherStyle.FILLED,\n\t\t\t...switcherOptions,\n\t\t});\n\n\t\tthis.#renderSwitcher(this.getContainer(), switcherOptions);\n\t}\n\n\tgetSwitcher(): Switcher\n\t{\n\t\treturn this.switcher;\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\tif (flag)\n\t\t{\n\t\t\tthis.getSwitcher()?.disable();\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}\n","import { SwitcherSize } from 'ui.switcher';\n\nimport ButtonSize from '../../button/button-size';\n\nconst switcherSizeByButton = Object.freeze({\n\t[ButtonSize.EXTRA_LARGE]: SwitcherSize.large,\n\t[ButtonSize.LARGE]: SwitcherSize.medium,\n\t[ButtonSize.MEDIUM]: SwitcherSize.small,\n\t[ButtonSize.SMALL]: SwitcherSize.extraSmall,\n\t[ButtonSize.EXTRA_SMALL]: SwitcherSize.extraSmall,\n\t[ButtonSize.EXTRA_EXTRA_SMALL]: SwitcherSize.extraExtraSmall,\n});\n\nexport const getSwitcherSizeByButtonSize = (buttonSize: ButtonSize): SwitcherSize => {\n\treturn switcherSizeByButton[buttonSize];\n};\n","import { Type, Tag } from 'main.core';\nimport { ButtonCounterOptions } from 'ui.buttons';\nimport type { Switcher } from 'ui.switcher';\n\nimport Button from '../button/button';\nimport SplitSubButton from './split-sub-button';\nimport SplitButtonState from './split-button-state';\nimport ButtonState from '../button/button-state';\nimport ButtonSize from '../button/button-size';\nimport SplitSubButtonType from './split-sub-button-type';\nimport ButtonTag from '../button/button-tag';\nimport { getSwitcherSizeByButtonSize } from './helpers/get-switcher-size';\nimport type { SplitButtonOptions } from './split-button-options';\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\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(): void\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({\n\t\t\t...mainOptions,\n\t\t\tuseAirDesign: this.options.useAirDesign,\n\t\t\tstyle: this.options.style,\n\t\t});\n\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\tif (Type.isPlainObject(this.options.switcher) || this.options.switcher === true)\n\t\t{\n\t\t\tconst addSwitcherOptions = Type.isPlainObject(this.options.switcher) ? this.options.switcher : {};\n\t\t\tconst buttonSize = Type.isStringFilled(this.options.size) ? this.options.size : ButtonSize.MEDIUM;\n\n\t\t\tthis.switcherButton = new SplitSubButton({\n\t\t\t\tbuttonType: SplitSubButtonType.SWITCHER,\n\t\t\t\tsplitButton: this,\n\t\t\t\tswitcherOptions: {\n\t\t\t\t\t...addSwitcherOptions,\n\t\t\t\t\tdisabled: this.options.disabled,\n\t\t\t\t\tsize: getSwitcherSizeByButtonSize(buttonSize),\n\t\t\t\t\tuseAirDesign: this.options.useAirDesign === true,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tsuper.init();\n\t}\n\n\tstatic State = SplitButtonState;\n\n\tgetContainer(): HTMLElement\n\t{\n\t\tthis.button ??= Tag.render`\n\t\t\t<div class=\"${this.getBaseClass()}\">\n\t\t\t\t${this.getMainButton().getContainer()}\n\t\t\t\t${(this.getSwitcherButton() ?? this.getMenuButton()).getContainer()}\n\t\t\t</div>\n\t\t`;\n\n\t\treturn this.button;\n\t}\n\n\tgetMainButton(): SplitSubButton\n\t{\n\t\treturn this.mainButton;\n\t}\n\n\tgetMenuButton(): SplitSubButton\n\t{\n\t\treturn this.menuButton;\n\t}\n\n\tgetSwitcherButton(): ?SplitSubButton\n\t{\n\t\treturn this.switcherButton;\n\t}\n\n\tgetSwitcher(): ?Switcher\n\t{\n\t\treturn this.getSwitcherButton()?.getSwitcher();\n\t}\n\n\tsetAirDesign(use: boolean): void\n\t{\n\t\tsuper.setAirDesign(use);\n\n\t\tthis.getSwitcher()?.setAirDesign(use);\n\t}\n\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\tgetText(): string\n\t{\n\t\treturn this.getMainButton().getText();\n\t}\n\n\tsetCounter(counter: number | string): this\n\t{\n\t\treturn this.getMainButton().setCounter(counter);\n\t}\n\n\t// use only with air buttons\n\tsetLeftCounter(options: ButtonCounterOptions | null): this\n\t{\n\t\tthis.getMainButton().setLeftCounter(this.prepareCounterOptions(options));\n\n\t\treturn this;\n\t}\n\n\t// use only with air buttons\n\tsetRightCounter(options: ButtonCounterOptions | null): this\n\t{\n\t\tthis.getMainButton().setRightCounter(this.prepareCounterOptions(options));\n\n\t\treturn this;\n\t}\n\n\tgetCounter(): number | string | null\n\t{\n\t\treturn this.getMainButton().getCounter();\n\t}\n\n\tsetLink(link: string): this\n\t{\n\t\treturn this.getMainButton().setLink(link);\n\t}\n\n\tgetLink(): string\n\t{\n\t\treturn this.getMainButton().getLink();\n\t}\n\n\tsetState(state: SplitButtonState | null): this\n\t{\n\t\treturn this.setProperty('state', state, SplitButtonState);\n\t}\n\n\tsetDisabled(disabled: boolean = true): this\n\t{\n\t\tthis.setState(disabled ? ButtonState.DISABLED : null);\n\t\tthis.getMainButton().setDisabled(disabled);\n\t\tthis.getMenuButton()?.setDisabled(disabled);\n\t\tthis.getSwitcherButton()?.setDisabled(disabled);\n\n\t\treturn this;\n\t}\n\n\t/**\n\t * @protected\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\n\t\treturn this.getContainer();\n\t}\n\n\t/**\n\t * @protected\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 */\n\tgetMenuClickElement(): HTMLElement\n\t{\n\t\treturn this.getMenuButton().getContainer();\n\t}\n\n\tgetMenuTarget(): SplitSubButtonType\n\t{\n\t\treturn this.menuTarget;\n\t}\n\n\tsetDropdown(dropdown: boolean = true): this\n\t{\n\t\treturn this;\n\t}\n\n\tisDropdown(): boolean\n\t{\n\t\treturn true;\n\t}\n}\n","import { Type, Reflection, Dom, Runtime, Tag } from 'main.core';\nimport { EventEmitter, BaseEvent } from 'main.core.events';\nimport { MenuItem } from 'main.popup';\nimport { Switcher } from 'ui.switcher';\nimport { Counter } from 'ui.cnt';\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';\nimport { AirButtonStyle } from './index';\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 switcherNode = 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\n\t\t\tswitcherNode = menuButton.querySelector(`.${Switcher.className}`) || null;\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 = this.#getTextNodeValue(textNode);\n\t\t\t}\n\t\t}\n\n\t\tconst useAirDesign = Dom.hasClass(node, '--air');\n\n\t\tconst options: ButtonOptions & SplitButtonOptions = {\n\t\t\tuseAirDesign,\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\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\tdependOnTheme: Dom.hasClass(node, ButtonStyle.DEPEND_ON_THEME),\n\t\t\tstyle: this.#getEnumProp(node, AirButtonStyle),\n\t\t\tswitcher: isSplitButton ? { node: switcherNode } : null,\n\t\t};\n\n\t\tif (Dom.hasClass(node, '--with-collapsed-icon') && this.#getEnumProp(node, ButtonIcon))\n\t\t{\n\t\t\toptions.collapsedIcon = this.#getEnumProp(node, ButtonIcon);\n\t\t}\n\t\telse if (this.#getEnumProp(node, ButtonIcon))\n\t\t{\n\t\t\toptions.icon = this.#getEnumProp(node, ButtonIcon);\n\t\t}\n\n\t\tif (useAirDesign)\n\t\t{\n\t\t\toptions.counterNode = undefined;\n\n\t\t\tif (this.#getCounter(counterNode))\n\t\t\t{\n\t\t\t\toptions.rightCounter = {\n\t\t\t\t\tvalue: this.#getCounter(counterNode),\n\t\t\t\t};\n\n\t\t\t\toptions.counterNode = undefined;\n\t\t\t\toptions.counter = undefined;\n\n\t\t\t\tif (Dom.hasClass(counterNode?.parentElement, 'ui-btn-right-counter'))\n\t\t\t\t{\n\t\t\t\t\tDom.remove(counterNode?.parentElement);\n\t\t\t\t}\n\n\t\t\t\tDom.remove(counterNode);\n\t\t\t}\n\t\t}\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') || node.querySelector('.ui-counter');\n\t\tconst isAirButton = Dom.hasClass(node, '--air');\n\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\tif (isAirButton)\n\t\t\t{\n\t\t\t\ttextNode = Tag.render`<span class=\"ui-btn-text\">${this.#getTextNodeValue(textNode)}</span>`;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ttextNode = Tag.render`<span class=\"ui-btn-text\">${node.innerHTML.trim()}</span>`;\n\t\t\t}\n\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) && Dom.hasClass(counterNode, Counter.BaseClassname))\n\t\t{\n\t\t\tconst textContent = counterNode.querySelector('.ui-counter__value')?.innerText;\n\t\t\tconst dataAttributeValue = Dom.attr(counterNode, 'data-value');\n\n\t\t\tconst counter = Number(dataAttributeValue || textContent);\n\n\t\t\treturn Type.isNumber(counter) ? counter : textContent;\n\t\t}\n\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 ToolbarManager = Reflection.getClass('BX.UI.ToolbarManager');\n\t\tconst toolbar = ToolbarManager?.getDefaultToolbar();\n\n\t\treturn toolbar ? toolbar.getButton(uniqId) : null;\n\t}\n\n\tstatic #getTextNodeValue(target: HTMLElement): string\n\t{\n\t\tif (!target)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tif (target.querySelector('.ui-btn-text-inner'))\n\t\t{\n\t\t\treturn target.querySelector('.ui-btn-text-inner')?.textContent || '';\n\t\t}\n\n\t\tconst childNodes = target.childNodes;\n\n\t\tfor (const node of childNodes)\n\t\t{\n\t\t\tif (node.nodeType === Node.TEXT_NODE && node.textContent.trim() !== '')\n\t\t\t{\n\t\t\t\treturn node.textContent.trim();\n\t\t\t}\n\t\t}\n\n\t\treturn '';\n\t}\n}\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":["ButtonCounter","options","validateOptions","Counter","color","ButtonCounterColor","DANGER","style","ButtonCounterStyle","FILLED_ALERT","size","ButtonCounterSize","MEDIUM","value","maxValue","usePercentSymbol","useSymbolPercent","useAirDesign","render","getValue","update","setColor","ButtonSize","getCounterSize","buttonSize","EXTRA_EXTRA_SMALL","SMALL","EXTRA_SMALL","LARGE","EXTRA_LARGE","ButtonTag","BaseButton","_classPrivateFieldInitSpec","event","events","type","call","Object","assign","getDefaultOptions","Type","isPlainObject","button","isDomNode","buttonNode","textNode","counterNode","text","counter","link","maxWidth","tag","isEnumValue","BUTTON","isStringFilled","LINK","baseClass","disabled","init","setDisabled","setAirDesign","setText","setCounter","setProps","props","setDataSet","dataset","addClass","className","setLink","setMaxWidth","hasAirDesign","leftCounter","setLeftCounter","rightCounter","setRightCounter","bindEvent","onclick","bindEvents","use","Dom","toggleClass","getContainer","node","append","Tag","getBaseClass","INPUT","SUBMIT","DIV","getTag","isString","isInputType","length","parentNode","prepend","textContentNode","querySelector","textContent","remove","console","warn","includes","isNumber","Error","href","attr","reserved","attributes","filter","name","startsWith","reduce","entries","forEach","property","getDataSet","removeClass","handler","isArray","eventName","unbindEvent","fn","isFunction","Event","bind","unbind","enumeration","values","ButtonColor","ButtonIcon","ButtonState","ButtonStyle","AirButtonStyle","Button","dependOnTheme","DEPEND_ON_THEME","BASE_CLASS","isDependOnTheme","icon","state","id","context","menuWindow","handleMenuClick","handleMenuClose","setDependOnTheme","setSize","setIcon","iconPosition","setState","setId","setMenu","menu","setContext","setWide","wide","setLeftCorners","removeLeftCorners","setRightCorners","removeRightCorners","collapsedIcon","setCollapsedIcon","setStyle","FILLED","setNoCaps","SplitButton","setCollapsed","noCaps","round","setRound","dropdown","getMenuWindow","setDropdown","COLLAPSED","setProperty","Icon","iconClass","left","right","Boolean","getIcon","NO_CAPS","hasClass","ROUND","DROPDOWN","collapsed","isAirWithoutText","getText","withLeftCorners","withRightCorners","items","Menu","Text","getRandom","toLowerCase","bindElement","getMenuBindElement","getPopupWindow","subscribe","getMenuClickElement","close","unsubscribe","destroy","show","setActive","isShown","isButtonInOldFormat","isNull","active","ACTIVE","getState","hovered","HOVER","DISABLED","waiting","WAITING","clocking","CLOCKING","isUndefined","isWide","prepareCounterOptions","getSize","highlighter","SplitButtonState","SplitSubButtonType","SplitSubButton","buttonType","MAIN","MENU","SWITCHER","_classPrivateMethodInitSpec","isSwitcherButton","additionalSwitcherOptions","switcherOptions","_classPrivateMethodGet","splitButton","isMenuButton","switcher","flag","toggleState","MAIN_ACTIVE","MENU_ACTIVE","getSplitButton","isMainButton","MAIN_DISABLED","MENU_DISABLED","getSwitcher","disable","MAIN_HOVER","MENU_HOVER","globalState","mainState","menuState","container","clean","renderTo","Switcher","checked","classNameOff","SwitcherSize","medium","SwitcherColor","green","AirSwitcherStyle","switcherSizeByButton","freeze","large","small","extraSmall","extraExtraSmall","getSwitcherSizeByButtonSize","mainButton","mainOptions","menuOptions","menuButton","menuTarget","addSwitcherOptions","switcherButton","getMainButton","getSwitcherButton","getMenuButton","getCounter","getLink","getMenuTarget","isActive","ButtonManager","isSplitButton","switcherNode","mainButtonOptions","menuButtonOptions","mainButtonTag","btnUniqid","undefined","parentElement","nodeOptions","Runtime","merge","document","createFromNode","uniqId","ToolbarManager","Reflection","getClass","toolbar","getDefaultToolbar","getButton","nodeName","isAirButton","innerHTML","trim","BaseClassname","innerText","dataAttributeValue","Number","key","hasOwnProperty","isObject","code","eval","args","BaseEvent","data","MenuItem","item","EventEmitter","emit","apply","eventFn","target","childNodes","nodeType","Node","TEXT_NODE","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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"}