{"version":3,"file":"covalent-core-dialogs.mjs","sources":["../../../../libs/angular/dialogs/src/dialog.component.html","../../../../libs/angular/dialogs/src/dialog.component.ts","../../../../libs/angular/dialogs/src/alert-dialog/alert-dialog.component.html","../../../../libs/angular/dialogs/src/alert-dialog/alert-dialog.component.ts","../../../../libs/angular/dialogs/src/confirm-dialog/confirm-dialog.component.html","../../../../libs/angular/dialogs/src/confirm-dialog/confirm-dialog.component.ts","../../../../libs/angular/dialogs/src/prompt-dialog/prompt-dialog.component.html","../../../../libs/angular/dialogs/src/prompt-dialog/prompt-dialog.component.ts","../../../../libs/angular/dialogs/src/status-dialog/status-dialog.component.html","../../../../libs/angular/dialogs/src/status-dialog/status-dialog.component.ts","../../../../libs/angular/dialogs/src/services/dialog.service.ts","../../../../libs/angular/dialogs/src/window-dialog/window-dialog.component.ts","../../../../libs/angular/dialogs/src/window-dialog/window-dialog.component.html","../../../../libs/angular/dialogs/src/dialogs.module.ts","../../../../libs/angular/dialogs/src/resizable-draggable-dialog/resizable-draggable-dialog.ts","../../../../libs/angular/dialogs/src/covalent-core-dialogs.ts"],"sourcesContent":["<div class=\"td-dialog-wrapper\">\n  <ng-content\n    *ngIf=\"dialogStatus.length > 0\"\n    select=\"[tdDialogStatus]\"\n  ></ng-content>\n  <section class=\"td-dialog\">\n    <div mat-dialog-title *ngIf=\"dialogTitle.length > 0\">\n      <ng-content select=\"[tdDialogTitle]\"></ng-content>\n    </div>\n    <mat-dialog-content\n      class=\"td-dialog-content\"\n      *ngIf=\"dialogContent.length > 0\"\n    >\n      <ng-content select=\"[tdDialogContent]\"></ng-content>\n    </mat-dialog-content>\n    <mat-dialog-actions\n      class=\"td-dialog-actions\"\n      *ngIf=\"dialogActions.length > 0\"\n    >\n      <span class=\"td-dialog-spacer\"></span>\n      <ng-content select=\"[tdDialogActions]\"></ng-content>\n    </mat-dialog-actions>\n  </section>\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n  Component,\n  Directive,\n  ContentChildren,\n  QueryList,\n  AfterContentInit,\n} from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\n\n@Directive({ selector: '[tdDialogTitle]' })\nexport class TdDialogTitleDirective {}\n\n@Directive({ selector: '[tdDialogContent]' })\nexport class TdDialogContentDirective {}\n\n@Directive({ selector: '[tdDialogActions]' })\nexport class TdDialogActionsDirective {}\n\n@Directive({ selector: '[tdDialogStatus]' })\nexport class TdDialogStatusDirective {}\n\n@Component({\n  selector: 'td-dialog',\n  templateUrl: './dialog.component.html',\n  styleUrls: ['./dialog.component.scss'],\n  imports: [CommonModule, MatDialogModule],\n})\nexport class TdDialogComponent implements AfterContentInit {\n  @ContentChildren(TdDialogTitleDirective, { descendants: true })\n  dialogTitle!: QueryList<TdDialogTitleDirective>;\n  @ContentChildren(TdDialogContentDirective, { descendants: true })\n  dialogContent!: QueryList<TdDialogContentDirective>;\n  @ContentChildren(TdDialogActionsDirective, { descendants: true })\n  dialogActions!: QueryList<TdDialogActionsDirective>;\n  @ContentChildren(TdDialogStatusDirective, { descendants: true })\n  dialogStatus!: QueryList<TdDialogStatusDirective>;\n\n  ngAfterContentInit(): void {\n    if (this.dialogTitle.length > 1) {\n      throw new Error('Duplicate td-dialog-title component at in td-dialog.');\n    }\n    if (this.dialogContent.length > 1) {\n      throw new Error('Duplicate td-dialog-content component at in td-dialog.');\n    }\n    if (this.dialogActions.length > 1) {\n      throw new Error('Duplicate td-dialog-actions component at in td-dialog.');\n    }\n    if (this.dialogStatus.length > 1) {\n      throw new Error('Duplicate td-dialog-status component at in td-dialog.');\n    }\n  }\n}\n","<td-dialog>\n  <ng-container tdDialogTitle *ngIf=\"title\">{{ title }}</ng-container>\n  <ng-container tdDialogContent>\n    <span class=\"td-dialog-message\">{{ message }}</span>\n  </ng-container>\n  <ng-container tdDialogActions>\n    <button mat-button color=\"accent\" (click)=\"close()\">\n      {{ closeButton }}\n    </button>\n  </ng-container>\n</td-dialog>\n","import { Component } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { TdDialogActionsDirective, TdDialogComponent, TdDialogContentDirective, TdDialogTitleDirective } from '../dialog.component';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n  selector: 'td-alert-dialog',\n  templateUrl: './alert-dialog.component.html',\n  styleUrls: ['./alert-dialog.component.scss'],\n  imports: [CommonModule, MatButtonModule, TdDialogComponent, TdDialogTitleDirective, TdDialogContentDirective, TdDialogActionsDirective],\n})\nexport class TdAlertDialogComponent {\n  title?: string;\n  message?: string;\n  closeButton?: string = 'CLOSE';\n\n  constructor(private _dialogRef: MatDialogRef<TdAlertDialogComponent>) {}\n\n  close(): void {\n    this._dialogRef.close();\n  }\n}\n","<td-dialog>\n  <ng-container tdDialogTitle *ngIf=\"title\">{{ title }}</ng-container>\n  <ng-container tdDialogContent>\n    <span class=\"td-dialog-message\">{{ message }}</span>\n  </ng-container>\n  <ng-container tdDialogActions>\n    <button\n      mat-button\n      #closeBtn\n      (keydown.arrowright)=\"acceptBtn.focus()\"\n      (click)=\"cancel()\"\n    >\n      {{ cancelButton }}\n    </button>\n    <button\n      mat-button\n      [color]=\"isDestructive ? 'warn' : 'accent'\"\n      #acceptBtn\n      (keydown.arrowleft)=\"closeBtn.focus()\"\n      (click)=\"accept()\"\n    >\n      {{ acceptButton }}\n    </button>\n  </ng-container>\n</td-dialog>\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { TdDialogActionsDirective, TdDialogComponent, TdDialogContentDirective, TdDialogTitleDirective } from '../dialog.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n  selector: 'td-confirm-dialog',\n  templateUrl: './confirm-dialog.component.html',\n  styleUrls: ['./confirm-dialog.component.scss'],\n  imports: [CommonModule, TdDialogComponent, TdDialogTitleDirective, TdDialogContentDirective, TdDialogActionsDirective, MatButtonModule],\n})\nexport class TdConfirmDialogComponent {\n  title?: string;\n  message?: string;\n  cancelButton = 'CANCEL';\n  acceptButton = 'ACCEPT';\n  isDestructive = false;\n\n  constructor(private _dialogRef: MatDialogRef<TdConfirmDialogComponent>) {}\n\n  cancel(): void {\n    this._dialogRef.close(false);\n  }\n\n  accept(): void {\n    this._dialogRef.close(true);\n  }\n}\n","<td-dialog>\n  <ng-container tdDialogTitle *ngIf=\"title\">{{ title }}</ng-container>\n  <ng-container tdDialogContent>\n    <span class=\"td-dialog-message\">{{ message }}</span>\n    <form #form=\"ngForm\" novalidate>\n      <div class=\"td-dialog-input-wrapper\">\n        <mat-form-field class=\"td-dialog-input\">\n          <input\n            matInput\n            #input\n            (keydown.enter)=\"$event.preventDefault(); form.valid && accept()\"\n            [(ngModel)]=\"value\"\n            name=\"value\"\n            required\n          />\n        </mat-form-field>\n      </div>\n    </form>\n  </ng-container>\n  <ng-container tdDialogActions>\n    <button mat-button #closeBtn (click)=\"cancel()\">{{ cancelButton }}</button>\n    <button\n      mat-button\n      color=\"accent\"\n      #acceptBtn\n      [disabled]=\"!form.valid\"\n      (click)=\"accept()\"\n    >\n      {{ acceptButton }}\n    </button>\n  </ng-container>\n</td-dialog>\n","import {\n  Component,\n  ViewChild,\n  ElementRef,\n  AfterViewInit,\n  NgZone,\n  OnDestroy,\n} from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\nimport { fromEvent, Subject, takeUntil } from 'rxjs';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormField } from '@angular/material/form-field';\nimport { TdDialogActionsDirective, TdDialogComponent, TdDialogContentDirective, TdDialogTitleDirective } from '../dialog.component';\nimport { CommonModule } from '@angular/common';\nimport { MatInput } from '@angular/material/input';\nimport { MatButton } from '@angular/material/button';\n\n@Component({\n  selector: 'td-prompt-dialog',\n  templateUrl: './prompt-dialog.component.html',\n  styleUrls: ['./prompt-dialog.component.scss'],\n  imports: [CommonModule, FormsModule, MatFormField, MatInput, MatButton, TdDialogComponent, TdDialogTitleDirective, TdDialogContentDirective, TdDialogActionsDirective],\n})\nexport class TdPromptDialogComponent implements AfterViewInit, OnDestroy {\n  title?: string;\n  message?: string;\n  value?: string;\n  cancelButton = 'CANCEL';\n  acceptButton = 'ACCEPT';\n\n  /** The native `<input matInput />` element. */\n  @ViewChild('input', { static: true }) _input!: ElementRef<HTMLInputElement>;\n\n  @ViewChild('closeBtn', { static: true, read: ElementRef })\n  _closeBtn!: ElementRef<HTMLButtonElement>;\n\n  @ViewChild('acceptBtn', { static: true, read: ElementRef })\n  _acceptBtn!: ElementRef<HTMLButtonElement>;\n\n  private _destroy$ = new Subject<void>();\n\n  constructor(\n    private _ngZone: NgZone,\n    private _dialogRef: MatDialogRef<TdPromptDialogComponent>\n  ) {}\n\n  ngAfterViewInit(): void {\n    this._ngZone.runOutsideAngular(() => {\n      // Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.\n      // `Promise` is a microtask and microtask are executed within the current rendering frame.\n      // Animation tasks are executed within the next rendering frame.\n      // We focus input once everything is rendered and good to go.\n      requestAnimationFrame(() => this._input.nativeElement.focus());\n\n      fromEvent(this._input.nativeElement, 'focus')\n        .pipe(takeUntil(this._destroy$))\n        .subscribe(() => {\n          // This is executed when the input is focused, selects all text.\n          this._input.nativeElement.select();\n        });\n\n      fromEvent<KeyboardEvent>(this._closeBtn.nativeElement, 'keydown')\n        .pipe(takeUntil(this._destroy$))\n        .subscribe((event) => {\n          if (event.keyCode === RIGHT_ARROW) {\n            this._acceptBtn.nativeElement.focus();\n          }\n        });\n\n      fromEvent<KeyboardEvent>(this._acceptBtn.nativeElement, 'keydown')\n        .pipe(takeUntil(this._destroy$))\n        .subscribe((event) => {\n          if (event.keyCode === LEFT_ARROW) {\n            this._closeBtn.nativeElement.focus();\n          }\n        });\n    });\n  }\n\n  ngOnDestroy(): void {\n    this._destroy$.next();\n  }\n\n  cancel(): void {\n    this._dialogRef.close();\n  }\n\n  accept(): void {\n    this._dialogRef.close(this.value);\n  }\n}\n","<td-dialog class=\"td-status-dialog\">\n  <!-- Displays the icon and background color according to the state -->\n  <div tdDialogStatus class=\"td-status-dialog-state\" [ngClass]=\"state\">\n    <mat-icon>\n      {{ getStatusIcon() }}\n    </mat-icon>\n  </div>\n  <!-- Dialog title and the close icon -->\n  <ng-container tdDialogTitle>\n    <div class=\"td-status-dialog-title\">\n      <span *ngIf=\"title\" class=\"\">{{ title }}</span>\n      <button\n        mat-icon-button\n        class=\"td-status-dialog__icon-button\"\n        (click)=\"close()\"\n      >\n        <mat-icon>close</mat-icon>\n      </button>\n    </div>\n  </ng-container>\n  <!-- Dialog content with additonal information -->\n  <ng-container tdDialogContent>\n    <span class=\"td-dialog-message\">\n      {{ message }}\n      <div\n        class=\"td-status-dialog__toggle-details\"\n        role=\"button\"\n        tabindex=\"0\"\n        *ngIf=\"details\"\n        (click)=\"toggleDetails()\"\n        (keydown.enter)=\"toggleDetails()\"\n      >\n        {{\n          showDetails\n            ? detailsLabels?.hideDetailsLabel\n            : detailsLabels?.showDetailsLabel\n        }}\n        <mat-icon\n          [ngClass]=\"{\n            'td-status-dialog__arrow-icon': true,\n            close: !showDetails,\n            open: showDetails\n          }\"\n          >arrow_drop_down</mat-icon\n        >\n      </div>\n      <div *ngIf=\"showDetails\">{{ details }}</div>\n    </span>\n  </ng-container>\n  <ng-container tdDialogActions>\n    <button\n      mat-raised-button\n      color=\"primary\"\n      class=\"td-status-dialog___button\"\n      (click)=\"close()\"\n    >\n      {{ closeButton }}\n    </button>\n  </ng-container>\n</td-dialog>\n","import { Component } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MatIcon } from '@angular/material/icon';\nimport { TdDialogActionsDirective, TdDialogComponent, TdDialogContentDirective, TdDialogStatusDirective, TdDialogTitleDirective } from '../dialog.component';\nimport { CommonModule } from '@angular/common';\nimport { MatButton, MatIconButton } from '@angular/material/button';\n\nexport type TdStatusDialogStates = 'error' | 'positive' | 'warning';\n\nexport type TdStatusDialogDetailsLabels = {\n  showDetailsLabel: string;\n  hideDetailsLabel: string;\n};\n\n@Component({\n  selector: 'td-status-dialog',\n  templateUrl: './status-dialog.component.html',\n  styleUrls: ['./status-dialog.component.scss'],\n  imports: [CommonModule, MatIcon, MatIconButton, MatButton, TdDialogComponent, TdDialogTitleDirective, TdDialogContentDirective, TdDialogActionsDirective, TdDialogStatusDirective],\n})\nexport class TdStatusDialogComponent {\n  // Label of the close button in the footer\n  closeButton?: string = 'CLOSE';\n  // Message to be displayed in the dialog\n  message?: string;\n  // State of the status dialog\n  state?: TdStatusDialogStates = 'error';\n  // Title of the status dialog\n  title?: string;\n  // Additional details to be displayed after the dialog message\n  details?: string;\n  // Toggles the additional details section\n  showDetails? = false;\n  // Labels for the toggle details link\n  detailsLabels?: TdStatusDialogDetailsLabels = {\n    showDetailsLabel: 'Show details',\n    hideDetailsLabel: 'Hide details',\n  };\n\n  constructor(private _dialogRef: MatDialogRef<TdStatusDialogComponent>) {}\n\n  close(): void {\n    this._dialogRef.close();\n  }\n\n  getStatusIcon(): string {\n    switch (this.state) {\n      case 'positive':\n        return 'check';\n      case 'error':\n      case 'warning':\n        return this.state;\n      default:\n        return 'error';\n    }\n  }\n\n  toggleDetails(): void {\n    this.showDetails = !this.showDetails;\n  }\n}\n","import { Injectable, Inject, Renderer2, RendererFactory2 } from '@angular/core';\nimport {\n  MatDialog,\n  MatDialogRef,\n  MatDialogConfig,\n} from '@angular/material/dialog';\nimport { ComponentType } from '@angular/cdk/portal';\n\nimport { TdAlertDialogComponent } from '../alert-dialog/alert-dialog.component';\nimport { TdConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\nimport { TdPromptDialogComponent } from '../prompt-dialog/prompt-dialog.component';\nimport { DragDrop, DragRef } from '@angular/cdk/drag-drop';\nimport { DOCUMENT } from '@angular/common';\nimport { Subject } from 'rxjs';\nimport {\n  TdStatusDialogStates,\n  TdStatusDialogComponent,\n  TdStatusDialogDetailsLabels,\n} from '../status-dialog/status-dialog.component';\n\nexport interface IDialogConfig extends MatDialogConfig {\n  title?: string;\n  message: string;\n}\n\nexport interface IAlertConfig extends IDialogConfig {\n  closeButton?: string;\n}\n\nexport interface IConfirmConfig extends IDialogConfig {\n  acceptButton?: string;\n  cancelButton?: string;\n  isDestructive?: boolean;\n}\n\nexport interface IPromptConfig extends IConfirmConfig {\n  value?: string;\n}\n\nexport interface IStatusConfig extends IAlertConfig {\n  state?: TdStatusDialogStates;\n  details?: string;\n  detailsLabels?: TdStatusDialogDetailsLabels;\n}\n\nexport interface IDraggableConfig<T> {\n  component: ComponentType<T>;\n  config?: MatDialogConfig;\n  // CSS selectors of element(s) inside the component meant to be drag handle(s)\n  dragHandleSelectors?: string[];\n  // Class that will be added to the component signifying drag-ability\n  draggableClass?: string;\n}\n\nexport interface IDraggableRefs<T> {\n  matDialogRef: MatDialogRef<T>;\n  dragRefSubject: Subject<DragRef>;\n}\n\n@Injectable()\nexport class TdDialogService {\n  private _renderer2: Renderer2;\n\n  constructor(\n    @Inject(DOCUMENT) private _document: any,\n    private _dialogService: MatDialog,\n    private _dragDrop: DragDrop,\n    private rendererFactory: RendererFactory2\n  ) {\n    this._renderer2 = rendererFactory.createRenderer(undefined, null);\n  }\n\n  /**\n   * params:\n   * - component: ComponentType<T>\n   * - config: MatDialogConfig\n   * Wrapper function over the open() method in MatDialog.\n   * Opens a modal dialog containing the given component.\n   */\n  public open<T>(\n    component: ComponentType<T>,\n    config?: MatDialogConfig\n  ): MatDialogRef<T> {\n    return this._dialogService.open(component, config);\n  }\n\n  /**\n   * Wrapper function over the closeAll() method in MatDialog.\n   * Closes all of the currently-open dialogs.\n   */\n  public closeAll(): void {\n    this._dialogService.closeAll();\n  }\n\n  /**\n   * params:\n   * - config: IAlertConfig {\n   *     message: string;\n   *     title?: string;\n   *     viewContainerRef?: ViewContainerRef;\n   *     closeButton?: string;\n   * }\n   *\n   * Opens an alert dialog with the provided config.\n   * Returns an MatDialogRef<TdAlertDialogComponent> object.\n   */\n  public openAlert(config: IAlertConfig): MatDialogRef<TdAlertDialogComponent> {\n    const dialogConfig: MatDialogConfig = this._createConfig(config);\n    const dialogRef: MatDialogRef<TdAlertDialogComponent> =\n      this._dialogService.open(TdAlertDialogComponent, dialogConfig);\n    const alertDialogComponent: TdAlertDialogComponent =\n      dialogRef.componentInstance;\n    alertDialogComponent.title = config.title;\n    alertDialogComponent.message = config.message;\n    if (config.closeButton) {\n      alertDialogComponent.closeButton = config.closeButton;\n    }\n    return dialogRef;\n  }\n\n  /**\n   * params:\n   * - config: IConfirmConfig {\n   *     message: string;\n   *     title?: string;\n   *     viewContainerRef?: ViewContainerRef;\n   *     acceptButton?: string;\n   *     cancelButton?: string;\n   *     isDestructive?: boolean;\n   * }\n   *\n   * Opens a confirm dialog with the provided config.\n   * Returns an MatDialogRef<TdConfirmDialogComponent> object.\n   */\n  public openConfirm(\n    config: IConfirmConfig\n  ): MatDialogRef<TdConfirmDialogComponent> {\n    const dialogConfig: MatDialogConfig = this._createConfig(config);\n    const dialogRef: MatDialogRef<TdConfirmDialogComponent> =\n      this._dialogService.open(TdConfirmDialogComponent, dialogConfig);\n    const confirmDialogComponent: TdConfirmDialogComponent =\n      dialogRef.componentInstance;\n    confirmDialogComponent.title = config.title;\n    confirmDialogComponent.message = config.message;\n    if (config.acceptButton) {\n      confirmDialogComponent.acceptButton = config.acceptButton;\n    }\n    if (config.isDestructive) {\n      confirmDialogComponent.isDestructive = config.isDestructive;\n    }\n    if (config.cancelButton) {\n      confirmDialogComponent.cancelButton = config.cancelButton;\n    }\n    return dialogRef;\n  }\n\n  /**\n   * params:\n   * - config: IPromptConfig {\n   *     message: string;\n   *     title?: string;\n   *     value?: string;\n   *     viewContainerRef?: ViewContainerRef;\n   *     acceptButton?: string;\n   *     cancelButton?: string;\n   * }\n   *\n   * Opens a prompt dialog with the provided config.\n   * Returns an MatDialogRef<TdPromptDialogComponent> object.\n   */\n  public openPrompt(\n    config: IPromptConfig\n  ): MatDialogRef<TdPromptDialogComponent> {\n    const dialogConfig: MatDialogConfig = this._createConfig(config);\n    const dialogRef: MatDialogRef<TdPromptDialogComponent> =\n      this._dialogService.open(TdPromptDialogComponent, dialogConfig);\n    const promptDialogComponent: TdPromptDialogComponent =\n      dialogRef.componentInstance;\n    promptDialogComponent.title = config.title;\n    promptDialogComponent.message = config.message;\n    promptDialogComponent.value = config.value;\n    if (config.acceptButton) {\n      promptDialogComponent.acceptButton = config.acceptButton;\n    }\n    if (config.cancelButton) {\n      promptDialogComponent.cancelButton = config.cancelButton;\n    }\n    return dialogRef;\n  }\n\n  /**\n   * Opens a draggable dialog containing the given component.\n   */\n  public openDraggable<T>({\n    component,\n    config,\n    dragHandleSelectors,\n    draggableClass,\n  }: IDraggableConfig<T>): IDraggableRefs<T> {\n    const matDialogRef: MatDialogRef<T, any> = this._dialogService.open(\n      component,\n      config\n    );\n    const dragRefSubject: Subject<DragRef> = new Subject<DragRef>();\n\n    const CDK_OVERLAY_PANE_SELECTOR = '.cdk-overlay-pane';\n    const CDK_OVERLAY_CONTAINER_SELECTOR = '.cdk-overlay-container';\n\n    matDialogRef.afterOpened().subscribe(() => {\n      const dialogElement: HTMLElement = <HTMLElement>(\n        this._document.getElementById(matDialogRef.id)\n      );\n\n      if (!dialogElement) {\n        return;\n      }\n\n      const draggableElement: DragRef =\n        this._dragDrop.createDrag(dialogElement);\n\n      if (draggableClass) {\n        const childComponent = dialogElement.firstElementChild;\n        this._renderer2.addClass(childComponent, draggableClass);\n      }\n      if (dragHandleSelectors && dragHandleSelectors.length) {\n        const dragHandles: Element[] = dragHandleSelectors.reduce(\n          (acc: Element[], curr: string) => [\n            ...acc,\n            ...Array.from(dialogElement.querySelectorAll(curr)),\n          ],\n          []\n        );\n        if (dragHandles.length > 0) {\n          draggableElement.withHandles(<HTMLElement[]>dragHandles);\n        }\n      }\n      const rootElement = dialogElement.closest(CDK_OVERLAY_PANE_SELECTOR);\n      if (rootElement) {\n        draggableElement.withRootElement(<HTMLElement>rootElement);\n      }\n\n      const boundaryElement = dialogElement.closest(\n        CDK_OVERLAY_CONTAINER_SELECTOR\n      );\n      if (boundaryElement) {\n        draggableElement.withBoundaryElement(<HTMLElement>boundaryElement);\n      }\n      dragRefSubject.next(draggableElement);\n    });\n\n    return { matDialogRef, dragRefSubject };\n  }\n\n  private _createConfig(config: IDialogConfig): MatDialogConfig {\n    const dialogConfig: MatDialogConfig = new MatDialogConfig();\n    dialogConfig.width = '400px';\n    Object.assign(dialogConfig, config);\n    return dialogConfig;\n  }\n\n  /**\n   * params:\n   * - config: IStatusConfig {\n   *     closeButton?: string;\n   *     details?: string;\n   *     detailsLabels?: TdStatusDialogDetailsLabels;\n   *     message: string;\n   *     state?: 'error' | 'positive' | 'warning'\n   *     title?: string;\n   *     viewContainerRef?: ViewContainerRef;\n   * }\n   *\n   * Opens a status dialog with the provided config.\n   * Returns an MatDialogRef<TdStatusDialogComponent> object.\n   */\n  public openStatus(\n    config: IStatusConfig\n  ): MatDialogRef<TdStatusDialogComponent> {\n    config.panelClass = 'td-status-dialog';\n    config.autoFocus = false;\n    config.width = '575px';\n    config.maxWidth = '96vw';\n    const dialogConfig: MatDialogConfig = this._createConfig(config);\n    const dialogRef: MatDialogRef<TdStatusDialogComponent> =\n      this._dialogService.open(TdStatusDialogComponent, dialogConfig);\n    const statusDialogComponent: TdStatusDialogComponent =\n      dialogRef.componentInstance;\n    statusDialogComponent.title = config.title;\n    statusDialogComponent.message = config.message;\n    statusDialogComponent.state = config.state;\n    statusDialogComponent.details = config.details;\n    if (config.detailsLabels) {\n      statusDialogComponent.detailsLabels = config.detailsLabels;\n    }\n    if (config.closeButton) {\n      statusDialogComponent.closeButton = config.closeButton;\n    }\n    return dialogRef;\n  }\n}\n","import {\n  Component,\n  Input,\n  Output,\n  EventEmitter,\n  ChangeDetectionStrategy,\n} from '@angular/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatToolbar, MatToolbarRow } from '@angular/material/toolbar';\nimport { MatTooltip } from '@angular/material/tooltip';\n\n@Component({\n  selector: 'td-window-dialog',\n  templateUrl: './window-dialog.component.html',\n  styleUrls: ['./window-dialog.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  imports: [MatIcon, MatIconButton, MatToolbar, MatToolbarRow, MatTooltip],\n})\nexport class TdWindowDialogComponent {\n  @Input() toolbarColor?: ThemePalette;\n  @Input() docked? = false;\n\n  @Input() title?: string;\n  @Input() toggleDockedStateLabel?: string;\n  @Input() closeLabel?: string;\n\n  @Output() dockToggled: EventEmitter<boolean> = new EventEmitter();\n  @Output() closed: EventEmitter<void> = new EventEmitter();\n\n  toolbarHeight = 56;\n\n  toggleDockedState(): void {\n    this.dockToggled.emit(this.docked);\n  }\n}\n","<mat-toolbar\n  [color]=\"toolbarColor\"\n  class=\"td-window-dialog-toolbar\"\n  [style.min-height.px]=\"toolbarHeight\"\n  [style.cursor]=\"docked ? 'inherit' : 'move'\"\n>\n  <mat-toolbar-row [style.height.px]=\"toolbarHeight\">\n    <div layout=\"row\" layout-align=\"start center\" flex>\n      <span class=\"mat-title td-window-dialog-title truncate\" flex>\n        {{ title }}\n      </span>\n\n      <button\n        mat-icon-button\n        [matTooltip]=\"toggleDockedStateLabel ?? ''\"\n        (click)=\"toggleDockedState()\"\n      >\n        <mat-icon [attr.aria-label]=\"toggleDockedStateLabel\"\n          >dock_to_right</mat-icon\n        >\n      </button>\n\n      <button\n        mat-icon-button\n        [matTooltip]=\"closeLabel ?? ''\"\n        (click)=\"closed.emit()\"\n        class=\"td-window-dialog-close\"\n        [attr.data-test]=\"'close-button'\"\n      >\n        <mat-icon [attr.aria-label]=\"closeLabel\">close</mat-icon>\n      </button>\n    </div>\n  </mat-toolbar-row>\n</mat-toolbar>\n<ng-content></ng-content>\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport {\n  TdDialogComponent,\n  TdDialogTitleDirective,\n  TdDialogActionsDirective,\n  TdDialogContentDirective,\n  TdDialogStatusDirective,\n} from './dialog.component';\nimport { TdAlertDialogComponent } from './alert-dialog/alert-dialog.component';\nimport { TdConfirmDialogComponent } from './confirm-dialog/confirm-dialog.component';\nimport { TdPromptDialogComponent } from './prompt-dialog/prompt-dialog.component';\nimport { TdStatusDialogComponent } from './status-dialog/status-dialog.component';\nimport { TdDialogService } from './services/dialog.service';\nimport { TdWindowDialogComponent } from './window-dialog/window-dialog.component';\n\nconst TD_DIALOGS: Type<any>[] = [\n  TdAlertDialogComponent,\n  TdConfirmDialogComponent,\n  TdPromptDialogComponent,\n  TdDialogComponent,\n  TdDialogStatusDirective,\n  TdDialogTitleDirective,\n  TdDialogActionsDirective,\n  TdDialogContentDirective,\n  TdWindowDialogComponent,\n  TdAlertDialogComponent,\n  TdConfirmDialogComponent,\n  TdPromptDialogComponent,\n  TdStatusDialogComponent,\n];\n\n/**\n * @deprecated This module is deprecated and will be removed in future versions.\n * Please migrate to using standalone components as soon as possible.\n */\n@NgModule({\n  imports: [...TD_DIALOGS],\n  exports: [...TD_DIALOGS],\n  providers: [TdDialogService],\n})\nexport class CovalentDialogsModule {}\n","import { Renderer2 } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { DragRef } from '@angular/cdk/drag-drop';\nimport { merge, Subscription, fromEvent } from 'rxjs';\nimport { Point } from '@angular/cdk/drag-drop';\n\nenum corners {\n  topRight = 'topRight',\n  bottomRight = 'bottomRight',\n  bottomLeft = 'bottomLeft',\n  topLeft = 'topLeft',\n}\nenum cursors {\n  nesw = 'nesw-resize',\n  nwse = 'nwse-resize',\n}\nenum verticalAlignment {\n  top = 'top',\n  bottom = 'bottom',\n}\nenum horizontalAlignment {\n  right = 'right',\n  left = 'left',\n}\n\nconst cornerWidth = '16px';\nconst offset = '0px';\nconst minWidth = 200;\nconst minHeight = 200;\n\nfunction getPixels(sizeString: string): number {\n  return parseFloat((sizeString || '').replace('px', ''));\n}\n\nfunction clamp(min: number, num: number, max: number): number {\n  return Math.min(Math.max(num, min), max);\n}\n\nexport class ResizableDraggableDialog {\n  cornerElements: HTMLElement[] = [];\n  pointerDownSubs: Subscription[] = [];\n\n  constructor(\n    private _document: any,\n    private _renderer2: Renderer2,\n    private _dialogRef: MatDialogRef<any>,\n    private _dragRef: DragRef\n  ) {\n    this._initialPositionReset();\n    this._attachCorners();\n  }\n\n  public attach(): void {\n    this.detach();\n    this._attachCorners();\n  }\n\n  public detach(): void {\n    this.pointerDownSubs.forEach((sub: Subscription) => sub.unsubscribe());\n    this.pointerDownSubs = [];\n    this.cornerElements.forEach((elem: HTMLElement) =>\n      this._renderer2.removeChild(this._getDialogWrapper(), elem)\n    );\n    this.cornerElements = [];\n  }\n\n  private _getDialogWrapper(): HTMLElement | null {\n    return (\n      <HTMLElement>this._document.getElementById(this._dialogRef.id) || {}\n    ).parentElement;\n  }\n\n  private _getViewportDimensions(): ClientRect | undefined {\n    return this._getDialogWrapper()?.parentElement?.getBoundingClientRect();\n  }\n\n  private _getDialogWrapperDimensions(): { width: number; height: number } {\n    const wrapper = this._getDialogWrapper();\n    if (!wrapper) {\n      return { width: 0, height: 0 };\n    }\n    const dimensions: CSSStyleDeclaration = getComputedStyle(wrapper);\n    return {\n      width: getPixels(dimensions.width),\n      height: getPixels(dimensions.height),\n    };\n  }\n\n  private _initialPositionReset(): void {\n    const viewportWidth = this._getViewportDimensions()?.right ?? 0;\n    const viewportHeight = this._getViewportDimensions()?.bottom ?? 0;\n    const { width, height } = this._getDialogWrapperDimensions();\n    const wrapperStyle = this._getDialogWrapper()?.style;\n    const originalDialogRight = wrapperStyle?.marginRight;\n    const originalDialogLeft = wrapperStyle?.marginLeft;\n    const originalDialogBottom = wrapperStyle?.marginBottom;\n    const originalDialogTop = wrapperStyle?.marginTop;\n    let x: number;\n    if (originalDialogLeft) {\n      x = getPixels(originalDialogLeft);\n    } else if (originalDialogRight) {\n      x = viewportWidth - getPixels(originalDialogRight) - width;\n    } else {\n      x = (viewportWidth - width) / 2;\n    }\n    let y: number;\n    if (originalDialogTop) {\n      y = getPixels(originalDialogTop);\n    } else if (originalDialogBottom) {\n      y = viewportHeight - getPixels(originalDialogBottom) - height;\n    } else {\n      y = (viewportHeight - height) / 2;\n    }\n    // use drag ref's mechanisms for positioning instead of the dialog's\n    this._dialogRef.updatePosition({\n      top: '0px',\n      right: '0px',\n      bottom: '0px',\n      left: '0px',\n    });\n    this._dragRef.setFreeDragPosition({ x, y });\n  }\n\n  private _attachCorners(): void {\n    Object.values(corners).forEach((corner: corners) => {\n      const element: HTMLElement = this._renderer2.createElement('div');\n      this.cornerElements = [...this.cornerElements, element];\n      this._renderer2.setStyle(element, 'position', 'absolute');\n      this._renderer2.setStyle(element, 'width', cornerWidth);\n      this._renderer2.setStyle(element, 'height', cornerWidth);\n      this._renderer2.setStyle(element, 'z-index', 1);\n      this._renderer2.appendChild(this._getDialogWrapper(), element);\n\n      let cursor: cursors;\n      let topBottom: verticalAlignment;\n      let rightLeft: horizontalAlignment;\n\n      if (corner === corners.topRight) {\n        cursor = cursors.nesw;\n        topBottom = verticalAlignment.top;\n        rightLeft = horizontalAlignment.right;\n      } else if (corner === corners.bottomRight) {\n        cursor = cursors.nwse;\n        topBottom = verticalAlignment.bottom;\n        rightLeft = horizontalAlignment.right;\n\n        const icon: HTMLElement = this._renderer2.createElement('i');\n        this._renderer2.addClass(icon, 'material-symbols-outlined');\n        this._renderer2.appendChild(\n          icon,\n          this._renderer2.createText('filter_list')\n        );\n        this._renderer2.appendChild(element, icon);\n        this._renderer2.setStyle(\n          icon,\n          'transform',\n          `rotate(${315}deg) translate(0px, ${offset})`\n        );\n        this._renderer2.setStyle(icon, 'font-size', cornerWidth);\n        this._renderer2.setStyle(icon, 'z-index', 1);\n      } else if (corner === corners.bottomLeft) {\n        cursor = cursors.nesw;\n        topBottom = verticalAlignment.bottom;\n        rightLeft = horizontalAlignment.left;\n      } else {\n        cursor = cursors.nwse;\n        topBottom = verticalAlignment.top;\n        rightLeft = horizontalAlignment.left;\n      }\n      this._renderer2.setStyle(element, topBottom, offset);\n      this._renderer2.setStyle(element, rightLeft, offset);\n      this._renderer2.setStyle(element, 'cursor', cursor);\n\n      const pointerDownSub: Subscription = fromEvent<PointerEvent>(\n        element,\n        'pointerdown'\n      ).subscribe((event: PointerEvent) => {\n        this._handleMouseDown(event, corner);\n      });\n      this.pointerDownSubs = [...this.pointerDownSubs, pointerDownSub];\n    });\n  }\n\n  private _handleMouseDown(event: PointerEvent, corner: corners): void {\n    this._renderer2.setStyle(\n      <HTMLElement>this._document.body,\n      'user-select',\n      'none'\n    );\n    const { width: originalWidth, height: originalHeight } =\n      this._getDialogWrapperDimensions();\n    const originalMouseX: number = event.pageX;\n    const originalMouseY: number = event.pageY;\n    const { x: currentTransformX, y: currentTransformY }: Point =\n      this._dragRef.getFreeDragPosition();\n    const wrapper = this._getDialogWrapper()?.getBoundingClientRect();\n    const distanceFromBottom = wrapper?.bottom ?? 0;\n    const distanceFromRight = wrapper?.right ?? 0;\n    const viewportWidth = this._getViewportDimensions()?.right ?? 0;\n    const viewportHeight = this._getViewportDimensions()?.bottom ?? 0;\n\n    const mouseMoveSub: Subscription = fromEvent<PointerEvent>(\n      window,\n      'pointermove'\n    ).subscribe((e: PointerEvent) => {\n      e.preventDefault(); // prevent highlighting of text when dragging\n\n      const yDelta: number = clamp(0, e.pageY, viewportHeight) - originalMouseY;\n      const xDelta: number = clamp(0, e.pageX, viewportWidth) - originalMouseX;\n      let newHeight: number;\n      let newWidth: number;\n      let newTransformY = 0;\n      let newTransformX = 0;\n\n      // top right\n      if (corner === corners.topRight) {\n        newHeight = clamp(minHeight, originalHeight - yDelta, viewportHeight);\n        newWidth = clamp(minWidth, originalWidth + xDelta, viewportWidth);\n        newTransformY = clamp(\n          0,\n          currentTransformY + yDelta,\n          distanceFromBottom - newHeight\n        );\n        newTransformX = currentTransformX;\n      }\n      // bottom right\n      else if (corner === corners.bottomRight) {\n        newHeight = clamp(minHeight, originalHeight + yDelta, viewportHeight);\n        newWidth = clamp(minWidth, originalWidth + xDelta, viewportWidth);\n        newTransformY = currentTransformY;\n        newTransformX = currentTransformX;\n      }\n      // bottom left\n      else if (corner === corners.bottomLeft) {\n        newHeight = clamp(minHeight, originalHeight + yDelta, viewportHeight);\n        newWidth = clamp(minWidth, originalWidth - xDelta, viewportWidth);\n        newTransformY = currentTransformY;\n        newTransformX = clamp(\n          0,\n          currentTransformX + xDelta,\n          distanceFromRight - newWidth\n        );\n      }\n      // top left\n      else {\n        newHeight = clamp(minHeight, originalHeight - yDelta, viewportHeight);\n        newWidth = clamp(minWidth, originalWidth - xDelta, viewportWidth);\n\n        newTransformX = clamp(\n          0,\n          currentTransformX + xDelta,\n          distanceFromRight - newWidth\n        );\n        newTransformY = clamp(\n          0,\n          currentTransformY + yDelta,\n          distanceFromBottom - newHeight\n        );\n      }\n      this._dialogRef.updateSize(`${newWidth}px`, `${newHeight}px`);\n      this._dragRef.setFreeDragPosition({\n        x: newTransformX,\n        y: newTransformY,\n      });\n    });\n\n    const mouseUpSub: Subscription = merge(\n      fromEvent(window, 'pointerup'),\n      fromEvent(window, 'pointercancel')\n    ).subscribe(() => {\n      this._renderer2.removeStyle(\n        <HTMLElement>this._document.body,\n        'user-select'\n      );\n      mouseMoveSub.unsubscribe();\n      mouseUpSub.unsubscribe();\n    });\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2","i3","_c0"],"mappings":"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"}