UNPKG

54.8 kBSource Map (JSON)View Raw
1{"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})\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@NgModule({\n declarations: [\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 imports: [PortalModule, MatDialogModule, MatCommonModule],\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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"}
\No newline at end of file