{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/navigation/menu/src/nav/navigation-control.directive.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav-item/nav-item.props.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav-item/nav-item.directive.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav.props.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav.component.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav.component.html","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown-item/menu-dropdown-item.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown-item/menu-dropdown-item.component.html","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown/menu-dropdown.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown/menu-dropdown.component.html","../../../../../projects/components/widgets/navigation/menu/src/menu.props.ts","../../../../../projects/components/widgets/navigation/menu/src/menu.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu.component.html","../../../../../projects/components/widgets/navigation/menu/src/menu-adapator.component.ts","../../../../../projects/components/widgets/navigation/menu/src/index.ts"],"sourcesContent":["import { Directive, ElementRef, Input, OnDestroy } from '@angular/core';\n\nimport { setAttr } from '@wm/core';\n\nexport const disableContextMenu = ($event: Event) => {\n    $event.preventDefault();\n};\n\n@Directive({\n    standalone: true,\n    selector: '[wmNavigationControl]'\n})\nexport class NavigationControlDirective implements OnDestroy {\n\n    private nativeElement: HTMLElement;\n    private _link: string;\n    private boundContextMenuHandler: (event: Event) => void;\n\n    @Input() disableMenuContext: boolean;\n\n    @Input() set wmNavigationControl(val) {\n        this._link = val;\n        \n        // MEMORY LEAK FIX: Remove existing listener before adding new one\n        if (this.boundContextMenuHandler) {\n            this.nativeElement.removeEventListener('contextmenu', this.boundContextMenuHandler);\n            this.boundContextMenuHandler = null;\n        }\n\n        if (val && !this.disableMenuContext) {\n            setAttr(this.nativeElement, 'href', val);\n        } else {\n            setAttr(this.nativeElement, 'href', 'javascript:void(0)');\n            // MEMORY LEAK FIX: Store bound function reference for cleanup\n            this.boundContextMenuHandler = disableContextMenu;\n            this.nativeElement.addEventListener('contextmenu', this.boundContextMenuHandler);\n        }\n    }\n\n    constructor(eleRef: ElementRef) {\n        this.nativeElement = eleRef.nativeElement;\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Remove event listener using stored bound function reference\n        if (this.boundContextMenuHandler) {\n            this.nativeElement.removeEventListener('contextmenu', this.boundContextMenuHandler);\n            this.boundContextMenuHandler = null;\n        }\n    }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n    register(\n        'wm-nav-item',\n        new Map(\n            [\n                ['class', PROP_STRING],\n                ['name', PROP_STRING],\n                ['show', {value: true, ...PROP_BOOLEAN}]\n            ]\n        )\n    );\n};\n","import {ContentChild, Directive, HostListener, Injector, AfterViewInit, OnDestroy, Optional, Inject} from '@angular/core';\n\nimport {addClass, removeClass} from '@wm/core';\nimport { APPLY_STYLES_TYPE, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { AnchorComponent } from '@wm/components/basic/anchor';\n\nimport { registerProps } from './nav-item.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-nav-item';\nconst WIDGET_CONFIG = {widgetType: 'wm-nav-item', hostClass: DEFAULT_CLS};\n\n@Directive({\n  standalone: true,\n    selector: '[wmNavItem]',\n    exportAs: 'navItemRef',\n    providers: [\n        provideAsWidgetRef(NavItemDirective)\n    ]\n})\nexport class NavItemDirective extends StylableComponent implements AfterViewInit, OnDestroy {\n    static initializeProps = registerProps();\n    @ContentChild(AnchorComponent) innerLink;\n\n    @HostListener('click')\n    @HostListener('keydown.enter')\n    makeActive() {\n        const parentNode = this.nativeElement.parentNode;\n        $(parentNode as HTMLElement).find('> li.active').removeClass('active');\n        if (this.isAttached) {\n            addClass(this.nativeElement, 'active');\n        }\n    }\n\n    constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n        super(inj, WIDGET_CONFIG, explicitContext);\n        styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n    }\n\n    public ngAfterViewInit() {\n        if (this.innerLink) {\n            this.innerLink.onActive(() => this.makeActive());\n        }\n    }\n\n    public ngOnDetach() {\n        removeClass(this.nativeElement, 'active', true);\n        super.ngOnDetach();\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Clear ContentChild reference\n        this.innerLink = null;\n\n        super.ngOnDestroy();\n    }\n}\n","import {PROP_ANY, PROP_BOOLEAN, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n    register(\n        'wm-nav',\n        new Map(\n            [\n                ['autoclose', {value: 'always', ...PROP_STRING}],\n                ['autoopen', {value: 'never', ...PROP_STRING}],\n                ['class', PROP_STRING],\n                ['dataset', PROP_ANY],\n                ['iconposition', {value: 'left', ...PROP_STRING}],\n                ['isactive', PROP_STRING],\n                ['itemlabel', PROP_STRING],\n                ['itemhint', PROP_STRING],\n                ['itemlink', PROP_STRING],\n                ['itemicon', PROP_STRING],\n                ['itemclass', PROP_STRING],\n                ['itemchildren', PROP_STRING],\n                ['itemaction', PROP_STRING],\n                ['itembadge', PROP_STRING],\n                ['itemtarget', PROP_STRING],\n                ['layout', PROP_STRING],\n                ['name', PROP_STRING],\n                ['orderby', PROP_STRING],\n                ['show', {value: true, ...PROP_BOOLEAN}],\n                ['showonhover', {value: false, ...PROP_BOOLEAN}],\n                ['type', PROP_STRING],\n                ['userrole', PROP_STRING]\n            ]\n        )\n    );\n};\n","import { CommonModule } from '@angular/common';\nimport { AnchorComponent } from '@wm/components/basic/anchor';\nimport { MenuComponent } from '../menu.component';\nimport { NavItemDirective } from './nav-item/nav-item.directive';\nimport { Attribute, ChangeDetectorRef, Component, forwardRef, Inject, Injector, OnDestroy, OnInit, Optional } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { addClass, App, triggerItemAction, UserDefinedExecutionContext } from '@wm/core';\nimport { APPLY_STYLES_TYPE, DatasetAwareNavComponent, provideAsWidgetRef, styler } from '@wm/components/base';\n\nimport { registerProps } from './nav.props';\nimport { find, forEach, isEmpty, omit } from \"lodash-es\";\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\n\nconst DEFAULT_CLS = 'nav app-nav';\nconst WIDGET_CONFIG = { widgetType: 'wm-nav', hostClass: DEFAULT_CLS };\n\nconst NavClassMap = {\n    pills: 'nav-pills',\n    tabs: 'nav-tabs',\n    navbar: 'navbar-nav'\n};\n\n@Component({\n    standalone: true,\n    imports: [CommonModule, BsDropdownModule, AnchorComponent, forwardRef(() => MenuComponent), NavItemDirective, ],\n    selector: '[wmNav]',\n    templateUrl: './nav.component.html',\n    providers: [\n        provideAsWidgetRef(NavComponent)\n    ]\n})\nexport class NavComponent extends DatasetAwareNavComponent implements OnInit, OnDestroy {\n    static initializeProps = registerProps();\n\n    public selecteditem;\n    public type;\n    public disableMenuContext: boolean;\n    public layout;\n    public showonhover: boolean;\n    private itemActionFn: Function;\n    private pageScope: any;\n    private get activePageName() {\n        return this.app.activePageName;\n    }\n\n    constructor(\n        inj: Injector,\n        private cdRef: ChangeDetectorRef,\n        private route: Router,\n        private userDefinedExecutionContext: UserDefinedExecutionContext,\n        private app: App,\n        @Attribute('select.event') selectEventCB,\n        @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n    ) {\n        super(inj, WIDGET_CONFIG, explicitContext);\n        styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n        this.disableMenuContext = !!selectEventCB;\n        this.pageScope = this.viewParent;\n        // For selecting the item on load\n        const datasetSubscription = this.nodes$.subscribe(() => {\n            if (!isEmpty(this.nodes)) {\n                let itemFound = false;\n                const getItem = (nodes, isMenuWidget?) => {\n                    forEach(nodes, (item) => {\n                        if (itemFound) {\n                            return;\n                        }\n                        if (item.isactive) {\n                            itemFound = true;\n                            this.selecteditem = isMenuWidget ? omit(item, ['children', 'value']) : item.value;\n                            this.invokeEventCallback('select', { $event: {}, $item: item.value });\n                            // Trigger the action associated with active item\n                            triggerItemAction(this, item);\n                            // _selected is used to add active class for nav item. If we have children inside nav widget then it is not required.\n                            if (!isMenuWidget) {\n                                item._selected = true;\n                            }\n                            return false;\n                        }\n                        if (!isEmpty(item.children)) {\n                            getItem(item.children, 'menu');\n                        }\n                    });\n                };\n                getItem(this.nodes);\n            }\n        });\n        this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n    }\n\n\n    private setNavType(type) {\n        addClass(this.nativeElement, NavClassMap[type]);\n    }\n\n    private setNavLayout(layout) {\n        addClass(this.nativeElement, `nav-${layout}`);\n    }\n\n    public onNavSelect($event: Event, item: any) {\n        $event.preventDefault();\n\n        const selectedItem = find(this.nodes, '_selected');\n        if (selectedItem) {\n            // @ts-ignore\n            delete selectedItem._selected;\n        }\n\n        this.selecteditem = item.value;\n\n        this.invokeEventCallback('select', { $event, $item: item.value });\n        // Trigger the action associated with active item\n        triggerItemAction(this, item);\n    }\n\n    ngOnInit() {\n        super.ngOnInit();\n        this.setNavType(this.type);\n        this.setNavLayout(this.layout);\n    }\n\n    /**\n     * invoked from the menu widget when a menu item is selected.\n     * @param $event\n     * @param widget\n     * @param $item\n     */\n    onMenuItemSelect($event, widget, $item) {\n        this.selecteditem = omit($item, ['children', 'value']);\n        this.invokeEventCallback('select', { $event, $item: this.selecteditem });\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Cleanup\n        // Note: Subscription is already cleaned up via registerDestroyListener in constructor\n        // but adding explicit OnDestroy to ensure proper cleanup lifecycle\n        \n        // Clear references\n        this.selecteditem = null;\n        this.pageScope = null;\n        this.itemActionFn = null;\n\n        super.ngOnDestroy();\n    }\n}\n","<ng-template #menuRef let-item=\"item\" let-index=\"index\">\n  <div wmMenu dropdown\n    type=\"anchor\"\n    autoclose.bind=\"autoclose\"\n    iconclass.bind=\"item.icon\"\n    autoopen.bind=\"autoopen\"\n    caption.bind=\"item.label\"\n    hint.bind=\"item.hint\"\n    dataset.bind=\"item.children\"\n    badgevalue.bind=\"item.badge\"\n    iconposition.bind=\"iconposition\"\n    showonhover.bind=\"showonhover\"\n  select.event=\"onMenuItemSelect($event, widget, $item)\"></div>\n</ng-template>\n\n<ng-template #anchorRef let-item=\"item\" let-index=\"index\" let-liRef=\"liRef\">\n  <a wmAnchor\n    [disableMenuContext]=\"disableMenuContext || !!item.action\"\n    [wmNavigationControl]=\"item.link\"\n    [attr.aria-current]=\"item._selected || (!isactive && item.link === '#/' + activePageName) ? 'page' : ''\"\n    caption.bind=\"item.label\"\n    hint.bind=\"item.hint\"\n    iconclass.bind=\"item.icon\"\n    badgevalue.bind=\"item.badge\"\n    iconposition.bind=\"iconposition\"\n  click.event=\"onNavSelect($event, item)\"></a>\n</ng-template>\n\n@for (item of nodes; track item; let index = $index) {\n  <li #liRef=\"navItemRef\"\n    [ngClass]=\"{active: item._selected || (!isactive && item.link === '#/' + activePageName)}\"\n    class=\"app-nav-item {{item.class}}\"\n    wmNavItem>\n    @if (!item.children.length) {\n      <ng-container [ngTemplateOutlet]=\"anchorRef\"\n        [ngTemplateOutletContext]=\"{item: item, index:index, liRef: liRef}\"\n        [ngTemplateOutletInjector]=\"createCustomInjector('anchor_' + liRef.trackId, {item: item, index:index, liRef: liRef})\"\n      ></ng-container>\n    }\n    @if (item.children.length) {\n      <ng-container [ngTemplateOutlet]=\"menuRef\"\n        [ngTemplateOutletContext]=\"{item: item, index:index}\"\n        [ngTemplateOutletInjector]=\"createCustomInjector('menu_' + liRef.trackId, {item: item, index:index})\"\n      ></ng-container>\n    }\n  </li>\n}\n\n@if (!nodes.length) {\n  <ng-content select=\"[wmNavItem]\"></ng-content>\n}\n","import { MenuDropdownComponent } from '../menu-dropdown/menu-dropdown.component';\nimport { NavigationControlDirective } from '../nav/navigation-control.directive';\nimport { Component, ElementRef, forwardRef, HostListener, inject, Input, OnDestroy, OnInit, Optional } from '@angular/core';\n\nimport { addClass, triggerItemAction, UserDefinedExecutionContext, App, toggleClass } from '@wm/core';\nimport { hasLinkToCurrentPage, TextContentDirective } from '@wm/components/base';\nimport { NavComponent } from '../nav/nav.component';\n\nimport { KEYBOARD_MOVEMENTS, MENU_POSITION, MenuComponent } from '../menu.component';\nimport { clone, includes } from \"lodash-es\";\n\ndeclare const $;\n\nconst menuAlignClass = {\n    'pull-right': 'fa-caret-left',\n    'dropinline-menu': 'fa-caret-down',\n    'pull-left': 'fa-caret-right'\n};\n\nconst MENU_LAYOUT_TYPE = {\n    HORIZONTAL: 'horizontal',\n    VERTICAL: 'vertical'\n};\n\n@Component({\n    standalone: true,\n    imports: [TextContentDirective, forwardRef(() => MenuDropdownComponent), NavigationControlDirective],\n    selector: 'li[wmMenuDropdownItem]',\n    templateUrl: './menu-dropdown-item.component.html',\n})\nexport class MenuDropdownItemComponent implements OnInit, OnDestroy {\n\n    public menualign: string;\n\n    private itemActionFn: Function;\n\n    @Input() item;\n\n    private readonly nativeElement;\n    private highlightActiveLinkSubscription: () => void;\n    public menuRef =  inject(MenuComponent);\n    constructor(\n        private app: App,\n        private userDefinedExecutionContext: UserDefinedExecutionContext,\n        @Optional() private parentNav: NavComponent,\n        elRef: ElementRef,\n    ) {\n        this.nativeElement = elRef.nativeElement;\n        addClass(this.nativeElement, 'app-menu-item');\n\n        this.menualign = menuAlignClass[this.menuRef.menualign] || menuAlignClass['pull-left'];\n    }\n\n    ngOnInit() {\n        // add active class to the item only if it is in nav component.\n        if (this.parentNav) {\n            if (hasLinkToCurrentPage([this.item], this.menuRef.route.url)) {\n                // add active class to the li, if the menu item's link is same as the current page name.\n                addClass(this.nativeElement, 'active');\n            }\n            this.highlightActiveLinkSubscription = this.app.subscribe(\"highlightActiveLink\", (data) => {\n                toggleClass(this.nativeElement, 'active', hasLinkToCurrentPage([this.item], this.menuRef.route.url));\n            });\n        }\n    }\n\n    getInitialKeyMovements() {\n        const KEY_MOVEMENTS = clone(KEYBOARD_MOVEMENTS);\n        if (this.menuRef.menulayout === MENU_LAYOUT_TYPE.HORIZONTAL) {\n            KEY_MOVEMENTS.MOVE_UP = 'LEFT-ARROW';\n            KEY_MOVEMENTS.MOVE_LEFT = 'UP-ARROW';\n            KEY_MOVEMENTS.MOVE_RIGHT = 'DOWN-ARROW';\n            KEY_MOVEMENTS.MOVE_DOWN = 'RIGHT-ARROW';\n        } else {\n            if (this.menuRef.menuposition === MENU_POSITION.DOWN_LEFT || this.menuRef.menuposition === MENU_POSITION.UP_LEFT) {\n                KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n                KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n            } else if (this.menuRef.menuposition === 'inline') {\n                KEY_MOVEMENTS.MOVE_UP = 'LEFT-ARROW';\n                KEY_MOVEMENTS.MOVE_LEFT = 'UP-ARROW';\n                KEY_MOVEMENTS.MOVE_RIGHT = 'DOWN-ARROW';\n                KEY_MOVEMENTS.MOVE_DOWN = 'RIGHT-ARROW';\n            }\n        }\n        return KEY_MOVEMENTS;\n    }\n\n    @HostListener('keydown.tab', ['$event', '\"TAB\"'])\n    @HostListener('keydown.shift.tab', ['$event', '\"SHIFT-TAB\"'])\n    @HostListener('keydown.escape', ['$event', '\"ESC\"'])\n    @HostListener('keydown.enter', ['$event', '\"ENTER\"'])\n    @HostListener('keydown.arrowup', ['$event', '\"UP-ARROW\"'])\n    @HostListener('keydown.arrowdown', ['$event', '\"DOWN-ARROW\"'])\n    @HostListener('keydown.arrowright', ['$event', '\"RIGHT-ARROW\"'])\n    @HostListener('keydown.arrowleft', ['$event', '\"LEFT-ARROW\"'])\n    onKeyDown($event, eventAction) {\n        const $li = $(this.nativeElement);\n        const $ul = $(this.nativeElement).closest('ul.dropdown-menu');\n        const $parentUl = this.menuRef.$element.find('> ul.dropdown-menu');\n        const ARROW_KEYS = ['LEFT-ARROW', 'RIGHT-ARROW', 'UP-ARROW', 'DOWN-ARROW'];\n        const KEY_MOVEMENTS = this.getInitialKeyMovements();\n\n        if (includes(ARROW_KEYS, eventAction)) {\n            // preventing from page scroll when up/down arrow is pressed, in case of menu is opened.\n            $event.preventDefault();\n        }\n\n        if ((eventAction === KEY_MOVEMENTS.ON_TAB && $parentUl.children().last()[0] === this.nativeElement)\n            || (eventAction === KEY_MOVEMENTS.ON_SHIFT_TAB && $parentUl.children().first()[0] === this.nativeElement)\n            || eventAction === KEY_MOVEMENTS.ON_ESCAPE) {\n            /*closing all the children elements when\n            * 1. Tab is clicked on the last $element\n            * 2. Shift Tab is clicked on the first $element\n            * 3. When Escape key is clicked*/\n            $event.preventDefault();\n            this.menuRef.bsDropdown.hide();\n        } else if ((eventAction === KEY_MOVEMENTS.ON_ENTER && !this.item.link) || eventAction === KEY_MOVEMENTS.MOVE_RIGHT) {\n            // when there is no link for the menu, on enter open the inner child elements and focus the first $element\n            $event.stopPropagation();\n            if (this.item.children.length) {\n                $li.toggleClass('open');\n                $li.find('li').first().find('> a').focus();\n            } else {\n                $li.find('> a').focus();\n            }\n        } else if (eventAction === KEY_MOVEMENTS.MOVE_LEFT\n            || (eventAction === KEY_MOVEMENTS.ON_TAB && $ul.children().last()[0] === this.nativeElement)\n            || (eventAction === KEY_MOVEMENTS.ON_SHIFT_TAB && $ul.children().first()[0] === this.nativeElement)) {\n            if ($parentUl[0] !== $ul[0]) {\n                const $parentItem = $ul.parent();\n                $parentItem.toggleClass('open').find('li.open').removeClass('open');\n                $parentItem.find('> a').focus();\n                $event.preventDefault();\n                $event.stopPropagation();\n            }\n        } else if (eventAction === KEY_MOVEMENTS.MOVE_UP) {\n            if ($parentUl[0] !== $ul[0] || $parentUl.find('> li').first()[0] !== this.nativeElement) {\n                $event.stopPropagation();\n                $li.prev().find('> a').focus();\n            }\n        } else if (eventAction === KEY_MOVEMENTS.MOVE_DOWN) {\n            $event.stopPropagation();\n            if ($parentUl.find('> li').last()[0] === this.nativeElement\n                && (this.menuRef.menulayout !== MENU_LAYOUT_TYPE.HORIZONTAL\n                    && this.menuRef.menuposition === MENU_POSITION.UP_RIGHT\n                    || this.menuRef.menuposition === MENU_POSITION.UP_LEFT)) {\n                this.menuRef.bsDropdown.hide();\n            } else {\n                $li.next().find('> a').focus();\n            }\n        } else if (eventAction === KEY_MOVEMENTS.ON_ENTER) {\n            this.onSelect($event, this.item);\n        } else {\n            $event.stopPropagation();\n        }\n    }\n\n    @HostListener('click', ['$event', 'item'])\n    onSelect = ($event, item) => {\n        if (this.nativeElement !== $($event.target).closest('.app-menu-item').get(0)) {\n            return;\n        }\n        // prevent event event propagation if auto close is outside click.\n        if (this.menuRef.autoclose === 'outsideClick') {\n            $event.stopPropagation();\n        }\n\n        $event.preventDefault();\n        const args = { $event, $item: item };\n        this.menuRef.onMenuItemSelect(args);\n        const selectedItem = clone(item);\n        selectedItem.target = selectedItem.target || this.menuRef.linktarget;\n        // Trigger the action associated with active item\n        triggerItemAction(this, selectedItem);\n    }\n\n    ngOnDestroy(): void {\n        if (this.highlightActiveLinkSubscription) {\n            this.highlightActiveLinkSubscription();\n        }\n    }\n}\n","<a href=\"javascript:void(0);\" [title]=\"item.label\" [wmNavigationControl]=\"item.link\" [disableMenuContext]=\"menuRef.disableMenuContext || !!item.action\">\n  @if (item.children.length) {\n    <span class=\"pull-right fa caret {{menualign}}\"></span>\n  }\n  <i class=\"app-icon {{item.icon}}\"></i>\n  <span class=\"anchor-caption\">{{item.label}}</span>\n  @if (item.badge) {\n    <span class=\"badge pull-right\" [textContent]=\"item.badge\"></span>\n  }\n</a>\n@if (item.children.length) {\n  <ul wmMenuDropdown [items]=\"item.children\"></ul>\n}","import { CommonModule } from '@angular/common';\nimport { MenuDropdownItemComponent } from '../menu-dropdown-item/menu-dropdown-item.component';\nimport { AfterViewInit, Component, ElementRef, inject, Input } from '@angular/core';\n\nimport { addClass } from '@wm/core';\n\nimport { MenuComponent } from '../menu.component';\n\nconst animationClasses = {\n    scale: {\n        'name': 'wmScaleInLeft',\n        'down,right': 'wmScaleInLeft',\n        'down,left': 'wmScaleInRight',\n        'up,right': 'wmScaleInTopLeft',\n        'up,left': 'wmScaleInTopRight'\n    },\n    fade: {\n        'name': 'fadeIn',\n        'down,right': 'fadeIn',\n        'down,left': 'fadeIn',\n        'up,right': 'fadeIn',\n        'up,left': 'fadeIn'\n    },\n    slide: {\n        'name': 'wmSlideInDown',\n        'down,right': 'wmSlideInDown',\n        'down,left': 'wmSlideInDown',\n        'up,right': 'wmSlideInUp',\n        'up,left': 'wmSlideInUp'\n    }\n};\n\nconst DEFAULT_CLS = 'dropdown-menu';\n\n@Component({\n  standalone: true,\n  imports: [CommonModule, MenuDropdownItemComponent],\n    selector: 'ul[wmMenuDropdown]',\n    templateUrl: './menu-dropdown.component.html'\n})\nexport class MenuDropdownComponent implements AfterViewInit {\n    private readonly nativeElement;\n    private hasExecutedCallback;\n    @Input() items;\n    private menuRef = inject(MenuComponent);\n    constructor(elRef: ElementRef) {\n        this.nativeElement = elRef.nativeElement;\n        this.hasExecutedCallback = false;\n        addClass(this.nativeElement, DEFAULT_CLS);\n    }\n\n    ngAfterViewInit() {\n        const animateItems = this.menuRef.animateitems;\n        let animationClass = '';\n        if (animateItems) {\n            animationClass = `animated ${(animationClasses[animateItems][this.menuRef.menuposition] || animationClasses[animateItems].name)}`;\n        }\n        addClass(this.nativeElement, `dropdown-menu ${this.menuRef.menualign} ${animationClass}`, true);\n       this.getParentWidget();\n    }\n    // Function to check if the menu widget is present inside other widgets like table, tabs, dialog, nav, list, tile, panel, accordion\n    // if true then call createObserver() which internally calculates dropown height\n    getParentWidget() {\n        const closestWidget  = $(this.menuRef.nativeElement).closest('table, ul.list-group');\n\n        // Check if the closest table is the parent of the menu widget\n        if (closestWidget && $(closestWidget).has(this.menuRef.nativeElement).length > 0) {\n            this.createObserver(this, this.callback);\n        }\n    }\n    // function which changes the position of the menu dropdown dynamically if it exceeds viewport height\n     callback(entries, observer) {\n         if (!this.hasExecutedCallback) {\n             const self = this;\n             const positions = this.menuRef.menuposition?.split(',') || [];\n             entries.forEach(entry => {\n                 if(entry.isIntersecting) {\n                     positions[0]='down';\n                     self.menuRef.menuposition= positions.length > 1 ? positions.join() : 'down,right';\n                     self.nativeElement.parentElement?.classList.add('dropdown');\n                     self.menuRef.setMenuPosition();\n                 } else {\n                     positions[0]='up';\n                     self.menuRef.menuposition = positions.length > 1 ? positions.join() : 'up,right';\n                     self.nativeElement.parentElement?.classList.add('dropup');\n                     self.menuRef.setMenuPosition();\n                     // when container=\"body\" is added to menu dropdown, the dropdown menu ul is attached directly to body.\n                     // so adding a class name inorder to adjust the styling of the dropdown\n                     const dropdownContainer = self.nativeElement.parentElement?.parentElement;\n                     if (dropdownContainer.tagName.toUpperCase() === \"BS-DROPDOWN-CONTAINER\") {\n                         // The parent element is <bs-dropdown-container>\n                         self.nativeElement.parentElement?.parentElement?.classList.add('parent-position');\n                     }\n\n                 }\n             });\n             this.hasExecutedCallback = true;\n         }\n    }\n\n    // function which checks if the dropdown is within the viewport height or exceeds viewport height\n    createObserver(target, callback) {\n        const options = {\n            root: null,\n            threshold: 1,\n            once: true\n        };\n        const observer = new IntersectionObserver(callback.bind(this), options);\n        observer.observe(target.nativeElement);\n    }\n\n}\n","@for (item of items; track item) {\n  <li wmMenuDropdownItem\n    [item]=\"item\"\n    [ngClass]=\"{disabled: item.disabled, 'dropdown-submenu': item.children.length > 0}\"\n    class=\"{{item.class}}\"\n    role=\"menuitem\">\n  </li>\n}\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n    register(\n        'wm-menu',\n        new Map(\n            [\n                ['accessroles', {value: 'Everyone', ...PROP_STRING}],\n                ['animateitems', PROP_STRING],\n                ['autoclose', {value: 'always', ...PROP_STRING}],\n                ['autoopen', {value: 'never', ...PROP_STRING}],\n                ['caption', PROP_STRING],\n                ['class', PROP_STRING],\n                ['dataset', {value: 'Menu Item 1, Menu Item 2, Menu Item 3', ...PROP_ANY}],\n                ['hint', {value: '', ...PROP_STRING}],\n                ['arialabel', PROP_STRING],\n                ['isactive', PROP_STRING],\n                ['iconclass', PROP_STRING],\n                ['iconposition', {value: 'left', ...PROP_STRING}],\n                ['itemaction', PROP_STRING],\n                ['itemchildren', PROP_STRING],\n                ['itemclass', PROP_STRING],\n                ['itemicon', PROP_STRING],\n                ['itemlabel', PROP_STRING],\n                ['itemlink', PROP_STRING],\n                ['itemtarget', PROP_STRING],\n                ['linktarget', {value: '_self', ...PROP_STRING}],\n                ['menuclass', PROP_STRING],\n                ['menulayout', PROP_STRING],\n                ['menuposition', PROP_STRING],\n                ['name', PROP_STRING],\n                ['orderby', PROP_STRING],\n                ['shortcutkey', PROP_STRING],\n                ['show', {value: true, ...PROP_BOOLEAN}],\n                ['showonhover', {value: false, ...PROP_BOOLEAN}],\n                ['tabindex', {value: 0, ...PROP_NUMBER}],\n                ['type', {value: 'menu', ...PROP_STRING}],\n                ['userrole', PROP_STRING]\n            ]\n        )\n    );\n};\n","import { CommonModule } from '@angular/common';\nimport { ButtonComponent } from '@wm/components/input/button';\nimport { MenuDropdownComponent } from './menu-dropdown/menu-dropdown.component';\nimport {\n    AfterViewInit,\n    Attribute,\n    Component,\n    HostListener,\n    Inject,\n    Injector,\n    OnDestroy,\n    OnInit,\n    Optional,\n    Self\n} from '@angular/core';\nimport {Router} from '@angular/router';\n\nimport {BsDropdownDirective, BsDropdownModule} from 'ngx-bootstrap/dropdown';\n\nimport {\n    $appDigest,\n    addClass,\n    App,\n    removeClass,\n    toggleClass,\n    triggerItemAction,\n    UserDefinedExecutionContext\n} from '@wm/core';\nimport {\n    AUTOCLOSE_TYPE,\n    DatasetAwareNavComponent,\n    hasLinkToCurrentPage,\n    provideAsWidgetRef,\n    styler,\n    TextContentDirective\n} from '@wm/components/base';\nimport {NavComponent} from './nav/nav.component';\n\nimport {registerProps} from './menu.props';\nimport {clone, forEach, includes, isEmpty} from \"lodash-es\";\nimport { AnchorComponent } from '@wm/components/basic/anchor';\n\nexport const KEYBOARD_MOVEMENTS = {\n    MOVE_UP: 'UP-ARROW',\n    MOVE_LEFT: 'LEFT-ARROW',\n    MOVE_RIGHT: 'RIGHT-ARROW',\n    MOVE_DOWN: 'DOWN-ARROW',\n    ON_ENTER: 'ENTER',\n    ON_MOUSE_ENTER: 'MOUSE-ENTER',\n    ON_MOUSE_LEAVE: 'MOUSE-LEAVE',\n    ON_TAB: 'TAB',\n    ON_SHIFT_TAB: 'SHIFT-TAB',\n    ON_ESCAPE: 'ESC'\n};\n\nexport const MENU_POSITION = {\n    UP_LEFT: 'up,left',\n    UP_RIGHT: 'up,right',\n    DOWN_LEFT: 'down,left',\n    DOWN_RIGHT: 'down,right',\n    INLINE: 'inline'\n};\n\nconst POSITION = {\n    DOWN_RIGHT: 'down,right',\n    DOWN_LEFT: 'down,left',\n    UP_RIGHT: 'up,right',\n    UP_LEFT: 'up,left',\n    INLINE: 'inline'\n};\nconst CARET_CLS = {\n    UP: 'fa-caret-up',\n    DOWN: 'fa-caret-down'\n};\nconst PULL_CLS = {\n    LEFT: 'pull-left',\n    RIGHT: 'pull-right'\n};\n\nconst AUTO_OPEN = {\n    NEVER: 'never',\n    ACTIVE_PAGE: 'activepage',\n    ALWAYS: 'always'\n};\n\nconst WIDGET_CONFIG = { widgetType: 'wm-menu', hostClass: 'dropdown app-menu' };\n@Component({\n    standalone: true,\n    imports: [BsDropdownModule, CommonModule, TextContentDirective, AnchorComponent, ButtonComponent, MenuDropdownComponent],\n    selector: '[wmMenu]',\n    templateUrl: './menu.component.html',\n    providers: [\n        provideAsWidgetRef(MenuComponent),\n\n    ]\n})\nexport class MenuComponent extends DatasetAwareNavComponent implements OnInit, OnDestroy, AfterViewInit {\n    static initializeProps = registerProps();\n\n    public menualign: string;\n    public menuposition: string;\n    public menulayout: string;\n    public menuclass: string;\n    public linktarget: string;\n    public iconclass: string;\n    public animateitems: string;\n    public disableMenuContext: boolean;\n    public showonhover: boolean;\n    public autoclose: string;\n    public autoopen: string;\n    public hint: string;\n    public arialabel: string;\n\n    private itemActionFn: Function;\n    private menuCaret = 'fa-caret-down';\n    private _selectFirstItem = false;\n\n    public type: any;\n    public _menuposition: string;\n\n    @HostListener('onShown') onShow() {\n        this._menuposition = this.menuposition;\n        if (this._selectFirstItem) {\n            setTimeout(() => {\n                this.$element.find('> ul[wmmenudropdown] li.app-menu-item').first().find('> a').focus();\n            });\n        }\n        $appDigest();\n    }\n    @HostListener('onHidden') onHide() {\n        this.$element.find('li').removeClass('open');\n        this._selectFirstItem = false;\n        // reset the menuposition when dropdown is closed\n        this.menuposition = this._menuposition ? this._menuposition : MENU_POSITION.DOWN_RIGHT;\n        this.setMenuPosition();\n        $appDigest();\n    }\n\n    @HostListener('keydown.arrowup', ['$event', '\"UP-ARROW\"'])\n    @HostListener('mouseenter', ['$event', '\"MOUSE-ENTER\"'])\n    @HostListener('mouseleave', ['$event', '\"MOUSE-LEAVE\"'])\n    @HostListener('keydown.arrowdown', ['$event', '\"DOWN-ARROW\"'])\n    @HostListener('keydown.arrowright', ['$event', '\"RIGHT-ARROW\"'])\n    @HostListener('keydown.arrowleft', ['$event', '\"LEFT-ARROW\"'])\n    @HostListener('keydown.enter', ['$event', '\"ENTER\"']) onKeyDown($event, eventAction) {\n        const KEY_MOVEMENTS = clone(KEYBOARD_MOVEMENTS);\n        if (this.menuposition === MENU_POSITION.UP_RIGHT) {\n            KEY_MOVEMENTS.MOVE_UP = 'DOWN-ARROW';\n            KEY_MOVEMENTS.MOVE_DOWN = 'UP-ARROW';\n        } else if (this.menuposition === MENU_POSITION.UP_LEFT) {\n            KEY_MOVEMENTS.MOVE_UP = 'DOWN-ARROW';\n            KEY_MOVEMENTS.MOVE_DOWN = 'UP-ARROW';\n            KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n            KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n        } else if (this.menuposition === MENU_POSITION.DOWN_LEFT) {\n            KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n            KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n        }\n\n        if (includes([KEY_MOVEMENTS.MOVE_DOWN, KEY_MOVEMENTS.MOVE_RIGHT], eventAction)) {\n            if (!this.bsDropdown.isOpen) {\n                this._selectFirstItem = true;\n                this.bsDropdown.show();\n            } else {\n                this.$element.find('> ul[wmmenudropdown] li.app-menu-item').first().find('> a').focus();\n            }\n        } else if (eventAction === KEY_MOVEMENTS.ON_ENTER || (eventAction === KEY_MOVEMENTS.ON_MOUSE_ENTER && this.showonhover)) {\n            this.bsDropdown.toggle(true);\n        } else if (includes([KEY_MOVEMENTS.MOVE_UP, KEY_MOVEMENTS.MOVE_LEFT], eventAction) || (eventAction == KEY_MOVEMENTS.ON_MOUSE_LEAVE && this.autoclose == AUTOCLOSE_TYPE.ALWAYS && this.showonhover)) {\n            this.bsDropdown.hide();\n        }\n        $event.preventDefault();\n    }\n\n    constructor(\n        inj: Injector,\n        public route: Router,\n        private userDefinedExecutionContext: UserDefinedExecutionContext,\n        private app: App,\n        @Self() @Optional() public bsDropdown: BsDropdownDirective,\n        @Optional() private parentNav: NavComponent,\n        @Attribute('select.event') public selectEventCB: string,\n        @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n    ) {\n        super(inj, WIDGET_CONFIG, explicitContext);\n        if (parentNav) {\n            this.disableMenuContext = !!parentNav.disableMenuContext;\n        } else {\n            this.disableMenuContext = !!selectEventCB;\n        }\n        // For selecting the item on load\n        const datasetSubscription = this.nodes$.subscribe(() => {\n            if (!isEmpty(this.nodes)) {\n                if (hasLinkToCurrentPage(this.nodes, this.route.url)) {\n                    addClass(this.nativeElement.querySelector('.dropdown-toggle') as HTMLElement, 'active');\n                }\n                // If menu widget is inside nav widget then dont check for item isactive property because these will be handled form nav widget.\n                if (this.parentNav) {\n                    return;\n                }\n                let itemFound = false;\n                const getItem = (nodes) => {\n                    forEach(nodes, (item) => {\n                        if (itemFound) {\n                            return;\n                        }\n                        if (item.isactive) {\n                            itemFound = true;\n                            this.onMenuItemSelect({ $event: {}, $item: item });\n                            // Trigger the action associated with active item\n                            triggerItemAction(this, item);\n                            return false;\n                        }\n                        if (!isEmpty(item.children)) {\n                            getItem(item.children);\n                        }\n\n                    });\n                };\n                getItem(this.nodes);\n            }\n        });\n        this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n    }\n\n    protected resetNodes() {\n        super.resetNodes();\n        // open the menu if any of its menu items has link to current page and if autoopen value is 'active page'\n        if ((this.autoopen === AUTO_OPEN.ACTIVE_PAGE && hasLinkToCurrentPage(this.nodes, this.route.url)) || this.autoopen === AUTO_OPEN.ALWAYS) {\n            this.bsDropdown.show();\n        }\n    }\n\n    ngOnInit() {\n        super.ngOnInit();\n        this.setMenuPosition();\n\n        const cancelSubscription = this.app.subscribe(\"highlightActiveLink\", (data) => {\n            toggleClass(this.nativeElement.querySelector('.dropdown-toggle') as HTMLElement, 'active', hasLinkToCurrentPage(this.nodes, this.route.url ));\n        });\n        this.registerDestroyListener(() => cancelSubscription());\n    }\n\n    onPropertyChange(key: string, nv: any, ov?: any) {\n\n        if (key === 'tabindex') {\n            // Let the base class handle tabindex setting via setAttr\n            super.onPropertyChange(key, nv, ov);\n            return;\n        }\n\n        if (key === 'autoclose') {\n            this.bsDropdown.autoClose = nv !== AUTOCLOSE_TYPE.DISABLED;\n            this.autoclose = nv;\n        } else {\n            super.onPropertyChange(key, nv, ov);\n        }\n    }\n\n    public setMenuPosition() {\n        switch (this.menuposition) {\n            case POSITION.DOWN_RIGHT:\n                removeClass(this.nativeElement, 'dropup');\n                this.menualign = PULL_CLS.LEFT;\n                this.menuCaret = CARET_CLS.DOWN;\n                break;\n            case POSITION.DOWN_LEFT:\n                removeClass(this.nativeElement, 'dropup');\n                this.menualign = PULL_CLS.RIGHT;\n                this.menuCaret = CARET_CLS.DOWN;\n                break;\n            case POSITION.UP_LEFT:\n                addClass(this.nativeElement, 'dropup');\n                this.menualign = PULL_CLS.RIGHT;\n                this.menuCaret = CARET_CLS.UP;\n                break;\n            case POSITION.UP_RIGHT:\n                addClass(this.nativeElement, 'dropup');\n                this.menualign = PULL_CLS.LEFT;\n                this.menuCaret = CARET_CLS.UP;\n                break;\n            case POSITION.INLINE:\n                this.menualign = 'dropinline-menu';\n                break;\n        }\n    }\n\n    public onMenuItemSelect(args) {\n        const { $event } = args;\n        const $item = args.$item.value;\n        this.invokeEventCallback('select', { $event, $item });\n    }\n\n    ngAfterViewInit() {\n        super.ngAfterViewInit();\n        // Fix tabindex if it's NaN (ensure it's fixed after view initialization)\n        if (this.widget.tabindex !== undefined && (typeof this.widget.tabindex === 'number' && isNaN(this.widget.tabindex))) {\n            this.widget.tabindex = 0;\n            (this as any).tabindex = 0;\n        }\n        styler(this.nativeElement.querySelector('.dropdown-toggle') as HTMLElement, this);\n    }\n}\n","\n\n<ng-template #innerTemplate>\n  <i class=\"app-icon {{iconclass}}\"></i>\n  <span class=\"caption\" [textContent]=\"caption\"></span>\n  <span class=\"pull-right caret fa {{menuCaret}}\"></span>\n</ng-template>\n\n@if (type === 'anchor') {\n  <a wmAnchor\n    dropdownToggle\n    [attr.aria-label]=\"arialabel || 'Menu'\"\n    href=\"javascript:void(0);\"\n    role=\"button\"\n    aria-haspopup=\"true\"\n    aria-expanded=\"false\"\n    hint.bind=\"hint\"\n    class=\"dropdown-toggle {{menuclass}}\"\n    shortcutkey.bind=\"shortcutkey\"\n    tabindex.bind=\"tabindex\"\n    caption.bind=\"caption\"\n    iconclass.bind=\"iconclass\"\n    iconposition.bind=\"iconposition\"\n    badgevalue.bind=\"badgevalue\"\n    >\n    <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n  </a>\n} @else {\n  <button wmButton\n    dropdownToggle\n    aria-haspopup=\"true\"\n    aria-expanded=\"false\"\n    [attr.aria-label]=\"arialabel || 'Menu'\"\n    class=\"btn app-button dropdown-toggle {{menuclass}}\"\n    hint.bind=\"hint\"\n    shortcutkey.bind=\"shortcutkey\"\n    tabindex.bind=\"tabindex\"\n    caption.bind=\"caption\"\n    iconclass.bind=\"iconclass\"\n    iconposition.bind=\"iconposition\"\n    type=\"button\">\n    <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n  </button>\n}\n\n<ul *dropdownMenu [items]=\"nodes\" [ngClass]=\"menulayout\" class=\"icon-position-{{iconposition}}\" role=\"menubar\"\nwmMenuDropdown></ul>\n","import { AfterViewInit, QueryList, ViewChildren, Directive, Optional, Inject, OnDestroy } from '@angular/core';\nimport { MenuComponent } from './menu.component';\nimport { BaseContainerComponent } from '@wm/components/base';\nimport { includes } from \"lodash-es\";\n\nconst menuProps = ['itemlabel', 'itemicon', 'itemlink', 'itemaction', 'itemchildren', 'userrole'];\n\n@Directive()\nexport class MenuAdapterComponent extends BaseContainerComponent implements AfterViewInit, OnDestroy {\n\n    private itemlabel;\n    private menuRef;\n    private pageScope;\n\n    private binditemlabel;\n    private binditemicon;\n    private binditemaction;\n    private binditemchildren;\n    private binditemlink;\n    private binduserrole;\n\n    @ViewChildren(MenuComponent) private menuRefQL: QueryList<MenuComponent>;\n    private menuRefQLSubscription: any;\n\n    constructor(\n        inj,\n        WIDGET_CONFIG,\n        @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n    ) {\n        super(inj, WIDGET_CONFIG, explicitContext);\n\n        this.pageScope = this.viewParent;\n        this.binditemlabel = this.nativeElement.getAttribute('itemlabel.bind');\n        this.binditemicon = this.nativeElement.getAttribute('itemicon.bind');\n        this.binditemaction = this.nativeElement.getAttribute('itemaction.bind');\n        this.binditemlink = this.nativeElement.getAttribute('itemlink.bind');\n        this.binduserrole = this.nativeElement.getAttribute('userrole.bind');\n        this.binditemchildren = this.nativeElement.getAttribute('itemchildren.bind');\n    }\n\n    onPropertyChange(key: string, nv: any, ov?: any) {\n        if (includes(menuProps, key) && this.menuRef) {\n            this.menuRef.itemlabel = nv;\n        } else {\n            super.onPropertyChange(key, nv, ov);\n        }\n    }\n\n    ngAfterViewInit() {\n        super.ngAfterViewInit();\n        if(this.menuRefQL['first'])\n        {this.setMenuProperty();}\n        this.menuRefQLSubscription = this.menuRefQL.changes.subscribe((menuRefQL: QueryList<MenuComponent>) => {\n            if (menuRefQL.first) {\n                this.setMenuProperty();\n                if (this.menuRefQLSubscription) {\n                    this.menuRefQLSubscription.unsubscribe();\n                    this.menuRefQLSubscription = null;\n                }\n            }\n        });\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Unsubscribe from QueryList changes\n        if (this.menuRefQLSubscription) {\n            this.menuRefQLSubscription.unsubscribe();\n            this.menuRefQLSubscription = null;\n        }\n\n        // MEMORY LEAK FIX: Clear QueryList reference\n        this.menuRefQL = null;\n        this.menuRef = null;\n\n        super.ngOnDestroy();\n    }\n\n    protected setMenuProperty(){\n        if(this.menuRefQL['first']) {\n            if (this.menuRefQL.first) {\n                this.menuRef = this.menuRefQL.first;\n                menuProps.forEach((prop) => {\n                    const bindProp = `bind${prop}`;\n                    if (this[bindProp]) {\n                        this.menuRef[bindProp] = this[bindProp];\n                    }\n                    this.menuRef[prop] = this[prop];\n                });\n            }\n        }\n    }\n\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG","i1","i2.NavComponent","i3","i4.NavComponent","i5"],"mappings":"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"}