@covalent/core 4.2.1 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/breadcrumbs/breadcrumbs.component.d.ts +1 -2
  2. package/esm2020/breadcrumbs/breadcrumbs.component.mjs +10 -9
  3. package/esm2020/layout/navigation-drawer/navigation-drawer.component.mjs +8 -6
  4. package/esm2020/loading/covalent-core-loading.mjs +5 -0
  5. package/esm2020/loading/directives/loading.directive.mjs +126 -0
  6. package/esm2020/loading/loading.component.mjs +187 -0
  7. package/esm2020/loading/loading.module.mjs +43 -0
  8. package/esm2020/loading/public_api.mjs +6 -0
  9. package/esm2020/loading/services/loading.factory.mjs +207 -0
  10. package/esm2020/loading/services/loading.service.mjs +213 -0
  11. package/fesm2015/covalent-core-breadcrumbs.mjs +9 -8
  12. package/fesm2015/covalent-core-breadcrumbs.mjs.map +1 -1
  13. package/fesm2015/covalent-core-common.mjs.map +1 -1
  14. package/fesm2015/covalent-core-dialogs.mjs.map +1 -1
  15. package/fesm2015/covalent-core-dynamic-menu.mjs.map +1 -1
  16. package/fesm2015/covalent-core-file.mjs.map +1 -1
  17. package/fesm2015/covalent-core-json-formatter.mjs.map +1 -1
  18. package/fesm2015/covalent-core-layout.mjs +7 -5
  19. package/fesm2015/covalent-core-layout.mjs.map +1 -1
  20. package/fesm2015/covalent-core-loading.mjs +768 -0
  21. package/fesm2015/covalent-core-loading.mjs.map +1 -0
  22. package/fesm2015/covalent-core-menu.mjs.map +1 -1
  23. package/fesm2015/covalent-core-message.mjs.map +1 -1
  24. package/fesm2015/covalent-core-search.mjs.map +1 -1
  25. package/fesm2015/covalent-core-side-sheet.mjs.map +1 -1
  26. package/fesm2015/covalent-core-user-profile.mjs.map +1 -1
  27. package/fesm2015/covalent-core.mjs.map +1 -1
  28. package/fesm2020/covalent-core-breadcrumbs.mjs +9 -8
  29. package/fesm2020/covalent-core-breadcrumbs.mjs.map +1 -1
  30. package/fesm2020/covalent-core-common.mjs.map +1 -1
  31. package/fesm2020/covalent-core-dialogs.mjs.map +1 -1
  32. package/fesm2020/covalent-core-dynamic-menu.mjs.map +1 -1
  33. package/fesm2020/covalent-core-file.mjs.map +1 -1
  34. package/fesm2020/covalent-core-json-formatter.mjs.map +1 -1
  35. package/fesm2020/covalent-core-layout.mjs +7 -5
  36. package/fesm2020/covalent-core-layout.mjs.map +1 -1
  37. package/fesm2020/covalent-core-loading.mjs +760 -0
  38. package/fesm2020/covalent-core-loading.mjs.map +1 -0
  39. package/fesm2020/covalent-core-menu.mjs.map +1 -1
  40. package/fesm2020/covalent-core-message.mjs.map +1 -1
  41. package/fesm2020/covalent-core-search.mjs.map +1 -1
  42. package/fesm2020/covalent-core-side-sheet.mjs.map +1 -1
  43. package/fesm2020/covalent-core-user-profile.mjs.map +1 -1
  44. package/fesm2020/covalent-core.mjs.map +1 -1
  45. package/layout/navigation-drawer/navigation-drawer.component.d.ts +1 -1
  46. package/loading/README.md +188 -0
  47. package/loading/_loading-theme.scss +11 -0
  48. package/loading/covalent-core-loading.d.ts +5 -0
  49. package/loading/directives/loading.directive.d.ts +70 -0
  50. package/loading/loading.component.d.ts +90 -0
  51. package/loading/loading.module.d.ts +13 -0
  52. package/loading/package.json +10 -0
  53. package/loading/public_api.d.ts +5 -0
  54. package/loading/services/loading.factory.d.ts +69 -0
  55. package/loading/services/loading.service.d.ts +118 -0
  56. package/package.json +10 -2
  57. package/side-sheet/README.md +3 -3
  58. package/theming/_all-theme.scss +2 -0
  59. package/theming/prebuilt/blue-grey-deep-orange.css +1 -1
  60. package/theming/prebuilt/blue-grey-deep-orange.css.map +1 -1
  61. package/theming/prebuilt/blue-orange.css +1 -1
  62. package/theming/prebuilt/blue-orange.css.map +1 -1
  63. package/theming/prebuilt/indigo-pink.css +1 -1
  64. package/theming/prebuilt/indigo-pink.css.map +1 -1
  65. package/theming/prebuilt/orange-light-blue.css +1 -1
  66. package/theming/prebuilt/orange-light-blue.css.map +1 -1
  67. package/theming/prebuilt/teal-orange.css +1 -1
  68. package/theming/prebuilt/teal-orange.css.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"covalent-core-loading.mjs","sources":["../../../../libs/angular/loading/src/loading.component.ts","../../../../libs/angular/loading/src/loading.component.html","../../../../libs/angular/loading/src/services/loading.factory.ts","../../../../libs/angular/loading/src/services/loading.service.ts","../../../../libs/angular/loading/src/directives/loading.directive.ts","../../../../libs/angular/loading/src/loading.module.ts","../../../../libs/angular/loading/src/covalent-core-loading.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectorRef,\n ElementRef,\n DoCheck,\n} from '@angular/core';\nimport { tdFadeInOutAnimation } from '@covalent/core/common';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nexport enum LoadingType {\n Circular = 'circular',\n Linear = 'linear',\n}\n\nexport enum LoadingMode {\n Determinate = 'determinate',\n Indeterminate = 'indeterminate',\n}\n\nexport enum LoadingStrategy {\n Overlay = 'overlay',\n Replace = 'replace',\n}\n\nexport enum LoadingStyle {\n FullScreen = 'fullscreen',\n Overlay = 'overlay',\n None = 'none',\n}\n\nexport const TD_CIRCLE_DIAMETER = 40;\n\n@Component({\n selector: 'td-loading',\n styleUrls: ['./loading.component.scss'],\n templateUrl: './loading.component.html',\n animations: [tdFadeInOutAnimation],\n})\nexport class TdLoadingComponent implements DoCheck {\n private _mode: LoadingMode = LoadingMode.Indeterminate;\n private _defaultMode: LoadingMode = LoadingMode.Indeterminate;\n private _value = 0;\n private _circleDiameter: number = TD_CIRCLE_DIAMETER;\n\n /**\n * Flag for animation\n */\n animation = false;\n\n /**\n * Content injected into loading component.\n */\n content!: TemplatePortal<any>;\n\n /**\n * Sets mode of [TdLoadingComponent] to LoadingMode.Determinate or LoadingMode.Indeterminate\n */\n set mode(mode: LoadingMode) {\n this._defaultMode = mode;\n }\n get mode(): LoadingMode {\n return this._mode;\n }\n\n /**\n * Sets value of [TdLoadingComponent] if mode is 'LoadingMode.Determinate'\n */\n set value(value: number) {\n this._value = value;\n // Check for changes for `OnPush` change detection\n this._changeDetectorRef.markForCheck();\n }\n get value(): number {\n return this._value;\n }\n\n style: LoadingStyle = LoadingStyle.None;\n\n /**\n * height: number\n * Sets height of [TdLoadingComponent].\n */\n height = 100;\n\n /**\n * type: LoadingType\n * Sets type of [TdLoadingComponent] rendered.\n */\n type: LoadingType = LoadingType.Circular;\n\n /**\n * color: primary' | 'accent' | 'warn'\n * Sets theme color of [TdLoadingComponent] rendered.\n */\n color: 'primary' | 'accent' | 'warn' = 'primary';\n\n constructor(\n private _elementRef: ElementRef,\n private _changeDetectorRef: ChangeDetectorRef\n ) {}\n\n ngDoCheck(): void {\n // When overlay is used and the host width has a value greater than 1px\n // set the circle diameter when possible incase the loading component was rendered in a hidden state\n if (this.isOverlay() && this._hostHeight() > 1 && this.animation) {\n this._setCircleDiameter();\n this._changeDetectorRef.markForCheck();\n }\n }\n\n getHeight(): string | undefined {\n // Ignore height if style is `overlay` or `fullscreen`.\n // Add height if child elements have a height and style is `none`, else return default height.\n if (this.isOverlay() || this.isFullScreen()) {\n return undefined;\n } else {\n return this.height ? `${this.height}px` : '150px';\n }\n }\n\n getCircleDiameter(): number {\n return this._circleDiameter;\n }\n\n getCircleStrokeWidth(): number {\n // we calculate the stroke width by setting it as 10% of its diameter\n const strokeWidth: number = this.getCircleDiameter() / 10;\n return Math.abs(strokeWidth);\n }\n\n isCircular(): boolean {\n return this.type === LoadingType.Circular;\n }\n\n isLinear(): boolean {\n return this.type === LoadingType.Linear;\n }\n\n isFullScreen(): boolean {\n return this.style === LoadingStyle.FullScreen;\n }\n\n isOverlay(): boolean {\n return this.style === LoadingStyle.Overlay;\n }\n\n /**\n * Starts in animation and returns an observable for completition event.\n */\n show(): void {\n /* need to switch back to the selected mode, so we have saved it in another variable\n * and then recover it. (issue with protractor)\n */\n this._mode = this._defaultMode;\n // Set values before the animations starts\n this._setCircleDiameter();\n // Check for changes for `OnPush` change detection\n this.animation = true;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Starts out animation and returns an observable for completition event.\n */\n hide(): void {\n this.animation = false;\n /* need to switch back and forth from determinate/indeterminate so the setInterval()\n * inside mat-progress-spinner stops and protractor doesnt timeout waiting to sync.\n */\n this._mode = LoadingMode.Determinate;\n // Check for changes for `OnPush` change detection\n /* little hack to reset the loader value and animation before removing it from DOM\n * else, the loader will appear with prev value when its registered again\n * and will do an animation going prev value to 0.\n */\n this.value = 0;\n // Check for changes for `OnPush` change detection\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Calculate the proper diameter for the circle and set it\n */\n private _setCircleDiameter(): void {\n // we set a default diameter of 100 since this is the default in material\n let diameter: number = TD_CIRCLE_DIAMETER;\n // if height is provided, then we take that as diameter\n if (this.height) {\n diameter = this.height;\n // else if its not provided, then we take the host height\n } else if (this.height === undefined) {\n diameter = this._hostHeight();\n }\n // if the diameter is over TD_CIRCLE_DIAMETER, we set TD_CIRCLE_DIAMETER\n if (diameter <= TD_CIRCLE_DIAMETER) {\n this._circleDiameter = Math.floor(diameter);\n } else {\n this._circleDiameter = TD_CIRCLE_DIAMETER;\n }\n }\n\n /**\n * Returns the host height of the loading component\n */\n private _hostHeight(): number {\n if (<HTMLElement>this._elementRef.nativeElement) {\n return (<HTMLElement>(\n this._elementRef.nativeElement\n )).getBoundingClientRect().height;\n }\n return 0;\n }\n}\n","<div\n class=\"td-loading-wrapper\"\n [style.min-height]=\"getHeight()\"\n [class.td-overlay-circular]=\"(isOverlay() || isFullScreen()) && !isLinear()\"\n [class.td-overlay]=\"isOverlay() || isFullScreen()\"\n [class.td-fullscreen]=\"isFullScreen()\"\n>\n <div\n [@tdFadeInOut]=\"animation\"\n [style.min-height]=\"getHeight()\"\n class=\"td-loading\"\n >\n <mat-progress-spinner\n *ngIf=\"isCircular()\"\n [mode]=\"mode\"\n [value]=\"value\"\n [color]=\"color\"\n [diameter]=\"getCircleDiameter()\"\n [strokeWidth]=\"getCircleStrokeWidth()\"\n ></mat-progress-spinner>\n <mat-progress-bar\n *ngIf=\"isLinear()\"\n [mode]=\"mode\"\n [value]=\"value\"\n [color]=\"color\"\n ></mat-progress-bar>\n </div>\n <ng-template [cdkPortalOutlet]=\"content\"></ng-template>\n</div>\n","import {\n Injectable,\n ComponentFactoryResolver,\n Provider,\n SkipSelf,\n Optional,\n EmbeddedViewRef,\n} from '@angular/core';\nimport {\n Injector,\n ComponentRef,\n ViewContainerRef,\n TemplateRef,\n} from '@angular/core';\nimport { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\n\nimport { Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\nimport { TdLoadingContext } from '../directives/loading.directive';\nimport { TdLoadingComponent, LoadingStyle } from '../loading.component';\nimport { ITdLoadingConfig } from './loading.service';\n\nexport interface IInternalLoadingOptions extends ITdLoadingConfig {\n height?: number;\n style?: LoadingStyle;\n}\n\nexport interface ILoadingRef {\n observable: Observable<any>;\n componentRef?: ComponentRef<any>;\n subject: Subject<any>;\n times: number;\n}\n\n/**\n * NOTE: @internal usage only.\n */\n@Injectable()\nexport class TdLoadingFactory {\n constructor(\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _overlay: Overlay,\n private _injector: Injector\n ) {}\n\n /**\n * Uses material `Overlay` services to create a DOM element and attach the loading component\n * into it. Leveraging the state and configuration from it.\n *\n * Saves a reference in context to be called when registering/resolving the loading element.\n */\n public createFullScreenComponent(options: ITdLoadingConfig): ILoadingRef {\n (<IInternalLoadingOptions>options).height = undefined;\n (<IInternalLoadingOptions>options).style = LoadingStyle.FullScreen;\n const loadingRef: ILoadingRef = this._initializeContext();\n let loading = false;\n let overlayRef: OverlayRef;\n loadingRef.observable\n .pipe(distinctUntilChanged())\n .subscribe((registered: number) => {\n if (registered > 0 && !loading) {\n loading = true;\n overlayRef = this._createOverlay();\n loadingRef.componentRef = overlayRef.attach(\n new ComponentPortal(TdLoadingComponent)\n );\n this._mapOptions(options, loadingRef.componentRef?.instance);\n loadingRef.componentRef?.instance.show();\n loadingRef.componentRef?.changeDetectorRef.detectChanges();\n } else if (registered <= 0 && loading) {\n loading = false;\n loadingRef.componentRef?.instance.hide();\n loadingRef.componentRef?.destroy();\n overlayRef.detach();\n overlayRef.dispose();\n }\n });\n return loadingRef;\n }\n\n /**\n * Creates a loading component dynamically and attaches it into the given viewContainerRef.\n * Leverages TemplatePortals from material to inject the template inside of it so it fits\n * perfectly when overlaying it.\n *\n * Saves a reference in context to be called when registering/resolving the loading element.\n */\n public createOverlayComponent(\n options: ITdLoadingConfig,\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef<object>\n ): ILoadingRef {\n (<IInternalLoadingOptions>options).height = undefined;\n (<IInternalLoadingOptions>options).style = LoadingStyle.Overlay;\n const loadingRef: ILoadingRef = this._createComponent(options);\n let loading = false;\n\n if (loadingRef.componentRef) {\n loadingRef.componentRef.instance.content = new TemplatePortal(\n templateRef,\n viewContainerRef\n );\n viewContainerRef.clear();\n viewContainerRef.insert(loadingRef.componentRef?.hostView, 0);\n }\n\n loadingRef.observable\n .pipe(distinctUntilChanged())\n .subscribe((registered: number) => {\n if (registered > 0 && !loading) {\n loading = true;\n loadingRef.componentRef?.instance.show();\n } else if (registered <= 0 && loading) {\n loading = false;\n loadingRef.componentRef?.instance.hide();\n }\n });\n return loadingRef;\n }\n\n /**\n * Creates a loading component dynamically and attaches it into the given viewContainerRef.\n * Replaces the template with the loading component depending if it was registered or resolved.\n *\n * Saves a reference in context to be called when registering/resolving the loading element.\n */\n public createReplaceComponent(\n options: ITdLoadingConfig,\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef<object>,\n context: TdLoadingContext\n ): ILoadingRef {\n const nativeElement: HTMLElement = <HTMLElement>(\n templateRef.elementRef.nativeElement\n );\n (<IInternalLoadingOptions>options).height = nativeElement.nextElementSibling\n ? nativeElement.nextElementSibling.scrollHeight\n : undefined;\n (<IInternalLoadingOptions>options).style = LoadingStyle.None;\n const loadingRef: ILoadingRef = this._createComponent(options);\n let loading = false;\n // passing context so when the template is attached, we can keep the reference of the variables\n const contentRef: EmbeddedViewRef<object> =\n viewContainerRef.createEmbeddedView(templateRef, context);\n loadingRef.observable\n .pipe(distinctUntilChanged())\n .subscribe((registered: number) => {\n if (registered > 0 && !loading && loadingRef.componentRef) {\n loading = true;\n // detach the content and attach the loader if loader is there\n const index: number = viewContainerRef.indexOf(\n loadingRef.componentRef.hostView\n );\n if (index < 0) {\n viewContainerRef.detach(viewContainerRef.indexOf(contentRef));\n viewContainerRef.insert(loadingRef.componentRef.hostView, 0);\n }\n loadingRef.componentRef?.instance.show();\n } else if (registered <= 0 && loading && loadingRef.componentRef) {\n loading = false;\n loadingRef.componentRef?.instance.hide();\n // detach loader and attach the content if content is there\n const index: number = viewContainerRef.indexOf(contentRef);\n if (index < 0) {\n viewContainerRef.detach(\n viewContainerRef.indexOf(loadingRef.componentRef.hostView)\n );\n viewContainerRef.insert(contentRef, 0);\n }\n /**\n * Need to call \"markForCheck\" and \"detectChanges\" on attached template, so its detected by parent component when attached\n * with \"OnPush\" change detection\n */\n contentRef.detectChanges();\n contentRef.markForCheck();\n }\n });\n return loadingRef;\n }\n\n /**\n * Creates a fullscreen overlay for the loading usage.\n */\n private _createOverlay(): OverlayRef {\n const state: OverlayConfig = new OverlayConfig();\n state.hasBackdrop = false;\n state.positionStrategy = this._overlay\n .position()\n .global()\n .centerHorizontally()\n .centerVertically();\n return this._overlay.create(state);\n }\n\n /**\n * Creates a generic component dynamically waiting to be attached to a viewContainerRef.\n */\n private _createComponent(options: IInternalLoadingOptions): ILoadingRef {\n const compRef: ILoadingRef = this._initializeContext();\n compRef.componentRef = this._componentFactoryResolver\n .resolveComponentFactory(TdLoadingComponent)\n .create(this._injector);\n this._mapOptions(options, compRef.componentRef.instance);\n return compRef;\n }\n\n /**\n * Initialize context for loading component.\n */\n private _initializeContext(): ILoadingRef {\n const subject: Subject<any> = new Subject<any>();\n return {\n observable: subject.asObservable(),\n subject,\n componentRef: undefined,\n times: 0,\n };\n }\n\n /**\n * Maps configuration to the loading component instance.\n */\n private _mapOptions(\n options: IInternalLoadingOptions,\n instance: TdLoadingComponent\n ): void {\n if (options.style) {\n instance.style = options.style;\n }\n\n if (options.type !== undefined) {\n instance.type = options.type;\n }\n if (options.height !== undefined) {\n instance.height = options.height;\n }\n if (options.mode !== undefined) {\n instance.mode = options.mode;\n }\n if (options.color !== undefined) {\n instance.color = options.color;\n }\n }\n}\n\nexport function LOADING_FACTORY_PROVIDER_FACTORY(\n parent: TdLoadingFactory,\n componentFactoryResolver: ComponentFactoryResolver,\n overlay: Overlay,\n injector: Injector\n): TdLoadingFactory {\n return (\n parent || new TdLoadingFactory(componentFactoryResolver, overlay, injector)\n );\n}\n\nexport const LOADING_FACTORY_PROVIDER: Provider = {\n // If there is already a service available, use that. Otherwise, provide a new one.\n provide: TdLoadingFactory,\n deps: [\n [new Optional(), new SkipSelf(), TdLoadingFactory],\n ComponentFactoryResolver,\n Overlay,\n Injector,\n ],\n useFactory: LOADING_FACTORY_PROVIDER_FACTORY,\n};\n","import { Injectable, Provider, SkipSelf, Optional } from '@angular/core';\nimport { ViewContainerRef, TemplateRef } from '@angular/core';\n\nimport { TdLoadingContext } from '../directives/loading.directive';\nimport {\n TdLoadingComponent,\n LoadingMode,\n LoadingStrategy,\n LoadingType,\n} from '../loading.component';\nimport { TdLoadingFactory, ILoadingRef } from './loading.factory';\n\nexport interface ITdLoadingConfig {\n name: string;\n type?: LoadingType;\n mode?: LoadingMode;\n color?: 'primary' | 'accent' | 'warn';\n}\n\nexport class TdLoadingConfig implements ITdLoadingConfig {\n name: string;\n type?: LoadingType;\n mode?: LoadingMode;\n color?: 'primary' | 'accent' | 'warn';\n\n constructor(config: ITdLoadingConfig) {\n this.name = config.name;\n if (!this.name) {\n throw Error('Name is required for [TdLoading] configuration.');\n }\n this.mode = config.mode ? config.mode : LoadingMode.Indeterminate;\n this.type = config.type ? config.type : LoadingType.Circular;\n this.color = config.color ? config.color : 'primary';\n }\n}\n\nexport interface ITdLoadingDirectiveConfig extends ITdLoadingConfig {\n strategy?: LoadingStrategy;\n}\n\nexport class TdLoadingDirectiveConfig\n extends TdLoadingConfig\n implements ITdLoadingDirectiveConfig\n{\n strategy: LoadingStrategy;\n\n constructor(config: ITdLoadingDirectiveConfig) {\n super(config);\n this.strategy = config.strategy ? config.strategy : LoadingStrategy.Replace;\n }\n}\n\n@Injectable()\nexport class TdLoadingService {\n private _context: { [key: string]: ILoadingRef } = {};\n private _timeouts: { [key: string]: any } = {};\n\n constructor(private _loadingFactory: TdLoadingFactory) {\n this.create({\n name: 'td-loading-main',\n });\n }\n\n /**\n * params:\n * - config: ILoadingDirectiveConfig\n * - viewContainerRef: ViewContainerRef\n * - templateRef: TemplateRef<Object>\n *\n * Creates an replace loading mask and attaches it to the viewContainerRef.\n * Replaces the templateRef with the mask when a request is registered on it.\n *\n * NOTE: @internal usage only.\n */\n createComponent(\n config: ITdLoadingDirectiveConfig,\n viewContainerRef: ViewContainerRef,\n templateRef: TemplateRef<object>,\n context: TdLoadingContext\n ): ILoadingRef {\n const directiveConfig: TdLoadingDirectiveConfig =\n new TdLoadingDirectiveConfig(config);\n if (this._context[directiveConfig.name]) {\n throw Error(\n `Name duplication: [TdLoading] directive has a name conflict with ${directiveConfig.name}.`\n );\n }\n if (directiveConfig.strategy === LoadingStrategy.Overlay) {\n this._context[directiveConfig.name] =\n this._loadingFactory.createOverlayComponent(\n directiveConfig,\n viewContainerRef,\n templateRef\n );\n } else {\n this._context[directiveConfig.name] =\n this._loadingFactory.createReplaceComponent(\n directiveConfig,\n viewContainerRef,\n templateRef,\n context\n );\n }\n return this._context[directiveConfig.name];\n }\n\n /**\n * params:\n * - config: ITdLoadingConfig\n *\n * Creates a fullscreen loading mask and attaches it to the DOM with the given configuration.\n * Only displayed when the mask has a request registered on it.\n */\n public create(config: ITdLoadingConfig): void {\n const fullscreenConfig: TdLoadingConfig = new TdLoadingConfig(config);\n this.removeComponent(fullscreenConfig.name);\n this._context[fullscreenConfig.name] =\n this._loadingFactory.createFullScreenComponent(fullscreenConfig);\n }\n\n /**\n * params:\n * - name: string\n *\n * Removes `loading` component from service context.\n */\n public removeComponent(name: string): void {\n if (this._context[name]) {\n this._context[name].subject.unsubscribe();\n if (this._context[name].componentRef) {\n this._context[name].componentRef?.destroy();\n }\n delete this._context[name];\n }\n }\n\n /**\n * params:\n * - name: string\n * - registers?: number\n * returns: true if successful\n *\n * Resolves a request for the loading mask referenced by the name parameter.\n * Can optionally pass registers argument to set a number of register calls.\n *\n * If no paramemeters are used, then default main mask will be used.\n *\n * e.g. loadingService.register()\n */\n public register(\n name: string = 'td-loading-main',\n registers: number = 1\n ): boolean {\n // try registering into the service if the loading component has been instanciated or if it exists.\n if (this._context[name]) {\n registers = registers < 1 ? 1 : registers;\n this._context[name].times += registers;\n this._context[name].subject.next(this._context[name].times);\n return true;\n } else {\n // if it doesnt exist, set a timeout so its registered after change detection happens\n // this in case \"register\" occured on the `ngOnInit` lifehook cycle.\n if (!this._timeouts[name]) {\n this._timeouts[name] = setTimeout(() => {\n this.register(name, registers);\n });\n } else {\n // if it timeout occured and still doesnt exist, it means the tiemout wasnt needed so we clear it.\n this._clearTimeout(name);\n }\n }\n return false;\n }\n\n /**\n * params:\n * - name: string\n * - resolves?: number\n * returns: true if successful\n *\n * Resolves a request for the loading mask referenced by the name parameter.\n * Can optionally pass resolves argument to set a number of resolve calls.\n *\n * If no paramemeters are used, then default main mask will be used.\n *\n * e.g. loadingService.resolve()\n */\n public resolve(\n name: string = 'td-loading-main',\n resolves: number = 1\n ): boolean {\n // clear timeout if the loading component is \"resolved\" before its \"registered\"\n this._clearTimeout(name);\n if (this._context[name]) {\n resolves = resolves < 1 ? 1 : resolves;\n if (this._context[name].times) {\n let times: number = this._context[name].times;\n times -= resolves;\n this._context[name].times = times < 0 ? 0 : times;\n }\n this._context[name].subject?.next(this._context[name].times);\n return true;\n }\n return false;\n }\n\n /**\n * params:\n * - name: string\n * returns: true if successful\n *\n * Resolves all request for the loading mask referenced by the name parameter.\n *\n * If no paramemeters are used, then default main mask will be used.\n *\n * e.g. loadingService.resolveAll()\n */\n public resolveAll(name: string = 'td-loading-main'): boolean {\n // clear timeout if the loading component is \"resolved\" before its \"registered\"\n this._clearTimeout(name);\n if (this._context[name]) {\n this._context[name].times = 0;\n this._context[name].subject?.next(this._context[name].times);\n return true;\n }\n return false;\n }\n\n /**\n * params:\n * - name: string\n * - value: number\n * returns: true if successful\n *\n * Set value on a loading mask referenced by the name parameter.\n * Usage only available if its mode is 'determinate' and if loading is showing.\n */\n public setValue(name: string, value: number): boolean {\n if (this._context[name]) {\n const instance: TdLoadingComponent =\n this._context[name].componentRef?.instance;\n if (instance.mode === LoadingMode.Determinate && instance.animation) {\n instance.value = value;\n return true;\n }\n }\n return false;\n }\n\n /**\n * Clears timeout linked to the name.\n * @param name Name of the loading component to be cleared\n */\n private _clearTimeout(name: string): void {\n clearTimeout(this._timeouts[name]);\n delete this._timeouts[name];\n }\n}\n\nexport function LOADING_PROVIDER_FACTORY(\n parent: TdLoadingService,\n loadingFactory: TdLoadingFactory\n): TdLoadingService {\n return parent || new TdLoadingService(loadingFactory);\n}\n\nexport const LOADING_PROVIDER: Provider = {\n // If there is already a service available, use that. Otherwise, provide a new one.\n provide: TdLoadingService,\n deps: [[new Optional(), new SkipSelf(), TdLoadingService], TdLoadingFactory],\n useFactory: LOADING_PROVIDER_FACTORY,\n};\n","import { Directive, Input, OnInit, OnDestroy } from '@angular/core';\nimport { ViewContainerRef, TemplateRef } from '@angular/core';\n\nimport {\n LoadingType,\n LoadingMode,\n LoadingStrategy,\n} from '../loading.component';\nimport { TdLoadingService } from '../services/loading.service';\nimport { ILoadingRef } from '../services/loading.factory';\n\n/**\n * Context class for variable reference\n */\nexport class TdLoadingContext {\n public $implicit: any = undefined;\n public tdLoading: any = undefined;\n}\n\n// Constant for generation of the id for the next component\nlet TD_LOADING_NEXT_ID = 0;\n\n@Directive({\n selector: '[tdLoading]',\n})\nexport class TdLoadingDirective implements OnInit, OnDestroy {\n private _context: TdLoadingContext = new TdLoadingContext();\n private _loadingRef?: ILoadingRef;\n\n /**\n * tdLoading: string\n * Name reference of the loading mask, used to register/resolve requests to the mask.\n */\n @Input('tdLoading')\n name!: string;\n\n /**\n * tdLoadingUntil?: any\n * If its null, undefined or false it will be used to register requests to the mask.\n * Else if its any value that can be resolved as true, it will resolve the mask.\n * [name] is optional when using [until], but can still be used to register/resolve it manually.\n */\n @Input('tdLoadingUntil')\n set until(until: any) {\n if (!this.name) {\n this.name = 'td-loading-until-' + TD_LOADING_NEXT_ID++;\n }\n this._context.$implicit = this._context.tdLoading = until;\n if (!until) {\n this._loadingService.register(this.name);\n } else {\n this._loadingService.resolveAll(this.name);\n }\n }\n\n /**\n * tdLoadingType?: LoadingType or ['linear' | 'circular']\n * Sets the type of loading mask depending on value.\n * Defaults to [LoadingType.Circular | 'circular'].\n */\n @Input('tdLoadingType')\n type: LoadingType = LoadingType.Circular;\n\n /**\n * tdLoadingMode?: LoadingMode or ['determinate' | 'indeterminate']\n * Sets the mode of loading mask depending on value.\n * Defaults to [LoadingMode.Indeterminate | 'indeterminate'].\n */\n @Input('tdLoadingMode') mode: LoadingMode = LoadingMode.Indeterminate;\n\n /**\n * tdLoadingStrategy?: LoadingStrategy or ['replace' | 'overlay']\n * Sets the strategy of loading mask depending on value.\n * Defaults to [LoadingMode.Replace | 'replace'].\n */\n @Input('tdLoadingStrategy')\n strategy: LoadingStrategy.Overlay | LoadingStrategy.Replace =\n LoadingStrategy.Replace;\n\n /**\n * tdLoadingColor?: \"primary\" | \"accent\" | \"warn\"\n * Sets the theme color of the loading component. Defaults to \"primary\"\n */\n @Input('tdLoadingColor') color: 'primary' | 'accent' | 'warn' = 'primary';\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n private _templateRef: TemplateRef<TdLoadingContext>,\n private _loadingService: TdLoadingService\n ) {}\n\n /**\n * Registers component in the DOM, so it will be available when calling resolve/register.\n */\n ngOnInit(): void {\n this._registerComponent();\n }\n\n /**\n * Remove component when directive is destroyed.\n */\n ngOnDestroy(): void {\n this._loadingService.removeComponent(this.name);\n this._loadingRef = undefined;\n }\n\n /**\n * Creates [TdLoadingComponent] and attaches it to this directive's [ViewContainerRef].\n * Passes this directive's [TemplateRef] to modify DOM depending on loading `strategy`.\n */\n private _registerComponent(): void {\n if (!this.name) {\n throw new Error('Name is needed to register loading directive');\n }\n // Check if `TdLoadingComponent` has been created before trying to add one again.\n // There is a weird edge case when using `[routerLinkActive]` that calls the `ngOnInit` twice in a row\n if (!this._loadingRef) {\n this._loadingRef = this._loadingService.createComponent(\n {\n name: this.name,\n type: this.type,\n mode: this.mode,\n color: this.color,\n strategy: this.strategy,\n },\n this._viewContainerRef,\n this._templateRef,\n this._context\n );\n }\n }\n}\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { LOADING_PROVIDER } from './services/loading.service';\nimport { LOADING_FACTORY_PROVIDER } from './services/loading.factory';\nimport { TdLoadingDirective } from './directives/loading.directive';\nimport { TdLoadingComponent } from './loading.component';\n\nconst TD_LOADING: Type<any>[] = [TdLoadingComponent, TdLoadingDirective];\n\n@NgModule({\n imports: [\n CommonModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n OverlayModule,\n PortalModule,\n ],\n declarations: [TD_LOADING],\n exports: [TD_LOADING],\n providers: [LOADING_FACTORY_PROVIDER, LOADING_PROVIDER],\n})\nexport class CovalentLoadingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i1.TdLoadingFactory","i1.TdLoadingService"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-core-menu.mjs","sources":["../../../../libs/angular/menu/src/menu.component.ts","../../../../libs/angular/menu/src/menu.component.html","../../../../libs/angular/menu/src/menu.module.ts","../../../../libs/angular/menu/src/covalent-core-menu.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'td-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n})\nexport class TdMenuComponent {}\n","<ng-content select=\"[td-menu-header]\"></ng-content>\n<mat-divider></mat-divider>\n<div class=\"td-menu-content\">\n <ng-content></ng-content>\n</div>\n<mat-divider></mat-divider>\n<ng-content select=\"[td-menu-footer]\"></ng-content>\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatDividerModule } from '@angular/material/divider';\n\nimport { TdMenuComponent } from './menu.component';\n\nconst TD_MENU: Type<any>[] = [TdMenuComponent];\n\n@NgModule({\n imports: [CommonModule, MatMenuModule, MatDividerModule],\n declarations: [TD_MENU],\n exports: [TD_MENU],\n})\nexport class CovalentMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;MAOa,eAAe;;4GAAf,eAAe;gGAAf,eAAe,+CCP5B,gPAOA;2FDAa,eAAe;kBAL3B,SAAS;+BACE,SAAS;;;AEMrB,MAAM,OAAO,GAAgB,CAAC,eAAe,CAAC,CAAC;MAOlC,kBAAkB;;+GAAlB,kBAAkB;gHAAlB,kBAAkB,iBAPD,eAAe,aAGjC,YAAY,EAAE,aAAa,EAAE,gBAAgB,aAH3B,eAAe;gHAOhC,kBAAkB,YAJpB,CAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAC;2FAI7C,kBAAkB;kBAL9B,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAC;oBACxD,YAAY,EAAE,CAAC,OAAO,CAAC;oBACvB,OAAO,EAAE,CAAC,OAAO,CAAC;iBACnB;;;ACfD;;;;;;"}
1
+ {"version":3,"file":"covalent-core-menu.mjs","sources":["../../../../libs/angular/menu/src/menu.component.ts","../../../../libs/angular/menu/src/menu.component.html","../../../../libs/angular/menu/src/menu.module.ts","../../../../libs/angular/menu/src/covalent-core-menu.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'td-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n})\nexport class TdMenuComponent {}\n","<ng-content select=\"[td-menu-header]\"></ng-content>\n<mat-divider></mat-divider>\n<div class=\"td-menu-content\">\n <ng-content></ng-content>\n</div>\n<mat-divider></mat-divider>\n<ng-content select=\"[td-menu-footer]\"></ng-content>\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatDividerModule } from '@angular/material/divider';\n\nimport { TdMenuComponent } from './menu.component';\n\nconst TD_MENU: Type<any>[] = [TdMenuComponent];\n\n@NgModule({\n imports: [CommonModule, MatMenuModule, MatDividerModule],\n declarations: [TD_MENU],\n exports: [TD_MENU],\n})\nexport class CovalentMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;MAOa,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,+CCP5B,gPAOA,EAAA,MAAA,EAAA,CAAA,muHAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDAa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,SAAS,EAAA,QAAA,EAAA,gPAAA,EAAA,MAAA,EAAA,CAAA,muHAAA,CAAA,EAAA,CAAA;;;AEMrB,MAAM,OAAO,GAAgB,CAAC,eAAe,CAAC,CAAC;MAOlC,kBAAkB,CAAA;;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAlB,kBAAkB,EAAA,YAAA,EAAA,CAPD,eAAe,CAGjC,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAH3B,eAAe,CAAA,EAAA,CAAA,CAAA;AAOhC,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAJpB,CAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAA,EAAA,CAAA,CAAA;2FAI7C,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAC;oBACxD,YAAY,EAAE,CAAC,OAAO,CAAC;oBACvB,OAAO,EAAE,CAAC,OAAO,CAAC;AACnB,iBAAA,CAAA;;;ACfD;;AAEG;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-core-message.mjs","sources":["../../../../libs/angular/message/src/collapse.animation.ts","../../../../libs/angular/message/src/message.component.ts","../../../../libs/angular/message/src/message.component.html","../../../../libs/angular/message/src/message.module.ts","../../../../libs/angular/message/src/covalent-core-message.ts"],"sourcesContent":["import {\n trigger,\n state,\n style,\n transition,\n animate,\n AnimationTriggerMetadata,\n AUTO_STYLE,\n query,\n animateChild,\n group,\n} from '@angular/animations';\n\nexport interface IAnimationOptions {\n anchor?: string;\n duration?: number;\n delay?: number;\n}\n\nexport interface ICollapseAnimation extends IAnimationOptions {\n easeOnClose?: string;\n easeOnOpen?: string;\n}\n\n/**\n * const tdCollapseAnimation\n *\n * Parameter Options:\n * * duration: Duration the animation will run in milliseconds. Defaults to 150 ms.\n * * delay: Delay before the animation will run in milliseconds. Defaults to 0 ms.\n * * easeOnClose: Animation accelerates and decelerates when closing. Defaults to ease-in.\n * * easeOnOpen: Animation accelerates and decelerates when opening. Defaults to ease-out.\n *\n * Returns an [AnimationTriggerMetadata] object with boolean states for a collapse/expand animation.\n *\n * usage: [@tdCollapse]=\"{ value: true | false, params: { duration: 500 }}\"\n */\nexport const tdCollapseAnimation: AnimationTriggerMetadata = trigger(\n 'tdCollapse',\n [\n state(\n '1',\n style({\n height: '0',\n overflow: 'hidden',\n })\n ),\n state(\n '0',\n style({\n height: AUTO_STYLE,\n overflow: AUTO_STYLE,\n })\n ),\n transition(\n '0 => 1',\n [\n style({\n overflow: 'hidden',\n height: AUTO_STYLE,\n }),\n group([\n query('@*', animateChild(), { optional: true }),\n animate(\n '{{ duration }}ms {{ delay }}ms {{ ease }}',\n style({\n height: '0',\n overflow: 'hidden',\n })\n ),\n ]),\n ],\n { params: { duration: 150, delay: '0', ease: 'ease-in' } }\n ),\n transition(\n '1 => 0',\n [\n style({\n height: '0',\n overflow: 'hidden',\n }),\n group([\n query('@*', animateChild(), { optional: true }),\n animate(\n '{{ duration }}ms {{ delay }}ms {{ ease }}',\n style({\n overflow: 'hidden',\n height: AUTO_STYLE,\n })\n ),\n ]),\n ],\n { params: { duration: 150, delay: '0', ease: 'ease-out' } }\n ),\n ]\n);\n","import {\n Component,\n Directive,\n Input,\n Renderer2,\n ElementRef,\n AfterViewInit,\n ViewContainerRef,\n TemplateRef,\n ViewChild,\n HostBinding,\n HostListener,\n ChangeDetectorRef,\n} from '@angular/core';\n\nimport { tdCollapseAnimation } from './collapse.animation';\n\n@Directive({\n selector: '[tdMessageContainer]',\n})\nexport class TdMessageContainerDirective {\n constructor(public viewContainer: ViewContainerRef) {}\n}\n\n@Component({\n selector: 'td-message',\n templateUrl: './message.component.html',\n styleUrls: ['./message.component.scss'],\n animations: [tdCollapseAnimation],\n})\nexport class TdMessageComponent implements AfterViewInit {\n private _color!: string;\n private _opened = true;\n private _hidden = false;\n private _animating = false;\n private _initialized = false;\n\n @ViewChild(TdMessageContainerDirective, { static: true })\n _childElement?: TdMessageContainerDirective;\n @ViewChild(TemplateRef) _template!: TemplateRef<any>;\n\n /**\n * Binding host to tdCollapse animation\n */\n @HostBinding('@tdCollapse')\n get collapsedAnimation(): any {\n return { value: !this._opened, duration: 100 };\n }\n\n /**\n * Binding host to display style when hidden\n */\n @HostBinding('style.display')\n get hidden(): string {\n return this._hidden ? 'none' : '';\n }\n\n /**\n * label: string\n *\n * Sets the label of the message.\n */\n @Input() label?: string;\n\n /**\n * sublabel?: string\n *\n * Sets the sublabel of the message.\n */\n @Input() sublabel?: string;\n\n /**\n * icon?: string\n *\n * The icon to be displayed before the title.\n * Defaults to `info_outline` icon\n */\n @Input() icon?: string = 'info_outline';\n\n /**\n * color?: primary | accent | warn\n *\n * Sets the color of the message.\n * Can also use any material color: purple | light-blue, etc.\n */\n @Input()\n set color(color: string) {\n this._renderer.removeClass(\n this._elementRef.nativeElement,\n 'mat-' + this._color\n );\n this._renderer.removeClass(\n this._elementRef.nativeElement,\n 'bgc-' + this._color + '-100'\n );\n this._renderer.removeClass(\n this._elementRef.nativeElement,\n 'tc-' + this._color + '-700'\n );\n if (color === 'primary' || color === 'accent' || color === 'warn') {\n this._renderer.addClass(this._elementRef.nativeElement, 'mat-' + color);\n } else {\n this._renderer.addClass(\n this._elementRef.nativeElement,\n 'bgc-' + color + '-100'\n );\n this._renderer.addClass(\n this._elementRef.nativeElement,\n 'tc-' + color + '-700'\n );\n }\n this._color = color;\n this._changeDetectorRef.markForCheck();\n }\n get color(): string {\n return this._color;\n }\n\n /**\n * opened?: boolean\n *\n * Shows or hiddes the message depending on its value.\n * Defaults to 'true'.\n */\n @Input()\n set opened(opened: boolean) {\n if (this._initialized) {\n if (opened) {\n this.open();\n } else {\n this.close();\n }\n } else {\n this._opened = opened;\n }\n }\n get opened(): boolean {\n return this._opened;\n }\n\n constructor(\n private _renderer: Renderer2,\n private _changeDetectorRef: ChangeDetectorRef,\n private _elementRef: ElementRef\n ) {\n this._renderer.addClass(this._elementRef.nativeElement, 'td-message');\n }\n\n /**\n * Detach element when close animation is finished to set animating state to false\n * hidden state to true and detach element from DOM\n */\n @HostListener('@tdCollapse.done')\n animationDoneListener(): void {\n if (!this._opened) {\n this._hidden = true;\n this._detach();\n }\n this._animating = false;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Initializes the component and attaches the content.\n */\n ngAfterViewInit(): void {\n Promise.resolve(undefined).then(() => {\n if (this._opened) {\n this._attach();\n }\n this._initialized = true;\n });\n }\n\n /**\n * Renders the message on screen\n * Validates if there is an animation currently and if its already opened\n */\n open(): void {\n if (!this._opened && !this._animating) {\n this._opened = true;\n this._attach();\n this._startAnimationState();\n }\n }\n\n /**\n * Removes the message content from screen.\n * Validates if there is an animation currently and if its already closed\n */\n close(): void {\n if (this._opened && !this._animating) {\n this._opened = false;\n this._startAnimationState();\n }\n }\n\n /**\n * Toggles between open and close depending on state.\n */\n toggle(): void {\n if (this._opened) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /**\n * Method to set the state before starting an animation\n */\n private _startAnimationState(): void {\n this._animating = true;\n this._hidden = false;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Method to attach template to DOM\n */\n private _attach(): void {\n this._childElement?.viewContainer.createEmbeddedView(this._template);\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Method to detach template from DOM\n */\n private _detach(): void {\n this._childElement?.viewContainer.clear();\n this._changeDetectorRef.markForCheck();\n }\n}\n","<div tdMessageContainer></div>\n<ng-template>\n <div class=\"td-message-wrapper\">\n <mat-icon class=\"td-message-icon\">{{ icon }}</mat-icon>\n <div class=\"td-message-labels\">\n <div *ngIf=\"label\" class=\"td-message-label\">{{ label }}</div>\n <div *ngIf=\"sublabel\" class=\"td-message-sublabel\">{{ sublabel }}</div>\n </div>\n <ng-content select=\"[td-message-actions]\"></ng-content>\n </div>\n</ng-template>\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport {\n TdMessageComponent,\n TdMessageContainerDirective,\n} from './message.component';\n\nconst TD_MESSAGE: Type<any>[] = [\n TdMessageComponent,\n TdMessageContainerDirective,\n];\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [TD_MESSAGE],\n exports: [TD_MESSAGE],\n})\nexport class CovalentMessageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"covalent-core-message.mjs","sources":["../../../../libs/angular/message/src/collapse.animation.ts","../../../../libs/angular/message/src/message.component.ts","../../../../libs/angular/message/src/message.component.html","../../../../libs/angular/message/src/message.module.ts","../../../../libs/angular/message/src/covalent-core-message.ts"],"sourcesContent":["import {\n trigger,\n state,\n style,\n transition,\n animate,\n AnimationTriggerMetadata,\n AUTO_STYLE,\n query,\n animateChild,\n group,\n} from '@angular/animations';\n\nexport interface IAnimationOptions {\n anchor?: string;\n duration?: number;\n delay?: number;\n}\n\nexport interface ICollapseAnimation extends IAnimationOptions {\n easeOnClose?: string;\n easeOnOpen?: string;\n}\n\n/**\n * const tdCollapseAnimation\n *\n * Parameter Options:\n * * duration: Duration the animation will run in milliseconds. Defaults to 150 ms.\n * * delay: Delay before the animation will run in milliseconds. Defaults to 0 ms.\n * * easeOnClose: Animation accelerates and decelerates when closing. Defaults to ease-in.\n * * easeOnOpen: Animation accelerates and decelerates when opening. Defaults to ease-out.\n *\n * Returns an [AnimationTriggerMetadata] object with boolean states for a collapse/expand animation.\n *\n * usage: [@tdCollapse]=\"{ value: true | false, params: { duration: 500 }}\"\n */\nexport const tdCollapseAnimation: AnimationTriggerMetadata = trigger(\n 'tdCollapse',\n [\n state(\n '1',\n style({\n height: '0',\n overflow: 'hidden',\n })\n ),\n state(\n '0',\n style({\n height: AUTO_STYLE,\n overflow: AUTO_STYLE,\n })\n ),\n transition(\n '0 => 1',\n [\n style({\n overflow: 'hidden',\n height: AUTO_STYLE,\n }),\n group([\n query('@*', animateChild(), { optional: true }),\n animate(\n '{{ duration }}ms {{ delay }}ms {{ ease }}',\n style({\n height: '0',\n overflow: 'hidden',\n })\n ),\n ]),\n ],\n { params: { duration: 150, delay: '0', ease: 'ease-in' } }\n ),\n transition(\n '1 => 0',\n [\n style({\n height: '0',\n overflow: 'hidden',\n }),\n group([\n query('@*', animateChild(), { optional: true }),\n animate(\n '{{ duration }}ms {{ delay }}ms {{ ease }}',\n style({\n overflow: 'hidden',\n height: AUTO_STYLE,\n })\n ),\n ]),\n ],\n { params: { duration: 150, delay: '0', ease: 'ease-out' } }\n ),\n ]\n);\n","import {\n Component,\n Directive,\n Input,\n Renderer2,\n ElementRef,\n AfterViewInit,\n ViewContainerRef,\n TemplateRef,\n ViewChild,\n HostBinding,\n HostListener,\n ChangeDetectorRef,\n} from '@angular/core';\n\nimport { tdCollapseAnimation } from './collapse.animation';\n\n@Directive({\n selector: '[tdMessageContainer]',\n})\nexport class TdMessageContainerDirective {\n constructor(public viewContainer: ViewContainerRef) {}\n}\n\n@Component({\n selector: 'td-message',\n templateUrl: './message.component.html',\n styleUrls: ['./message.component.scss'],\n animations: [tdCollapseAnimation],\n})\nexport class TdMessageComponent implements AfterViewInit {\n private _color!: string;\n private _opened = true;\n private _hidden = false;\n private _animating = false;\n private _initialized = false;\n\n @ViewChild(TdMessageContainerDirective, { static: true })\n _childElement?: TdMessageContainerDirective;\n @ViewChild(TemplateRef) _template!: TemplateRef<any>;\n\n /**\n * Binding host to tdCollapse animation\n */\n @HostBinding('@tdCollapse')\n get collapsedAnimation(): any {\n return { value: !this._opened, duration: 100 };\n }\n\n /**\n * Binding host to display style when hidden\n */\n @HostBinding('style.display')\n get hidden(): string {\n return this._hidden ? 'none' : '';\n }\n\n /**\n * label: string\n *\n * Sets the label of the message.\n */\n @Input() label?: string;\n\n /**\n * sublabel?: string\n *\n * Sets the sublabel of the message.\n */\n @Input() sublabel?: string;\n\n /**\n * icon?: string\n *\n * The icon to be displayed before the title.\n * Defaults to `info_outline` icon\n */\n @Input() icon?: string = 'info_outline';\n\n /**\n * color?: primary | accent | warn\n *\n * Sets the color of the message.\n * Can also use any material color: purple | light-blue, etc.\n */\n @Input()\n set color(color: string) {\n this._renderer.removeClass(\n this._elementRef.nativeElement,\n 'mat-' + this._color\n );\n this._renderer.removeClass(\n this._elementRef.nativeElement,\n 'bgc-' + this._color + '-100'\n );\n this._renderer.removeClass(\n this._elementRef.nativeElement,\n 'tc-' + this._color + '-700'\n );\n if (color === 'primary' || color === 'accent' || color === 'warn') {\n this._renderer.addClass(this._elementRef.nativeElement, 'mat-' + color);\n } else {\n this._renderer.addClass(\n this._elementRef.nativeElement,\n 'bgc-' + color + '-100'\n );\n this._renderer.addClass(\n this._elementRef.nativeElement,\n 'tc-' + color + '-700'\n );\n }\n this._color = color;\n this._changeDetectorRef.markForCheck();\n }\n get color(): string {\n return this._color;\n }\n\n /**\n * opened?: boolean\n *\n * Shows or hiddes the message depending on its value.\n * Defaults to 'true'.\n */\n @Input()\n set opened(opened: boolean) {\n if (this._initialized) {\n if (opened) {\n this.open();\n } else {\n this.close();\n }\n } else {\n this._opened = opened;\n }\n }\n get opened(): boolean {\n return this._opened;\n }\n\n constructor(\n private _renderer: Renderer2,\n private _changeDetectorRef: ChangeDetectorRef,\n private _elementRef: ElementRef\n ) {\n this._renderer.addClass(this._elementRef.nativeElement, 'td-message');\n }\n\n /**\n * Detach element when close animation is finished to set animating state to false\n * hidden state to true and detach element from DOM\n */\n @HostListener('@tdCollapse.done')\n animationDoneListener(): void {\n if (!this._opened) {\n this._hidden = true;\n this._detach();\n }\n this._animating = false;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Initializes the component and attaches the content.\n */\n ngAfterViewInit(): void {\n Promise.resolve(undefined).then(() => {\n if (this._opened) {\n this._attach();\n }\n this._initialized = true;\n });\n }\n\n /**\n * Renders the message on screen\n * Validates if there is an animation currently and if its already opened\n */\n open(): void {\n if (!this._opened && !this._animating) {\n this._opened = true;\n this._attach();\n this._startAnimationState();\n }\n }\n\n /**\n * Removes the message content from screen.\n * Validates if there is an animation currently and if its already closed\n */\n close(): void {\n if (this._opened && !this._animating) {\n this._opened = false;\n this._startAnimationState();\n }\n }\n\n /**\n * Toggles between open and close depending on state.\n */\n toggle(): void {\n if (this._opened) {\n this.close();\n } else {\n this.open();\n }\n }\n\n /**\n * Method to set the state before starting an animation\n */\n private _startAnimationState(): void {\n this._animating = true;\n this._hidden = false;\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Method to attach template to DOM\n */\n private _attach(): void {\n this._childElement?.viewContainer.createEmbeddedView(this._template);\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Method to detach template from DOM\n */\n private _detach(): void {\n this._childElement?.viewContainer.clear();\n this._changeDetectorRef.markForCheck();\n }\n}\n","<div tdMessageContainer></div>\n<ng-template>\n <div class=\"td-message-wrapper\">\n <mat-icon class=\"td-message-icon\">{{ icon }}</mat-icon>\n <div class=\"td-message-labels\">\n <div *ngIf=\"label\" class=\"td-message-label\">{{ label }}</div>\n <div *ngIf=\"sublabel\" class=\"td-message-sublabel\">{{ sublabel }}</div>\n </div>\n <ng-content select=\"[td-message-actions]\"></ng-content>\n </div>\n</ng-template>\n","import { Type } from '@angular/core';\nimport { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport {\n TdMessageComponent,\n TdMessageContainerDirective,\n} from './message.component';\n\nconst TD_MESSAGE: Type<any>[] = [\n TdMessageComponent,\n TdMessageContainerDirective,\n];\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [TD_MESSAGE],\n exports: [TD_MESSAGE],\n})\nexport class CovalentMessageModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"covalent-core-search.mjs","sources":["../../../../libs/angular/search/src/search-input/search-input.component.ts","../../../../libs/angular/search/src/search-input/search-input.component.html","../../../../libs/angular/search/src/search-box/search-box.component.ts","../../../../libs/angular/search/src/search-box/search-box.component.html","../../../../libs/angular/search/src/search.module.ts","../../../../libs/angular/search/src/covalent-core-search.ts"],"sourcesContent":["import {\n Component,\n ViewChild,\n OnInit,\n Input,\n Output,\n EventEmitter,\n Optional,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n OnDestroy,\n ElementRef,\n NgZone,\n} from '@angular/core';\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n} from '@angular/animations';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Dir } from '@angular/cdk/bidi';\nimport { MatInput } from '@angular/material/input';\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, skip, takeUntil } from 'rxjs/operators';\nimport {\n IControlValueAccessor,\n mixinControlValueAccessor,\n} from '@covalent/core/common';\n\nexport class TdSearchInputBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\nexport const _TdSearchInputMixinBase =\n mixinControlValueAccessor(TdSearchInputBase);\n\n@Component({\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdSearchInputComponent),\n multi: true,\n },\n ],\n selector: 'td-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('searchState', [\n state(\n 'hide-left',\n style({\n transform: 'translateX(-150%)',\n display: 'none',\n })\n ),\n state(\n 'hide-right',\n style({\n transform: 'translateX(150%)',\n display: 'none',\n })\n ),\n state(\n 'show',\n style({\n transform: 'translateX(0%)',\n display: 'block',\n })\n ),\n transition('* => show', animate('200ms ease-in')),\n transition('show => *', animate('200ms ease-out')),\n ]),\n ],\n})\nexport class TdSearchInputComponent\n extends _TdSearchInputMixinBase\n implements IControlValueAccessor, OnInit, OnDestroy\n{\n @ViewChild(MatInput, { static: true }) _input?: MatInput;\n\n @ViewChild('searchElement', { static: true, read: ElementRef })\n _searchElement!: ElementRef<HTMLInputElement>;\n\n /**\n * appearance?: MatFormFieldAppearance\n * Appearance style for the underlying input component.\n */\n @Input() appearance: MatFormFieldAppearance = 'legacy';\n\n /**\n * showUnderline?: boolean\n * Sets if the input underline should be visible. Defaults to 'false'.\n */\n @Input() showUnderline = false;\n\n /**\n * debounce?: number\n * Debounce timeout between keypresses. Defaults to 400.\n */\n @Input() debounce = 400;\n\n /**\n * placeholder?: string\n * Placeholder for the underlying input component.\n */\n @Input() placeholder = '';\n\n /**\n * clearIcon?: string\n * The icon used to clear the search input.\n * Defaults to 'cancel' icon.\n */\n @Input() clearIcon = 'cancel';\n\n @Input() override value!: unknown;\n\n /**\n * searchDebounce: function($event)\n * Event emitted after the [debounce] timeout.\n */\n @Output() searchDebounce: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * search: function($event)\n * Event emitted after the key enter has been pressed.\n */\n @Output() search: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * clear: function()\n * Event emitted after the clear icon has been clicked.\n */\n @Output() clear: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * blur: function()\n * Event emitted after the blur event has been called in underlying input.\n */\n @Output() blurSearch: EventEmitter<void> = new EventEmitter<void>();\n\n get isRTL(): boolean {\n if (this._dir) {\n return this._dir.dir === 'rtl';\n }\n return false;\n }\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n @Optional() private _dir: Dir,\n override _changeDetectorRef: ChangeDetectorRef,\n private _ngZone: NgZone\n ) {\n super(_changeDetectorRef);\n }\n\n ngOnInit(): void {\n this._input?.ngControl?.valueChanges\n ?.pipe(\n debounceTime(this.debounce),\n skip(1), // skip first change when value is set to undefined\n takeUntil(this._destroy$)\n )\n .subscribe((value: string) => {\n this._searchTermChanged(value);\n });\n\n this._ngZone.runOutsideAngular(() =>\n fromEvent(this._searchElement.nativeElement, 'search')\n .pipe(takeUntil(this._destroy$))\n .subscribe(this._stopPropagation)\n );\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n\n /**\n * Method to focus to underlying input.\n */\n focus(): void {\n this._input?.focus();\n }\n\n handleBlur(): void {\n this.blurSearch.emit();\n }\n\n handleSearch(event: Event): void {\n this._stopPropagation(event);\n if (typeof this.value == 'string') {\n this.search.emit(this.value);\n }\n }\n\n /**\n * Method to clear the underlying input.\n */\n clearSearch(): void {\n this.value = '';\n this._changeDetectorRef.markForCheck();\n this.clear.emit();\n }\n\n private _searchTermChanged(value: string): void {\n this.searchDebounce.emit(value);\n }\n\n private _stopPropagation(event: Event): void {\n event.stopPropagation();\n }\n}\n","<div class=\"td-search-input\">\n <mat-form-field\n class=\"td-search-input-field\"\n [class.mat-hide-underline]=\"!showUnderline\"\n [appearance]=\"appearance\"\n floatLabel=\"never\"\n >\n <input\n matInput\n #searchElement\n type=\"search\"\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n (blur)=\"handleBlur()\"\n (keyup.enter)=\"handleSearch($event)\"\n />\n <span\n matSuffix\n *ngIf=\"\n appearance === 'fill' ||\n appearance === 'outline' ||\n appearance === 'standard'\n \"\n >\n <ng-template [ngTemplateOutlet]=\"clearButton\"></ng-template>\n </span>\n </mat-form-field>\n <ng-template\n *ngIf=\"!appearance || appearance === 'legacy'\"\n [ngTemplateOutlet]=\"clearButton\"\n ></ng-template>\n</div>\n<ng-template #clearButton>\n <button\n mat-icon-button\n class=\"td-search-input-clear\"\n type=\"button\"\n [@searchState]=\"\n searchElement.value ? 'show' : isRTL ? 'hide-left' : 'hide-right'\n \"\n (click)=\"clearSearch()\"\n >\n <mat-icon>{{ clearIcon }}</mat-icon>\n </button>\n</ng-template>\n","import {\n Component,\n ViewChild,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n AUTO_STYLE,\n} from '@angular/animations';\n\nimport { TdSearchInputComponent } from '../search-input/search-input.component';\nimport { noop } from 'rxjs';\n\nexport class TdSearchBoxBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n@Component({\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdSearchBoxComponent),\n multi: true,\n },\n ],\n selector: 'td-search-box',\n templateUrl: './search-box.component.html',\n styleUrls: ['./search-box.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('inputState', [\n state(\n '0',\n style({\n width: '0%',\n margin: '0px',\n })\n ),\n state(\n '1',\n style({\n width: '100%',\n margin: AUTO_STYLE,\n })\n ),\n transition('0 => 1', animate('200ms ease-in')),\n transition('1 => 0', animate('200ms ease-out')),\n ]),\n ],\n})\nexport class TdSearchBoxComponent implements ControlValueAccessor {\n private _searchVisible = false;\n @ViewChild(TdSearchInputComponent, { static: true })\n _searchInput?: TdSearchInputComponent;\n\n get searchVisible(): boolean {\n return this._searchVisible;\n }\n\n /**\n * backIcon?: string\n * The icon used to close the search toggle, only shown when [alwaysVisible] is false.\n * Defaults to 'search' icon.\n */\n @Input() backIcon = 'search';\n\n /**\n * searchIcon?: string\n * The icon used to open/focus the search toggle.\n * Defaults to 'search' icon.\n */\n @Input() searchIcon = 'search';\n\n /**\n * clearIcon?: string\n * The icon used to clear the search input.\n * Defaults to 'cancel' icon.\n */\n @Input() clearIcon = 'cancel';\n\n /**\n * showUnderline?: boolean\n * Sets if the input underline should be visible. Defaults to 'false'.\n */\n @Input() showUnderline = false;\n\n /**\n * debounce?: number\n * Debounce timeout between keypresses. Defaults to 400.\n */\n @Input() debounce = 400;\n\n /**\n * alwaysVisible?: boolean\n * Sets if the input should always be visible. Defaults to 'false'.\n */\n @Input() alwaysVisible = false;\n\n /**\n * placeholder?: string\n * Placeholder for the underlying input component.\n */\n @Input() placeholder = '';\n\n @Input() value: unknown;\n\n /**\n * searchDebounce: function($event)\n * Event emitted after the [debounce] timeout.\n */\n @Output() searchDebounce: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * search: function($event)\n * Event emitted after the key enter has been pressed.\n */\n @Output() search: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * clear: function()\n * Event emitted after the clear icon has been clicked.\n */\n @Output() clear: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * blur: function()\n * Event emitted after the blur event has been called in underlying input.\n */\n @Output() blurSearch: EventEmitter<void> = new EventEmitter<void>();\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n writeValue(value: unknown): void {\n this.value = value;\n this._changeDetectorRef.markForCheck();\n }\n\n registerOnChange(): void {\n noop;\n }\n\n registerOnTouched(): void {\n noop;\n }\n\n /**\n * Method executed when the search icon is clicked.\n */\n searchClicked(): void {\n if (!this.alwaysVisible && this._searchVisible) {\n this.value = '';\n this.handleClear();\n } else if (this.alwaysVisible || !this._searchVisible) {\n this._searchInput?.focus();\n }\n this.toggleVisibility();\n }\n\n toggleVisibility(): void {\n this._searchVisible = !this._searchVisible;\n this._changeDetectorRef.markForCheck();\n }\n\n handleSearchDebounce(value: string): void {\n this.searchDebounce.emit(value);\n }\n\n handleSearch(value: string): void {\n this.search.emit(value);\n }\n\n handleClear(): void {\n this.clear.emit();\n }\n\n handleBlur(): void {\n this.blurSearch.emit();\n }\n}\n","<div class=\"td-search-box\">\n <button\n mat-icon-button\n type=\"button\"\n class=\"td-search-icon\"\n (click)=\"searchClicked()\"\n >\n <mat-icon *ngIf=\"searchVisible && !alwaysVisible\">{{ backIcon }}</mat-icon>\n <mat-icon *ngIf=\"!searchVisible || alwaysVisible\">{{\n searchIcon\n }}</mat-icon>\n </button>\n <td-search-input\n #searchInput\n [@inputState]=\"alwaysVisible || searchVisible\"\n [debounce]=\"debounce\"\n [(ngModel)]=\"value\"\n [showUnderline]=\"showUnderline\"\n [placeholder]=\"placeholder\"\n [clearIcon]=\"clearIcon\"\n (searchDebounce)=\"handleSearchDebounce($event)\"\n (search)=\"handleSearch($event)\"\n (clear)=\"handleClear(); toggleVisibility()\"\n (blur)=\"handleBlur()\"\n ></td-search-input>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { TdSearchInputComponent } from './search-input/search-input.component';\nimport { TdSearchBoxComponent } from './search-box/search-box.component';\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule,\n MatInputModule,\n MatIconModule,\n MatButtonModule,\n ],\n declarations: [TdSearchInputComponent, TdSearchBoxComponent],\n exports: [TdSearchInputComponent, TdSearchBoxComponent],\n})\nexport class CovalentSearchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"covalent-core-search.mjs","sources":["../../../../libs/angular/search/src/search-input/search-input.component.ts","../../../../libs/angular/search/src/search-input/search-input.component.html","../../../../libs/angular/search/src/search-box/search-box.component.ts","../../../../libs/angular/search/src/search-box/search-box.component.html","../../../../libs/angular/search/src/search.module.ts","../../../../libs/angular/search/src/covalent-core-search.ts"],"sourcesContent":["import {\n Component,\n ViewChild,\n OnInit,\n Input,\n Output,\n EventEmitter,\n Optional,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n OnDestroy,\n ElementRef,\n NgZone,\n} from '@angular/core';\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n} from '@angular/animations';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Dir } from '@angular/cdk/bidi';\nimport { MatInput } from '@angular/material/input';\nimport { MatFormFieldAppearance } from '@angular/material/form-field';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, skip, takeUntil } from 'rxjs/operators';\nimport {\n IControlValueAccessor,\n mixinControlValueAccessor,\n} from '@covalent/core/common';\n\nexport class TdSearchInputBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\nexport const _TdSearchInputMixinBase =\n mixinControlValueAccessor(TdSearchInputBase);\n\n@Component({\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdSearchInputComponent),\n multi: true,\n },\n ],\n selector: 'td-search-input',\n templateUrl: './search-input.component.html',\n styleUrls: ['./search-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('searchState', [\n state(\n 'hide-left',\n style({\n transform: 'translateX(-150%)',\n display: 'none',\n })\n ),\n state(\n 'hide-right',\n style({\n transform: 'translateX(150%)',\n display: 'none',\n })\n ),\n state(\n 'show',\n style({\n transform: 'translateX(0%)',\n display: 'block',\n })\n ),\n transition('* => show', animate('200ms ease-in')),\n transition('show => *', animate('200ms ease-out')),\n ]),\n ],\n})\nexport class TdSearchInputComponent\n extends _TdSearchInputMixinBase\n implements IControlValueAccessor, OnInit, OnDestroy\n{\n @ViewChild(MatInput, { static: true }) _input?: MatInput;\n\n @ViewChild('searchElement', { static: true, read: ElementRef })\n _searchElement!: ElementRef<HTMLInputElement>;\n\n /**\n * appearance?: MatFormFieldAppearance\n * Appearance style for the underlying input component.\n */\n @Input() appearance: MatFormFieldAppearance = 'legacy';\n\n /**\n * showUnderline?: boolean\n * Sets if the input underline should be visible. Defaults to 'false'.\n */\n @Input() showUnderline = false;\n\n /**\n * debounce?: number\n * Debounce timeout between keypresses. Defaults to 400.\n */\n @Input() debounce = 400;\n\n /**\n * placeholder?: string\n * Placeholder for the underlying input component.\n */\n @Input() placeholder = '';\n\n /**\n * clearIcon?: string\n * The icon used to clear the search input.\n * Defaults to 'cancel' icon.\n */\n @Input() clearIcon = 'cancel';\n\n @Input() override value!: unknown;\n\n /**\n * searchDebounce: function($event)\n * Event emitted after the [debounce] timeout.\n */\n @Output() searchDebounce: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * search: function($event)\n * Event emitted after the key enter has been pressed.\n */\n @Output() search: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * clear: function()\n * Event emitted after the clear icon has been clicked.\n */\n @Output() clear: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * blur: function()\n * Event emitted after the blur event has been called in underlying input.\n */\n @Output() blurSearch: EventEmitter<void> = new EventEmitter<void>();\n\n get isRTL(): boolean {\n if (this._dir) {\n return this._dir.dir === 'rtl';\n }\n return false;\n }\n\n private _destroy$ = new Subject<void>();\n\n constructor(\n @Optional() private _dir: Dir,\n override _changeDetectorRef: ChangeDetectorRef,\n private _ngZone: NgZone\n ) {\n super(_changeDetectorRef);\n }\n\n ngOnInit(): void {\n this._input?.ngControl?.valueChanges\n ?.pipe(\n debounceTime(this.debounce),\n skip(1), // skip first change when value is set to undefined\n takeUntil(this._destroy$)\n )\n .subscribe((value: string) => {\n this._searchTermChanged(value);\n });\n\n this._ngZone.runOutsideAngular(() =>\n fromEvent(this._searchElement.nativeElement, 'search')\n .pipe(takeUntil(this._destroy$))\n .subscribe(this._stopPropagation)\n );\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n\n /**\n * Method to focus to underlying input.\n */\n focus(): void {\n this._input?.focus();\n }\n\n handleBlur(): void {\n this.blurSearch.emit();\n }\n\n handleSearch(event: Event): void {\n this._stopPropagation(event);\n if (typeof this.value == 'string') {\n this.search.emit(this.value);\n }\n }\n\n /**\n * Method to clear the underlying input.\n */\n clearSearch(): void {\n this.value = '';\n this._changeDetectorRef.markForCheck();\n this.clear.emit();\n }\n\n private _searchTermChanged(value: string): void {\n this.searchDebounce.emit(value);\n }\n\n private _stopPropagation(event: Event): void {\n event.stopPropagation();\n }\n}\n","<div class=\"td-search-input\">\n <mat-form-field\n class=\"td-search-input-field\"\n [class.mat-hide-underline]=\"!showUnderline\"\n [appearance]=\"appearance\"\n floatLabel=\"never\"\n >\n <input\n matInput\n #searchElement\n type=\"search\"\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n (blur)=\"handleBlur()\"\n (keyup.enter)=\"handleSearch($event)\"\n />\n <span\n matSuffix\n *ngIf=\"\n appearance === 'fill' ||\n appearance === 'outline' ||\n appearance === 'standard'\n \"\n >\n <ng-template [ngTemplateOutlet]=\"clearButton\"></ng-template>\n </span>\n </mat-form-field>\n <ng-template\n *ngIf=\"!appearance || appearance === 'legacy'\"\n [ngTemplateOutlet]=\"clearButton\"\n ></ng-template>\n</div>\n<ng-template #clearButton>\n <button\n mat-icon-button\n class=\"td-search-input-clear\"\n type=\"button\"\n [@searchState]=\"\n searchElement.value ? 'show' : isRTL ? 'hide-left' : 'hide-right'\n \"\n (click)=\"clearSearch()\"\n >\n <mat-icon>{{ clearIcon }}</mat-icon>\n </button>\n</ng-template>\n","import {\n Component,\n ViewChild,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport {\n trigger,\n state,\n style,\n transition,\n animate,\n AUTO_STYLE,\n} from '@angular/animations';\n\nimport { TdSearchInputComponent } from '../search-input/search-input.component';\nimport { noop } from 'rxjs';\n\nexport class TdSearchBoxBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n@Component({\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdSearchBoxComponent),\n multi: true,\n },\n ],\n selector: 'td-search-box',\n templateUrl: './search-box.component.html',\n styleUrls: ['./search-box.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n trigger('inputState', [\n state(\n '0',\n style({\n width: '0%',\n margin: '0px',\n })\n ),\n state(\n '1',\n style({\n width: '100%',\n margin: AUTO_STYLE,\n })\n ),\n transition('0 => 1', animate('200ms ease-in')),\n transition('1 => 0', animate('200ms ease-out')),\n ]),\n ],\n})\nexport class TdSearchBoxComponent implements ControlValueAccessor {\n private _searchVisible = false;\n @ViewChild(TdSearchInputComponent, { static: true })\n _searchInput?: TdSearchInputComponent;\n\n get searchVisible(): boolean {\n return this._searchVisible;\n }\n\n /**\n * backIcon?: string\n * The icon used to close the search toggle, only shown when [alwaysVisible] is false.\n * Defaults to 'search' icon.\n */\n @Input() backIcon = 'search';\n\n /**\n * searchIcon?: string\n * The icon used to open/focus the search toggle.\n * Defaults to 'search' icon.\n */\n @Input() searchIcon = 'search';\n\n /**\n * clearIcon?: string\n * The icon used to clear the search input.\n * Defaults to 'cancel' icon.\n */\n @Input() clearIcon = 'cancel';\n\n /**\n * showUnderline?: boolean\n * Sets if the input underline should be visible. Defaults to 'false'.\n */\n @Input() showUnderline = false;\n\n /**\n * debounce?: number\n * Debounce timeout between keypresses. Defaults to 400.\n */\n @Input() debounce = 400;\n\n /**\n * alwaysVisible?: boolean\n * Sets if the input should always be visible. Defaults to 'false'.\n */\n @Input() alwaysVisible = false;\n\n /**\n * placeholder?: string\n * Placeholder for the underlying input component.\n */\n @Input() placeholder = '';\n\n @Input() value: unknown;\n\n /**\n * searchDebounce: function($event)\n * Event emitted after the [debounce] timeout.\n */\n @Output() searchDebounce: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * search: function($event)\n * Event emitted after the key enter has been pressed.\n */\n @Output() search: EventEmitter<string> = new EventEmitter<string>();\n\n /**\n * clear: function()\n * Event emitted after the clear icon has been clicked.\n */\n @Output() clear: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * blur: function()\n * Event emitted after the blur event has been called in underlying input.\n */\n @Output() blurSearch: EventEmitter<void> = new EventEmitter<void>();\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n writeValue(value: unknown): void {\n this.value = value;\n this._changeDetectorRef.markForCheck();\n }\n\n registerOnChange(): void {\n noop;\n }\n\n registerOnTouched(): void {\n noop;\n }\n\n /**\n * Method executed when the search icon is clicked.\n */\n searchClicked(): void {\n if (!this.alwaysVisible && this._searchVisible) {\n this.value = '';\n this.handleClear();\n } else if (this.alwaysVisible || !this._searchVisible) {\n this._searchInput?.focus();\n }\n this.toggleVisibility();\n }\n\n toggleVisibility(): void {\n this._searchVisible = !this._searchVisible;\n this._changeDetectorRef.markForCheck();\n }\n\n handleSearchDebounce(value: string): void {\n this.searchDebounce.emit(value);\n }\n\n handleSearch(value: string): void {\n this.search.emit(value);\n }\n\n handleClear(): void {\n this.clear.emit();\n }\n\n handleBlur(): void {\n this.blurSearch.emit();\n }\n}\n","<div class=\"td-search-box\">\n <button\n mat-icon-button\n type=\"button\"\n class=\"td-search-icon\"\n (click)=\"searchClicked()\"\n >\n <mat-icon *ngIf=\"searchVisible && !alwaysVisible\">{{ backIcon }}</mat-icon>\n <mat-icon *ngIf=\"!searchVisible || alwaysVisible\">{{\n searchIcon\n }}</mat-icon>\n </button>\n <td-search-input\n #searchInput\n [@inputState]=\"alwaysVisible || searchVisible\"\n [debounce]=\"debounce\"\n [(ngModel)]=\"value\"\n [showUnderline]=\"showUnderline\"\n [placeholder]=\"placeholder\"\n [clearIcon]=\"clearIcon\"\n (searchDebounce)=\"handleSearchDebounce($event)\"\n (search)=\"handleSearch($event)\"\n (clear)=\"handleClear(); toggleVisibility()\"\n (blur)=\"handleBlur()\"\n ></td-search-input>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { TdSearchInputComponent } from './search-input/search-input.component';\nimport { TdSearchBoxComponent } from './search-box/search-box.component';\n\n@NgModule({\n imports: [\n FormsModule,\n CommonModule,\n MatInputModule,\n MatIconModule,\n MatButtonModule,\n ],\n declarations: [TdSearchInputComponent, TdSearchBoxComponent],\n exports: [TdSearchInputComponent, TdSearchBoxComponent],\n})\nexport class CovalentSearchModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2","i3.TdSearchInputComponent","i4","i5"],"mappings":"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"}
@@ -1 +1 @@
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 class CovalentSideSheetConfig<D = any> extends MatDialogConfig<D> {}\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 { OverlayRef } from '@angular/cdk/overlay';\nimport {\n MatDialogRef,\n _MatDialogContainerBase,\n} from '@angular/material/dialog';\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 override _containerInstance: _MatDialogContainerBase,\n override readonly id: string = `td-side-sheet-${uniqueId++}`\n ) {\n super(overlayRef, _containerInstance, id);\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 { 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 // Animate previous side sheet to full width\n if (prevOverlayRef?.overlayElement) {\n prevOverlayRef.overlayElement.style.transition = `${AnimationDurations.COMPLEX} ${AnimationCurves.DECELERATION_CURVE}`;\n prevOverlayRef.overlayElement.style.minWidth = `${\n (window as any).innerWidth\n }px`;\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 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._ariaLabelledBy) {\n container._ariaLabelledBy = 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":[],"mappings":"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"}
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 class CovalentSideSheetConfig<D = any> extends MatDialogConfig<D> {}\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 { OverlayRef } from '@angular/cdk/overlay';\nimport {\n MatDialogRef,\n _MatDialogContainerBase,\n} from '@angular/material/dialog';\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 override _containerInstance: _MatDialogContainerBase,\n override readonly id: string = `td-side-sheet-${uniqueId++}`\n ) {\n super(overlayRef, _containerInstance, id);\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 { 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 // Animate previous side sheet to full width\n if (prevOverlayRef?.overlayElement) {\n prevOverlayRef.overlayElement.style.transition = `${AnimationDurations.COMPLEX} ${AnimationCurves.DECELERATION_CURVE}`;\n prevOverlayRef.overlayElement.style.minWidth = `${\n (window as any).innerWidth\n }px`;\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 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._ariaLabelledBy) {\n container._ariaLabelledBy = 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","i1.CovalentSideSheetRef","i2.CovalentSideSheet"],"mappings":"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"}