{"version":3,"file":"ironsource-fusion-ui-components-menu-common-base.mjs","sources":["../../../projects/fusion-ui/components/menu/common/base/menu.service.ts","../../../projects/fusion-ui/components/menu/common/base/menu.base.component.ts","../../../projects/fusion-ui/components/menu/common/base/ironsource-fusion-ui-components-menu-common-base.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {MenuItem} from './menu-item';\nimport {WindowService} from '@ironsource/fusion-ui/services/window';\n\n@Injectable({\n    providedIn: 'root'\n})\nexport class MenuService {\n    menuItems: Array<MenuItem>;\n    selectedItem: MenuItem;\n\n    constructor(private windowService: WindowService) {}\n\n    /**\n     * Set menu items collection from JSON data\n     */\n    setMenuItems(menuItems: MenuItem[], currentPath = '') {\n        this.menuItems = menuItems || [];\n        this.setSelectedByRoute(currentPath);\n    }\n\n    setSelectedByRoute(route: string) {\n        if (this.menuItems.length !== 0) {\n            const findMenuItem = (items: MenuItem[], path: string) => {\n                let itemFound: MenuItem = null;\n                items.forEach((curItem: MenuItem) => {\n                    if (!itemFound) {\n                        if (path.startsWith(curItem.route) || this.checkBySubRoutes(curItem, path) || path.startsWith(curItem.redirect)) {\n                            itemFound = curItem;\n                        }\n                        if (curItem.children && !itemFound) {\n                            itemFound = findMenuItem(curItem.children, path);\n                        }\n                    }\n                });\n                return itemFound;\n            };\n\n            // check menu item to be selected by active route (location)\n            const item = findMenuItem(this.menuItems, route);\n            if (item) {\n                this.setSelected(item);\n            } else {\n                this.selectedItem = null;\n            }\n        }\n    }\n\n    private checkBySubRoutes(item: MenuItem, route: string): boolean {\n        if (Array.isArray(item.subRoutes)) {\n            return item.subRoutes.some(subRoute => route.startsWith(subRoute));\n        }\n        return false;\n    }\n\n    /**\n     * return menu items collection to the menu controller\n     * here we can use some manipulation if needed\n     */\n    getMenuItems(): MenuItem[] {\n        return this.menuItems;\n    }\n\n    /**\n     * Just set menu item that was clicked to selected\n     */\n    setSelected(menuItem: MenuItem): void {\n        this.selectedItem = menuItem;\n    }\n\n    /**\n     * Check if item or one of it's child selected\n     */\n    isSelected(menuItem: MenuItem): boolean {\n        if (menuItem === this.selectedItem) {\n            return true; // current item selected\n        }\n        // need check child if any selected\n        if (menuItem.children) {\n            return menuItem.children.some(item => item === this.selectedItem);\n        }\n        return false;\n    }\n\n    /**\n     * Check if menu item need to be opened (selected and has child)\n     */\n    isOpened(menuItem: MenuItem): boolean {\n        // same as is Selected\n        return this.isSelected(menuItem);\n        // return (!!menuItem.children && (menuItem === this.selectedItem));\n    }\n\n    /**\n     * Store pre-selected menu for using in platform (DSI 1.5)\n     */\n    setPlatformMenuPath(menuPath: string): void {\n        if (menuPath) {\n            this.windowService.nativeWindow.sessionStorage.setItem('menuSelected', menuPath);\n        }\n    }\n}\n","import {Directive, EventEmitter, Input, Optional, Output} from '@angular/core';\nimport {MenuItem} from './menu-item';\nimport {MenuItemAdditionalData} from './menu-item-additional-data';\nimport {MenuService} from './menu.service';\nimport {WindowService} from '@ironsource/fusion-ui/services/window';\nimport {Location} from '@angular/common';\n\n@Directive()\nexport abstract class MenuBaseComponent {\n    private _menuItems: MenuItem[];\n    @Output() routeChanged = new EventEmitter<void>();\n\n    @Input()\n    set menuItems(menuItems: MenuItem[]) {\n        this._menuItems = menuItems;\n        this.menuService.setMenuItems(this._menuItems, this.currentPath);\n    }\n\n    get menuItems(): MenuItem[] {\n        return this._menuItems;\n    }\n\n    get currentPath(): string {\n        if (this.location) {\n            return this.location.path();\n        } else {\n            return this.windowService.nativeWindow.location.pathname;\n        }\n    }\n\n    @Output() menuAdditionalItemClicked = new EventEmitter<MenuItemAdditionalData>();\n    @Output() menuItemClicked = new EventEmitter<MenuItem>();\n    @Output() mouseLeave = new EventEmitter<any>();\n    @Output() mouseEnter = new EventEmitter<any>();\n\n    constructor(private menuService: MenuService, private windowService: WindowService, @Optional() private location: Location) {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.MenuService","i2"],"mappings":"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"}