{"version":3,"file":"ironsource-fusion-ui-components-menu-v1.mjs","sources":["../../../projects/fusion-ui/components/menu/v1/components/menu-item/menu-item.component.html","../../../projects/fusion-ui/components/menu/v1/components/menu-item/menu-item.component.ts","../../../projects/fusion-ui/components/menu/v1/components/menu-list/menu-list.component.html","../../../projects/fusion-ui/components/menu/v1/components/menu-list/menu-list.component.ts","../../../projects/fusion-ui/components/menu/v1/menu.component.ts","../../../projects/fusion-ui/components/menu/common/base/menu.base.component.html","../../../projects/fusion-ui/components/menu/v1/menu.module.ts","../../../projects/fusion-ui/components/menu/v1/ironsource-fusion-ui-components-menu-v1.ts"],"sourcesContent":["<fusion-icon class=\"item-icon\" *ngIf=\"item.icon\" [name]=\"item.icon\"></fusion-icon>\n<a [href]=\"item.route || item.redirect\"\n   [target]=\"item.target ?? '_self'\"\n   (click)=\"onMenuItemClicked($event)\"\n   class=\"fu-menu-item-link\"\n>\n    <label>{{item.name}}</label>\n</a>\n<i class=\"icon-expand\" *ngIf=\"item.children\">\n    <fusion-icon [name]=\"{iconName: 'arrow-right', iconVersion: 'v1'}\"></fusion-icon>\n</i>\n","import {Component, Input} from '@angular/core';\nimport {MenuItem} from '@ironsource/fusion-ui/components/menu/common/base';\n\n@Component({\n    selector: 'fusion-menu-item',\n    templateUrl: './menu-item.component.html',\n    styleUrls: ['./menu-item.component.scss']\n})\nexport class MenuItemComponent {\n    @Input() item: MenuItem;\n\n    constructor() {}\n\n    onMenuItemClicked($event: MouseEvent) {\n        if (!$event.metaKey) {\n            $event.preventDefault();\n        } else {\n            $event.stopPropagation();\n        }\n    }\n}\n","<div (mouseleave)=\"mouseOverMenu()\" (mouseenter)=\"mouseEnterMenu()\" class=\"main-menu\">\n    <ul>\n        <ng-container *ngFor=\"let item of menuItems\">\n            <span class=\"main-menu-item-wrapper\">\n                <li #itemLi class=\"main-menu-item {{ item.cssClass }}\" [ngClass]=\"{active: isSelected(item), open: isOpened(item)}\">\n                    <div class=\"sub-menu\">\n                        <!--Menu item with ROUTE-->\n                        <span (click)=\"selectItem(item, itemLi)\" *ngIf=\"item.route && !item.redirect\" [routerLink]=\"item.route\">\n                            <a\n                                *ngIf=\"item.additionalAction\"\n                                class=\"is-menu-item-additional-data\"\n                                (click)=\"additionalItemClick($event, item.additionalAction)\"\n                                [ngStyle]=\"item.customCSS\"\n                                >{{ item.additionalAction.name }}</a\n                            >\n                            <fusion-menu-item\n                                [item]=\"item\"\n                                [class]=\"item.cssClass ? item.cssClass : ''\"\n                                [ngClass]=\"{active: isSelected(item)}\"\n                            ></fusion-menu-item>\n                        </span>\n                        <!--Menu item with REDIRECT Just a link to the another target-->\n                        <ng-container\n                            *ngIf=\"\n                                !item.route && !!item.redirect && !!item.target && !item.additionalAction && !item.children;\n                                else redirectMenuItem\n                            \"\n                            ><span class=\"link-target\">\n                                <fusion-icon class=\"item-icon\" *ngIf=\"item.icon\" [name]=\"item.icon\"></fusion-icon>\n                                <a [href]=\"item.redirect\" [target]=\"item.target\" [ngStyle]=\"item.customCSS\">{{ item.name }}<fusion-icon *ngIf=\"item.showNewWindowIcon ?? true\" class=\"icon-new-window\" [name]=\"{iconName: 'new-window', iconVersion: 'v2'}\"></fusion-icon></a>\n                            </span>\n                        </ng-container>\n                        <!--Menu item with REDIRECT-->\n                        <ng-template #redirectMenuItem>\n                            <span (click)=\"selectItem(item, itemLi)\" *ngIf=\"!item.route || item.redirect\">\n                                <a\n                                    *ngIf=\"item.additionalAction\"\n                                    class=\"is-menu-item-additional-data\"\n                                    (click)=\"additionalItemClick($event, item.additionalAction)\"\n                                    [ngClass]=\"{'padding-right-arrow': item.children}\"\n                                    [ngStyle]=\"item.customCSS\"\n                                    >{{ item.additionalAction.name }}</a>\n                                <fusion-icon class=\"item-icon\" *ngIf=\"item.icon\" [name]=\"item.icon\"></fusion-icon>\n                                <label [innerHTML]=\"item.name\"></label>\n                                <i class=\"icon-expand\" *ngIf=\"item.children\"><fusion-icon [name]=\"{iconName: 'arrow-right', iconVersion: 'v1'}\"></fusion-icon></i>\n                            </span>\n                        </ng-template>\n                        <!--Menu list recursive call-->\n                        <fusion-menu-list\n                            *ngIf=\"item.children\"\n                            [menuItems]=\"item.children\"\n                            (menuItemClicked)=\"menuItemClicked.emit($event)\"\n                            (menuAdditionalItemClicked)=\"menuAdditionalItemClicked.emit($event)\"\n                        ></fusion-menu-list>\n                    </div>\n                </li>\n            </span>\n        </ng-container>\n    </ul>\n</div>\n","import {\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    EventEmitter,\n    Input,\n    OnDestroy,\n    OnInit,\n    Optional,\n    Output,\n    Renderer2\n} from '@angular/core';\nimport {isNullOrUndefined} from '@ironsource/fusion-ui/utils';\nimport {NavigationEnd, Router} from '@angular/router';\nimport {filter, takeUntil, tap} from 'rxjs/operators';\nimport {fromEvent, merge, Subject} from 'rxjs';\nimport {WindowService} from '@ironsource/fusion-ui/services/window';\nimport {MenuItem, MenuItemAdditionalData, MenuService} from '@ironsource/fusion-ui/components/menu/common/base';\n\nconst LEAVE_MENU_TIME_INTERVAL = 2000;\n\n@Component({\n    selector: 'fusion-menu-list',\n    templateUrl: './menu-list.component.html',\n    styleUrls: ['./menu-list.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuListComponent implements OnDestroy, OnInit {\n    @Input() menuItems: MenuItem[];\n    @Output() menuAdditionalItemClicked = new EventEmitter<MenuItemAdditionalData>();\n    @Output() menuItemClicked = new EventEmitter<MenuItem>();\n    @Output() routeChanged = new EventEmitter<void>();\n    private currItemLi: HTMLElement;\n    private lastItemLi: HTMLElement;\n    private changeMenuSelectedItem: boolean;\n    private lastSelectedItem: MenuItem;\n    private leaveMenuTimeout: any;\n    private onDestroy$ = new Subject();\n\n    constructor(\n        private changeDetectorRef: ChangeDetectorRef,\n        private menuService: MenuService,\n        @Optional() private router: Router,\n        private renderer: Renderer2,\n        private windowService: WindowService\n    ) {}\n\n    ngOnInit() {\n        this.initNativeStateChangeEvent(this.windowService.nativeWindow);\n        // set selected by menu item by route changed\n        if (this.router) {\n            this.router.events\n                .pipe(\n                    takeUntil(this.onDestroy$),\n                    filter(event => event instanceof NavigationEnd),\n                    tap((event: NavigationEnd) => {\n                        this.routeChanged.emit();\n                        const url = event.url === '/' ? event.urlAfterRedirects : event.url;\n                        this.menuService.setSelectedByRoute(url);\n                        this.changeDetectorRef.markForCheck();\n                    })\n                )\n                .subscribe();\n        } else {\n            merge(fromEvent(window, 'stateChanged'), fromEvent(window, 'popstate'))\n                .pipe(takeUntil(this.onDestroy$))\n                .subscribe(this.onWindowNavigationSync.bind(this));\n        }\n\n        fromEvent(window, 'navigationSync').pipe(takeUntil(this.onDestroy$)).subscribe(this.onWindowNavigationSync.bind(this));\n    }\n\n    initNativeStateChangeEvent(window: Window) {\n        const pushState = window.history.pushState;\n        window.history.pushState = (...args) => {\n            pushState.apply(history, args);\n            const event = new CustomEvent('stateChanged', {detail: {args}});\n            window.dispatchEvent(event);\n        };\n    }\n\n    selectItem(item: MenuItem, itemLi: HTMLElement) {\n        if (item.redirect) {\n            this.menuService.setPlatformMenuPath(item.platformMenuPath); // set data for DSI 1.5 menu pre-selected\n        } else {\n            if (!item.children) {\n                this.lastSelectedItem = item;\n                this.menuService.setSelected(item);\n            } else {\n                this.itemClicked(itemLi);\n            }\n        }\n\n        this.menuItemClicked.emit(item);\n    }\n\n    additionalItemClick(event, item: MenuItemAdditionalData) {\n        event.stopPropagation();\n        event.preventDefault();\n        if (item.route) {\n            this.redirectToPage(item.route);\n        }\n\n        this.menuAdditionalItemClicked.emit(item);\n    }\n\n    isSelected(item: MenuItem) {\n        return this.menuService.isSelected(item);\n    }\n\n    isOpened(item: MenuItem) {\n        return this.menuService.isOpened(item);\n    }\n\n    /**\n     * When clicking a parent element on the main menu, this function is triggered and checks if it needs to open/close any item\n     */\n    itemClicked(itemLi: HTMLElement) {\n        if (itemLi.classList.contains('open')) {\n            this.renderer.removeClass(itemLi, 'open');\n\n            if (itemLi.classList.contains('active')) {\n                this.currItemLi = itemLi;\n            }\n            this.changeMenuSelectedItem = true;\n        } else {\n            if (this.lastItemLi && this.lastItemLi.classList.contains('open')) {\n                this.renderer.removeClass(this.lastItemLi, 'open');\n\n                if (this.lastItemLi.classList.contains('active')) {\n                    this.currItemLi = this.lastItemLi;\n                }\n\n                this.changeMenuSelectedItem = true;\n            } else {\n                this.currItemLi = itemLi;\n                this.changeMenuSelectedItem = true;\n            }\n            this.renderer.addClass(itemLi, 'open');\n            this.lastItemLi = itemLi;\n        }\n    }\n\n    /**\n     * If the menu was closed but no other item was clicked, this function assigns the last item as the open one\n     */\n    reopenClosedMenuItem() {\n        if (!this.currItemLi || (this.currItemLi === this.lastItemLi && !this.currItemLi.classList.contains('active'))) {\n            this.renderer.removeClass(this.lastItemLi, 'open');\n        } else {\n            if (this.currItemLi.classList.contains('active')) {\n                this.renderer.addClass(this.currItemLi, 'open');\n                if (!isNullOrUndefined(this.lastItemLi) && this.currItemLi !== this.lastItemLi) {\n                    this.renderer.removeClass(this.lastItemLi, 'open');\n                    this.lastItemLi = this.currItemLi;\n                }\n\n                this.changeMenuSelectedItem = false;\n            }\n        }\n    }\n\n    mouseOverMenu() {\n        if (this.changeMenuSelectedItem) {\n            if (!this.leaveMenuTimeout) {\n                this.leaveMenuTimeout = setTimeout(() => this.reopenClosedMenuItem(), LEAVE_MENU_TIME_INTERVAL);\n            }\n        }\n    }\n\n    mouseEnterMenu() {\n        clearTimeout(this.leaveMenuTimeout);\n        this.leaveMenuTimeout = null;\n    }\n\n    redirectToPage(path: string, options?: any): Promise<boolean> {\n        const routeCommand = [path];\n        if (options && options.param) {\n            routeCommand.push(options.param);\n            delete options.param;\n        }\n\n        if (this.router) {\n            return this.router.navigate(routeCommand, options);\n        }\n    }\n\n    ngOnDestroy() {\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n    }\n\n    onWindowNavigationSync(event: CustomEvent) {\n        const prefix = event.detail?.prefix || '';\n        const isNavigate = !!event.detail?.usenavigate;\n        const navigateTo = event.detail?.navigateTo || '';\n        const pathname = !!prefix\n            ? this.windowService.nativeWindow.location.pathname.replace(prefix, '')\n            : this.windowService.nativeWindow.location.pathname;\n\n        if (navigateTo) {\n            this.router.navigateByUrl(navigateTo);\n        } else if (isNavigate) {\n            this.router.navigateByUrl(pathname);\n        } else {\n            this.menuService.setSelectedByRoute(pathname);\n            this.changeDetectorRef.detectChanges();\n            this.routeChanged.emit();\n        }\n    }\n}\n","import {ChangeDetectionStrategy, Component} from '@angular/core';\nimport {MenuBaseComponent} from '@ironsource/fusion-ui/components/menu/common/base';\n\n@Component({\n    selector: 'fusion-menu',\n    templateUrl: '../common/base/menu.base.component.html',\n    styleUrls: ['./menu.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MenuComponent extends MenuBaseComponent {}\n","<div class=\"main-menu-wrapper\"\n    (mouseleave)=\"mouseLeave.emit($event)\"\n    (mouseenter)=\"mouseEnter.emit($event)\"\n>\n\n    <fusion-menu-list\n        (routeChanged)=\"routeChanged.emit()\"\n        [menuItems]=\"menuItems\"\n        (menuItemClicked)=\"menuItemClicked.emit($event)\"\n        (menuAdditionalItemClicked)=\"menuAdditionalItemClicked.emit($event)\"\n    ></fusion-menu-list>\n</div>\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {MenuComponent} from './menu.component';\nimport {MenuItemComponent} from './components/menu-item/menu-item.component';\nimport {IconModule} from '@ironsource/fusion-ui/components/icon/v1';\nimport {RouterModule} from '@angular/router';\nimport {MenuListComponent} from './components/menu-list/menu-list.component';\nimport {MenuService} from '@ironsource/fusion-ui/components/menu/common/base';\n\n@NgModule({\n    declarations: [MenuComponent, MenuItemComponent, MenuListComponent],\n    exports: [MenuComponent],\n    imports: [CommonModule, IconModule, RouterModule],\n    providers: [MenuService]\n})\nexport class MenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","i2"],"mappings":"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"}