{"version":3,"file":"rxap-window-system.mjs","sources":["../../../../../packages/angular/window-system/src/lib/tokens.ts","../../../../../packages/angular/window-system/src/lib/window-tool-bar/window-tool-bar.component.ts","../../../../../packages/angular/window-system/src/lib/window-tool-bar/window-tool-bar.component.html","../../../../../packages/angular/window-system/src/lib/window-content/window-content.component.ts","../../../../../packages/angular/window-system/src/lib/window-content/window-content.component.html","../../../../../packages/angular/window-system/src/lib/window-resizer/window-resizer.component.ts","../../../../../packages/angular/window-system/src/lib/window-resizer/window-resizer.component.html","../../../../../packages/angular/window-system/src/lib/window-container/window-container.component.ts","../../../../../packages/angular/window-system/src/lib/window-container/window-container.component.html","../../../../../packages/angular/window-system/src/lib/default-window/default-window.component.ts","../../../../../packages/angular/window-system/src/lib/default-window/default-window.component.html","../../../../../packages/angular/window-system/src/lib/utilities.ts","../../../../../packages/angular/window-system/src/lib/window-config.ts","../../../../../packages/angular/window-system/src/lib/window-ref.ts","../../../../../packages/angular/window-system/src/lib/window.service.ts","../../../../../packages/angular/window-system/src/lib/window-task-bar/window-task/window-task.component.ts","../../../../../packages/angular/window-system/src/lib/window-task-bar/window-task/window-task.component.html","../../../../../packages/angular/window-system/src/lib/window-task-bar/window-task-bar.component.ts","../../../../../packages/angular/window-system/src/lib/window-task-bar/window-task-bar.component.html","../../../../../packages/angular/window-system/src/lib/window-task-bar/window-task-bar-container/window-task-bar-container.component.ts","../../../../../packages/angular/window-system/src/lib/window-task-bar/window-task-bar-container/window-task-bar-container.component.html","../../../../../packages/angular/window-system/src/lib/window-task-bar/window-task-bar.module.ts","../../../../../packages/angular/window-system/src/lib/window-action-bar/window-action-bar.component.ts","../../../../../packages/angular/window-system/src/lib/window-action-bar/window-action-bar.component.html","../../../../../packages/angular/window-system/src/lib/window-footer.directive.ts","../../../../../packages/angular/window-system/src/lib/window-instance.service.ts","../../../../../packages/angular/window-system/src/lib/window-system.module.ts","../../../../../packages/angular/window-system/src/lib/window-title.directive.ts","../../../../../packages/angular/window-system/src/index.ts","../../../../../packages/angular/window-system/src/rxap-window-system.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport type {\n  WindowContainerContext,\n  WindowContext,\n} from './window-context';\nimport type { WindowRef } from './window-ref';\nimport { WindowSettings } from './window-config';\n\nexport const RXAP_WINDOW_CONTEXT = new InjectionToken<WindowContext<any>>('rxap/core/window/WINDOW_CONTEXT');\nexport const RXAP_WINDOW_DATA = new InjectionToken<any>('rxap/core/window/WINDOW_DATA');\nexport const RXAP_WINDOW_CONTAINER_CONTEXT = new InjectionToken<WindowContainerContext<any>>(\n  'rxap/core/window/WINDOW_CONTAINER_CONTEXT');\nexport const RXAP_WINDOW_REF = new InjectionToken<WindowRef>('rxap/window-system/WINDOW_REF');\nexport const RXAP_WINDOW_SETTINGS = new InjectionToken<WindowSettings>('rxap/window-system/window-settings');\nexport const RXAP_WINDOW_DEFAULT_SETTINGS = new InjectionToken<WindowSettings>(\n  'rxap/window-system/default-window-settings');\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Inject,\n} from '@angular/core';\nimport { WindowRef } from '../window-ref';\nimport { RXAP_WINDOW_CONTEXT } from '../tokens';\nimport { MatButtonModule } from '@angular/material/button';\nimport { IconDirective } from '@rxap/material-directives/icon';\nimport { MatIconModule } from '@angular/material/icon';\nimport { PortalModule } from '@angular/cdk/portal';\nimport {\n  AsyncPipe,\n  NgIf,\n} from '@angular/common';\nimport { MatToolbarModule } from '@angular/material/toolbar';\n\n@Component({\n    selector: 'rxap-window-tool-bar',\n    templateUrl: './window-tool-bar.component.html',\n    styleUrls: ['./window-tool-bar.component.scss'],\n    changeDetection: ChangeDetectionStrategy.Default,\n    imports: [\n        MatToolbarModule,\n        NgIf,\n        PortalModule,\n        MatIconModule,\n        IconDirective,\n        MatButtonModule,\n        AsyncPipe,\n    ]\n})\nexport class WindowToolBarComponent<D> {\n\n  public windowRef: WindowRef<D>;\n\n  constructor(@Inject(RXAP_WINDOW_CONTEXT) context: any) {\n    this.windowRef = context.windowRef;\n  }\n\n}\n","<mat-toolbar class=\"header flex flex-row items-center justify-between gap-x-4\">\n  <div class=\"flex flex-row justify-end items-center gap-x-3\">\n    <ng-template [ngIfElse]=\"titleFromSettings\" [ngIf]=\"windowRef.titlePortal$ | async\" let-titlePortal>\n      <ng-template [cdkPortalOutlet]=\"titlePortal\"></ng-template>\n    </ng-template>\n    <ng-template #titleFromSettings>\n      <ng-template [ngIf]=\"windowRef.settings$ | async\" let-settings>\n        <mat-icon *ngIf=\"settings.icon\" [rxapIcon]=\"settings.icon\"></mat-icon>\n        <h3 *ngIf=\"settings.title\">{{settings.title}}</h3>\n      </ng-template>\n    </ng-template>\n  </div>\n  <div class=\"flex flex-row justify-end items-center\">\n    <button (click)=\"windowRef.minimize()\" *ngIf=\"windowRef.minimizable !== false\"\n            mat-icon-button type=\"button\">\n      <mat-icon>minimize</mat-icon>\n    </button>\n    <button (click)=\"windowRef.fullScreen()\" mat-icon-button type=\"button\">\n      <mat-icon>fullscreen</mat-icon>\n    </button>\n    <button (click)=\"windowRef.complete()\" mat-icon-button type=\"button\">\n      <mat-icon>close</mat-icon>\n    </button>\n  </div>\n</mat-toolbar>\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  Component,\n  ComponentRef,\n  Inject,\n  Injector,\n  isDevMode,\n  OnInit,\n  ViewChild,\n  ViewContainerRef,\n} from '@angular/core';\nimport {\n  RXAP_WINDOW_CONTAINER_CONTEXT,\n  RXAP_WINDOW_REF,\n} from '../tokens';\nimport { WindowContainerContext } from '../window-context';\nimport {\n  CdkPortalOutlet,\n  ComponentPortal,\n  Portal,\n  PortalModule,\n  TemplatePortal,\n} from '@angular/cdk/portal';\nimport type { WindowRef } from '../window-ref';\nimport {\n  catchError,\n  delay,\n  filter,\n  startWith,\n  take,\n  tap,\n  timeout,\n} from 'rxjs/operators';\nimport {\n  isObservable,\n  throwError,\n  TimeoutError,\n} from 'rxjs';\nimport { LoadingIndicatorService } from '@rxap/services';\nimport { isDefined } from '@rxap/rxjs';\n\n@Component({\n    selector: 'rxap-window-content',\n    templateUrl: './window-content.component.html',\n    styleUrls: ['./window-content.component.scss'],\n    changeDetection: ChangeDetectionStrategy.Default,\n    imports: [PortalModule]\n})\nexport class WindowContentComponent implements AfterViewInit, OnInit {\n\n  public context: WindowContainerContext<any>;\n\n  public portal: Portal<any> | null = null;\n\n  @ViewChild(CdkPortalOutlet)\n  public portalOutlet!: CdkPortalOutlet;\n\n  constructor(\n    @Inject(RXAP_WINDOW_CONTAINER_CONTEXT)\n      context: any,\n    @Inject(RXAP_WINDOW_REF)\n    private readonly windowRef: WindowRef,\n    private readonly injector: Injector,\n    private readonly viewContainerRef: ViewContainerRef,\n    private readonly loadingIndicatorService: LoadingIndicatorService,\n  ) {\n    this.context = context;\n  }\n\n  public ngOnInit() {\n    if (this.context.template) {\n      this.portal = new TemplatePortal(this.context.template, this.viewContainerRef);\n    } else if (this.context.component) {\n      this.portal = new ComponentPortal<any>(this.context.component, this.viewContainerRef, this.injector);\n    }\n  }\n\n  public ngAfterViewInit() {\n    this.portalOutlet.attached.pipe(\n      startWith(this.portalOutlet.attachedRef),\n      isDefined(),\n      take(1),\n      tap(attachedRef => this.windowRef.setAttachedRef(attachedRef)),\n      tap(attachedRef => {\n        const promise: Promise<any>[] = [];\n        if (attachedRef instanceof ComponentRef) {\n          attachedRef.changeDetectorRef.detectChanges();\n          const loading$ = attachedRef.instance.loading$;\n          if (loading$ && isObservable(loading$)) {\n            if (isDevMode()) {\n              console.warn('The component has a loading indicator member');\n            }\n            this.loadingIndicatorService.attachLoading(loading$);\n            promise.push(loading$.pipe(\n              filter(Boolean),\n              take(1),\n              delay(100),\n              tap(() => attachedRef.changeDetectorRef.detectChanges()),\n            ).toPromise());\n          } else {\n            this.loadingIndicatorService.disable();\n          }\n        } else {\n          this.loadingIndicatorService.disable();\n        }\n        return Promise.all(promise);\n      }),\n      timeout(10000),\n      catchError(error => {\n\n        if (error instanceof TimeoutError) {\n          if (isDevMode()) {\n            console.warn('The window content never resolved the attached ref');\n          }\n        }\n\n        return throwError(error);\n      }),\n    ).subscribe();\n  }\n\n}\n","<div class=\"p-4\">\n  <ng-template [cdkPortalOutlet]=\"portal\"></ng-template>\n</div>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport {\n  fromEvent,\n  Subscription,\n} from 'rxjs';\nimport {\n  filter,\n  finalize,\n  map,\n  switchMap,\n  takeUntil,\n  tap,\n} from 'rxjs/operators';\nimport { RXAP_WINDOW_CONTEXT } from '../tokens';\nimport { WindowRef } from '../window-ref';\nimport {\n  AsyncPipe,\n  NgClass,\n} from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n    selector: 'rxap-window-resizer',\n    templateUrl: './window-resizer.component.html',\n    styleUrls: ['./window-resizer.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [MatIconModule, AsyncPipe, NgClass]\n})\nexport class WindowResizerComponent implements OnInit, OnDestroy {\n\n  @Input({ required: true }) public containerRef!: ElementRef<any>;\n\n  public windowRef: WindowRef<any>;\n\n  @ViewChild('resizer', { static: true }) public resizerRef!: ElementRef<any>;\n\n  // eslint-disable-next-line @angular-eslint/no-output-rename\n  @Output('width') public width$ = new EventEmitter<string>();\n  // eslint-disable-next-line @angular-eslint/no-output-rename\n  @Output('height') public height$ = new EventEmitter<string>();\n  // eslint-disable-next-line @angular-eslint/no-output-rename\n  @Output('resizing') public resizing$ = new EventEmitter<boolean>();\n\n  private _subscription = new Subscription();\n\n  constructor(\n    @Inject(RXAP_WINDOW_CONTEXT) context: any,\n  ) {\n    this.windowRef = context.windowRef;\n  }\n\n  ngOnDestroy(): void {\n    this._subscription.unsubscribe();\n  }\n\n  ngOnInit() {\n\n    let originalMouseX = 0;\n    let originalMouseY = 0;\n    let originalWidth = 0;\n    let originalHeight = 0;\n\n    this._subscription.add(\n      fromEvent<MouseEvent>(this.resizerRef.nativeElement, 'mousedown').pipe(\n        tap(event => {\n          this.resizing$.emit(true);\n          originalMouseX = event.pageX;\n          originalMouseY = event.pageY;\n          originalWidth = parseFloat(\n            getComputedStyle(this.containerRef.nativeElement, null)\n              .getPropertyValue('width')\n              .replace('px', ''),\n          );\n          originalHeight = parseFloat(\n            getComputedStyle(this.containerRef.nativeElement, null)\n              .getPropertyValue('height')\n              .replace('px', ''),\n          );\n        }),\n        switchMap(() => fromEvent<MouseEvent>(window, 'mousemove').pipe(\n            takeUntil(fromEvent(window, 'mouseup')),\n            map((event) => ({\n              width: originalWidth + (event.pageX - originalMouseX),\n              height: originalHeight + (event.pageY - originalMouseY),\n            })),\n            filter(size => (Number(this.windowRef.getSizeConfig().minHeight) || 0) <=\n              size.height &&\n              (Number(this.windowRef.getSizeConfig().minWidth) || 0) <=\n              size.width),\n            map(size => ({\n              width: size.width + 'px',\n              height: size.height + 'px',\n            })),\n            tap(size => {\n              this.width$.emit(size.width);\n              this.height$.emit(size.height);\n            }),\n            tap(size => {\n              this.windowRef.setHeight(size.height);\n              this.windowRef.setWidth(size.width);\n            }),\n            finalize(() => this.resizing$.emit(false)),\n          ),\n        ),\n      ).subscribe(),\n    );\n\n  }\n\n}\n","<div #resizer class=\"resizer\">\n  <mat-icon [ngClass]=\"{ hidden: (resizing$ | async) === false }\">texture</mat-icon>\n</div>\n","import {\n  CdkDrag,\n  CdkDragEnd,\n  CdkDragHandle,\n} from '@angular/cdk/drag-drop';\nimport { PortalModule } from '@angular/cdk/portal';\nimport {\n  AsyncPipe,\n  NgStyle,\n} from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  ContentChild,\n  ElementRef,\n  HostBinding,\n  inject,\n  INJECTOR,\n  OnInit,\n  runInInjectionContext,\n  Signal,\n  ViewChild,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { isDefined } from '@rxap/rxjs';\nimport { LoadingIndicatorService } from '@rxap/services';\nimport { merge } from 'rxjs';\nimport { filter } from 'rxjs/operators';\nimport {\n  RXAP_WINDOW_CONTEXT,\n  RXAP_WINDOW_REF,\n} from '../tokens';\nimport { WindowResizerComponent } from '../window-resizer/window-resizer.component';\nimport { WindowToolBarComponent } from '../window-tool-bar/window-tool-bar.component';\n\n@Component({\n    selector: 'rxap-window-container',\n    templateUrl: './window-container.component.html',\n    styleUrls: ['./window-container.component.scss'],\n    changeDetection: ChangeDetectionStrategy.Default,\n\n    host: {\n        class: 'rxap-window-container',\n    },\n  imports: [\n    CdkDrag,\n    NgStyle,\n    CdkDragHandle,\n    WindowToolBarComponent,\n    MatToolbarModule,\n    PortalModule,\n    MatProgressBarModule,\n    WindowResizerComponent,\n    AsyncPipe,\n  ],\n})\nexport class WindowContainerComponent implements OnInit {\n\n  @ContentChild('[footer]', { static: true }) public footerContent!: ElementRef;\n\n  @ViewChild('container', { static: true }) public containerRef!: ElementRef;\n  @ViewChild(WindowResizerComponent, { static: true }) public windowContainerResizer!: WindowResizerComponent;\n\n  public width!: Signal<string>;\n  public height!: Signal<string>;\n\n  private readonly injector = inject(INJECTOR);\n  public readonly context = inject(RXAP_WINDOW_CONTEXT);\n  public readonly windowRef = inject(RXAP_WINDOW_REF);\n  public readonly windowInstance = inject(LoadingIndicatorService);\n\n  @HostBinding('attr.data-id')\n  public get id(): string {\n    return this.context.id;\n  }\n\n  ngOnInit() {\n    runInInjectionContext(this.injector, () => {\n      this.width = toSignal(\n        merge(\n          this.windowContainerResizer.width$,\n          this.windowRef.width$,\n        ).pipe(isDefined(), filter(value => !!value?.match(/^\\d+/))),\n        { initialValue: '100%' },\n      );\n\n      this.height = toSignal(\n        merge(\n          this.windowContainerResizer.height$,\n          this.windowRef.height$,\n        ).pipe(isDefined(), filter(value => !!value?.match(/^\\d+/))),\n        { initialValue: '100%' },\n      );\n    });\n  }\n\n  public onDragEnded($event: CdkDragEnd) {\n    const nativeElement = $event.source.element.nativeElement;\n    const pos = nativeElement.getBoundingClientRect();\n    $event.source.reset();\n    this.windowRef.setPos(pos.left + 'px', pos.top + 'px');\n  }\n\n}\n","<div #container\n     (cdkDragEnded)=\"onDragEnded($event)\"\n     [cdkDragDisabled]=\"windowRef.draggable === false\"\n     [ngStyle]=\"{\n     'width': width(),\n     'height': height(),\n     'minWidth': windowRef.minWidth,\n     'minHeight': windowRef.minHeight,\n     'maxWidth': windowRef.maxWidth,\n     'maxHeight': windowRef.maxHeight\n     }\"\n     cdkDrag\n     cdkDragBoundary=\".cdk-overlay-container\"\n     class=\"drop-shadow-2xl bg-white dark:bg-black border-2 border-gray-400 dark:border-gray-800 rounded-xl overflow-hidden\">\n  <div class=\"flex flex-col h-full max-h-full\">\n\n    <div cdkDragHandle class=\"grow-0 w-full h-[64px] min-h-[64px] cursor-move\">\n      <rxap-window-tool-bar></rxap-window-tool-bar>\n    </div>\n\n    <div class=\"grow overflow-auto w-full\">\n      <ng-content></ng-content>\n    </div>\n\n    @if (windowRef.footerPortal$ | async; as footerPortal) {\n      <mat-toolbar class=\"mat-elevation-z1 grow-0 w-full h-[64px] min-h-[64px]\">\n        <ng-template [cdkPortalOutlet]=\"footerPortal\"></ng-template>\n      </mat-toolbar>\n    }\n\n    @if (windowInstance.isLoading$ | async) {\n      <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n    }\n\n    <rxap-window-resizer [containerRef]=\"containerRef\"></rxap-window-resizer>\n  </div>\n</div>\n","import {\n  ChangeDetectionStrategy,\n  Component,\n} from '@angular/core';\nimport { WindowContentComponent } from '../window-content/window-content.component';\nimport { WindowContainerComponent } from '../window-container/window-container.component';\n\n@Component({\n    selector: 'rxap-default-window',\n    templateUrl: './default-window.component.html',\n    styleUrls: ['./default-window.component.scss'],\n    changeDetection: ChangeDetectionStrategy.Default,\n    imports: [WindowContainerComponent, WindowContentComponent]\n})\nexport class DefaultWindowComponent {\n}\n","<rxap-window-container>\n  <rxap-window-content></rxap-window-content>\n</rxap-window-container>\n","export function GetWindowStartPos(): { top: string, left: string } {\n  let top = '16px';\n  let left = '16px';\n\n  // TODO : remove hack to get a better window starting position\n\n  const rxapLayoutHeaderElements = document.getElementsByClassName('rxap-layout-header');\n\n  if (rxapLayoutHeaderElements) {\n    const rxapLayoutHeaderElement = rxapLayoutHeaderElements.item(0);\n    if (rxapLayoutHeaderElement && rxapLayoutHeaderElement instanceof HTMLElement) {\n      top = (rxapLayoutHeaderElement.offsetHeight + 16) + 'px';\n    }\n  }\n\n  const rxapLayoutSidenavs = document.getElementsByClassName('rxap-layout-sidenav');\n\n  if (rxapLayoutSidenavs) {\n    const rxapLayoutSidenav = rxapLayoutSidenavs.item(0);\n    if (rxapLayoutSidenav && rxapLayoutSidenav instanceof HTMLElement) {\n      const container = rxapLayoutSidenav.firstElementChild;\n      if (container && container instanceof HTMLElement) {\n        left = (container.offsetWidth + 16) + 'px';\n      }\n    }\n  }\n\n  return {\n    top,\n    left,\n  };\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport {\n  ComponentFactoryResolver,\n  Injector,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\nimport { ButtonDefinition } from '@rxap/rxjs';\nimport { IconConfig } from '@rxap/utilities';\n\nexport interface WindowActions<A> {\n  position?: 'start' | 'end';\n  definitions: ButtonDefinition<[ A ]>[];\n}\n\nexport interface WindowSettings<D = any> {\n  id?: string;\n  title?: string;\n  icon?: IconConfig;\n  width?: string;\n  height?: string;\n  minWidth?: string;\n  minHeight?: string;\n  maxWidth?: string;\n  maxHeight?: string;\n  resizeable?: boolean;\n  minimizable?: boolean;\n  draggable?: boolean;\n  panelClass?: string;\n  data?: D;\n  actions?: WindowActions<D>;\n}\n\nexport interface WindowConfig<D = any, T = any> extends WindowSettings<D> {\n  windowComponent?: ComponentType<T>;\n  component?: ComponentType<T>;\n  template?: TemplateRef<T>;\n  injector?: Injector | null;\n  injectorName?: string;\n  componentFactoryResolver?: ComponentFactoryResolver | null;\n  viewContainerRef?: ViewContainerRef | null;\n}\n\nexport const DEFAULT_WINDOW_CONFIG: WindowConfig<any, any> = {\n  resizeable: true,\n  draggable: true,\n  injector: null,\n  componentFactoryResolver: null,\n  minWidth: '384px',\n  minHeight: '192px',\n  maxWidth: '100vw',\n  maxHeight: '100vh',\n  minimizable: false,\n};\n","import {\n  Overlay,\n  OverlayRef,\n  OverlaySizeConfig,\n} from '@angular/cdk/overlay';\nimport { Portal } from '@angular/cdk/portal';\nimport {\n  ComponentRef,\n  EmbeddedViewRef,\n  InjectFlags,\n} from '@angular/core';\nimport {\n  BehaviorSubject,\n  ReplaySubject,\n  Subject,\n} from 'rxjs';\nimport { RXAP_WINDOW_SETTINGS } from './tokens';\nimport { GetWindowStartPos } from './utilities';\nimport { WindowSettings } from './window-config';\n\nexport class WindowRef<D = any, R = any> extends Subject<R> {\n\n  public readonly width$ = new BehaviorSubject<string>(this.getWidth());\n  public readonly height$ = new BehaviorSubject<string>(this.getHeight());\n\n  /**\n   * @deprecated removed. use the subscribe method and wait for the resolve event\n   */\n  public readonly closed$ = new Subject<R | undefined>();\n\n  public attachedRef$ = new ReplaySubject<ComponentRef<any> | EmbeddedViewRef<any>>(1);\n  /**\n   * @internal\n   */\n  public footerPortal$ = new ReplaySubject<Portal<any>>(1);\n  /**\n   * @internal\n   */\n  public titlePortal$ = new ReplaySubject<Portal<any>>(1);\n  public settings$ = new ReplaySubject<WindowSettings>(1);\n  /**\n   * stores the window size before fullScreen\n   * @internal\n   */\n  private oldSizes: { width: string, height: string, pos: { x: string, y: string } } | null = null;\n\n  constructor(\n    protected readonly overlayRef: OverlayRef,\n    protected readonly overlay: Overlay,\n    protected readonly settings: WindowSettings<D>,\n  ) {\n    super();\n  }\n\n  public get id(): string | undefined {\n    return this.settings.id;\n  }\n\n  public get minimizable(): boolean | undefined {\n    return this.settings.minimizable;\n  }\n\n  public get draggable(): boolean | undefined {\n    return this.settings.draggable;\n  }\n\n  public get minWidth(): string | undefined {\n    return this.settings.minWidth;\n  }\n\n  public get minHeight(): string | undefined {\n    return this.settings.minHeight;\n  }\n\n  public get maxWidth(): string | undefined {\n    return this.settings.maxWidth;\n  }\n\n  public get maxHeight(): string | undefined {\n    return this.settings.maxHeight;\n  }\n\n  public get isMinimized(): boolean {\n    return this.overlayRef.hostElement.style.display === 'none';\n  }\n\n  /**\n   * @deprecated removed. use the complete method\n   * @param result\n   */\n  public close(result?: R): void {\n    this.closed$.next(result);\n    if (result !== undefined) {\n      this.next(result);\n    }\n    this.complete();\n  }\n\n  public override complete() {\n    this.overlayRef.dispose();\n    super.complete();\n  }\n\n  public minimize(): void {\n    this.overlayRef.hostElement.style.display = 'none';\n  }\n\n  public reopen(): void {\n    const startPos = GetWindowStartPos();\n    this.setPos(startPos.left, startPos.top);\n    this.overlayRef.hostElement.style.display = 'flex';\n  }\n\n  public getSizeConfig(): OverlaySizeConfig {\n    const config = this.overlayRef.getConfig();\n    return {\n      width: config.width,\n      height: config.height,\n      minHeight: config.minHeight,\n      minWidth: config.minWidth,\n      maxHeight: config.maxHeight,\n      maxWidth: config.maxWidth,\n    };\n  }\n\n  public setWidth(width: string): void {\n    this.overlayRef.updateSize({\n      ...this.getSizeConfig(),\n      width,\n    });\n    this.width$.next(width);\n  }\n\n  public setHeight(height: string): void {\n    this.overlayRef.updateSize({\n      ...this.getSizeConfig(),\n      height,\n    });\n    this.height$.next(height);\n  }\n\n  public getWidth(): string {\n    return this.getSizeConfig().width! + '';\n    // return this.overlayRef.overlayElement.offsetWidth + 'px'\n  }\n\n  public getHeight(): string {\n    return this.getSizeConfig().height! + '';\n    // return this.overlayRef.overlayElement.offsetHeight + 'px';\n  }\n\n  public setPos(x: string, y: string): void {\n    this.overlayRef.updatePositionStrategy(this\n      .overlay\n      .position()\n      .global()\n      .top(y)\n      .left(x),\n    );\n    this.overlayRef.updatePosition();\n  }\n\n  public getPos(): { x: string, y: string } {\n    const pos = this.overlayRef.overlayElement.getBoundingClientRect();\n    return {\n      x: pos.left + 'px',\n      y: pos.top + 'px',\n    };\n  }\n\n  public fullScreen(): void {\n    if (this.oldSizes === null) {\n      this.oldSizes = {\n        width: this.overlayRef.overlayElement.offsetWidth + 'px',\n        height: this.overlayRef.overlayElement.offsetHeight + 'px',\n        pos: this.getPos(),\n      };\n      this.setWidth('100vw');\n      this.setHeight('100vh');\n      this.setPos('0px', '0px');\n    } else {\n      this.setWidth(this.oldSizes.width);\n      this.setHeight(this.oldSizes.height);\n      this.setPos(this.oldSizes.pos.x, this.oldSizes.pos.y);\n      this.oldSizes = null;\n    }\n  }\n\n  /**\n   * @param portal\n   */\n  public setFooterPortal(portal: Portal<any>) {\n    setTimeout(() => {\n      this.footerPortal$.next(portal);\n    });\n  }\n\n  public setTitlePortal(portal: Portal<any>) {\n    setTimeout(() => {\n      this.titlePortal$.next(portal);\n    });\n  }\n\n  public setAttachedRef(attachedRef: ComponentRef<any> | EmbeddedViewRef<any>) {\n    if (attachedRef instanceof ComponentRef) {\n      this.updateWindowSettings(attachedRef);\n    } else {\n      this.updateWindowSettings();\n    }\n    this.attachedRef$.next(attachedRef);\n  }\n\n\n  /**\n   * Injects the window settings from the component ref injector and overwrites\n   * the settings\n   * @private\n   */\n  private updateWindowSettings(componentRef?: ComponentRef<any>) {\n    const settings = componentRef?.injector.get(RXAP_WINDOW_SETTINGS, null, InjectFlags.Optional) ?? this.settings;\n    if (settings) {\n      // prevent change diction error: ExpressionChangedAfterItHasBeenCheckedError\n      setTimeout(() => {\n        this.settings$.next(Object.assign({}, this.settings, settings));\n      });\n    }\n  }\n\n}\n","import {\n  Overlay,\n  OverlayConfig,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n  ComponentFactoryResolver,\n  Inject,\n  Injectable,\n  InjectFlags,\n  Injector,\n  Optional,\n  ViewContainerRef,\n} from '@angular/core';\nimport { LoadingIndicatorService } from '@rxap/services';\nimport { GenerateRandomString } from '@rxap/utilities';\nimport { Subject } from 'rxjs';\nimport {\n  finalize,\n  take,\n  tap,\n} from 'rxjs/operators';\nimport { DefaultWindowComponent } from './default-window/default-window.component';\nimport {\n  RXAP_WINDOW_CONTAINER_CONTEXT,\n  RXAP_WINDOW_CONTEXT,\n  RXAP_WINDOW_DATA,\n  RXAP_WINDOW_DEFAULT_SETTINGS,\n  RXAP_WINDOW_REF,\n} from './tokens';\nimport { GetWindowStartPos } from './utilities';\nimport {\n  DEFAULT_WINDOW_CONFIG,\n  WindowConfig,\n  WindowSettings,\n} from './window-config';\nimport {\n  WindowContainerContext,\n  WindowContext,\n} from './window-context';\nimport { WindowRef } from './window-ref';\n\n@Injectable({ providedIn: 'root' })\nexport class WindowService {\n  public readonly activeCount$ = new Subject<number>();\n  private readonly active = new Map<string, WindowRef<any>>();\n\n  constructor(\n    @Inject(Injector) private readonly injector: Injector,\n    @Inject(Overlay) private readonly overlay: Overlay,\n    @Inject(ComponentFactoryResolver)\n    private readonly componentFactoryResolver: ComponentFactoryResolver,\n    @Optional()\n    @Inject(RXAP_WINDOW_DEFAULT_SETTINGS)\n    private readonly defaultWindowSettings?: WindowSettings,\n  ) {\n  }\n\n  public get hasActiveWindows(): boolean {\n    return this.active.size !== 0;\n  }\n\n  public get activeWindowCount(): number {\n    return this.active.size;\n  }\n\n  public get allActiveWindows(): Array<WindowRef<any>> {\n    return Array.from(this.active.values());\n  }\n\n  public get<D>(id: string): WindowRef<D> {\n    if (!this.has(id)) {\n      throw new Error(`Active Window with id '${ id }' not found`);\n    }\n    return this.active.get(id)!;\n  }\n\n  public close(id: string): void {\n    const windowRef = this.get(id);\n    windowRef.complete();\n  }\n\n  public has(id: string): boolean {\n    return this.active.has(id);\n  }\n\n  public open<D, T>(config: WindowConfig<D, T>): WindowRef<D> {\n    // Override default configuration\n    const windowConfig = {\n      id: GenerateRandomString(),\n      ...DEFAULT_WINDOW_CONFIG,\n      ...(this.defaultWindowSettings ?? {}),\n      ...config,\n    };\n\n    if (this.has(windowConfig.id)) {\n      return this.get(windowConfig.id);\n    }\n\n    // Returns an OverlayRef which is a PortalHost\n    const overlayRef = this.createOverlay(windowConfig);\n\n    // Instantiate remote control\n    const windowRef = new WindowRef<D>(overlayRef, this.overlay, windowConfig);\n\n    const context: WindowContext<any> = {\n      id: windowConfig.id,\n      overlayRef,\n      windowRef,\n      data: windowConfig.data,\n    };\n\n    const containerContext: WindowContainerContext<any> = {\n      template: windowConfig.template,\n      component: windowConfig.component,\n    };\n\n    const injector = Injector.create({\n      parent: windowConfig.injector ?? this.injector,\n      providers: [\n        {\n          provide: RXAP_WINDOW_CONTAINER_CONTEXT,\n          useValue: containerContext,\n        },\n        {\n          provide: RXAP_WINDOW_CONTEXT,\n          useValue: context,\n        },\n        {\n          provide: RXAP_WINDOW_DATA,\n          useValue: windowConfig.data,\n        },\n        {\n          provide: RXAP_WINDOW_REF,\n          useValue: windowRef,\n        },\n        {\n          provide: LoadingIndicatorService,\n          useClass: LoadingIndicatorService,\n        },\n      ],\n      name: windowConfig?.injectorName ?? 'WindowService',\n    });\n\n    const containerPortal = new ComponentPortal(\n      windowConfig.windowComponent ?? DefaultWindowComponent,\n      injector.get(ViewContainerRef, null, InjectFlags.Optional) ??\n      windowConfig.viewContainerRef ??\n      null,\n      injector,\n      injector.get(ComponentFactoryResolver, null, InjectFlags.Optional) ??\n      windowConfig.componentFactoryResolver ??\n      this.componentFactoryResolver,\n    );\n\n    overlayRef.attach(containerPortal);\n\n    overlayRef\n      .backdropClick()\n      .pipe(\n        take(1),\n        tap(() => windowRef.complete()),\n      )\n      .subscribe();\n\n    windowRef.pipe(finalize(() => this.remove(windowConfig.id))).subscribe();\n\n    this.add(windowRef);\n\n    return windowRef;\n  }\n\n  public remove(id: string) {\n    const result = this.active.delete(id);\n    this.activeCount$.next(this.active.size);\n    return result;\n  }\n\n  public add(windowRef: WindowRef<any>): void {\n    this.active.set(windowRef.id!, windowRef);\n    this.activeCount$.next(this.active.size);\n  }\n\n  private createOverlay({\n                          panelClass,\n                          width,\n                          height,\n                          minHeight,\n                          minWidth,\n                          maxHeight,\n                          maxWidth,\n                        }: OverlayConfig) {\n    const startPos = GetWindowStartPos();\n\n    const positionStrategy = this.overlay\n                                 .position()\n                                 .global()\n                                 .top(startPos.top)\n                                 .left(startPos.left);\n\n    const overlayConfig = new OverlayConfig({\n      hasBackdrop: false,\n      panelClass,\n      scrollStrategy: this.overlay.scrollStrategies.block(),\n      width,\n      height,\n      maxWidth: maxWidth ?? this.defaultWindowSettings?.maxWidth ?? '100vw',\n      maxHeight: maxHeight ?? this.defaultWindowSettings?.maxHeight ?? '100vh',\n      minWidth: minWidth ?? this.defaultWindowSettings?.minWidth ?? '384px',\n      minHeight: minHeight ?? this.defaultWindowSettings?.minHeight ?? '192px',\n      positionStrategy,\n    });\n\n    return this.overlay.create(overlayConfig);\n  }\n}\n","import {\n  ChangeDetectionStrategy,\n  Component,\n  Input,\n} from '@angular/core';\nimport { WindowRef } from '../../window-ref';\nimport { StopPropagationDirective } from '@rxap/directives';\nimport { MatButtonModule } from '@angular/material/button';\nimport { IconDirective } from '@rxap/material-directives/icon';\nimport { MatIconModule } from '@angular/material/icon';\nimport {\n  AsyncPipe,\n  NgClass,\n  NgIf,\n} from '@angular/common';\n\n@Component({\n    selector: 'rxap-window-task',\n    templateUrl: './window-task.component.html',\n    styleUrls: ['./window-task.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [\n        NgClass,\n        NgIf,\n        MatIconModule,\n        IconDirective,\n        MatButtonModule,\n        StopPropagationDirective,\n        AsyncPipe,\n    ]\n})\nexport class WindowTaskComponent {\n\n  @Input({ required: true }) public window!: WindowRef<any>;\n\n  public close() {\n    this.window.complete();\n  }\n\n  public reopen() {\n    this.window.reopen();\n  }\n\n}\n","<div (click)=\"reopen()\" [ngClass]=\"{ minimized: window.isMinimized }\"\n     class=\"rxap-container mat-elevation-z2 flex flex-row justify-start items-center gap-2\">\n  <ng-template [ngIf]=\"window.settings$ | async\" let-settings>\n    <mat-icon *ngIf=\"settings.icon\" [rxapIcon]=\"settings.icon\"></mat-icon>\n    <h3 *ngIf=\"settings.title\" class=\"grow\">{{settings.title}}</h3>\n  </ng-template>\n  <button (click)=\"close()\" mat-icon-button rxapStopPropagation type=\"button\">\n    <mat-icon>close</mat-icon>\n  </button>\n</div>\n","import {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  OnDestroy,\n  OnInit,\n} from '@angular/core';\nimport { WindowService } from '../window.service';\nimport { Subscription } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { WindowTaskComponent } from './window-task/window-task.component';\nimport { NgFor } from '@angular/common';\n\n@Component({\n    selector: 'rxap-window-task-bar',\n    templateUrl: './window-task-bar.component.html',\n    styleUrls: ['./window-task-bar.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [NgFor, WindowTaskComponent]\n})\nexport class WindowTaskBarComponent implements OnInit, OnDestroy {\n\n  public subscriptions = new Subscription();\n\n  constructor(\n    @Inject(WindowService) public windowService: WindowService,\n    @Inject(ChangeDetectorRef) public cdr: ChangeDetectorRef,\n  ) {\n  }\n\n  public ngOnInit(): void {\n    this.subscriptions.add(this.windowService.activeCount$.pipe(\n      tap(() => this.cdr.markForCheck()),\n    ).subscribe());\n  }\n\n  public ngOnDestroy(): void {\n    this.subscriptions.unsubscribe();\n  }\n\n}\n","<div class=\"tasks grow-0 flex flex-row flex-wrap\">\n  <rxap-window-task *ngFor=\"let window of windowService.allActiveWindows\"\n                    [window]=\"window\"\n                    class=\"grow-0\">\n  </rxap-window-task>\n</div>\n","import {\n  Component,\n  Inject,\n  InjectionToken,\n  Optional,\n} from '@angular/core';\nimport { WindowService } from '../../window.service';\nimport { WindowTaskBarComponent } from '../window-task-bar.component';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n  NgClass,\n  NgIf,\n} from '@angular/common';\n\nexport interface WindowTaskBarContainerSettings {\n  expand?: boolean;\n}\n\nexport const RXAP_WINDOW_TASK_BAR_CONTAINER_SETTINGS = new InjectionToken('rxap/window-system/task-bar-container');\n\n@Component({\n    selector: 'rxap-window-task-bar-container',\n    templateUrl: './window-task-bar-container.component.html',\n    styleUrls: ['./window-task-bar-container.component.scss'],\n    imports: [\n        NgIf,\n        MatButtonModule,\n        MatBadgeModule,\n        MatIconModule,\n        MatToolbarModule,\n        WindowTaskBarComponent,\n        NgClass,\n    ]\n})\nexport class WindowTaskBarContainerComponent {\n\n  public expand = true;\n\n  constructor(\n    @Inject(WindowService)\n    public windowService: WindowService,\n    @Optional()\n    @Inject(RXAP_WINDOW_TASK_BAR_CONTAINER_SETTINGS)\n      settings: WindowTaskBarContainerSettings | null = null,\n  ) {\n    if (settings) {\n      if (settings.expand !== undefined) {\n        this.expand = settings.expand;\n      }\n    }\n  }\n\n}\n","<div *ngIf=\"windowService.hasActiveWindows\" class=\"rxap-container flex flex-col\">\n  <div class=\"flex flex-row justify-end items-end\">\n    <button (click)=\"expand = !expand\"\n            [matBadgeHidden]=\"!windowService.hasActiveWindows\"\n            [matBadge]=\"windowService.activeWindowCount.toFixed(0)\"\n            class=\"pin\"\n            color=\"primary\"\n            mat-icon-button\n            matBadgePosition=\"above before\"\n            type=\"button\">\n      <mat-icon *ngIf=\"!expand\">keyboard_arrow_up</mat-icon>\n      <mat-icon *ngIf=\"expand\">keyboard_arrow_down</mat-icon>\n    </button>\n  </div>\n  <mat-toolbar [ngClass]=\"{ hidden: !expand }\" class=\"tasks\">\n    <rxap-window-task-bar></rxap-window-task-bar>\n  </mat-toolbar>\n</div>\n","import { NgModule } from '@angular/core';\nimport { WindowTaskBarComponent } from './window-task-bar.component';\nimport { WindowTaskComponent } from './window-task/window-task.component';\nimport { WindowTaskBarContainerComponent } from './window-task-bar-container/window-task-bar-container.component';\n\n@NgModule({\n  imports: [\n    WindowTaskBarComponent, WindowTaskComponent, WindowTaskBarContainerComponent,\n  ],\n  exports: [ WindowTaskBarComponent, WindowTaskBarContainerComponent ],\n})\nexport class WindowTaskBarModule {}\n","import {\n  Component,\n  Inject,\n  Injector,\n} from '@angular/core';\nimport { RXAP_WINDOW_CONTEXT } from '../tokens';\nimport { ButtonDefinition } from '@rxap/rxjs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { NgIf } from '@angular/common';\n\n@Component({\n    selector: 'rxap-window-action-bar',\n    templateUrl: './window-action-bar.component.html',\n    styleUrls: ['./window-action-bar.component.scss'],\n    imports: [NgIf, MatToolbarModule]\n})\nexport class WindowActionBarComponent {\n\n  public definitions: ButtonDefinition<any>[] | null = null;\n  public position = 'start';\n\n  constructor(@Inject(RXAP_WINDOW_CONTEXT) context: any, public injector: Injector) {\n    if (context.windowRef.settings.actions) {\n      this.definitions = context.windowRef.settings.actions.definitions;\n      this.position = context.windowRef.settings.actions.position || this.position;\n    }\n  }\n\n}\n","<mat-toolbar-row *ngIf=\"definitions\" class=\"p-2 flex flex-row gap-2 justify-{{position}} items-center\">\n  <span>this feature is removed</span>\n</mat-toolbar-row>\n","import {\n  Directive,\n  Inject,\n  OnInit,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\nimport { WindowRef } from './window-ref';\nimport { RXAP_WINDOW_REF } from './tokens';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nexport interface WindowFooterTemplateContext {\n  $implicit: WindowRef;\n}\n\n@Directive({\n  selector: '[rxapWindowFooter]',\n  standalone: true,\n})\nexport class WindowFooterDirective implements OnInit {\n\n  constructor(\n    @Inject(RXAP_WINDOW_REF)\n    private readonly windowRef: WindowRef,\n    @Inject(TemplateRef)\n    private readonly template: TemplateRef<WindowFooterTemplateContext>,\n    @Inject(ViewContainerRef)\n    private readonly viewContainerRef: ViewContainerRef,\n  ) {\n  }\n\n  /**\n   * Asserts the correct type of the context for the template that `NgForOf` will render.\n   *\n   * The presence of this method is a signal to the Ivy template type-check compiler that the\n   * `NgForOf` structural directive renders its template with a specific context type.\n   */\n  static ngTemplateContextGuard(dir: WindowFooterDirective, ctx: any):\n    ctx is WindowFooterTemplateContext {\n    return true;\n  }\n\n  public ngOnInit() {\n    this.windowRef.setFooterPortal(new TemplatePortal<WindowFooterTemplateContext>(\n      this.template,\n      this.viewContainerRef,\n      {\n        $implicit: this.windowRef,\n      },\n    ));\n  }\n\n}\n\n\n","import {\n  Injectable,\n  OnDestroy,\n} from '@angular/core';\nimport {\n  Observable,\n  Subscription,\n} from 'rxjs';\nimport {\n  delay,\n  map,\n} from 'rxjs/operators';\nimport { ToggleSubject } from '@rxap/rxjs';\n\n@Injectable()\nexport class WindowInstanceService implements OnDestroy {\n\n  public readonly loading$ = new ToggleSubject(false);\n\n  private readonly _attachedLoadingSubscription = new Subscription();\n\n  public attachLoading(loading$: Observable<any>) {\n    this._attachedLoadingSubscription.add(\n      loading$.pipe(map(Boolean), delay(0)).subscribe(this.loading$.next),\n    );\n  }\n\n  public ngOnDestroy() {\n    this._attachedLoadingSubscription.unsubscribe();\n  }\n\n}\n","import { NgModule } from '@angular/core';\nimport { DefaultWindowComponent } from './default-window/default-window.component';\nimport { WindowActionBarComponent } from './window-action-bar/window-action-bar.component';\nimport { WindowContainerComponent } from './window-container/window-container.component';\nimport { WindowContentComponent } from './window-content/window-content.component';\nimport { WindowResizerComponent } from './window-resizer/window-resizer.component';\nimport { WindowTaskBarModule } from './window-task-bar/window-task-bar.module';\nimport { WindowToolBarComponent } from './window-tool-bar/window-tool-bar.component';\n\n// TODO : refactor to be used without a central module\n@NgModule({\n  imports: [\n    WindowContainerComponent,\n    WindowToolBarComponent,\n    WindowResizerComponent,\n    DefaultWindowComponent,\n    WindowContentComponent,\n    WindowActionBarComponent,\n  ],\n  exports: [\n    WindowContainerComponent,\n    WindowToolBarComponent,\n    WindowResizerComponent,\n    DefaultWindowComponent,\n    WindowContentComponent,\n    WindowTaskBarModule,\n  ],\n})\nexport class RxapWindowSystemModule {}\n","import { TemplatePortal } from '@angular/cdk/portal';\nimport {\n  Directive,\n  inject,\n  OnInit,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\nimport { RXAP_WINDOW_REF } from './tokens';\nimport { WindowRef } from './window-ref';\n\nexport interface WindowTitleTemplateContext {\n  $implicit: WindowRef;\n}\n\n@Directive({\n  selector: '[rxapWindowTitle]',\n  standalone: true,\n})\nexport class WindowTitleDirective implements OnInit {\n\n  private readonly windowRef: WindowRef = inject(RXAP_WINDOW_REF);\n  private readonly template: TemplateRef<WindowTitleTemplateContext> = inject(TemplateRef);\n  private readonly viewContainerRef = inject(ViewContainerRef);\n\n  /**\n   * Asserts the correct type of the context for the template that `NgForOf` will render.\n   *\n   * The presence of this method is a signal to the Ivy template type-check compiler that the\n   * `NgForOf` structural directive renders its template with a specific context type.\n   */\n  static ngTemplateContextGuard(dir: WindowTitleDirective, ctx: any):\n    ctx is WindowTitleTemplateContext {\n    return true;\n  }\n\n  public ngOnInit() {\n    this.windowRef.setTitlePortal(new TemplatePortal<WindowTitleTemplateContext>(\n      this.template,\n      this.viewContainerRef,\n      {\n        $implicit: this.windowRef,\n      },\n    ));\n  }\n\n}\n\n\n","// region window-tool-bar\nexport * from './lib/window-tool-bar/window-tool-bar.component';\n// endregion\n\n// region window-task-bar window-task-bar-container\nexport * from './lib/window-task-bar/window-task-bar-container/window-task-bar-container.component';\n// endregion\n\n// region window-task-bar window-task\nexport * from './lib/window-task-bar/window-task/window-task.component';\n// endregion\n\n// region window-task-bar\nexport * from './lib/window-task-bar/window-task-bar.component';\nexport * from './lib/window-task-bar/window-task-bar.module';\n// endregion\n\n// region window-resizer\nexport * from './lib/window-resizer/window-resizer.component';\n// endregion\n\n// region window-content\nexport * from './lib/window-content/window-content.component';\n// endregion\n\n// region window-container\nexport * from './lib/window-container/window-container.component';\n// endregion\n\n// region window-action-bar\nexport * from './lib/window-action-bar/window-action-bar.component';\n// endregion\n\n// region default-window\nexport * from './lib/default-window/default-window.component';\n// endregion\n\n// region \nexport * from './lib/tokens';\nexport * from './lib/utilities';\nexport * from './lib/window-config';\nexport * from './lib/window-context';\nexport * from './lib/window-footer.directive';\nexport * from './lib/window-instance.service';\nexport * from './lib/window-ref';\nexport * from './lib/window-system.module';\nexport * from './lib/window-title.directive';\nexport * from './lib/window.service';\n// endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i1","i2","i4"],"mappings":"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"}