{"version":3,"file":"ironsource-fusion-ui-components-header-common-base.mjs","sources":["../../../projects/fusion-ui/components/header/common/base/header.base.component.ts","../../../projects/fusion-ui/components/header/common/base/menu-config.ts","../../../projects/fusion-ui/components/header/common/base/ironsource-fusion-ui-components-header-common-base.ts"],"sourcesContent":["import {EventEmitter, Input, Output, ViewChild, ElementRef, Renderer2, Directive} from '@angular/core';\nimport {MenuItem} from '@ironsource/fusion-ui/components/menu/common/base';\nimport {HeaderState} from './header-state';\nimport {isNullOrUndefined} from '@ironsource/fusion-ui/utils';\nimport {IconData} from '@ironsource/fusion-ui/components/icon/v1';\nimport {StorageService, StorageType} from '@ironsource/fusion-ui/services/stogare';\n\n@Directive()\nexport abstract class HeaderBaseComponent {\n    @ViewChild('menuAction', {read: ElementRef}) set menuAction(value: ElementRef) {\n        this.onMenuActionChanged(value);\n    }\n\n    @Input() primaryMenuIconName: IconData = {iconName: 'user', iconVersion: 'v1'};\n    @Input() primaryMenuItems: MenuItem[];\n    @Input() secondaryMenuItems: MenuItem[];\n    @Input() userName: string;\n    @Input() headerMenuUserNameIcon: string;\n\n    @Input() set state(value: HeaderState) {\n        this.onStateChanged(value);\n    }\n\n    @Input() isMainMenuCollapsed: boolean;\n    @Output() menuItemClick = new EventEmitter<MenuItem>();\n    @Output() menuStateChanged = new EventEmitter();\n    @Output() logoClick = new EventEmitter();\n\n    get state(): HeaderState {\n        return this._state;\n    }\n\n    get menuAction(): ElementRef {\n        return this._menuAction;\n    }\n\n    public userData: any = {};\n    public isUserMenuOpened = false;\n    public isHelpMenuOpened = false;\n\n    private _state: HeaderState;\n    private _menuAction: ElementRef;\n\n    constructor(private renderer: Renderer2, private storageService: StorageService) {}\n\n    changeMenuState() {\n        this.isMainMenuCollapsed = !this.isMainMenuCollapsed;\n        this.storageService.set(StorageType.SessionStorage, 'menuCollapsed', this.isMainMenuCollapsed);\n        // this.windowRef.nativeWindow.sessionStorage.setItem('menuCollapsed', JSON.stringify(this.isMainMenuCollapsed));\n        this.menuStateChanged.emit(this.isMainMenuCollapsed);\n    }\n\n    onOutsideMenuClick(target) {\n        if (isNullOrUndefined(target.closest('fusion-dynamic-components.menu-item-content'))) {\n            this.isUserMenuOpened = false;\n        }\n    }\n\n    onUserMenuClicked() {\n        this.isUserMenuOpened = !this.isUserMenuOpened;\n    }\n\n    onMenuItemClicked(event, item) {\n        event.preventDefault();\n        this.menuItemClick.emit(item);\n    }\n\n    onHelpMenuClicked() {\n        this.isHelpMenuOpened = !this.isHelpMenuOpened;\n    }\n\n    onOutsideHelpMenuClick(target) {\n        if (isNullOrUndefined(target.closest('fusion-dynamic-components.menu-item-content'))) {\n            this.isHelpMenuOpened = false;\n        }\n    }\n\n    onLogoClicked($event) {\n        $event.preventDefault();\n        this.logoClick.emit();\n    }\n\n    private onStateChanged(value: HeaderState) {\n        if (this._state && this._state.element) {\n            this.clearMenuActionContent();\n        }\n        if (value && value.element) {\n            this.handleMenuActionElement(value.element);\n        }\n        this._state = value;\n    }\n\n    private onMenuActionChanged(value: ElementRef) {\n        this._menuAction = value;\n        if (value && this.state && this.state.element) {\n            this.handleMenuActionElement(this.state.element);\n        }\n    }\n\n    private handleMenuActionElement(element: Node) {\n        const nativeElem = this.menuAction ? this.menuAction.nativeElement : null;\n        if (nativeElem) {\n            this.clearMenuActionContent();\n            this.renderer.appendChild(nativeElem, element);\n        }\n    }\n\n    private clearMenuActionContent(): void {\n        const nativeElem = this.menuAction ? this.menuAction.nativeElement : null;\n        while (nativeElem && nativeElem.firstChild) {\n            this.renderer.removeChild(nativeElem, nativeElem.firstChild);\n        }\n    }\n}\n","import {MenuModuleOptions} from './menu-entities';\n\nexport const MENU_OPTIONS_DEFUALT_VALUE: MenuModuleOptions = {\n    svgOptions: {assetsPath: ''}\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}