{"version":3,"file":"covalent-core-side-sheet.mjs","sources":["../../../../libs/angular/side-sheet/src/side-sheet.animation.ts","../../../../libs/angular/side-sheet/src/side-sheet.config.ts","../../../../libs/angular/side-sheet/src/side-sheet-container.ts","../../../../libs/angular/side-sheet/src/side-sheet-ref.ts","../../../../libs/angular/side-sheet/src/side-sheet.ts","../../../../libs/angular/side-sheet/src/side-sheet.content-directives.ts","../../../../libs/angular/side-sheet/src/side-sheet.module.ts","../../../../libs/angular/side-sheet/src/covalent-core-side-sheet.ts"],"sourcesContent":["import {\n  animate,\n  state,\n  style,\n  transition,\n  trigger,\n  AnimationTriggerMetadata,\n} from '@angular/animations';\nimport { AnimationCurves, AnimationDurations } from '@angular/material/core';\n\nexport const tdSideSheetAnimations: {\n  readonly sideSheetContainer: AnimationTriggerMetadata;\n} = {\n  /** Animation that is applied on the side-sheet container by default. */\n  sideSheetContainer: trigger('sideSheetContainer', [\n    state('void, exit', style({ transform: 'translateX(100%)' })),\n    state('enter', style({ transform: 'translateX(0%)', opacity: 1 })),\n    transition(\n      '* => enter',\n      animate(\n        `${AnimationDurations.ENTERING} ${AnimationCurves.ACCELERATION_CURVE}`,\n        style({ transform: 'translateX(0)', opacity: 1 })\n      )\n    ),\n    transition(\n      '* => void, * => exit',\n      animate(\n        `${AnimationDurations.EXITING} ${AnimationCurves.ACCELERATION_CURVE}`,\n        style({ transform: 'translateX(100%)' })\n      )\n    ),\n  ]),\n};\n","import { MatDialogConfig } from '@angular/material/dialog';\n\nexport enum SubPageMode {\n  pushed = 'pushed',\n  shifted = 'shifted',\n  none = 'none',\n}\n\nexport class CovalentSideSheetConfig<D = any> extends MatDialogConfig<D> {\n  subPageMode?: string = SubPageMode.pushed;\n}\n","/* tslint:disable */\nimport { AnimationEvent } from '@angular/animations';\nimport {\n  ConfigurableFocusTrap,\n  ConfigurableFocusTrapFactory,\n  FocusMonitor,\n  FocusOrigin,\n} from '@angular/cdk/a11y';\nimport {\n  BasePortalOutlet,\n  CdkPortalOutlet,\n  ComponentPortal,\n  DomPortal,\n  TemplatePortal,\n} from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ComponentRef,\n  Directive,\n  ElementRef,\n  EmbeddedViewRef,\n  EventEmitter,\n  HostBinding,\n  HostListener,\n  Inject,\n  Optional,\n  ViewChild,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { tdSideSheetAnimations } from './side-sheet.animation';\nimport { CovalentSideSheetConfig } from './side-sheet.config';\n\nexport function _getFocusedElementPierceShadowDom(): HTMLElement | null {\n  let activeElement =\n    typeof document !== 'undefined' && document\n      ? (document.activeElement as HTMLElement | null)\n      : null;\n\n  while (activeElement && activeElement.shadowRoot) {\n    const newActiveElement = activeElement.shadowRoot\n      .activeElement as HTMLElement | null;\n    if (newActiveElement === activeElement) {\n      break;\n    } else {\n      activeElement = newActiveElement;\n    }\n  }\n\n  return activeElement;\n}\n\n/**\n * Base class for the `CovalentSideSheetContainer`. The base class does not implement\n * animations as these are left to implementers of the side-sheet container.\n */\n@Directive()\nexport abstract class _CovalentSideSheetContainerBase extends BasePortalOutlet {\n  protected _document: Document;\n\n  /** The portal outlet inside of this container into which the side-sheet content will be loaded. */\n  @ViewChild(CdkPortalOutlet, { static: true }) _portalOutlet!: CdkPortalOutlet;\n\n  /** The class that traps and manages focus within the side-sheet. */\n  private _focusTrap!: ConfigurableFocusTrap;\n\n  /** Emits when an animation state changes. */\n  _animationStateChanged = new EventEmitter<{\n    state: 'opened' | 'opening' | 'closing' | 'closed';\n    totalTime: number;\n  }>();\n\n  /** Element that was focused before the side-sheet was opened. Save this to restore upon close. */\n  private _elementFocusedBeforeSideSheetWasOpened: HTMLElement | null = null;\n\n  /**\n   * Type of interaction that led to the side-sheet being closed. This is used to determine\n   * whether the focus style will be applied when returning focus to its original location\n   * after the side-sheet is closed.\n   */\n  _closeInteractionType: FocusOrigin | null = null;\n\n  /** ID of the element that should be considered as the side-sheet's label. */\n  _ariaLabelledBy: string | null;\n\n  /** ID for the container DOM element. */\n  _id!: string;\n\n  constructor(\n    protected _elementRef: ElementRef,\n    protected _focusTrapFactory: ConfigurableFocusTrapFactory,\n    protected _changeDetectorRef: ChangeDetectorRef,\n    @Optional() @Inject(DOCUMENT) _document: any,\n    /** The side-sheet configuration. */\n    public _config: CovalentSideSheetConfig,\n    private _focusMonitor?: FocusMonitor\n  ) {\n    super();\n    this._ariaLabelledBy = _config.ariaLabelledBy || null;\n    this._document = _document;\n  }\n\n  /** Starts the side-sheet exit animation. */\n  abstract _startExitAnimation(): void;\n\n  /** Initializes the side-sheet container with the attached content. */\n  _initializeWithAttachedContent() {\n    this._setupFocusTrap();\n    // Save the previously focused element. This element will be re-focused\n    // when the side-sheet closes.\n    this._capturePreviouslyFocusedElement();\n  }\n\n  /**\n   * Attach a ComponentPortal as content to this side-sheet container.\n   * @param portal Portal to be attached as the side-sheet content.\n   */\n  attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n    return this._portalOutlet.attachComponentPortal(portal);\n  }\n\n  /**\n   * Attach a TemplatePortal as content to this side-sheet container.\n   * @param portal Portal to be attached as the side-sheet content.\n   */\n  attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n    return this._portalOutlet.attachTemplatePortal(portal);\n  }\n\n  /**\n   * Attaches a DOM portal to the side-sheet container.\n   * @param portal Portal to be attached.\n   * @deprecated To be turned into a method.\n   */\n  override attachDomPortal = (portal: DomPortal) => {\n    return this._portalOutlet.attachDomPortal(portal);\n  };\n\n  /** Moves focus back into the side-sheet if it was moved out. */\n  _recaptureFocus() {\n    if (!this._containsFocus()) {\n      this._trapFocus();\n    }\n  }\n\n  /**\n   * Moves the focus inside the focus trap. When autoFocus is not set to 'side-sheet', if focus\n   * cannot be moved then focus will go to the side-sheet container.\n   */\n  protected _trapFocus() {\n    const element = this._elementRef.nativeElement;\n    if (!this._config.autoFocus) {\n      if (!this._containsFocus()) {\n        element.focus();\n      }\n    } else {\n      this._focusTrap\n        .focusInitialElementWhenReady()\n        .then((focusedSuccessfully) => {\n          // If we weren't able to find a focusable element in the side-sheet, then focus the side-sheet\n          // container instead.\n          if (!focusedSuccessfully) {\n            this._focusSideSheetContainer();\n          }\n        });\n    }\n  }\n\n  /** Restores focus to the element that was focused before the side-sheet opened. */\n  protected _restoreFocus() {\n    const previousElement = this._elementFocusedBeforeSideSheetWasOpened;\n\n    // We need the extra check, because IE can set the `activeElement` to null in some cases.\n    if (\n      this._config.restoreFocus &&\n      previousElement &&\n      typeof previousElement.focus === 'function'\n    ) {\n      const activeElement = _getFocusedElementPierceShadowDom();\n      const element = this._elementRef.nativeElement;\n\n      // Make sure that focus is still inside the side-sheet or is on the body (usually because a\n      // non-focusable element like the backdrop was clicked) before moving it. It's possible that\n      // the consumer moved it themselves before the animation was done, in which case we shouldn't\n      // do anything.\n      if (\n        !activeElement ||\n        activeElement === this._document.body ||\n        activeElement === element ||\n        element.contains(activeElement)\n      ) {\n        if (this._focusMonitor) {\n          this._focusMonitor.focusVia(\n            previousElement,\n            this._closeInteractionType\n          );\n          this._closeInteractionType = null;\n        } else {\n          previousElement.focus();\n        }\n      }\n    }\n\n    if (this._focusTrap) {\n      this._focusTrap.destroy();\n    }\n  }\n\n  /** Sets up the focus trap. */\n  private _setupFocusTrap() {\n    this._focusTrap = this._focusTrapFactory.create(\n      this._elementRef.nativeElement\n    );\n  }\n\n  /** Captures the element that was focused before the side-sheet was opened. */\n  private _capturePreviouslyFocusedElement() {\n    if (this._document) {\n      this._elementFocusedBeforeSideSheetWasOpened =\n        _getFocusedElementPierceShadowDom();\n    }\n  }\n\n  /** Focuses the side-sheet container. */\n  private _focusSideSheetContainer() {\n    // Note that there is no focus method when rendering on the server.\n    if (this._elementRef.nativeElement.focus) {\n      this._elementRef.nativeElement.focus();\n    }\n  }\n\n  /** Returns whether focus is inside the side-sheet. */\n  private _containsFocus() {\n    const element = this._elementRef.nativeElement;\n    const activeElement = _getFocusedElementPierceShadowDom();\n    return element === activeElement || element.contains(activeElement);\n  }\n}\n\n/**\n * Internal component that wraps the generated side-sheet content.\n * This animation below is the only reason for duplicating most of the Material dialog code\n */\n@Component({\n  selector: 'td-side-sheet-container',\n  template: ` <ng-template cdkPortalOutlet></ng-template> `,\n  styleUrls: ['side-sheet.scss'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.Default,\n  animations: [tdSideSheetAnimations.sideSheetContainer],\n  imports: [CdkPortalOutlet],\n})\nexport class CovalentSideSheetContainerComponent extends _CovalentSideSheetContainerBase {\n  /** State of the side-sheet animation. */\n  _state: 'void' | 'enter' | 'exit' = 'enter';\n\n  @HostBinding('class.td-side-sheet-container') tdSideSheetContainerClass =\n    true;\n  @HostBinding('tabindex') tabIndex = -1;\n  @HostBinding('aria-modal') arialModal = true;\n  @HostBinding('id') idAttr = this._id;\n  @HostBinding('attr.role') roleAttr = this._config.role;\n  @HostBinding('attr.aria-labelledby') arialLabelByAttr = this._config.ariaLabel\n    ? null\n    : this._ariaLabelledBy;\n  @HostBinding('attr.aria-describedby') arialDescribeByAttr =\n    this._config.ariaDescribedBy || null;\n  @HostBinding('attr.aria-label') arialLabelAttr = this._config.ariaLabel;\n  @HostBinding('@sideSheetContainer') get sideSheetAnimationState() {\n    return this._state;\n  }\n  @HostListener('@sideSheetContainer.start', ['$event']) onAnimateStart(\n    $event: AnimationEvent\n  ) {\n    this._onAnimationStart($event);\n  }\n\n  @HostListener('@sideSheetContainer.done', ['$event']) onAnimateDone(\n    $event: AnimationEvent\n  ) {\n    this._onAnimationDone($event);\n  }\n\n  /** Callback, invoked whenever an animation on the host completes. */\n  _onAnimationDone({ toState, totalTime }: AnimationEvent) {\n    if (toState === 'enter') {\n      this._trapFocus();\n      this._animationStateChanged.next({ state: 'opened', totalTime });\n    } else if (toState === 'exit') {\n      this._restoreFocus();\n      this._animationStateChanged.next({ state: 'closed', totalTime });\n    }\n  }\n\n  /** Callback, invoked when an animation on the host starts. */\n  _onAnimationStart({ toState, totalTime }: AnimationEvent) {\n    if (toState === 'enter') {\n      this._animationStateChanged.next({ state: 'opening', totalTime });\n    } else if (toState === 'exit' || toState === 'void') {\n      this._animationStateChanged.next({ state: 'closing', totalTime });\n    }\n  }\n\n  /** Starts the side-sheet exit animation. */\n  _startExitAnimation(): void {\n    this._state = 'exit';\n    this._changeDetectorRef.markForCheck();\n  }\n}\n","/* tslint:disable */\nimport { FocusOrigin } from '@angular/cdk/a11y';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { BasePortalOutlet } from '@angular/cdk/portal';\nimport { MatDialogRef, MatDialogContainer } from '@angular/material/dialog';\nimport { CovalentSideSheetConfig } from './side-sheet.config';\n\n// Counter for unique dialog ids.\nlet uniqueId = 0;\n\n// Create a new side sheet ref to change the id of the ref\nexport class CovalentSideSheetRef<T, R = any> extends MatDialogRef<T, R> {\n  constructor(\n    public overlayRef: OverlayRef,\n    public config: CovalentSideSheetConfig,\n    public override _containerInstance: MatDialogContainer,\n    override readonly id = `td-side-sheet-${uniqueId++}`\n  ) {\n    const ref = new DialogRef<R, T>(overlayRef, config);\n    super(ref, config, _containerInstance);\n    (ref as { containerInstance: BasePortalOutlet }).containerInstance =\n      this._containerInstance;\n  }\n}\n\nexport function _closeSideSheetVia<R>(\n  ref: CovalentSideSheetRef<R>,\n  interactionType: FocusOrigin,\n  result?: R\n) {\n  // Some mock dialog ref instances in tests do not have the `_containerInstance` property.\n  // For those, we keep the behavior as is and do not deal with the interaction type.\n  if (ref._containerInstance !== undefined) {\n    ref._containerInstance._closeInteractionType = interactionType;\n  }\n  return ref.close(result);\n}\n","/* tslint:disable */\nimport {\n  Directive,\n  Inject,\n  Injectable,\n  InjectFlags,\n  InjectionToken,\n  Injector,\n  OnDestroy,\n  Optional,\n  SkipSelf,\n  StaticProvider,\n  TemplateRef,\n  Type,\n} from '@angular/core';\nimport {\n  Overlay,\n  OverlayConfig,\n  OverlayRef,\n  GlobalPositionStrategy,\n} from '@angular/cdk/overlay';\nimport {\n  ComponentPortal,\n  ComponentType,\n  TemplatePortal,\n} from '@angular/cdk/portal';\nimport {\n  MAT_DIALOG_DATA,\n  MAT_DIALOG_DEFAULT_OPTIONS,\n} from '@angular/material/dialog';\nimport { AnimationCurves, AnimationDurations } from '@angular/material/core';\nimport {\n  CovalentSideSheetContainerComponent,\n  _CovalentSideSheetContainerBase,\n} from './side-sheet-container';\nimport { Subject, Subscription, of } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { Directionality } from '@angular/cdk/bidi';\n\nimport { CovalentSideSheetRef } from './side-sheet-ref';\nimport { SubPageMode, CovalentSideSheetConfig } from './side-sheet.config';\n\n@Directive()\nexport class _CovalentSideSheetBase<C extends _CovalentSideSheetContainerBase>\n  implements OnDestroy\n{\n  private _openSideSheetsAtThisLevel: CovalentSideSheetRef<unknown>[] = [];\n  private readonly _afterAllClosedAtThisLevel = new Subject<void>();\n  private readonly _afterOpenedAtThisLevel = new Subject<\n    CovalentSideSheetRef<unknown>\n  >();\n  private _animationStateSubscriptions!: Subscription;\n\n  private defaultSidebarConfig = {\n    minWidth: '400px',\n    maxWidth: '100vw',\n  };\n\n  constructor(\n    private _overlay: Overlay,\n    private _injector: Injector,\n    private _defaultOptions: CovalentSideSheetConfig | undefined,\n    private _parentSideSheet: _CovalentSideSheetBase<C> | undefined,\n    private _sideSheetRefConstructor: Type<CovalentSideSheetRef<any>>,\n    private _sideSheetContainerType: Type<C>,\n    private _sideSheetDataToken: InjectionToken<unknown>\n  ) {}\n\n  /** Keeps track of the currently-open side-sheets. */\n  get openSideSheets(): CovalentSideSheetRef<unknown>[] {\n    return this._parentSideSheet\n      ? this._parentSideSheet.openSideSheets\n      : this._openSideSheetsAtThisLevel;\n  }\n\n  open<T, D = unknown, R = unknown>(\n    componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n    config?: CovalentSideSheetConfig<D>\n  ): CovalentSideSheetRef<T, R> {\n    config = {\n      ...(this._defaultOptions || new CovalentSideSheetConfig()),\n      ...this.defaultSidebarConfig,\n      ...config,\n    };\n\n    const overlayRef = this._createOverlay(config);\n    const sideSheetContainer = this._attachSideSheetContainer(\n      overlayRef,\n      config\n    );\n    const sideSheetRef = this._attachSideSheetContent<T, R>(\n      componentOrTemplateRef,\n      sideSheetContainer,\n      overlayRef,\n      config\n    );\n    const prevSideSheetRef: CovalentSideSheetRef<unknown> =\n      this.openSideSheets.slice(-1)[0];\n    const prevOverlayRef = prevSideSheetRef?.overlayRef;\n\n    if (\n      prevOverlayRef?.overlayElement &&\n      config.subPageMode !== SubPageMode.none\n    ) {\n      prevOverlayRef.overlayElement.style.transition = `${AnimationDurations.COMPLEX} ${AnimationCurves.DECELERATION_CURVE}`;\n      if (config.subPageMode === SubPageMode.pushed) {\n        // Animate previous side sheet to full width\n        prevOverlayRef.overlayElement.style.minWidth = `${\n          (window as any).innerWidth\n        }px`;\n      } else if (config.subPageMode === SubPageMode.shifted) {\n        // Animate previous side sheet to current sidesheet width + 200px\n        prevOverlayRef.overlayElement.style.minWidth = `${\n          sideSheetRef.overlayRef.overlayElement.offsetWidth + 200\n        }px`;\n      }\n    }\n\n    // Revert the previous side sheet config & size\n    sideSheetRef._containerInstance._animationStateChanged\n      .pipe(\n        filter(\n          (event) =>\n            event.state === 'closing' && !!(prevSideSheetRef && prevOverlayRef)\n        ),\n        take(1)\n      )\n      .subscribe(() => {\n        prevOverlayRef.overlayElement.style.transition = `${AnimationDurations.EXITING} ${AnimationCurves.DECELERATION_CURVE}`;\n        prevSideSheetRef.updateSize();\n      });\n\n    // Add new side sheet to open list\n    this.openSideSheets.push(sideSheetRef);\n\n    // Remove side sheet ref after closed\n    sideSheetRef\n      .afterClosed()\n      .pipe(take(1))\n      .subscribe(() => this._removeOpenSideSheet(sideSheetRef));\n\n    // Notify the side-sheet container that the content has been attached.\n    sideSheetContainer._initializeWithAttachedContent();\n\n    return sideSheetRef;\n  }\n\n  ngOnDestroy() {\n    // Only close the side-sheets at this level on destroy\n    // since the parent service may still be active.\n    this._closeSideSheets(this._openSideSheetsAtThisLevel);\n    this._afterAllClosedAtThisLevel.complete();\n    this._afterOpenedAtThisLevel.complete();\n    // Clean up any subscriptions to side-sheet that never finished opening.\n    if (this._animationStateSubscriptions) {\n      this._animationStateSubscriptions.unsubscribe();\n    }\n  }\n\n  /**\n   * Closes all of the currently-open side-sheets.\n   */\n  closeAll(): void {\n    this._closeSideSheets(this.openSideSheets);\n  }\n\n  private _createOverlay<T>(config: CovalentSideSheetConfig): OverlayRef {\n    const overlayConfig = new OverlayConfig({\n      positionStrategy: this._overlay.position().global(),\n      scrollStrategy: this._overlay.scrollStrategies.block(),\n      panelClass: config.panelClass,\n      hasBackdrop: config.hasBackdrop,\n      direction: config.direction,\n      minWidth: config.minWidth,\n      minHeight: config.minHeight,\n      maxWidth: config.maxWidth,\n    });\n    const overlayRef = this._overlay.create(overlayConfig);\n    const positionStrategy = overlayRef.getConfig()\n      .positionStrategy as GlobalPositionStrategy;\n    positionStrategy.right('0px');\n\n    return overlayRef;\n  }\n\n  /**\n   * Attaches a container to a side-sheets's already-created overlay.\n   * @param overlay Reference to the side-sheet's underlying overlay.\n   * @param config The side-sheet configuration.\n   * @returns A promise resolving to a ComponentRef for the attached container.\n   */\n  private _attachSideSheetContainer(\n    overlay: OverlayRef,\n    config: CovalentSideSheetConfig\n  ): C {\n    const userInjector =\n      config && config.viewContainerRef && config.viewContainerRef.injector;\n    const injector = Injector.create({\n      parent: userInjector || this._injector,\n      providers: [{ provide: CovalentSideSheetConfig, useValue: config }],\n    });\n\n    const containerPortal = new ComponentPortal(\n      this._sideSheetContainerType,\n      config.viewContainerRef,\n      injector,\n      config.componentFactoryResolver\n    );\n    const containerRef = overlay.attach<C>(containerPortal);\n\n    return containerRef.instance;\n  }\n\n  /**\n   * Attaches the user-provided component to the already-created side sheet container.\n   * @param componentOrTemplateRef The type of component being loaded into the side-sheet,\n   *     or a TemplateRef to instantiate as the content.\n   * @param dialogContainer Reference to the wrapping side-sheet container.\n   * @param overlayRef Reference to the overlay in which the side-sheet resides.\n   * @param config The side-sheet configuration.\n   * @returns A promise resolving to the CovalentSideSheetRef that should be returned to the user.\n   */\n  private _attachSideSheetContent<T, R>(\n    componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n    sideSheetContainer: C,\n    overlayRef: OverlayRef,\n    config: CovalentSideSheetConfig\n  ): CovalentSideSheetRef<T, R> {\n    // Create a reference to the side-sheet we're creating in order to give the user a handle\n    // to modify and close it.\n    const sideSheetRef = new this._sideSheetRefConstructor(\n      overlayRef,\n      config,\n      sideSheetContainer,\n      config.id\n    );\n\n    if (componentOrTemplateRef instanceof TemplateRef) {\n      sideSheetContainer.attachTemplatePortal(\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        new TemplatePortal<T>(componentOrTemplateRef, null!, <any>{\n          $implicit: config.data,\n          sideSheetRef,\n        })\n      );\n    } else {\n      const injector = this._createInjector<T>(\n        config,\n        sideSheetRef,\n        sideSheetContainer\n      );\n      const contentRef = sideSheetContainer.attach<T>(\n        new ComponentPortal(\n          componentOrTemplateRef,\n          config.viewContainerRef,\n          injector\n        )\n      );\n      sideSheetRef.componentInstance = contentRef.instance;\n    }\n\n    sideSheetRef.updateSize(config.width, config.height);\n\n    return sideSheetRef;\n  }\n\n  private _createInjector<T>(\n    config: CovalentSideSheetConfig,\n    sideSheetRef: CovalentSideSheetRef<T>,\n    sideSheetContainer: C\n  ): Injector {\n    const userInjector =\n      config && config.viewContainerRef && config.viewContainerRef.injector;\n\n    // The side-sheet container should be provided as the side-sheet container and the side-sheet's\n    // content are created out of the same `ViewContainerRef` and as such, are siblings\n    // for injector purposes. To allow the hierarchy that is expected, the side-sheet\n    // container is explicitly provided in the injector.\n    const providers: StaticProvider[] = [\n      { provide: this._sideSheetContainerType, useValue: sideSheetContainer },\n      { provide: this._sideSheetDataToken, useValue: config.data },\n      { provide: this._sideSheetRefConstructor, useValue: sideSheetRef },\n    ];\n\n    if (\n      config.direction &&\n      (!userInjector ||\n        !userInjector.get<Directionality | null>(\n          Directionality,\n          null,\n          InjectFlags.Optional\n        ))\n    ) {\n      providers.push({\n        provide: Directionality,\n        useValue: { value: config.direction, change: of() },\n      });\n    }\n\n    return Injector.create({\n      parent: userInjector || this._injector,\n      providers,\n    });\n  }\n\n  /**\n   * Removes a side sheet from the array of open side sheets.\n   * @param sideSheetRef Side Sheet to be removed.\n   */\n  private _removeOpenSideSheet(sideSheetRef: CovalentSideSheetRef<unknown>) {\n    const index = this.openSideSheets.indexOf(sideSheetRef);\n\n    if (index > -1) {\n      this.openSideSheets.splice(index, 1);\n    }\n  }\n\n  /** Closes all of the side-sheet in an array. */\n  private _closeSideSheets(sideSheets: CovalentSideSheetRef<any>[]) {\n    let i = sideSheets.length;\n\n    while (i--) {\n      sideSheets[i].close();\n    }\n  }\n}\n\n/**\n * Service to open Covalent Design side-sheet.\n */\n@Injectable()\nexport class CovalentSideSheet extends _CovalentSideSheetBase<CovalentSideSheetContainerComponent> {\n  constructor(\n    overlay: Overlay,\n    injector: Injector,\n    @Optional()\n    @Inject(MAT_DIALOG_DEFAULT_OPTIONS)\n    defaultOptions: CovalentSideSheetConfig,\n    @Optional() @SkipSelf() parentSideSheet: CovalentSideSheet\n  ) {\n    super(\n      overlay,\n      injector,\n      defaultOptions,\n      parentSideSheet,\n      CovalentSideSheetRef,\n      CovalentSideSheetContainerComponent,\n      MAT_DIALOG_DATA\n    );\n  }\n}\n","/* tslint:disable */\nimport {\n  Directive,\n  Input,\n  OnChanges,\n  OnInit,\n  Optional,\n  SimpleChanges,\n  ElementRef,\n  HostBinding,\n  HostListener,\n} from '@angular/core';\nimport { CovalentSideSheet } from './side-sheet';\nimport { _closeSideSheetVia, CovalentSideSheetRef } from './side-sheet-ref';\n\n/** Counter used to generate unique IDs for dialog elements. */\nlet dialogElementUid = 0;\n\n/**\n * Button that will close the current dialog.\n */\n@Directive({\n  selector: '[td-side-sheet-close], [CovalentSideSheetClose]',\n  exportAs: 'CovalentSideSheetClose',\n})\nexport class CovalentSideSheetCloseDirective implements OnInit, OnChanges {\n  /** Screenreader label for the button. */\n  @HostBinding('attr.arial-label')\n  @Input('aria-label')\n  ariaLabel?: string;\n\n  /** Default to \"button\" to prevents accidental form submits. */\n  @HostBinding('attr.type')\n  @Input()\n  type: 'submit' | 'button' | 'reset' = 'button';\n\n  /** Dialog close input. */\n  @Input('td-side-sheet-close') dialogResult: any;\n\n  @Input('CovalentSideSheetClose') _CovalentSideSheetClose: any;\n\n  @HostListener('click', ['$event']) onClick($event: MouseEvent) {\n    this._onButtonClick($event);\n  }\n\n  constructor(\n    @Optional() public dialogRef: CovalentSideSheetRef<any>,\n    private _elementRef: ElementRef<HTMLElement>,\n    private _dialog: CovalentSideSheet\n  ) {}\n\n  ngOnInit(): void {\n    if (!this.dialogRef) {\n      // When this directive is included in a dialog via TemplateRef (rather than being\n      // in a Component), the DialogRef isn't available via injection because embedded\n      // views cannot be given a custom injector. Instead, we look up the DialogRef by\n      // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n      // be resolved at constructor time.\n      this.dialogRef = getClosestDialog(\n        this._elementRef,\n        this._dialog.openSideSheets\n      );\n    }\n  }\n\n  ngOnChanges(changes: SimpleChanges) {\n    const proxiedChange =\n      changes['_CovalentSideSheetClose'] ||\n      changes['_CovalentSideSheetCloseResult'];\n\n    if (proxiedChange) {\n      this.dialogResult = proxiedChange.currentValue;\n    }\n  }\n\n  _onButtonClick(event: MouseEvent) {\n    // Determinate the focus origin using the click event, because using the FocusMonitor will\n    // result in incorrect origins. Most of the time, close buttons will be auto focused in the\n    // dialog, and therefore clicking the button won't result in a focus change. This means that\n    // the FocusMonitor won't detect any origin change, and will always output `program`.\n    _closeSideSheetVia(\n      this.dialogRef,\n      event.screenX === 0 && event.screenY === 0 ? 'keyboard' : 'mouse',\n      this.dialogResult\n    );\n  }\n}\n\n/**\n * Title of a side sheet element. Stays fixed to the top of the side sheet when scrolling.\n */\n@Directive({\n  selector: '[td-side-sheet-title], [CovalentSideSheetTitle]',\n  exportAs: 'CovalentSideSheetTitle',\n})\nexport class CovalentSideSheetTitleDirective implements OnInit {\n  /** Unique id for the dialog title. If none is supplied, it will be auto-generated. */\n  @Input() id = `td-side-sheet-title-${dialogElementUid++}`;\n\n  @HostBinding('class.td-side-sheet-title') tdSideSheetTitle = true;\n\n  @HostBinding('attr.id') idAttr = this.id;\n\n  constructor(\n    // The dialog title directive is always used in combination with a `CovalentSideSheetRef`.\n    // tslint:disable-next-line: lightweight-tokens\n    @Optional() private _dialogRef: CovalentSideSheetRef<any>,\n    private _elementRef: ElementRef<HTMLElement>,\n    private _dialog: CovalentSideSheet\n  ) {}\n\n  ngOnInit(): void {\n    if (this._dialogRef) {\n      Promise.resolve().then(() => {\n        const container = this._dialogRef._containerInstance;\n\n        if (container && !container._ariaLabelledByQueue.includes(this.id)) {\n          container._ariaLabelledByQueue.push(this.id);\n        }\n      });\n    } else {\n      this._dialogRef = getClosestDialog(\n        this._elementRef,\n        this._dialog.openSideSheets\n      );\n    }\n  }\n}\n\n/**\n * Scrollable content container of a dialog.\n */\n@Directive({\n  selector: `[td-side-sheet-content], td-side-sheet-content, [CovalentSideSheetContent]`,\n})\nexport class CovalentSideSheetContentDirective {\n  @HostBinding('class.td-side-sheet-content') tdSideSheetContent = true;\n}\n\n/**\n * Container for the bottom action buttons in a dialog.\n * Stays fixed to the bottom when scrolling.\n */\n@Directive({\n  selector: `[td-side-sheet-actions], td-side-sheet-actions, [CovalentSideSheetActions]`,\n})\nexport class CovalentSideSheetActionsDirective {\n  @HostBinding('class.td-side-sheet-actions') tdSideSheetActions = true;\n}\n\n/**\n * Container for the wrapper part of the dialog\n */\n@Directive({\n  selector: `[td-side-sheet-wrapper], td-side-sheet-wrapper, [CovalentSideSheetWrapper]`,\n})\nexport class CovalentSideSheetWrapperDirective {\n  @HostBinding('class.td-side-sheet-wrapper') tdSideSheetWrapper = true;\n}\n\n/**\n * Finds the closest CovalentSideSheetRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a dialog.\n * @param openDialogs References to the currently-open dialogs.\n */\nfunction getClosestDialog(\n  element: ElementRef<HTMLElement>,\n  openDialogs: CovalentSideSheetRef<any>[]\n): CovalentSideSheetRef<any> {\n  let parent: HTMLElement | null = element.nativeElement.parentElement;\n\n  while (parent && !parent.classList.contains('td-side-sheet-container')) {\n    parent = parent.parentElement;\n  }\n\n  return parent\n    ? openDialogs.find((dialog) => dialog.id === parent?.id) ?? openDialogs[0]\n    : openDialogs[0];\n}\n","import { NgModule } from '@angular/core';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatCommonModule } from '@angular/material/core';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { CovalentSideSheet } from './side-sheet';\nimport { CovalentSideSheetContainerComponent } from './side-sheet-container';\nimport {\n  CovalentSideSheetActionsDirective,\n  CovalentSideSheetCloseDirective,\n  CovalentSideSheetContentDirective,\n  CovalentSideSheetTitleDirective,\n  CovalentSideSheetWrapperDirective,\n} from './side-sheet.content-directives';\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: [\n    CovalentSideSheetContainerComponent,\n    CovalentSideSheetActionsDirective,\n    CovalentSideSheetCloseDirective,\n    CovalentSideSheetContentDirective,\n    CovalentSideSheetTitleDirective,\n    CovalentSideSheetWrapperDirective,\n  ],\n  exports: [\n    CovalentSideSheetActionsDirective,\n    CovalentSideSheetCloseDirective,\n    CovalentSideSheetContentDirective,\n    CovalentSideSheetTitleDirective,\n    CovalentSideSheetWrapperDirective,\n  ],\n  providers: [CovalentSideSheet],\n})\nexport class CovalentSideSheetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.CovalentSideSheetConfig","i1.CovalentSideSheetRef","i2.CovalentSideSheet"],"mappings":"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"}