This commit is contained in:
root
2025-11-13 19:52:28 +03:00
parent 8aeeb05b7d
commit 807dec3b6c
4646 changed files with 163445 additions and 626017 deletions

View File

@@ -10,6 +10,7 @@ return [
'rel' => [
'main.popup',
'ui.icon-set.main',
'ui.buttons',
'ui.cnt',
'ui.icon-set.api.core',
'ui.icon-set.outline',

View File

@@ -125,32 +125,53 @@
/* ui-popup-menu-item */
.ui-popup-menu-item {
box-sizing: border-box;
position: relative;
}
.ui-popup-menu-item.--is-ui-button {
padding: 5px var(--pmenu-cell-padding-LR) 5px var(--pmenu-cell-padding-LR);
}
/* ui-popup-menu-item-action */
.ui-popup-menu-item-action {
/* normalize */
border-radius: 0;
border: none;
padding: 0;
background-color: transparent;
text-align: left;
font-family: inherit;
/* normalize end */
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
padding-left: var(--pmenu-cell-padding-LR);
padding-right: var(--pmenu-cell-padding-LR);
gap: 20px;
padding: 1px var(--pmenu-cell-padding-LR) 1px var(--pmenu-cell-padding-LR);
width: 100%;
min-height: 35px;
white-space: nowrap;
cursor: pointer;
}
.ui-popup-menu-item.--disabled {
.ui-popup-menu-item.--disabled .ui-popup-menu-item-action {
cursor: default;
}
.ui-popup-menu-item.--hovered,
.ui-popup-menu-item:not(.--disabled):hover {
.ui-popup-menu-item.--hovered .ui-popup-menu-item-action,
.ui-popup-menu-item-action:hover {
box-shadow: inset 0 0 0 999px rgb(from var(--ui-color-bg-state-hover-default-hex) r g b / var(--ui-color-bg-state-hover-default-opacity));
}
.ui-popup-menu-item:not(.--disabled):active {
.ui-popup-menu-item.--disabled .ui-popup-menu-item-action:hover {
box-shadow: none;
}
.ui-popup-menu-item-action:active {
box-shadow: inset 0 0 0 999px rgb(from var(--ui-color-bg-state-click-default-hex) r g b / var(--ui-color-bg-state-click-default-opacity));
}
.ui-popup-menu-item.--disabled .ui-popup-menu-item-action:active {
box-shadow: none;
}
.ui-popup-menu-item-header {
padding-top: var(--pmenu-cell-padding-TB);
padding-bottom: var(--pmenu-cell-padding-TB);
padding: var(--pmenu-cell-padding-TB) 0 var(--pmenu-cell-padding-TB) 0;
}
/* ui-popup-menu-item-title */
@@ -158,57 +179,43 @@
display: flex;
}
/* ui-popup-menu-item-title-text */
.ui-popup-menu-item-title-text {
line-height: var(--pmenu-title-line-height);
color: var(--ui-color-base-1);
font-size: var(--ui-font-size-md);
}
.ui-popup-menu-item.--accent-2 .ui-popup-menu-item-title-text {
color: var(--ui-color-accent-main-primary);
}
.ui-popup-menu-item.--alert .ui-popup-menu-item-title-text {
color: var(--ui-color-accent-main-alert);
}
.ui-popup-menu-item.--copilot .ui-popup-menu-item-title-text {
color: var(--ui-color-copilot-accent-primary);
}
.ui-popup-menu-item.--disabled .ui-popup-menu-item-title-text {
color: var(--ui-color-base-5);
}
/* ui-popup-menu-item-subtitle */
.ui-popup-menu-item-subtitle {
color: var(--ui-color-base-4);
font-size: var(--ui-font-size-xs);
}
.ui-popup-menu-item.--accent-2 .ui-popup-menu-item-subtitle {
color: var(--ui-color-accent-main-primary-alt-2);
}
.ui-popup-menu-item.--alert .ui-popup-menu-item-subtitle {
color: var(--ui-color-accent-soft-border-red);
}
.ui-popup-menu-item.--copilot .ui-popup-menu-item-subtitle {
color: var(--ui-color-copilot-bg-content-3);
}
.ui-popup-menu-item.--disabled .ui-popup-menu-item-subtitle {
color: var(--ui-color-base-5);
}
/* ui-popup-menu-item-badge-text */
.ui-popup-menu-item-badge-text {
--badge-color: var(--ui-color-accent-main-success);
@@ -216,7 +223,6 @@
color: var(--badge-color);
font-size: var(--ui-font-size-4xs);
}
.ui-popup-menu-item.--disabled .ui-popup-menu-item-badge-text {
color: var(--ui-color-base-5);
}
@@ -227,7 +233,6 @@
.ui-popup-menu-item-buttons {
display: flex;
gap: var(--ui-space-inline-2xs2);
margin-left: 20px;
}
.ui-popup-menu-item-icon {
@@ -238,20 +243,16 @@
.ui-popup-menu-item .ui-icon-set {
--ui-icon-set__icon-base-color: var(--ui-color-base-5);
}
.ui-popup-menu-item.--accent-1 .ui-icon-set,
.ui-popup-menu-item.--accent-2 .ui-icon-set {
--ui-icon-set__icon-base-color: var(--ui-color-accent-main-primary-alt-2);
}
.ui-popup-menu-item.--alert .ui-icon-set {
--ui-icon-set__icon-base-color: var(--ui-color-accent-soft-border-red);
}
.ui-popup-menu-item.--copilot .ui-icon-set {
--ui-icon-set__icon-base-color: var(--ui-color-copilot-bg-content-3);
}
.ui-popup-menu-item.--disabled .ui-icon-set {
--ui-icon-set__icon-base-color: var(--ui-color-base-7);
}

View File

@@ -1,7 +1,7 @@
/* eslint-disable */
this.BX = this.BX || {};
this.BX.UI = this.BX.UI || {};
(function (exports,main_popup,ui_iconSet_main,ui_cnt,ui_iconSet_api_core,ui_iconSet_outline,main_core) {
(function (exports,main_popup,ui_iconSet_main,ui_buttons,ui_cnt,ui_iconSet_api_core,ui_iconSet_outline,main_core) {
'use strict';
var _delta = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("delta");
@@ -80,7 +80,8 @@ this.BX.UI = this.BX.UI || {};
_t12,
_t13,
_t14,
_t15;
_t15,
_t16;
var _options = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("options");
var _callbacks = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("callbacks");
var _subMenu = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("subMenu");
@@ -331,19 +332,25 @@ this.BX.UI = this.BX.UI || {};
return babelHelpers.classPrivateFieldLooseBase(this, _subMenu)[_subMenu];
}
render() {
var _babelHelpers$classPr7;
if (babelHelpers.classPrivateFieldLooseBase(this, _element)[_element]) {
return babelHelpers.classPrivateFieldLooseBase(this, _element)[_element];
}
const uiButtonOptions = babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].uiButtonOptions;
const isUiButton = Boolean(uiButtonOptions);
const classNameIsUiButton = isUiButton ? ' --is-ui-button' : '';
const classNameDesign = babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].design ? ` --${babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].design}` : '';
babelHelpers.classPrivateFieldLooseBase(this, _element)[_element] = main_core.Tag.render(_t || (_t = _`
<div class="ui-popup-menu-item --${0}">
${0}
<div class="ui-popup-menu-item${0}${0}">
${0}
</div>
`), (_babelHelpers$classPr7 = babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].design) != null ? _babelHelpers$classPr7 : MenuItemDesign.Default, babelHelpers.classPrivateFieldLooseBase(this, _renderHeader)[_renderHeader](), babelHelpers.classPrivateFieldLooseBase(this, _renderButtons)[_renderButtons]());
main_core.Event.bind(babelHelpers.classPrivateFieldLooseBase(this, _element)[_element], 'click', babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].onClick);
main_core.Event.bind(babelHelpers.classPrivateFieldLooseBase(this, _element)[_element], 'mouseenter', babelHelpers.classPrivateFieldLooseBase(this, _onMouseEnter)[_onMouseEnter]);
main_core.Event.bind(babelHelpers.classPrivateFieldLooseBase(this, _element)[_element], 'mouseleave', babelHelpers.classPrivateFieldLooseBase(this, _onMouseLeave)[_onMouseLeave]);
`), classNameIsUiButton, classNameDesign, isUiButton ? new ui_buttons.Button(uiButtonOptions).render() : main_core.Tag.render(_t2 || (_t2 = _`
<button
class="ui-popup-menu-item-action"
onclick="${0}"
onmouseenter="${0}"
onmouseleave="${0}"
>${0}${0}</button>
`), babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].onClick, babelHelpers.classPrivateFieldLooseBase(this, _onMouseEnter)[_onMouseEnter], babelHelpers.classPrivateFieldLooseBase(this, _onMouseLeave)[_onMouseLeave], babelHelpers.classPrivateFieldLooseBase(this, _renderHeader)[_renderHeader](), babelHelpers.classPrivateFieldLooseBase(this, _renderButtons)[_renderButtons]()));
return babelHelpers.classPrivateFieldLooseBase(this, _element)[_element];
}
closeSubMenuWithTimeout() {
@@ -351,19 +358,19 @@ this.BX.UI = this.BX.UI || {};
babelHelpers.classPrivateFieldLooseBase(this, _closeTimeout)[_closeTimeout] = setTimeout(this.closeSubMenu, 200);
}
destroy() {
var _babelHelpers$classPr8;
(_babelHelpers$classPr8 = babelHelpers.classPrivateFieldLooseBase(this, _subMenu)[_subMenu]) == null ? void 0 : _babelHelpers$classPr8.destroy();
var _babelHelpers$classPr7;
(_babelHelpers$classPr7 = babelHelpers.classPrivateFieldLooseBase(this, _subMenu)[_subMenu]) == null ? void 0 : _babelHelpers$classPr7.destroy();
}
}
function _onSubMenuItemClick2(item) {
item.onClick == null ? void 0 : item.onClick();
if (!item.subMenu && babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].closeOnSubItemClick) {
var _babelHelpers$classPr9, _babelHelpers$classPr10;
(_babelHelpers$classPr9 = (_babelHelpers$classPr10 = babelHelpers.classPrivateFieldLooseBase(this, _callbacks)[_callbacks]).onSubMenuItemClick) == null ? void 0 : _babelHelpers$classPr9.call(_babelHelpers$classPr10);
var _babelHelpers$classPr8, _babelHelpers$classPr9;
(_babelHelpers$classPr8 = (_babelHelpers$classPr9 = babelHelpers.classPrivateFieldLooseBase(this, _callbacks)[_callbacks]).onSubMenuItemClick) == null ? void 0 : _babelHelpers$classPr8.call(_babelHelpers$classPr9);
}
}
function _renderHeader2() {
return main_core.Tag.render(_t2 || (_t2 = _`
return main_core.Tag.render(_t3 || (_t3 = _`
<div class="ui-popup-menu-item-header">
${0}
${0}
@@ -371,7 +378,7 @@ this.BX.UI = this.BX.UI || {};
`), babelHelpers.classPrivateFieldLooseBase(this, _renderTitle)[_renderTitle](), babelHelpers.classPrivateFieldLooseBase(this, _renderSubtitle)[_renderSubtitle]());
}
function _renderTitle2() {
return main_core.Tag.render(_t3 || (_t3 = _`
return main_core.Tag.render(_t4 || (_t4 = _`
<div class="ui-popup-menu-item-title">
${0}
<div class="ui-popup-menu-item-title-text">${0}</div>
@@ -383,20 +390,20 @@ this.BX.UI = this.BX.UI || {};
if (!babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].isLocked) {
return '';
}
return main_core.Tag.render(_t4 || (_t4 = _`
return main_core.Tag.render(_t5 || (_t5 = _`
<div class="ui-popup-menu-item-lock">
<div class="ui-icon-set --${0}"></div>
</div>
`), ui_iconSet_api_core.Outline.LOCK_L);
}
function _renderBadgeText2() {
var _babelHelpers$classPr11;
if (!main_core.Type.isStringFilled((_babelHelpers$classPr11 = babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].badgeText) == null ? void 0 : _babelHelpers$classPr11.title)) {
var _babelHelpers$classPr10;
if (!main_core.Type.isStringFilled((_babelHelpers$classPr10 = babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].badgeText) == null ? void 0 : _babelHelpers$classPr10.title)) {
return '';
}
const color = babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].badgeText.color;
const style = color ? `--badge-color: ${color};` : '';
return main_core.Tag.render(_t5 || (_t5 = _`
return main_core.Tag.render(_t6 || (_t6 = _`
<div class="ui-popup-menu-item-badge-text" style="${0}">
${0}
</div>
@@ -406,12 +413,12 @@ this.BX.UI = this.BX.UI || {};
if (!main_core.Type.isStringFilled(babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].subtitle)) {
return '';
}
return main_core.Tag.render(_t6 || (_t6 = _`
return main_core.Tag.render(_t7 || (_t7 = _`
<div class="ui-popup-menu-item-subtitle">${0}</div>
`), main_core.Text.encode(babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].subtitle));
}
function _renderButtons2() {
return main_core.Tag.render(_t7 || (_t7 = _`
return main_core.Tag.render(_t8 || (_t8 = _`
<div class="ui-popup-menu-item-buttons">
${0}
${0}
@@ -426,11 +433,11 @@ this.BX.UI = this.BX.UI || {};
return '';
}
if (!babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].isSelected) {
return main_core.Tag.render(_t8 || (_t8 = _`
return main_core.Tag.render(_t9 || (_t9 = _`
<div class="ui-popup-menu-item-check"></div>
`));
}
return main_core.Tag.render(_t9 || (_t9 = _`
return main_core.Tag.render(_t10 || (_t10 = _`
<div class="ui-popup-menu-item-check">
<div class="ui-icon-set --${0}"></div>
</div>
@@ -440,7 +447,7 @@ this.BX.UI = this.BX.UI || {};
if (!babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].extraIcon) {
return '';
}
const extra = main_core.Tag.render(_t10 || (_t10 = _`
const extra = main_core.Tag.render(_t11 || (_t11 = _`
<div class="ui-popup-menu-item-extra ${0}">
<div class="ui-icon-set --${0}"></div>
</div>
@@ -456,11 +463,11 @@ this.BX.UI = this.BX.UI || {};
return '';
}
if (!babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].counter.value) {
return main_core.Tag.render(_t11 || (_t11 = _`
return main_core.Tag.render(_t12 || (_t12 = _`
<div class="ui-popup-menu-item-counter"></div>
`));
}
return main_core.Tag.render(_t12 || (_t12 = _`
return main_core.Tag.render(_t13 || (_t13 = _`
<div class="ui-popup-menu-item-counter">
${0}
</div>
@@ -471,14 +478,14 @@ this.BX.UI = this.BX.UI || {};
}
function _renderIcon2() {
if (babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].icon) {
return main_core.Tag.render(_t13 || (_t13 = _`
return main_core.Tag.render(_t14 || (_t14 = _`
<div class="ui-popup-menu-item-icon">
<div class="ui-icon-set --${0}"></div>
</div>
`), babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].icon);
}
if (babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].svg) {
return main_core.Tag.render(_t14 || (_t14 = _`
return main_core.Tag.render(_t15 || (_t15 = _`
<div class="ui-popup-menu-item-svg">
${0}
</div>
@@ -490,7 +497,7 @@ this.BX.UI = this.BX.UI || {};
if (!babelHelpers.classPrivateFieldLooseBase(this, _options)[_options].subMenu) {
return '';
}
return main_core.Tag.render(_t15 || (_t15 = _`
return main_core.Tag.render(_t16 || (_t16 = _`
<div class="ui-popup-menu-item-arrow">
<div class="ui-icon-set --${0}"></div>
</div>
@@ -622,6 +629,7 @@ this.BX.UI = this.BX.UI || {};
const defaultOptions = {
noAllPaddings: true,
autoHide: true,
closeByEsc: true,
autoHideHandler: babelHelpers.classPrivateFieldLooseBase(this, _shouldHide)[_shouldHide],
closeOnItemClick: true
};
@@ -810,5 +818,5 @@ this.BX.UI = this.BX.UI || {};
exports.MenuSectionDesign = MenuSectionDesign;
exports.MenuRichHeaderDesign = MenuRichHeaderDesign;
}((this.BX.UI.System = this.BX.UI.System || {}),BX.Main,BX,BX.UI,BX.UI.IconSet,BX,BX));
}((this.BX.UI.System = this.BX.UI.System || {}),BX.Main,BX,BX.UI,BX.UI,BX.UI.IconSet,BX,BX));
//# sourceMappingURL=menu.bundle.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,31 +1,52 @@
/* ui-popup-menu-item */
.ui-popup-menu-item {
box-sizing: border-box;
position: relative;
}
.ui-popup-menu-item.--is-ui-button {
padding: 5px var(--pmenu-cell-padding-LR) 5px var(--pmenu-cell-padding-LR);
}
/* ui-popup-menu-item-action */
.ui-popup-menu-item-action {
/* normalize */
border-radius: 0;
border: none;
padding: 0;
background-color: transparent;
text-align: left;
font-family: inherit;
/* normalize end */
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
padding-left: var(--pmenu-cell-padding-LR);
padding-right: var(--pmenu-cell-padding-LR);
gap: 20px;
padding: 1px var(--pmenu-cell-padding-LR) 1px var(--pmenu-cell-padding-LR);
width: 100%;
min-height: 35px;
white-space: nowrap;
cursor: pointer;
}
.ui-popup-menu-item.--disabled {
.ui-popup-menu-item.--disabled .ui-popup-menu-item-action {
cursor: default;
}
.ui-popup-menu-item.--hovered,
.ui-popup-menu-item:not(.--disabled):hover {
.ui-popup-menu-item.--hovered .ui-popup-menu-item-action,
.ui-popup-menu-item-action:hover {
box-shadow: inset 0 0 0 999px rgb(from var(--ui-color-bg-state-hover-default-hex) r g b / var(--ui-color-bg-state-hover-default-opacity));
}
.ui-popup-menu-item:not(.--disabled):active {
.ui-popup-menu-item.--disabled .ui-popup-menu-item-action:hover {
box-shadow: none;
}
.ui-popup-menu-item-action:active {
box-shadow: inset 0 0 0 999px rgb(from var(--ui-color-bg-state-click-default-hex) r g b / var(--ui-color-bg-state-click-default-opacity));
}
.ui-popup-menu-item.--disabled .ui-popup-menu-item-action:active {
box-shadow: none;
}
.ui-popup-menu-item-header {
padding-top: var(--pmenu-cell-padding-TB);
padding-bottom: var(--pmenu-cell-padding-TB);
padding: var(--pmenu-cell-padding-TB) 0 var(--pmenu-cell-padding-TB) 0;
}
/* ui-popup-menu-item-title */
@@ -33,57 +54,43 @@
display: flex;
}
/* ui-popup-menu-item-title-text */
.ui-popup-menu-item-title-text {
line-height: var(--pmenu-title-line-height);
color: var(--ui-color-base-1);
font-size: var(--ui-font-size-md);
}
.ui-popup-menu-item.--accent-2 .ui-popup-menu-item-title-text {
color: var(--ui-color-accent-main-primary);
}
.ui-popup-menu-item.--alert .ui-popup-menu-item-title-text {
color: var(--ui-color-accent-main-alert);
}
.ui-popup-menu-item.--copilot .ui-popup-menu-item-title-text {
color: var(--ui-color-copilot-accent-primary);
}
.ui-popup-menu-item.--disabled .ui-popup-menu-item-title-text {
color: var(--ui-color-base-5);
}
/* ui-popup-menu-item-subtitle */
.ui-popup-menu-item-subtitle {
color: var(--ui-color-base-4);
font-size: var(--ui-font-size-xs);
}
.ui-popup-menu-item.--accent-2 .ui-popup-menu-item-subtitle {
color: var(--ui-color-accent-main-primary-alt-2);
}
.ui-popup-menu-item.--alert .ui-popup-menu-item-subtitle {
color: var(--ui-color-accent-soft-border-red);
}
.ui-popup-menu-item.--copilot .ui-popup-menu-item-subtitle {
color: var(--ui-color-copilot-bg-content-3);
}
.ui-popup-menu-item.--disabled .ui-popup-menu-item-subtitle {
color: var(--ui-color-base-5);
}
/* ui-popup-menu-item-badge-text */
.ui-popup-menu-item-badge-text {
--badge-color: var(--ui-color-accent-main-success);
@@ -91,7 +98,6 @@
color: var(--badge-color);
font-size: var(--ui-font-size-4xs);
}
.ui-popup-menu-item.--disabled .ui-popup-menu-item-badge-text {
color: var(--ui-color-base-5);
}
@@ -102,7 +108,6 @@
.ui-popup-menu-item-buttons {
display: flex;
gap: var(--ui-space-inline-2xs2);
margin-left: 20px;
}
.ui-popup-menu-item-icon {
@@ -113,20 +118,16 @@
.ui-popup-menu-item .ui-icon-set {
--ui-icon-set__icon-base-color: var(--ui-color-base-5);
}
.ui-popup-menu-item.--accent-1 .ui-icon-set,
.ui-popup-menu-item.--accent-2 .ui-icon-set {
--ui-icon-set__icon-base-color: var(--ui-color-accent-main-primary-alt-2);
}
.ui-popup-menu-item.--alert .ui-icon-set {
--ui-icon-set__icon-base-color: var(--ui-color-accent-soft-border-red);
}
.ui-popup-menu-item.--copilot .ui-icon-set {
--ui-icon-set__icon-base-color: var(--ui-color-copilot-bg-content-3);
}
.ui-popup-menu-item.--disabled .ui-icon-set {
--ui-icon-set__icon-base-color: var(--ui-color-base-7);
}

View File

@@ -1,4 +1,5 @@
import { Dom, Event, Tag, Text, Type } from 'main.core';
import { Button as UiButton } from 'ui.buttons';
import { Counter, CounterColor } from 'ui.cnt';
import { Outline } from 'ui.icon-set.api.core';
import 'ui.icon-set.outline';
@@ -48,17 +49,27 @@ export class MenuItem
return this.#element;
}
const uiButtonOptions = this.#options.uiButtonOptions;
const isUiButton = Boolean(uiButtonOptions);
const classNameIsUiButton = isUiButton ? ' --is-ui-button' : '';
const classNameDesign = this.#options.design ? ` --${this.#options.design}` : '';
this.#element = Tag.render`
<div class="ui-popup-menu-item --${this.#options.design ?? MenuItemDesign.Default}">
${this.#renderHeader()}
${this.#renderButtons()}
<div class="ui-popup-menu-item${classNameIsUiButton}${classNameDesign}">
${isUiButton
? new UiButton(uiButtonOptions).render()
: Tag.render`
<button
class="ui-popup-menu-item-action"
onclick="${this.#options.onClick}"
onmouseenter="${this.#onMouseEnter}"
onmouseleave="${this.#onMouseLeave}"
>${this.#renderHeader()}${this.#renderButtons()}</button>
`
}
</div>
`;
Event.bind(this.#element, 'click', this.#options.onClick);
Event.bind(this.#element, 'mouseenter', this.#onMouseEnter);
Event.bind(this.#element, 'mouseleave', this.#onMouseLeave);
return this.#element;
}

View File

@@ -20,6 +20,7 @@ export class Menu
const defaultOptions: MenuOptions = {
noAllPaddings: true,
autoHide: true,
closeByEsc: true,
autoHideHandler: this.#shouldHide,
closeOnItemClick: true,
};

View File

@@ -1,5 +1,6 @@
import type { PopupOptions } from 'main.popup';
import type { CounterOptions } from 'ui.cnt';
import type { ButtonOptions } from 'ui.buttons';
export type MenuOptions = PopupOptions & {
sections: MenuSectionOptions[],
@@ -34,6 +35,7 @@ export type MenuItemOptions = {
subMenu: MenuOptions[],
isLocked: boolean,
closeOnSubItemClick: boolean,
uiButtonOptions: ButtonOptions,
};
type BadgeText = {