{"version":3,"file":"ironsource-fusion-ui-components-layout-v4.mjs","sources":["../../../projects/fusion-ui/components/layout/v4/components/layout-header/layout-header.component.html","../../../projects/fusion-ui/components/layout/v4/components/layout-header/layout-header.component.ts","../../../projects/fusion-ui/components/layout/v4/layout.component.ts","../../../projects/fusion-ui/components/layout/v4/layout.component.html","../../../projects/fusion-ui/components/layout/v4/ironsource-fusion-ui-components-layout-v4.ts"],"sourcesContent":["<div class=\"fu-header-top-row\" [hidden]=\"!hasTopLine\">\n    <div id=\"pageHeaderTopTeleportSlot\" [class.fu-has-skeleton]=\"teleportTopRowBaseSkeletons?.length\" [style.gap]=\"teleportTopRowBaseSkeletonsGap\">\n        @for (skeleton of teleportTopRowBaseSkeletons; track skeleton) {\n            <fusion-skeleton\n                    [shape]=\"skeleton.shape ?? 'rectangle'\"\n                    [style.--fu-skeleton-width]=\"skeleton.width\"\n                    [style.--fu-skeleton-height]=\"skeleton.height\"\n                    [style.--fu-skeleton-border-radius]=\"skeleton.borderRadius\"\n            ></fusion-skeleton>\n        }\n    </div>\n    @for (teleportItem of teleportTopRowElements; track teleportItem) {\n        <div [id]=\"teleportItem.id\" class=\"fu-header-top-teleport-host\"\n             [class.fu-flex-align-right]=\"teleportItem?.isOnRight\"\n             [class.fu-has-skeleton]=\"teleportItem?.skeletons?.length\"\n             [style.gap]=\"teleportItem?.skeletonsGap\"\n        >\n            @for (skeleton of teleportItem?.skeletons; track skeleton) {\n                <fusion-skeleton\n                        [shape]=\"skeleton?.shape\"\n                        [style.--fu-skeleton-width]=\"skeleton?.width\"\n                        [style.--fu-skeleton-height]=\"skeleton?.height\"\n                        [style.--fu-skeleton-border-radius]=\"skeleton?.borderRadius\"\n                ></fusion-skeleton>\n            }\n\n        </div>\n    }\n</div>\n<div class=\"fu-header-main-row\" [class.fu-header-drilldown]=\"isDrilldown\" [class.fu-has-top-row]=\"hasTopLine\">\n    <fusion-icon-button *ngIf=\"isMultiline && headerContent?.hasBackButton\"\n                        iconName=\"ph/arrow-left\"\n                        size=\"large\"\n                        (click)=\"backButtonClicked.emit(headerContent?.hasBackButton)\"></fusion-icon-button>\n    <div class=\"fu-header-back-button\" *ngIf=\"!isMultiline && headerContent?.hasBackButton\">\n        <fusion-icon class=\"fu-header-back-button-icon\" [name]=\"{iconName:'arrow-back', iconVersion:'v3'}\"\n                     (click)=\"backButtonClicked.emit(headerContent?.hasBackButton)\"></fusion-icon>\n    </div>\n    <div class=\"fu-page-title\"\n         [class.fu-page-has-subtitle]=\"headerContent?.subTitle\"\n         [class.fu-page-has-button-back]=\"headerContent?.hasBackButton\"\n    >{{ headerContent?.title }}\n    </div>\n    <ng-container *ngIf=\"headerContent?.subTitle\">\n        <div class=\"fu-header-delimiter\"></div>\n        <div class=\"fu-page-subtitle\">{{ headerContent?.subTitle }}</div>\n    </ng-container>\n    <div *ngIf=\"headerContent?.actionComponent\"\n         class=\"fu-header-action-wrapper\"\n         [class.fu-action-wrapper-after-teleports]=\"headerContent?.actionAlignRight\"\n         [class.fu-flex-align-right]=\"headerContent?.actionAlignRight && !hasTeleportAlignRight\"\n    >\n        <fusion-dynamic-components\n                [component]=\"headerContent.actionComponent\"\n                [componentData]=\"headerContent.actionData\">\n        </fusion-dynamic-components>\n    </div>\n    @for (teleportItem of teleportElements; track teleportItem){\n        <div class=\"fu-header-teleport-host\"\n             [id]=\"teleportItem.id\"\n             [class.fu-flex-align-right]=\"teleportItem.isOnRight\"\n             [class.fu-has-skeleton]=\"teleportItem?.skeletons?.length\"\n             [style.gap]=\"teleportItem?.skeletonsGap\"\n        >\n            @for (skeleton of teleportItem?.skeletons; track skeleton) {\n                <fusion-skeleton\n                        [shape]=\"skeleton.shape ?? 'rectangle'\"\n                        [style.--fu-skeleton-width]=\"skeleton.width\"\n                        [style.--fu-skeleton-height]=\"skeleton.height\"\n                        [style.--fu-skeleton-border-radius]=\"skeleton.borderRadius\"\n                ></fusion-skeleton>\n            }\n        </div>\n    }\n</div>\n<div class=\"fu-header-bottom-row\" [hidden]=\"!hasBottomLine\">\n    <div id=\"pageHeaderBottomTeleportSlot\" [class.fu-has-skeleton]=\"teleportBottomLineSkeletons\" [style.gap]=\"teleportBottomLineSkeletonsGap\">\n        @for (skeleton of teleportBottomLineSkeletons; track skeleton) {\n            <fusion-skeleton\n                    [shape]=\"skeleton.shape ?? 'rectangle'\"\n                    [style.--fu-skeleton-width]=\"skeleton.width\"\n                    [style.--fu-skeleton-height]=\"skeleton.height\"\n                    [style.--fu-skeleton-border-radius]=\"skeleton.borderRadius\"\n            ></fusion-skeleton>\n        }\n    </div>\n    @for (teleportItem of bottomTopRowElements; track teleportItem) {\n        <div [id]=\"teleportItem.id\" class=\"fu-header-bottom-teleport-host\"\n             [class.fu-flex-align-right]=\"teleportItem.isOnRight\"\n             [class.fu-has-skeleton]=\"teleportItem?.skeletons?.length\"\n             [style.gap]=\"teleportItem?.skeletonsGap\"\n        >\n            @for (skeleton of teleportItem?.skeletons; track skeleton) {\n                <fusion-skeleton\n                        [shape]=\"skeleton.shape ?? 'rectangle'\"\n                        [style.--fu-skeleton-width]=\"skeleton.width\"\n                        [style.--fu-skeleton-height]=\"skeleton.height\"\n                        [style.--fu-skeleton-border-radius]=\"skeleton.borderRadius\"\n                ></fusion-skeleton>\n            }\n        </div>\n    }\n</div>\n\n","import {ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DynamicComponentsModule} from '@ironsource/fusion-ui/components/dynamic-components/v1';\nimport {HeaderContent, TeleportSkeleton, TeleportWrapperElement} from '../../layout.entities';\nimport {IconModule} from '@ironsource/fusion-ui/components/icon/v1';\nimport {IconButtonComponent} from '@ironsource/fusion-ui/components/button/v4';\nimport {SkeletonComponent} from '@ironsource/fusion-ui/components/skeleton';\n\n@Component({\n    selector: 'fusion-layout-header',\n    standalone: true,\n    imports: [CommonModule, DynamicComponentsModule, IconModule, IconButtonComponent, SkeletonComponent],\n    templateUrl: './layout-header.component.html',\n    styleUrls: ['./layout-header.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutHeaderComponent {\n    @Input() set headerContent(value: HeaderContent) {\n        this._headerContent = value;\n    }\n    get headerContent(): HeaderContent {\n        return this._headerContent;\n    }\n    @Input() set teleportElements(value: TeleportWrapperElement[]) {\n        this._teleportElements = value;\n    }\n    get teleportElements(): TeleportWrapperElement[] {\n        return this._teleportElements ?? [];\n    }\n    @Output() backButtonClicked = new EventEmitter();\n\n    get hasTeleportAlignRight(): boolean {\n        return this.teleportElements.some(element => element.isOnRight);\n    }\n\n    @HostBinding('class.fu-multiline-header') get isMultiline(): boolean {\n        return this._headerContent?.multiline ?? false;\n    }\n\n    get hasTopLine(): boolean {\n        return this.isMultiline && !!this._headerContent?.topRowContent?.show;\n    }\n\n    get teleportTopRowBaseSkeletons(): TeleportSkeleton[] {\n        return this._headerContent?.topRowContent?.skeletons ?? [];\n    }\n\n    get teleportTopRowBaseSkeletonsGap(): string {\n        return this._headerContent?.topRowContent?.skeletonsGap;\n    }\n\n    get teleportTopRowElements(): TeleportWrapperElement[] {\n        return this._headerContent?.topRowContent?.teleportElements ?? [];\n    }\n    get hasBottomLine(): boolean {\n        return this.isMultiline && !!this._headerContent?.bottomRowContent?.show;\n    }\n\n    get bottomTopRowElements(): TeleportWrapperElement[] {\n        return this._headerContent?.bottomRowContent?.teleportElements ?? [];\n    }\n\n    get teleportBottomLineSkeletons(): TeleportSkeleton[] {\n        return this.isMultiline && this._headerContent?.bottomRowContent?.skeletons ? this._headerContent.bottomRowContent.skeletons : [];\n    }\n\n    get teleportBottomLineSkeletonsGap(): string {\n        return this._headerContent?.bottomRowContent?.skeletonsGap;\n    }\n\n    get isDrilldown(): boolean {\n        return this.isMultiline && !!this._headerContent?.hasBackButton;\n    }\n\n    private _headerContent: HeaderContent;\n    private _teleportElements: TeleportWrapperElement[];\n}\n","import {ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {BehaviorSubject, Subject} from 'rxjs';\nimport {WindowService} from '@ironsource/fusion-ui/services/window';\nimport {NavigationMenuComponent, PrimaryMenuItem, PrimaryMenuMode} from '@ironsource/fusion-ui/components/navigation-menu/v4';\nimport {LayoutUser} from '@ironsource/fusion-ui/entities';\nimport {HeaderContent, LayoutConfiguration, TeleportWrapperElement} from './layout.entities';\nimport {MenuItem} from '@ironsource/fusion-ui/components/menu/common/base';\nimport {LayoutHeaderComponent} from './components/layout-header/layout-header.component';\nimport {NavigationEnd, Router} from '@angular/router';\nimport {filter, takeUntil} from 'rxjs/operators';\n\n@Component({\n    selector: 'fusion-layout',\n    standalone: true,\n    imports: [CommonModule, LayoutHeaderComponent, NavigationMenuComponent],\n    templateUrl: './layout.component.html',\n    styleUrls: ['./layout.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LayoutComponent implements OnInit, OnDestroy {\n    @Input() set configuration(value: LayoutConfiguration) {\n        if (Array.isArray(value?.navigationMenuItems) && value.navigationMenuItems.length > 0) {\n            this.navigationMenu$.next(value.navigationMenuItems);\n            if (this.setSelectedMenuByPath(this.navigationMenu$.getValue())) {\n                this.toggleMenu();\n            }\n        }\n        this.primaryMenuItemMode = value?.primaryMenuItemMode ?? 'clickToOpenSecondaryMenu';\n        this.layoutUser = {...value?.layoutUser} ?? null;\n    }\n\n    @Input() set headerContent(value: HeaderContent) {\n        this._headerContent = value;\n    }\n\n    get headerContent(): HeaderContent {\n        return this._headerContent;\n    }\n\n    @Input() set teleportElements(value: TeleportWrapperElement[]) {\n        this._teleportElements = value;\n    }\n\n    get teleportElements(): TeleportWrapperElement[] {\n        return this._teleportElements ?? [];\n    }\n\n    @Output() pageBackButtonClicked = new EventEmitter<MouseEvent>();\n    @Output() menuItemClick = new EventEmitter<MenuItem>();\n\n    /** @internal\n     * Used in additional from selected menu item by route\n     * */\n    @Output() menuItemSelectedByRoute = new EventEmitter<MenuItem>();\n\n    @ViewChild('navigationMenu', {static: true}) navigationMenu: NavigationMenuComponent;\n\n    /** @internal */\n    primaryMenuItemMode: PrimaryMenuMode;\n    /** @internal */\n    navigationMenu$ = new BehaviorSubject<PrimaryMenuItem[]>([]);\n    /** @internal */\n    layoutUser: LayoutUser;\n\n    private onDestroy$ = new Subject();\n    private isMenuToggled = false;\n    private _headerContent: HeaderContent;\n    private _teleportElements: TeleportWrapperElement[];\n\n    constructor(private windowRef: WindowService, private router: Router) {}\n\n    ngOnInit() {\n        this.initNavigationEvents();\n    }\n\n    ngOnDestroy() {\n        this.onDestroy$.next();\n        this.onDestroy$.complete();\n    }\n\n    private initNavigationEvents() {\n        this.router.events\n            .pipe(\n                takeUntil(this.onDestroy$),\n                filter(event => event instanceof NavigationEnd)\n            )\n            .subscribe((event: NavigationEnd) => {\n                if (this.setSelectedMenuByPath(this.navigationMenu$.getValue())) {\n                    this.toggleMenu();\n                }\n            });\n    }\n\n    private isActiveMenuItem(menuItem: MenuItem, currentPath: string): boolean {\n        return (\n            menuItem.route &&\n            menuItem.route !== '/' &&\n            (currentPath.startsWith(menuItem.route) || this.checkBySubRoutes(menuItem, currentPath))\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    private toggleMenu() {\n        if (!this.isMenuToggled) {\n            this.navigationMenu.toggleMenu();\n            this.isMenuToggled = true;\n        }\n    }\n\n    private setSelectedMenuByPath(menuPrimary: PrimaryMenuItem[]): boolean {\n        const currentPath = this.windowRef.nativeWindow.location.pathname;\n        let itemFound: MenuItem | PrimaryMenuItem = null;\n        let primaryItemFound: PrimaryMenuItem = null;\n        if (menuPrimary.length) {\n            menuPrimary.forEach((primaryMenuItem: PrimaryMenuItem) => {\n                if (!itemFound && primaryMenuItem.route && primaryMenuItem.route !== '/' && currentPath.startsWith(primaryMenuItem.route)) {\n                    itemFound = primaryMenuItem;\n                    primaryItemFound = primaryMenuItem;\n                } else {\n                    if (primaryMenuItem?.menuItems?.length && !itemFound) {\n                        primaryMenuItem.menuItems.forEach((menuItem: MenuItem) => {\n                            if (!itemFound) {\n                                if (menuItem.children?.length) {\n                                    menuItem.children.forEach((childMenuItem: MenuItem) => {\n                                        if (!itemFound && this.isActiveMenuItem(childMenuItem, currentPath)) {\n                                            itemFound = childMenuItem;\n                                            primaryItemFound = primaryMenuItem;\n                                        }\n                                    });\n                                } else if (menuItem.route && this.isActiveMenuItem(menuItem, currentPath)) {\n                                    itemFound = menuItem;\n                                    primaryItemFound = primaryMenuItem;\n                                }\n                            }\n                        });\n                    }\n                }\n            });\n        }\n        if (itemFound) {\n            this.navigationMenu.setActiveMenu(primaryItemFound, itemFound);\n            this.menuItemSelectedByRoute.emit(itemFound as MenuItem);\n        } else {\n            this.navigationMenu.setActiveMenu(null, null);\n        }\n        return !!itemFound;\n    }\n}\n","<div class=\"fu-layout\">\n    <!--navigation-->\n    <div class=\"fu-left-navigation\">\n        <fusion-navigation-menu #navigationMenu\n            [primaryMenuItemMode]=\"primaryMenuItemMode\"\n            [layoutUser]=\"layoutUser\"\n            [menuItems]=\"navigationMenu$ | async\"\n            (menuItemClicked)=\"menuItemClick.emit($event)\"\n        ></fusion-navigation-menu>\n    </div>\n    <!--navigation-->\n    <div class=\"fu-main-page\">\n        <!--main header-->\n        <div class=\"fu-page-header\" [class.fu-page-header-multiline]=\"headerContent?.multiline\">\n            <fusion-layout-header\n                [class.fu-multiline-header]=\"headerContent?.multiline\"\n                [headerContent]=\"headerContent\"\n                [teleportElements]=\"teleportElements\"\n                (backButtonClicked)=\"pageBackButtonClicked.emit($event)\"\n            ></fusion-layout-header>\n        </div>\n        <!--main header-->\n        <!--main content-->\n        <div #mainContent class=\"main-content\" id=\"main-view\" [class.fu-menu-expanded-opened]=\"!navigationMenu.isSecondaryMenuExpandable && (navigationMenu.secondaryMenuOpen$ | async) && (navigationMenu.secondaryMenuItems$ | async).length\">\n            <div class=\"page-view\">\n                <div class=\"app-route-content-holder\">\n                    <ng-content></ng-content>\n                </div>\n            </div>\n        </div>\n        <!--main content-->\n    </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","i1","i2","i3"],"mappings":"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"}