@skyux/core 5.1.2 → 5.2.2
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/README.md +1 -1
- package/bundles/skyux-core-testing.umd.js +27 -32
- package/bundles/skyux-core-testing.umd.js.map +1 -1
- package/bundles/skyux-core.umd.js +420 -369
- package/bundles/skyux-core.umd.js.map +1 -1
- package/documentation.json +541 -548
- package/esm2015/modules/adapter-service/adapter.module.js +5 -5
- package/esm2015/modules/adapter-service/adapter.service.js +9 -8
- package/esm2015/modules/adapter-service/focusable-children-options.js +1 -1
- package/esm2015/modules/affix/affix-auto-fit-context.js +1 -1
- package/esm2015/modules/affix/affix-config.js +1 -1
- package/esm2015/modules/affix/affix-offset-change.js +1 -1
- package/esm2015/modules/affix/affix-offset.js +1 -1
- package/esm2015/modules/affix/affix-placement-change.js +1 -1
- package/esm2015/modules/affix/affix-utils.js +3 -8
- package/esm2015/modules/affix/affix.directive.js +7 -7
- package/esm2015/modules/affix/affix.module.js +8 -16
- package/esm2015/modules/affix/affix.service.js +6 -6
- package/esm2015/modules/affix/affixer.js +21 -19
- package/esm2015/modules/affix/dom-utils.js +3 -4
- package/esm2015/modules/dock/dock-dom-adapter.service.js +8 -7
- package/esm2015/modules/dock/dock-insert-component-config.js +1 -1
- package/esm2015/modules/dock/dock-item-config.js +1 -1
- package/esm2015/modules/dock/dock-item-reference.js +1 -1
- package/esm2015/modules/dock/dock-item.js +1 -1
- package/esm2015/modules/dock/dock-location.js +1 -1
- package/esm2015/modules/dock/dock-options.js +1 -1
- package/esm2015/modules/dock/dock.component.js +13 -17
- package/esm2015/modules/dock/dock.module.js +9 -21
- package/esm2015/modules/dock/dock.service.js +6 -6
- package/esm2015/modules/dynamic-component/dynamic-component-location.js +1 -1
- package/esm2015/modules/dynamic-component/dynamic-component-options.js +1 -1
- package/esm2015/modules/dynamic-component/dynamic-component.module.js +5 -5
- package/esm2015/modules/dynamic-component/dynamic-component.service.js +7 -7
- package/esm2015/modules/format/app-format.js +5 -5
- package/esm2015/modules/id/id.directive.js +5 -5
- package/esm2015/modules/id/id.module.js +7 -11
- package/esm2015/modules/log/log.module.js +5 -5
- package/esm2015/modules/log/log.service.js +5 -5
- package/esm2015/modules/media-query/media-breakpoints.js +1 -1
- package/esm2015/modules/media-query/media-query-listener.js +1 -1
- package/esm2015/modules/media-query/media-query.module.js +5 -5
- package/esm2015/modules/media-query/media-query.service.js +12 -12
- package/esm2015/modules/mutation/mutation-observer-service.js +5 -5
- package/esm2015/modules/numeric/numeric.module.js +9 -24
- package/esm2015/modules/numeric/numeric.options.js +1 -1
- package/esm2015/modules/numeric/numeric.pipe.js +12 -14
- package/esm2015/modules/numeric/numeric.service.js +16 -15
- package/esm2015/modules/overlay/overlay-adapter.service.js +5 -5
- package/esm2015/modules/overlay/overlay-config.js +1 -1
- package/esm2015/modules/overlay/overlay-context.js +1 -1
- package/esm2015/modules/overlay/overlay-instance.js +1 -1
- package/esm2015/modules/overlay/overlay.component.js +11 -11
- package/esm2015/modules/overlay/overlay.module.js +8 -16
- package/esm2015/modules/overlay/overlay.service.js +13 -11
- package/esm2015/modules/percent-pipe/percent-pipe.module.js +9 -24
- package/esm2015/modules/percent-pipe/percent.pipe.js +7 -6
- package/esm2015/modules/scrollable-host/scrollable-host.service.js +96 -25
- package/esm2015/modules/shared/number-format/number-format-utility.js +8 -5
- package/esm2015/modules/shared/sky-core-resources.module.js +21 -12
- package/esm2015/modules/title/set-title-args.js +1 -1
- package/esm2015/modules/title/title.service.js +5 -5
- package/esm2015/modules/ui-config/ui-config.service.js +5 -5
- package/esm2015/modules/viewkeeper/viewkeeper-boundary-info.js +1 -1
- package/esm2015/modules/viewkeeper/viewkeeper-host-options.js +4 -4
- package/esm2015/modules/viewkeeper/viewkeeper.directive.js +14 -11
- package/esm2015/modules/viewkeeper/viewkeeper.js +36 -15
- package/esm2015/modules/viewkeeper/viewkeeper.module.js +7 -11
- package/esm2015/modules/viewkeeper/viewkeeper.service.js +5 -5
- package/esm2015/modules/window/window-ref.js +5 -5
- package/esm2015/testing/mock-media-query.service.js +7 -7
- package/esm2015/testing/mock-ui-config.service.js +18 -21
- package/fesm2015/skyux-core-testing.js +22 -25
- package/fesm2015/skyux-core-testing.js.map +1 -1
- package/fesm2015/skyux-core.js +400 -363
- package/fesm2015/skyux-core.js.map +1 -1
- package/modules/scrollable-host/scrollable-host.service.d.ts +25 -6
- package/modules/viewkeeper/viewkeeper.d.ts +3 -1
- package/package.json +6 -6
@@ -2,9 +2,9 @@ import { Injectable } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
3
3
|
export class SkyViewkeeperHostOptions {
|
4
4
|
}
|
5
|
-
SkyViewkeeperHostOptions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
6
|
-
SkyViewkeeperHostOptions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
7
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
5
|
+
SkyViewkeeperHostOptions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyViewkeeperHostOptions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
6
|
+
SkyViewkeeperHostOptions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyViewkeeperHostOptions });
|
7
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyViewkeeperHostOptions, decorators: [{
|
8
8
|
type: Injectable
|
9
9
|
}] });
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci1ob3N0LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9tb2R1bGVzL3ZpZXdrZWVwZXIvdmlld2tlZXBlci1ob3N0LW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLHdCQUF3Qjs7c0hBQXhCLHdCQUF3QjswSEFBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVZpZXdrZWVwZXJPcHRpb25zIH0gZnJvbSAnLi92aWV3a2VlcGVyLW9wdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5Vmlld2tlZXBlckhvc3RPcHRpb25zIGltcGxlbWVudHMgU2t5Vmlld2tlZXBlck9wdGlvbnMge1xuICBwdWJsaWMgYm91bmRhcnlFbD86IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyBlbD86IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyBzY3JvbGxhYmxlSG9zdD86IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyBzZXRXaWR0aD86IGJvb2xlYW47XG5cbiAgcHVibGljIHZlcnRpY2FsT2Zmc2V0PzogbnVtYmVyO1xuXG4gIHB1YmxpYyB2ZXJ0aWNhbE9mZnNldEVsPzogSFRNTEVsZW1lbnQ7XG5cbiAgcHVibGljIHZpZXdwb3J0TWFyZ2luVG9wPzogbnVtYmVyO1xufVxuIl19
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Directive, Input, Optional } from '@angular/core';
|
1
|
+
import { Directive, Input, Optional, } from '@angular/core';
|
2
2
|
import { Subject } from 'rxjs';
|
3
3
|
import { takeUntil } from 'rxjs/operators';
|
4
4
|
import * as i0 from "@angular/core";
|
@@ -25,7 +25,7 @@ export class SkyViewkeeperDirective {
|
|
25
25
|
this.observer = this.mutationObserverSvc.create(() => this.detectElements());
|
26
26
|
this.observer.observe(this.el.nativeElement, {
|
27
27
|
childList: true,
|
28
|
-
subtree: true
|
28
|
+
subtree: true,
|
29
29
|
});
|
30
30
|
}
|
31
31
|
ngOnDestroy() {
|
@@ -75,18 +75,21 @@ export class SkyViewkeeperDirective {
|
|
75
75
|
else {
|
76
76
|
this.scrollableHostWatchUnsubscribe = new Subject();
|
77
77
|
}
|
78
|
-
this.scrollableHostService
|
78
|
+
this.scrollableHostService
|
79
|
+
.watchScrollableHost(this.el)
|
79
80
|
.pipe(takeUntil(this.scrollableHostWatchUnsubscribe))
|
80
|
-
.subscribe(scrollableHost => {
|
81
|
+
.subscribe((scrollableHost) => {
|
81
82
|
this.destroyViewkeepers();
|
82
83
|
let previousViewkeeperEl;
|
83
84
|
for (const viewkeeperEl of viewkeeperEls) {
|
84
85
|
this.viewkeepers.push(this.viewkeeperSvc.create({
|
85
86
|
boundaryEl: this.el.nativeElement,
|
86
|
-
scrollableHost: scrollableHost instanceof HTMLElement
|
87
|
+
scrollableHost: scrollableHost instanceof HTMLElement
|
88
|
+
? scrollableHost
|
89
|
+
: undefined,
|
87
90
|
el: viewkeeperEl,
|
88
91
|
setWidth: true,
|
89
|
-
verticalOffsetEl: previousViewkeeperEl
|
92
|
+
verticalOffsetEl: previousViewkeeperEl,
|
90
93
|
}));
|
91
94
|
previousViewkeeperEl = viewkeeperEl;
|
92
95
|
}
|
@@ -95,16 +98,16 @@ export class SkyViewkeeperDirective {
|
|
95
98
|
}
|
96
99
|
}
|
97
100
|
}
|
98
|
-
SkyViewkeeperDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
99
|
-
SkyViewkeeperDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
101
|
+
SkyViewkeeperDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyViewkeeperDirective, deps: [{ token: i0.ElementRef }, { token: i1.MutationObserverService }, { token: i2.SkyViewkeeperService }, { token: i3.SkyScrollableHostService, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
102
|
+
SkyViewkeeperDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.14", type: SkyViewkeeperDirective, selector: "[skyViewkeeper]", inputs: { skyViewkeeper: "skyViewkeeper" }, ngImport: i0 });
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyViewkeeperDirective, decorators: [{
|
101
104
|
type: Directive,
|
102
105
|
args: [{
|
103
|
-
selector: '[skyViewkeeper]'
|
106
|
+
selector: '[skyViewkeeper]',
|
104
107
|
}]
|
105
108
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.MutationObserverService }, { type: i2.SkyViewkeeperService }, { type: i3.SkyScrollableHostService, decorators: [{
|
106
109
|
type: Optional
|
107
110
|
}] }]; }, propDecorators: { skyViewkeeper: [{
|
108
111
|
type: Input
|
109
112
|
}] } });
|
110
|
-
//# sourceMappingURL=data:application/json;base64,
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9tb2R1bGVzL3ZpZXdrZWVwZXIvdmlld2tlZXBlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBR0wsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVkzQyxNQUFNLE9BQU8sc0JBQXNCO0lBc0JqQyxZQUNVLEVBQWMsRUFDZCxtQkFBNEMsRUFDNUMsYUFBbUMsRUFDdkIscUJBQStDO1FBSDNELE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXlCO1FBQzVDLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUN2QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQTBCO1FBWjdELGdCQUFXLEdBQW9CLEVBQUUsQ0FBQztRQU1sQyxtQ0FBOEIsR0FBOEIsU0FBUyxDQUFDO0lBTzNFLENBQUM7SUExQkosSUFDVyxhQUFhLENBQUMsS0FBZTtRQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUU1QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQW1CTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUNuRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQ3RCLENBQUM7UUFFRixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJ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SSxDQUFDLEVBQUUsQ0FBQyxhQUFhO3dCQUNqQyxjQUFjLEVBQ1osY0FBYyxZQUFZLFdBQVc7NEJBQ25DLENBQUMsQ0FBQyxjQUFjOzRCQUNoQixDQUFDLENBQUMsU0FBUzt3QkFDZixFQUFFLEVBQUUsWUFBWTt3QkFDaEIsUUFBUSxFQUFFLElBQUk7d0JBQ2QsZ0JBQWdCLEVBQUUsb0JBQW9CO3FCQUN2QyxDQUFDLENBQ0gsQ0FBQztvQkFFRixvQkFBb0IsR0FBRyxZQUFZLENBQUM7aUJBQ3JDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFTCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsYUFBYSxDQUFDO1NBQzNDO0lBQ0gsQ0FBQzs7b0hBbklVLHNCQUFzQjt3R0FBdEIsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7OzBCQTJCSSxRQUFROzRDQXhCQSxhQUFhO3NCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTXV0YXRpb25PYnNlcnZlclNlcnZpY2UgfSBmcm9tICcuLi9tdXRhdGlvbi9tdXRhdGlvbi1vYnNlcnZlci1zZXJ2aWNlJztcbmltcG9ydCB7IFNreVNjcm9sbGFibGVIb3N0U2VydmljZSB9IGZyb20gJy4uL3Njcm9sbGFibGUtaG9zdC9zY3JvbGxhYmxlLWhvc3Quc2VydmljZSc7XG5cbmltcG9ydCB7IFNreVZpZXdrZWVwZXIgfSBmcm9tICcuL3ZpZXdrZWVwZXInO1xuXG5pbXBvcnQgeyBTa3lWaWV3a2VlcGVyU2VydmljZSB9IGZyb20gJy4vdmlld2tlZXBlci5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreVZpZXdrZWVwZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5Vmlld2tlZXBlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBza3lWaWV3a2VlcGVyKHZhbHVlOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuX3NreVZpZXdrZWVwZXIgPSB2YWx1ZTtcblxuICAgIHRoaXMuZGV0ZWN0RWxlbWVudHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2t5Vmlld2tlZXBlcigpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3NreVZpZXdrZWVwZXI7XG4gIH1cblxuICBwcml2YXRlIF9za3lWaWV3a2VlcGVyOiBzdHJpbmdbXTtcblxuICBwcml2YXRlIHZpZXdrZWVwZXJzOiBTa3lWaWV3a2VlcGVyW10gPSBbXTtcblxuICBwcml2YXRlIG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xuXG4gIHByaXZhdGUgY3VycmVudFZpZXdrZWVwZXJFbHM6IEhUTUxFbGVtZW50W107XG5cbiAgcHJpdmF0ZSBzY3JvbGxhYmxlSG9zdFdhdGNoVW5zdWJzY3JpYmU6IFN1YmplY3Q8dm9pZD4gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIG11dGF0aW9uT2JzZXJ2ZXJTdmM6IE11dGF0aW9uT2JzZXJ2ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdmlld2tlZXBlclN2YzogU2t5Vmlld2tlZXBlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBzY3JvbGxhYmxlSG9zdFNlcnZpY2U6IFNreVNjcm9sbGFibGVIb3N0U2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub2JzZXJ2ZXIgPSB0aGlzLm11dGF0aW9uT2JzZXJ2ZXJTdmMuY3JlYXRlKCgpID0+XG4gICAgICB0aGlzLmRldGVjdEVsZW1lbnRzKClcbiAgICApO1xuXG4gICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwge1xuICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcblxuICAgIHRoaXMuZGVzdHJveVZpZXdrZWVwZXJzKCk7XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lWaWV3a2VlcGVycygpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHZpZXdrZWVwZXIgb2YgdGhpcy52aWV3a2VlcGVycykge1xuICAgICAgdGhpcy52aWV3a2VlcGVyU3ZjLmRlc3Ryb3kodmlld2tlZXBlcik7XG4gICAgfVxuXG4gICAgdGhpcy52aWV3a2VlcGVycyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWaWV3a2VlcGVyRWxzKCk6IEhUTUxFbGVtZW50W10ge1xuICAgIGxldCB2aWV3a2VlcGVyRWxzOiBIVE1MRWxlbWVudFtdO1xuXG4gICAgaWYgKHRoaXMuc2t5Vmlld2tlZXBlcikge1xuICAgICAgdmlld2tlZXBlckVscyA9IFtdO1xuXG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5za3lWaWV3a2VlcGVyKSB7XG4gICAgICAgIGxldCBtYXRjaGluZ0VscyA9IEFycmF5LmZyb20oXG4gICAgICAgICAgKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvckFsbChpdGVtKVxuICAgICAgICApIGFzIEhUTUxFbGVtZW50W107XG5cbiAgICAgICAgdmlld2tlZXBlckVscyA9IFsuLi52aWV3a2VlcGVyRWxzLCAuLi5tYXRjaGluZ0Vsc107XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHZpZXdrZWVwZXJFbHM7XG4gIH1cblxuICBwcml2YXRlIHZpZXdrZWVwZXJFbHNDaGFuZ2VkKHZpZXdrZWVwZXJFbHM6IEhUTUxFbGVtZW50W10pOiBib29sZWFuIHtcbiAgICBpZiAoIXZpZXdrZWVwZXJFbHMgIT09ICF0aGlzLmN1cnJlbnRWaWV3a2VlcGVyRWxzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodmlld2tlZXBlckVscyAmJiB0aGlzLmN1cnJlbnRWaWV3a2VlcGVyRWxzKSB7XG4gICAgICBpZiAodmlld2tlZXBlckVscy5sZW5ndGggIT09IHRoaXMuY3VycmVudFZpZXdrZWVwZXJFbHMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBpID0gMCwgbiA9IHZpZXdrZWVwZXJFbHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgIGlmICh2aWV3a2VlcGVyRWxzW2ldICE9PSB0aGlzLmN1cnJlbnRWaWV3a2VlcGVyRWxzW2ldKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGRldGVjdEVsZW1lbnRzKCk6IHZvaWQge1xuICAgIGxldCB2aWV3a2VlcGVyRWxzID0gdGhpcy5nZXRWaWV3a2VlcGVyRWxzKCk7XG5cbiAgICBpZiAodGhpcy52aWV3a2VlcGVyRWxzQ2hhbmdlZCh2aWV3a2VlcGVyRWxzKSkge1xuICAgICAgaWYgKHRoaXMuc2Nyb2xsYWJsZUhvc3RXYXRjaFVuc3Vic2NyaWJlKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsYWJsZUhvc3RXYXRjaFVuc3Vic2NyaWJlLm5leHQoKTtcbiAgICAgICAgdGhpcy5zY3JvbGxhYmxlSG9zdFdhdGNoVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zY3JvbGxhYmxlSG9zdFdhdGNoVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNjcm9sbGFibGVIb3N0U2VydmljZVxuICAgICAgICAud2F0Y2hTY3JvbGxhYmxlSG9zdCh0aGlzLmVsKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5zY3JvbGxhYmxlSG9zdFdhdGNoVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChzY3JvbGxhYmxlSG9zdCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGVzdHJveVZpZXdrZWVwZXJzKCk7XG5cbiAgICAgICAgICBsZXQgcHJldmlvdXNWaWV3a2VlcGVyRWw6IEhUTUxFbGVtZW50O1xuXG4gICAgICAgICAgZm9yIChjb25zdCB2aWV3a2VlcGVyRWwgb2Ygdmlld2tlZXBlckVscykge1xuICAgICAgICAgICAgdGhpcy52aWV3a2VlcGVycy5wdXNoKFxuICAgICAgICAgICAgICB0aGlzLnZpZXdrZWVwZXJTdmMuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBib3VuZGFyeUVsOiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgc2Nyb2xsYWJsZUhvc3Q6XG4gICAgICAgICAgICAgICAgICBzY3JvbGxhYmxlSG9zdCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgID8gc2Nyb2xsYWJsZUhvc3RcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgZWw6IHZpZXdrZWVwZXJFbCxcbiAgICAgICAgICAgICAgICBzZXRXaWR0aDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbE9mZnNldEVsOiBwcmV2aW91c1ZpZXdrZWVwZXJFbCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHByZXZpb3VzVmlld2tlZXBlckVsID0gdmlld2tlZXBlckVsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY3VycmVudFZpZXdrZWVwZXJFbHMgPSB2aWV3a2VlcGVyRWxzO1xuICAgIH1cbiAgfVxufVxuIl19
|
@@ -31,7 +31,7 @@ function getOffset(el, scrollableHost) {
|
|
31
31
|
const parent = scrollableHost ? scrollableHost : document.documentElement;
|
32
32
|
return {
|
33
33
|
top: rect.top + parent.scrollTop,
|
34
|
-
left: rect.left + parent.scrollLeft
|
34
|
+
left: rect.left + parent.scrollLeft,
|
35
35
|
};
|
36
36
|
}
|
37
37
|
function px(value) {
|
@@ -53,7 +53,9 @@ function setElPosition(el, left, top, width, marginTop) {
|
|
53
53
|
}
|
54
54
|
function getHeightWithMargin(el) {
|
55
55
|
const computedStyle = getComputedStyle(el);
|
56
|
-
return el.offsetHeight +
|
56
|
+
return (el.offsetHeight +
|
57
|
+
parseInt(computedStyle.marginTop, 10) +
|
58
|
+
parseInt(computedStyle.marginBottom, 10));
|
57
59
|
}
|
58
60
|
function createCustomEvent(name) {
|
59
61
|
const evt = document.createEvent('CustomEvent');
|
@@ -81,6 +83,17 @@ export class SkyViewkeeper {
|
|
81
83
|
ensureStyleEl();
|
82
84
|
this.syncElPosition();
|
83
85
|
}
|
86
|
+
set viewportMarginTop(margin) {
|
87
|
+
this._viewportMarginTop = margin;
|
88
|
+
}
|
89
|
+
get viewportMarginTop() {
|
90
|
+
if (this.scrollableHost) {
|
91
|
+
return 0;
|
92
|
+
}
|
93
|
+
else {
|
94
|
+
return this._viewportMarginTop;
|
95
|
+
}
|
96
|
+
}
|
84
97
|
syncElPosition() {
|
85
98
|
const verticalOffset = this.calculateVerticalOffset();
|
86
99
|
// When the element isn't visible, its size can't be calculated, so don't attempt syncing position in this case.
|
@@ -110,9 +123,7 @@ export class SkyViewkeeper {
|
|
110
123
|
if (this.verticalOffsetEl) {
|
111
124
|
this.verticalOffsetEl.removeEventListener(EVT_AFTER_VIEWKEEPER_SYNC, this.syncElPositionHandler);
|
112
125
|
}
|
113
|
-
this.el =
|
114
|
-
this.boundaryEl =
|
115
|
-
this.verticalOffsetEl = undefined;
|
126
|
+
this.el = this.boundaryEl = this.verticalOffsetEl = undefined;
|
116
127
|
this.isDestroyed = true;
|
117
128
|
}
|
118
129
|
}
|
@@ -127,7 +138,8 @@ export class SkyViewkeeper {
|
|
127
138
|
this.el.classList.remove(CLS_VIEWKEEPER_FIXED);
|
128
139
|
this.currentElFixedLeft =
|
129
140
|
this.currentElFixedTop =
|
130
|
-
this.currentElFixedWidth =
|
141
|
+
this.currentElFixedWidth =
|
142
|
+
undefined;
|
131
143
|
let width;
|
132
144
|
if (this.setWidth) {
|
133
145
|
width = 'auto';
|
@@ -139,7 +151,7 @@ export class SkyViewkeeper {
|
|
139
151
|
if (this.verticalOffsetEl) {
|
140
152
|
const verticalOffsetElTopStyle = this.verticalOffsetEl.style.top;
|
141
153
|
const verticalOffsetElTop = parseInt(verticalOffsetElTopStyle, 10) || 0;
|
142
|
-
offset +=
|
154
|
+
offset += this.verticalOffsetEl.offsetHeight + verticalOffsetElTop;
|
143
155
|
}
|
144
156
|
else if (this.scrollableHost) {
|
145
157
|
offset += this.scrollableHost.getBoundingClientRect().top;
|
@@ -155,7 +167,9 @@ export class SkyViewkeeper {
|
|
155
167
|
else {
|
156
168
|
anchorTop = getOffset(this.el, this.scrollableHost).top;
|
157
169
|
}
|
158
|
-
doFixEl =
|
170
|
+
doFixEl =
|
171
|
+
boundaryInfo.scrollTop + verticalOffset + this.viewportMarginTop >
|
172
|
+
anchorTop;
|
159
173
|
return doFixEl;
|
160
174
|
}
|
161
175
|
getFixedStyles(boundaryInfo, verticalOffset) {
|
@@ -164,13 +178,15 @@ export class SkyViewkeeper {
|
|
164
178
|
// will be 0 (fully visible) unless the user is scrolling the boundary out of view.
|
165
179
|
// In that case, the element should begin to scroll out of view with the
|
166
180
|
// rest of the boundary by setting its top position to a negative value.
|
167
|
-
elFixedTop = Math.min(
|
181
|
+
elFixedTop = Math.min(boundaryInfo.boundaryBottom -
|
182
|
+
boundaryInfo.elHeight -
|
183
|
+
boundaryInfo.scrollTop, verticalOffset);
|
168
184
|
const elFixedWidth = boundaryInfo.boundaryEl.getBoundingClientRect().width;
|
169
185
|
const elFixedLeft = boundaryInfo.boundaryOffset.left - boundaryInfo.scrollLeft;
|
170
186
|
return {
|
171
187
|
elFixedLeft,
|
172
188
|
elFixedTop,
|
173
|
-
elFixedWidth
|
189
|
+
elFixedWidth,
|
174
190
|
};
|
175
191
|
}
|
176
192
|
needsUpdating(doFixEl, fixedStyles) {
|
@@ -179,7 +195,8 @@ export class SkyViewkeeper {
|
|
179
195
|
this.currentElFixedTop === fixedStyles.elFixedTop &&
|
180
196
|
this.currentElFixedWidth === fixedStyles.elFixedWidth) ||
|
181
197
|
(!doFixEl &&
|
182
|
-
!(this.currentElFixedLeft !== undefined &&
|
198
|
+
!(this.currentElFixedLeft !== undefined &&
|
199
|
+
this.currentElFixedLeft !== null))) {
|
183
200
|
// The element is either currently fixed and its position and width do not need
|
184
201
|
// to change, or the element is not currently fixed and does not need to be fixed.
|
185
202
|
// No changes are needed.
|
@@ -215,8 +232,12 @@ export class SkyViewkeeper {
|
|
215
232
|
const boundaryOffset = getOffset(boundaryEl, this.scrollableHost);
|
216
233
|
const boundaryTop = boundaryOffset.top;
|
217
234
|
const boundaryBottom = boundaryTop + boundaryEl.getBoundingClientRect().height;
|
218
|
-
const scrollLeft = this.scrollableHost
|
219
|
-
|
235
|
+
const scrollLeft = this.scrollableHost
|
236
|
+
? this.scrollableHost.scrollLeft
|
237
|
+
: document.documentElement.scrollLeft;
|
238
|
+
const scrollTop = this.scrollableHost
|
239
|
+
? this.scrollableHost.scrollTop
|
240
|
+
: document.documentElement.scrollTop;
|
220
241
|
const elHeight = getHeightWithMargin(this.el);
|
221
242
|
return {
|
222
243
|
boundaryBottom,
|
@@ -226,8 +247,8 @@ export class SkyViewkeeper {
|
|
226
247
|
scrollLeft,
|
227
248
|
scrollTop,
|
228
249
|
spacerId,
|
229
|
-
spacerEl
|
250
|
+
spacerEl,
|
230
251
|
};
|
231
252
|
}
|
232
253
|
}
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL21vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdCQSxNQUFNLG9CQUFvQixHQUFHLHNCQUFzQixDQUFDO0FBQ3BELE1BQU0seUJBQXlCLEdBQUcscUJBQXFCLENBQUM7QUFFeEQsSUFBSSxPQUF5QixDQUFDO0FBQzlCLElBQUksV0FBbUIsQ0FBQztBQUV4QixTQUFTLGFBQWE7SUFDcEIsSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNaLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7R0FDbkMsb0JBQW9COzs7Ozs7O3FCQU9GLG9CQUFvQjs7OztDQUl4QyxDQUNJLENBQUM7UUFFRixPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXpCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ3BDO0FBQ0gsQ0FBQztBQUVELFNBQVMsTUFBTTtJQUNiLFdBQVcsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFckMsT0FBTyxhQUFhLEdBQUcsV0FBVyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxFQUFlLEVBQUUsY0FBNEI7SUFDOUQsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDeEMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7SUFFMUUsT0FBTztRQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTO1FBQ2hDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVO0tBQ3BDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxFQUFFLENBQUMsS0FBc0I7SUFDaEMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUU1QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQztLQUN4QjtJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FDcEIsRUFBZSxFQUNmLElBQXFCLEVBQ3JCLEdBQW9CLEVBQ3BCLEtBQXNCLEVBQ3RCLFNBQTBCO0lBRTFCLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QixFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRW5DLHdCQUF3QjtJQUN4QixrQkFBa0I7SUFDbEIsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO1FBQ2xCLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM1QjtBQUNILENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEVBQWU7SUFDMUMsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFM0MsT0FBTyxFQUFFLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzVHLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLElBQVM7SUFDbEMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVoRCxHQUFHLENBQUMsZUFBZSxDQUNqQixJQUFJLEVBQ0osS0FBSyxFQUNMLEtBQUssRUFDTCxTQUFTLENBQ1YsQ0FBQztJQUVGLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sT0FBTyxhQUFhO0lBNEJ4QixZQUFZLE9BQTZCO1FBQ3ZDLE9BQU8sR0FBRyxPQUFPLElBQUksMEJBQTBCLENBQUMsRUFBRSxDQUFDO1FBRW5ELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQzdDLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixJQUFJLENBQUMsQ0FBQztRQUV4RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXpELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FDcEMseUJBQXlCLEVBQ3pCLElBQUksQ0FBQyxxQkFBcUIsQ0FDM0IsQ0FBQztTQUNIO1FBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUM5RCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFekUsYUFBYSxFQUFFLENBQUM7UUFFaEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxjQUFjO1FBQ25CLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBRXRELGdIQUFnSDtRQUNoSCxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksS0FBSyxDQUFDLEVBQUU7WUFDM0QsT0FBTztTQUNSO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzVDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRXRFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRS9ELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDNUMsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ2hCO1NBQ0Y7UUFFRCxNQUFNLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdkUsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNqRSxNQUFNLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFFNUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRWYsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FDdkMseUJBQXlCLEVBQ3pCLElBQUksQ0FBQyxxQkFBcUIsQ0FDM0IsQ0FBQzthQUNIO1lBRUQsSUFBSSxDQUFDLEVBQUU7Z0JBQ0wsSUFBSSxDQUFDLFVBQVU7b0JBQ2YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztZQUVwQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVPLE9BQU87UUFDYixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRTdELElBQUksUUFBUSxFQUFFO1lBQ1osUUFBUSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDOUM7UUFFRCxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsa0JBQWtCO1lBQ3JCLElBQUksQ0FBQyxpQkFBaUI7Z0JBQ3RCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7UUFFdkMsSUFBSSxLQUFhLENBQUM7UUFFbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLEtBQUssR0FBRyxNQUFNLENBQUM7U0FDaEI7UUFFRCxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFFakMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUNqRSxNQUFNLG1CQUFtQixHQUFHLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFeEUsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO1NBQ3RFO2FBQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxDQUFDO1NBQzNEO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxZQUF1QyxFQUFFLGNBQXNCO1FBQ2pGLElBQUksU0FBaUIsQ0FBQztRQUN0QixJQUFJLE9BQWdCLENBQUM7UUFFckIsSUFBSSxZQUFZLENBQUMsUUFBUSxFQUFFO1lBQ3pCLFNBQVMsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDO1NBQ3ZFO2FBQU07WUFDTCxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztTQUN6RDtRQUVELE9BQU8sR0FBRyxZQUFZLENBQUMsU0FBUyxHQUFHLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsU0FBUyxDQUFDO1FBRXZGLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxjQUFjLENBQ3BCLFlBQXVDLEVBQ3ZDLGNBQXNCO1FBRXRCLElBQUksVUFBa0IsQ0FBQztRQUV2QixvRkFBb0Y7UUFDcEYsbUZBQW1GO1FBQ25GLHdFQUF3RTtRQUN4RSx3RUFBd0U7UUFDeEUsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ25CLENBQUMsWUFBWSxDQUFDLGNBQWMsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsWUFBWSxDQUFDLFNBQVMsRUFDOUUsY0FBYyxDQUNmLENBQUM7UUFFRixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxDQUFDO1FBQzNFLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxjQUFjLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUM7UUFFL0UsT0FBTztZQUNMLFdBQVc7WUFDWCxVQUFVO1lBQ1YsWUFBWTtTQUNiLENBQUM7SUFDSixDQUFDO0lBRU8sYUFBYSxDQUFDLE9BQWdCLEVBQUUsV0FBcUM7UUFDM0UsSUFDRSxDQUNFLE9BQU87WUFDUCxJQUFJLENBQUMsa0JBQWtCLEtBQUssV0FBVyxDQUFDLFdBQVc7WUFDbkQsSUFBSSxDQUFDLGlCQUFpQixLQUFLLFdBQVcsQ0FBQyxVQUFVO1lBQ2pELElBQUksQ0FBQyxtQkFBbUIsS0FBSyxXQUFXLENBQUMsWUFBWSxDQUN0RDtZQUNELENBQ0UsQ0FBQyxPQUFPO2dCQUNSLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxJQUFJLENBQUMsQ0FDN0UsRUFDRDtZQUNBLCtFQUErRTtZQUMvRSxrRkFBa0Y7WUFDbEYseUJBQXlCO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTyxLQUFLLENBQ1gsWUFBdUMsRUFDdkMsV0FBcUM7UUFFckMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUVuQiwwQkFBMEI7UUFDMUIsa0JBQWtCO1FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFO1lBQzFCLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFFM0MsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQyxRQUFRLENBQUMsRUFBRSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFDcEMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRXpDLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDdEQ7UUFFRCxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRXZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDO1FBQ2hELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDO1FBQ2xELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDO1FBRXBELElBQUksS0FBYSxDQUFDO1FBRWxCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixLQUFLLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQztTQUNsQztRQUVELGFBQWEsQ0FDWCxFQUFFLEVBQ0YsV0FBVyxDQUFDLFdBQVcsRUFDdkIsV0FBVyxDQUFDLFVBQVUsRUFDdEIsS0FBSyxFQUNMLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFTyxlQUFlO1FBQ3JCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVwQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRW5ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFbkMsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEUsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQztRQUN2QyxNQUFNLGNBQWMsR0FBRyxXQUFXLEdBQUcsVUFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFDO1FBRS9FLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQztRQUM5RyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7UUFFM0csTUFBTSxRQUFRLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTlDLE9BQU87WUFDTCxjQUFjO1lBQ2QsY0FBYztZQUNkLFVBQVU7WUFDVixRQUFRO1lBQ1IsVUFBVTtZQUNWLFNBQVM7WUFDVCxRQUFRO1lBQ1IsUUFBUTtTQUNULENBQUM7SUFDSixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvXG59IGZyb20gJy4vdmlld2tlZXBlci1ib3VuZGFyeS1pbmZvJztcblxuaW1wb3J0IHtcbiAgU2t5Vmlld2tlZXBlckZpeGVkU3R5bGVzXG59IGZyb20gJy4vdmlld2tlZXBlci1maXhlZC1zdHlsZXMnO1xuXG5pbXBvcnQge1xuICBTa3lWaWV3a2VlcGVyT2Zmc2V0XG59IGZyb20gJy4vdmlld2tlZXBlci1vZmZzZXQnO1xuXG5pbXBvcnQge1xuICBTa3lWaWV3a2VlcGVyT3B0aW9uc1xufSBmcm9tICcuL3ZpZXdrZWVwZXItb3B0aW9ucyc7XG5cbmNvbnN0IENMU19WSUVXS0VFUEVSX0ZJWEVEID0gJ3NreS12aWV3a2VlcGVyLWZpeGVkJztcbmNvbnN0IEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMgPSAnYWZ0ZXJWaWV3a2VlcGVyU3luYyc7XG5cbmxldCBzdHlsZUVsOiBIVE1MU3R5bGVFbGVtZW50O1xubGV0IG5leHRJZEluZGV4OiBudW1iZXI7XG5cbmZ1bmN0aW9uIGVuc3VyZVN0eWxlRWwoKTogdm9pZCB7XG4gIGlmICghc3R5bGVFbCkge1xuICAgIHN0eWxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgbGV0IGNzcyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGBcbi4ke0NMU19WSUVXS0VFUEVSX0ZJWEVEfSB7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICB6LWluZGV4OiA5OTk7XG4gIG9wYWNpdHk6IDAuOTU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5za3ktdGhlbWUtbW9kZXJuIC4ke0NMU19WSUVXS0VFUEVSX0ZJWEVEfSB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggOHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBvcGFjaXR5OiBpbml0aWFsO1xufVxuYFxuICAgICk7XG5cbiAgICBzdHlsZUVsLmFwcGVuZENoaWxkKGNzcyk7XG5cbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlRWwpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5leHRJZCgpOiBzdHJpbmcge1xuICBuZXh0SWRJbmRleCA9IChuZXh0SWRJbmRleCB8fCAwKSArIDE7XG5cbiAgcmV0dXJuICd2aWV3a2VlcGVyLScgKyBuZXh0SWRJbmRleDtcbn1cblxuZnVuY3Rpb24gZ2V0T2Zmc2V0KGVsOiBIVE1MRWxlbWVudCwgc2Nyb2xsYWJsZUhvc3Q/OiBIVE1MRWxlbWVudCk6IFNreVZpZXdrZWVwZXJPZmZzZXQge1xuICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IHBhcmVudCA9IHNjcm9sbGFibGVIb3N0ID8gc2Nyb2xsYWJsZUhvc3QgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgcmV0dXJuIHtcbiAgICB0b3A6IHJlY3QudG9wICsgcGFyZW50LnNjcm9sbFRvcCxcbiAgICBsZWZ0OiByZWN0LmxlZnQgKyBwYXJlbnQuc2Nyb2xsTGVmdFxuICB9O1xufVxuXG5mdW5jdGlvbiBweCh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHB4VmFsdWUgPSB2YWx1ZSA/IHZhbHVlLnRvU3RyaW5nKCkgOiAnJztcblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHB4VmFsdWUgPSB2YWx1ZSArICdweCc7XG4gIH1cblxuICByZXR1cm4gcHhWYWx1ZTtcbn1cblxuZnVuY3Rpb24gc2V0RWxQb3NpdGlvbihcbiAgZWw6IEhUTUxFbGVtZW50LFxuICBsZWZ0OiBudW1iZXIgfCBzdHJpbmcsXG4gIHRvcDogbnVtYmVyIHwgc3RyaW5nLFxuICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nLFxuICBtYXJnaW5Ub3A6IG51bWJlciB8IHN0cmluZ1xuKTogdm9pZCB7XG4gIGVsLnN0eWxlLnRvcCA9IHB4KHRvcCk7XG4gIGVsLnN0eWxlLmxlZnQgPSBweChsZWZ0KTtcbiAgZWwuc3R5bGUubWFyZ2luVG9wID0gcHgobWFyZ2luVG9wKTtcblxuICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlKi9cbiAgLyogc2FuaXR5IGNoZWNrICovXG4gIGlmICh3aWR0aCAhPT0gbnVsbCkge1xuICAgIGVsLnN0eWxlLndpZHRoID0gcHgod2lkdGgpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldEhlaWdodFdpdGhNYXJnaW4oZWw6IEhUTUxFbGVtZW50KTogbnVtYmVyIHtcbiAgY29uc3QgY29tcHV0ZWRTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZWwpO1xuXG4gIHJldHVybiBlbC5vZmZzZXRIZWlnaHQgKyBwYXJzZUludChjb21wdXRlZFN0eWxlLm1hcmdpblRvcCwgMTApICsgcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Cb3R0b20sIDEwKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ3VzdG9tRXZlbnQobmFtZTogYW55KTogQ3VzdG9tRXZlbnQ8YW55PiB7XG4gIGNvbnN0IGV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdDdXN0b21FdmVudCcpO1xuXG4gIGV2dC5pbml0Q3VzdG9tRXZlbnQoXG4gICAgbmFtZSxcbiAgICBmYWxzZSxcbiAgICBmYWxzZSxcbiAgICB1bmRlZmluZWRcbiAgKTtcblxuICByZXR1cm4gZXZ0O1xufVxuXG5leHBvcnQgY2xhc3MgU2t5Vmlld2tlZXBlciB7XG5cbiAgcHJpdmF0ZSBzZXRXaWR0aDogYm9vbGVhbjtcblxuICBwcml2YXRlIGlkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBlbDogSFRNTEVsZW1lbnQ7XG5cbiAgcHJpdmF0ZSBib3VuZGFyeUVsOiBIVE1MRWxlbWVudDtcblxuICBwcml2YXRlIHZlcnRpY2FsT2Zmc2V0OiBudW1iZXI7XG5cbiAgcHJpdmF0ZSB2ZXJ0aWNhbE9mZnNldEVsOiBIVE1MRWxlbWVudDtcblxuICBwcml2YXRlIHZpZXdwb3J0TWFyZ2luVG9wOiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBpc0Rlc3Ryb3llZDogYm9vbGVhbjtcblxuICBwcml2YXRlIGN1cnJlbnRFbEZpeGVkVG9wOiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBjdXJyZW50RWxGaXhlZExlZnQ6IG51bWJlcjtcblxuICBwcml2YXRlIGN1cnJlbnRFbEZpeGVkV2lkdGg6IG51bWJlcjtcblxuICBwcml2YXRlIHNjcm9sbGFibGVIb3N0OiBIVE1MRWxlbWVudDtcblxuICBwcml2YXRlIHN5bmNFbFBvc2l0aW9uSGFuZGxlcjogKCkgPT4gdm9pZDtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBTa3lWaWV3a2VlcGVyT3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIHt9O1xuXG4gICAgdGhpcy5zZXRXaWR0aCA9IG9wdGlvbnMuc2V0V2lkdGg7XG4gICAgdGhpcy5pZCA9IG5leHRJZCgpO1xuICAgIHRoaXMuZWwgPSBvcHRpb25zLmVsO1xuICAgIHRoaXMuYm91bmRhcnlFbCA9IG9wdGlvbnMuYm91bmRhcnlFbDtcbiAgICB0aGlzLnNjcm9sbGFibGVIb3N0ID0gb3B0aW9ucy5zY3JvbGxhYmxlSG9zdDtcbiAgICB0aGlzLnZlcnRpY2FsT2Zmc2V0ID0gb3B0aW9ucy52ZXJ0aWNhbE9mZnNldCB8fCAwO1xuICAgIHRoaXMudmVydGljYWxPZmZzZXRFbCA9IG9wdGlvbnMudmVydGljYWxPZmZzZXRFbDtcbiAgICB0aGlzLnZpZXdwb3J0TWFyZ2luVG9wID0gb3B0aW9ucy52aWV3cG9ydE1hcmdpblRvcCB8fCAwO1xuXG4gICAgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXIgPSAoKSA9PiB0aGlzLnN5bmNFbFBvc2l0aW9uKCk7XG5cbiAgICBpZiAodGhpcy52ZXJ0aWNhbE9mZnNldEVsKSB7XG4gICAgICB0aGlzLnZlcnRpY2FsT2Zmc2V0RWwuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgRVZUX0FGVEVSX1ZJRVdLRUVQRVJfU1lOQyxcbiAgICAgICAgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyLCB0cnVlKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXIpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyKTtcblxuICAgIGVuc3VyZVN0eWxlRWwoKTtcblxuICAgIHRoaXMuc3luY0VsUG9zaXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBzeW5jRWxQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCB2ZXJ0aWNhbE9mZnNldCA9IHRoaXMuY2FsY3VsYXRlVmVydGljYWxPZmZzZXQoKTtcblxuICAgIC8vIFdoZW4gdGhlIGVsZW1lbnQgaXNuJ3QgdmlzaWJsZSwgaXRzIHNpemUgY2FuJ3QgYmUgY2FsY3VsYXRlZCwgc28gZG9uJ3QgYXR0ZW1wdCBzeW5jaW5nIHBvc2l0aW9uIGluIHRoaXMgY2FzZS5cbiAgICBpZiAodGhpcy5lbC5vZmZzZXRXaWR0aCA9PT0gMCAmJiB0aGlzLmVsLm9mZnNldEhlaWdodCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJvdW5kYXJ5SW5mbyA9IHRoaXMuZ2V0Qm91bmRhcnlJbmZvKCk7XG4gICAgY29uc3QgZml4ZWRTdHlsZXMgPSB0aGlzLmdldEZpeGVkU3R5bGVzKGJvdW5kYXJ5SW5mbywgdmVydGljYWxPZmZzZXQpO1xuXG4gICAgY29uc3QgZG9GaXhFbCA9IHRoaXMuc2hvdWxkRml4RWwoYm91bmRhcnlJbmZvLCB2ZXJ0aWNhbE9mZnNldCk7XG5cbiAgICBpZiAodGhpcy5uZWVkc1VwZGF0aW5nKGRvRml4RWwsIGZpeGVkU3R5bGVzKSkge1xuICAgICAgaWYgKGRvRml4RWwpIHtcbiAgICAgICAgdGhpcy5maXhFbChib3VuZGFyeUluZm8sIGZpeGVkU3R5bGVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudW5maXhFbCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGV2dCA9IGNyZWF0ZUN1c3RvbUV2ZW50KEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMpO1xuXG4gICAgdGhpcy5lbC5kaXNwYXRjaEV2ZW50KGV2dCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnN5bmNFbFBvc2l0aW9uSGFuZGxlciwgdHJ1ZSk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXIpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ29yaWVudGF0aW9uY2hhbmdlJywgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXIpO1xuXG4gICAgICB0aGlzLnVuZml4RWwoKTtcblxuICAgICAgaWYgKHRoaXMudmVydGljYWxPZmZzZXRFbCkge1xuICAgICAgICB0aGlzLnZlcnRpY2FsT2Zmc2V0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICBFVlRfQUZURVJfVklFV0tFRVBFUl9TWU5DLFxuICAgICAgICAgIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZWwgPVxuICAgICAgICB0aGlzLmJvdW5kYXJ5RWwgPVxuICAgICAgICB0aGlzLnZlcnRpY2FsT2Zmc2V0RWwgPSB1bmRlZmluZWQ7XG5cbiAgICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3BhY2VySWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZCArICctc3BhY2VyJztcbiAgfVxuXG4gIHByaXZhdGUgdW5maXhFbCgpOiB2b2lkIHtcbiAgICBjb25zdCBzcGFjZXJFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZ2V0U3BhY2VySWQoKSk7XG5cbiAgICBpZiAoc3BhY2VyRWwpIHtcbiAgICAgIHNwYWNlckVsLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoc3BhY2VyRWwpO1xuICAgIH1cblxuICAgIHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZShDTFNfVklFV0tFRVBFUl9GSVhFRCk7XG5cbiAgICB0aGlzLmN1cnJlbnRFbEZpeGVkTGVmdCA9XG4gICAgICB0aGlzLmN1cnJlbnRFbEZpeGVkVG9wID1cbiAgICAgIHRoaXMuY3VycmVudEVsRml4ZWRXaWR0aCA9IHVuZGVmaW5lZDtcblxuICAgIGxldCB3aWR0aDogc3RyaW5nO1xuXG4gICAgaWYgKHRoaXMuc2V0V2lkdGgpIHtcbiAgICAgIHdpZHRoID0gJ2F1dG8nO1xuICAgIH1cblxuICAgIHNldEVsUG9zaXRpb24odGhpcy5lbCwgJycsICcnLCB3aWR0aCwgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVWZXJ0aWNhbE9mZnNldCgpOiBudW1iZXIge1xuICAgIGxldCBvZmZzZXQgPSB0aGlzLnZlcnRpY2FsT2Zmc2V0O1xuXG4gICAgaWYgKHRoaXMudmVydGljYWxPZmZzZXRFbCkge1xuICAgICAgY29uc3QgdmVydGljYWxPZmZzZXRFbFRvcFN0eWxlID0gdGhpcy52ZXJ0aWNhbE9mZnNldEVsLnN0eWxlLnRvcDtcbiAgICAgIGNvbnN0IHZlcnRpY2FsT2Zmc2V0RWxUb3AgPSBwYXJzZUludCh2ZXJ0aWNhbE9mZnNldEVsVG9wU3R5bGUsIDEwKSB8fCAwO1xuXG4gICAgICBvZmZzZXQgKz0gKHRoaXMudmVydGljYWxPZmZzZXRFbC5vZmZzZXRIZWlnaHQgKyB2ZXJ0aWNhbE9mZnNldEVsVG9wKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2Nyb2xsYWJsZUhvc3QpIHtcbiAgICAgIG9mZnNldCArPSB0aGlzLnNjcm9sbGFibGVIb3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcbiAgICB9XG5cbiAgICByZXR1cm4gb2Zmc2V0O1xuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRGaXhFbChib3VuZGFyeUluZm86IFNreVZpZXdrZWVwZXJCb3VuZGFyeUluZm8sIHZlcnRpY2FsT2Zmc2V0OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBsZXQgYW5jaG9yVG9wOiBudW1iZXI7XG4gICAgbGV0IGRvRml4RWw6IGJvb2xlYW47XG5cbiAgICBpZiAoYm91bmRhcnlJbmZvLnNwYWNlckVsKSB7XG4gICAgICBhbmNob3JUb3AgPSBnZXRPZmZzZXQoYm91bmRhcnlJbmZvLnNwYWNlckVsLCB0aGlzLnNjcm9sbGFibGVIb3N0KS50b3A7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFuY2hvclRvcCA9IGdldE9mZnNldCh0aGlzLmVsLCB0aGlzLnNjcm9sbGFibGVIb3N0KS50b3A7XG4gICAgfVxuXG4gICAgZG9GaXhFbCA9IGJvdW5kYXJ5SW5mby5zY3JvbGxUb3AgKyB2ZXJ0aWNhbE9mZnNldCArIHRoaXMudmlld3BvcnRNYXJnaW5Ub3AgPiBhbmNob3JUb3A7XG5cbiAgICByZXR1cm4gZG9GaXhFbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rml4ZWRTdHlsZXMoXG4gICAgYm91bmRhcnlJbmZvOiBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvLFxuICAgIHZlcnRpY2FsT2Zmc2V0OiBudW1iZXJcbiAgKTogU2t5Vmlld2tlZXBlckZpeGVkU3R5bGVzIHtcbiAgICBsZXQgZWxGaXhlZFRvcDogbnVtYmVyO1xuXG4gICAgLy8gSWYgdGhlIGVsZW1lbnQgbmVlZHMgdG8gYmUgZml4ZWQsIHRoaXMgd2lsbCBjYWxjdWxhdGUgaXRzIHBvc2l0aW9uLiAgVGhlIHBvc2l0aW9uXG4gICAgLy8gd2lsbCBiZSAwIChmdWxseSB2aXNpYmxlKSB1bmxlc3MgdGhlIHVzZXIgaXMgc2Nyb2xsaW5nIHRoZSBib3VuZGFyeSBvdXQgb2Ygdmlldy5cbiAgICAvLyBJbiB0aGF0IGNhc2UsIHRoZSBlbGVtZW50IHNob3VsZCBiZWdpbiB0byBzY3JvbGwgb3V0IG9mIHZpZXcgd2l0aCB0aGVcbiAgICAvLyByZXN0IG9mIHRoZSBib3VuZGFyeSBieSBzZXR0aW5nIGl0cyB0b3AgcG9zaXRpb24gdG8gYSBuZWdhdGl2ZSB2YWx1ZS5cbiAgICBlbEZpeGVkVG9wID0gTWF0aC5taW4oXG4gICAgICAoYm91bmRhcnlJbmZvLmJvdW5kYXJ5Qm90dG9tIC0gYm91bmRhcnlJbmZvLmVsSGVpZ2h0KSAtIGJvdW5kYXJ5SW5mby5zY3JvbGxUb3AsXG4gICAgICB2ZXJ0aWNhbE9mZnNldFxuICAgICk7XG5cbiAgICBjb25zdCBlbEZpeGVkV2lkdGggPSBib3VuZGFyeUluZm8uYm91bmRhcnlFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICBjb25zdCBlbEZpeGVkTGVmdCA9IGJvdW5kYXJ5SW5mby5ib3VuZGFyeU9mZnNldC5sZWZ0IC0gYm91bmRhcnlJbmZvLnNjcm9sbExlZnQ7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZWxGaXhlZExlZnQsXG4gICAgICBlbEZpeGVkVG9wLFxuICAgICAgZWxGaXhlZFdpZHRoXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgbmVlZHNVcGRhdGluZyhkb0ZpeEVsOiBib29sZWFuLCBmaXhlZFN0eWxlczogU2t5Vmlld2tlZXBlckZpeGVkU3R5bGVzKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgKFxuICAgICAgICBkb0ZpeEVsICYmXG4gICAgICAgIHRoaXMuY3VycmVudEVsRml4ZWRMZWZ0ID09PSBmaXhlZFN0eWxlcy5lbEZpeGVkTGVmdCAmJlxuICAgICAgICB0aGlzLmN1cnJlbnRFbEZpeGVkVG9wID09PSBmaXhlZFN0eWxlcy5lbEZpeGVkVG9wICYmXG4gICAgICAgIHRoaXMuY3VycmVudEVsRml4ZWRXaWR0aCA9PT0gZml4ZWRTdHlsZXMuZWxGaXhlZFdpZHRoXG4gICAgICApIHx8XG4gICAgICAoXG4gICAgICAgICFkb0ZpeEVsICYmXG4gICAgICAgICEodGhpcy5jdXJyZW50RWxGaXhlZExlZnQgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmN1cnJlbnRFbEZpeGVkTGVmdCAhPT0gbnVsbClcbiAgICAgIClcbiAgICApIHtcbiAgICAgIC8vIFRoZSBlbGVtZW50IGlzIGVpdGhlciBjdXJyZW50bHkgZml4ZWQgYW5kIGl0cyBwb3NpdGlvbiBhbmQgd2lkdGggZG8gbm90IG5lZWRcbiAgICAgIC8vIHRvIGNoYW5nZSwgb3IgdGhlIGVsZW1lbnQgaXMgbm90IGN1cnJlbnRseSBmaXhlZCBhbmQgZG9lcyBub3QgbmVlZCB0byBiZSBmaXhlZC5cbiAgICAgIC8vIE5vIGNoYW5nZXMgYXJlIG5lZWRlZC5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZml4RWwoXG4gICAgYm91bmRhcnlJbmZvOiBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvLFxuICAgIGZpeGVkU3R5bGVzOiBTa3lWaWV3a2VlcGVyRml4ZWRTdHlsZXNcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmVsO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICBpZiAoIWJvdW5kYXJ5SW5mby5zcGFjZXJFbCkge1xuICAgICAgY29uc3Qgc3BhY2VySGVpZ2h0ID0gYm91bmRhcnlJbmZvLmVsSGVpZ2h0O1xuXG4gICAgICBjb25zdCBzcGFjZXJFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgc3BhY2VyRWwuaWQgPSBib3VuZGFyeUluZm8uc3BhY2VySWQ7XG4gICAgICBzcGFjZXJFbC5zdHlsZS5oZWlnaHQgPSBweChzcGFjZXJIZWlnaHQpO1xuXG4gICAgICBlbC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzcGFjZXJFbCwgZWwubmV4dFNpYmxpbmcpO1xuICAgIH1cblxuICAgIGVsLmNsYXNzTGlzdC5hZGQoQ0xTX1ZJRVdLRUVQRVJfRklYRUQpO1xuXG4gICAgdGhpcy5jdXJyZW50RWxGaXhlZFRvcCA9IGZpeGVkU3R5bGVzLmVsRml4ZWRUb3A7XG4gICAgdGhpcy5jdXJyZW50RWxGaXhlZExlZnQgPSBmaXhlZFN0eWxlcy5lbEZpeGVkTGVmdDtcbiAgICB0aGlzLmN1cnJlbnRFbEZpeGVkV2lkdGggPSBmaXhlZFN0eWxlcy5lbEZpeGVkV2lkdGg7XG5cbiAgICBsZXQgd2lkdGg6IG51bWJlcjtcblxuICAgIGlmICh0aGlzLnNldFdpZHRoKSB7XG4gICAgICB3aWR0aCA9IGZpeGVkU3R5bGVzLmVsRml4ZWRXaWR0aDtcbiAgICB9XG5cbiAgICBzZXRFbFBvc2l0aW9uKFxuICAgICAgZWwsXG4gICAgICBmaXhlZFN0eWxlcy5lbEZpeGVkTGVmdCxcbiAgICAgIGZpeGVkU3R5bGVzLmVsRml4ZWRUb3AsXG4gICAgICB3aWR0aCxcbiAgICAgIHRoaXMudmlld3BvcnRNYXJnaW5Ub3BcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCb3VuZGFyeUluZm8oKTogU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyB7XG4gICAgY29uc3Qgc3BhY2VySWQgPSB0aGlzLmdldFNwYWNlcklkKCk7XG5cbiAgICBjb25zdCBzcGFjZXJFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNwYWNlcklkKTtcblxuICAgIGNvbnN0IGJvdW5kYXJ5RWwgPSB0aGlzLmJvdW5kYXJ5RWw7XG5cbiAgICBjb25zdCBib3VuZGFyeU9mZnNldCA9IGdldE9mZnNldChib3VuZGFyeUVsLCB0aGlzLnNjcm9sbGFibGVIb3N0KTtcbiAgICBjb25zdCBib3VuZGFyeVRvcCA9IGJvdW5kYXJ5T2Zmc2V0LnRvcDtcbiAgICBjb25zdCBib3VuZGFyeUJvdHRvbSA9IGJvdW5kYXJ5VG9wICsgYm91bmRhcnlFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG5cbiAgICBjb25zdCBzY3JvbGxMZWZ0ID0gdGhpcy5zY3JvbGxhYmxlSG9zdCA/IHRoaXMuc2Nyb2xsYWJsZUhvc3Quc2Nyb2xsTGVmdCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0O1xuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMuc2Nyb2xsYWJsZUhvc3QgPyB0aGlzLnNjcm9sbGFibGVIb3N0LnNjcm9sbFRvcCA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A7XG5cbiAgICBjb25zdCBlbEhlaWdodCA9IGdldEhlaWdodFdpdGhNYXJnaW4odGhpcy5lbCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYm91bmRhcnlCb3R0b20sXG4gICAgICBib3VuZGFyeU9mZnNldCxcbiAgICAgIGJvdW5kYXJ5RWwsXG4gICAgICBlbEhlaWdodCxcbiAgICAgIHNjcm9sbExlZnQsXG4gICAgICBzY3JvbGxUb3AsXG4gICAgICBzcGFjZXJJZCxcbiAgICAgIHNwYWNlckVsXG4gICAgfTtcbiAgfVxuXG59XG4iXX0=
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL21vZHVsZXMvdmlld2tlZXBlci92aWV3a2VlcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sb0JBQW9CLEdBQUcsc0JBQXNCLENBQUM7QUFDcEQsTUFBTSx5QkFBeUIsR0FBRyxxQkFBcUIsQ0FBQztBQUV4RCxJQUFJLE9BQXlCLENBQUM7QUFDOUIsSUFBSSxXQUFtQixDQUFDO0FBRXhCLFNBQVMsYUFBYTtJQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFO1FBQ1osT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUMsSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQztHQUNuQyxvQkFBb0I7Ozs7Ozs7cUJBT0Ysb0JBQW9COzs7O0NBSXhDLENBQUMsQ0FBQztRQUVDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFekIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDcEM7QUFDSCxDQUFDO0FBRUQsU0FBUyxNQUFNO0lBQ2IsV0FBVyxHQUFHLENBQUMsV0FBVyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVyQyxPQUFPLGFBQWEsR0FBRyxXQUFXLENBQUM7QUFDckMsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUNoQixFQUFlLEVBQ2YsY0FBNEI7SUFFNUIsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDeEMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7SUFFMUUsT0FBTztRQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTO1FB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SW5mbyB9IGZyb20gJy4vdmlld2tlZXBlci1ib3VuZGFyeS1pbmZvJztcblxuaW1wb3J0IHsgU2t5Vmlld2tlZXBlckZpeGVkU3R5bGVzIH0gZnJvbSAnLi92aWV3a2VlcGVyLWZpeGVkLXN0eWxlcyc7XG5cbmltcG9ydCB7IFNreVZpZXdrZWVwZXJPZmZzZXQgfSBmcm9tICcuL3ZpZXdrZWVwZXItb2Zmc2V0JztcblxuaW1wb3J0IHsgU2t5Vmlld2tlZXBlck9wdGlvbnMgfSBmcm9tICcuL3ZpZXdrZWVwZXItb3B0aW9ucyc7XG5cbmNvbnN0IENMU19WSUVXS0VFUEVSX0ZJWEVEID0gJ3NreS12aWV3a2VlcGVyLWZpeGVkJztcbmNvbnN0IEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMgPSAnYWZ0ZXJWaWV3a2VlcGVyU3luYyc7XG5cbmxldCBzdHlsZUVsOiBIVE1MU3R5bGVFbGVtZW50O1xubGV0IG5leHRJZEluZGV4OiBudW1iZXI7XG5cbmZ1bmN0aW9uIGVuc3VyZVN0eWxlRWwoKTogdm9pZCB7XG4gIGlmICghc3R5bGVFbCkge1xuICAgIHN0eWxlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgbGV0IGNzcyA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGBcbi4ke0NMU19WSUVXS0VFUEVSX0ZJWEVEfSB7XG4gIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50O1xuICB6LWluZGV4OiA5OTk7XG4gIG9wYWNpdHk6IDAuOTU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5za3ktdGhlbWUtbW9kZXJuIC4ke0NMU19WSUVXS0VFUEVSX0ZJWEVEfSB7XG4gIGJveC1zaGFkb3c6IDBweCAxcHggOHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICBvcGFjaXR5OiBpbml0aWFsO1xufVxuYCk7XG5cbiAgICBzdHlsZUVsLmFwcGVuZENoaWxkKGNzcyk7XG5cbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlRWwpO1xuICB9XG59XG5cbmZ1bmN0aW9uIG5leHRJZCgpOiBzdHJpbmcge1xuICBuZXh0SWRJbmRleCA9IChuZXh0SWRJbmRleCB8fCAwKSArIDE7XG5cbiAgcmV0dXJuICd2aWV3a2VlcGVyLScgKyBuZXh0SWRJbmRleDtcbn1cblxuZnVuY3Rpb24gZ2V0T2Zmc2V0KFxuICBlbDogSFRNTEVsZW1lbnQsXG4gIHNjcm9sbGFibGVIb3N0PzogSFRNTEVsZW1lbnRcbik6IFNreVZpZXdrZWVwZXJPZmZzZXQge1xuICBjb25zdCByZWN0ID0gZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIGNvbnN0IHBhcmVudCA9IHNjcm9sbGFibGVIb3N0ID8gc2Nyb2xsYWJsZUhvc3QgOiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cbiAgcmV0dXJuIHtcbiAgICB0b3A6IHJlY3QudG9wICsgcGFyZW50LnNjcm9sbFRvcCxcbiAgICBsZWZ0OiByZWN0LmxlZnQgKyBwYXJlbnQuc2Nyb2xsTGVmdCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gcHgodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCBweFZhbHVlID0gdmFsdWUgPyB2YWx1ZS50b1N0cmluZygpIDogJyc7XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICBweFZhbHVlID0gdmFsdWUgKyAncHgnO1xuICB9XG5cbiAgcmV0dXJuIHB4VmFsdWU7XG59XG5cbmZ1bmN0aW9uIHNldEVsUG9zaXRpb24oXG4gIGVsOiBIVE1MRWxlbWVudCxcbiAgbGVmdDogbnVtYmVyIHwgc3RyaW5nLFxuICB0b3A6IG51bWJlciB8IHN0cmluZyxcbiAgd2lkdGg6IG51bWJlciB8IHN0cmluZyxcbiAgbWFyZ2luVG9wOiBudW1iZXIgfCBzdHJpbmdcbik6IHZvaWQge1xuICBlbC5zdHlsZS50b3AgPSBweCh0b3ApO1xuICBlbC5zdHlsZS5sZWZ0ID0gcHgobGVmdCk7XG4gIGVsLnN0eWxlLm1hcmdpblRvcCA9IHB4KG1hcmdpblRvcCk7XG5cbiAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gIC8qIHNhbml0eSBjaGVjayAqL1xuICBpZiAod2lkdGggIT09IG51bGwpIHtcbiAgICBlbC5zdHlsZS53aWR0aCA9IHB4KHdpZHRoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRIZWlnaHRXaXRoTWFyZ2luKGVsOiBIVE1MRWxlbWVudCk6IG51bWJlciB7XG4gIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGVsKTtcblxuICByZXR1cm4gKFxuICAgIGVsLm9mZnNldEhlaWdodCArXG4gICAgcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Ub3AsIDEwKSArXG4gICAgcGFyc2VJbnQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Cb3R0b20sIDEwKVxuICApO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVDdXN0b21FdmVudChuYW1lOiBhbnkpOiBDdXN0b21FdmVudDxhbnk+IHtcbiAgY29uc3QgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0N1c3RvbUV2ZW50Jyk7XG5cbiAgZXZ0LmluaXRDdXN0b21FdmVudChuYW1lLCBmYWxzZSwgZmFsc2UsIHVuZGVmaW5lZCk7XG5cbiAgcmV0dXJuIGV2dDtcbn1cblxuZXhwb3J0IGNsYXNzIFNreVZpZXdrZWVwZXIge1xuICBwcml2YXRlIHNldFdpZHRoOiBib29sZWFuO1xuXG4gIHByaXZhdGUgaWQ6IHN0cmluZztcblxuICBwcml2YXRlIGVsOiBIVE1MRWxlbWVudDtcblxuICBwcml2YXRlIGJvdW5kYXJ5RWw6IEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgdmVydGljYWxPZmZzZXQ6IG51bWJlcjtcblxuICBwcml2YXRlIHZlcnRpY2FsT2Zmc2V0RWw6IEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgc2V0IHZpZXdwb3J0TWFyZ2luVG9wKG1hcmdpbjogbnVtYmVyKSB7XG4gICAgdGhpcy5fdmlld3BvcnRNYXJnaW5Ub3AgPSBtYXJnaW47XG4gIH1cblxuICBwcml2YXRlIGdldCB2aWV3cG9ydE1hcmdpblRvcCgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLnNjcm9sbGFibGVIb3N0KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZpZXdwb3J0TWFyZ2luVG9wO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNEZXN0cm95ZWQ6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBjdXJyZW50RWxGaXhlZFRvcDogbnVtYmVyO1xuXG4gIHByaXZhdGUgY3VycmVudEVsRml4ZWRMZWZ0OiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBjdXJyZW50RWxGaXhlZFdpZHRoOiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBzY3JvbGxhYmxlSG9zdDogSFRNTEVsZW1lbnQ7XG5cbiAgcHJpdmF0ZSBzeW5jRWxQb3NpdGlvbkhhbmRsZXI6ICgpID0+IHZvaWQ7XG5cbiAgcHJpdmF0ZSBfdmlld3BvcnRNYXJnaW5Ub3A6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBTa3lWaWV3a2VlcGVyT3B0aW9ucykge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIHt9O1xuXG4gICAgdGhpcy5zZXRXaWR0aCA9IG9wdGlvbnMuc2V0V2lkdGg7XG4gICAgdGhpcy5pZCA9IG5leHRJZCgpO1xuICAgIHRoaXMuZWwgPSBvcHRpb25zLmVsO1xuICAgIHRoaXMuYm91bmRhcnlFbCA9IG9wdGlvbnMuYm91bmRhcnlFbDtcbiAgICB0aGlzLnNjcm9sbGFibGVIb3N0ID0gb3B0aW9ucy5zY3JvbGxhYmxlSG9zdDtcbiAgICB0aGlzLnZlcnRpY2FsT2Zmc2V0ID0gb3B0aW9ucy52ZXJ0aWNhbE9mZnNldCB8fCAwO1xuICAgIHRoaXMudmVydGljYWxPZmZzZXRFbCA9IG9wdGlvbnMudmVydGljYWxPZmZzZXRFbDtcbiAgICB0aGlzLnZpZXdwb3J0TWFyZ2luVG9wID0gb3B0aW9ucy52aWV3cG9ydE1hcmdpblRvcCB8fCAwO1xuXG4gICAgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXIgPSAoKSA9PiB0aGlzLnN5bmNFbFBvc2l0aW9uKCk7XG5cbiAgICBpZiAodGhpcy52ZXJ0aWNhbE9mZnNldEVsKSB7XG4gICAgICB0aGlzLnZlcnRpY2FsT2Zmc2V0RWwuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgRVZUX0FGVEVSX1ZJRVdLRUVQRVJfU1lOQyxcbiAgICAgICAgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXJcbiAgICAgICk7XG4gICAgfVxuXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyLCB0cnVlKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXIpO1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyKTtcblxuICAgIGVuc3VyZVN0eWxlRWwoKTtcblxuICAgIHRoaXMuc3luY0VsUG9zaXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBzeW5jRWxQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCB2ZXJ0aWNhbE9mZnNldCA9IHRoaXMuY2FsY3VsYXRlVmVydGljYWxPZmZzZXQoKTtcblxuICAgIC8vIFdoZW4gdGhlIGVsZW1lbnQgaXNuJ3QgdmlzaWJsZSwgaXRzIHNpemUgY2FuJ3QgYmUgY2FsY3VsYXRlZCwgc28gZG9uJ3QgYXR0ZW1wdCBzeW5jaW5nIHBvc2l0aW9uIGluIHRoaXMgY2FzZS5cbiAgICBpZiAodGhpcy5lbC5vZmZzZXRXaWR0aCA9PT0gMCAmJiB0aGlzLmVsLm9mZnNldEhlaWdodCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGJvdW5kYXJ5SW5mbyA9IHRoaXMuZ2V0Qm91bmRhcnlJbmZvKCk7XG4gICAgY29uc3QgZml4ZWRTdHlsZXMgPSB0aGlzLmdldEZpeGVkU3R5bGVzKGJvdW5kYXJ5SW5mbywgdmVydGljYWxPZmZzZXQpO1xuXG4gICAgY29uc3QgZG9GaXhFbCA9IHRoaXMuc2hvdWxkRml4RWwoYm91bmRhcnlJbmZvLCB2ZXJ0aWNhbE9mZnNldCk7XG5cbiAgICBpZiAodGhpcy5uZWVkc1VwZGF0aW5nKGRvRml4RWwsIGZpeGVkU3R5bGVzKSkge1xuICAgICAgaWYgKGRvRml4RWwpIHtcbiAgICAgICAgdGhpcy5maXhFbChib3VuZGFyeUluZm8sIGZpeGVkU3R5bGVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudW5maXhFbCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGV2dCA9IGNyZWF0ZUN1c3RvbUV2ZW50KEVWVF9BRlRFUl9WSUVXS0VFUEVSX1NZTkMpO1xuXG4gICAgdGhpcy5lbC5kaXNwYXRjaEV2ZW50KGV2dCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNEZXN0cm95ZWQpIHtcbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnN5bmNFbFBvc2l0aW9uSGFuZGxlciwgdHJ1ZSk7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5zeW5jRWxQb3NpdGlvbkhhbmRsZXIpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdvcmllbnRhdGlvbmNoYW5nZScsXG4gICAgICAgIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyXG4gICAgICApO1xuXG4gICAgICB0aGlzLnVuZml4RWwoKTtcblxuICAgICAgaWYgKHRoaXMudmVydGljYWxPZmZzZXRFbCkge1xuICAgICAgICB0aGlzLnZlcnRpY2FsT2Zmc2V0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICBFVlRfQUZURVJfVklFV0tFRVBFUl9TWU5DLFxuICAgICAgICAgIHRoaXMuc3luY0VsUG9zaXRpb25IYW5kbGVyXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZWwgPSB0aGlzLmJvdW5kYXJ5RWwgPSB0aGlzLnZlcnRpY2FsT2Zmc2V0RWwgPSB1bmRlZmluZWQ7XG5cbiAgICAgIHRoaXMuaXNEZXN0cm95ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3BhY2VySWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZCArICctc3BhY2VyJztcbiAgfVxuXG4gIHByaXZhdGUgdW5maXhFbCgpOiB2b2lkIHtcbiAgICBjb25zdCBzcGFjZXJFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZ2V0U3BhY2VySWQoKSk7XG5cbiAgICBpZiAoc3BhY2VyRWwpIHtcbiAgICAgIHNwYWNlckVsLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoc3BhY2VyRWwpO1xuICAgIH1cblxuICAgIHRoaXMuZWwuY2xhc3NMaXN0LnJlbW92ZShDTFNfVklFV0tFRVBFUl9GSVhFRCk7XG5cbiAgICB0aGlzLmN1cnJlbnRFbEZpeGVkTGVmdCA9XG4gICAgICB0aGlzLmN1cnJlbnRFbEZpeGVkVG9wID1cbiAgICAgIHRoaXMuY3VycmVudEVsRml4ZWRXaWR0aCA9XG4gICAgICB1bmRlZmluZWQ7XG5cbiAgICBsZXQgd2lkdGg6IHN0cmluZztcblxuICAgIGlmICh0aGlzLnNldFdpZHRoKSB7XG4gICAgICB3aWR0aCA9ICdhdXRvJztcbiAgICB9XG5cbiAgICBzZXRFbFBvc2l0aW9uKHRoaXMuZWwsICcnLCAnJywgd2lkdGgsICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlVmVydGljYWxPZmZzZXQoKTogbnVtYmVyIHtcbiAgICBsZXQgb2Zmc2V0ID0gdGhpcy52ZXJ0aWNhbE9mZnNldDtcblxuICAgIGlmICh0aGlzLnZlcnRpY2FsT2Zmc2V0RWwpIHtcbiAgICAgIGNvbnN0IHZlcnRpY2FsT2Zmc2V0RWxUb3BTdHlsZSA9IHRoaXMudmVydGljYWxPZmZzZXRFbC5zdHlsZS50b3A7XG4gICAgICBjb25zdCB2ZXJ0aWNhbE9mZnNldEVsVG9wID0gcGFyc2VJbnQodmVydGljYWxPZmZzZXRFbFRvcFN0eWxlLCAxMCkgfHwgMDtcblxuICAgICAgb2Zmc2V0ICs9IHRoaXMudmVydGljYWxPZmZzZXRFbC5vZmZzZXRIZWlnaHQgKyB2ZXJ0aWNhbE9mZnNldEVsVG9wO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zY3JvbGxhYmxlSG9zdCkge1xuICAgICAgb2Zmc2V0ICs9IHRoaXMuc2Nyb2xsYWJsZUhvc3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuICAgIH1cblxuICAgIHJldHVybiBvZmZzZXQ7XG4gIH1cblxuICBwcml2YXRlIHNob3VsZEZpeEVsKFxuICAgIGJvdW5kYXJ5SW5mbzogU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyxcbiAgICB2ZXJ0aWNhbE9mZnNldDogbnVtYmVyXG4gICk6IGJvb2xlYW4ge1xuICAgIGxldCBhbmNob3JUb3A6IG51bWJlcjtcbiAgICBsZXQgZG9GaXhFbDogYm9vbGVhbjtcblxuICAgIGlmIChib3VuZGFyeUluZm8uc3BhY2VyRWwpIHtcbiAgICAgIGFuY2hvclRvcCA9IGdldE9mZnNldChib3VuZGFyeUluZm8uc3BhY2VyRWwsIHRoaXMuc2Nyb2xsYWJsZUhvc3QpLnRvcDtcbiAgICB9IGVsc2Uge1xuICAgICAgYW5jaG9yVG9wID0gZ2V0T2Zmc2V0KHRoaXMuZWwsIHRoaXMuc2Nyb2xsYWJsZUhvc3QpLnRvcDtcbiAgICB9XG5cbiAgICBkb0ZpeEVsID1cbiAgICAgIGJvdW5kYXJ5SW5mby5zY3JvbGxUb3AgKyB2ZXJ0aWNhbE9mZnNldCArIHRoaXMudmlld3BvcnRNYXJnaW5Ub3AgPlxuICAgICAgYW5jaG9yVG9wO1xuXG4gICAgcmV0dXJuIGRvRml4RWw7XG4gIH1cblxuICBwcml2YXRlIGdldEZpeGVkU3R5bGVzKFxuICAgIGJvdW5kYXJ5SW5mbzogU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyxcbiAgICB2ZXJ0aWNhbE9mZnNldDogbnVtYmVyXG4gICk6IFNreVZpZXdrZWVwZXJGaXhlZFN0eWxlcyB7XG4gICAgbGV0IGVsRml4ZWRUb3A6IG51bWJlcjtcblxuICAgIC8vIElmIHRoZSBlbGVtZW50IG5lZWRzIHRvIGJlIGZpeGVkLCB0aGlzIHdpbGwgY2FsY3VsYXRlIGl0cyBwb3NpdGlvbi4gIFRoZSBwb3NpdGlvblxuICAgIC8vIHdpbGwgYmUgMCAoZnVsbHkgdmlzaWJsZSkgdW5sZXNzIHRoZSB1c2VyIGlzIHNjcm9sbGluZyB0aGUgYm91bmRhcnkgb3V0IG9mIHZpZXcuXG4gICAgLy8gSW4gdGhhdCBjYXNlLCB0aGUgZWxlbWVudCBzaG91bGQgYmVnaW4gdG8gc2Nyb2xsIG91dCBvZiB2aWV3IHdpdGggdGhlXG4gICAgLy8gcmVzdCBvZiB0aGUgYm91bmRhcnkgYnkgc2V0dGluZyBpdHMgdG9wIHBvc2l0aW9uIHRvIGEgbmVnYXRpdmUgdmFsdWUuXG4gICAgZWxGaXhlZFRvcCA9IE1hdGgubWluKFxuICAgICAgYm91bmRhcnlJbmZvLmJvdW5kYXJ5Qm90dG9tIC1cbiAgICAgIGJvdW5kYXJ5SW5mby5lbEhlaWdodCAtXG4gICAgICBib3VuZGFyeUluZm8uc2Nyb2xsVG9wLFxuICAgICAgdmVydGljYWxPZmZzZXRcbiAgICApO1xuXG4gICAgY29uc3QgZWxGaXhlZFdpZHRoID0gYm91bmRhcnlJbmZvLmJvdW5kYXJ5RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgY29uc3QgZWxGaXhlZExlZnQgPVxuICAgICAgYm91bmRhcnlJbmZvLmJvdW5kYXJ5T2Zmc2V0LmxlZnQgLSBib3VuZGFyeUluZm8uc2Nyb2xsTGVmdDtcblxuICAgIHJldHVybiB7XG4gICAgICBlbEZpeGVkTGVmdCxcbiAgICAgIGVsRml4ZWRUb3AsXG4gICAgICBlbEZpeGVkV2lkdGgsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgbmVlZHNVcGRhdGluZyhcbiAgICBkb0ZpeEVsOiBib29sZWFuLFxuICAgIGZpeGVkU3R5bGVzOiBTa3lWaWV3a2VlcGVyRml4ZWRTdHlsZXNcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKFxuICAgICAgKGRvRml4RWwgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50RWxGaXhlZExlZnQgPT09IGZpeGVkU3R5bGVzLmVsRml4ZWRMZWZ0ICYmXG4gICAgICAgIHRoaXMuY3VycmVudEVsRml4ZWRUb3AgPT09IGZpeGVkU3R5bGVzLmVsRml4ZWRUb3AgJiZcbiAgICAgICAgdGhpcy5jdXJyZW50RWxGaXhlZFdpZHRoID09PSBmaXhlZFN0eWxlcy5lbEZpeGVkV2lkdGgpIHx8XG4gICAgICAoIWRvRml4RWwgJiZcbiAgICAgICAgIShcbiAgICAgICAgICB0aGlzLmN1cnJlbnRFbEZpeGVkTGVmdCAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgdGhpcy5jdXJyZW50RWxGaXhlZExlZnQgIT09IG51bGxcbiAgICAgICAgKSlcbiAgICApIHtcbiAgICAgIC8vIFRoZSBlbGVtZW50IGlzIGVpdGhlciBjdXJyZW50bHkgZml4ZWQgYW5kIGl0cyBwb3NpdGlvbiBhbmQgd2lkdGggZG8gbm90IG5lZWRcbiAgICAgIC8vIHRvIGNoYW5nZSwgb3IgdGhlIGVsZW1lbnQgaXMgbm90IGN1cnJlbnRseSBmaXhlZCBhbmQgZG9lcyBub3QgbmVlZCB0byBiZSBmaXhlZC5cbiAgICAgIC8vIE5vIGNoYW5nZXMgYXJlIG5lZWRlZC5cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZml4RWwoXG4gICAgYm91bmRhcnlJbmZvOiBTa3lWaWV3a2VlcGVyQm91bmRhcnlJbmZvLFxuICAgIGZpeGVkU3R5bGVzOiBTa3lWaWV3a2VlcGVyRml4ZWRTdHlsZXNcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmVsO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICBpZiAoIWJvdW5kYXJ5SW5mby5zcGFjZXJFbCkge1xuICAgICAgY29uc3Qgc3BhY2VySGVpZ2h0ID0gYm91bmRhcnlJbmZvLmVsSGVpZ2h0O1xuXG4gICAgICBjb25zdCBzcGFjZXJFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgc3BhY2VyRWwuaWQgPSBib3VuZGFyeUluZm8uc3BhY2VySWQ7XG4gICAgICBzcGFjZXJFbC5zdHlsZS5oZWlnaHQgPSBweChzcGFjZXJIZWlnaHQpO1xuXG4gICAgICBlbC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShzcGFjZXJFbCwgZWwubmV4dFNpYmxpbmcpO1xuICAgIH1cblxuICAgIGVsLmNsYXNzTGlzdC5hZGQoQ0xTX1ZJRVdLRUVQRVJfRklYRUQpO1xuXG4gICAgdGhpcy5jdXJyZW50RWxGaXhlZFRvcCA9IGZpeGVkU3R5bGVzLmVsRml4ZWRUb3A7XG4gICAgdGhpcy5jdXJyZW50RWxGaXhlZExlZnQgPSBmaXhlZFN0eWxlcy5lbEZpeGVkTGVmdDtcbiAgICB0aGlzLmN1cnJlbnRFbEZpeGVkV2lkdGggPSBmaXhlZFN0eWxlcy5lbEZpeGVkV2lkdGg7XG5cbiAgICBsZXQgd2lkdGg6IG51bWJlcjtcblxuICAgIGlmICh0aGlzLnNldFdpZHRoKSB7XG4gICAgICB3aWR0aCA9IGZpeGVkU3R5bGVzLmVsRml4ZWRXaWR0aDtcbiAgICB9XG5cbiAgICBzZXRFbFBvc2l0aW9uKFxuICAgICAgZWwsXG4gICAgICBmaXhlZFN0eWxlcy5lbEZpeGVkTGVmdCxcbiAgICAgIGZpeGVkU3R5bGVzLmVsRml4ZWRUb3AsXG4gICAgICB3aWR0aCxcbiAgICAgIHRoaXMudmlld3BvcnRNYXJnaW5Ub3BcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCb3VuZGFyeUluZm8oKTogU2t5Vmlld2tlZXBlckJvdW5kYXJ5SW5mbyB7XG4gICAgY29uc3Qgc3BhY2VySWQgPSB0aGlzLmdldFNwYWNlcklkKCk7XG5cbiAgICBjb25zdCBzcGFjZXJFbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNwYWNlcklkKTtcblxuICAgIGNvbnN0IGJvdW5kYXJ5RWwgPSB0aGlzLmJvdW5kYXJ5RWw7XG5cbiAgICBjb25zdCBib3VuZGFyeU9mZnNldCA9IGdldE9mZnNldChib3VuZGFyeUVsLCB0aGlzLnNjcm9sbGFibGVIb3N0KTtcbiAgICBjb25zdCBib3VuZGFyeVRvcCA9IGJvdW5kYXJ5T2Zmc2V0LnRvcDtcbiAgICBjb25zdCBib3VuZGFyeUJvdHRvbSA9XG4gICAgICBib3VuZGFyeVRvcCArIGJvdW5kYXJ5RWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuXG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IHRoaXMuc2Nyb2xsYWJsZUhvc3RcbiAgICAgID8gdGhpcy5zY3JvbGxhYmxlSG9zdC5zY3JvbGxMZWZ0XG4gICAgICA6IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0O1xuICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMuc2Nyb2xsYWJsZUhvc3RcbiAgICAgID8gdGhpcy5zY3JvbGxhYmxlSG9zdC5zY3JvbGxUb3BcbiAgICAgIDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtcblxuICAgIGNvbnN0IGVsSGVpZ2h0ID0gZ2V0SGVpZ2h0V2l0aE1hcmdpbih0aGlzLmVsKTtcblxuICAgIHJldHVybiB7XG4gICAgICBib3VuZGFyeUJvdHRvbSxcbiAgICAgIGJvdW5kYXJ5T2Zmc2V0LFxuICAgICAgYm91bmRhcnlFbCxcbiAgICAgIGVsSGVpZ2h0LFxuICAgICAgc2Nyb2xsTGVmdCxcbiAgICAgIHNjcm9sbFRvcCxcbiAgICAgIHNwYWNlcklkLFxuICAgICAgc3BhY2VyRWwsXG4gICAgfTtcbiAgfVxufVxuIl19
|
@@ -3,18 +3,14 @@ import { SkyViewkeeperDirective } from './viewkeeper.directive';
|
|
3
3
|
import * as i0 from "@angular/core";
|
4
4
|
export class SkyViewkeeperModule {
|
5
5
|
}
|
6
|
-
SkyViewkeeperModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
7
|
-
SkyViewkeeperModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.
|
8
|
-
SkyViewkeeperModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
6
|
+
SkyViewkeeperModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyViewkeeperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
7
|
+
SkyViewkeeperModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyViewkeeperModule, declarations: [SkyViewkeeperDirective], exports: [SkyViewkeeperDirective] });
|
8
|
+
SkyViewkeeperModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyViewkeeperModule });
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyViewkeeperModule, decorators: [{
|
10
10
|
type: NgModule,
|
11
11
|
args: [{
|
12
|
-
declarations: [
|
13
|
-
|
14
|
-
],
|
15
|
-
exports: [
|
16
|
-
SkyViewkeeperDirective
|
17
|
-
]
|
12
|
+
declarations: [SkyViewkeeperDirective],
|
13
|
+
exports: [SkyViewkeeperDirective],
|
18
14
|
}]
|
19
15
|
}] });
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9tb2R1bGVzL3ZpZXdrZWVwZXIvdmlld2tlZXBlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFNaEUsTUFBTSxPQUFPLG1CQUFtQjs7aUhBQW5CLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGlCQUhmLHNCQUFzQixhQUMzQixzQkFBc0I7a0hBRXJCLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUovQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUN0QyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lWaWV3a2VlcGVyRGlyZWN0aXZlIH0gZnJvbSAnLi92aWV3a2VlcGVyLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NreVZpZXdrZWVwZXJEaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbU2t5Vmlld2tlZXBlckRpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVZpZXdrZWVwZXJNb2R1bGUge31cbiJdfQ==
|
@@ -25,14 +25,14 @@ export class SkyViewkeeperService {
|
|
25
25
|
vk.destroy();
|
26
26
|
}
|
27
27
|
}
|
28
|
-
SkyViewkeeperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
29
|
-
SkyViewkeeperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
28
|
+
SkyViewkeeperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyViewkeeperService, deps: [{ token: i1.SkyViewkeeperHostOptions, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
29
|
+
SkyViewkeeperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyViewkeeperService, providedIn: 'root' });
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyViewkeeperService, decorators: [{
|
31
31
|
type: Injectable,
|
32
32
|
args: [{
|
33
|
-
providedIn: 'root'
|
33
|
+
providedIn: 'root',
|
34
34
|
}]
|
35
35
|
}], ctorParameters: function () { return [{ type: i1.SkyViewkeeperHostOptions, decorators: [{
|
36
36
|
type: Optional
|
37
37
|
}] }]; } });
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2tlZXBlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbW9kdWxlcy92aWV3a2VlcGVyL3ZpZXdrZWVwZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFNN0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQWdDLFdBQXNDO1FBQXRDLGdCQUFXLEdBQVgsV0FBVyxDQUEyQjtJQUFHLENBQUM7SUFFMUU7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE9BQTZCO1FBQ3pDLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU3RCxPQUFPLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPLENBQUMsRUFBaUI7UUFDOUIsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsQ0FBQzs7a0hBbkJVLG9CQUFvQjtzSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07NEZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBRWMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreVZpZXdrZWVwZXIgfSBmcm9tICcuL3ZpZXdrZWVwZXInO1xuXG5pbXBvcnQgeyBTa3lWaWV3a2VlcGVySG9zdE9wdGlvbnMgfSBmcm9tICcuL3ZpZXdrZWVwZXItaG9zdC1vcHRpb25zJztcblxuaW1wb3J0IHsgU2t5Vmlld2tlZXBlck9wdGlvbnMgfSBmcm9tICcuL3ZpZXdrZWVwZXItb3B0aW9ucyc7XG5cbi8qKlxuICogUHJvdmlkZXMgbWV0aG9kcyBmb3IgY3JlYXRpbmcgYW5kIGRlc3Ryb3lpbmcgdmlld2tlZXBlciBpbnN0YW5jZXMuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lWaWV3a2VlcGVyU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgaG9zdE9wdGlvbnM/OiBTa3lWaWV3a2VlcGVySG9zdE9wdGlvbnMpIHt9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIENyZWF0ZXMgYSB2aWV3a2VlcGVyIGluc3RhbmNlLCBhcHBseWluZyBob3N0IG9wdGlvbnMgd2hlcmUgYXBwbGljYWJsZS5cbiAgICovXG4gIHB1YmxpYyBjcmVhdGUob3B0aW9uczogU2t5Vmlld2tlZXBlck9wdGlvbnMpOiBTa3lWaWV3a2VlcGVyIHtcbiAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5ob3N0T3B0aW9ucyB8fCB7fSwgb3B0aW9ucyk7XG5cbiAgICByZXR1cm4gbmV3IFNreVZpZXdrZWVwZXIob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogRGVzdHJveXMgYSB2aWV3a2VlcGVyIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gdmsgVmlld2tlZXBlciBpbnN0YW5jZSB0byBkZXN0cm95LlxuICAgKi9cbiAgcHVibGljIGRlc3Ryb3kodms6IFNreVZpZXdrZWVwZXIpOiB2b2lkIHtcbiAgICB2ay5kZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==
|
@@ -19,12 +19,12 @@ export class SkyAppWindowRef {
|
|
19
19
|
return getWindow();
|
20
20
|
}
|
21
21
|
}
|
22
|
-
SkyAppWindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
23
|
-
SkyAppWindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
22
|
+
SkyAppWindowRef.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyAppWindowRef, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
23
|
+
SkyAppWindowRef.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyAppWindowRef, providedIn: 'root' });
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: SkyAppWindowRef, decorators: [{
|
25
25
|
type: Injectable,
|
26
26
|
args: [{
|
27
|
-
providedIn: 'root'
|
27
|
+
providedIn: 'root',
|
28
28
|
}]
|
29
29
|
}] });
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2luZG93LXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL21vZHVsZXMvd2luZG93L3dpbmRvdy1yZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0M7O0dBRUc7QUFDSCxNQUFNLFVBQVUsU0FBUztJQUN2QixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxlQUFlO0lBQzFCOztPQUVHO0lBQ0gsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQzs7NkdBTlUsZUFBZTtpSEFBZixlQUFlLGNBRmQsTUFBTTs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFdpbmRvdygpOiBhbnkge1xuICByZXR1cm4gd2luZG93O1xufVxuXG4vKipcbiAqIFRoZSBhcHBsaWNhdGlvbiB3aW5kb3cgcmVmZXJlbmNlIHNlcnZpY2UgcmVmZXJlbmNlcyB0aGUgZ2xvYmFsIHdpbmRvdyB2YXJpYWJsZS5cbiAqIEFmdGVyIHVzZXJzIGluamVjdCBTa3lBcHBXaW5kb3dSZWYgaW50byBhIGNvbXBvbmVudCwgdGhleSBjYW4gdXNlIHRoZSBzZXJ2aWNlIHRvIGludGVyYWN0IHdpdGhcbiAqIHdpbmRvdyBwcm9wZXJ0aWVzIGFuZCBldmVudCBoYW5kbGVycyBieSByZWZlcmVuY2luZyBpdHMgbmF0aXZlV2luZG93IHByb3BlcnR5LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QXBwV2luZG93UmVmIHtcbiAgLyoqXG4gICAqIFJlZmVyZW5jZXMgdGhlIGdsb2JhbCBgd2luZG93YCB2YXJpYWJsZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgbmF0aXZlV2luZG93KCk6IGFueSB7XG4gICAgcmV0dXJuIGdldFdpbmRvdygpO1xuICB9XG59XG4iXX0=
|
@@ -1,11 +1,11 @@
|
|
1
1
|
import { Injectable, NgZone } from '@angular/core';
|
2
|
-
import { SkyMediaBreakpoints, SkyMediaQueryService } from '@skyux/core';
|
2
|
+
import { SkyMediaBreakpoints, SkyMediaQueryService, } from '@skyux/core';
|
3
3
|
import { BehaviorSubject } from 'rxjs';
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
export class MockSkyMediaQueryService extends SkyMediaQueryService {
|
6
6
|
constructor() {
|
7
7
|
super(new NgZone({
|
8
|
-
enableLongStackTrace: true
|
8
|
+
enableLongStackTrace: true,
|
9
9
|
}));
|
10
10
|
this.currentMockSubject = new BehaviorSubject(this.current);
|
11
11
|
this._currentBreakpoints = SkyMediaBreakpoints.md;
|
@@ -20,7 +20,7 @@ export class MockSkyMediaQueryService extends SkyMediaQueryService {
|
|
20
20
|
return this.currentMockSubject.subscribe({
|
21
21
|
next: (breakpoints) => {
|
22
22
|
listener(breakpoints);
|
23
|
-
}
|
23
|
+
},
|
24
24
|
});
|
25
25
|
}
|
26
26
|
fire(args) {
|
@@ -33,9 +33,9 @@ MockSkyMediaQueryService.xs = '(max-width: 767px)';
|
|
33
33
|
MockSkyMediaQueryService.sm = '(min-width: 768px) and (max-width: 991px)';
|
34
34
|
MockSkyMediaQueryService.md = '(min-width: 992px) and (max-width: 1199px)';
|
35
35
|
MockSkyMediaQueryService.lg = '(min-width: 1200px)';
|
36
|
-
MockSkyMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
37
|
-
MockSkyMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
36
|
+
MockSkyMediaQueryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
37
|
+
MockSkyMediaQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyMediaQueryService });
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyMediaQueryService, decorators: [{
|
39
39
|
type: Injectable
|
40
40
|
}], ctorParameters: function () { return []; } });
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1tZWRpYS1xdWVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS90ZXN0aW5nL3NyYy9tb2NrLW1lZGlhLXF1ZXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUNMLG1CQUFtQixFQUVuQixvQkFBb0IsR0FDckIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7O0FBR3JELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxvQkFBb0I7SUFvQmhFO1FBQ0UsS0FBSyxDQUNILElBQUksTUFBTSxDQUFDO1lBQ1Qsb0JBQW9CLEVBQUUsSUFBSTtTQUMzQixDQUFDLENBQ0gsQ0FBQztRQVhHLHVCQUFrQixHQUFHLElBQUksZUFBZSxDQUM3QyxJQUFJLENBQUMsT0FBTyxDQUNiLENBQUM7UUFFTSx3QkFBbUIsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7SUFRckQsQ0FBQztJQXBCRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLFdBQWdDO1FBQ2pELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxXQUFXLENBQUM7SUFDekMsQ0FBQztJQWdCTSxTQUFTLENBQUMsUUFBK0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDO1lBQ3ZDLElBQUksRUFBRSxDQUFDLFdBQWdDLEVBQUUsRUFBRTtnQkFDekMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3hCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sSUFBSSxDQUFDLElBQXlCO1FBQ25DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sT0FBTyxLQUFVLENBQUM7O0FBeENYLDJCQUFFLEdBQUcsb0JBQW9CLENBQUM7QUFDMUIsMkJBQUUsR0FBRywyQ0FBMkMsQ0FBQztBQUNqRCwyQkFBRSxHQUFHLDRDQUE0QyxDQUFDO0FBQ2xELDJCQUFFLEdBQUcscUJBQXFCLENBQUM7c0hBSjlCLHdCQUF3QjswSEFBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgU2t5TWVkaWFCcmVha3BvaW50cyxcbiAgU2t5TWVkaWFRdWVyeUxpc3RlbmVyLFxuICBTa3lNZWRpYVF1ZXJ5U2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9ja1NreU1lZGlhUXVlcnlTZXJ2aWNlIGV4dGVuZHMgU2t5TWVkaWFRdWVyeVNlcnZpY2Uge1xuICBwdWJsaWMgc3RhdGljIHhzID0gJyhtYXgtd2lkdGg6IDc2N3B4KSc7XG4gIHB1YmxpYyBzdGF0aWMgc20gPSAnKG1pbi13aWR0aDogNzY4cHgpIGFuZCAobWF4LXdpZHRoOiA5OTFweCknO1xuICBwdWJsaWMgc3RhdGljIG1kID0gJyhtaW4td2lkdGg6IDk5MnB4KSBhbmQgKG1heC13aWR0aDogMTE5OXB4KSc7XG4gIHB1YmxpYyBzdGF0aWMgbGcgPSAnKG1pbi13aWR0aDogMTIwMHB4KSc7XG5cbiAgcHVibGljIGdldCBjdXJyZW50KCk6IFNreU1lZGlhQnJlYWtwb2ludHMge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50QnJlYWtwb2ludHM7XG4gIH1cblxuICBwdWJsaWMgc2V0IGN1cnJlbnQoYnJlYWtwb2ludHM6IFNreU1lZGlhQnJlYWtwb2ludHMpIHtcbiAgICB0aGlzLl9jdXJyZW50QnJlYWtwb2ludHMgPSBicmVha3BvaW50cztcbiAgfVxuXG4gIHB1YmxpYyBjdXJyZW50TW9ja1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreU1lZGlhQnJlYWtwb2ludHM+KFxuICAgIHRoaXMuY3VycmVudFxuICApO1xuXG4gIHByaXZhdGUgX2N1cnJlbnRCcmVha3BvaW50cyA9IFNreU1lZGlhQnJlYWtwb2ludHMubWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXG4gICAgICBuZXcgTmdab25lKHtcbiAgICAgICAgZW5hYmxlTG9uZ1N0YWNrVHJhY2U6IHRydWUsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3Vic2NyaWJlKGxpc3RlbmVyOiBTa3lNZWRpYVF1ZXJ5TGlzdGVuZXIpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRNb2NrU3ViamVjdC5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGJyZWFrcG9pbnRzOiBTa3lNZWRpYUJyZWFrcG9pbnRzKSA9PiB7XG4gICAgICAgIGxpc3RlbmVyKGJyZWFrcG9pbnRzKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZmlyZShhcmdzOiBTa3lNZWRpYUJyZWFrcG9pbnRzKTogdm9pZCB7XG4gICAgdGhpcy5fY3VycmVudEJyZWFrcG9pbnRzID0gYXJncztcbiAgICB0aGlzLmN1cnJlbnRNb2NrU3ViamVjdC5uZXh0KHRoaXMuX2N1cnJlbnRCcmVha3BvaW50cyk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHt9XG59XG4iXX0=
|
@@ -17,46 +17,43 @@ export class MockSkyUIConfigService extends SkyUIConfigService {
|
|
17
17
|
tiles: [
|
18
18
|
{
|
19
19
|
id: 'tile-1',
|
20
|
-
isCollapsed: true
|
20
|
+
isCollapsed: true,
|
21
21
|
},
|
22
22
|
{
|
23
23
|
id: 'tile-2',
|
24
|
-
isCollapsed: true
|
25
|
-
}
|
26
|
-
]
|
24
|
+
isCollapsed: true,
|
25
|
+
},
|
26
|
+
],
|
27
27
|
},
|
28
28
|
multiColumn: [
|
29
29
|
{
|
30
30
|
tiles: [
|
31
31
|
{
|
32
32
|
id: 'tile-2',
|
33
|
-
isCollapsed: true
|
34
|
-
}
|
35
|
-
]
|
33
|
+
isCollapsed: true,
|
34
|
+
},
|
35
|
+
],
|
36
36
|
},
|
37
37
|
{
|
38
38
|
tiles: [
|
39
39
|
{
|
40
40
|
id: 'tile-1',
|
41
|
-
isCollapsed: true
|
42
|
-
}
|
43
|
-
]
|
44
|
-
}
|
45
|
-
]
|
41
|
+
isCollapsed: true,
|
42
|
+
},
|
43
|
+
],
|
44
|
+
},
|
45
|
+
],
|
46
46
|
},
|
47
|
-
defaultSettings: [
|
48
|
-
|
49
|
-
'tile-2'
|
50
|
-
]
|
51
|
-
}
|
47
|
+
defaultSettings: ['tile-1', 'tile-2'],
|
48
|
+
},
|
52
49
|
});
|
53
50
|
}
|
54
51
|
}
|
55
52
|
}
|
56
53
|
}
|
57
|
-
MockSkyUIConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.
|
58
|
-
MockSkyUIConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.
|
54
|
+
MockSkyUIConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyUIConfigService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
55
|
+
MockSkyUIConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyUIConfigService });
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.14", ngImport: i0, type: MockSkyUIConfigService, decorators: [{
|
60
57
|
type: Injectable
|
61
58
|
}] });
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay11aS1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvdGVzdGluZy9zcmMvbW9jay11aS1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVqRCxPQUFPLEVBQUUsRUFBRSxJQUFJLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHMUMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUFrQjtJQUNyRCxTQUFTLENBQUMsR0FBVyxFQUFFLGFBQW1CO1FBQy9DLFFBQVEsR0FBRyxFQUFFO1lBQ1gsS0FBSyxpQkFBaUI7Z0JBQ3BCLE9BQU8sWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3JDLEtBQUssU0FBUztnQkFDWixPQUFPLFlBQVksQ0FBQyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzFELE9BQU8sQ0FBQyxDQUFDO2dCQUNQLE9BQU8sWUFBWSxDQUFDO29CQUNsQixRQUFRLEVBQUU7d0JBQ1IsWUFBWSxFQUFFOzRCQUNaLFlBQVksRUFBRTtnQ0FDWixLQUFLLEVBQUU7b0NBQ0w7d0NBQ0UsRUFBRSxFQUFFLFFBQVE7d0NBQ1osV0FBVyxFQUFFLElBQUk7cUNBQ2xCO29DQUNEO3dDQUNFLEVBQUUsRUFBRSxRQUFRO3dDQUNaLFdBQVcsRUFBRSxJQUFJO3FDQUNsQjtpQ0FDRjs2QkFDRjs0QkFDRCxXQUFXLEVBQUU7Z0NBQ1g7b0NBQ0UsS0FBSyxFQUFFO3dDQUNMOzRDQUNFLEVBQUUsRUFBRSxRQUFROzRDQUNaLFdBQVcsRUFBRSxJQUFJO3lDQUNsQjtxQ0FDRjtpQ0FDRjtnQ0FDRDtvQ0FDRSxLQUFLLEVBQUU7d0NBQ0w7NENBQ0UsRUFBRSxFQUFFLFFBQVE7NENBQ1osV0FBVyxFQUFFLElBQUk7eUNBQ2xCO3FDQUNGO2lDQUNGOzZCQUNGO3lCQUNGO3dCQUNELGVBQWUsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7cUJBQ3RDO2lCQUNGLENBQUMsQ0FBQzthQUNKO1NBQ0Y7SUFDSCxDQUFDOztvSEEvQ1Usc0JBQXNCO3dIQUF0QixzQkFBc0I7NEZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5VUlDb25maWdTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBvZiBhcyBvYnNlcnZhYmxlT2YgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1vY2tTa3lVSUNvbmZpZ1NlcnZpY2UgZXh0ZW5kcyBTa3lVSUNvbmZpZ1NlcnZpY2Uge1xuICBwdWJsaWMgZ2V0Q29uZmlnKGtleTogc3RyaW5nLCBkZWZhdWx0Q29uZmlnPzogYW55KTogYW55IHtcbiAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgY2FzZSAnZGVmYXVsdFNldHRpbmdzJzpcbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGVPZihkZWZhdWx0Q29uZmlnKTtcbiAgICAgIGNhc2UgJ2JhZERhdGEnOlxuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHsgaW52YWxpZFByb3BlcnR5OiAnaW52YWxpZERhdGEnIH0pO1xuICAgICAgZGVmYXVsdDoge1xuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHtcbiAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgdXNlclNldHRpbmdzOiB7XG4gICAgICAgICAgICAgIHNpbmdsZUNvbHVtbjoge1xuICAgICAgICAgICAgICAgIHRpbGVzOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAndGlsZS0xJyxcbiAgICAgICAgICAgICAgICAgICAgaXNDb2xsYXBzZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZDogJ3RpbGUtMicsXG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBtdWx0aUNvbHVtbjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHRpbGVzOiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogJ3RpbGUtMicsXG4gICAgICAgICAgICAgICAgICAgICAgaXNDb2xsYXBzZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdGlsZXM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIGlkOiAndGlsZS0xJyxcbiAgICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZWZhdWx0U2V0dGluZ3M6IFsndGlsZS0xJywgJ3RpbGUtMiddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|