{"version":3,"file":"primeng-menu.mjs","sources":["../../src/menu/style/menustyle.ts","../../src/menu/menu-token.ts","../../src/menu/menu-item-content.ts","../../src/menu/menu.ts","../../src/menu/primeng-menu.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/menu';\nimport { BaseStyle } from 'primeng/base';\n\nconst inlineStyles = {\n    root: ({ instance }) => ({\n        position: instance.popup() ? 'absolute' : 'relative',\n        ...instance.style()\n    })\n};\n\nconst classes = {\n    root: ({ instance }) => [\n        'p-menu p-component',\n        {\n            'p-menu-overlay': instance.popup()\n        }\n    ],\n    start: 'p-menu-start',\n    list: 'p-menu-list',\n    submenuLabel: 'p-menu-submenu-label',\n    submenuList: 'p-menu-submenu-list',\n    separator: 'p-menu-separator',\n    end: 'p-menu-end',\n    item: ({ instance, item, id, toggleable }) => [\n        'p-menu-item',\n        {\n            'p-menu-item-toggleable': toggleable,\n            'p-focus': instance.focusedOptionId() && id === instance.focusedOptionId(),\n            'p-disabled': instance.disabled(item.disabled)\n        },\n        item.styleClass\n    ],\n    itemContent: 'p-menu-item-content',\n    itemLink: 'p-menu-item-link',\n    itemIcon: ({ item }) => ['p-menu-item-icon', item.icon, item.iconClass],\n    itemLabel: 'p-menu-item-label',\n    itemSubmenuIcon: 'p-menu-item-submenu-icon'\n};\n\n@Injectable()\nexport class MenuStyle extends BaseStyle {\n    name = 'menu';\n\n    style = style;\n\n    classes = classes;\n\n    inlineStyles = inlineStyles;\n}\n\n/**\n *\n * Menu is a navigation / command component that supports dynamic and static positioning.\n *\n * [Live Demo](https://www.primeng.org/menu/)\n *\n * @module menustyle\n *\n */\n\nexport enum MenuClasses {\n    /**\n     * Class name of the root element\n     */\n    root = 'p-menu',\n    /**\n     * Class name of the start element\n     */\n    start = 'p-menu-start',\n    /**\n     * Class name of the list element\n     */\n    list = 'p-menu-list',\n    /**\n     * Class name of the submenu label element (non-toggleable group headers)\n     */\n    submenuLabel = 'p-menu-submenu-label',\n    /**\n     * Class name of the nested submenu list element\n     */\n    submenuList = 'p-menu-submenu-list',\n    /**\n     * Class name of the separator element\n     */\n    separator = 'p-menu-separator',\n    /**\n     * Class name of the end element\n     */\n    end = 'p-menu-end',\n    /**\n     * Class name of the item element\n     */\n    item = 'p-menu-item',\n    /**\n     * Class name of the item content element\n     */\n    itemContent = 'p-menu-item-content',\n    /**\n     * Class name of the item link element\n     */\n    itemLink = 'p-menu-item-link',\n    /**\n     * Class name of the item icon element\n     */\n    itemIcon = 'p-menu-item-icon',\n    /**\n     * Class name of the item label element\n     */\n    itemLabel = 'p-menu-item-label',\n    /**\n     * Class name of the item submenu toggle icon element (toggleable items)\n     */\n    itemSubmenuIcon = 'p-menu-item-submenu-icon'\n}\n\nexport interface MenuStyle extends BaseStyle {}\n","import { InjectionToken } from '@angular/core';\n\nexport const MENU_INSTANCE = new InjectionToken<any>('MENU_INSTANCE');\n","import { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, Component, inject, input, numberAttribute, output, Pipe, PipeTransform, PLATFORM_ID, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\nimport { RouterModule } from '@angular/router';\nimport { MenuItem, SharedModule } from 'primeng/api';\nimport { BadgeModule } from 'primeng/badge';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { BindModule } from 'primeng/bind';\nimport { Ripple } from 'primeng/ripple';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { MenuItemTemplateContext } from 'primeng/types/menu';\nimport { ChevronDown as ChevronDownIcon } from '@primeicons/angular/chevron-down';\nimport { MenuStyle } from './style/menustyle';\nimport type { Menu } from './menu';\nimport { MENU_INSTANCE } from './menu-token';\n\n@Pipe({\n    name: 'safeHtml',\n    standalone: true\n})\nexport class SafeHtmlPipe implements PipeTransform {\n    private platformId = inject(PLATFORM_ID);\n    private sanitizer = inject(DomSanitizer);\n\n    public transform(value: string): SafeHtml {\n        if (!value || !isPlatformBrowser(this.platformId)) {\n            return value;\n        }\n\n        return this.sanitizer.bypassSecurityTrustHtml(value);\n    }\n}\n\n@Component({\n    selector: '[pMenuItemContent]',\n    standalone: true,\n    imports: [NgTemplateOutlet, RouterModule, Ripple, TooltipModule, BadgeModule, SharedModule, SafeHtmlPipe, BindModule, ChevronDownIcon],\n    template: `\n        @let _item = item();\n        <div [class]=\"cx('itemContent')\" (click)=\"onItemClick($event, _item)\" [attr.data-pc-section]=\"'itemcontent'\" [pBind]=\"getPTOptions('itemContent')\">\n            @if (!itemTemplate()) {\n                @if (!_item?.routerLink) {\n                    <a\n                        [attr.title]=\"_item?.title\"\n                        [attr.href]=\"_item?.url || null\"\n                        [attr.data-automationid]=\"_item?.automationId\"\n                        [attr.tabindex]=\"-1\"\n                        [class]=\"cn(cx('itemLink'), _item?.linkClass)\"\n                        [style]=\"_item?.linkStyle\"\n                        [target]=\"_item?.target\"\n                        [pBind]=\"getPTOptions('itemLink')\"\n                        [attr.data-pc-section]=\"'itemlink'\"\n                        pRipple\n                    >\n                        <ng-container *ngTemplateOutlet=\"itemContent; context: { $implicit: _item }\"></ng-container>\n                    </a>\n                } @else {\n                    <a\n                        [routerLink]=\"_item?.routerLink\"\n                        [attr.data-automationid]=\"_item?.automationId\"\n                        [attr.tabindex]=\"-1\"\n                        [attr.title]=\"_item?.title\"\n                        [queryParams]=\"_item?.queryParams\"\n                        routerLinkActive=\"p-menu-item-link-active\"\n                        [routerLinkActiveOptions]=\"getRouterLinkActiveOptions(_item)\"\n                        [class]=\"cn(cx('itemLink'), _item?.linkClass)\"\n                        [style]=\"_item?.linkStyle\"\n                        [target]=\"_item?.target\"\n                        [fragment]=\"_item?.fragment\"\n                        [queryParamsHandling]=\"_item?.queryParamsHandling\"\n                        [preserveFragment]=\"_item?.preserveFragment\"\n                        [skipLocationChange]=\"_item?.skipLocationChange\"\n                        [replaceUrl]=\"_item?.replaceUrl\"\n                        [state]=\"_item?.state\"\n                        [pBind]=\"getPTOptions('itemLink')\"\n                        [attr.data-pc-section]=\"'itemlink'\"\n                        pRipple\n                    >\n                        <ng-container *ngTemplateOutlet=\"itemContent; context: { $implicit: _item }\"></ng-container>\n                    </a>\n                }\n            } @else {\n                <ng-container *ngTemplateOutlet=\"itemTemplate(); context: { $implicit: _item }\"></ng-container>\n            }\n\n            <ng-template #itemContent>\n                @if (_item?.icon) {\n                    <span [class]=\"cn(cx('itemIcon', { item: _item }), _item?.iconClass)\" [pBind]=\"getPTOptions('itemIcon')\" [style]=\"_item?.iconStyle\" [attr.data-pc-section]=\"'itemicon'\"></span>\n                }\n                @if (_item?.escape !== false) {\n                    <span [class]=\"cn(cx('itemLabel'), _item?.labelClass)\" [style]=\"_item?.labelStyle\" [pBind]=\"getPTOptions('itemLabel')\" [attr.data-pc-section]=\"'itemlabel'\">{{ _item?.label }}</span>\n                } @else {\n                    <span [class]=\"cn(cx('itemLabel'), _item?.labelClass)\" [style]=\"_item?.labelStyle\" [attr.data-pc-section]=\"'itemlabel'\" [innerHTML]=\"_item?.label | safeHtml\" [pBind]=\"getPTOptions('itemLabel')\"></span>\n                }\n                @if (toggleable()) {\n                    @if (submenuIconTemplate()) {\n                        <ng-container *ngTemplateOutlet=\"submenuIconTemplate()!; context: { $implicit: _item }\"></ng-container>\n                    } @else {\n                        <svg [pBind]=\"getPTOptions('itemSubmenuIcon')\" data-p-icon=\"chevron-down\" [class]=\"cx('itemSubmenuIcon')\" [attr.aria-hidden]=\"true\" [attr.data-expanded]=\"expanded() || null\" />\n                    }\n                }\n                @if (_item?.badge) {\n                    <p-badge [class]=\"_item?.badgeStyleClass\" [value]=\"_item?.badge\" [pt]=\"getPTOptions('pcBadge')\" [unstyled]=\"unstyled()\" />\n                }\n            </ng-template>\n        </div>\n        <ng-content></ng-content>\n    `,\n    encapsulation: ViewEncapsulation.None,\n    providers: [MenuStyle]\n})\nexport class MenuItemContent extends BaseComponent {\n    item = input<MenuItem | undefined>(undefined, { alias: 'pMenuItemContent' });\n\n    itemTemplate = input<TemplateRef<MenuItemTemplateContext> | undefined>();\n\n    menuitemId = input<string>('');\n\n    idx = input<number>(0);\n\n    toggleable = input(false, { transform: booleanAttribute });\n\n    expanded = input(false, { transform: booleanAttribute });\n\n    depth = input(0, { transform: numberAttribute });\n\n    submenuIconTemplate = input<TemplateRef<any> | undefined>();\n\n    onMenuItemClick = output<{ originalEvent: Event; item: MenuItem | undefined }>();\n\n    menu = inject<Menu>(MENU_INSTANCE);\n\n    _componentStyle = inject(MenuStyle);\n\n    hostName = 'Menu';\n\n    onItemClick(event: Event, item: MenuItem | undefined) {\n        if (this.toggleable()) {\n            event.preventDefault();\n            this.menu.toggleSubmenu(item!, this.menuitemId(), this.depth());\n            this.menu.focusedOptionIndex.set(this.menuitemId());\n            this.menu.focusMenuList();\n            return;\n        }\n\n        this.onMenuItemClick.emit({ originalEvent: event, item });\n    }\n\n    getRouterLinkActiveOptions(item: MenuItem | undefined) {\n        return item?.routerLinkActiveOptions || { exact: false };\n    }\n\n    getPTOptions(key: string) {\n        return this.menu.getPTOptions(key, this.item(), this.idx(), this.menuitemId());\n    }\n}\n","import { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, ElementRef, inject, input, model, NgModule, numberAttribute, output, signal, TemplateRef, viewChild, ViewEncapsulation, ViewRef } from '@angular/core';\nimport { MotionEvent, MotionOptions } from '@primeuix/motion';\nimport { absolutePosition, addStyle, appendChild, find, findSingle, focus, isTouchDevice, uuid } from '@primeuix/utils';\nimport { MenuItem, OverlayService, SharedModule } from 'primeng/api';\nimport { BaseComponent, PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { Bind, BindModule } from 'primeng/bind';\nimport { ConnectedOverlayScrollHandler } from 'primeng/dom';\nimport { MotionModule } from 'primeng/motion';\nimport { TooltipModule } from 'primeng/tooltip';\nimport type { AppendTo, CSSProperties } from 'primeng/types/shared';\nimport { VoidListener } from 'primeng/ts-helpers';\nimport { MenuExpandedKeys, MenuItemTemplateContext, MenuPassThrough, MenuSubmenuHeaderTemplateContext } from 'primeng/types/menu';\nimport { ZIndexUtils } from 'primeng/utils';\nimport { MenuItemContent, SafeHtmlPipe } from './menu-item-content';\nimport { MENU_INSTANCE } from './menu-token';\nimport { MenuStyle } from './style/menustyle';\n\n/**\n * Menu is a navigation / command component that supports dynamic and static positioning.\n * @group Components\n */\n@Component({\n    selector: 'p-menu',\n    standalone: true,\n    imports: [NgTemplateOutlet, MenuItemContent, TooltipModule, SharedModule, SafeHtmlPipe, BindModule, MotionModule],\n    template: `\n        @if (!popup() || overlayVisible()) {\n            <div\n                #container\n                [class]=\"cn(cx('root'), styleClass())\"\n                [style]=\"sx('root')\"\n                (click)=\"onOverlayClick($event)\"\n                [attr.id]=\"$id()\"\n                [pBind]=\"ptm('root')\"\n                [attr.data-p]=\"dataP()\"\n                [pMotion]=\"visible() || !popup()\"\n                [pMotionName]=\"'p-anchored-overlay'\"\n                [pMotionAppear]=\"!!popup()\"\n                [pMotionDisabled]=\"!popup()\"\n                [pMotionOptions]=\"computedMotionOptions()\"\n                (pMotionOnBeforeEnter)=\"onOverlayBeforeEnter($event)\"\n                (pMotionOnAfterLeave)=\"onOverlayAfterLeave()\"\n            >\n                @if (startTemplate()) {\n                    <div [class]=\"cx('start')\" [pBind]=\"ptm('start')\" [attr.data-pc-section]=\"'start'\">\n                        <ng-container *ngTemplateOutlet=\"startTemplate()\"></ng-container>\n                    </div>\n                }\n                <ul\n                    #list\n                    [class]=\"cx('list')\"\n                    [pBind]=\"ptm('list')\"\n                    role=\"menu\"\n                    [attr.id]=\"$id() + '_list'\"\n                    [attr.tabindex]=\"getTabIndexValue()\"\n                    [attr.data-pc-section]=\"'menu'\"\n                    [attr.aria-activedescendant]=\"activedescendant()\"\n                    [attr.aria-label]=\"ariaLabel()\"\n                    [attr.aria-labelledBy]=\"ariaLabelledBy()\"\n                    (focus)=\"onListFocus($event)\"\n                    (blur)=\"onListBlur($event)\"\n                    (keydown)=\"onListKeyDown($event)\"\n                >\n                    <ng-container *ngTemplateOutlet=\"recursiveItems; context: { $implicit: model(), depth: 0, parentId: $id() }\"></ng-container>\n                    <ng-template #recursiveItems let-items let-depth=\"depth\" let-parentId=\"parentId\">\n                        @for (item of items; track menuitemId(item, parentId, i); let i = $index) {\n                            @if (isSeparatorVisible(item)) {\n                                <li [class]=\"cx('separator')\" [pBind]=\"ptm('separator')\" role=\"separator\" [attr.data-pc-section]=\"'separator'\"></li>\n                            }\n                            @if (!item.separator && isVisible(item)) {\n                                @if (item.items?.length && !isSubmenuToggleable(item, depth)) {\n                                    <li\n                                        [class]=\"cx('submenuLabel')\"\n                                        [attr.data-depth]=\"depth || null\"\n                                        [pBind]=\"ptm('submenuLabel')\"\n                                        [attr.data-automationid]=\"item.automationId\"\n                                        pTooltip\n                                        [tooltipOptions]=\"item.tooltipOptions\"\n                                        [pTooltipUnstyled]=\"unstyled()\"\n                                        role=\"none\"\n                                        [attr.id]=\"menuitemId(item, parentId, i)\"\n                                        [attr.data-pc-section]=\"'submenulabel'\"\n                                    >\n                                        @if (!submenuHeaderTemplate()) {\n                                            @if (item.escape !== false) {\n                                                <span>{{ item.label }}</span>\n                                            } @else {\n                                                <span [innerHTML]=\"item.label | safeHtml\"></span>\n                                            }\n                                        }\n                                        <ng-container *ngTemplateOutlet=\"submenuHeaderTemplate(); context: { $implicit: item }\"></ng-container>\n                                    </li>\n                                    <ng-container *ngTemplateOutlet=\"recursiveItems; context: { $implicit: item.items, depth: depth + 1, parentId: menuitemId(item, parentId, i) }\"></ng-container>\n                                } @else {\n                                    <li\n                                        [class]=\"cn(cx('item', { item, id: menuitemId(item, parentId, i), toggleable: !!item.items?.length && isSubmenuToggleable(item, depth) }), item?.styleClass)\"\n                                        [pBind]=\"ptm('item')\"\n                                        [pMenuItemContent]=\"item\"\n                                        [itemTemplate]=\"itemTemplate()\"\n                                        [idx]=\"i\"\n                                        [menuitemId]=\"menuitemId(item, parentId, i)\"\n                                        [toggleable]=\"!!item.items?.length && isSubmenuToggleable(item, depth)\"\n                                        [expanded]=\"isSubmenuExpanded(item, depth, menuitemId(item, parentId, i))\"\n                                        [depth]=\"depth\"\n                                        [submenuIconTemplate]=\"submenuIconTemplate()\"\n                                        [style]=\"item.style\"\n                                        (onMenuItemClick)=\"itemClick($event, menuitemId(item, parentId, i))\"\n                                        pTooltip\n                                        [tooltipOptions]=\"item.tooltipOptions\"\n                                        [pTooltipUnstyled]=\"unstyled()\"\n                                        [unstyled]=\"unstyled()\"\n                                        role=\"menuitem\"\n                                        [attr.aria-label]=\"label(item.label)\"\n                                        [attr.aria-haspopup]=\"!!item.items?.length && isSubmenuToggleable(item, depth) ? 'true' : null\"\n                                        [attr.aria-expanded]=\"!!item.items?.length && isSubmenuToggleable(item, depth) ? isSubmenuExpanded(item, depth, menuitemId(item, parentId, i)) : null\"\n                                        [attr.data-focused]=\"isItemFocused(menuitemId(item, parentId, i))\"\n                                        [attr.data-disabled]=\"disabled(item.disabled)\"\n                                        [attr.data-toggleable]=\"(!!item.items?.length && isSubmenuToggleable(item, depth)) || null\"\n                                        [attr.data-depth]=\"!!item.items?.length && isSubmenuToggleable(item, depth) ? depth : null\"\n                                        [attr.aria-disabled]=\"disabled(item.disabled)\"\n                                        [attr.id]=\"menuitemId(item, parentId, i)\"\n                                        [attr.data-pc-section]=\"'item'\"\n                                        (click)=\"onItemLiClick($event, item, menuitemId(item, parentId, i), depth)\"\n                                        (mousedown)=\"onItemLiMousedown($event, item, depth)\"\n                                    >\n                                        @if (!!item.items?.length && isSubmenuToggleable(item, depth) && isSubmenuExpanded(item, depth, menuitemId(item, parentId, i))) {\n                                            <ul [class]=\"cx('submenuList')\" [pBind]=\"ptm('submenuList')\" role=\"menu\">\n                                                <ng-container *ngTemplateOutlet=\"recursiveItems; context: { $implicit: item.items, depth: depth + 1, parentId: menuitemId(item, parentId, i) }\"></ng-container>\n                                            </ul>\n                                        }\n                                    </li>\n                                }\n                            }\n                        }\n                    </ng-template>\n                </ul>\n                @if (endTemplate()) {\n                    <div [class]=\"cx('end')\" [pBind]=\"ptm('end')\" [attr.data-pc-section]=\"'end'\">\n                        <ng-container *ngTemplateOutlet=\"endTemplate()\"></ng-container>\n                    </div>\n                }\n            </div>\n        }\n    `,\n\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    encapsulation: ViewEncapsulation.None,\n    providers: [MenuStyle, { provide: MENU_INSTANCE, useExisting: Menu }, { provide: PARENT_INSTANCE, useExisting: Menu }],\n    hostDirectives: [Bind]\n})\nexport class Menu extends BaseComponent<MenuPassThrough> {\n    componentName = 'Menu';\n\n    /**\n     * An array of menuitems.\n     * @group Props\n     */\n    model = input<MenuItem[]>();\n    /**\n     * Defines if menu would displayed as a popup.\n     * @group Props\n     */\n    popup = input(false, { transform: booleanAttribute });\n    /**\n     * Inline style of the component.\n     * @group Props\n     */\n    style = input<CSSProperties>();\n    /**\n     * Style class of the component.\n     * @group Props\n     */\n    styleClass = input<string>();\n    /**\n     * Whether to automatically manage layering.\n     * @group Props\n     */\n    autoZIndex = input(true, { transform: booleanAttribute });\n    /**\n     * Base zIndex value to use in layering.\n     * @group Props\n     */\n    baseZIndex = input(0, { transform: numberAttribute });\n    /**\n     * Defines a string value that labels an interactive element.\n     * @group Props\n     */\n    ariaLabel = input<string>();\n    /**\n     * Identifier of the underlying input element.\n     * @group Props\n     */\n    ariaLabelledBy = input<string>();\n    /**\n     * Current id state as a string.\n     * @group Props\n     */\n    id = input<string>();\n    /**\n     * Index of the element in tabbing order.\n     * @group Props\n     */\n    tabindex = input(0, { transform: numberAttribute });\n    /**\n     * Target element to attach the overlay, valid values are \"body\" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]=\"mydiv\" for a div element having #mydiv as variable name).\n     * @defaultValue 'self'\n     * @group Props\n     */\n    appendTo = input<AppendTo>(undefined);\n    /**\n     * The motion options.\n     * @group Props\n     */\n    motionOptions = input<MotionOptions | undefined>(undefined);\n    /**\n     * When provided, switches the component to controlled mode; each key is the DOM id of a toggleable submenu header and the value its expansion flag.\n     * Use two-way binding with `[(expandedKeys)]`.\n     * @group Props\n     */\n    expandedKeys = model<MenuExpandedKeys>();\n\n    /**\n     * Callback to invoke when overlay menu is shown.\n     * @group Emits\n     */\n    onShow = output<object>();\n    /**\n     * Callback to invoke when overlay menu is hidden.\n     * @group Emits\n     */\n    onHide = output<object>();\n    /**\n     * Callback to invoke when the list loses focus.\n     * @param {Event} event - blur event.\n     * @group Emits\n     */\n    onBlur = output<Event>();\n    /**\n     * Callback to invoke when the list receives focus.\n     * @param {Event} event - focus event.\n     * @group Emits\n     */\n    onFocus = output<Event>();\n\n    /**\n     * Defines template option for start.\n     * @group Templates\n     */\n    startTemplate = contentChild<TemplateRef<void>>('start', { descendants: false });\n\n    /**\n     * Defines template option for end.\n     * @group Templates\n     */\n    endTemplate = contentChild<TemplateRef<void>>('end', { descendants: false });\n\n    /**\n     * Custom item template.\n     * @param {MenuItemTemplateContext} context - item context.\n     * @see {@link MenuItemTemplateContext}\n     * @group Templates\n     */\n    itemTemplate = contentChild<TemplateRef<MenuItemTemplateContext>>('item', { descendants: false });\n\n    /**\n     * Custom submenu header template.\n     * @param {MenuSubmenuHeaderTemplateContext} context - submenu header context.\n     * @see {@link MenuSubmenuHeaderTemplateContext}\n     * @group Templates\n     */\n    submenuHeaderTemplate = contentChild<TemplateRef<MenuSubmenuHeaderTemplateContext>>('submenuheader', { descendants: false });\n\n    /**\n     * Custom submenu toggle icon template.\n     * @param {MenuSubmenuHeaderTemplateContext} context - submenu header context.\n     * @see {@link MenuSubmenuHeaderTemplateContext}\n     * @group Templates\n     */\n    submenuIconTemplate = contentChild<TemplateRef<MenuSubmenuHeaderTemplateContext>>('submenuicon', { descendants: false });\n\n    listViewChild = viewChild<ElementRef>('list');\n\n    containerViewChild = viewChild<ElementRef>('container');\n\n    private _internalId = uuid('pn_id_');\n\n    $id = computed(() => this.id() || this._internalId);\n\n    $appendTo = computed(() => this.appendTo() || this.config.overlayAppendTo());\n\n    computedMotionOptions = computed<MotionOptions>(() => {\n        return {\n            ...this.ptm('motion'),\n            ...this.motionOptions()\n        };\n    });\n\n    container: HTMLElement | undefined;\n\n    scrollHandler: ConnectedOverlayScrollHandler | null | undefined;\n\n    documentClickListener: VoidListener;\n\n    documentResizeListener: VoidListener;\n\n    preventDocumentDefault: boolean | undefined;\n\n    target: HTMLElement | null = null;\n\n    visible = signal(false);\n\n    focusedOptionId = computed(() => {\n        return this.focusedOptionIndex() !== -1 ? this.focusedOptionIndex() : null;\n    });\n\n    focusedOptionIndex = signal<string | number>(-1);\n\n    selectedOptionIndex = signal<number>(-1);\n\n    focused = signal(false);\n\n    overlayVisible = signal(false);\n\n    d_expandedKeys = signal<MenuExpandedKeys>({});\n\n    currentExpandedKeys = computed(() => {\n        return this.expandedKeys() !== undefined ? this.expandedKeys()! : this.d_expandedKeys();\n    });\n\n    $pcMenu: Menu | undefined = inject(MENU_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n    overlayService = inject(OverlayService);\n\n    _componentStyle = inject(MenuStyle);\n\n    bindDirectiveInstance = inject(Bind, { self: true });\n\n    onAfterViewChecked() {\n        this.bindDirectiveInstance.setAttrs(this.ptm('host'));\n    }\n\n    dataP = computed(() => {\n        return this.cn({\n            popup: this.popup()\n        });\n    });\n\n    getPTOptions(key: string, item: MenuItem | undefined, index: number, id: string) {\n        return this.ptm(key, {\n            context: {\n                item: item,\n                index: index,\n                focused: this.isItemFocused(id),\n                disabled: this.disabled(item?.disabled)\n            }\n        });\n    }\n    /**\n     * Toggles the visibility of the popup menu.\n     * @param {Event} event - Browser event.\n     * @group Method\n     */\n    public toggle(event: Event) {\n        if (this.visible()) this.hide();\n        else this.show(event);\n\n        this.preventDocumentDefault = true;\n    }\n    /**\n     * Displays the popup menu.\n     * @param {Event} event - Browser event.\n     * @group Method\n     */\n    public show(event: Event) {\n        // Clear container if exists but overlay is not currently visible (fast toggle case)\n        if (this.container && !this.overlayVisible()) {\n            this.container = undefined;\n        }\n\n        this.target = event.currentTarget as HTMLElement | null;\n        this.visible.set(true);\n        this.preventDocumentDefault = true;\n        this.overlayVisible.set(true);\n    }\n\n    onInit() {\n        if (!this.popup()) {\n            this.bindDocumentClickListener();\n        }\n    }\n\n    getTabIndexValue(): string | null {\n        const tabindexValue = this.tabindex();\n        return tabindexValue !== undefined ? tabindexValue.toString() : null;\n    }\n\n    onOverlayBeforeEnter(event: MotionEvent) {\n        this.container = event.element as HTMLElement;\n\n        if (this.container) {\n            addStyle(this.container, { position: 'absolute', top: '0' });\n            this.appendOverlay();\n            this.moveOnTop();\n\n            this.$attrSelector && this.container?.setAttribute(this.$attrSelector, '');\n            this.bindDocumentClickListener();\n            this.bindDocumentResizeListener();\n            this.bindScrollListener();\n            absolutePosition(this.container!, this.target!);\n            focus(this.listViewChild()?.nativeElement);\n            this.onShow.emit({});\n        }\n    }\n\n    onOverlayAfterLeave() {\n        this.restoreOverlayAppend();\n        this.onOverlayHide();\n        this.overlayVisible.set(false);\n        this.onHide.emit({});\n    }\n\n    appendOverlay() {\n        if (this.$appendTo() && this.$appendTo() !== 'self') {\n            if (this.$appendTo() === 'body') {\n                appendChild(this.document.body, this.container!);\n            } else {\n                appendChild(this.$appendTo(), this.container!);\n            }\n        }\n    }\n\n    restoreOverlayAppend() {\n        if (this.container && this.$appendTo() !== 'self') {\n            appendChild(this.el.nativeElement, this.container);\n        }\n    }\n\n    moveOnTop() {\n        if (this.autoZIndex()) {\n            ZIndexUtils.set('menu', this.container, this.baseZIndex() + this.config.zIndex.menu);\n        }\n    }\n    /**\n     * Hides the popup menu.\n     * @group Method\n     */\n    public hide() {\n        this.visible.set(false);\n    }\n\n    onWindowResize() {\n        if (this.visible() && !isTouchDevice()) {\n            this.hide();\n        }\n    }\n\n    menuitemId(item: MenuItem, id: string, index?: string | number, childIndex?: string | number) {\n        return item?.id ?? `${id}_${index}${childIndex !== undefined ? '_' + childIndex : ''}`;\n    }\n\n    isItemFocused(id: string | number | null) {\n        return this.focusedOptionId() === id;\n    }\n\n    label(label: string | (() => string) | undefined) {\n        return typeof label === 'function' ? label() : label;\n    }\n\n    disabled(disabled: boolean | (() => boolean) | undefined) {\n        return typeof disabled === 'function' ? disabled() : typeof disabled === 'undefined' ? false : disabled;\n    }\n\n    isVisible(item: MenuItem) {\n        return item.visible !== false;\n    }\n\n    isSeparatorVisible(item: MenuItem) {\n        return item.separator && this.isVisible(item);\n    }\n\n    isItemVisible(item: MenuItem) {\n        return !item.separator && this.isVisible(item);\n    }\n\n    isSubmenuSeparatorVisible(item: MenuItem, submenu: MenuItem) {\n        return item.separator && (this.isVisible(item) || this.isVisible(submenu));\n    }\n\n    isSubmenuItemVisible(item: MenuItem, submenu: MenuItem) {\n        return !item.separator && this.isVisible(item) && (item.visible !== undefined || this.isVisible(submenu));\n    }\n\n    activedescendant = computed(() => {\n        return this.focused() ? this.focusedOptionId() : undefined;\n    });\n\n    onListFocus(event: Event) {\n        if (!this.focused()) {\n            this.focused.set(true);\n            if (!this.popup() && !this.focusedOptionId()) {\n                this.changeFocusedOptionIndex(0);\n            }\n            this.onFocus.emit(event);\n        }\n    }\n\n    onListBlur(event: FocusEvent | MouseEvent) {\n        if (this.focused()) {\n            this.focused.set(false);\n            this.changeFocusedOptionIndex(-1);\n            this.selectedOptionIndex.set(-1);\n            this.focusedOptionIndex.set(-1);\n            this.onBlur.emit(event);\n        }\n    }\n\n    onListKeyDown(event: KeyboardEvent) {\n        switch (event.code) {\n            case 'ArrowDown':\n                this.onArrowDownKey(event);\n                break;\n\n            case 'ArrowUp':\n                this.onArrowUpKey(event);\n                break;\n\n            case 'Home':\n                this.onHomeKey(event);\n                break;\n\n            case 'End':\n                this.onEndKey(event);\n                break;\n\n            case 'Enter':\n                this.onEnterKey(event);\n                break;\n\n            case 'NumpadEnter':\n                this.onEnterKey(event);\n                break;\n\n            case 'Space':\n                this.onSpaceKey(event);\n                break;\n\n            case 'Escape':\n            case 'Tab':\n                if (this.popup()) {\n                    this.target && focus(this.target);\n                    this.hide();\n                }\n                this.overlayVisible() && this.hide();\n                break;\n\n            default:\n                break;\n        }\n    }\n\n    onArrowDownKey(event: KeyboardEvent) {\n        const optionIndex = this.findNextOptionIndex(this.focusedOptionIndex());\n        this.changeFocusedOptionIndex(optionIndex);\n        event.preventDefault();\n    }\n\n    onArrowUpKey(event: KeyboardEvent) {\n        if (event.altKey && this.popup()) {\n            this.target && focus(this.target);\n            this.hide();\n            event.preventDefault();\n        } else {\n            const optionIndex = this.findPrevOptionIndex(this.focusedOptionIndex());\n\n            this.changeFocusedOptionIndex(optionIndex);\n            event.preventDefault();\n        }\n    }\n\n    onHomeKey(event: KeyboardEvent) {\n        this.changeFocusedOptionIndex(0);\n        event.preventDefault();\n    }\n\n    onEndKey(event: KeyboardEvent) {\n        this.changeFocusedOptionIndex(find(this.containerViewChild()?.nativeElement, 'li[data-pc-section=\"item\"][data-disabled=\"false\"]').length - 1);\n        event.preventDefault();\n    }\n\n    onEnterKey(event: KeyboardEvent) {\n        event.preventDefault();\n\n        const element = findSingle(this.listViewChild()?.nativeElement, `[id=\"${`${this.focusedOptionIndex()}`}\"]`) as HTMLElement | null;\n\n        if (!element) return;\n\n        if (element.getAttribute('data-toggleable') === 'true') {\n            const content = (findSingle(element, '[data-pc-section=\"itemcontent\"]') || element) as HTMLElement;\n            content.click();\n            return;\n        }\n\n        const anchorElement = findSingle(element, 'a[data-pc-section=\"itemlink\"]') as HTMLElement | null;\n\n        this.popup() && this.target && focus(this.target);\n        (anchorElement || element).click();\n    }\n\n    onSpaceKey(event: KeyboardEvent) {\n        this.onEnterKey(event);\n    }\n\n    findNextOptionIndex(index: string | number) {\n        const links = find(this.containerViewChild()?.nativeElement, 'li[data-pc-section=\"item\"][data-disabled=\"false\"]');\n        const matchedOptionIndex = [...links].findIndex((link) => link.id === index);\n\n        return matchedOptionIndex > -1 ? matchedOptionIndex + 1 : 0;\n    }\n\n    findPrevOptionIndex(index: string | number) {\n        const links = find(this.containerViewChild()?.nativeElement, 'li[data-pc-section=\"item\"][data-disabled=\"false\"]');\n        const matchedOptionIndex = [...links].findIndex((link) => link.id === index);\n\n        return matchedOptionIndex > -1 ? matchedOptionIndex - 1 : 0;\n    }\n\n    changeFocusedOptionIndex(index: number) {\n        const links = find(this.containerViewChild()?.nativeElement, 'li[data-pc-section=\"item\"][data-disabled=\"false\"]');\n        if (links.length > 0) {\n            let order = index >= links.length ? links.length - 1 : index < 0 ? 0 : index;\n            order > -1 && this.focusedOptionIndex.set(links[order].getAttribute('id') ?? -1);\n        }\n    }\n\n    itemClick(event: { originalEvent: Event; item: MenuItem }, id: string) {\n        const { originalEvent, item } = event;\n\n        if (!this.focused()) {\n            this.focused.set(true);\n            this.onFocus.emit(originalEvent);\n        }\n\n        if (item.disabled) {\n            originalEvent.preventDefault();\n            return;\n        }\n\n        if (!item.url && !item.routerLink) {\n            originalEvent.preventDefault();\n        }\n\n        if (item.command) {\n            item.command({\n                originalEvent: originalEvent,\n                item: item\n            });\n        }\n\n        if (this.popup()) {\n            this.hide();\n        }\n\n        if (!this.popup() && this.focusedOptionIndex() !== id) {\n            this.focusedOptionIndex.set(id);\n        }\n    }\n\n    onOverlayClick(event: Event) {\n        if (this.popup()) {\n            this.overlayService.add({\n                originalEvent: event,\n                target: this.el.nativeElement\n            });\n        }\n\n        this.preventDocumentDefault = true;\n    }\n\n    bindDocumentClickListener() {\n        if (!this.documentClickListener && isPlatformBrowser(this.platformId)) {\n            const documentTarget = this.el ? this.el.nativeElement.ownerDocument : this.document;\n\n            this.documentClickListener = this.renderer.listen(documentTarget, 'click', (event) => {\n                const isOutsideContainer = this.containerViewChild()?.nativeElement && !this.containerViewChild()?.nativeElement.contains(event.target);\n                const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\n                if (!this.popup() && isOutsideContainer && isOutsideTarget) {\n                    this.onListBlur(event);\n                }\n                if (this.preventDocumentDefault && this.overlayVisible() && isOutsideContainer && isOutsideTarget) {\n                    this.hide();\n                    this.preventDocumentDefault = false;\n                }\n            });\n        }\n    }\n\n    unbindDocumentClickListener() {\n        if (this.documentClickListener) {\n            this.documentClickListener();\n            this.documentClickListener = null;\n        }\n    }\n\n    bindDocumentResizeListener() {\n        if (!this.documentResizeListener && isPlatformBrowser(this.platformId)) {\n            const window = this.document.defaultView;\n            this.documentResizeListener = this.renderer.listen(window, 'resize', this.onWindowResize.bind(this));\n        }\n    }\n\n    unbindDocumentResizeListener() {\n        if (this.documentResizeListener) {\n            this.documentResizeListener();\n            this.documentResizeListener = null;\n        }\n    }\n\n    bindScrollListener() {\n        if (!this.scrollHandler && isPlatformBrowser(this.platformId)) {\n            this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, () => {\n                if (this.visible()) {\n                    this.hide();\n                }\n            });\n        }\n\n        this.scrollHandler?.bindScrollListener();\n    }\n\n    unbindScrollListener() {\n        if (this.scrollHandler) {\n            this.scrollHandler.unbindScrollListener();\n            this.scrollHandler = null;\n        }\n    }\n\n    onOverlayHide() {\n        this.unbindDocumentClickListener();\n        this.unbindDocumentResizeListener();\n        this.unbindScrollListener();\n        this.preventDocumentDefault = false;\n\n        if (!(this.cd as ViewRef).destroyed) {\n            this.target = null;\n        }\n        if (this.container) {\n            if (this.autoZIndex()) {\n                ZIndexUtils.clear(this.container);\n            }\n            this.container = undefined;\n        }\n    }\n\n    onDestroy() {\n        if (this.popup()) {\n            if (this.scrollHandler) {\n                this.scrollHandler.destroy();\n                this.scrollHandler = null;\n            }\n\n            if (this.container) {\n                if (this.autoZIndex()) {\n                    ZIndexUtils.clear(this.container);\n                }\n                this.container = undefined;\n            }\n\n            this.restoreOverlayAppend();\n            this.onOverlayHide();\n        }\n\n        if (!this.popup()) {\n            this.unbindDocumentClickListener();\n        }\n    }\n\n    hasSubMenu(): boolean {\n        return this.model()?.some((item) => item.items) ?? false;\n    }\n\n    getSubmenuKey(submenu: MenuItem, id: string): string {\n        return submenu?.key != null ? String(submenu.key) : id;\n    }\n\n    isSubmenuToggleable(submenu: MenuItem, depth: number = 0): boolean {\n        if (submenu.toggleable !== undefined) {\n            return submenu.toggleable;\n        }\n        return depth > 0;\n    }\n\n    isSubmenuExpanded(submenu: MenuItem, depth: number = 0, id?: string): boolean {\n        if (!this.isSubmenuToggleable(submenu, depth)) {\n            return true;\n        }\n\n        if (id) {\n            const key = this.getSubmenuKey(submenu, id);\n            const expandedKeys = this.currentExpandedKeys();\n\n            if (expandedKeys && key in expandedKeys) {\n                return expandedKeys[key];\n            }\n        }\n\n        return submenu.expanded === true;\n    }\n\n    toggleSubmenu(submenu: MenuItem, id: string, depth: number = 0) {\n        const key = this.getSubmenuKey(submenu, id);\n        const isExpanded = this.isSubmenuExpanded(submenu, depth, id);\n        const next = { ...(this.currentExpandedKeys() || {}), [key]: !isExpanded };\n\n        if (this.expandedKeys() !== undefined) {\n            this.expandedKeys.set(next);\n        } else {\n            this.d_expandedKeys.set(next);\n        }\n\n        submenu.expanded = !isExpanded;\n    }\n\n    onItemLiClick(event: Event, item: MenuItem, id: string, depth: number) {\n        if (item.items?.length && this.isSubmenuToggleable(item, depth)) {\n            event.preventDefault();\n        }\n    }\n\n    onItemLiMousedown(event: Event, item: MenuItem, depth: number) {\n        if (item.items?.length && this.isSubmenuToggleable(item, depth)) {\n            event.preventDefault();\n        }\n    }\n\n    focusMenuList() {\n        const list = this.listViewChild()?.nativeElement;\n        if (list) focus(list);\n    }\n\n    isItemHidden(item: MenuItem): boolean {\n        if (item.separator) {\n            return item.visible === false || !!(item.items && item.items.some((subitem: MenuItem) => subitem.visible !== false));\n        }\n        return item.visible === false;\n    }\n}\n\n@NgModule({\n    imports: [Menu, SharedModule, SafeHtmlPipe],\n    exports: [Menu, SharedModule, SafeHtmlPipe]\n})\nexport class MenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","ChevronDownIcon","i1","i3"],"mappings":"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"}