@covalent/core 3.1.2 → 4.0.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.
- package/bundles/covalent-core-user-profile.umd.js +1 -9
- package/bundles/covalent-core-user-profile.umd.js.map +1 -1
- package/bundles/covalent-core-user-profile.umd.min.js.map +1 -1
- package/esm2015/user-profile/user-profile.module.js +3 -11
- package/fesm2015/covalent-core-user-profile.js +1 -9
- package/fesm2015/covalent-core-user-profile.js.map +1 -1
- package/package.json +1 -1
- package/schematics/components.js +1 -14
- package/schematics/components.js.map +1 -1
- package/theming/_all-theme.scss +0 -14
- package/theming/prebuilt/blue-grey-deep-orange.css +0 -248
- package/theming/prebuilt/blue-grey-deep-orange.css.map +1 -1
- package/theming/prebuilt/blue-orange.css +0 -248
- package/theming/prebuilt/blue-orange.css.map +1 -1
- package/theming/prebuilt/indigo-pink.css +0 -248
- package/theming/prebuilt/indigo-pink.css.map +1 -1
- package/theming/prebuilt/orange-light-blue.css +0 -248
- package/theming/prebuilt/orange-light-blue.css.map +1 -1
- package/theming/prebuilt/teal-orange.css +0 -248
- package/theming/prebuilt/teal-orange.css.map +1 -1
- package/typography/_all-typography.scss +0 -10
- package/user-profile/covalent-core-user-profile.metadata.json +1 -1
- package/bundles/covalent-core-chips.umd.js +0 -1507
- package/bundles/covalent-core-chips.umd.js.map +0 -1
- package/bundles/covalent-core-chips.umd.min.js +0 -16
- package/bundles/covalent-core-chips.umd.min.js.map +0 -1
- package/bundles/covalent-core-data-table.umd.js +0 -2756
- package/bundles/covalent-core-data-table.umd.js.map +0 -1
- package/bundles/covalent-core-data-table.umd.min.js +0 -16
- package/bundles/covalent-core-data-table.umd.min.js.map +0 -1
- package/bundles/covalent-core-expansion-panel.umd.js +0 -853
- package/bundles/covalent-core-expansion-panel.umd.js.map +0 -1
- package/bundles/covalent-core-expansion-panel.umd.min.js +0 -16
- package/bundles/covalent-core-expansion-panel.umd.min.js.map +0 -1
- package/bundles/covalent-core-loading.umd.js +0 -1534
- package/bundles/covalent-core-loading.umd.js.map +0 -1
- package/bundles/covalent-core-loading.umd.min.js +0 -16
- package/bundles/covalent-core-loading.umd.min.js.map +0 -1
- package/bundles/covalent-core-media.umd.js +0 -749
- package/bundles/covalent-core-media.umd.js.map +0 -1
- package/bundles/covalent-core-media.umd.min.js +0 -16
- package/bundles/covalent-core-media.umd.min.js.map +0 -1
- package/bundles/covalent-core-nav-links.umd.js +0 -197
- package/bundles/covalent-core-nav-links.umd.js.map +0 -1
- package/bundles/covalent-core-nav-links.umd.min.js +0 -2
- package/bundles/covalent-core-nav-links.umd.min.js.map +0 -1
- package/bundles/covalent-core-notifications.umd.js +0 -275
- package/bundles/covalent-core-notifications.umd.js.map +0 -1
- package/bundles/covalent-core-notifications.umd.min.js +0 -2
- package/bundles/covalent-core-notifications.umd.min.js.map +0 -1
- package/bundles/covalent-core-paging.umd.js +0 -491
- package/bundles/covalent-core-paging.umd.js.map +0 -1
- package/bundles/covalent-core-paging.umd.min.js +0 -2
- package/bundles/covalent-core-paging.umd.min.js.map +0 -1
- package/bundles/covalent-core-sidesheet.umd.js +0 -145
- package/bundles/covalent-core-sidesheet.umd.js.map +0 -1
- package/bundles/covalent-core-sidesheet.umd.min.js +0 -2
- package/bundles/covalent-core-sidesheet.umd.min.js.map +0 -1
- package/bundles/covalent-core-steps.umd.js +0 -1756
- package/bundles/covalent-core-steps.umd.js.map +0 -1
- package/bundles/covalent-core-steps.umd.min.js +0 -16
- package/bundles/covalent-core-steps.umd.min.js.map +0 -1
- package/bundles/covalent-core-tab-select.umd.js +0 -732
- package/bundles/covalent-core-tab-select.umd.js.map +0 -1
- package/bundles/covalent-core-tab-select.umd.min.js +0 -16
- package/bundles/covalent-core-tab-select.umd.min.js.map +0 -1
- package/bundles/covalent-core-virtual-scroll.umd.js +0 -785
- package/bundles/covalent-core-virtual-scroll.umd.js.map +0 -1
- package/bundles/covalent-core-virtual-scroll.umd.min.js +0 -16
- package/bundles/covalent-core-virtual-scroll.umd.min.js.map +0 -1
- package/chips/README.md +0 -99
- package/chips/_chips-theme.scss +0 -87
- package/chips/chips.component.d.ts +0 -287
- package/chips/chips.component.scss +0 -147
- package/chips/chips.module.d.ts +0 -2
- package/chips/covalent-core-chips.d.ts +0 -4
- package/chips/covalent-core-chips.metadata.json +0 -1
- package/chips/index.d.ts +0 -1
- package/chips/package.json +0 -11
- package/chips/public-api.d.ts +0 -2
- package/data-table/README.md +0 -134
- package/data-table/_data-table-theme.scss +0 -115
- package/data-table/covalent-core-data-table.d.ts +0 -4
- package/data-table/covalent-core-data-table.metadata.json +0 -1
- package/data-table/data-table-cell/data-table-cell.component.d.ts +0 -22
- package/data-table/data-table-cell/data-table-cell.component.scss +0 -58
- package/data-table/data-table-column/data-table-column.component.d.ts +0 -63
- package/data-table/data-table-column/data-table-column.component.scss +0 -80
- package/data-table/data-table-row/data-table-row.component.d.ts +0 -20
- package/data-table/data-table-row/data-table-row.component.scss +0 -12
- package/data-table/data-table-table/data-table-table.component.d.ts +0 -6
- package/data-table/data-table-table/data-table-table.component.scss +0 -7
- package/data-table/data-table.component.d.ts +0 -356
- package/data-table/data-table.component.scss +0 -93
- package/data-table/data-table.module.d.ts +0 -2
- package/data-table/directives/data-table-template.directive.d.ts +0 -6
- package/data-table/index.d.ts +0 -1
- package/data-table/package.json +0 -11
- package/data-table/public-api.d.ts +0 -8
- package/data-table/services/data-table.service.d.ts +0 -31
- package/esm2015/chips/chips.component.js +0 -1115
- package/esm2015/chips/chips.module.js +0 -23
- package/esm2015/chips/covalent-core-chips.js +0 -10
- package/esm2015/chips/index.js +0 -7
- package/esm2015/chips/public-api.js +0 -8
- package/esm2015/data-table/covalent-core-data-table.js +0 -10
- package/esm2015/data-table/data-table-cell/data-table-cell.component.js +0 -88
- package/esm2015/data-table/data-table-column/data-table-column.component.js +0 -218
- package/esm2015/data-table/data-table-row/data-table-row.component.js +0 -132
- package/esm2015/data-table/data-table-table/data-table-table.component.js +0 -43
- package/esm2015/data-table/data-table.component.js +0 -1640
- package/esm2015/data-table/data-table.module.js +0 -39
- package/esm2015/data-table/directives/data-table-template.directive.js +0 -32
- package/esm2015/data-table/index.js +0 -7
- package/esm2015/data-table/public-api.js +0 -14
- package/esm2015/data-table/services/data-table.service.js +0 -116
- package/esm2015/expansion-panel/covalent-core-expansion-panel.js +0 -10
- package/esm2015/expansion-panel/expansion-panel-group.component.js +0 -212
- package/esm2015/expansion-panel/expansion-panel.component.js +0 -272
- package/esm2015/expansion-panel/expansion-panel.module.js +0 -31
- package/esm2015/expansion-panel/index.js +0 -7
- package/esm2015/expansion-panel/public-api.js +0 -9
- package/esm2015/loading/covalent-core-loading.js +0 -10
- package/esm2015/loading/directives/loading.directive.js +0 -231
- package/esm2015/loading/index.js +0 -7
- package/esm2015/loading/loading.component.js +0 -302
- package/esm2015/loading/loading.module.js +0 -30
- package/esm2015/loading/public-api.js +0 -11
- package/esm2015/loading/services/loading.factory.js +0 -297
- package/esm2015/loading/services/loading.service.js +0 -319
- package/esm2015/media/covalent-core-media.js +0 -10
- package/esm2015/media/directives/media-toggle.directive.js +0 -207
- package/esm2015/media/index.js +0 -7
- package/esm2015/media/media.module.js +0 -20
- package/esm2015/media/public-api.js +0 -9
- package/esm2015/media/services/media.service.js +0 -169
- package/esm2015/nav-links/covalent-core-nav-links.js +0 -10
- package/esm2015/nav-links/index.js +0 -7
- package/esm2015/nav-links/nav-links.component.js +0 -138
- package/esm2015/nav-links/nav-links.module.js +0 -37
- package/esm2015/nav-links/public-api.js +0 -8
- package/esm2015/notifications/covalent-core-notifications.js +0 -10
- package/esm2015/notifications/index.js +0 -7
- package/esm2015/notifications/notification-count.component.js +0 -191
- package/esm2015/notifications/notifications.module.js +0 -20
- package/esm2015/notifications/public-api.js +0 -8
- package/esm2015/paging/covalent-core-paging.js +0 -10
- package/esm2015/paging/index.js +0 -7
- package/esm2015/paging/paging-bar.component.js +0 -412
- package/esm2015/paging/paging.module.js +0 -20
- package/esm2015/paging/public-api.js +0 -8
- package/esm2015/sidesheet/covalent-core-sidesheet.js +0 -10
- package/esm2015/sidesheet/index.js +0 -7
- package/esm2015/sidesheet/public-api.js +0 -8
- package/esm2015/sidesheet/sidesheet.component.js +0 -72
- package/esm2015/sidesheet/sidesheet.module.js +0 -27
- package/esm2015/steps/covalent-core-steps.js +0 -10
- package/esm2015/steps/index.js +0 -7
- package/esm2015/steps/nav/nav-step-link/nav-step-link.component.js +0 -144
- package/esm2015/steps/nav/nav-steps-horizontal/nav-steps-horizontal.component.js +0 -371
- package/esm2015/steps/nav/nav-steps-vertical/nav-steps-vertical.component.js +0 -130
- package/esm2015/steps/public-api.js +0 -14
- package/esm2015/steps/step-body/step-body.component.js +0 -83
- package/esm2015/steps/step-header/step-header.component.js +0 -79
- package/esm2015/steps/step.component.js +0 -312
- package/esm2015/steps/steps.component.js +0 -234
- package/esm2015/steps/steps.module.js +0 -44
- package/esm2015/tab-select/covalent-core-tab-select.js +0 -10
- package/esm2015/tab-select/index.js +0 -7
- package/esm2015/tab-select/public-api.js +0 -9
- package/esm2015/tab-select/tab-option.component.js +0 -82
- package/esm2015/tab-select/tab-select.component.js +0 -291
- package/esm2015/tab-select/tab-select.module.js +0 -31
- package/esm2015/virtual-scroll/covalent-core-virtual-scroll.js +0 -10
- package/esm2015/virtual-scroll/index.js +0 -7
- package/esm2015/virtual-scroll/public-api.js +0 -9
- package/esm2015/virtual-scroll/virtual-scroll-container.component.js +0 -391
- package/esm2015/virtual-scroll/virtual-scroll-row.directive.js +0 -25
- package/esm2015/virtual-scroll/virtual-scroll.module.js +0 -21
- package/expansion-panel/README.md +0 -116
- package/expansion-panel/_expansion-panel-theme.scss +0 -80
- package/expansion-panel/covalent-core-expansion-panel.d.ts +0 -4
- package/expansion-panel/covalent-core-expansion-panel.metadata.json +0 -1
- package/expansion-panel/expansion-panel-group.component.d.ts +0 -31
- package/expansion-panel/expansion-panel-group.component.scss +0 -0
- package/expansion-panel/expansion-panel.component.d.ts +0 -82
- package/expansion-panel/expansion-panel.component.scss +0 -50
- package/expansion-panel/expansion-panel.module.d.ts +0 -2
- package/expansion-panel/index.d.ts +0 -1
- package/expansion-panel/package.json +0 -11
- package/expansion-panel/public-api.d.ts +0 -3
- package/fesm2015/covalent-core-chips.js +0 -1151
- package/fesm2015/covalent-core-chips.js.map +0 -1
- package/fesm2015/covalent-core-data-table.js +0 -2309
- package/fesm2015/covalent-core-data-table.js.map +0 -1
- package/fesm2015/covalent-core-expansion-panel.js +0 -528
- package/fesm2015/covalent-core-expansion-panel.js.map +0 -1
- package/fesm2015/covalent-core-loading.js +0 -1179
- package/fesm2015/covalent-core-loading.js.map +0 -1
- package/fesm2015/covalent-core-media.js +0 -411
- package/fesm2015/covalent-core-media.js.map +0 -1
- package/fesm2015/covalent-core-nav-links.js +0 -193
- package/fesm2015/covalent-core-nav-links.js.map +0 -1
- package/fesm2015/covalent-core-notifications.js +0 -228
- package/fesm2015/covalent-core-notifications.js.map +0 -1
- package/fesm2015/covalent-core-paging.js +0 -451
- package/fesm2015/covalent-core-paging.js.map +0 -1
- package/fesm2015/covalent-core-sidesheet.js +0 -118
- package/fesm2015/covalent-core-sidesheet.js.map +0 -1
- package/fesm2015/covalent-core-steps.js +0 -1384
- package/fesm2015/covalent-core-steps.js.map +0 -1
- package/fesm2015/covalent-core-tab-select.js +0 -416
- package/fesm2015/covalent-core-tab-select.js.map +0 -1
- package/fesm2015/covalent-core-virtual-scroll.js +0 -453
- package/fesm2015/covalent-core-virtual-scroll.js.map +0 -1
- package/loading/README.md +0 -180
- package/loading/_loading-theme.scss +0 -10
- package/loading/covalent-core-loading.d.ts +0 -4
- package/loading/covalent-core-loading.metadata.json +0 -1
- package/loading/directives/loading.directive.d.ts +0 -71
- package/loading/index.d.ts +0 -1
- package/loading/loading.component.d.ts +0 -87
- package/loading/loading.component.scss +0 -42
- package/loading/loading.module.d.ts +0 -2
- package/loading/package.json +0 -11
- package/loading/public-api.d.ts +0 -5
- package/loading/services/loading.factory.d.ts +0 -66
- package/loading/services/loading.service.d.ts +0 -118
- package/media/covalent-core-media.d.ts +0 -4
- package/media/covalent-core-media.metadata.json +0 -1
- package/media/directives/media-toggle.directive.d.ts +0 -42
- package/media/index.d.ts +0 -1
- package/media/media.module.d.ts +0 -2
- package/media/package.json +0 -11
- package/media/public-api.d.ts +0 -3
- package/media/services/media.service.d.ts +0 -31
- package/nav-links/README.md +0 -1
- package/nav-links/covalent-core-nav-links.d.ts +0 -4
- package/nav-links/covalent-core-nav-links.metadata.json +0 -1
- package/nav-links/index.d.ts +0 -1
- package/nav-links/nav-links.component.d.ts +0 -51
- package/nav-links/nav-links.component.scss +0 -15
- package/nav-links/nav-links.module.d.ts +0 -2
- package/nav-links/package.json +0 -11
- package/nav-links/public-api.d.ts +0 -2
- package/notifications/README.md +0 -69
- package/notifications/_notification-count-theme.scss +0 -27
- package/notifications/covalent-core-notifications.d.ts +0 -4
- package/notifications/covalent-core-notifications.metadata.json +0 -1
- package/notifications/index.d.ts +0 -1
- package/notifications/notification-count.component.d.ts +0 -74
- package/notifications/notification-count.component.scss +0 -90
- package/notifications/notifications.module.d.ts +0 -2
- package/notifications/package.json +0 -11
- package/notifications/public-api.d.ts +0 -2
- package/paging/README.md +0 -141
- package/paging/_paging-bar-theme.scss +0 -26
- package/paging/covalent-core-paging.d.ts +0 -4
- package/paging/covalent-core-paging.metadata.json +0 -1
- package/paging/index.d.ts +0 -1
- package/paging/package.json +0 -11
- package/paging/paging-bar.component.d.ts +0 -115
- package/paging/paging-bar.component.scss +0 -23
- package/paging/paging.module.d.ts +0 -2
- package/paging/public-api.d.ts +0 -2
- package/sidesheet/README.md +0 -68
- package/sidesheet/covalent-core-sidesheet.d.ts +0 -4
- package/sidesheet/covalent-core-sidesheet.metadata.json +0 -1
- package/sidesheet/index.d.ts +0 -1
- package/sidesheet/package.json +0 -11
- package/sidesheet/public-api.d.ts +0 -2
- package/sidesheet/sidesheet.component.d.ts +0 -13
- package/sidesheet/sidesheet.component.scss +0 -101
- package/sidesheet/sidesheet.module.d.ts +0 -2
- package/steps/README.md +0 -159
- package/steps/_steps-theme.scss +0 -108
- package/steps/covalent-core-steps.d.ts +0 -4
- package/steps/covalent-core-steps.metadata.json +0 -1
- package/steps/index.d.ts +0 -1
- package/steps/nav/README.md +0 -90
- package/steps/nav/nav-step-link/nav-step-link.component.d.ts +0 -42
- package/steps/nav/nav-step-link/nav-step-link.component.scss +0 -17
- package/steps/nav/nav-steps-horizontal/nav-steps-horizontal.component.d.ts +0 -79
- package/steps/nav/nav-steps-horizontal/nav-steps-horizontal.component.scss +0 -83
- package/steps/nav/nav-steps-vertical/nav-steps-vertical.component.d.ts +0 -18
- package/steps/nav/nav-steps-vertical/nav-steps-vertical.component.scss +0 -18
- package/steps/package.json +0 -11
- package/steps/public-api.d.ts +0 -8
- package/steps/step-body/step-body.component.d.ts +0 -25
- package/steps/step-body/step-body.component.scss +0 -29
- package/steps/step-header/step-header.component.d.ts +0 -35
- package/steps/step-header/step-header.component.scss +0 -90
- package/steps/step.component.d.ts +0 -97
- package/steps/steps.component.d.ts +0 -60
- package/steps/steps.component.scss +0 -55
- package/steps/steps.module.d.ts +0 -2
- package/tab-select/README.md +0 -93
- package/tab-select/covalent-core-tab-select.d.ts +0 -4
- package/tab-select/covalent-core-tab-select.metadata.json +0 -1
- package/tab-select/index.d.ts +0 -1
- package/tab-select/package.json +0 -11
- package/tab-select/public-api.d.ts +0 -3
- package/tab-select/tab-option.component.d.ts +0 -20
- package/tab-select/tab-option.component.scss +0 -0
- package/tab-select/tab-select.component.d.ts +0 -62
- package/tab-select/tab-select.component.scss +0 -3
- package/tab-select/tab-select.module.d.ts +0 -2
- package/virtual-scroll/README.md +0 -68
- package/virtual-scroll/covalent-core-virtual-scroll.d.ts +0 -4
- package/virtual-scroll/covalent-core-virtual-scroll.metadata.json +0 -1
- package/virtual-scroll/index.d.ts +0 -1
- package/virtual-scroll/package.json +0 -11
- package/virtual-scroll/public-api.d.ts +0 -3
- package/virtual-scroll/virtual-scroll-container.component.d.ts +0 -73
- package/virtual-scroll/virtual-scroll-container.component.scss +0 -7
- package/virtual-scroll/virtual-scroll-row.directive.d.ts +0 -5
- package/virtual-scroll/virtual-scroll.module.d.ts +0 -2
@@ -1,297 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @fileoverview added by tsickle
|
3
|
-
* Generated from: services/loading.factory.ts
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
5
|
-
*/
|
6
|
-
import { Injectable, ComponentFactoryResolver, SkipSelf, Optional, } from '@angular/core';
|
7
|
-
import { Injector } from '@angular/core';
|
8
|
-
import { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
|
9
|
-
import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
|
10
|
-
import { Subject } from 'rxjs';
|
11
|
-
import { distinctUntilChanged } from 'rxjs/operators';
|
12
|
-
import { TdLoadingComponent, LoadingStyle } from '../loading.component';
|
13
|
-
/**
|
14
|
-
* @record
|
15
|
-
*/
|
16
|
-
export function IInternalLoadingOptions() { }
|
17
|
-
if (false) {
|
18
|
-
/** @type {?|undefined} */
|
19
|
-
IInternalLoadingOptions.prototype.height;
|
20
|
-
/** @type {?|undefined} */
|
21
|
-
IInternalLoadingOptions.prototype.style;
|
22
|
-
}
|
23
|
-
/**
|
24
|
-
* @record
|
25
|
-
*/
|
26
|
-
export function ILoadingRef() { }
|
27
|
-
if (false) {
|
28
|
-
/** @type {?} */
|
29
|
-
ILoadingRef.prototype.observable;
|
30
|
-
/** @type {?} */
|
31
|
-
ILoadingRef.prototype.componentRef;
|
32
|
-
/** @type {?|undefined} */
|
33
|
-
ILoadingRef.prototype.subject;
|
34
|
-
/** @type {?|undefined} */
|
35
|
-
ILoadingRef.prototype.times;
|
36
|
-
}
|
37
|
-
/**
|
38
|
-
* NOTE: \@internal usage only.
|
39
|
-
*/
|
40
|
-
export class TdLoadingFactory {
|
41
|
-
/**
|
42
|
-
* @param {?} _componentFactoryResolver
|
43
|
-
* @param {?} _overlay
|
44
|
-
* @param {?} _injector
|
45
|
-
*/
|
46
|
-
constructor(_componentFactoryResolver, _overlay, _injector) {
|
47
|
-
this._componentFactoryResolver = _componentFactoryResolver;
|
48
|
-
this._overlay = _overlay;
|
49
|
-
this._injector = _injector;
|
50
|
-
}
|
51
|
-
/**
|
52
|
-
* Uses material `Overlay` services to create a DOM element and attach the loading component
|
53
|
-
* into it. Leveraging the state and configuration from it.
|
54
|
-
*
|
55
|
-
* Saves a reference in context to be called when registering/resolving the loading element.
|
56
|
-
* @param {?} options
|
57
|
-
* @return {?}
|
58
|
-
*/
|
59
|
-
createFullScreenComponent(options) {
|
60
|
-
((/** @type {?} */ (options))).height = undefined;
|
61
|
-
((/** @type {?} */ (options))).style = LoadingStyle.FullScreen;
|
62
|
-
/** @type {?} */
|
63
|
-
const loadingRef = this._initializeContext();
|
64
|
-
/** @type {?} */
|
65
|
-
let loading = false;
|
66
|
-
/** @type {?} */
|
67
|
-
let overlayRef;
|
68
|
-
loadingRef.observable.pipe(distinctUntilChanged()).subscribe((/**
|
69
|
-
* @param {?} registered
|
70
|
-
* @return {?}
|
71
|
-
*/
|
72
|
-
(registered) => {
|
73
|
-
if (registered > 0 && !loading) {
|
74
|
-
loading = true;
|
75
|
-
overlayRef = this._createOverlay();
|
76
|
-
loadingRef.componentRef = overlayRef.attach(new ComponentPortal(TdLoadingComponent));
|
77
|
-
this._mapOptions(options, loadingRef.componentRef.instance);
|
78
|
-
loadingRef.componentRef.instance.show();
|
79
|
-
loadingRef.componentRef.changeDetectorRef.detectChanges();
|
80
|
-
}
|
81
|
-
else if (registered <= 0 && loading) {
|
82
|
-
loading = false;
|
83
|
-
loadingRef.componentRef.instance.hide();
|
84
|
-
loadingRef.componentRef.destroy();
|
85
|
-
overlayRef.detach();
|
86
|
-
overlayRef.dispose();
|
87
|
-
}
|
88
|
-
}));
|
89
|
-
return loadingRef;
|
90
|
-
}
|
91
|
-
/**
|
92
|
-
* Creates a loading component dynamically and attaches it into the given viewContainerRef.
|
93
|
-
* Leverages TemplatePortals from material to inject the template inside of it so it fits
|
94
|
-
* perfectly when overlaying it.
|
95
|
-
*
|
96
|
-
* Saves a reference in context to be called when registering/resolving the loading element.
|
97
|
-
* @param {?} options
|
98
|
-
* @param {?} viewContainerRef
|
99
|
-
* @param {?} templateRef
|
100
|
-
* @return {?}
|
101
|
-
*/
|
102
|
-
createOverlayComponent(options, viewContainerRef, templateRef) {
|
103
|
-
((/** @type {?} */ (options))).height = undefined;
|
104
|
-
((/** @type {?} */ (options))).style = LoadingStyle.Overlay;
|
105
|
-
/** @type {?} */
|
106
|
-
const loadingRef = this._createComponent(options);
|
107
|
-
/** @type {?} */
|
108
|
-
let loading = false;
|
109
|
-
loadingRef.componentRef.instance.content = new TemplatePortal(templateRef, viewContainerRef);
|
110
|
-
viewContainerRef.clear();
|
111
|
-
viewContainerRef.insert(loadingRef.componentRef.hostView, 0);
|
112
|
-
loadingRef.observable.pipe(distinctUntilChanged()).subscribe((/**
|
113
|
-
* @param {?} registered
|
114
|
-
* @return {?}
|
115
|
-
*/
|
116
|
-
(registered) => {
|
117
|
-
if (registered > 0 && !loading) {
|
118
|
-
loading = true;
|
119
|
-
loadingRef.componentRef.instance.show();
|
120
|
-
}
|
121
|
-
else if (registered <= 0 && loading) {
|
122
|
-
loading = false;
|
123
|
-
loadingRef.componentRef.instance.hide();
|
124
|
-
}
|
125
|
-
}));
|
126
|
-
return loadingRef;
|
127
|
-
}
|
128
|
-
/**
|
129
|
-
* Creates a loading component dynamically and attaches it into the given viewContainerRef.
|
130
|
-
* Replaces the template with the loading component depending if it was registered or resolved.
|
131
|
-
*
|
132
|
-
* Saves a reference in context to be called when registering/resolving the loading element.
|
133
|
-
* @param {?} options
|
134
|
-
* @param {?} viewContainerRef
|
135
|
-
* @param {?} templateRef
|
136
|
-
* @param {?} context
|
137
|
-
* @return {?}
|
138
|
-
*/
|
139
|
-
createReplaceComponent(options, viewContainerRef, templateRef, context) {
|
140
|
-
/** @type {?} */
|
141
|
-
const nativeElement = (/** @type {?} */ (templateRef.elementRef.nativeElement));
|
142
|
-
((/** @type {?} */ (options))).height = nativeElement.nextElementSibling
|
143
|
-
? nativeElement.nextElementSibling.scrollHeight
|
144
|
-
: undefined;
|
145
|
-
((/** @type {?} */ (options))).style = LoadingStyle.None;
|
146
|
-
/** @type {?} */
|
147
|
-
const loadingRef = this._createComponent(options);
|
148
|
-
/** @type {?} */
|
149
|
-
let loading = false;
|
150
|
-
// passing context so when the template is attached, we can keep the reference of the variables
|
151
|
-
/** @type {?} */
|
152
|
-
const contentRef = viewContainerRef.createEmbeddedView(templateRef, context);
|
153
|
-
loadingRef.observable.pipe(distinctUntilChanged()).subscribe((/**
|
154
|
-
* @param {?} registered
|
155
|
-
* @return {?}
|
156
|
-
*/
|
157
|
-
(registered) => {
|
158
|
-
if (registered > 0 && !loading) {
|
159
|
-
loading = true;
|
160
|
-
// detach the content and attach the loader if loader is there
|
161
|
-
/** @type {?} */
|
162
|
-
const index = viewContainerRef.indexOf(loadingRef.componentRef.hostView);
|
163
|
-
if (index < 0) {
|
164
|
-
viewContainerRef.detach(viewContainerRef.indexOf(contentRef));
|
165
|
-
viewContainerRef.insert(loadingRef.componentRef.hostView, 0);
|
166
|
-
}
|
167
|
-
loadingRef.componentRef.instance.show();
|
168
|
-
}
|
169
|
-
else if (registered <= 0 && loading) {
|
170
|
-
loading = false;
|
171
|
-
loadingRef.componentRef.instance.hide();
|
172
|
-
// detach loader and attach the content if content is there
|
173
|
-
/** @type {?} */
|
174
|
-
const index = viewContainerRef.indexOf(contentRef);
|
175
|
-
if (index < 0) {
|
176
|
-
viewContainerRef.detach(viewContainerRef.indexOf(loadingRef.componentRef.hostView));
|
177
|
-
viewContainerRef.insert(contentRef, 0);
|
178
|
-
}
|
179
|
-
/**
|
180
|
-
* Need to call "markForCheck" and "detectChanges" on attached template, so its detected by parent component when attached
|
181
|
-
* with "OnPush" change detection
|
182
|
-
*/
|
183
|
-
contentRef.detectChanges();
|
184
|
-
contentRef.markForCheck();
|
185
|
-
}
|
186
|
-
}));
|
187
|
-
return loadingRef;
|
188
|
-
}
|
189
|
-
/**
|
190
|
-
* Creates a fullscreen overlay for the loading usage.
|
191
|
-
* @private
|
192
|
-
* @return {?}
|
193
|
-
*/
|
194
|
-
_createOverlay() {
|
195
|
-
/** @type {?} */
|
196
|
-
const state = new OverlayConfig();
|
197
|
-
state.hasBackdrop = false;
|
198
|
-
state.positionStrategy = this._overlay.position().global().centerHorizontally().centerVertically();
|
199
|
-
return this._overlay.create(state);
|
200
|
-
}
|
201
|
-
/**
|
202
|
-
* Creates a generic component dynamically waiting to be attached to a viewContainerRef.
|
203
|
-
* @private
|
204
|
-
* @param {?} options
|
205
|
-
* @return {?}
|
206
|
-
*/
|
207
|
-
_createComponent(options) {
|
208
|
-
/** @type {?} */
|
209
|
-
const compRef = this._initializeContext();
|
210
|
-
compRef.componentRef = this._componentFactoryResolver
|
211
|
-
.resolveComponentFactory(TdLoadingComponent)
|
212
|
-
.create(this._injector);
|
213
|
-
this._mapOptions(options, compRef.componentRef.instance);
|
214
|
-
return compRef;
|
215
|
-
}
|
216
|
-
/**
|
217
|
-
* Initialize context for loading component.
|
218
|
-
* @private
|
219
|
-
* @return {?}
|
220
|
-
*/
|
221
|
-
_initializeContext() {
|
222
|
-
/** @type {?} */
|
223
|
-
const subject = new Subject();
|
224
|
-
return {
|
225
|
-
observable: subject.asObservable(),
|
226
|
-
subject,
|
227
|
-
componentRef: undefined,
|
228
|
-
times: 0,
|
229
|
-
};
|
230
|
-
}
|
231
|
-
/**
|
232
|
-
* Maps configuration to the loading component instance.
|
233
|
-
* @private
|
234
|
-
* @param {?} options
|
235
|
-
* @param {?} instance
|
236
|
-
* @return {?}
|
237
|
-
*/
|
238
|
-
_mapOptions(options, instance) {
|
239
|
-
instance.style = options.style;
|
240
|
-
if (options.type !== undefined) {
|
241
|
-
instance.type = options.type;
|
242
|
-
}
|
243
|
-
if (options.height !== undefined) {
|
244
|
-
instance.height = options.height;
|
245
|
-
}
|
246
|
-
if (options.mode !== undefined) {
|
247
|
-
instance.mode = options.mode;
|
248
|
-
}
|
249
|
-
if (options.color !== undefined) {
|
250
|
-
instance.color = options.color;
|
251
|
-
}
|
252
|
-
}
|
253
|
-
}
|
254
|
-
TdLoadingFactory.decorators = [
|
255
|
-
{ type: Injectable }
|
256
|
-
];
|
257
|
-
/** @nocollapse */
|
258
|
-
TdLoadingFactory.ctorParameters = () => [
|
259
|
-
{ type: ComponentFactoryResolver },
|
260
|
-
{ type: Overlay },
|
261
|
-
{ type: Injector }
|
262
|
-
];
|
263
|
-
if (false) {
|
264
|
-
/**
|
265
|
-
* @type {?}
|
266
|
-
* @private
|
267
|
-
*/
|
268
|
-
TdLoadingFactory.prototype._componentFactoryResolver;
|
269
|
-
/**
|
270
|
-
* @type {?}
|
271
|
-
* @private
|
272
|
-
*/
|
273
|
-
TdLoadingFactory.prototype._overlay;
|
274
|
-
/**
|
275
|
-
* @type {?}
|
276
|
-
* @private
|
277
|
-
*/
|
278
|
-
TdLoadingFactory.prototype._injector;
|
279
|
-
}
|
280
|
-
/**
|
281
|
-
* @param {?} parent
|
282
|
-
* @param {?} componentFactoryResolver
|
283
|
-
* @param {?} overlay
|
284
|
-
* @param {?} injector
|
285
|
-
* @return {?}
|
286
|
-
*/
|
287
|
-
export function LOADING_FACTORY_PROVIDER_FACTORY(parent, componentFactoryResolver, overlay, injector) {
|
288
|
-
return parent || new TdLoadingFactory(componentFactoryResolver, overlay, injector);
|
289
|
-
}
|
290
|
-
/** @type {?} */
|
291
|
-
export const LOADING_FACTORY_PROVIDER = {
|
292
|
-
// If there is already a service available, use that. Otherwise, provide a new one.
|
293
|
-
provide: TdLoadingFactory,
|
294
|
-
deps: [[new Optional(), new SkipSelf(), TdLoadingFactory], ComponentFactoryResolver, Overlay, Injector],
|
295
|
-
useFactory: LOADING_FACTORY_PROVIDER_FACTORY,
|
296
|
-
};
|
297
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uL3NyYy9wbGF0Zm9ybS9jb3JlL2xvYWRpbmcvIiwic291cmNlcyI6WyJzZXJ2aWNlcy9sb2FkaW5nLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLHdCQUF3QixFQUd4QixRQUFRLEVBQ1IsUUFBUSxHQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQStDLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQUd4RSw2Q0FHQzs7O0lBRkMseUNBQWdCOztJQUNoQix3Q0FBcUI7Ozs7O0FBR3ZCLGlDQUtDOzs7SUFKQyxpQ0FBNEI7O0lBQzVCLG1DQUFnQzs7SUFDaEMsOEJBQXVCOztJQUN2Qiw0QkFBZTs7Ozs7QUFPakIsTUFBTSxPQUFPLGdCQUFnQjs7Ozs7O0lBQzNCLFlBQ1UseUJBQW1ELEVBQ25ELFFBQWlCLEVBQ2pCLFNBQW1CO1FBRm5CLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMEI7UUFDbkQsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFVO0lBQzFCLENBQUM7Ozs7Ozs7OztJQVFHLHlCQUF5QixDQUFDLE9BQXlCO1FBQ3hELENBQUMsbUJBQXlCLE9BQU8sRUFBQSxDQUFDLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FB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QUF3QixFQUN4Qix3QkFBa0QsRUFDbEQsT0FBZ0IsRUFDaEIsUUFBa0I7SUFFbEIsT0FBTyxNQUFNLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyx3QkFBd0IsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDckYsQ0FBQzs7QUFFRCxNQUFNLE9BQU8sd0JBQXdCLEdBQWE7O0lBRWhELE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsRUFBRSx3QkFBd0IsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDO0lBQ3ZHLFVBQVUsRUFBRSxnQ0FBZ0M7Q0FDN0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlLFxuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBQcm92aWRlcixcbiAgU2tpcFNlbGYsXG4gIE9wdGlvbmFsLFxuICBFbWJlZGRlZFZpZXdSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5qZWN0b3IsIENvbXBvbmVudFJlZiwgVmlld0NvbnRhaW5lclJlZiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsLCBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBUZExvYWRpbmdDb250ZXh0IH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9sb2FkaW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUZExvYWRpbmdDb21wb25lbnQsIExvYWRpbmdTdHlsZSB9IGZyb20gJy4uL2xvYWRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IElUZExvYWRpbmdDb25maWcgfSBmcm9tICcuL2xvYWRpbmcuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUludGVybmFsTG9hZGluZ09wdGlvbnMgZXh0ZW5kcyBJVGRMb2FkaW5nQ29uZmlnIHtcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICBzdHlsZT86IExvYWRpbmdTdHlsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTG9hZGluZ1JlZiB7XG4gIG9ic2VydmFibGU6IE9ic2VydmFibGU8YW55PjtcbiAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PjtcbiAgc3ViamVjdD86IFN1YmplY3Q8YW55PjtcbiAgdGltZXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogTk9URTogQGludGVybmFsIHVzYWdlIG9ubHkuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUZExvYWRpbmdGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBfb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICkge31cblxuICAvKipcbiAgICogVXNlcyBtYXRlcmlhbCBgT3ZlcmxheWAgc2VydmljZXMgdG8gY3JlYXRlIGEgRE9NIGVsZW1lbnQgYW5kIGF0dGFjaCB0aGUgbG9hZGluZyBjb21wb25lbnRcbiAgICogaW50byBpdC4gTGV2ZXJhZ2luZyB0aGUgc3RhdGUgYW5kIGNvbmZpZ3VyYXRpb24gZnJvbSBpdC5cbiAgICpcbiAgICogU2F2ZXMgYSByZWZlcmVuY2UgaW4gY29udGV4dCB0byBiZSBjYWxsZWQgd2hlbiByZWdpc3RlcmluZy9yZXNvbHZpbmcgdGhlIGxvYWRpbmcgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGVGdWxsU2NyZWVuQ29tcG9uZW50KG9wdGlvbnM6IElUZExvYWRpbmdDb25maWcpOiBJTG9hZGluZ1JlZiB7XG4gICAgKDxJSW50ZXJuYWxMb2FkaW5nT3B0aW9ucz5vcHRpb25zKS5oZWlnaHQgPSB1bmRlZmluZWQ7XG4gICAgKDxJSW50ZXJuYWxMb2FkaW5nT3B0aW9ucz5vcHRpb25zKS5zdHlsZSA9IExvYWRpbmdTdHlsZS5GdWxsU2NyZWVuO1xuICAgIGNvbnN0IGxvYWRpbmdSZWY6IElMb2FkaW5nUmVmID0gdGhpcy5faW5pdGlhbGl6ZUNvbnRleHQoKTtcbiAgICBsZXQgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGxldCBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuICAgIGxvYWRpbmdSZWYub2JzZXJ2YWJsZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgocmVnaXN0ZXJlZDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAocmVnaXN0ZXJlZCA+IDAgJiYgIWxvYWRpbmcpIHtcbiAgICAgICAgbG9hZGluZyA9IHRydWU7XG4gICAgICAgIG92ZXJsYXlSZWYgPSB0aGlzLl9jcmVhdGVPdmVybGF5KCk7XG4gICAgICAgIGxvYWRpbmdSZWYuY29tcG9uZW50UmVmID0gb3ZlcmxheVJlZi5hdHRhY2gobmV3IENvbXBvbmVudFBvcnRhbChUZExvYWRpbmdDb21wb25lbnQpKTtcbiAgICAgICAgdGhpcy5fbWFwT3B0aW9ucyhvcHRpb25zLCBsb2FkaW5nUmVmLmNvbXBvbmVudFJlZi5pbnN0YW5jZSk7XG4gICAgICAgIGxvYWRpbmdSZWYuY29tcG9uZW50UmVmLmluc3RhbmNlLnNob3coKTtcbiAgICAgICAgbG9hZGluZ1JlZi5jb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgfSBlbHNlIGlmIChyZWdpc3RlcmVkIDw9IDAgJiYgbG9hZGluZykge1xuICAgICAgICBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIGxvYWRpbmdSZWYuY29tcG9uZW50UmVmLmluc3RhbmNlLmhpZGUoKTtcbiAgICAgICAgbG9hZGluZ1JlZi5jb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICBvdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgICBvdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gbG9hZGluZ1JlZjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbG9hZGluZyBjb21wb25lbnQgZHluYW1pY2FsbHkgYW5kIGF0dGFjaGVzIGl0IGludG8gdGhlIGdpdmVuIHZpZXdDb250YWluZXJSZWYuXG4gICAqIExldmVyYWdlcyBUZW1wbGF0ZVBvcnRhbHMgZnJvbSBtYXRlcmlhbCB0byBpbmplY3QgdGhlIHRlbXBsYXRlIGluc2lkZSBvZiBpdCBzbyBpdCBmaXRzXG4gICAqIHBlcmZlY3RseSB3aGVuIG92ZXJsYXlpbmcgaXQuXG4gICAqXG4gICAqIFNhdmVzIGEgcmVmZXJlbmNlIGluIGNvbnRleHQgdG8gYmUgY2FsbGVkIHdoZW4gcmVnaXN0ZXJpbmcvcmVzb2x2aW5nIHRoZSBsb2FkaW5nIGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlT3ZlcmxheUNvbXBvbmVudChcbiAgICBvcHRpb25zOiBJVGRMb2FkaW5nQ29uZmlnLFxuICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPG9iamVjdD4sXG4gICk6IElMb2FkaW5nUmVmIHtcbiAgICAoPElJbnRlcm5hbExvYWRpbmdPcHRpb25zPm9wdGlvbnMpLmhlaWdodCA9IHVuZGVmaW5lZDtcbiAgICAoPElJbnRlcm5hbExvYWRpbmdPcHRpb25zPm9wdGlvbnMpLnN0eWxlID0gTG9hZGluZ1N0eWxlLk92ZXJsYXk7XG4gICAgY29uc3QgbG9hZGluZ1JlZjogSUxvYWRpbmdSZWYgPSB0aGlzLl9jcmVhdGVDb21wb25lbnQob3B0aW9ucyk7XG4gICAgbGV0IGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBsb2FkaW5nUmVmLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5jb250ZW50ID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRlbXBsYXRlUmVmLCB2aWV3Q29udGFpbmVyUmVmKTtcbiAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgdmlld0NvbnRhaW5lclJlZi5pbnNlcnQobG9hZGluZ1JlZi5jb21wb25lbnRSZWYuaG9zdFZpZXcsIDApO1xuICAgIGxvYWRpbmdSZWYub2JzZXJ2YWJsZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSgocmVnaXN0ZXJlZDogbnVtYmVyKSA9PiB7XG4gICAgICBpZiAocmVnaXN0ZXJlZCA+IDAgJiYgIWxvYWRpbmcpIHtcbiAgICAgICAgbG9hZGluZyA9IHRydWU7XG4gICAgICAgIGxvYWRpbmdSZWYuY29tcG9uZW50UmVmLmluc3RhbmNlLnNob3coKTtcbiAgICAgIH0gZWxzZSBpZiAocmVnaXN0ZXJlZCA8PSAwICYmIGxvYWRpbmcpIHtcbiAgICAgICAgbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICBsb2FkaW5nUmVmLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5oaWRlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxvYWRpbmdSZWY7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGxvYWRpbmcgY29tcG9uZW50IGR5bmFtaWNhbGx5IGFuZCBhdHRhY2hlcyBpdCBpbnRvIHRoZSBnaXZlbiB2aWV3Q29udGFpbmVyUmVmLlxuICAgKiBSZXBsYWNlcyB0aGUgdGVtcGxhdGUgd2l0aCB0aGUgbG9hZGluZyBjb21wb25lbnQgZGVwZW5kaW5nIGlmIGl0IHdhcyByZWdpc3RlcmVkIG9yIHJlc29sdmVkLlxuICAgKlxuICAgKiBTYXZlcyBhIHJlZmVyZW5jZSBpbiBjb250ZXh0IHRvIGJlIGNhbGxlZCB3aGVuIHJlZ2lzdGVyaW5nL3Jlc29sdmluZyB0aGUgbG9hZGluZyBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZVJlcGxhY2VDb21wb25lbnQoXG4gICAgb3B0aW9uczogSVRkTG9hZGluZ0NvbmZpZyxcbiAgICB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxvYmplY3Q+LFxuICAgIGNvbnRleHQ6IFRkTG9hZGluZ0NvbnRleHQsXG4gICk6IElMb2FkaW5nUmVmIHtcbiAgICBjb25zdCBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudCA9IDxIVE1MRWxlbWVudD50ZW1wbGF0ZVJlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgKDxJSW50ZXJuYWxMb2FkaW5nT3B0aW9ucz5vcHRpb25zKS5oZWlnaHQgPSBuYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZ1xuICAgICAgPyBuYXRpdmVFbGVtZW50Lm5leHRFbGVtZW50U2libGluZy5zY3JvbGxIZWlnaHRcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgICg8SUludGVybmFsTG9hZGluZ09wdGlvbnM+b3B0aW9ucykuc3R5bGUgPSBMb2FkaW5nU3R5bGUuTm9uZTtcbiAgICBjb25zdCBsb2FkaW5nUmVmOiBJTG9hZGluZ1JlZiA9IHRoaXMuX2NyZWF0ZUNvbXBvbmVudChvcHRpb25zKTtcbiAgICBsZXQgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIC8vIHBhc3NpbmcgY29udGV4dCBzbyB3aGVuIHRoZSB0ZW1wbGF0ZSBpcyBhdHRhY2hlZCwgd2UgY2FuIGtlZXAgdGhlIHJlZmVyZW5jZSBvZiB0aGUgdmFyaWFibGVzXG4gICAgY29uc3QgY29udGVudFJlZjogRW1iZWRkZWRWaWV3UmVmPG9iamVjdD4gPSB2aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0ZW1wbGF0ZVJlZiwgY29udGV4dCk7XG4gICAgbG9hZGluZ1JlZi5vYnNlcnZhYmxlLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSkuc3Vic2NyaWJlKChyZWdpc3RlcmVkOiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChyZWdpc3RlcmVkID4gMCAmJiAhbG9hZGluZykge1xuICAgICAgICBsb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgLy8gZGV0YWNoIHRoZSBjb250ZW50IGFuZCBhdHRhY2ggdGhlIGxvYWRlciBpZiBsb2FkZXIgaXMgdGhlcmVcbiAgICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHZpZXdDb250YWluZXJSZWYuaW5kZXhPZihsb2FkaW5nUmVmLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLmRldGFjaCh2aWV3Q29udGFpbmVyUmVmLmluZGV4T2YoY29udGVudFJlZikpO1xuICAgICAgICAgIHZpZXdDb250YWluZXJSZWYuaW5zZXJ0KGxvYWRpbmdSZWYuY29tcG9uZW50UmVmLmhvc3RWaWV3LCAwKTtcbiAgICAgICAgfVxuICAgICAgICBsb2FkaW5nUmVmLmNvbXBvbmVudFJlZi5pbnN0YW5jZS5zaG93KCk7XG4gICAgICB9IGVsc2UgaWYgKHJlZ2lzdGVyZWQgPD0gMCAmJiBsb2FkaW5nKSB7XG4gICAgICAgIGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgbG9hZGluZ1JlZi5jb21wb25lbnRSZWYuaW5zdGFuY2UuaGlkZSgpO1xuICAgICAgICAvLyBkZXRhY2ggbG9hZGVyIGFuZCBhdHRhY2ggdGhlIGNvbnRlbnQgaWYgY29udGVudCBpcyB0aGVyZVxuICAgICAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdmlld0NvbnRhaW5lclJlZi5pbmRleE9mKGNvbnRlbnRSZWYpO1xuICAgICAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAgICAgdmlld0NvbnRhaW5lclJlZi5kZXRhY2godmlld0NvbnRhaW5lclJlZi5pbmRleE9mKGxvYWRpbmdSZWYuY29tcG9uZW50UmVmLmhvc3RWaWV3KSk7XG4gICAgICAgICAgdmlld0NvbnRhaW5lclJlZi5pbnNlcnQoY29udGVudFJlZiwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5lZWQgdG8gY2FsbCBcIm1hcmtGb3JDaGVja1wiIGFuZCBcImRldGVjdENoYW5nZXNcIiBvbiBhdHRhY2hlZCB0ZW1wbGF0ZSwgc28gaXRzIGRldGVjdGVkIGJ5IHBhcmVudCBjb21wb25lbnQgd2hlbiBhdHRhY2hlZFxuICAgICAgICAgKiB3aXRoIFwiT25QdXNoXCIgY2hhbmdlIGRldGVjdGlvblxuICAgICAgICAgKi9cbiAgICAgICAgY29udGVudFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGNvbnRlbnRSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGxvYWRpbmdSZWY7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGZ1bGxzY3JlZW4gb3ZlcmxheSBmb3IgdGhlIGxvYWRpbmcgdXNhZ2UuXG4gICAqL1xuICBwcml2YXRlIF9jcmVhdGVPdmVybGF5KCk6IE92ZXJsYXlSZWYge1xuICAgIGNvbnN0IHN0YXRlOiBPdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoKTtcbiAgICBzdGF0ZS5oYXNCYWNrZHJvcCA9IGZhbHNlO1xuICAgIHN0YXRlLnBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpO1xuICAgIHJldHVybiB0aGlzLl9vdmVybGF5LmNyZWF0ZShzdGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGdlbmVyaWMgY29tcG9uZW50IGR5bmFtaWNhbGx5IHdhaXRpbmcgdG8gYmUgYXR0YWNoZWQgdG8gYSB2aWV3Q29udGFpbmVyUmVmLlxuICAgKi9cbiAgcHJpdmF0ZSBfY3JlYXRlQ29tcG9uZW50KG9wdGlvbnM6IElJbnRlcm5hbExvYWRpbmdPcHRpb25zKTogSUxvYWRpbmdSZWYge1xuICAgIGNvbnN0IGNvbXBSZWY6IElMb2FkaW5nUmVmID0gdGhpcy5faW5pdGlhbGl6ZUNvbnRleHQoKTtcbiAgICBjb21wUmVmLmNvbXBvbmVudFJlZiA9IHRoaXMuX2NvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFRkTG9hZGluZ0NvbXBvbmVudClcbiAgICAgIC5jcmVhdGUodGhpcy5faW5qZWN0b3IpO1xuICAgIHRoaXMuX21hcE9wdGlvbnMob3B0aW9ucywgY29tcFJlZi5jb21wb25lbnRSZWYuaW5zdGFuY2UpO1xuICAgIHJldHVybiBjb21wUmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgY29udGV4dCBmb3IgbG9hZGluZyBjb21wb25lbnQuXG4gICAqL1xuICBwcml2YXRlIF9pbml0aWFsaXplQ29udGV4dCgpOiBJTG9hZGluZ1JlZiB7XG4gICAgY29uc3Qgc3ViamVjdDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xuICAgIHJldHVybiB7XG4gICAgICBvYnNlcnZhYmxlOiBzdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLFxuICAgICAgc3ViamVjdCxcbiAgICAgIGNvbXBvbmVudFJlZjogdW5kZWZpbmVkLFxuICAgICAgdGltZXM6IDAsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXBzIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGxvYWRpbmcgY29tcG9uZW50IGluc3RhbmNlLlxuICAgKi9cbiAgcHJpdmF0ZSBfbWFwT3B0aW9ucyhvcHRpb25zOiBJSW50ZXJuYWxMb2FkaW5nT3B0aW9ucywgaW5zdGFuY2U6IFRkTG9hZGluZ0NvbXBvbmVudCk6IHZvaWQge1xuICAgIGluc3RhbmNlLnN0eWxlID0gb3B0aW9ucy5zdHlsZTtcbiAgICBpZiAob3B0aW9ucy50eXBlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGluc3RhbmNlLnR5cGUgPSBvcHRpb25zLnR5cGU7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmhlaWdodCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpbnN0YW5jZS5oZWlnaHQgPSBvcHRpb25zLmhlaWdodDtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMubW9kZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpbnN0YW5jZS5tb2RlID0gb3B0aW9ucy5tb2RlO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5jb2xvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpbnN0YW5jZS5jb2xvciA9IG9wdGlvbnMuY29sb3I7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBMT0FESU5HX0ZBQ1RPUllfUFJPVklERVJfRkFDVE9SWShcbiAgcGFyZW50OiBUZExvYWRpbmdGYWN0b3J5LFxuICBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgb3ZlcmxheTogT3ZlcmxheSxcbiAgaW5qZWN0b3I6IEluamVjdG9yLFxuKTogVGRMb2FkaW5nRmFjdG9yeSB7XG4gIHJldHVybiBwYXJlbnQgfHwgbmV3IFRkTG9hZGluZ0ZhY3RvcnkoY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBvdmVybGF5LCBpbmplY3Rvcik7XG59XG5cbmV4cG9ydCBjb25zdCBMT0FESU5HX0ZBQ1RPUllfUFJPVklERVI6IFByb3ZpZGVyID0ge1xuICAvLyBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgc2VydmljZSBhdmFpbGFibGUsIHVzZSB0aGF0LiBPdGhlcndpc2UsIHByb3ZpZGUgYSBuZXcgb25lLlxuICBwcm92aWRlOiBUZExvYWRpbmdGYWN0b3J5LFxuICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgVGRMb2FkaW5nRmFjdG9yeV0sIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgT3ZlcmxheSwgSW5qZWN0b3JdLFxuICB1c2VGYWN0b3J5OiBMT0FESU5HX0ZBQ1RPUllfUFJPVklERVJfRkFDVE9SWSxcbn07XG4iXX0=
|