{"version":3,"file":"ironsource-fusion-ui-components-navigation-menu-v4.mjs","sources":["../../../projects/fusion-ui/components/navigation-menu/v4/navigation-menu.entities.ts","../../../projects/fusion-ui/components/navigation-menu/v4/navigation-pop-menu/navigation-pop-menu.component.html","../../../projects/fusion-ui/components/navigation-menu/v4/navigation-pop-menu/navigation-pop-menu.component.ts","../../../projects/fusion-ui/components/navigation-menu/v4/navigation-primary-menu/navigation-primary-menu.component.html","../../../projects/fusion-ui/components/navigation-menu/v4/navigation-primary-menu/navigation-primary-menu.component.ts","../../../projects/fusion-ui/components/navigation-menu/v4/navigation-secondary-menu/navigation-secondary-menu.component.html","../../../projects/fusion-ui/components/navigation-menu/v4/navigation-secondary-menu/navigation-secondary-menu.component.ts","../../../projects/fusion-ui/components/navigation-menu/v4/navigation-menu.component.ts","../../../projects/fusion-ui/components/navigation-menu/v4/navigation-menu.component.html","../../../projects/fusion-ui/components/navigation-menu/v4/ironsource-fusion-ui-components-navigation-menu-v4.ts"],"sourcesContent":["import {MenuItem} from '@ironsource/fusion-ui/components/menu/common/base';\nimport {IconData} from '@ironsource/fusion-ui/components/icon/common/entities';\n\n/**\n * default mode is 'clickToOpenSecondaryMenu'\n */\nexport type PrimaryMenuMode = 'clickToOpenSecondaryMenu' | 'clickToDefaultSecondaryItem' | 'hoverToShowSecondaryItems';\n\nexport enum NavigationBarItemType {\n    Home = 'home',\n    Main = 'main',\n    Bottom = 'bottom',\n    User = 'user'\n}\n\nexport interface PrimaryMenuItem {\n    id?: string;\n    type: NavigationBarItemType;\n    menuIcon?: IconData;\n    menuIconPath?: string; // instead menuIcon it use fusion-svg component\n    menuLogoSrc?: string; // url to image that will be used as logo on top of secondary menu\n    menuTitle?: string;\n    menuTooltip?: string;\n    menuItems?: MenuItem[];\n    customClick?: Function; // for custom click event handling in BOTTOM menu item type\n    route?: string;\n    redirect?: string; // url to navigate in case has value here - route will be suppressed\n    target?: string; // for open in new tab named as target\n    cssTheme?: {[key: string]: string}; // for type - main css color theme\n    cssStyle?: string;\n}\n","<div class=\"fu-pop-menu\">\n    <!--region logged user info-->\n    <div class=\"fu-pop-menu-header\" *ngIf=\"layoutUser\">\n        <div class=\"fu-user-icon-holder\" >\n            <div *ngIf=\"layoutUser.avatar\" class=\"fu-user-avatar\" [style.background-image]=\"'url(' + layoutUser.avatar + ')'\"></div>\n            <fusion-icon *ngIf=\"!layoutUser.avatar\" class=\"fu-user-icon\" [name]=\"userIcon\"></fusion-icon>\n        </div>\n        <div class=\"fu-user-data-holder\">\n            <div class=\"fu-user-name truncate\" [fusionTooltip]=\"layoutUser.name\">{{layoutUser.name}}</div>\n            <div class=\"fu-user-email truncate\" [fusionTooltip]=\"layoutUser.email\">{{layoutUser.email}}</div>\n        </div>\n    </div>\n    <!--endregion logged user info-->\n    <div class=\"fu-pop-menu-items\">\n        <!--region menu items-->\n        <ng-container *ngFor=\"let menuItem of menuItems\">\n            <div *ngIf=\"menuItem.withTopDelimiter\" class=\"fu-pop-menu-item-delimiter\"></div>\n            <a class=\"fu-pop-menu-item {{menuItem.cssClass}}\"\n               [href]=\"menuItem.route || menuItem.redirect\"\n               [target]=\"menuItem.target ?? '_self'\"\n               (click)=\"onMenuItemClicked($event,menuItem)\"\n            >\n                <fusion-icon class=\"fu-pop-menu-icon\" *ngIf=\"menuItem.icon\" [name]=\"menuItem.icon\"></fusion-icon>\n                <div class=\"fu-pop-menu-text\">{{menuItem.name}}</div>\n            </a>\n        </ng-container>\n        <!--endregion menu items-->\n    </div>\n</div>\n","import {AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {IconData, IconModule} from '@ironsource/fusion-ui/components/icon/v1';\nimport {LayoutUser} from '@ironsource/fusion-ui/entities';\nimport {MenuItem} from '@ironsource/fusion-ui/components/menu/common/base';\nimport {TooltipModule} from '@ironsource/fusion-ui/components/tooltip';\n\n@Component({\n    selector: 'fusion-navigation-pop-menu',\n    standalone: true,\n    imports: [CommonModule, IconModule, TooltipModule],\n    templateUrl: './navigation-pop-menu.component.html',\n    styleUrls: ['./navigation-pop-menu.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NavigationPopMenuComponent implements AfterViewInit {\n    @Input() layoutUser: LayoutUser;\n    @Input() menuItems: MenuItem[];\n\n    @Output() menuItemClicked = new EventEmitter<MenuItem>();\n\n    /** @internal */\n    userIcon: IconData = {iconName: 'userCircle', iconVersion: 'v4'};\n\n    constructor(private element: ElementRef) {}\n\n    ngAfterViewInit() {\n        const popupHeight = this.element.nativeElement.querySelector('.fu-pop-menu')?.offsetHeight;\n        if (!!popupHeight) {\n            this.element.nativeElement.style.height = `${popupHeight}px`;\n        }\n    }\n\n    onMenuItemClicked($event: MouseEvent, menuItem: MenuItem) {\n        if ($event && $event.metaKey) {\n            return;\n        }\n        if ($event && !menuItem.target) {\n            $event.preventDefault();\n            $event.stopPropagation();\n            this.menuItemClicked.emit(menuItem);\n        }\n    }\n}\n","<div class=\"fu-navigation-bar-holder\">\n    <!--region home item-->\n    <div *ngIf=\"homeItem\" class=\"fu-navigation-bar-item fu-home\" [fusionTooltip]=\"homeItem.menuTooltip\">\n        <ng-container [ngTemplateOutlet]=\"navigationButton\" [ngTemplateOutletContext]=\"{item: homeItem, selectedItem: (homeItem === (selectedBarItem$ |async))}\"></ng-container>\n    </div>\n    <!--endregion home item-->\n    <!--region main items-->\n    <ng-container *ngIf=\"(networkItems$ | async) as networkItems\">\n        <div class=\"fu-navigation-bar-item fu-network\" *ngFor=\"let networkItem of networkItems\" [fusionTooltip]=\"networkItem.menuTooltip\" >\n            <ng-container [ngTemplateOutlet]=\"navigationButton\" [ngTemplateOutletContext]=\"{item: networkItem, selectedItem: (networkItem === (selectedBarItem$ |async)), hoverMode: menuHoverMode}\"></ng-container>\n            <div *ngIf=\"networkItem.menuTitle\" class=\"fu-navigation-bar-network-name\">{{networkItem.menuTitle}}</div>\n        </div>\n    </ng-container>\n    <!--endregion main items-->\n    <!--region bottom items-->\n    <ng-container *ngIf=\"(bottomItems$ | async) as bottomItems\">\n        <div class=\"fu-navigation-bar-bottom-items\">\n            <ng-container *ngFor=\"let bottomItem of bottomItems; let bottomItemIndex = index;\">\n                <div [id]=\"bottomItem.id ?? 'bottomPrimaryMenuItem_'+bottomItemIndex\" class=\"fu-navigation-bar-item fu-bottom-block\" [style]=\"bottomItem.cssStyle\"  [fusionTooltip]=\"bottomItem.menuTooltip\">\n                    <!--region item with link.href-->\n                    <ng-container *ngIf=\"!!bottomItem.redirect\">\n                        <a href=\"{{bottomItem.redirect}}\" target=\"{{bottomItem.target}}\">\n                            <ng-container [ngTemplateOutlet]=\"navigationButton\" [ngTemplateOutletContext]=\"{item: bottomItem}\"></ng-container>\n                        </a>\n                    </ng-container>\n                    <!--endregion item with a.href-->\n                    <!--region item with menu-->\n                    <ng-container *ngIf=\"!bottomItem.redirect\" [ngTemplateOutlet]=\"navigationButton\" [ngTemplateOutletContext]=\"{item: bottomItem, selectedItem: false, popMenu: bottomItem.menuItems, index: bottomItemIndex  }\"></ng-container>\n                    <!--endregion item with menu-->\n                </div>\n                <ng-container *ngIf=\"bottomItem.menuItems && showPopMenu$ | async\">\n                    <fusion-navigation-pop-menu\n                        [layoutUser]=\"bottomItem?.type === 'user' ? layoutUser : null\"\n                        [menuItems]=\"bottomItem.menuItems\"\n                        [fusionReposition]=\"'#fu-bottom-nav-item-btn_'+bottomItemIndex\"\n                        [fusionRepositionPlacement]=\"popMenuPosition\"\n                        [fusionRepositionOffset]=\"popMenuOffset$ | async\"\n                        (menuItemClicked)=\"onPopMenuItemClicked($event)\"\n                        (fusionClickOutside)=\"onPopMenuOutsideClick($event)\"></fusion-navigation-pop-menu>\n                </ng-container>\n            </ng-container>\n            <!--region toggle secondary menu button-->\n            <div class=\"fu-menu-toggle-button-holder\" *ngIf=\"(selectedBarItem$ | async)?.type === 'main'\" >\n                <div class=\"fu-navigation-bar-button fu-menu-toggle\" (click)=\"menuToggleButtonClicked($event)\">\n                    <fusion-icon class=\"fu-navigation-bar-button-icon\" [name]=\"(menuToggleCollapsed$ |async) ? menuExpandedIcon : menuCollapsedIcon\"></fusion-icon>\n                </div>\n            </div>\n            <!--endregion toggle secondary menu button-->\n        </div>\n    </ng-container>\n    <!--endregion bottom items-->\n</div>\n\n<ng-template #navigationButton let-item=\"item\" let-selectedItem=\"selectedItem\" let-popMenu=\"popMenu\" let-index=index let-hoverMode=\"hoverMode\">\n    <div class=\"fu-navigation-bar-button\" id=\"fu-bottom-nav-item-btn_{{index}}\"\n         [class.fu-selected]=\"selectedItem\"\n         [class.fu-with-pop-menu]=\"popMenu\"\n         [class.fu-selected]=\"popMenu && (showPopMenu$ | async)\"\n         [class.fu-triangle]=\"menuOpened && (item === menuOpenForPrimaryMenuItem)\"\n         (click)=\"networkItemClicked(item)\"\n         (mouseenter)=\"onItemHover(item, hoverMode)\"\n    >\n        <fusion-svg  *ngIf=\"item.menuIconPath\" class=\"fu-navigation-bar-button-icon-wrapper\" [path]=\"item.menuIconPath\"></fusion-svg>\n        <fusion-icon *ngIf=\"item.menuIcon\" class=\"fu-navigation-bar-button-icon\" [name]=\"item.menuIcon\"></fusion-icon>\n    </div>\n</ng-template>\n","import {ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {isNullOrUndefined} from '@ironsource/fusion-ui/utils';\nimport {SvgModule} from '@ironsource/fusion-ui/components/svg';\nimport {IconModule} from '@ironsource/fusion-ui/components/icon/v1';\nimport {TooltipDirective} from '@ironsource/fusion-ui/components/tooltip/v4';\nimport {ClickOutsideModule} from '@ironsource/fusion-ui/directives/click-outside';\nimport {LayoutUser} from '@ironsource/fusion-ui/entities';\nimport {TooltipPosition} from '@ironsource/fusion-ui/components/tooltip/common/base';\nimport {RepositionDirective, RepositionOffset} from '@ironsource/fusion-ui/directives/reposition';\nimport {MenuItem} from '@ironsource/fusion-ui/components/menu/common/base';\nimport {NavigationBarItemType, PrimaryMenuItem} from '../navigation-menu.entities';\nimport {NavigationPopMenuComponent} from '../navigation-pop-menu/navigation-pop-menu.component';\nimport {map} from 'rxjs/operators';\n\n@Component({\n    selector: 'fusion-navigation-primary-menu',\n    standalone: true,\n    imports: [CommonModule, SvgModule, IconModule, TooltipDirective, ClickOutsideModule, RepositionDirective, NavigationPopMenuComponent],\n    templateUrl: './navigation-primary-menu.component.html',\n    styleUrls: ['./navigation-primary-menu.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NavigationPrimaryMenuComponent {\n    @Input() set menuBarItems(value: PrimaryMenuItem[]) {\n        if (!isNullOrUndefined(value)) {\n            this.parseNavigationBarItems(value);\n        }\n    }\n\n    @Input() layoutUser: LayoutUser;\n    @Input() menuOpened = false;\n    @Input() menuExpanded = false;\n    @Input() menuOpenForPrimaryMenuItem: PrimaryMenuItem;\n    @Input() menuHoverMode = false;\n\n    @Output() menuItemClick = new EventEmitter<MenuItem>();\n\n    @Output() primaryMenuItemClicked = new EventEmitter<PrimaryMenuItem>();\n\n    @Output() changeColorTheme = new EventEmitter<{[key: string]: string}>();\n    @Output() toggleMenu = new EventEmitter();\n    @Output() resetSecondaryMenu = new EventEmitter<void>();\n\n    get nativeElement(): HTMLElement {\n        return this.elementRef.nativeElement;\n    }\n\n    get bottomItemsTopPosition(): number {\n        return (this.nativeElement.querySelector('.fu-navigation-bar-bottom-items > div:first-child') as HTMLElement)?.offsetTop ?? 0;\n    }\n\n    homeItem: PrimaryMenuItem;\n\n    networkItems$ = new BehaviorSubject<PrimaryMenuItem[]>([]);\n    bottomItems$ = new BehaviorSubject<PrimaryMenuItem[]>([]);\n    showPopMenu$ = new BehaviorSubject<boolean>(false);\n\n    selectedBarItem$ = new BehaviorSubject<PrimaryMenuItem>(null);\n\n    menuToggleCollapsed$ = new BehaviorSubject<boolean>(false);\n    menuCollapsedIcon = 'ph/arrow-line-left';\n    menuExpandedIcon = 'ph/arrow-line-right';\n    popMenuPosition = TooltipPosition.BottomLeft;\n\n    popMenuOffset$: Observable<RepositionOffset> = this.selectedBarItem$.asObservable().pipe(\n        map((selectedBarItem: PrimaryMenuItem) => {\n            return selectedBarItem?.type === NavigationBarItemType.Main ? {x: 56, y: 48} : {x: 56};\n        })\n    );\n\n    private primaryMenuOpenedItem: PrimaryMenuItem;\n\n    defaultCssTheme: {[key: string]: string};\n\n    constructor(private elementRef: ElementRef) {}\n\n    onItemHover(item: PrimaryMenuItem, hoverMode: boolean) {\n        if (hoverMode) {\n            this.networkItemClicked(item);\n        }\n    }\n\n    networkItemClicked(item: PrimaryMenuItem) {\n        switch (item?.type) {\n            case NavigationBarItemType.User:\n                this.showPopMenu$.next(true);\n                this.primaryMenuItemClicked.emit(null);\n                break;\n            case NavigationBarItemType.Home:\n                this.setColorTheme(item.cssTheme);\n                this.primaryMenuItemClicked.emit(item);\n                break;\n            case NavigationBarItemType.Main:\n                this.primaryMenuItemClicked.emit(item);\n                this.primaryMenuOpenedItem = item;\n                break;\n            case NavigationBarItemType.Bottom:\n                if (!!item.customClick) {\n                    item.customClick();\n                }\n                break;\n        }\n    }\n\n    onPopMenuOutsideClick(target: HTMLElement) {\n        if (!target.closest('.fu-with-pop-menu')) {\n            this.showPopMenu$.next(false);\n        }\n    }\n\n    onPopMenuItemClicked(menuItem) {\n        this.menuItemClick.emit(menuItem);\n        this.showPopMenu$.next(false);\n        this.setSelectedPrimaryMenuItem(null);\n    }\n\n    setColorTheme(cssTheme?: {[key: string]: string}) {\n        if (!isNullOrUndefined(cssTheme)) {\n            this.changeColorTheme.emit(cssTheme);\n        } else if (this.defaultCssTheme) {\n            this.changeColorTheme.emit(this.defaultCssTheme);\n        }\n    }\n\n    setSelectedPrimaryMenuItem(menuItem: PrimaryMenuItem) {\n        this.selectedBarItem$.next(menuItem);\n        if (!menuItem) {\n            this.resetSecondaryMenu.emit();\n        }\n    }\n\n    menuToggleButtonClicked($event: MouseEvent) {\n        this.menuToggleCollapsed$.next(this.menuOpened && !this.menuExpanded);\n        this.toggleMenu.emit();\n    }\n\n    private parseNavigationBarItems(value: PrimaryMenuItem[]) {\n        const networkItems = [];\n        const bottomItems = [];\n        value.forEach((barItem: PrimaryMenuItem) => {\n            switch (barItem.type) {\n                case NavigationBarItemType.Home:\n                    this.homeItem = barItem;\n                    if (!isNullOrUndefined(barItem.cssTheme)) {\n                        this.defaultCssTheme = barItem.cssTheme;\n                    }\n                    break;\n                case NavigationBarItemType.Main:\n                    networkItems.push(barItem);\n                    if (isNullOrUndefined(this.defaultCssTheme) && !isNullOrUndefined(barItem.cssTheme)) {\n                        this.defaultCssTheme = barItem.cssTheme;\n                        this.setColorTheme();\n                    }\n                    break;\n                default:\n                    bottomItems.push(barItem);\n                    break;\n            }\n        });\n        if (isNullOrUndefined(this.selectedBarItem$.getValue())) {\n            this.setSelectedPrimaryMenuItem(this.homeItem);\n        }\n        this.networkItems$.next(networkItems);\n        this.bottomItems$.next(bottomItems);\n    }\n}\n","<div class=\"fu-secondary-menu-holder\">\n    <div class=\"fu-logo-holder\">\n        <fusion-svg *ngIf=\"menuLogoSrc\" [path]=\"menuLogoSrc\"></fusion-svg>\n    </div>\n    <div class=\"fu-secondary-menu\">\n        <ng-container *ngFor=\"let item of menuItems\">\n            <ng-container *ngTemplateOutlet=\"menuItem;context: {item: item}\"></ng-container>\n        </ng-container>\n    </div>\n</div>\n\n\n<!--region menu items templating-->\n<ng-template #menuItem let-item=\"item\">\n    <!--region menu item-->\n    <div class=\"fu-secondary-menu-item-wrapper\">\n        <!--region menu first level item-->\n        <ng-container  *ngTemplateOutlet=\"(item.route || item.redirect) ? menuItemLink : menuItemDiv; context: {item: item}\"></ng-container>\n        <!--endregion menu first level item-->\n        <fusion-icon-button *ngIf=\"item.additionalAction as additionalAction\"\n                            class=\"fu-secondary-menu-quick-action\"\n                            size=\"extraSmall\"\n                            [iconName]=\"additionalAction.icon ?? 'ph/bold/plus'\"\n                            [fusionTooltip]=\"additionalAction.name\"\n                            [configuration]=\"quickActionTooltipConfiguration\"\n                            (click)=\"onMenuItemClicked($event, additionalAction)\"\n        ></fusion-icon-button>\n        <!--region second level (child) items-->\n        <ng-container *ngIf=\"item?.children\">\n            <div class=\"fu-secondary-menu-sub-items-holder\" [class.fu-secondary-menu-sub-items-opened]=\"!item.closed\">\n                <ng-container  *ngFor=\"let itemChild of item.children\">\n                    <ng-container  *ngTemplateOutlet=\"(itemChild.route || itemChild.redirect) ? menuItemLink : menuItemDiv; context: {item: itemChild}\"></ng-container>\n                </ng-container>\n            </div>\n        </ng-container>\n        <!--endregion submenu items-->\n    </div>\n    <!--endregion menu item-->\n</ng-template>\n<!--endregion menu items templating-->\n\n<!--region menuitem-->\n<ng-template #menuItemDiv  let-item=\"item\">\n    <div class=\"fu-secondary-menu-item-holder\"\n         [ngClass]=\"item.cssClass\"\n         [class.fu-nav-menu-title-item]=\"item.isGroupName\"\n         [class.fu-has-sub-items]=\"!!item.children\"\n         [class.fu-secondary-menu-item-selected]=\"item === (selectedMenuItem$ | async)\"\n         [class.fu-sub-items-opened]=\"!item.closed\"\n         (click)=\"onMenuItemClicked($event, item)\"\n    >\n        <ng-container *ngTemplateOutlet=\"menuItemInnerContent; context: {item: item}\"></ng-container>\n    </div>\n</ng-template>\n<!--endregion menuitem-->\n\n<!--region menuitem with navigation-->\n<ng-template #menuItemLink  let-item=\"item\">\n    <a class=\"fu-secondary-menu-item-holder\"\n         [href]=\"item.route || item.redirect\"\n         [target]=\"item.target ?? '_self'\"\n         [ngClass]=\"item.cssClass\"\n         [class.fu-nav-menu-title-item]=\"item.isGroupName\"\n         [class.fu-has-sub-items]=\"!!item.children\"\n         [class.fu-secondary-menu-item-selected]=\"item === (selectedMenuItem$ | async)\"\n         [class.fu-sub-items-opened]=\"!item.closed\"\n         (click)=\"onMenuItemClicked($event, item)\"\n    >\n        <ng-container *ngTemplateOutlet=\"menuItemInnerContent; context: {item: item}\"></ng-container>\n    </a>\n</ng-template>\n<!--endregion menuitem with navigation-->\n\n<!--region menu item elements-->\n<ng-template #menuItemInnerContent let-item=\"item\">\n    <div class=\"fu-secondary-menu-item-icon-holder\" *ngIf=\"item.icon\">\n        <fusion-icon class=\"fu-secondary-menu-item-icon\" [name]=\"item.icon\"></fusion-icon>\n    </div>\n    <div class=\"fu-secondary-menu-item-label truncate\" [fusionTooltip]=\"item.name\">{{item.name}}</div>\n    <fusion-icon *ngIf=\"!!item.children\"\n                 class=\"fu-secondary-menu-item-parent-icon-toggle\"\n                 [name]=\"itemChildToggleIcon\"\n    ></fusion-icon>\n    <fusion-icon *ngIf=\"!!item.target\"\n                 class=\"fu-secondary-menu-item-new-tab-icon\"\n                 [name]=\"itemNewTabIcon\"\n    ></fusion-icon>\n</ng-template>\n<!--endregion menu item elements-->\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, Output} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MenuItem} from '@ironsource/fusion-ui/components/menu/common/base';\nimport {SvgModule} from '@ironsource/fusion-ui/components/svg';\nimport {IconData, IconModule} from '@ironsource/fusion-ui/components/icon/v1';\nimport {BehaviorSubject} from 'rxjs';\nimport {secondaryMenuItem} from './navigation-secondary-menu.entities';\nimport {IconButtonComponent} from '@ironsource/fusion-ui/components/button/v4';\nimport {TooltipDirective} from '@ironsource/fusion-ui/components/tooltip/v4';\nimport {TooltipPosition} from '@ironsource/fusion-ui/components/tooltip/common/base';\n\n@Component({\n    selector: 'fusion-navigation-secondary-menu',\n    standalone: true,\n    imports: [CommonModule, IconModule, TooltipDirective, SvgModule, IconButtonComponent],\n    templateUrl: './navigation-secondary-menu.component.html',\n    styleUrls: ['./navigation-secondary-menu.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NavigationSecondaryMenuComponent {\n    @Input() set menuItems(value: MenuItem[]) {\n        if (Array.isArray(value)) {\n            this._menuItems = [...value];\n            this.selectedMenuItem$.next(null);\n        }\n    }\n    get menuItems(): secondaryMenuItem[] {\n        return this._menuItems;\n    }\n    @Input() menuName: string;\n    @Input() menuLogoSrc: string;\n\n    @Output() menuItemClick = new EventEmitter<MenuItem>();\n\n    itemChildToggleIcon: string = 'ph/bold/caret-right';\n    itemNewTabIcon: string = 'ph/arrow-square-out';\n    selectedMenuItem$ = new BehaviorSubject<secondaryMenuItem>(null);\n    quickActionTooltipConfiguration = {position: TooltipPosition.Right, suppressPositionArrow: true};\n\n    private _menuItems: secondaryMenuItem[] = [];\n\n    constructor() {}\n\n    onMenuItemClicked($event: MouseEvent, menuItem: secondaryMenuItem) {\n        if ($event && $event.metaKey) {\n            return;\n        }\n        if ($event && !menuItem.target) {\n            $event.preventDefault();\n            $event.stopPropagation();\n        }\n        if (!menuItem.children && !menuItem.target) {\n            this.menuItemClick.emit(menuItem);\n            this.selectedMenuItem$.next(menuItem);\n        } else {\n            this.toggleChildItems($event, menuItem);\n        }\n    }\n\n    setSelected(menuItem: secondaryMenuItem) {\n        this.selectedMenuItem$.next(menuItem);\n    }\n\n    private toggleChildItems($event, menuItem: secondaryMenuItem) {\n        menuItem.closed = !menuItem.closed;\n    }\n}\n","import {ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BehaviorSubject, fromEvent, Subject} from 'rxjs';\nimport {filter, takeUntil} from 'rxjs/operators';\nimport {isNullOrUndefined} from '@ironsource/fusion-ui/utils';\nimport {LayoutUser} from '@ironsource/fusion-ui/entities';\nimport {MenuItem, MenuItemAdditionalData} from '@ironsource/fusion-ui/components/menu/common/base';\nimport {NavigationBarItemType, PrimaryMenuItem, PrimaryMenuMode} from './navigation-menu.entities';\nimport {NavigationPrimaryMenuComponent} from './navigation-primary-menu/navigation-primary-menu.component';\nimport {NavigationSecondaryMenuComponent} from './navigation-secondary-menu/navigation-secondary-menu.component';\nimport {StorageService, StorageType} from '@ironsource/fusion-ui/services/stogare';\n\nconst MENU_CACHE_KEY = 'persistent_fusionMenuCollapsed';\n\n@Component({\n    selector: 'fusion-navigation-menu',\n    standalone: true,\n    imports: [CommonModule, NavigationPrimaryMenuComponent, NavigationSecondaryMenuComponent],\n    templateUrl: './navigation-menu.component.html',\n    styleUrls: ['./navigation-menu.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class NavigationMenuComponent implements OnInit {\n    @ViewChild('primaryMenu', {static: true}) primaryMenu: NavigationPrimaryMenuComponent;\n    @ViewChild('secondaryMenu', {static: true}) secondaryMenu: NavigationSecondaryMenuComponent;\n\n    @Input() menuItems: PrimaryMenuItem[];\n    @Input() layoutUser: LayoutUser;\n    @Input() primaryMenuItemMode: PrimaryMenuMode = 'clickToDefaultSecondaryItem';\n\n    @Output() menuAdditionalItemClicked = new EventEmitter<MenuItemAdditionalData>();\n    @Output() menuItemClicked = new EventEmitter<MenuItem>();\n\n    secondaryMenuItems$ = new BehaviorSubject<MenuItem[]>([]);\n    secondaryMenuName$ = new BehaviorSubject<string>('');\n    secondaryMenuLogoSrc$ = new BehaviorSubject<string>('');\n\n    secondaryMenuOpen$ = new BehaviorSubject<boolean>(this.storageService.get(StorageType.SessionStorage, MENU_CACHE_KEY) ?? true);\n    secondaryMenuExpanded$ = new BehaviorSubject<boolean>(true);\n\n    menuOpenForPrimaryMenuItem$ = new BehaviorSubject<PrimaryMenuItem>(null);\n\n    private onDestroy$ = new Subject<void>();\n    private preSelectedPrimaryMenuItem: PrimaryMenuItem;\n    private selectedPrimaryMenuItem: PrimaryMenuItem;\n    private selectedSecondaryMenuItem: MenuItem;\n\n    get needRestoreSelectedState(): boolean {\n        return (\n            !!this.selectedPrimaryMenuItem &&\n            !!this.preSelectedPrimaryMenuItem &&\n            this.selectedPrimaryMenuItem?.menuTitle !== this.preSelectedPrimaryMenuItem?.menuTitle\n        );\n    }\n\n    private _isSecondaryMenuExpandable = true;\n    set isSecondaryMenuExpandable(value: boolean) {\n        this._isSecondaryMenuExpandable = value;\n    }\n\n    get isSecondaryMenuExpandable(): boolean {\n        const storedOpenState = this.storageService.get(StorageType.SessionStorage, MENU_CACHE_KEY);\n        return isNullOrUndefined(storedOpenState) ? this._isSecondaryMenuExpandable : !storedOpenState;\n    }\n\n    constructor(private elementRef: ElementRef, protected storageService: StorageService) {}\n\n    ngOnInit(): void {\n        this.initListeners();\n    }\n\n    initListeners() {\n        fromEvent(this.primaryMenu.nativeElement, 'mouseenter')\n            .pipe(\n                takeUntil(this.onDestroy$),\n                filter((event: MouseEvent) => {\n                    const isMainSelected = this.primaryMenu.selectedBarItem$.getValue()?.type === 'main';\n                    const isNotOverBottomItems = event.clientY < this.primaryMenu.bottomItemsTopPosition;\n                    return isMainSelected && this.isSecondaryMenuExpandable && isNotOverBottomItems;\n                })\n            )\n            .subscribe(this.onPrimaryMenuMainMouseEnter.bind(this));\n\n        fromEvent(this.elementRef.nativeElement, 'mouseleave')\n            .pipe(takeUntil(this.onDestroy$))\n            .subscribe(this.onNavigationMenuMouseLeave.bind(this));\n\n        if (this.selectedPrimaryMenuItem?.type !== NavigationBarItemType.Main && this.secondaryMenuOpen$.getValue()) {\n            // if started from primary menu item that have NOT children and secondary menu is open\n            setTimeout(() => {\n                this.secondaryMenuOpen$.next(false);\n            }, 250);\n        }\n    }\n\n    onMenuItemClicked(menuItem, popMenuItem = false) {\n        if (!popMenuItem) {\n            this.selectedPrimaryMenuItem = this.preSelectedPrimaryMenuItem;\n            this.isSecondaryMenuExpandable = false;\n            this.setSecondaryMenuVisibilityState(this.isSecondaryMenuExpandable, true);\n\n            this.selectedSecondaryMenuItem = menuItem;\n            this.primaryMenu.setSelectedPrimaryMenuItem(this.selectedPrimaryMenuItem);\n            this.primaryMenu.setColorTheme(this.selectedPrimaryMenuItem?.cssTheme ?? null);\n        } else {\n            this.preSelectedPrimaryMenuItem = null;\n            this.selectedSecondaryMenuItem = menuItem;\n            this.storageService.remove(StorageType.SessionStorage, MENU_CACHE_KEY);\n            this.isSecondaryMenuExpandable = true;\n            this.setSecondaryMenuVisibilityState(this.isSecondaryMenuExpandable, false);\n        }\n        this.menuItemClicked.emit(menuItem);\n    }\n\n    onPrimaryMenuMainMouseEnter($event) {\n        this.setSecondaryMenuVisibilityState(this.isSecondaryMenuExpandable, true);\n    }\n\n    onNavigationMenuMouseLeave() {\n        if (this.needRestoreSelectedState) {\n            this.setSecondaryMenu(this.selectedPrimaryMenuItem);\n            this.primaryMenu.setColorTheme(this.selectedPrimaryMenuItem?.cssTheme ?? null);\n        }\n        if (this.selectedPrimaryMenuItem?.type !== NavigationBarItemType.Main) {\n            this.setSecondaryMenuVisibilityState(this.isSecondaryMenuExpandable, false);\n        } else if (this.selectedPrimaryMenuItem?.type === NavigationBarItemType.Main) {\n            if (this.isSecondaryMenuExpandable) {\n                this.setSecondaryMenuVisibilityState(true, false);\n            }\n        }\n    }\n\n    onPrimaryMainMenuItemClicked(selectedNetwork: PrimaryMenuItem) {\n        if (isNullOrUndefined(selectedNetwork)) {\n            this.onNavigationMenuMouseLeave();\n        } else {\n            this.preSelectedPrimaryMenuItem = selectedNetwork;\n            this.setSecondaryMenu(selectedNetwork);\n            if (!isNullOrUndefined(selectedNetwork.route)) {\n                this.isSecondaryMenuExpandable = true;\n                this.setSecondaryMenuVisibilityState(this.isSecondaryMenuExpandable, false);\n                this.selectedPrimaryMenuItem = this.preSelectedPrimaryMenuItem;\n                this.primaryMenu.setSelectedPrimaryMenuItem(this.selectedPrimaryMenuItem);\n                this.menuItemClicked.emit({name: selectedNetwork.menuTitle, route: selectedNetwork.route});\n            } else {\n                const isNavigateByClick = this.primaryMenuItemMode === 'clickToDefaultSecondaryItem';\n                const itemToNavigate = isNavigateByClick ? this.findDefaultMenuItem(selectedNetwork.menuItems) : undefined;\n                if (itemToNavigate) {\n                    this.onMenuItemClicked(itemToNavigate);\n                } else {\n                    this.setSecondaryMenuVisibilityState(this.isSecondaryMenuExpandable, true);\n                }\n            }\n        }\n    }\n\n    onChangeColorTheme(cssTheme: {[key: string]: string}) {\n        this.setNetworkTheme(cssTheme);\n    }\n\n    toggleMenu() {\n        if (!(this.secondaryMenuOpen$.getValue() && this.secondaryMenuExpanded$.getValue())) {\n            this.secondaryMenuOpen$.next(!this.secondaryMenuOpen$.getValue() && this.secondaryMenuItems$.getValue().length > 0);\n        }\n        const newMenuStateValue = isNullOrUndefined(this.storageService.get(StorageType.SessionStorage, MENU_CACHE_KEY))\n            ? true\n            : this.secondaryMenuOpen$.getValue();\n        this.storageService.set(StorageType.SessionStorage, MENU_CACHE_KEY, newMenuStateValue);\n        if (this.secondaryMenuOpen$.getValue()) {\n            if (this.needRestoreSelectedState) {\n                this.setSecondaryMenu(this.selectedPrimaryMenuItem);\n            }\n            this.secondaryMenuExpanded$.next(false);\n        }\n    }\n\n    resetSecondaryMenu() {\n        this.secondaryMenuItems$.next([]);\n        this.secondaryMenuName$.next('');\n        this.secondaryMenuLogoSrc$.next('');\n    }\n\n    setActiveMenu(primary: PrimaryMenuItem, secondary: MenuItem | PrimaryMenuItem) {\n        if (isNullOrUndefined(primary) || isNullOrUndefined(secondary)) {\n            this.secondaryMenu.setSelected(null);\n        } else {\n            this.selectedPrimaryMenuItem = primary;\n            this.preSelectedPrimaryMenuItem = primary;\n            if (primary !== secondary) {\n                this.selectedSecondaryMenuItem = secondary as MenuItem;\n                this.setSecondaryMenu(primary);\n            } else {\n                this.resetSecondaryMenu();\n            }\n            this.primaryMenu.setSelectedPrimaryMenuItem(primary);\n            setTimeout(() => {\n                this.primaryMenu.setColorTheme(primary?.cssTheme ?? null);\n            });\n        }\n    }\n\n    private setSecondaryMenu(selectedNetwork: PrimaryMenuItem) {\n        if (selectedNetwork?.type === NavigationBarItemType.Main) {\n            this.secondaryMenuItems$.next(selectedNetwork?.menuItems ?? []);\n            this.secondaryMenuName$.next(selectedNetwork?.menuTitle ?? '');\n            this.secondaryMenuLogoSrc$.next(selectedNetwork?.menuLogoSrc ?? '');\n\n            this.menuOpenForPrimaryMenuItem$.next(selectedNetwork);\n            this.selectSecondaryMenuItem(selectedNetwork);\n        } else if (selectedNetwork?.type === NavigationBarItemType.Home) {\n            this.resetSecondaryMenu();\n        }\n    }\n\n    private selectSecondaryMenuItem(selectedNetwork: PrimaryMenuItem) {\n        if (this.selectedPrimaryMenuItem === selectedNetwork && !isNullOrUndefined(this.selectedSecondaryMenuItem)) {\n            setTimeout(() => {\n                this.secondaryMenu.setSelected(this.selectedSecondaryMenuItem);\n            });\n        }\n    }\n\n    private setSecondaryMenuVisibilityState(expanded: boolean, open: boolean) {\n        this.secondaryMenuExpanded$.next(expanded);\n        this.secondaryMenuOpen$.next(open);\n    }\n\n    private setNetworkTheme(theme: {[key: string]: string}) {\n        if (!isNullOrUndefined(theme)) {\n            Object.keys(theme).forEach(key => {\n                this.elementRef.nativeElement.style.setProperty(`--${key}`, theme[key]);\n            });\n        }\n    }\n\n    private findDefaultMenuItem(items: MenuItem[]): MenuItem | undefined {\n        const searchMenuItemByKey = (items: MenuItem[], key: string): MenuItem | undefined => {\n            for (const item of items) {\n                if (!!item[key]) {\n                    return item;\n                }\n            }\n            for (const item of items) {\n                if (item.children) {\n                    const found = searchMenuItemByKey(item.children, key);\n                    if (found) {\n                        return found;\n                    }\n                }\n            }\n            return undefined;\n        };\n        const defaultMenuItem = searchMenuItemByKey(items, 'default');\n        if (defaultMenuItem) {\n            return defaultMenuItem;\n        }\n        return searchMenuItemByKey(items, 'route');\n    }\n}\n","<div class=\"fu-navigation-menu\">\n    <fusion-navigation-primary-menu #primaryMenu\n        [menuBarItems]=\"menuItems\"\n        [layoutUser]=\"layoutUser\"\n        [menuOpened]=\"secondaryMenuOpen$ | async\"\n        [menuExpanded]=\"secondaryMenuExpanded$ | async\"\n        [menuOpenForPrimaryMenuItem]=\"menuOpenForPrimaryMenuItem$ | async\"\n        [menuHoverMode]=\"primaryMenuItemMode === 'hoverToShowSecondaryItems'\"\n        (primaryMenuItemClicked)=\"onPrimaryMainMenuItemClicked($event)\"\n        (changeColorTheme)=\"onChangeColorTheme($event)\"\n        (toggleMenu)=\"toggleMenu()\"\n        (resetSecondaryMenu)=\"resetSecondaryMenu()\"\n        (menuItemClick)=\"onMenuItemClicked($event, true)\"\n    ></fusion-navigation-primary-menu>\n    <fusion-navigation-secondary-menu #secondaryMenu\n        [menuItems]=\"secondaryMenuItems$ | async\"\n        [menuName]=\"secondaryMenuName$ | async\"\n        [menuLogoSrc]=\"secondaryMenuLogoSrc$ | async\"\n        [class.fu-menu-expanded]=\"secondaryMenuExpanded$ | async\"\n        [class.fu-menu-open]=\"((secondaryMenuOpen$ | async) && (secondaryMenuItems$ | async)?.length)\"\n        (menuItemClick)=\"onMenuItemClicked($event)\"\n    ></fusion-navigation-secondary-menu>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","_c1","i2","i3","i1"],"mappings":"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"}