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/cvetdv.ru/bitrix/js/ui/system/menu/dist/ |
Upload File : |
{"version":3,"file":"menu.bundle.js","sources":["../src/mouse.js","../src/const.js","../src/menu-item.js","../src/menu.js"],"sourcesContent":["import { Event } from 'main.core';\n\ntype MousePosition = {\n\ttop: number,\n\tleft: number,\n};\n\nclass Mouse\n{\n\t#delta: MousePosition = {\n\t\ttop: 0,\n\t\tleft: 0,\n\t};\n\n\t#position: MousePosition = {\n\t\ttop: 0,\n\t\tleft: 0,\n\t};\n\n\tconstructor()\n\t{\n\t\tEvent.bind(window, 'mousemove', this.#update);\n\t}\n\n\tgetPosition(): MousePosition\n\t{\n\t\treturn this.#position;\n\t}\n\n\tgetDelta(): MousePosition\n\t{\n\t\treturn this.#delta;\n\t}\n\n\t#update = (event: MouseEvent): void => {\n\t\tconst position = {\n\t\t\ttop: event.clientY + window.scrollY,\n\t\t\tleft: event.clientX + window.scrollX,\n\t\t};\n\n\t\tthis.#delta = {\n\t\t\ttop: position.top - this.#position.top,\n\t\t\tleft: position.left - this.#position.left,\n\t\t};\n\n\t\tthis.#position = position;\n\t};\n}\n\nexport const mouse = new Mouse();\n","export const MenuItemDesign = Object.freeze({\n\tDefault: 'default',\n\tAccent1: 'accent-1',\n\tAccent2: 'accent-2',\n\tAlert: 'alert',\n\tCopilot: 'copilot',\n\tDisabled: 'disabled',\n});\n\nexport const MenuSectionDesign = Object.freeze({\n\tDefault: 'default',\n\tAccent: 'accent',\n});\n\nexport const MenuRichHeaderDesign = Object.freeze({\n\tDefault: 'default',\n\tCopilot: 'copilot',\n});\n","import { Dom, Event, Tag, Text, Type } from 'main.core';\nimport { Counter, CounterColor } from 'ui.cnt';\nimport { Outline } from 'ui.icon-set.api.core';\nimport 'ui.icon-set.outline';\n\nimport { Menu } from './menu';\nimport { mouse } from './mouse';\nimport { MenuItemDesign } from './const';\nimport type { MenuItemOptions, MenuItemCallbacks } from './types';\n\nimport './menu-item.css';\n\nexport class MenuItem\n{\n\t#options: MenuItemOptions;\n\t#callbacks: MenuItemCallbacks;\n\n\t#subMenu: Menu;\n\t#element: HTMLElement;\n\t#showTimeout: number;\n\t#closeTimeout: number;\n\t#subMenuHovered: boolean;\n\n\tconstructor(options: MenuItemOptions, callbacks: MenuItemCallbacks)\n\t{\n\t\tconst defaultItemOptions: MenuItemOptions = {\n\t\t\tcloseOnSubItemClick: true,\n\t\t};\n\n\t\tthis.#options = { ...defaultItemOptions, ...options };\n\t\tthis.#callbacks = callbacks;\n\t}\n\n\tgetOptions(): MenuItemOptions\n\t{\n\t\treturn this.#options;\n\t}\n\n\tgetSubMenu(): Menu\n\t{\n\t\treturn this.#subMenu;\n\t}\n\n\trender(): HTMLElement\n\t{\n\t\tif (this.#element)\n\t\t{\n\t\t\treturn this.#element;\n\t\t}\n\n\t\tthis.#element = Tag.render`\n\t\t\t<div class=\"ui-popup-menu-item --${this.#options.design ?? MenuItemDesign.Default}\">\n\t\t\t\t${this.#renderHeader()}\n\t\t\t\t${this.#renderButtons()}\n\t\t\t</div>\n\t\t`;\n\n\t\tEvent.bind(this.#element, 'click', this.#options.onClick);\n\t\tEvent.bind(this.#element, 'mouseenter', this.#onMouseEnter);\n\t\tEvent.bind(this.#element, 'mouseleave', this.#onMouseLeave);\n\n\t\treturn this.#element;\n\t}\n\n\tshowSubMenu = (): void => {\n\t\tthis.#subMenuHovered = false;\n\t\tthis.#subMenu ??= new Menu({\n\t\t\t...this.#options.subMenu,\n\t\t\ttargetContainer: this.#callbacks.getTargetContainer(),\n\t\t\tautoHide: false,\n\t\t\titems: this.#options.subMenu.items.map((itemOptions: MenuItemOptions): MenuItemOptions => {\n\t\t\t\tif (!itemOptions)\n\t\t\t\t{\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\t...itemOptions,\n\t\t\t\t\tonClick: () => this.#onSubMenuItemClick(itemOptions),\n\t\t\t\t};\n\t\t\t}),\n\t\t\toffsetLeft: this.#element.offsetWidth,\n\t\t\toffsetTop: -this.#element.offsetHeight,\n\t\t\tbindOptions: {\n\t\t\t\tforceBindPosition: true,\n\t\t\t\tforceTop: true,\n\t\t\t\tforceLeft: true,\n\t\t\t},\n\t\t\tevents: {\n\t\t\t\tonFirstShow: this.#onFirstShow,\n\t\t\t\tonShow: this.#onShow,\n\t\t\t\tonClose: this.#onClose,\n\t\t\t\tonDestroy: this.#onClose,\n\t\t\t},\n\t\t});\n\n\t\tthis.#subMenu.show(this.#element);\n\t};\n\n\tadjustSubMenu = (): void => {\n\t\tif (!this.#subMenu)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tlet offsetLeft = this.#element.offsetWidth;\n\t\tlet offsetTop = -this.#element.offsetHeight;\n\t\tthis.#subMenu.getPopup().setOffset({ offsetLeft, offsetTop });\n\t\tthis.#subMenu.getPopup().adjustPosition();\n\n\t\tconst targetContainer = this.#callbacks.getTargetContainer();\n\t\tconst targetIsBody = targetContainer === document.body;\n\t\tconst targetRect = {\n\t\t\t...targetContainer.getBoundingClientRect().toJSON(),\n\t\t\t...(targetIsBody ? { top: 0 } : null),\n\t\t\t...(targetIsBody ? { right: window.innerWidth } : null),\n\t\t\t...(targetIsBody ? { bottom: window.innerHeight } : null),\n\t\t\t...(targetIsBody ? { left: 0 } : null),\n\t\t};\n\n\t\tlet popupRect = this.#subMenu.getPopupContainer().getBoundingClientRect();\n\t\tif (popupRect.right >= targetRect.right)\n\t\t{\n\t\t\toffsetLeft = -popupRect.width;\n\t\t}\n\n\t\tif (popupRect.bottom >= targetRect.bottom)\n\t\t{\n\t\t\toffsetTop = -popupRect.height;\n\t\t}\n\n\t\tthis.#subMenu.getPopup().setOffset({ offsetLeft, offsetTop });\n\t\tthis.#subMenu.getPopup().adjustPosition();\n\n\t\tpopupRect = this.#subMenu.getPopupContainer().getBoundingClientRect();\n\t\tif (popupRect.left <= targetRect.left)\n\t\t{\n\t\t\toffsetLeft = this.#element.offsetWidth;\n\t\t}\n\n\t\tif (popupRect.top <= targetRect.top)\n\t\t{\n\t\t\toffsetTop = -this.#element.offsetHeight;\n\t\t}\n\n\t\tthis.#subMenu.getPopup().setOffset({ offsetLeft, offsetTop });\n\t\tthis.#subMenu.getPopup().adjustPosition();\n\t};\n\n\tcloseSubMenu = (): void => {\n\t\tclearTimeout(this.#showTimeout);\n\t\tthis.#subMenu?.close();\n\t};\n\n\tcloseSubMenuWithTimeout(): void\n\t{\n\t\tclearTimeout(this.#closeTimeout);\n\t\tthis.#closeTimeout = setTimeout(this.closeSubMenu, 200);\n\t}\n\n\tdestroy(): void\n\t{\n\t\tthis.#subMenu?.destroy();\n\t}\n\n\t#onMouseEnter = (): void => {\n\t\tif (this.#options.design === MenuItemDesign.Disabled)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#subMenuHovered = false;\n\t\tthis.#callbacks.onMouseEnter?.();\n\t\tif (this.#options.subMenu)\n\t\t{\n\t\t\tclearTimeout(this.#closeTimeout);\n\t\t\tthis.#showTimeout = setTimeout(this.showSubMenu, 200);\n\t\t}\n\t};\n\n\t#onMouseLeave = (event: MouseEvent): void => {\n\t\tclearTimeout(this.#showTimeout);\n\n\t\tconst subMenuContainer = this.#subMenu?.getPopupContainer();\n\t\tif (!this.#subMenuHovered && subMenuContainer && !subMenuContainer.contains(event.relatedTarget))\n\t\t{\n\t\t\tconst distance = mouse.getPosition().left - subMenuContainer.getBoundingClientRect().left;\n\t\t\tconst distanceDelta = Math.abs(distance) - Math.abs(distance + mouse.getDelta().left);\n\t\t\tif (distanceDelta <= 1)\n\t\t\t{\n\t\t\t\tthis.closeSubMenu();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.closeSubMenuWithTimeout();\n\t\t\t}\n\t\t}\n\t};\n\n\t#onSubMenuItemClick(item: MenuItemOptions): void\n\t{\n\t\titem.onClick?.();\n\n\t\tif (!item.subMenu && this.#options.closeOnSubItemClick)\n\t\t{\n\t\t\tthis.#callbacks.onSubMenuItemClick?.();\n\t\t}\n\t}\n\n\t#onFirstShow = (): void => {\n\t\tEvent.bind(this.#subMenu.getPopupContainer(), 'mouseenter', (): void => {\n\t\t\tclearTimeout(this.#closeTimeout);\n\t\t\tthis.#subMenuHovered = true;\n\t\t});\n\t};\n\n\t#onShow = (): void => {\n\t\tthis.adjustSubMenu();\n\t\tDom.addClass(this.#element, '--hovered');\n\t};\n\n\t#onClose = (): void => {\n\t\tDom.removeClass(this.#element, '--hovered');\n\t};\n\n\t#renderHeader(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-popup-menu-item-header\">\n\t\t\t\t${this.#renderTitle()}\n\t\t\t\t${this.#renderSubtitle()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderTitle(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-popup-menu-item-title\">\n\t\t\t\t${this.#renderLock()}\n\t\t\t\t<div class=\"ui-popup-menu-item-title-text\">${Text.encode(this.#options.title)}</div>\n\t\t\t\t${this.#renderBadgeText()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderLock(): HTMLElement\n\t{\n\t\tif (!this.#options.isLocked)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-popup-menu-item-lock\">\n\t\t\t\t<div class=\"ui-icon-set --${Outline.LOCK_L}\"></div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderBadgeText(): HTMLElement\n\t{\n\t\tif (!Type.isStringFilled(this.#options.badgeText?.title))\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tconst color = this.#options.badgeText.color;\n\t\tconst style = color ? `--badge-color: ${color};` : '';\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-popup-menu-item-badge-text\" style=\"${style}\">\n\t\t\t\t${Text.encode(this.#options.badgeText.title)}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderSubtitle(): HTMLElement\n\t{\n\t\tif (!Type.isStringFilled(this.#options.subtitle))\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-popup-menu-item-subtitle\">${Text.encode(this.#options.subtitle)}</div>\n\t\t`;\n\t}\n\n\t#renderButtons(): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-popup-menu-item-buttons\">\n\t\t\t\t${this.#renderCheck()}\n\t\t\t\t${this.#renderExtra()}\n\t\t\t\t${this.#renderCounter()}\n\t\t\t\t${this.#renderIcon()}\n\t\t\t\t${this.#renderArrow()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderCheck(): HTMLElement\n\t{\n\t\tif (!Type.isBoolean(this.#options.isSelected))\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tif (!this.#options.isSelected)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-popup-menu-item-check\"></div>\n\t\t\t`;\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-popup-menu-item-check\">\n\t\t\t\t<div class=\"ui-icon-set --${Outline.CHECK_L}\"></div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderExtra(): HTMLElement\n\t{\n\t\tif (!this.#options.extraIcon)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tconst extra = Tag.render`\n\t\t\t<div class=\"ui-popup-menu-item-extra ${this.#options.extraIcon.isSelected ? '--selected' : ''}\">\n\t\t\t\t<div class=\"ui-icon-set --${this.#options.extraIcon.icon}\"></div>\n\t\t\t</div>\n\t\t`;\n\n\t\tEvent.bind(extra, 'click', (event: MouseEvent): void => {\n\t\t\tthis.#options.extraIcon.onClick();\n\t\t\tevent.stopPropagation();\n\t\t}, true);\n\n\t\treturn extra;\n\t}\n\n\t#renderCounter(): HTMLElement\n\t{\n\t\tif (!this.#options.counter)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tif (!this.#options.counter.value)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-popup-menu-item-counter\"></div>\n\t\t\t`;\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-popup-menu-item-counter\">\n\t\t\t\t${new Counter({ color: CounterColor.DANGER, ...this.#options.counter }).render()}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderIcon(): HTMLElement\n\t{\n\t\tif (this.#options.icon)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-popup-menu-item-icon\">\n\t\t\t\t\t<div class=\"ui-icon-set --${this.#options.icon}\"></div>\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\n\t\tif (this.#options.svg)\n\t\t{\n\t\t\treturn Tag.render`\n\t\t\t\t<div class=\"ui-popup-menu-item-svg\">\n\t\t\t\t\t${this.#options.svg}\n\t\t\t\t</div>\n\t\t\t`;\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t#renderArrow(): HTMLElement\n\t{\n\t\tif (!this.#options.subMenu)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-popup-menu-item-arrow\">\n\t\t\t\t<div class=\"ui-icon-set --${Outline.CHEVRON_RIGHT_L}\"></div>\n\t\t\t</div>\n\t\t`;\n\t}\n}\n","import { Dom, Event, Tag } from 'main.core';\nimport { Popup } from 'main.popup';\nimport { Main } from 'ui.icon-set.api.core';\nimport 'ui.icon-set.main';\n\nimport { MenuItem } from './menu-item';\nimport { MenuSectionDesign, MenuRichHeaderDesign } from './const';\nimport type { MenuOptions, MenuItemOptions, MenuSectionOptions } from './types';\nimport './menu.css';\n\nexport class Menu\n{\n\t#options: MenuOptions;\n\t#items: MenuItem[];\n\t#popup: Popup;\n\t#container: HTMLElement;\n\n\tconstructor(options: MenuOptions)\n\t{\n\t\tconst defaultOptions: MenuOptions = {\n\t\t\tnoAllPaddings: true,\n\t\t\tautoHide: true,\n\t\t\tautoHideHandler: this.#shouldHide,\n\t\t\tcloseOnItemClick: true,\n\t\t};\n\n\t\tthis.#options = { ...defaultOptions, ...options };\n\t}\n\n\tgetOptions(): MenuOptions\n\t{\n\t\treturn this.#options;\n\t}\n\n\tgetPopup(): Popup\n\t{\n\t\treturn this.#popup;\n\t}\n\n\tgetPopupContainer(): HTMLElement\n\t{\n\t\treturn this.#popup.getPopupContainer();\n\t}\n\n\tshow(bindElement: HTMLElement): void\n\t{\n\t\tthis.#items ??= this.#prepareItems(this.#options.items);\n\n\t\tthis.#popup ??= new Popup({\n\t\t\t...this.#options,\n\t\t\tcontent: this.#render(),\n\t\t\tevents: {\n\t\t\t\t...this.#options.events,\n\t\t\t\tonClose: this.#onPopupClose,\n\t\t\t\tonDestroy: this.#onPopupDestroy,\n\t\t\t\tonBeforeAdjustPosition: this.#onBeforeAdjustPosition,\n\t\t\t},\n\t\t});\n\n\t\tthis.#popup.setBindElement(bindElement ?? this.#options.bindElement);\n\t\tthis.#popup.show();\n\t}\n\n\tupdateItems(itemsOptions: MenuItemOptions[]): void\n\t{\n\t\tconst openedItem = this.#items?.find((item: MenuItem) => item.getSubMenu()?.getPopup()?.isShown());\n\n\t\tthis.#items?.forEach((item: MenuItem): void => item.destroy());\n\t\tthis.#items = this.#prepareItems(itemsOptions);\n\t\tthis.#render();\n\n\t\tif (openedItem && !openedItem?.getSubMenu().getOptions().closeOnItemClick)\n\t\t{\n\t\t\tthis.#items.find((item: MenuItem) => item.getOptions().id === openedItem.getOptions().id)?.showSubMenu();\n\t\t}\n\t}\n\n\tclose(): void\n\t{\n\t\tthis.#popup.close();\n\t}\n\n\tdestroy(): void\n\t{\n\t\tthis.#items?.forEach((item) => item.destroy());\n\t\tthis.#popup.destroy();\n\t}\n\n\t#shouldHide = (event: MouseEvent): void => {\n\t\tconst notSelfClick = !this.getPopupContainer().contains(event.target);\n\t\tconst notSubMenuClick = !this.#items.some((item) => {\n\t\t\treturn item.getSubMenu()?.getPopupContainer()?.contains(event.target);\n\t\t});\n\n\t\treturn notSelfClick && notSubMenuClick;\n\t};\n\n\t#onPopupClose = (): void => {\n\t\tthis.#items.forEach((item: MenuItem): void => item.closeSubMenu());\n\t\tthis.#options.events?.onClose?.();\n\t};\n\n\t#onPopupDestroy = (): void => {\n\t\tthis.#options.events?.onDestroy?.();\n\t\tthis.destroy();\n\t};\n\n\t#onBeforeAdjustPosition = (): void => {\n\t\tthis.#items.forEach((item: MenuItem): void => item.adjustSubMenu());\n\t};\n\n\t#prepareItems(itemsOptions: MenuItemOptions[]): MenuItem[]\n\t{\n\t\tconst items: MenuItem[] = itemsOptions.map((itemOptions: ?MenuItemOptions): MenuItem => {\n\t\t\tif (!itemOptions)\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst item: MenuItem = new MenuItem(\n\t\t\t\t{\n\t\t\t\t\t...itemOptions,\n\t\t\t\t\tonClick: (): void => this.#onItemClick(itemOptions),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tgetTargetContainer: () => this.getPopup().getTargetContainer(),\n\t\t\t\t\tonMouseEnter: () => items.filter((it) => it !== item).forEach((it) => it.closeSubMenuWithTimeout()),\n\t\t\t\t\tonSubMenuItemClick: this.#onSubMenuItemClick,\n\t\t\t\t},\n\t\t\t);\n\n\t\t\treturn item;\n\t\t}).filter((it) => it);\n\n\t\treturn items;\n\t}\n\n\t#onItemClick = (itemOptions: MenuItemOptions): void => {\n\t\titemOptions.onClick?.();\n\n\t\tif (!itemOptions.subMenu && this.#options.closeOnItemClick)\n\t\t{\n\t\t\tthis.close();\n\t\t}\n\t};\n\n\t#onSubMenuItemClick = (): void => {\n\t\tif (this.#options.closeOnItemClick)\n\t\t{\n\t\t\tthis.close();\n\t\t}\n\t};\n\n\t#render(): HTMLElement\n\t{\n\t\tthis.#container ??= Tag.render`\n\t\t\t<div class=\"ui-popup-menu-container\"></div>\n\t\t`;\n\n\t\tconst itemsContainer = Tag.render`\n\t\t\t<div class=\"ui-popup-menu-items\">\n\t\t\t\t${this.#renderRichHeader()}\n\t\t\t\t${this.#renderItems()}\n\t\t\t</div>\n\t\t`;\n\n\t\tDom.clean(this.#container);\n\t\tDom.append(itemsContainer, this.#container);\n\n\t\treturn this.#container;\n\t}\n\n\t#renderRichHeader(): HTMLElement\n\t{\n\t\tif (!this.#options.richHeader)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\tconst design = this.#options.richHeader.design ?? MenuRichHeaderDesign.Default;\n\t\tconst richHeader = Tag.render`\n\t\t\t<div class=\"ui-popup-menu-rich-header --${design}\">\n\t\t\t\t<div class=\"ui-popup-menu-rich-header-image\">\n\t\t\t\t\t<div class=\"ui-icon-set --${this.#getRichHeaderIcon(design)}\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ui-popup-menu-rich-header-header\">\n\t\t\t\t\t${this.#renderRichHeaderSubtitle()}\n\t\t\t\t\t<div class=\"ui-popup-menu-rich-header-title\">\n\t\t\t\t\t\t${this.#options.richHeader.title}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"ui-popup-menu-rich-header-buttons\">\n\t\t\t\t\t${this.#renderRichHeaderIcon()}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\n\t\tif (this.#options.richHeader.onClick)\n\t\t{\n\t\t\tEvent.bind(richHeader, 'click', this.#options.richHeader.onClick);\n\t\t}\n\n\t\treturn richHeader;\n\t}\n\n\t#getRichHeaderIcon(design: string): string\n\t{\n\t\treturn {\n\t\t\t[MenuRichHeaderDesign.Default]: Main.DIAMOND,\n\t\t\t[MenuRichHeaderDesign.Copilot]: Main.COPILOT_AI,\n\t\t}[design] ?? Main.DIAMOND;\n\t}\n\n\t#renderRichHeaderSubtitle(): HTMLElement\n\t{\n\t\tif (!this.#options.richHeader.subtitle)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-popup-menu-rich-header-subtitle\">\n\t\t\t\t${this.#options.richHeader.subtitle}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderRichHeaderIcon(): HTMLElement\n\t{\n\t\tif (!this.#options.richHeader.icon)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-popup-menu-rich-header-icon\">\n\t\t\t\t<div class=\"ui-icon-set --${this.#options.richHeader.icon}\"></div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderItems(): HTMLElement[]\n\t{\n\t\tconst baseSection = 'base';\n\t\tconst itemsBySection = this.#items.reduce((result, item) => {\n\t\t\tconst sectionCode = item.getOptions().sectionCode ?? baseSection;\n\t\t\tconst sectionItems = result[sectionCode] ?? [];\n\n\t\t\treturn {\n\t\t\t\t...result,\n\t\t\t\t[sectionCode]: [...sectionItems, item],\n\t\t\t};\n\t\t}, {});\n\n\t\treturn [\n\t\t\t...(itemsBySection[baseSection]?.map((item) => item.render()) ?? []),\n\t\t\t...(this.#options.sections?.flatMap((options: MenuSectionOptions) => {\n\t\t\t\tconst items = itemsBySection[options.code];\n\t\t\t\tif (!items)\n\t\t\t\t{\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\tthis.#renderSection(options),\n\t\t\t\t\t...(items.map((item) => item.render()) ?? []),\n\t\t\t\t];\n\t\t\t}) ?? []).filter((it) => it),\n\t\t];\n\t}\n\n\t#renderSection(options: MenuSectionOptions): HTMLElement\n\t{\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-popup-menu-section --${options.design ?? MenuSectionDesign.Default}\">\n\t\t\t\t${this.#renderSectionTitle(options.title)}\n\t\t\t\t<div class=\"ui-popup-menu-section-divider\"></div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderSectionTitle(title: string): HTMLElement\n\t{\n\t\tif (!title)\n\t\t{\n\t\t\treturn '';\n\t\t}\n\n\t\treturn Tag.render`\n\t\t\t<div class=\"ui-popup-menu-section-title\">${title}</div>\n\t\t`;\n\t}\n}\n"],"names":["Mouse","constructor","top","left","event","position","clientY","window","scrollY","clientX","scrollX","Event","bind","getPosition","getDelta","mouse","MenuItemDesign","Object","freeze","Default","Accent1","Accent2","Alert","Copilot","Disabled","MenuSectionDesign","Accent","MenuRichHeaderDesign","MenuItem","options","callbacks","showSubMenu","Menu","subMenu","targetContainer","getTargetContainer","autoHide","items","map","itemOptions","onClick","offsetLeft","offsetWidth","offsetTop","offsetHeight","bindOptions","forceBindPosition","forceTop","forceLeft","events","onFirstShow","onShow","onClose","onDestroy","show","adjustSubMenu","getPopup","setOffset","adjustPosition","targetIsBody","document","body","targetRect","getBoundingClientRect","toJSON","right","innerWidth","bottom","innerHeight","popupRect","getPopupContainer","width","height","closeSubMenu","clearTimeout","close","design","onMouseEnter","setTimeout","subMenuContainer","contains","relatedTarget","distance","distanceDelta","Math","abs","closeSubMenuWithTimeout","Dom","addClass","removeClass","defaultItemOptions","closeOnSubItemClick","getOptions","getSubMenu","render","Tag","destroy","item","onSubMenuItemClick","Text","encode","title","isLocked","Outline","LOCK_L","Type","isStringFilled","badgeText","color","style","subtitle","isBoolean","isSelected","CHECK_L","extraIcon","extra","icon","stopPropagation","counter","value","Counter","CounterColor","DANGER","svg","CHEVRON_RIGHT_L","notSelfClick","target","notSubMenuClick","some","forEach","closeOnItemClick","defaultOptions","noAllPaddings","autoHideHandler","bindElement","Popup","content","onBeforeAdjustPosition","setBindElement","updateItems","itemsOptions","openedItem","find","isShown","id","filter","it","itemsContainer","clean","append","richHeader","Main","DIAMOND","COPILOT_AI","baseSection","itemsBySection","reduce","result","sectionCode","sectionItems","sections","flatMap","code"],"mappings":"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"}