{"version":3,"file":"ironsource-fusion-ui-components-layout-v1.mjs","sources":["../../../projects/fusion-ui/components/layout/v1/layout.component.ts","../../../projects/fusion-ui/components/layout/v1/layout.component.html","../../../projects/fusion-ui/components/layout/v1/layout-config.ts","../../../projects/fusion-ui/components/layout/v1/layout.module.ts","../../../projects/fusion-ui/components/layout/v1/ironsource-fusion-ui-components-layout-v1.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, EventEmitter, Input, Output, OnDestroy, ViewChild, ElementRef} from '@angular/core';\nimport {HeaderState} from '@ironsource/fusion-ui/components/header/common/base';\nimport {Subject} from 'rxjs';\nimport {MenuItem, MenuItemAdditionalData} from '@ironsource/fusion-ui/components/menu/common/base';\nimport {IconData} from '@ironsource/fusion-ui/components/icon/v1';\nimport {StorageService, StorageType} from '@ironsource/fusion-ui/services/stogare';\n\n@Component({\n    selector: 'fusion-layout',\n    templateUrl: './layout.component.html',\n    styleUrls: ['./layout.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutComponent implements OnDestroy {\n    @Input() loading: boolean;\n    @Input() menuItems: MenuItem[] = [];\n    @Input() state: HeaderState = {};\n    @Input() scrollTopOnRouteChange: boolean;\n    @Input() userName = '';\n    @Input() headerPrimaryMenuIconName: IconData = {iconName: 'user', iconVersion: 'v1'};\n    @Input() headerMenuUserNameIcon: string;\n    @Input() headerPrimaryMenuItems: MenuItem[] = [];\n    @Input() headerSecondaryMenuItems: MenuItem[] = [];\n\n    @Output() menuItemClick = new EventEmitter<MenuItem>();\n    @Output() menuAdditionalItemClick = new EventEmitter<MenuItem>();\n    @Output() menuStateChanged = new EventEmitter<boolean>();\n    @Output() logoClicked = new EventEmitter();\n\n    @ViewChild('mainContent', {static: true}) mainContent: ElementRef;\n\n    public isMenuOpened: boolean;\n    public isMainMenuCollapsed: boolean = this.storageService.get(StorageType.SessionStorage, 'menuCollapsed') ?? false;\n    private onDestroy$ = new Subject();\n\n    constructor(private storageService: StorageService) {}\n\n    onMenuItemClicked(item: MenuItem) {\n        this.menuItemClick.emit(item);\n    }\n\n    onMenuAdditionalItemClicked(item: MenuItemAdditionalData) {\n        this.menuAdditionalItemClick.emit(item);\n    }\n\n    onMenuStateChanged(isMainMenuCollapsed) {\n        this.isMainMenuCollapsed = isMainMenuCollapsed;\n        this.storageService.set(StorageType.SessionStorage, 'menuCollapsed', this.isMainMenuCollapsed);\n        this.menuStateChanged.emit(this.isMainMenuCollapsed);\n    }\n\n    onMouseLeave() {\n        this.isMenuOpened = false;\n    }\n\n    onMouseEnter() {\n        this.isMenuOpened = true;\n    }\n\n    onLogoClicked() {\n        this.logoClicked.emit();\n    }\n\n    routeChanged() {\n        if (this.scrollTopOnRouteChange && this.mainContent) {\n            this.mainContent.nativeElement.scrollTop = 0;\n        }\n    }\n\n    ngOnDestroy() {\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n    }\n}\n","<div class=\"layout-wrapper\" [ngClass]=\"{collapsed: isMainMenuCollapsed, 'menu-opened': isMenuOpened}\">\n    <fusion-header\n        [userName]=\"userName\"\n        [headerMenuUserNameIcon]=\"headerMenuUserNameIcon\"\n        [primaryMenuIconName]=\"headerPrimaryMenuIconName\"\n        [primaryMenuItems]=\"headerPrimaryMenuItems\"\n        [secondaryMenuItems]=\"headerSecondaryMenuItems\"\n        [state]=\"state\"\n        [isMainMenuCollapsed]=\"isMainMenuCollapsed\"\n        (menuItemClick)=\"onMenuItemClicked($event)\"\n        (menuStateChanged)=\"onMenuStateChanged($event)\"\n        (logoClick)=\"onLogoClicked()\"\n    >\n    </fusion-header>\n\n    <!--Main Menu-->\n    <fusion-menu\n        [menuItems]=\"menuItems\"\n        (menuItemClicked)=\"onMenuItemClicked($event)\"\n        (menuAdditionalItemClicked)=\"onMenuAdditionalItemClicked($event)\"\n        (mouseLeave)=\"onMouseLeave()\"\n        (mouseEnter)=\"onMouseEnter()\"\n        (routeChanged)=\"routeChanged()\"\n        [ngClass]=\"{opened: isMenuOpened, collapsed: isMainMenuCollapsed}\"\n    ></fusion-menu>\n    <!--Main Menu END -->\n    <div #mainContent class=\"main-content\" id=\"main-view\">\n        <div class=\"page-view\">\n            <div class=\"app-route-content-holder\" [hidden]=\"loading\">\n                <ng-content></ng-content>\n            </div>\n        </div>\n    </div>\n</div>\n","import {LayoutModuleOptions} from './layout-entities';\n\nexport const LAYOUT_OPTIONS_DEFAULT_VALUE: LayoutModuleOptions = {\n    svgOptions: {assetsPath: ''}\n};\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {LayoutComponent} from './layout.component';\nimport {HeaderModule} from '@ironsource/fusion-ui/components/header/v1';\nimport {MenuModule} from '@ironsource/fusion-ui/components/menu/v1';\nimport {SVG_OPTIONS_TOKEN} from '@ironsource/fusion-ui/components/svg';\nimport {LayoutModuleOptions} from './layout-entities';\nimport {LAYOUT_OPTIONS_DEFAULT_VALUE} from './layout-config';\n\n@NgModule({\n    declarations: [LayoutComponent],\n    exports: [LayoutComponent],\n    imports: [CommonModule, HeaderModule, MenuModule]\n})\nexport class LayoutModule {\n    static forRoot(options?: LayoutModuleOptions): ModuleWithProviders<LayoutModule> {\n        return {\n            ngModule: LayoutModule,\n            providers: [\n                {\n                    provide: SVG_OPTIONS_TOKEN,\n                    useValue: options ? options.svgOptions : LAYOUT_OPTIONS_DEFAULT_VALUE\n                }\n            ]\n        };\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}