{"version":3,"file":"bootkit-ng1-layouts-layout1.mjs","sources":["../../../projects/ng1/layouts/layout1/layout1-manager.ts","../../../projects/ng1/layouts/layout1/layout1-sidenav.directive.ts","../../../projects/ng1/layouts/layout1/secondary-sidenav.ts","../../../projects/ng1/layouts/layout1/layout1.component.ts","../../../projects/ng1/layouts/layout1/layout1.component.html","../../../projects/ng1/layouts/layout1/layout1-header.component.ts","../../../projects/ng1/layouts/layout1/layout1-content.component.ts","../../../projects/ng1/layouts/layout1/layout1.module.ts","../../../projects/ng1/layouts/layout1/bootkit-ng1-layouts-layout1.ts"],"sourcesContent":["import { Injectable, TemplateRef } from '@angular/core';\nimport { Layout1SecondarySidenav, Layout1SecondarySidenavOptions } from './secondary-sidenav';\nimport { Layout1Component } from './layout1.component';\n\n/**\n * Service to manage the configuration and state of Layout1Component.\n */\n@Injectable({\n  providedIn: 'root'\n})\nexport class Layout1Manager {\n  /**\n   * The Layout1Component instance associated with this manager.\n   */\n  public component!: Layout1Component;\n\n  /**\n   * Push a secondary sidenav.\n   * @param content The template for the secondary sidenav.\n   * @param options Options for the secondary sidenav.\n   * @returns The reference to the pushed secondary sidenav.\n   */\n  public pushSidenav(content: TemplateRef<any>, options?: Layout1SecondarySidenavOptions): Layout1SecondarySidenav {\n    return this.component.pushSidenav(content, options);\n  }\n\n  /**\n   * Close the last secondary sidenav and dispose it.\n   */\n  public popSidenav(result?: any): Layout1SecondarySidenav | undefined {\n    return this.component.popSidenav(result);\n  }\n\n  /**\n   * Get the list of secondary sidenavs.\n   */\n  public get secondarySidenavs(): ReadonlyArray<Layout1SecondarySidenav> {\n    return this.component.secondarySidenavs;\n  }\n\n  /**\n   * Get the last secondary sidenav.\n   */\n  public get last(): Layout1SecondarySidenav | undefined {\n    return this.component.secondarySidenavs.at(-1);\n  }\n}\n","import { booleanAttribute, Directive, EventEmitter, inject, input, Output, TemplateRef } from '@angular/core';\nimport { SidenavMode, SidenavPosition, SidenavSize } from '@bootkit/ng1/components/sidenav';\nimport { CssClass } from '@bootkit/ng1/common';\n\n/** \n * Directive to define a sidenav within Layout1Component.\n */\n@Directive({\n    selector: '[ng1Layout1Sidenav]',\n    exportAs: 'ng1Layout1Sidenav',\n    standalone: true,\n})\nexport class Layout1SidenavDirective {\n    public readonly template = inject(TemplateRef<any>);\n    public readonly open = input(true, { transform: booleanAttribute });\n    public readonly mode = input<SidenavMode>('push');\n    public readonly hasBackdrop = input(true, { transform: booleanAttribute });\n    public readonly zIndex = input<number | undefined>(undefined);\n    public readonly position = input<SidenavPosition>('start');\n    public readonly size = input<SidenavSize>();\n    public readonly css = input<CssClass>();\n    @Output() public backdropClick = new EventEmitter<PointerEvent>();\n}\n","import { signal, TemplateRef, WritableSignal } from \"@angular/core\";\nimport { CssClass } from \"@bootkit/ng1/common\";\nimport { SidenavMode, SidenavPosition, SidenavSize } from \"@bootkit/ng1/components/sidenav\";\nimport { Subject } from \"rxjs\";\n\n/**\n * Represents a secondary sidenav options in the Layout1Component.\n */\nexport interface Layout1SecondarySidenavOptions {\n    size?: SidenavSize;\n    zIndex?: number;\n    position?: SidenavPosition;\n    mode?: SidenavMode;\n    fixedInViewport?: boolean;\n    hasBackdrop?: boolean;\n    css?: CssClass;\n    closeOnBackdropClick?: boolean\n}\n\n/**\n * Reference to a secondary sidenav in the Layout1Component.\n */\nexport class Layout1SecondarySidenav {\n    private _disposedSubject = new Subject<any>();\n    private _isDisposed = false;\n\n    /**\n     * Observable that emits when the sidenav is disposed.\n     */\n    public readonly disposed = this._disposedSubject.asObservable();\n\n    /**\n     * template of the sidenav content.\n     */\n    public readonly template: TemplateRef<any>;\n\n    /**\n     * Z-Index of the sidenav.\n     */\n    public readonly zIndex: WritableSignal<number | undefined>;\n\n    /**\n     * Sidenav css classes.\n     */\n    public readonly css: WritableSignal<CssClass>;\n\n    /**\n     * Size of the sidenav.\n     */\n    public readonly size: WritableSignal<SidenavSize>;\n\n    /**\n     * Position of the sidenav.\n     */\n    public readonly position: WritableSignal<SidenavPosition>;\n\n    /**\n     * Mode of the sidenav.\n     */\n    public readonly mode: WritableSignal<SidenavMode>;\n\n    /**\n     * Whether the sidenav has a backdrop.\n     */\n    public readonly hasBackdrop: WritableSignal<boolean>;\n\n    /**\n     * Whether the sidenav should close on backdrop click.\n     */\n    public readonly closeOnBackdropClick: WritableSignal<boolean>;\n\n    /**\n     * Whether the sidenav is disposed.\n     */\n    public get isDisposed() {\n        return this._isDisposed;\n    }\n\n    constructor(template: TemplateRef<any>, options?: Layout1SecondarySidenavOptions) {\n        this.template = template;\n        this.zIndex = signal(options?.zIndex);\n        this.css = signal(options?.css);\n        this.size = signal(options?.size);\n        this.position = signal(options?.position ?? 'start');\n        this.mode = signal(options?.mode ?? 'over');\n        this.hasBackdrop = signal(options?.hasBackdrop ?? true);\n        this.closeOnBackdropClick = signal(options?.closeOnBackdropClick ?? false);\n    }\n\n    /**\n     * Close and dispose the sidenav.\n     * @param result Optional result to emit when the sidenav is closed.\n     */\n    public dispose(result?: any): void {\n        if (!this._isDisposed) {\n            this._isDisposed = true;\n            this._disposedSubject.next(result);\n        }\n    }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, inject, input, QueryList, signal, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { SidenavMode, SidenavModule, SidenavPosition, SidenavSize } from '@bootkit/ng1/components/sidenav';\nimport { CommonModule } from '@angular/common';\nimport { Layout1Manager } from './layout1-manager';\nimport { Layout1SidenavDirective } from './layout1-sidenav.directive';\nimport { Layout1SecondarySidenavOptions, Layout1SecondarySidenav } from './secondary-sidenav';\n\n/**\n * Layout1 component that provides a layout with sidenavs.\n */\n@Component({\n  selector: 'ng1-layout1',\n  templateUrl: './layout1.component.html',\n  styleUrls: ['./layout1.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n  imports: [CommonModule, SidenavModule]\n})\nexport class Layout1Component {\n  private _zIndexCounter = 1000;\n  private readonly _manager = inject(Layout1Manager);\n  @ContentChildren(Layout1SidenavDirective) protected readonly _sidenavs?: QueryList<Layout1SidenavDirective>;\n  protected readonly _secondarySidenavs = signal<Layout1SecondarySidenav[]>([]);\n  protected readonly _openSecondarySidenavs = new Set<Layout1SecondarySidenav>();\n  private readonly _changeDetectorRef = inject(ChangeDetectorRef);\n\n  /**\n   * Default position for secondary sidenavs.\n   */\n  defaultSidenavPosition = input<SidenavPosition>('start');\n\n  /**\n   * Default size for secondary sidenavs.\n   */\n  defaultSidenavSize = input<SidenavSize>();\n\n  /**\n   * Default mode for secondary sidenavs.\n   */\n  defaultSidenavMode = input<SidenavMode>('over');\n\n  /**\n   * Default hasBackdrop value for secondary sidenavs.\n   */\n  defaultSidenavHasBackdrop = input(true);\n\n  /**\n   * Default closeOnBackdropClick value for secondary sidenavs.\n   */\n  defaultSidenavCloseOnBackdropClick = input(false);\n\n\n  constructor() {\n    this._manager.component = this;\n  }\n\n  /**\n   * Push a secondary sidenav.\n   * @param template The template for the secondary sidenav.\n   * @param options Options for the secondary sidenav.\n   * @returns The reference to the pushed secondary sidenav.\n   */\n  public pushSidenav(template: TemplateRef<any>, options?: Layout1SecondarySidenavOptions): Layout1SecondarySidenav {\n    options = options || {};\n    options.zIndex = options.zIndex ?? this._zIndexCounter++;\n    options.mode = options.mode ?? this.defaultSidenavMode();\n    options.position = options.position ?? this.defaultSidenavPosition();\n    options.size = options.size ?? this.defaultSidenavSize();\n    options.hasBackdrop = options.hasBackdrop == null ? this.defaultSidenavHasBackdrop() : options.hasBackdrop\n    options.closeOnBackdropClick = options.closeOnBackdropClick == null ? options.closeOnBackdropClick : this.defaultSidenavCloseOnBackdropClick();\n\n    const sidenavRef = new Layout1SecondarySidenav(template, options);\n    this._secondarySidenavs().push(sidenavRef);\n    this._changeDetectorRef.markForCheck();\n\n    // Open the sidenav in the next tick to ensure it's 'transform' transition works correctly.\n    setTimeout(() => {\n      this._openSecondarySidenavs.add(sidenavRef);\n      this._changeDetectorRef.markForCheck();\n    });\n\n    sidenavRef.disposed.subscribe((result?: any) => {\n      // Close the sidenav first. After the transition ends, it will be removed from DOM.\n      this._openSecondarySidenavs.delete(sidenavRef);\n    });\n\n    return sidenavRef;\n  }\n\n  /**\n   * Close the last secondary sidenav and dispose it.\n   * @param result The result to pass when closing the sidenav.\n   * @return The reference to the closed secondary sidenav.\n  */\n  public popSidenav(result?: any): Layout1SecondarySidenav | undefined {\n    const last = this._secondarySidenavs().at(-1);\n    if (last) {\n      last.dispose(result);\n      return last;\n    }\n\n    return undefined;\n  }\n\n  /**\n   * Get the list of secondary sidenavs.\n   */\n  public get secondarySidenavs(): ReadonlyArray<Layout1SecondarySidenav> {\n    return this._secondarySidenavs();\n  }\n\n  protected _onSecondarySidenavTransitionEnd(sidenav: Layout1SecondarySidenav) {\n    if (sidenav.isDisposed) {\n      const index = this._secondarySidenavs().findIndex(x => x === sidenav);\n      this._secondarySidenavs().splice(index, 1);\n    }\n  }\n}\n","<ng1-sidenav-container>\n  <ng1-sidenav-content>\n    <ng-content select=\"ng1-layout1-header\" />\n    <ng-content select=\"ng1-layout1-content\" />\n  </ng1-sidenav-content>\n\n  @for (sidenav of _sidenavs; track $index) {\n  <ng1-sidenav class=\"ng1-layout1-sidenav\"\n               [size]=\"sidenav.size()\"\n               [open]=\"sidenav.open()\"\n               [mode]=\"sidenav.mode()\"\n               [hasBackdrop]=\"sidenav.hasBackdrop()\"\n               [position]=\"sidenav.position()\"\n               [zIndex]=\"sidenav.zIndex()\"\n               [fixedInViewport]=\"true\"\n               [ngClass]=\"sidenav.css()\"\n               (backdropClick)=\"sidenav.backdropClick.emit($event)\">\n    <ng-container *ngTemplateOutlet=\"sidenav.template\" />\n  </ng1-sidenav>\n  }\n\n  @for (sidenav of _secondarySidenavs(); track $index) {\n  <ng1-sidenav class=\"ng1-layout1-secondary-sidenav\"\n               [size]=\"sidenav.size()\"\n               [open]=\"_openSecondarySidenavs.has(sidenav)\"\n               [mode]=\"sidenav.mode()\"\n               [hasBackdrop]=\"sidenav.hasBackdrop()\"\n               [position]=\"sidenav.position()\"\n               [zIndex]=\"sidenav.zIndex()\"\n               [fixedInViewport]=\"true\"\n               [ngClass]=\"sidenav.css()\"\n               (transitionEnd)=\"_onSecondarySidenavTransitionEnd(sidenav)\"\n               (backdropClick)=\"sidenav.closeOnBackdropClick() ? sidenav.dispose() : null\">\n    <ng-container *ngTemplateOutlet=\"sidenav.template\" />\n  </ng1-sidenav>\n  }\n\n</ng1-sidenav-container>","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Layout1 header component.\n */\n@Component({\n  selector: 'ng1-layout1-header',\n  template: `<ng-content></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class Layout1HeaderComponent {\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Layout1 content component.\n */\n@Component({\n  selector: 'ng1-layout1-content',\n  template: `<ng-content></ng-content>`,\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  standalone: true,\n})\nexport class Layout1ContentComponent {\n}\n","import { NgModule } from '@angular/core';\nimport { Layout1Component } from './layout1.component';\nimport { Layout1SidenavDirective } from './layout1-sidenav.directive';\nimport { Layout1HeaderComponent } from './layout1-header.component';\nimport { Layout1ContentComponent } from './public-api';\n\nconst items = [\n    Layout1Component,\n    Layout1SidenavDirective,\n    Layout1HeaderComponent,\n    Layout1ContentComponent\n];\n\n/**\n * Layout1Module\n */\n@NgModule({\n    imports: items,\n    exports: items\n})\nexport class Layout1Module { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}