@covalent/core 4.3.0 → 4.6.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,43 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { PortalModule } from '@angular/cdk/portal';
4
+ import { OverlayModule } from '@angular/cdk/overlay';
5
+ import { MatProgressBarModule } from '@angular/material/progress-bar';
6
+ import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
7
+ import { LOADING_PROVIDER } from './services/loading.service';
8
+ import { LOADING_FACTORY_PROVIDER } from './services/loading.factory';
9
+ import { TdLoadingDirective } from './directives/loading.directive';
10
+ import { TdLoadingComponent } from './loading.component';
11
+ import * as i0 from "@angular/core";
12
+ const TD_LOADING = [TdLoadingComponent, TdLoadingDirective];
13
+ export class CovalentLoadingModule {
14
+ }
15
+ CovalentLoadingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ CovalentLoadingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentLoadingModule, declarations: [TdLoadingComponent, TdLoadingDirective], imports: [CommonModule,
17
+ MatProgressBarModule,
18
+ MatProgressSpinnerModule,
19
+ OverlayModule,
20
+ PortalModule], exports: [TdLoadingComponent, TdLoadingDirective] });
21
+ CovalentLoadingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentLoadingModule, providers: [LOADING_FACTORY_PROVIDER, LOADING_PROVIDER], imports: [[
22
+ CommonModule,
23
+ MatProgressBarModule,
24
+ MatProgressSpinnerModule,
25
+ OverlayModule,
26
+ PortalModule,
27
+ ]] });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: CovalentLoadingModule, decorators: [{
29
+ type: NgModule,
30
+ args: [{
31
+ imports: [
32
+ CommonModule,
33
+ MatProgressBarModule,
34
+ MatProgressSpinnerModule,
35
+ OverlayModule,
36
+ PortalModule,
37
+ ],
38
+ declarations: [TD_LOADING],
39
+ exports: [TD_LOADING],
40
+ providers: [LOADING_FACTORY_PROVIDER, LOADING_PROVIDER],
41
+ }]
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvbG9hZGluZy9zcmMvbG9hZGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFekQsTUFBTSxVQUFVLEdBQWdCLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztBQWN6RSxNQUFNLE9BQU8scUJBQXFCOztrSEFBckIscUJBQXFCO21IQUFyQixxQkFBcUIsaUJBZEQsa0JBQWtCLEVBQUUsa0JBQWtCLGFBSW5FLFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsd0JBQXdCO1FBQ3hCLGFBQWE7UUFDYixZQUFZLGFBUmlCLGtCQUFrQixFQUFFLGtCQUFrQjttSEFjMUQscUJBQXFCLGFBRnJCLENBQUMsd0JBQXdCLEVBQUUsZ0JBQWdCLENBQUMsWUFUOUM7WUFDUCxZQUFZO1lBQ1osb0JBQW9CO1lBQ3BCLHdCQUF3QjtZQUN4QixhQUFhO1lBQ2IsWUFBWTtTQUNiOzJGQUtVLHFCQUFxQjtrQkFaakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLHdCQUF3Qjt3QkFDeEIsYUFBYTt3QkFDYixZQUFZO3FCQUNiO29CQUNELFlBQVksRUFBRSxDQUFDLFVBQVUsQ0FBQztvQkFDMUIsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDO29CQUNyQixTQUFTLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxnQkFBZ0IsQ0FBQztpQkFDeEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5cbmltcG9ydCB7IExPQURJTkdfUFJPVklERVIgfSBmcm9tICcuL3NlcnZpY2VzL2xvYWRpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBMT0FESU5HX0ZBQ1RPUllfUFJPVklERVIgfSBmcm9tICcuL3NlcnZpY2VzL2xvYWRpbmcuZmFjdG9yeSc7XG5pbXBvcnQgeyBUZExvYWRpbmdEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvbG9hZGluZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGRMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkaW5nLmNvbXBvbmVudCc7XG5cbmNvbnN0IFREX0xPQURJTkc6IFR5cGU8YW55PltdID0gW1RkTG9hZGluZ0NvbXBvbmVudCwgVGRMb2FkaW5nRGlyZWN0aXZlXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgT3ZlcmxheU1vZHVsZSxcbiAgICBQb3J0YWxNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1REX0xPQURJTkddLFxuICBleHBvcnRzOiBbVERfTE9BRElOR10sXG4gIHByb3ZpZGVyczogW0xPQURJTkdfRkFDVE9SWV9QUk9WSURFUiwgTE9BRElOR19QUk9WSURFUl0sXG59KVxuZXhwb3J0IGNsYXNzIENvdmFsZW50TG9hZGluZ01vZHVsZSB7fVxuIl19
@@ -0,0 +1,6 @@
1
+ export * from './loading.module';
2
+ export * from './loading.component';
3
+ export * from './directives/loading.directive';
4
+ export * from './services/loading.service';
5
+ export * from './services/loading.factory';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9sb2FkaW5nL3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbG9hZGluZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvbG9hZGluZy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9sb2FkaW5nLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9sb2FkaW5nLmZhY3RvcnknO1xuIl19
@@ -0,0 +1,207 @@
1
+ import { Injectable, ComponentFactoryResolver, SkipSelf, Optional, } from '@angular/core';
2
+ import { Injector, } from '@angular/core';
3
+ import { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
4
+ import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
5
+ import { Subject } from 'rxjs';
6
+ import { distinctUntilChanged } from 'rxjs/operators';
7
+ import { TdLoadingComponent, LoadingStyle } from '../loading.component';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@angular/cdk/overlay";
10
+ /**
11
+ * NOTE: @internal usage only.
12
+ */
13
+ export class TdLoadingFactory {
14
+ constructor(_componentFactoryResolver, _overlay, _injector) {
15
+ this._componentFactoryResolver = _componentFactoryResolver;
16
+ this._overlay = _overlay;
17
+ this._injector = _injector;
18
+ }
19
+ /**
20
+ * Uses material `Overlay` services to create a DOM element and attach the loading component
21
+ * into it. Leveraging the state and configuration from it.
22
+ *
23
+ * Saves a reference in context to be called when registering/resolving the loading element.
24
+ */
25
+ createFullScreenComponent(options) {
26
+ options.height = undefined;
27
+ options.style = LoadingStyle.FullScreen;
28
+ const loadingRef = this._initializeContext();
29
+ let loading = false;
30
+ let overlayRef;
31
+ loadingRef.observable
32
+ .pipe(distinctUntilChanged())
33
+ .subscribe((registered) => {
34
+ if (registered > 0 && !loading) {
35
+ loading = true;
36
+ overlayRef = this._createOverlay();
37
+ loadingRef.componentRef = overlayRef.attach(new ComponentPortal(TdLoadingComponent));
38
+ this._mapOptions(options, loadingRef.componentRef?.instance);
39
+ loadingRef.componentRef?.instance.show();
40
+ loadingRef.componentRef?.changeDetectorRef.detectChanges();
41
+ }
42
+ else if (registered <= 0 && loading) {
43
+ loading = false;
44
+ loadingRef.componentRef?.instance.hide();
45
+ loadingRef.componentRef?.destroy();
46
+ overlayRef.detach();
47
+ overlayRef.dispose();
48
+ }
49
+ });
50
+ return loadingRef;
51
+ }
52
+ /**
53
+ * Creates a loading component dynamically and attaches it into the given viewContainerRef.
54
+ * Leverages TemplatePortals from material to inject the template inside of it so it fits
55
+ * perfectly when overlaying it.
56
+ *
57
+ * Saves a reference in context to be called when registering/resolving the loading element.
58
+ */
59
+ createOverlayComponent(options, viewContainerRef, templateRef) {
60
+ options.height = undefined;
61
+ options.style = LoadingStyle.Overlay;
62
+ const loadingRef = this._createComponent(options);
63
+ let loading = false;
64
+ if (loadingRef.componentRef) {
65
+ loadingRef.componentRef.instance.content = new TemplatePortal(templateRef, viewContainerRef);
66
+ viewContainerRef.clear();
67
+ viewContainerRef.insert(loadingRef.componentRef?.hostView, 0);
68
+ }
69
+ loadingRef.observable
70
+ .pipe(distinctUntilChanged())
71
+ .subscribe((registered) => {
72
+ if (registered > 0 && !loading) {
73
+ loading = true;
74
+ loadingRef.componentRef?.instance.show();
75
+ }
76
+ else if (registered <= 0 && loading) {
77
+ loading = false;
78
+ loadingRef.componentRef?.instance.hide();
79
+ }
80
+ });
81
+ return loadingRef;
82
+ }
83
+ /**
84
+ * Creates a loading component dynamically and attaches it into the given viewContainerRef.
85
+ * Replaces the template with the loading component depending if it was registered or resolved.
86
+ *
87
+ * Saves a reference in context to be called when registering/resolving the loading element.
88
+ */
89
+ createReplaceComponent(options, viewContainerRef, templateRef, context) {
90
+ const nativeElement = (templateRef.elementRef.nativeElement);
91
+ options.height = nativeElement.nextElementSibling
92
+ ? nativeElement.nextElementSibling.scrollHeight
93
+ : undefined;
94
+ options.style = LoadingStyle.None;
95
+ const loadingRef = this._createComponent(options);
96
+ let loading = false;
97
+ // passing context so when the template is attached, we can keep the reference of the variables
98
+ const contentRef = viewContainerRef.createEmbeddedView(templateRef, context);
99
+ loadingRef.observable
100
+ .pipe(distinctUntilChanged())
101
+ .subscribe((registered) => {
102
+ if (registered > 0 && !loading && loadingRef.componentRef) {
103
+ loading = true;
104
+ // detach the content and attach the loader if loader is there
105
+ const index = viewContainerRef.indexOf(loadingRef.componentRef.hostView);
106
+ if (index < 0) {
107
+ viewContainerRef.detach(viewContainerRef.indexOf(contentRef));
108
+ viewContainerRef.insert(loadingRef.componentRef.hostView, 0);
109
+ }
110
+ loadingRef.componentRef?.instance.show();
111
+ }
112
+ else if (registered <= 0 && loading && loadingRef.componentRef) {
113
+ loading = false;
114
+ loadingRef.componentRef?.instance.hide();
115
+ // detach loader and attach the content if content is there
116
+ const index = viewContainerRef.indexOf(contentRef);
117
+ if (index < 0) {
118
+ viewContainerRef.detach(viewContainerRef.indexOf(loadingRef.componentRef.hostView));
119
+ viewContainerRef.insert(contentRef, 0);
120
+ }
121
+ /**
122
+ * Need to call "markForCheck" and "detectChanges" on attached template, so its detected by parent component when attached
123
+ * with "OnPush" change detection
124
+ */
125
+ contentRef.detectChanges();
126
+ contentRef.markForCheck();
127
+ }
128
+ });
129
+ return loadingRef;
130
+ }
131
+ /**
132
+ * Creates a fullscreen overlay for the loading usage.
133
+ */
134
+ _createOverlay() {
135
+ const state = new OverlayConfig();
136
+ state.hasBackdrop = false;
137
+ state.positionStrategy = this._overlay
138
+ .position()
139
+ .global()
140
+ .centerHorizontally()
141
+ .centerVertically();
142
+ return this._overlay.create(state);
143
+ }
144
+ /**
145
+ * Creates a generic component dynamically waiting to be attached to a viewContainerRef.
146
+ */
147
+ _createComponent(options) {
148
+ const compRef = this._initializeContext();
149
+ compRef.componentRef = this._componentFactoryResolver
150
+ .resolveComponentFactory(TdLoadingComponent)
151
+ .create(this._injector);
152
+ this._mapOptions(options, compRef.componentRef.instance);
153
+ return compRef;
154
+ }
155
+ /**
156
+ * Initialize context for loading component.
157
+ */
158
+ _initializeContext() {
159
+ const subject = new Subject();
160
+ return {
161
+ observable: subject.asObservable(),
162
+ subject,
163
+ componentRef: undefined,
164
+ times: 0,
165
+ };
166
+ }
167
+ /**
168
+ * Maps configuration to the loading component instance.
169
+ */
170
+ _mapOptions(options, instance) {
171
+ if (options.style) {
172
+ instance.style = options.style;
173
+ }
174
+ if (options.type !== undefined) {
175
+ instance.type = options.type;
176
+ }
177
+ if (options.height !== undefined) {
178
+ instance.height = options.height;
179
+ }
180
+ if (options.mode !== undefined) {
181
+ instance.mode = options.mode;
182
+ }
183
+ if (options.color !== undefined) {
184
+ instance.color = options.color;
185
+ }
186
+ }
187
+ }
188
+ TdLoadingFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdLoadingFactory, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.Overlay }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
189
+ TdLoadingFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdLoadingFactory });
190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdLoadingFactory, decorators: [{
191
+ type: Injectable
192
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.Overlay }, { type: i0.Injector }]; } });
193
+ export function LOADING_FACTORY_PROVIDER_FACTORY(parent, componentFactoryResolver, overlay, injector) {
194
+ return (parent || new TdLoadingFactory(componentFactoryResolver, overlay, injector));
195
+ }
196
+ export const LOADING_FACTORY_PROVIDER = {
197
+ // If there is already a service available, use that. Otherwise, provide a new one.
198
+ provide: TdLoadingFactory,
199
+ deps: [
200
+ [new Optional(), new SkipSelf(), TdLoadingFactory],
201
+ ComponentFactoryResolver,
202
+ Overlay,
203
+ Injector,
204
+ ],
205
+ useFactory: LOADING_FACTORY_PROVIDER_FACTORY,
206
+ };
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2xvYWRpbmcvc3JjL3NlcnZpY2VzL2xvYWRpbmcuZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLHdCQUF3QixFQUV4QixRQUFRLEVBQ1IsUUFBUSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxRQUFRLEdBSVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBRTFFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7QUFleEU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQ1UseUJBQW1ELEVBQ25ELFFBQWlCLEVBQ2pCLFNBQW1CO1FBRm5CLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMEI7UUFDbkQsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFVO0lBQzFCLENBQUM7SUFFSjs7Ozs7T0FLRztJQUNJLHlCQUF5QixDQUFDLE9BQXlCO1FBQzlCLE9BQVEsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQzVCLE9BQVEsQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQztRQUNuRSxNQUFNLFVBQVUsR0FBZ0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUQsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO1FB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Q0FBZ0MsQ0FDOUMsTUFBd0IsRUFDeEIsd0JBQWtELEVBQ2xELE9BQWdCLEVBQ2hCLFFBQWtCO0lBRWxCLE9BQU8sQ0FDTCxNQUFNLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQzVFLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQWE7SUFDaEQsbUZBQW1GO0lBQ25GLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsSUFBSSxFQUFFO1FBQ0osQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsZ0JBQWdCLENBQUM7UUFDbEQsd0JBQXdCO1FBQ3hCLE9BQU87UUFDUCxRQUFRO0tBQ1Q7SUFDRCxVQUFVLEVBQUUsZ0NBQWdDO0NBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIFByb3ZpZGVyLFxuICBTa2lwU2VsZixcbiAgT3B0aW9uYWwsXG4gIEVtYmVkZGVkVmlld1JlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBJbmplY3RvcixcbiAgQ29tcG9uZW50UmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCwgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgVGRMb2FkaW5nQ29udGV4dCB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvbG9hZGluZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVGRMb2FkaW5nQ29tcG9uZW50LCBMb2FkaW5nU3R5bGUgfSBmcm9tICcuLi9sb2FkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJVGRMb2FkaW5nQ29uZmlnIH0gZnJvbSAnLi9sb2FkaW5nLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElJbnRlcm5hbExvYWRpbmdPcHRpb25zIGV4dGVuZHMgSVRkTG9hZGluZ0NvbmZpZyB7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgc3R5bGU/OiBMb2FkaW5nU3R5bGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxvYWRpbmdSZWYge1xuICBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPGFueT47XG4gIGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxhbnk+O1xuICBzdWJqZWN0OiBTdWJqZWN0PGFueT47XG4gIHRpbWVzOiBudW1iZXI7XG59XG5cbi8qKlxuICogTk9URTogQGludGVybmFsIHVzYWdlIG9ubHkuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUZExvYWRpbmdGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3JcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBVc2VzIG1hdGVyaWFsIGBPdmVybGF5YCBzZXJ2aWNlcyB0byBjcmVhdGUgYSBET00gZWxlbWVudCBhbmQgYXR0YWNoIHRoZSBsb2FkaW5nIGNvbXBvbmVudFxuICAgKiBpbnRvIGl0LiBMZXZlcmFnaW5nIHRoZSBzdGF0ZSBhbmQgY29uZmlndXJhdGlvbiBmcm9tIGl0LlxuICAgKlxuICAgKiBTYXZlcyBhIHJlZmVyZW5jZSBpbiBjb250ZXh0IHRvIGJlIGNhbGxlZCB3aGVuIHJlZ2lzdGVyaW5nL3Jlc29sdmluZyB0aGUgbG9hZGluZyBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUZ1bGxTY3JlZW5Db21wb25lbnQob3B0aW9uczogSVRkTG9hZGluZ0NvbmZpZyk6IElMb2FkaW5nUmVmIHtcbiAgICAoPElJbnRlcm5hbExvYWRpbmdPcHRpb25zPm9wdGlvbnMpLmhlaWdodCA9IHVuZGVmaW5lZDtcbiAgICAoPElJbnRlcm5hbExvYWRpbmdPcHRpb25zPm9wdGlvbnMpLnN0eWxlID0gTG9hZGluZ1N0eWxlLkZ1bGxTY3JlZW47XG4gICAgY29uc3QgbG9hZGluZ1JlZjogSUxvYWRpbmdSZWYgPSB0aGlzLl9pbml0aWFsaXplQ29udGV4dCgpO1xuICAgIGxldCBsb2FkaW5nID0gZmFsc2U7XG4gICAgbGV0IG92ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gICAgbG9hZGluZ1JlZi5vYnNlcnZhYmxlXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZSgocmVnaXN0ZXJlZDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChyZWdpc3RlcmVkID4gMCAmJiAhbG9hZGluZykge1xuICAgICAgICAgIGxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgIG92ZXJsYXlSZWYgPSB0aGlzLl9jcmVhdGVPdmVybGF5KCk7XG4gICAgICAgICAgbG9hZGluZ1JlZi5jb21wb25lbnRSZWYgPSBvdmVybGF5UmVmLmF0dGFjaChcbiAgICAgICAgICAgIG5ldyBDb21wb25lbnRQb3J0YWwoVGRMb2FkaW5nQ29tcG9uZW50KVxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5fbWFwT3B0aW9ucyhvcHRpb25zLCBsb2FkaW5nUmVmLmNvbXBvbmVudFJlZj8uaW5zdGFuY2UpO1xuICAgICAgICAgIGxvYWRpbmdSZWYuY29tcG9uZW50UmVmPy5pbnN0YW5jZS5zaG93KCk7XG4gICAgICAgICAgbG9hZGluZ1JlZi5jb21wb25lbnRSZWY/LmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSBlbHNlIGlmIChyZWdpc3RlcmVkIDw9IDAgJiYgbG9hZGluZykge1xuICAgICAgICAgIGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICBsb2FkaW5nUmVmLmNvbXBvbmVudFJlZj8uaW5zdGFuY2UuaGlkZSgpO1xuICAgICAgICAgIGxvYWRpbmdSZWYuY29tcG9uZW50UmVmPy5kZXN0cm95KCk7XG4gICAgICAgICAgb3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICAgICAgICBvdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgcmV0dXJuIGxvYWRpbmdSZWY7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGxvYWRpbmcgY29tcG9uZW50IGR5bmFtaWNhbGx5IGFuZCBhdHRhY2hlcyBpdCBpbnRvIHRoZSBnaXZlbiB2aWV3Q29udGFpbmVyUmVmLlxuICAgKiBMZXZlcmFnZXMgVGVtcGxhdGVQb3J0YWxzIGZyb20gbWF0ZXJpYWwgdG8gaW5qZWN0IHRoZSB0ZW1wbGF0ZSBpbnNpZGUgb2YgaXQgc28gaXQgZml0c1xuICAgKiBwZXJmZWN0bHkgd2hlbiBvdmVybGF5aW5nIGl0LlxuICAgKlxuICAgKiBTYXZlcyBhIHJlZmVyZW5jZSBpbiBjb250ZXh0IHRvIGJlIGNhbGxlZCB3aGVuIHJlZ2lzdGVyaW5nL3Jlc29sdmluZyB0aGUgbG9hZGluZyBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZU92ZXJsYXlDb21wb25lbnQoXG4gICAgb3B0aW9uczogSVRkTG9hZGluZ0NvbmZpZyxcbiAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxvYmplY3Q+XG4gICk6IElMb2FkaW5nUmVmIHtcbiAgICAoPElJbnRlcm5hbExvYWRpbmdPcHRpb25zPm9wdGlvbnMpLmhlaWdodCA9IHVuZGVmaW5lZDtcbiAgICAoPElJbnRlcm5hbExvYWRpbmdPcHRpb25zPm9wdGlvbnMpLnN0eWxlID0gTG9hZGluZ1N0eWxlLk92ZXJsYXk7XG4gICAgY29uc3QgbG9hZGluZ1JlZjogSUxvYWRpbmdSZWYgPSB0aGlzLl9jcmVhdGVDb21wb25lbnQob3B0aW9ucyk7XG4gICAgbGV0IGxvYWRpbmcgPSBmYWxzZTtcblxuICAgIGlmIChsb2FkaW5nUmVmLmNvbXBvbmVudFJlZikge1xuICAgICAgbG9hZGluZ1JlZi5jb21wb25lbnRSZWYuaW5zdGFuY2UuY29udGVudCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChcbiAgICAgICAgdGVtcGxhdGVSZWYsXG4gICAgICAgIHZpZXdDb250YWluZXJSZWZcbiAgICAgICk7XG4gICAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgICB2aWV3Q29udGFpbmVyUmVmLmluc2VydChsb2FkaW5nUmVmLmNvbXBvbmVudFJlZj8uaG9zdFZpZXcsIDApO1xuICAgIH1cblxuICAgIGxvYWRpbmdSZWYub2JzZXJ2YWJsZVxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlZ2lzdGVyZWQ6IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAocmVnaXN0ZXJlZCA+IDAgJiYgIWxvYWRpbmcpIHtcbiAgICAgICAgICBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICBsb2FkaW5nUmVmLmNvbXBvbmVudFJlZj8uaW5zdGFuY2Uuc2hvdygpO1xuICAgICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyZWQgPD0gMCAmJiBsb2FkaW5nKSB7XG4gICAgICAgICAgbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIGxvYWRpbmdSZWYuY29tcG9uZW50UmVmPy5pbnN0YW5jZS5oaWRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHJldHVybiBsb2FkaW5nUmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBsb2FkaW5nIGNvbXBvbmVudCBkeW5hbWljYWxseSBhbmQgYXR0YWNoZXMgaXQgaW50byB0aGUgZ2l2ZW4gdmlld0NvbnRhaW5lclJlZi5cbiAgICogUmVwbGFjZXMgdGhlIHRlbXBsYXRlIHdpdGggdGhlIGxvYWRpbmcgY29tcG9uZW50IGRlcGVuZGluZyBpZiBpdCB3YXMgcmVnaXN0ZXJlZCBvciByZXNvbHZlZC5cbiAgICpcbiAgICogU2F2ZXMgYSByZWZlcmVuY2UgaW4gY29udGV4dCB0byBiZSBjYWxsZWQgd2hlbiByZWdpc3RlcmluZy9yZXNvbHZpbmcgdGhlIGxvYWRpbmcgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVSZXBsYWNlQ29tcG9uZW50KFxuICAgIG9wdGlvbnM6IElUZExvYWRpbmdDb25maWcsXG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8b2JqZWN0PixcbiAgICBjb250ZXh0OiBUZExvYWRpbmdDb250ZXh0XG4gICk6IElMb2FkaW5nUmVmIHtcbiAgICBjb25zdCBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudCA9IDxIVE1MRWxlbWVudD4oXG4gICAgICB0ZW1wbGF0ZVJlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICApO1xuICAgICg8SUludGVybmFsTG9hZGluZ09wdGlvbnM+b3B0aW9ucykuaGVpZ2h0ID0gbmF0aXZlRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmdcbiAgICAgID8gbmF0aXZlRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcuc2Nyb2xsSGVpZ2h0XG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICAoPElJbnRlcm5hbExvYWRpbmdPcHRpb25zPm9wdGlvbnMpLnN0eWxlID0gTG9hZGluZ1N0eWxlLk5vbmU7XG4gICAgY29uc3QgbG9hZGluZ1JlZjogSUxvYWRpbmdSZWYgPSB0aGlzLl9jcmVhdGVDb21wb25lbnQob3B0aW9ucyk7XG4gICAgbGV0IGxvYWRpbmcgPSBmYWxzZTtcbiAgICAvLyBwYXNzaW5nIGNvbnRleHQgc28gd2hlbiB0aGUgdGVtcGxhdGUgaXMgYXR0YWNoZWQsIHdlIGNhbiBrZWVwIHRoZSByZWZlcmVuY2Ugb2YgdGhlIHZhcmlhYmxlc1xuICAgIGNvbnN0IGNvbnRlbnRSZWY6IEVtYmVkZGVkVmlld1JlZjxvYmplY3Q+ID1cbiAgICAgIHZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRlbXBsYXRlUmVmLCBjb250ZXh0KTtcbiAgICBsb2FkaW5nUmVmLm9ic2VydmFibGVcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAuc3Vic2NyaWJlKChyZWdpc3RlcmVkOiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKHJlZ2lzdGVyZWQgPiAwICYmICFsb2FkaW5nICYmIGxvYWRpbmdSZWYuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgbG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgLy8gZGV0YWNoIHRoZSBjb250ZW50IGFuZCBhdHRhY2ggdGhlIGxvYWRlciBpZiBsb2FkZXIgaXMgdGhlcmVcbiAgICAgICAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdmlld0NvbnRhaW5lclJlZi5pbmRleE9mKFxuICAgICAgICAgICAgbG9hZGluZ1JlZi5jb21wb25lbnRSZWYuaG9zdFZpZXdcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWYuZGV0YWNoKHZpZXdDb250YWluZXJSZWYuaW5kZXhPZihjb250ZW50UmVmKSk7XG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLmluc2VydChsb2FkaW5nUmVmLmNvbXBvbmVudFJlZi5ob3N0VmlldywgMCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGxvYWRpbmdSZWYuY29tcG9uZW50UmVmPy5pbnN0YW5jZS5zaG93KCk7XG4gICAgICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJlZCA8PSAwICYmIGxvYWRpbmcgJiYgbG9hZGluZ1JlZi5jb21wb25lbnRSZWYpIHtcbiAgICAgICAgICBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgbG9hZGluZ1JlZi5jb21wb25lbnRSZWY/Lmluc3RhbmNlLmhpZGUoKTtcbiAgICAgICAgICAvLyBkZXRhY2ggbG9hZGVyIGFuZCBhdHRhY2ggdGhlIGNvbnRlbnQgaWYgY29udGVudCBpcyB0aGVyZVxuICAgICAgICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSB2aWV3Q29udGFpbmVyUmVmLmluZGV4T2YoY29udGVudFJlZik7XG4gICAgICAgICAgaWYgKGluZGV4IDwgMCkge1xuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZi5kZXRhY2goXG4gICAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWYuaW5kZXhPZihsb2FkaW5nUmVmLmNvbXBvbmVudFJlZi5ob3N0VmlldylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLmluc2VydChjb250ZW50UmVmLCAwKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogTmVlZCB0byBjYWxsIFwibWFya0ZvckNoZWNrXCIgYW5kIFwiZGV0ZWN0Q2hhbmdlc1wiIG9uIGF0dGFjaGVkIHRlbXBsYXRlLCBzbyBpdHMgZGV0ZWN0ZWQgYnkgcGFyZW50IGNvbXBvbmVudCB3aGVuIGF0dGFjaGVkXG4gICAgICAgICAgICogd2l0aCBcIk9uUHVzaFwiIGNoYW5nZSBkZXRlY3Rpb25cbiAgICAgICAgICAgKi9cbiAgICAgICAgICBjb250ZW50UmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICBjb250ZW50UmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICByZXR1cm4gbG9hZGluZ1JlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZnVsbHNjcmVlbiBvdmVybGF5IGZvciB0aGUgbG9hZGluZyB1c2FnZS5cbiAgICovXG4gIHByaXZhdGUgX2NyZWF0ZU92ZXJsYXkoKTogT3ZlcmxheVJlZiB7XG4gICAgY29uc3Qgc3RhdGU6IE92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZygpO1xuICAgIHN0YXRlLmhhc0JhY2tkcm9wID0gZmFsc2U7XG4gICAgc3RhdGUucG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZ2xvYmFsKClcbiAgICAgIC5jZW50ZXJIb3Jpem9udGFsbHkoKVxuICAgICAgLmNlbnRlclZlcnRpY2FsbHkoKTtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheS5jcmVhdGUoc3RhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBnZW5lcmljIGNvbXBvbmVudCBkeW5hbWljYWxseSB3YWl0aW5nIHRvIGJlIGF0dGFjaGVkIHRvIGEgdmlld0NvbnRhaW5lclJlZi5cbiAgICovXG4gIHByaXZhdGUgX2NyZWF0ZUNvbXBvbmVudChvcHRpb25zOiBJSW50ZXJuYWxMb2FkaW5nT3B0aW9ucyk6IElMb2FkaW5nUmVmIHtcbiAgICBjb25zdCBjb21wUmVmOiBJTG9hZGluZ1JlZiA9IHRoaXMuX2luaXRpYWxpemVDb250ZXh0KCk7XG4gICAgY29tcFJlZi5jb21wb25lbnRSZWYgPSB0aGlzLl9jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgIC5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShUZExvYWRpbmdDb21wb25lbnQpXG4gICAgICAuY3JlYXRlKHRoaXMuX2luamVjdG9yKTtcbiAgICB0aGlzLl9tYXBPcHRpb25zKG9wdGlvbnMsIGNvbXBSZWYuY29tcG9uZW50UmVmLmluc3RhbmNlKTtcbiAgICByZXR1cm4gY29tcFJlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIGNvbnRleHQgZm9yIGxvYWRpbmcgY29tcG9uZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZUNvbnRleHQoKTogSUxvYWRpbmdSZWYge1xuICAgIGNvbnN0IHN1YmplY3Q6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgICByZXR1cm4ge1xuICAgICAgb2JzZXJ2YWJsZTogc3ViamVjdC5hc09ic2VydmFibGUoKSxcbiAgICAgIHN1YmplY3QsXG4gICAgICBjb21wb25lbnRSZWY6IHVuZGVmaW5lZCxcbiAgICAgIHRpbWVzOiAwLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTWFwcyBjb25maWd1cmF0aW9uIHRvIHRoZSBsb2FkaW5nIGNvbXBvbmVudCBpbnN0YW5jZS5cbiAgICovXG4gIHByaXZhdGUgX21hcE9wdGlvbnMoXG4gICAgb3B0aW9uczogSUludGVybmFsTG9hZGluZ09wdGlvbnMsXG4gICAgaW5zdGFuY2U6IFRkTG9hZGluZ0NvbXBvbmVudFxuICApOiB2b2lkIHtcbiAgICBpZiAob3B0aW9ucy5zdHlsZSkge1xuICAgICAgaW5zdGFuY2Uuc3R5bGUgPSBvcHRpb25zLnN0eWxlO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnR5cGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaW5zdGFuY2UudHlwZSA9IG9wdGlvbnMudHlwZTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuaGVpZ2h0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGluc3RhbmNlLmhlaWdodCA9IG9wdGlvbnMuaGVpZ2h0O1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5tb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGluc3RhbmNlLm1vZGUgPSBvcHRpb25zLm1vZGU7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmNvbG9yICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGluc3RhbmNlLmNvbG9yID0gb3B0aW9ucy5jb2xvcjtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIExPQURJTkdfRkFDVE9SWV9QUk9WSURFUl9GQUNUT1JZKFxuICBwYXJlbnQ6IFRkTG9hZGluZ0ZhY3RvcnksXG4gIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBvdmVybGF5OiBPdmVybGF5LFxuICBpbmplY3RvcjogSW5qZWN0b3Jcbik6IFRkTG9hZGluZ0ZhY3Rvcnkge1xuICByZXR1cm4gKFxuICAgIHBhcmVudCB8fCBuZXcgVGRMb2FkaW5nRmFjdG9yeShjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIG92ZXJsYXksIGluamVjdG9yKVxuICApO1xufVxuXG5leHBvcnQgY29uc3QgTE9BRElOR19GQUNUT1JZX1BST1ZJREVSOiBQcm92aWRlciA9IHtcbiAgLy8gSWYgdGhlcmUgaXMgYWxyZWFkeSBhIHNlcnZpY2UgYXZhaWxhYmxlLCB1c2UgdGhhdC4gT3RoZXJ3aXNlLCBwcm92aWRlIGEgbmV3IG9uZS5cbiAgcHJvdmlkZTogVGRMb2FkaW5nRmFjdG9yeSxcbiAgZGVwczogW1xuICAgIFtuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIFRkTG9hZGluZ0ZhY3RvcnldLFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBPdmVybGF5LFxuICAgIEluamVjdG9yLFxuICBdLFxuICB1c2VGYWN0b3J5OiBMT0FESU5HX0ZBQ1RPUllfUFJPVklERVJfRkFDVE9SWSxcbn07XG4iXX0=
@@ -0,0 +1,213 @@
1
+ import { Injectable, SkipSelf, Optional } from '@angular/core';
2
+ import { LoadingMode, LoadingStrategy, LoadingType, } from '../loading.component';
3
+ import { TdLoadingFactory } from './loading.factory';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./loading.factory";
6
+ export class TdLoadingConfig {
7
+ constructor(config) {
8
+ this.name = config.name;
9
+ if (!this.name) {
10
+ throw Error('Name is required for [TdLoading] configuration.');
11
+ }
12
+ this.mode = config.mode ? config.mode : LoadingMode.Indeterminate;
13
+ this.type = config.type ? config.type : LoadingType.Circular;
14
+ this.color = config.color ? config.color : 'primary';
15
+ }
16
+ }
17
+ export class TdLoadingDirectiveConfig extends TdLoadingConfig {
18
+ constructor(config) {
19
+ super(config);
20
+ this.strategy = config.strategy ? config.strategy : LoadingStrategy.Replace;
21
+ }
22
+ }
23
+ export class TdLoadingService {
24
+ constructor(_loadingFactory) {
25
+ this._loadingFactory = _loadingFactory;
26
+ this._context = {};
27
+ this._timeouts = {};
28
+ this.create({
29
+ name: 'td-loading-main',
30
+ });
31
+ }
32
+ /**
33
+ * params:
34
+ * - config: ILoadingDirectiveConfig
35
+ * - viewContainerRef: ViewContainerRef
36
+ * - templateRef: TemplateRef<Object>
37
+ *
38
+ * Creates an replace loading mask and attaches it to the viewContainerRef.
39
+ * Replaces the templateRef with the mask when a request is registered on it.
40
+ *
41
+ * NOTE: @internal usage only.
42
+ */
43
+ createComponent(config, viewContainerRef, templateRef, context) {
44
+ const directiveConfig = new TdLoadingDirectiveConfig(config);
45
+ if (this._context[directiveConfig.name]) {
46
+ throw Error(`Name duplication: [TdLoading] directive has a name conflict with ${directiveConfig.name}.`);
47
+ }
48
+ if (directiveConfig.strategy === LoadingStrategy.Overlay) {
49
+ this._context[directiveConfig.name] =
50
+ this._loadingFactory.createOverlayComponent(directiveConfig, viewContainerRef, templateRef);
51
+ }
52
+ else {
53
+ this._context[directiveConfig.name] =
54
+ this._loadingFactory.createReplaceComponent(directiveConfig, viewContainerRef, templateRef, context);
55
+ }
56
+ return this._context[directiveConfig.name];
57
+ }
58
+ /**
59
+ * params:
60
+ * - config: ITdLoadingConfig
61
+ *
62
+ * Creates a fullscreen loading mask and attaches it to the DOM with the given configuration.
63
+ * Only displayed when the mask has a request registered on it.
64
+ */
65
+ create(config) {
66
+ const fullscreenConfig = new TdLoadingConfig(config);
67
+ this.removeComponent(fullscreenConfig.name);
68
+ this._context[fullscreenConfig.name] =
69
+ this._loadingFactory.createFullScreenComponent(fullscreenConfig);
70
+ }
71
+ /**
72
+ * params:
73
+ * - name: string
74
+ *
75
+ * Removes `loading` component from service context.
76
+ */
77
+ removeComponent(name) {
78
+ if (this._context[name]) {
79
+ this._context[name].subject.unsubscribe();
80
+ if (this._context[name].componentRef) {
81
+ this._context[name].componentRef?.destroy();
82
+ }
83
+ delete this._context[name];
84
+ }
85
+ }
86
+ /**
87
+ * params:
88
+ * - name: string
89
+ * - registers?: number
90
+ * returns: true if successful
91
+ *
92
+ * Resolves a request for the loading mask referenced by the name parameter.
93
+ * Can optionally pass registers argument to set a number of register calls.
94
+ *
95
+ * If no paramemeters are used, then default main mask will be used.
96
+ *
97
+ * e.g. loadingService.register()
98
+ */
99
+ register(name = 'td-loading-main', registers = 1) {
100
+ // try registering into the service if the loading component has been instanciated or if it exists.
101
+ if (this._context[name]) {
102
+ registers = registers < 1 ? 1 : registers;
103
+ this._context[name].times += registers;
104
+ this._context[name].subject.next(this._context[name].times);
105
+ return true;
106
+ }
107
+ else {
108
+ // if it doesnt exist, set a timeout so its registered after change detection happens
109
+ // this in case "register" occured on the `ngOnInit` lifehook cycle.
110
+ if (!this._timeouts[name]) {
111
+ this._timeouts[name] = setTimeout(() => {
112
+ this.register(name, registers);
113
+ });
114
+ }
115
+ else {
116
+ // if it timeout occured and still doesnt exist, it means the tiemout wasnt needed so we clear it.
117
+ this._clearTimeout(name);
118
+ }
119
+ }
120
+ return false;
121
+ }
122
+ /**
123
+ * params:
124
+ * - name: string
125
+ * - resolves?: number
126
+ * returns: true if successful
127
+ *
128
+ * Resolves a request for the loading mask referenced by the name parameter.
129
+ * Can optionally pass resolves argument to set a number of resolve calls.
130
+ *
131
+ * If no paramemeters are used, then default main mask will be used.
132
+ *
133
+ * e.g. loadingService.resolve()
134
+ */
135
+ resolve(name = 'td-loading-main', resolves = 1) {
136
+ // clear timeout if the loading component is "resolved" before its "registered"
137
+ this._clearTimeout(name);
138
+ if (this._context[name]) {
139
+ resolves = resolves < 1 ? 1 : resolves;
140
+ if (this._context[name].times) {
141
+ let times = this._context[name].times;
142
+ times -= resolves;
143
+ this._context[name].times = times < 0 ? 0 : times;
144
+ }
145
+ this._context[name].subject?.next(this._context[name].times);
146
+ return true;
147
+ }
148
+ return false;
149
+ }
150
+ /**
151
+ * params:
152
+ * - name: string
153
+ * returns: true if successful
154
+ *
155
+ * Resolves all request for the loading mask referenced by the name parameter.
156
+ *
157
+ * If no paramemeters are used, then default main mask will be used.
158
+ *
159
+ * e.g. loadingService.resolveAll()
160
+ */
161
+ resolveAll(name = 'td-loading-main') {
162
+ // clear timeout if the loading component is "resolved" before its "registered"
163
+ this._clearTimeout(name);
164
+ if (this._context[name]) {
165
+ this._context[name].times = 0;
166
+ this._context[name].subject?.next(this._context[name].times);
167
+ return true;
168
+ }
169
+ return false;
170
+ }
171
+ /**
172
+ * params:
173
+ * - name: string
174
+ * - value: number
175
+ * returns: true if successful
176
+ *
177
+ * Set value on a loading mask referenced by the name parameter.
178
+ * Usage only available if its mode is 'determinate' and if loading is showing.
179
+ */
180
+ setValue(name, value) {
181
+ if (this._context[name]) {
182
+ const instance = this._context[name].componentRef?.instance;
183
+ if (instance.mode === LoadingMode.Determinate && instance.animation) {
184
+ instance.value = value;
185
+ return true;
186
+ }
187
+ }
188
+ return false;
189
+ }
190
+ /**
191
+ * Clears timeout linked to the name.
192
+ * @param name Name of the loading component to be cleared
193
+ */
194
+ _clearTimeout(name) {
195
+ clearTimeout(this._timeouts[name]);
196
+ delete this._timeouts[name];
197
+ }
198
+ }
199
+ TdLoadingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdLoadingService, deps: [{ token: i1.TdLoadingFactory }], target: i0.ɵɵFactoryTarget.Injectable });
200
+ TdLoadingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdLoadingService });
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: TdLoadingService, decorators: [{
202
+ type: Injectable
203
+ }], ctorParameters: function () { return [{ type: i1.TdLoadingFactory }]; } });
204
+ export function LOADING_PROVIDER_FACTORY(parent, loadingFactory) {
205
+ return parent || new TdLoadingService(loadingFactory);
206
+ }
207
+ export const LOADING_PROVIDER = {
208
+ // If there is already a service available, use that. Otherwise, provide a new one.
209
+ provide: TdLoadingService,
210
+ deps: [[new Optional(), new SkipSelf(), TdLoadingService], TdLoadingFactory],
211
+ useFactory: LOADING_PROVIDER_FACTORY,
212
+ };
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2xvYWRpbmcvc3JjL3NlcnZpY2VzL2xvYWRpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJekUsT0FBTyxFQUVMLFdBQVcsRUFDWCxlQUFlLEVBQ2YsV0FBVyxHQUNaLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGdCQUFnQixFQUFlLE1BQU0sbUJBQW1CLENBQUM7OztBQVNsRSxNQUFNLE9BQU8sZUFBZTtJQU0xQixZQUFZLE1BQXdCO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLE1BQU0sS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7U0FDaEU7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7UUFDbEUsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO1FBQzdELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3ZELENBQUM7Q0FDRjtBQU1ELE1BQU0sT0FBTyx3QkFDWCxTQUFRLGVBQWU7SUFLdkIsWUFBWSxNQUFpQztRQUMzQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7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Q3ZCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGFBQWEsQ0FBQyxJQUFZO1FBQ2hDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7OzZHQTNNVSxnQkFBZ0I7aUhBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVOztBQStNWCxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLE1BQXdCLEVBQ3hCLGNBQWdDO0lBRWhDLE9BQU8sTUFBTSxJQUFJLElBQUksZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFhO0lBQ3hDLG1GQUFtRjtJQUNuRixPQUFPLEVBQUUsZ0JBQWdCO0lBQ3pCLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsZ0JBQWdCLENBQUM7SUFDNUUsVUFBVSxFQUFFLHdCQUF3QjtDQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgUHJvdmlkZXIsIFNraXBTZWxmLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmlld0NvbnRhaW5lclJlZiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVGRMb2FkaW5nQ29udGV4dCB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvbG9hZGluZy5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgVGRMb2FkaW5nQ29tcG9uZW50LFxuICBMb2FkaW5nTW9kZSxcbiAgTG9hZGluZ1N0cmF0ZWd5LFxuICBMb2FkaW5nVHlwZSxcbn0gZnJvbSAnLi4vbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGRMb2FkaW5nRmFjdG9yeSwgSUxvYWRpbmdSZWYgfSBmcm9tICcuL2xvYWRpbmcuZmFjdG9yeSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRkTG9hZGluZ0NvbmZpZyB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZT86IExvYWRpbmdUeXBlO1xuICBtb2RlPzogTG9hZGluZ01vZGU7XG4gIGNvbG9yPzogJ3ByaW1hcnknIHwgJ2FjY2VudCcgfCAnd2Fybic7XG59XG5cbmV4cG9ydCBjbGFzcyBUZExvYWRpbmdDb25maWcgaW1wbGVtZW50cyBJVGRMb2FkaW5nQ29uZmlnIHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlPzogTG9hZGluZ1R5cGU7XG4gIG1vZGU/OiBMb2FkaW5nTW9kZTtcbiAgY29sb3I/OiAncHJpbWFyeScgfCAnYWNjZW50JyB8ICd3YXJuJztcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IElUZExvYWRpbmdDb25maWcpIHtcbiAgICB0aGlzLm5hbWUgPSBjb25maWcubmFtZTtcbiAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ05hbWUgaXMgcmVxdWlyZWQgZm9yIFtUZExvYWRpbmddIGNvbmZpZ3VyYXRpb24uJyk7XG4gICAgfVxuICAgIHRoaXMubW9kZSA9IGNvbmZpZy5tb2RlID8gY29uZmlnLm1vZGUgOiBMb2FkaW5nTW9kZS5JbmRldGVybWluYXRlO1xuICAgIHRoaXMudHlwZSA9IGNvbmZpZy50eXBlID8gY29uZmlnLnR5cGUgOiBMb2FkaW5nVHlwZS5DaXJjdWxhcjtcbiAgICB0aGlzLmNvbG9yID0gY29uZmlnLmNvbG9yID8gY29uZmlnLmNvbG9yIDogJ3ByaW1hcnknO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRkTG9hZGluZ0RpcmVjdGl2ZUNvbmZpZyBleHRlbmRzIElUZExvYWRpbmdDb25maWcge1xuICBzdHJhdGVneT86IExvYWRpbmdTdHJhdGVneTtcbn1cblxuZXhwb3J0IGNsYXNzIFRkTG9hZGluZ0RpcmVjdGl2ZUNvbmZpZ1xuICBleHRlbmRzIFRkTG9hZGluZ0NvbmZpZ1xuICBpbXBsZW1lbnRzIElUZExvYWRpbmdEaXJlY3RpdmVDb25maWdcbntcbiAgc3RyYXRlZ3k6IExvYWRpbmdTdHJhdGVneTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IElUZExvYWRpbmdEaXJlY3RpdmVDb25maWcpIHtcbiAgICBzdXBlcihjb25maWcpO1xuICAgIHRoaXMuc3RyYXRlZ3kgPSBjb25maWcuc3RyYXRlZ3kgPyBjb25maWcuc3RyYXRlZ3kgOiBMb2FkaW5nU3RyYXRlZ3kuUmVwbGFjZTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGRMb2FkaW5nU2VydmljZSB7XG4gIHByaXZhdGUgX2NvbnRleHQ6IHsgW2tleTogc3RyaW5nXTogSUxvYWRpbmdSZWYgfSA9IHt9O1xuICBwcml2YXRlIF90aW1lb3V0czogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2xvYWRpbmdGYWN0b3J5OiBUZExvYWRpbmdGYWN0b3J5KSB7XG4gICAgdGhpcy5jcmVhdGUoe1xuICAgICAgbmFtZTogJ3RkLWxvYWRpbmctbWFpbicsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogcGFyYW1zOlxuICAgKiAtIGNvbmZpZzogSUxvYWRpbmdEaXJlY3RpdmVDb25maWdcbiAgICogLSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICAqIC0gdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPE9iamVjdD5cbiAgICpcbiAgICogQ3JlYXRlcyBhbiByZXBsYWNlIGxvYWRpbmcgbWFzayBhbmQgYXR0YWNoZXMgaXQgdG8gdGhlIHZpZXdDb250YWluZXJSZWYuXG4gICAqIFJlcGxhY2VzIHRoZSB0ZW1wbGF0ZVJlZiB3aXRoIHRoZSBtYXNrIHdoZW4gYSByZXF1ZXN0IGlzIHJlZ2lzdGVyZWQgb24gaXQuXG4gICAqXG4gICAqIE5PVEU6IEBpbnRlcm5hbCB1c2FnZSBvbmx5LlxuICAgKi9cbiAgY3JlYXRlQ29tcG9uZW50KFxuICAgIGNvbmZpZzogSVRkTG9hZGluZ0RpcmVjdGl2ZUNvbmZpZyxcbiAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxvYmplY3Q+LFxuICAgIGNvbnRleHQ6IFRkTG9hZGluZ0NvbnRleHRcbiAgKTogSUxvYWRpbmdSZWYge1xuICAgIGNvbnN0IGRpcmVjdGl2ZUNvbmZpZzogVGRMb2FkaW5nRGlyZWN0aXZlQ29uZmlnID1cbiAgICAgIG5ldyBUZExvYWRpbmdEaXJlY3RpdmVDb25maWcoY29uZmlnKTtcbiAgICBpZiAodGhpcy5fY29udGV4dFtkaXJlY3RpdmVDb25maWcubmFtZV0pIHtcbiAgICAgIHRocm93IEVycm9yKFxuICAgICAgICBgTmFtZSBkdXBsaWNhdGlvbjogW1RkTG9hZGluZ10gZGlyZWN0aXZlIGhhcyBhIG5hbWUgY29uZmxpY3Qgd2l0aCAke2RpcmVjdGl2ZUNvbmZpZy5uYW1lfS5gXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoZGlyZWN0aXZlQ29uZmlnLnN0cmF0ZWd5ID09PSBMb2FkaW5nU3RyYXRlZ3kuT3ZlcmxheSkge1xuICAgICAgdGhpcy5fY29udGV4dFtkaXJlY3RpdmVDb25maWcubmFtZV0gPVxuICAgICAgICB0aGlzLl9sb2FkaW5nRmFjdG9yeS5jcmVhdGVPdmVybGF5Q29tcG9uZW50KFxuICAgICAgICAgIGRpcmVjdGl2ZUNvbmZpZyxcbiAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgIHRlbXBsYXRlUmVmXG4gICAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2NvbnRleHRbZGlyZWN0aXZlQ29uZmlnLm5hbWVdID1cbiAgICAgICAgdGhpcy5fbG9hZGluZ0ZhY3RvcnkuY3JlYXRlUmVwbGFjZUNvbXBvbmVudChcbiAgICAgICAgICBkaXJlY3RpdmVDb25maWcsXG4gICAgICAgICAgdmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICB0ZW1wbGF0ZVJlZixcbiAgICAgICAgICBjb250ZXh0XG4gICAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jb250ZXh0W2RpcmVjdGl2ZUNvbmZpZy5uYW1lXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBwYXJhbXM6XG4gICAqIC0gY29uZmlnOiBJVGRMb2FkaW5nQ29uZmlnXG4gICAqXG4gICAqIENyZWF0ZXMgYSBmdWxsc2NyZWVuIGxvYWRpbmcgbWFzayBhbmQgYXR0YWNoZXMgaXQgdG8gdGhlIERPTSB3aXRoIHRoZSBnaXZlbiBjb25maWd1cmF0aW9uLlxuICAgKiBPbmx5IGRpc3BsYXllZCB3aGVuIHRoZSBtYXNrIGhhcyBhIHJlcXVlc3QgcmVnaXN0ZXJlZCBvbiBpdC5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGUoY29uZmlnOiBJVGRMb2FkaW5nQ29uZmlnKTogdm9pZCB7XG4gICAgY29uc3QgZnVsbHNjcmVlbkNvbmZpZzogVGRMb2FkaW5nQ29uZmlnID0gbmV3IFRkTG9hZGluZ0NvbmZpZyhjb25maWcpO1xuICAgIHRoaXMucmVtb3ZlQ29tcG9uZW50KGZ1bGxzY3JlZW5Db25maWcubmFtZSk7XG4gICAgdGhpcy5fY29udGV4dFtmdWxsc2NyZWVuQ29uZmlnLm5hbWVdID1cbiAgICAgIHRoaXMuX2xvYWRpbmdGYWN0b3J5LmNyZWF0ZUZ1bGxTY3JlZW5Db21wb25lbnQoZnVsbHNjcmVlbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogcGFyYW1zOlxuICAgKiAtIG5hbWU6IHN0cmluZ1xuICAgKlxuICAgKiBSZW1vdmVzIGBsb2FkaW5nYCBjb21wb25lbnQgZnJvbSBzZXJ2aWNlIGNvbnRleHQuXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlQ29tcG9uZW50KG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9jb250ZXh0W25hbWVdKSB7XG4gICAgICB0aGlzLl9jb250ZXh0W25hbWVdLnN1YmplY3QudW5zdWJzY3JpYmUoKTtcbiAgICAgIGlmICh0aGlzLl9jb250ZXh0W25hbWVdLmNvbXBvbmVudFJlZikge1xuICAgICAgICB0aGlzLl9jb250ZXh0W25hbWVdLmNvbXBvbmVudFJlZj8uZGVzdHJveSgpO1xuICAgICAgfVxuICAgICAgZGVsZXRlIHRoaXMuX2NvbnRleHRbbmFtZV07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHBhcmFtczpcbiAgICogLSBuYW1lOiBzdHJpbmdcbiAgICogLSByZWdpc3RlcnM/OiBudW1iZXJcbiAgICogcmV0dXJuczogdHJ1ZSBpZiBzdWNjZXNzZnVsXG4gICAqXG4gICAqIFJlc29sdmVzIGEgcmVxdWVzdCBmb3IgdGhlIGxvYWRpbmcgbWFzayByZWZlcmVuY2VkIGJ5IHRoZSBuYW1lIHBhcmFtZXRlci5cbiAgICogQ2FuIG9wdGlvbmFsbHkgcGFzcyByZWdpc3RlcnMgYXJndW1lbnQgdG8gc2V0IGEgbnVtYmVyIG9mIHJlZ2lzdGVyIGNhbGxzLlxuICAgKlxuICAgKiBJZiBubyBwYXJhbWVtZXRlcnMgYXJlIHVzZWQsIHRoZW4gZGVmYXVsdCBtYWluIG1hc2sgd2lsbCBiZSB1c2VkLlxuICAgKlxuICAgKiBlLmcuIGxvYWRpbmdTZXJ2aWNlLnJlZ2lzdGVyKClcbiAgICovXG4gIHB1YmxpYyByZWdpc3RlcihcbiAgICBuYW1lOiBzdHJpbmcgPSAndGQtbG9hZGluZy1tYWluJyxcbiAgICByZWdpc3RlcnM6IG51bWJlciA9IDFcbiAgKTogYm9vbGVhbiB7XG4gICAgLy8gdHJ5IHJlZ2lzdGVyaW5nIGludG8gdGhlIHNlcnZpY2UgaWYgdGhlIGxvYWRpbmcgY29tcG9uZW50IGhhcyBiZWVuIGluc3RhbmNpYXRlZCBvciBpZiBpdCBleGlzdHMuXG4gICAgaWYgKHRoaXMuX2NvbnRleHRbbmFtZV0pIHtcbiAgICAgIHJlZ2lzdGVycyA9IHJlZ2lzdGVycyA8IDEgPyAxIDogcmVnaXN0ZXJzO1xuICAgICAgdGhpcy5fY29udGV4dFtuYW1lXS50aW1lcyArPSByZWdpc3RlcnM7XG4gICAgICB0aGlzLl9jb250ZXh0W25hbWVdLnN1YmplY3QubmV4dCh0aGlzLl9jb250ZXh0W25hbWVdLnRpbWVzKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBpZiBpdCBkb2VzbnQgZXhpc3QsIHNldCBhIHRpbWVvdXQgc28gaXRzIHJlZ2lzdGVyZWQgYWZ0ZXIgY2hhbmdlIGRldGVjdGlvbiBoYXBwZW5zXG4gICAgICAvLyB0aGlzIGluIGNhc2UgXCJyZWdpc3RlclwiIG9jY3VyZWQgb24gdGhlIGBuZ09uSW5pdGAgbGlmZWhvb2sgY3ljbGUuXG4gICAgICBpZiAoIXRoaXMuX3RpbWVvdXRzW25hbWVdKSB7XG4gICAgICAgIHRoaXMuX3RpbWVvdXRzW25hbWVdID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZWdpc3RlcihuYW1lLCByZWdpc3RlcnMpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGlmIGl0IHRpbWVvdXQgb2NjdXJlZCBhbmQgc3RpbGwgZG9lc250IGV4aXN0LCBpdCBtZWFucyB0aGUgdGllbW91dCB3YXNudCBuZWVkZWQgc28gd2UgY2xlYXIgaXQuXG4gICAgICAgIHRoaXMuX2NsZWFyVGltZW91dChuYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIHBhcmFtczpcbiAgICogLSBuYW1lOiBzdHJpbmdcbiAgICogLSByZXNvbHZlcz86IG51bWJlclxuICAgKiByZXR1cm5zOiB0cnVlIGlmIHN1Y2Nlc3NmdWxcbiAgICpcbiAgICogUmVzb2x2ZXMgYSByZXF1ZXN0IGZvciB0aGUgbG9hZGluZyBtYXNrIHJlZmVyZW5jZWQgYnkgdGhlIG5hbWUgcGFyYW1ldGVyLlxuICAgKiBDYW4gb3B0aW9uYWxseSBwYXNzIHJlc29sdmVzIGFyZ3VtZW50IHRvIHNldCBhIG51bWJlciBvZiByZXNvbHZlIGNhbGxzLlxuICAgKlxuICAgKiBJZiBubyBwYXJhbWVtZXRlcnMgYXJlIHVzZWQsIHRoZW4gZGVmYXVsdCBtYWluIG1hc2sgd2lsbCBiZSB1c2VkLlxuICAgKlxuICAgKiBlLmcuIGxvYWRpbmdTZXJ2aWNlLnJlc29sdmUoKVxuICAgKi9cbiAgcHVibGljIHJlc29sdmUoXG4gICAgbmFtZTogc3RyaW5nID0gJ3RkLWxvYWRpbmctbWFpbicsXG4gICAgcmVzb2x2ZXM6IG51bWJlciA9IDFcbiAgKTogYm9vbGVhbiB7XG4gICAgLy8gY2xlYXIgdGltZW91dCBpZiB0aGUgbG9hZGluZyBjb21wb25lbnQgaXMgXCJyZXNvbHZlZFwiIGJlZm9yZSBpdHMgXCJyZWdpc3RlcmVkXCJcbiAgICB0aGlzLl9jbGVhclRpbWVvdXQobmFtZSk7XG4gICAgaWYgKHRoaXMuX2NvbnRleHRbbmFtZV0pIHtcbiAgICAgIHJlc29sdmVzID0gcmVzb2x2ZXMgPCAxID8gMSA6IHJlc29sdmVzO1xuICAgICAgaWYgKHRoaXMuX2NvbnRleHRbbmFtZV0udGltZXMpIHtcbiAgICAgICAgbGV0IHRpbWVzOiBudW1iZXIgPSB0aGlzLl9jb250ZXh0W25hbWVdLnRpbWVzO1xuICAgICAgICB0aW1lcyAtPSByZXNvbHZlcztcbiAgICAgICAgdGhpcy5fY29udGV4dFtuYW1lXS50aW1lcyA9IHRpbWVzIDwgMCA/IDAgOiB0aW1lcztcbiAgICAgIH1cbiAgICAgIHRoaXMuX2NvbnRleHRbbmFtZV0uc3ViamVjdD8ubmV4dCh0aGlzLl9jb250ZXh0W25hbWVdLnRpbWVzKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogcGFyYW1zOlxuICAgKiAtIG5hbWU6IHN0cmluZ1xuICAgKiByZXR1cm5zOiB0cnVlIGlmIHN1Y2Nlc3NmdWxcbiAgICpcbiAgICogUmVzb2x2ZXMgYWxsIHJlcXVlc3QgZm9yIHRoZSBsb2FkaW5nIG1hc2sgcmVmZXJlbmNlZCBieSB0aGUgbmFtZSBwYXJhbWV0ZXIuXG4gICAqXG4gICAqIElmIG5vIHBhcmFtZW1ldGVycyBhcmUgdXNlZCwgdGhlbiBkZWZhdWx0IG1haW4gbWFzayB3aWxsIGJlIHVzZWQuXG4gICAqXG4gICAqIGUuZy4gbG9hZGluZ1NlcnZpY2UucmVzb2x2ZUFsbCgpXG4gICAqL1xuICBwdWJsaWMgcmVzb2x2ZUFsbChuYW1lOiBzdHJpbmcgPSAndGQtbG9hZGluZy1tYWluJyk6IGJvb2xlYW4ge1xuICAgIC8vIGNsZWFyIHRpbWVvdXQgaWYgdGhlIGxvYWRpbmcgY29tcG9uZW50IGlzIFwicmVzb2x2ZWRcIiBiZWZvcmUgaXRzIFwicmVnaXN0ZXJlZFwiXG4gICAgdGhpcy5fY2xlYXJUaW1lb3V0KG5hbWUpO1xuICAgIGlmICh0aGlzLl9jb250ZXh0W25hbWVdKSB7XG4gICAgICB0aGlzLl9jb250ZXh0W25hbWVdLnRpbWVzID0gMDtcbiAgICAgIHRoaXMuX2NvbnRleHRbbmFtZV0uc3ViamVjdD8ubmV4dCh0aGlzLl9jb250ZXh0W25hbWVdLnRpbWVzKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogcGFyYW1zOlxuICAgKiAtIG5hbWU6IHN0cmluZ1xuICAgKiAtIHZhbHVlOiBudW1iZXJcbiAgICogcmV0dXJuczogdHJ1ZSBpZiBzdWNjZXNzZnVsXG4gICAqXG4gICAqIFNldCB2YWx1ZSBvbiBhIGxvYWRpbmcgbWFzayByZWZlcmVuY2VkIGJ5IHRoZSBuYW1lIHBhcmFtZXRlci5cbiAgICogVXNhZ2Ugb25seSBhdmFpbGFibGUgaWYgaXRzIG1vZGUgaXMgJ2RldGVybWluYXRlJyBhbmQgaWYgbG9hZGluZyBpcyBzaG93aW5nLlxuICAgKi9cbiAgcHVibGljIHNldFZhbHVlKG5hbWU6IHN0cmluZywgdmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9jb250ZXh0W25hbWVdKSB7XG4gICAgICBjb25zdCBpbnN0YW5jZTogVGRMb2FkaW5nQ29tcG9uZW50ID1cbiAgICAgICAgdGhpcy5fY29udGV4dFtuYW1lXS5jb21wb25lbnRSZWY/Lmluc3RhbmNlO1xuICAgICAgaWYgKGluc3RhbmNlLm1vZGUgPT09IExvYWRpbmdNb2RlLkRldGVybWluYXRlICYmIGluc3RhbmNlLmFuaW1hdGlvbikge1xuICAgICAgICBpbnN0YW5jZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aW1lb3V0IGxpbmtlZCB0byB0aGUgbmFtZS5cbiAgICogQHBhcmFtIG5hbWUgTmFtZSBvZiB0aGUgbG9hZGluZyBjb21wb25lbnQgdG8gYmUgY2xlYXJlZFxuICAgKi9cbiAgcHJpdmF0ZSBfY2xlYXJUaW1lb3V0KG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0c1tuYW1lXSk7XG4gICAgZGVsZXRlIHRoaXMuX3RpbWVvdXRzW25hbWVdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBMT0FESU5HX1BST1ZJREVSX0ZBQ1RPUlkoXG4gIHBhcmVudDogVGRMb2FkaW5nU2VydmljZSxcbiAgbG9hZGluZ0ZhY3Rvcnk6IFRkTG9hZGluZ0ZhY3Rvcnlcbik6IFRkTG9hZGluZ1NlcnZpY2Uge1xuICByZXR1cm4gcGFyZW50IHx8IG5ldyBUZExvYWRpbmdTZXJ2aWNlKGxvYWRpbmdGYWN0b3J5KTtcbn1cblxuZXhwb3J0IGNvbnN0IExPQURJTkdfUFJPVklERVI6IFByb3ZpZGVyID0ge1xuICAvLyBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgc2VydmljZSBhdmFpbGFibGUsIHVzZSB0aGF0LiBPdGhlcndpc2UsIHByb3ZpZGUgYSBuZXcgb25lLlxuICBwcm92aWRlOiBUZExvYWRpbmdTZXJ2aWNlLFxuICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgVGRMb2FkaW5nU2VydmljZV0sIFRkTG9hZGluZ0ZhY3RvcnldLFxuICB1c2VGYWN0b3J5OiBMT0FESU5HX1BST1ZJREVSX0ZBQ1RPUlksXG59O1xuIl19
@@ -4,8 +4,8 @@ import * as i2 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import * as i1 from '@angular/material/icon';
6
6
  import { MatIconModule } from '@angular/material/icon';
7
- import { Subscription, fromEvent } from 'rxjs';
8
- import { debounceTime, startWith } from 'rxjs/operators';
7
+ import { Subject, fromEvent } from 'rxjs';
8
+ import { debounceTime, takeUntil, startWith } from 'rxjs/operators';
9
9
 
10
10
  class TdBreadcrumbComponent {
11
11
  constructor(_elementRef, _changeDetectorRef) {
@@ -99,9 +99,9 @@ class TdBreadcrumbsComponent {
99
99
  constructor(_elementRef, _changeDetectorRef) {
100
100
  this._elementRef = _elementRef;
101
101
  this._changeDetectorRef = _changeDetectorRef;
102
- this._resizeSubscription = Subscription.EMPTY;
103
102
  this._resizing = false;
104
103
  this._separatorIcon = 'chevron_right';
104
+ this._destroy$ = new Subject();
105
105
  this.tdBreadCrumbsClass = true;
106
106
  // the list of hidden breadcrumbs not shown right now (responsive)
107
107
  this.hiddenBreadcrumbs = [];
@@ -117,8 +117,8 @@ class TdBreadcrumbsComponent {
117
117
  return this._separatorIcon;
118
118
  }
119
119
  ngOnInit() {
120
- this._resizeSubscription = fromEvent(window, 'resize')
121
- .pipe(debounceTime(10))
120
+ fromEvent(window, 'resize')
121
+ .pipe(debounceTime(10), takeUntil(this._destroy$))
122
122
  .subscribe(() => {
123
123
  if (!this._resizing) {
124
124
  this._resizing = true;
@@ -131,7 +131,9 @@ class TdBreadcrumbsComponent {
131
131
  });
132
132
  }
133
133
  ngAfterContentInit() {
134
- this._contentChildrenSub = this._breadcrumbs.changes
134
+ // Note: doesn't need to unsubscribe since `QueryList.changes`
135
+ // gets completed by Angular when the view is destroyed.
136
+ this._breadcrumbs.changes
135
137
  .pipe(startWith(this._breadcrumbs))
136
138
  .subscribe(() => {
137
139
  this.setCrumbIcons();
@@ -139,8 +141,7 @@ class TdBreadcrumbsComponent {
139
141
  });
140
142
  }
141
143
  ngOnDestroy() {
142
- this._resizeSubscription.unsubscribe();
143
- this._contentChildrenSub.unsubscribe();
144
+ this._destroy$.next();
144
145
  }
145
146
  /*
146
147
  * Current width of the element container