@dereekb/dbx-web 9.24.21 → 9.24.22
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/calendar/package.json +2 -2
- package/esm2020/mapbox/lib/mapbox.layout.component.mjs +31 -15
- package/esm2020/mapbox/lib/mapbox.layout.drawer.component.mjs +2 -2
- package/fesm2015/dereekb-dbx-web-mapbox.mjs +31 -15
- package/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/fesm2020/dereekb-dbx-web-mapbox.mjs +31 -15
- package/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/lib/layout/style/_style.scss +13 -10
- package/lib/layout/text/_text.scss +3 -2
- package/mapbox/esm2020/lib/mapbox.layout.component.mjs +31 -15
- package/mapbox/esm2020/lib/mapbox.layout.drawer.component.mjs +2 -2
- package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs +31 -15
- package/mapbox/fesm2015/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs +31 -15
- package/mapbox/fesm2020/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/mapbox/lib/mapbox.layout.component.d.ts +11 -4
- package/mapbox/lib/mapbox.layout.drawer.component.d.ts +1 -1
- package/mapbox/package.json +3 -3
- package/package.json +3 -3
- package/table/package.json +3 -3
package/calendar/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dereekb/dbx-web/calendar",
|
|
3
|
-
"version": "9.24.
|
|
3
|
+
"version": "9.24.22",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^14.2.0",
|
|
6
6
|
"@angular/core": "^14.2.0",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"rxjs": "^7.5.0",
|
|
9
9
|
"@angular/material": "^14.2.0",
|
|
10
10
|
"angular-calendar": "^0.30.1",
|
|
11
|
-
"@dereekb/dbx-web": "9.24.
|
|
11
|
+
"@dereekb/dbx-web": "9.24.22"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"tslib": "^2.3.0"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { tap, switchMap, first, startWith, shareReplay, throttleTime, map, distinctUntilChanged, BehaviorSubject, combineLatest, Subject } from 'rxjs';
|
|
2
|
-
import { Component, ElementRef, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
3
3
|
import { DbxMapboxMapStore } from './mapbox.store';
|
|
4
4
|
import { dbxColorBackground } from '@dereekb/dbx-web';
|
|
5
5
|
import { SubscriptionObject } from '@dereekb/rxjs';
|
|
@@ -23,33 +23,40 @@ export class DbxMapboxLayoutComponent extends SubscriptionObject {
|
|
|
23
23
|
constructor(dbxMapboxMapStore) {
|
|
24
24
|
super();
|
|
25
25
|
this.dbxMapboxMapStore = dbxMapboxMapStore;
|
|
26
|
+
this.openedChange = new EventEmitter();
|
|
26
27
|
this._resized = new Subject();
|
|
27
28
|
this._updateMargins = new Subject();
|
|
28
29
|
this._forceHasContent = new BehaviorSubject(false);
|
|
29
30
|
this._mode = new BehaviorSubject('side');
|
|
30
31
|
this._side = new BehaviorSubject('right');
|
|
31
|
-
this.
|
|
32
|
+
this._isOpen = new BehaviorSubject(true);
|
|
32
33
|
this._color = new BehaviorSubject(undefined);
|
|
33
34
|
this._toggleSub = new SubscriptionObject();
|
|
34
35
|
this.resized$ = this._resized.asObservable();
|
|
35
36
|
this.side$ = this._side.pipe(distinctUntilChanged(), shareReplay(1));
|
|
36
37
|
this.mode$ = this._mode.pipe(distinctUntilChanged(), shareReplay(1));
|
|
37
38
|
this.hasContent$ = combineLatest([this._forceHasContent, this.dbxMapboxMapStore.hasContent$]).pipe(map(([hasContent, forceHasContent]) => hasContent || forceHasContent), distinctUntilChanged(), shareReplay(1));
|
|
38
|
-
this.
|
|
39
|
+
this.isOpen$ = this._isOpen.asObservable();
|
|
40
|
+
this.isOpenAndHasContent$ = combineLatest([this.hasContent$, this._isOpen]).pipe(map(([hasContent, open]) => hasContent && open), distinctUntilChanged(), shareReplay(1));
|
|
39
41
|
this.position$ = this.side$.pipe(map((x) => (x === 'right' ? 'end' : 'start')), distinctUntilChanged(), shareReplay(1));
|
|
40
|
-
this.drawerClasses$ = combineLatest([this.side$, this.dbxMapboxMapStore.hasContent$, this.
|
|
42
|
+
this.drawerClasses$ = combineLatest([this.side$, this.dbxMapboxMapStore.hasContent$, this.isOpenAndHasContent$]).pipe(
|
|
41
43
|
//
|
|
42
44
|
map(([side, hasContent, open]) => (hasContent ? 'has-drawer-content' : 'no-drawer-content') + ` ${side}-drawer ` + (open ? 'open-drawer' : '')), distinctUntilChanged(), shareReplay(1));
|
|
43
45
|
this.drawerButtonClasses$ = combineLatest([this.dbxMapboxMapStore.hasContent$, this._color]).pipe(
|
|
44
46
|
//
|
|
45
47
|
map(([hasContent, color]) => dbxColorBackground(color)), distinctUntilChanged(), shareReplay(1));
|
|
46
|
-
this.buttonIcon$ = combineLatest([this.side$, this.
|
|
48
|
+
this.buttonIcon$ = combineLatest([this.side$, this.isOpenAndHasContent$]).pipe(map(([side, opened]) => {
|
|
47
49
|
let icons = ['chevron_right', 'chevron_left'];
|
|
48
50
|
if (side === 'left') {
|
|
49
51
|
icons = icons.reverse();
|
|
50
52
|
}
|
|
51
53
|
return opened ? icons[0] : icons[1];
|
|
52
54
|
}));
|
|
55
|
+
// MARK: Compat
|
|
56
|
+
/**
|
|
57
|
+
* @deprecated use isOpenAndHasContent$ instead.
|
|
58
|
+
*/
|
|
59
|
+
this.opened$ = this.isOpenAndHasContent$;
|
|
53
60
|
}
|
|
54
61
|
ngOnInit() {
|
|
55
62
|
this.subscription = this.side$.pipe(switchMap(() => this._resized.pipe(throttleTime(100, undefined, { leading: true, trailing: true }), map(() => 'r'), startWith('s')))).subscribe((reason) => {
|
|
@@ -68,7 +75,7 @@ export class DbxMapboxLayoutComponent extends SubscriptionObject {
|
|
|
68
75
|
.pipe(switchMap((mode) => {
|
|
69
76
|
let obs;
|
|
70
77
|
if (mode === 'push') {
|
|
71
|
-
obs = combineLatest([this.
|
|
78
|
+
obs = combineLatest([this.isOpenAndHasContent$.pipe(distinctUntilChanged()), this._updateMargins]).pipe(tap(([opened]) => {
|
|
72
79
|
let { right } = this.drawerContainer._contentMargins;
|
|
73
80
|
this.drawerContainer.updateContentMargins();
|
|
74
81
|
setTimeout(() => {
|
|
@@ -96,7 +103,7 @@ export class DbxMapboxLayoutComponent extends SubscriptionObject {
|
|
|
96
103
|
}));
|
|
97
104
|
}
|
|
98
105
|
else {
|
|
99
|
-
obs = combineLatest([this.
|
|
106
|
+
obs = combineLatest([this.isOpenAndHasContent$.pipe(distinctUntilChanged()), this._updateMargins]).pipe(switchMap((_) => this.dbxMapboxMapStore.mapInstance$), tap((x) => {
|
|
100
107
|
this.drawerContainer.updateContentMargins();
|
|
101
108
|
x.triggerRepaint();
|
|
102
109
|
}));
|
|
@@ -106,19 +113,20 @@ export class DbxMapboxLayoutComponent extends SubscriptionObject {
|
|
|
106
113
|
.subscribe();
|
|
107
114
|
}
|
|
108
115
|
ngOnDestroy() {
|
|
116
|
+
this.openedChange.complete();
|
|
109
117
|
this._resized.complete();
|
|
110
118
|
this._updateMargins.complete();
|
|
111
119
|
this._side.complete();
|
|
112
|
-
this.
|
|
120
|
+
this._isOpen.complete();
|
|
113
121
|
this._color.complete();
|
|
114
122
|
this._toggleSub.destroy();
|
|
115
123
|
this._forceHasContent.complete();
|
|
116
124
|
}
|
|
117
125
|
toggleDrawer(open) {
|
|
118
126
|
if (open == null) {
|
|
119
|
-
open = !this.
|
|
127
|
+
open = !this._isOpen.value;
|
|
120
128
|
}
|
|
121
|
-
this.
|
|
129
|
+
this._isOpen.next(open);
|
|
122
130
|
}
|
|
123
131
|
set side(side) {
|
|
124
132
|
if (side != null) {
|
|
@@ -132,7 +140,7 @@ export class DbxMapboxLayoutComponent extends SubscriptionObject {
|
|
|
132
140
|
}
|
|
133
141
|
set opened(opened) {
|
|
134
142
|
if (opened != null) {
|
|
135
|
-
this.
|
|
143
|
+
this._isOpen.next(opened);
|
|
136
144
|
}
|
|
137
145
|
}
|
|
138
146
|
set hasContent(hasContent) {
|
|
@@ -146,13 +154,21 @@ export class DbxMapboxLayoutComponent extends SubscriptionObject {
|
|
|
146
154
|
onResized(event) {
|
|
147
155
|
this._resized.next(event);
|
|
148
156
|
}
|
|
157
|
+
onOpened(opened) {
|
|
158
|
+
this.openedChange.next(opened);
|
|
159
|
+
if (this._isOpen.value !== opened) {
|
|
160
|
+
this.openedChange.next(opened);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
149
163
|
}
|
|
150
164
|
DbxMapboxLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxLayoutComponent, deps: [{ token: i1.DbxMapboxMapStore }], target: i0.ɵɵFactoryTarget.Component });
|
|
151
|
-
DbxMapboxLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxMapboxLayoutComponent, selector: "dbx-mapbox-layout", inputs: { side: "side", mode: "mode", opened: "opened", hasContent: "hasContent", drawerColor: "drawerColor" }, viewQueries: [{ propertyName: "containerElement", first: true, predicate: MatDrawerContainer, descendants: true, read: ElementRef }, { propertyName: "drawerContainer", first: true, predicate: MatDrawerContainer, descendants: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer [opened]=\"
|
|
165
|
+
DbxMapboxLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxMapboxLayoutComponent, selector: "dbx-mapbox-layout", inputs: { side: "side", mode: "mode", opened: "opened", hasContent: "hasContent", drawerColor: "drawerColor" }, outputs: { openedChange: "openedChange" }, viewQueries: [{ propertyName: "containerElement", first: true, predicate: MatDrawerContainer, descendants: true, read: ElementRef }, { propertyName: "drawerContainer", first: true, predicate: MatDrawerContainer, descendants: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer (openedChange)=\"onOpened($event)\" [opened]=\"isOpenAndHasContent$ | async\" [mode]=\"(mode$ | async) || 'side'\" [position]=\"(position$ | async) || 'end'\">\n <div class=\"dbx-mapbox-layout-drawer-content\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <ng-content select=\"[drawer]\"></ng-content>\n <dbx-mapbox-layout-drawer></dbx-mapbox-layout-drawer>\n </div>\n </mat-drawer>\n <mat-drawer-content #content class=\"dbx-mapbox-layout-content\" (resized)=\"onResized($event)\">\n <button mat-icon-button (click)=\"toggleDrawer()\" class=\"dbx-mapbox-layout-drawer-button\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <mat-icon>{{ buttonIcon$ | async }}</mat-icon>\n </button>\n <ng-content></ng-content>\n </mat-drawer-content>\n</mat-drawer-container>\n", styles: [".dbx-mapbox-layout-container{height:100%;max-width:100%}.dbx-mapbox-layout-container .mat-drawer-container{height:100%}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer{max-width:calc(100% - var(--dbx-mapbox-min-width-var, 60px))}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer-content{height:100%;width:100%;overflow:hidden}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{position:absolute;z-index:2;top:40%;border:none;display:flex;overflow:hidden}.left-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{left:0;border-radius:0 20px 20px 0}.right-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{right:0;border-radius:20px 0 0 20px}.has-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.has-drawer-content.open-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.no-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:0px}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button mat-icon{padding-left:8px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i3.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i3.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.ResizedDirective, selector: "[resized]", outputs: ["resized"] }, { kind: "component", type: i7.DbxMapboxLayoutDrawerComponent, selector: "dbx-mapbox-layout-drawer" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
152
166
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxLayoutComponent, decorators: [{
|
|
153
167
|
type: Component,
|
|
154
|
-
args: [{ selector: 'dbx-mapbox-layout', template: "<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer [opened]=\"
|
|
155
|
-
}], ctorParameters: function () { return [{ type: i1.DbxMapboxMapStore }]; }, propDecorators: {
|
|
168
|
+
args: [{ selector: 'dbx-mapbox-layout', template: "<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer (openedChange)=\"onOpened($event)\" [opened]=\"isOpenAndHasContent$ | async\" [mode]=\"(mode$ | async) || 'side'\" [position]=\"(position$ | async) || 'end'\">\n <div class=\"dbx-mapbox-layout-drawer-content\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <ng-content select=\"[drawer]\"></ng-content>\n <dbx-mapbox-layout-drawer></dbx-mapbox-layout-drawer>\n </div>\n </mat-drawer>\n <mat-drawer-content #content class=\"dbx-mapbox-layout-content\" (resized)=\"onResized($event)\">\n <button mat-icon-button (click)=\"toggleDrawer()\" class=\"dbx-mapbox-layout-drawer-button\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <mat-icon>{{ buttonIcon$ | async }}</mat-icon>\n </button>\n <ng-content></ng-content>\n </mat-drawer-content>\n</mat-drawer-container>\n", styles: [".dbx-mapbox-layout-container{height:100%;max-width:100%}.dbx-mapbox-layout-container .mat-drawer-container{height:100%}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer{max-width:calc(100% - var(--dbx-mapbox-min-width-var, 60px))}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer-content{height:100%;width:100%;overflow:hidden}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{position:absolute;z-index:2;top:40%;border:none;display:flex;overflow:hidden}.left-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{left:0;border-radius:0 20px 20px 0}.right-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{right:0;border-radius:20px 0 0 20px}.has-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.has-drawer-content.open-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.no-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:0px}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button mat-icon{padding-left:8px}\n"] }]
|
|
169
|
+
}], ctorParameters: function () { return [{ type: i1.DbxMapboxMapStore }]; }, propDecorators: { openedChange: [{
|
|
170
|
+
type: Output
|
|
171
|
+
}], containerElement: [{
|
|
156
172
|
type: ViewChild,
|
|
157
173
|
args: [MatDrawerContainer, { read: ElementRef }]
|
|
158
174
|
}], drawerContainer: [{
|
|
@@ -172,4 +188,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
172
188
|
}], drawerColor: [{
|
|
173
189
|
type: Input
|
|
174
190
|
}] } });
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9tYXBib3gvc3JjL2xpYi9tYXBib3gubGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkssT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFpQixNQUFNLGtCQUFrQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0FBTy9EOzs7Ozs7R0FNRztBQU1ILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxrQkFBa0I7SUFtRTlELFlBQXFCLGlCQUFvQztRQUN2RCxLQUFLLEVBQUUsQ0FBQztRQURXLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUF6RGpELGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUN2QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDckMscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFD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Q0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVELElBQ0ksVUFBVSxDQUFDLFVBQTBCO1FBQ3ZDLElBQUksVUFBVSxJQUFJLElBQUksRUFBRTtZQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVELElBQ0ksV0FBVyxDQUFDLEtBQTJCO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBbUI7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7c0hBbk5VLHdCQUF3QjswR0FBeEIsd0JBQXdCLDJOQUN4QixrQkFBa0IsMkJBQVUsVUFBVSwrREFHdEMsa0JBQWtCLGdIQUdDLFVBQVUsa0VDakMxQyx5OEJBY0E7NEZEWWEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLG1CQUFtQjt3R0FNcEIsZ0JBQWdCO3NCQUR4QixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJMUMsZUFBZTtzQkFEdkIsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBSXBCLE9BQU87c0JBRGYsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBMEtwRCxJQUFJO3NCQURQLEtBQUs7Z0JBUUYsSUFBSTtzQkFEUCxLQUFLO2dCQVFGLE1BQU07c0JBRFQsS0FBSztnQkFRRixVQUFVO3NCQURiLEtBQUs7Z0JBUUYsV0FBVztzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGFwLCBzd2l0Y2hNYXAsIGZpcnN0LCBzdGFydFdpdGgsIHNoYXJlUmVwbGF5LCB0aHJvdHRsZVRpbWUsIG1hcCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWFwU3RvcmUgfSBmcm9tICcuL21hcGJveC5zdG9yZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgZGJ4Q29sb3JCYWNrZ3JvdW5kLCBEYnhUaGVtZUNvbG9yIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBSZXNpemVkRXZlbnQgfSBmcm9tICdhbmd1bGFyLXJlc2l6ZS1ldmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IE1hdERyYXdlckNvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWFwYm94RWFzZVRvIH0gZnJvbSAnLi9tYXBib3gnO1xuXG5leHBvcnQgdHlwZSBEYnhNYXBib3hMYXlvdXRTaWRlID0gJ2xlZnQnIHwgJ3JpZ2h0JztcblxuZXhwb3J0IHR5cGUgRGJ4TWFwYm94TGF5b3V0TW9kZSA9ICdzaWRlJyB8ICdwdXNoJztcblxuLyoqXG4gKiBSZXNwb25zaXZlIGNvbXBvbmVudCBtZWFudCB0byBzcGxpdCBhIGxlZnQgYW5kIHJpZ2h0IGNvbHVtbi5cbiAqXG4gKiBUaGUgbGVmdCBjb2x1bW4gaXMgc21hbGxlciB0aGFuIHRoZSByaWdodCBjb2x1bW4sIHdoaWNoIGNvbnRhaW5zIHRoZSBwcmltYXJ5IGNvbnRlbnQuXG4gKlxuICogUmVxdWlyZXMgYSBUd29Db2x1bW5zQ29udGV4dFN0b3JlIHRvIGJlIHByb3ZpZGVkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtbWFwYm94LWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXBib3gubGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFwYm94LmxheW91dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERieE1hcGJveExheW91dENvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbk9iamVjdCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZChNYXREcmF3ZXJDb250YWluZXIsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICByZWFkb25seSBjb250YWluZXJFbGVtZW50ITogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKE1hdERyYXdlckNvbnRhaW5lcilcbiAgcmVhZG9ubHkgZHJhd2VyQ29udGFpbmVyITogTWF0RHJhd2VyQ29udGFpbmVyO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICByZWFkb25seSBjb250ZW50ITogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIF9yZXNpemVkID0gbmV3IFN1YmplY3Q8UmVzaXplZEV2ZW50PigpO1xuICBwcml2YXRlIF91cGRhdGVNYXJnaW5zID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfZm9yY2VIYXNDb250ZW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgX21vZGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERieE1hcGJveExheW91dE1vZGU+KCdzaWRlJyk7XG4gIHByaXZhdGUgX3NpZGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERieE1hcGJveExheW91dFNpZGU+KCdyaWdodCcpO1xuICBwcml2YXRlIF9vcGVuVG9nZ2xlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHJpdmF0ZSBfY29sb3IgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPERieFRoZW1lQ29sb3I+Pih1bmRlZmluZWQpO1xuICBwcml2YXRlIF90b2dnbGVTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgcmVhZG9ubHkgcmVzaXplZCQgPSB0aGlzLl9yZXNpemVkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBzaWRlJCA9IHRoaXMuX3NpZGUucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IG1vZGUkOiBPYnNlcnZhYmxlPERieE1hcGJveExheW91dE1vZGU+ID0gdGhpcy5fbW9kZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBoYXNDb250ZW50JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2ZvcmNlSGFzQ29udGVudCwgdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5oYXNDb250ZW50JF0pLnBpcGUoXG4gICAgbWFwKChbaGFzQ29udGVudCwgZm9yY2VIYXNDb250ZW50XSkgPT4gaGFzQ29udGVudCB8fCBmb3JjZUhhc0NvbnRlbnQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBvcGVuZWQkID0gY29tYmluZUxhdGVzdChbdGhpcy5oYXNDb250ZW50JCwgdGhpcy5fb3BlblRvZ2dsZV0pLnBpcGUoXG4gICAgbWFwKChbaGFzQ29udGVudCwgb3Blbl0pID0+IGhhc0NvbnRlbnQgJiYgb3BlbiksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHBvc2l0aW9uJDogT2JzZXJ2YWJsZTwnc3RhcnQnIHwgJ2VuZCc+ID0gdGhpcy5zaWRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gKHggPT09ICdyaWdodCcgPyAnZW5kJyA6ICdzdGFydCcpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZHJhd2VyQ2xhc3NlcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNpZGUkLCB0aGlzLmRieE1hcGJveE1hcFN0b3JlLmhhc0NvbnRlbnQkLCB0aGlzLm9wZW5lZCRdKS5waXBlKFxuICAgIC8vXG4gICAgbWFwKChbc2lkZSwgaGFzQ29udGVudCwgb3Blbl0pID0+IChoYXNDb250ZW50ID8gJ2hhcy1kcmF3ZXItY29udGVudCcgOiAnbm8tZHJhd2VyLWNvbnRlbnQnKSArIGAgJHtzaWRlfS1kcmF3ZXIgYCArIChvcGVuID8gJ29wZW4tZHJhd2VyJyA6ICcnKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRyYXdlckJ1dHRvbkNsYXNzZXMkID0gY29tYmluZUxhdGVzdChbdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5oYXNDb250ZW50JCwgdGhpcy5fY29sb3JdKS5waXBlKFxuICAgIC8vXG4gICAgbWFwKChbaGFzQ29udGVudCwgY29sb3JdKSA9PiBkYnhDb2xvckJhY2tncm91bmQoY29sb3IpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYnV0dG9uSWNvbiQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc2lkZSQsIHRoaXMub3BlbmVkJF0pLnBpcGUoXG4gICAgbWFwKChbc2lkZSwgb3BlbmVkXSkgPT4ge1xuICAgICAgbGV0IGljb25zID0gWydjaGV2cm9uX3JpZ2h0JywgJ2NoZXZyb25fbGVmdCddO1xuXG4gICAgICBpZiAoc2lkZSA9PT0gJ2xlZnQnKSB7XG4gICAgICAgIGljb25zID0gaWNvbnMucmV2ZXJzZSgpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gb3BlbmVkID8gaWNvbnNbMF0gOiBpY29uc1sxXTtcbiAgICB9KVxuICApO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGRieE1hcGJveE1hcFN0b3JlOiBEYnhNYXBib3hNYXBTdG9yZSkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IChcbiAgICAgIHRoaXMuc2lkZSQucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgICAgdGhpcy5fcmVzaXplZC5waXBlKFxuICAgICAgICAgICAgdGhyb3R0bGVUaW1lKDEwMCwgdW5kZWZpbmVkLCB7IGxlYWRpbmc6IHRydWUsIHRyYWlsaW5nOiB0cnVlIH0pLFxuICAgICAgICAgICAgbWFwKCgpID0+ICdyJyksXG4gICAgICAgICAgICBzdGFydFdpdGgoJ3MnKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKSBhcyBPYnNlcnZhYmxlPCdzJyB8ICdyJz5cbiAgICApLnN1YnNjcmliZSgocmVhc29uKSA9PiB7XG4gICAgICB0aGlzLmRieE1hcGJveE1hcFN0b3JlLm1hcEluc3RhbmNlJC5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgICAgeC5yZXNpemUoKTtcblxuICAgICAgICAvLyBzaWRlIGNoYW5nZWRcbiAgICAgICAgaWYgKHJlYXNvbiA9PT0gJ3MnKSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVNYXJnaW5zLm5leHQoKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBsZXQgaW5pdCA9IGZhbHNlO1xuXG4gICAgdGhpcy5fdG9nZ2xlU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMubW9kZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKG1vZGUpID0+IHtcbiAgICAgICAgICBsZXQgb2JzOiBPYnNlcnZhYmxlPHVua25vd24+O1xuXG4gICAgICAgICAgaWYgKG1vZGUgPT09ICdwdXNoJykge1xuICAgICAgICAgICAgb2JzID0gY29tYmluZUxhdGVzdChbdGhpcy5vcGVuZWQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksIHRoaXMuX3VwZGF0ZU1hcmdpbnNdKS5waXBlKFxuICAgICAgICAgICAgICB0YXAoKFtvcGVuZWRdKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHsgcmlnaHQgfSA9IHRoaXMuZHJhd2VyQ29udGFpbmVyLl9jb250ZW50TWFyZ2lucztcblxuICAgICAgICAgICAgICAgIHRoaXMuZHJhd2VyQ29udGFpbmVyLnVwZGF0ZUNvbnRlbnRNYXJnaW5zKCk7XG5cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGZsaXAgPSBvcGVuZWQgPyAxIDogLTE7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChvcGVuZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQgPSB0aGlzLmRyYXdlckNvbnRhaW5lci5fY29udGVudE1hcmdpbnMucmlnaHQ7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gKHJpZ2h0IHx8IDApICogZmxpcDtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgbWFyZ2luID0ge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0TWFyZ2luOiAwLFxuICAgICAgICAgICAgICAgICAgICByaWdodE1hcmdpbjogcmlnaHQsXG4gICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aDogd2lkdGhcbiAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGVhc2VUbzogT2JzZXJ2YWJsZTxNYXBib3hFYXNlVG8+ID0gdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5jYWxjdWxhdGVOZXh0Q2VudGVyT2Zmc2V0V2l0aFNjcmVlbk1hcmdpbkNoYW5nZShtYXJnaW4pLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoY2VudGVyKSA9PiAoeyB0bzogeyBjZW50ZXIsIGR1cmF0aW9uOiAzMjAwLCBlc3NlbnRpYWw6IGZhbHNlIH0gfSBhcyBNYXBib3hFYXNlVG8pKVxuICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5zZXRNYXJnaW4ob3BlbmVkID8gbWFyZ2luIDogdW5kZWZpbmVkKTtcblxuICAgICAgICAgICAgICAgICAgaWYgKCFpbml0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGJ4TWFwYm94TWFwU3RvcmUuZWFzZVRvKGVhc2VUbyk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9icyA9IGNvbWJpbmVMYXRlc3QoW3RoaXMub3BlbmVkJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLCB0aGlzLl91cGRhdGVNYXJnaW5zXSkucGlwZShcbiAgICAgICAgICAgICAgc3dpdGNoTWFwKChfKSA9PiB0aGlzLmRieE1hcGJveE1hcFN0b3JlLm1hcEluc3RhbmNlJCksXG4gICAgICAgICAgICAgIHRhcCgoeCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhd2VyQ29udGFpbmVyLnVwZGF0ZUNvbnRlbnRNYXJnaW5zKCk7XG4gICAgICAgICAgICAgICAgeC50cmlnZ2VyUmVwYWludCgpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gb2JzO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzaXplZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3VwZGF0ZU1hcmdpbnMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9zaWRlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fb3BlblRvZ2dsZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2NvbG9yLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fdG9nZ2xlU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9mb3JjZUhhc0NvbnRlbnQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHRvZ2dsZURyYXdlcihvcGVuPzogYm9vbGVhbikge1xuICAgIGlmIChvcGVuID09IG51bGwpIHtcbiAgICAgIG9wZW4gPSAhdGhpcy5fb3BlblRvZ2dsZS52YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLl9vcGVuVG9nZ2xlLm5leHQob3Blbik7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgc2lkZShzaWRlOiBNYXliZTxEYnhNYXBib3hMYXlvdXRTaWRlPikge1xuICAgIGlmIChzaWRlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX3NpZGUubmV4dChzaWRlKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgbW9kZShtb2RlOiBNYXliZTxEYnhNYXBib3hMYXlvdXRNb2RlPikge1xuICAgIGlmIChtb2RlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX21vZGUubmV4dChtb2RlKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgb3BlbmVkKG9wZW5lZDogTWF5YmU8Ym9vbGVhbj4pIHtcbiAgICBpZiAob3BlbmVkICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX29wZW5Ub2dnbGUubmV4dChvcGVuZWQpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBoYXNDb250ZW50KGhhc0NvbnRlbnQ6IE1heWJlPGJvb2xlYW4+KSB7XG4gICAgaWYgKGhhc0NvbnRlbnQgIT0gbnVsbCkge1xuICAgICAgdGhpcy5fZm9yY2VIYXNDb250ZW50Lm5leHQoaGFzQ29udGVudCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGRyYXdlckNvbG9yKGNvbG9yOiBNYXliZTxEYnhUaGVtZUNvbG9yPikge1xuICAgIHRoaXMuX2NvbG9yLm5leHQoY29sb3IpO1xuICB9XG5cbiAgb25SZXNpemVkKGV2ZW50OiBSZXNpemVkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNpemVkLm5leHQoZXZlbnQpO1xuICB9XG59XG4iLCI8bWF0LWRyYXdlci1jb250YWluZXIgI2NvbnRhaW5lckVsZW1lbnQgY2xhc3M9XCJkYngtbWFwYm94LWxheW91dC1jb250YWluZXJcIiBbbmdDbGFzc109XCIoZHJhd2VyQ2xhc3NlcyQgfCBhc3luYykgfHwgJydcIiBbaGFzQmFja2Ryb3BdPVwiZmFsc2VcIj5cbiAgPG1hdC1kcmF3ZXIgY2xhc3M9XCJkYngtbWFwYm94LWxheW91dC1kcmF3ZXJcIiAjZHJhd2VyIFtvcGVuZWRdPVwib3BlbmVkJCB8IGFzeW5jXCIgW21vZGVdPVwiKG1vZGUkIHwgYXN5bmMpIHx8ICdzaWRlJ1wiIFtwb3NpdGlvbl09XCIocG9zaXRpb24kIHwgYXN5bmMpIHx8ICdlbmQnXCI+XG4gICAgPGRpdiBjbGFzcz1cImRieC1tYXBib3gtbGF5b3V0LWRyYXdlci1jb250ZW50XCIgW25nQ2xhc3NdPVwiKGRyYXdlckJ1dHRvbkNsYXNzZXMkIHwgYXN5bmMpIHx8ICcnXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZHJhd2VyXVwiPjwvbmctY29udGVudD5cbiAgICAgIDxkYngtbWFwYm94LWxheW91dC1kcmF3ZXI+PC9kYngtbWFwYm94LWxheW91dC1kcmF3ZXI+XG4gICAgPC9kaXY+XG4gIDwvbWF0LWRyYXdlcj5cbiAgPG1hdC1kcmF3ZXItY29udGVudCAjY29udGVudCBjbGFzcz1cImRieC1tYXBib3gtbGF5b3V0LWNvbnRlbnRcIiAocmVzaXplZCk9XCJvblJlc2l6ZWQoJGV2ZW50KVwiPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGVEcmF3ZXIoKVwiIGNsYXNzPVwiZGJ4LW1hcGJveC1sYXlvdXQtZHJhd2VyLWJ1dHRvblwiIFtuZ0NsYXNzXT1cIihkcmF3ZXJCdXR0b25DbGFzc2VzJCB8IGFzeW5jKSB8fCAnJ1wiPlxuICAgICAgPG1hdC1pY29uPnt7IGJ1dHRvbkljb24kIHwgYXN5bmMgfX08L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9tYXQtZHJhd2VyLWNvbnRlbnQ+XG48L21hdC1kcmF3ZXItY29udGFpbmVyPlxuIl19
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9tYXBib3gvc3JjL2xpYi9tYXBib3gubGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkssT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWlCLE1BQU0sa0JBQWtCLENBQUM7QUFFckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7QUFPL0Q7Ozs7OztHQU1HO0FBTUgsTUFBTSxPQUFPLHdCQUF5QixTQUFRLGtCQUFrQjtJQXdFOUQsWUFBcUIsaUJBQW9DO1FBQ3ZELEtBQUssRUFBRSxDQUFDO1FBRFcsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXRFaEQsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBVzVDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztRQUN2QyxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDckMscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDdkQsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFzQixNQUFNLENBQUMsQ0FBQztRQUN6RCxVQUFLLEdBQUcsSUFBSSxlQUFlLENBQXNCLE9BQU8sQ0FBQyxDQUFDO1FBQzFELFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUM3QyxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQXVCLFNBQVMsQ0FBQyxDQUFDO1FBQzlELGVBQVUsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFFckMsYUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsVUFBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsVUFBSyxHQUFvQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWpHLGdCQUFXLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDcEcsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsSUFBSSxlQUFlLENBQUMsRUFDckUsb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFFTyxZQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV0Qyx5QkFBb0IsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbEYsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsRUFDL0Msb0JBQW9CLEVBQUUsRUFDdEIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7UUFFTyxjQUFTLEdBQWdDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUMvRCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUM3QyxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLG1CQUFjLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUN2SCxFQUFFO1FBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsSUFBSSxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUMvSSxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztRQUVPLHlCQUFvQixHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUNuRyxFQUFFO1FBQ0YsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3ZELG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO1FBRU8sZ0JBQVcsR0FBdUIsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDcEcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUNyQixJQUFJLEtBQUssR0FBRyxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUU5QyxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7Z0JBQ25CLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDekI7WUFFRCxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQTZKRixlQUFlO1FBQ2Y7O1dBRUc7UUFDTSxZQUFPLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBN0o3QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEdBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ2IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoQixZQUFZLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQy9ELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFDZCxTQUFTLENBQUMsR0FBRyxDQUFDLENBQ2YsQ0FDRixDQUVKLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDbEQsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUVYLGVBQWU7Z0JBQ2YsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFO29CQUNsQixVQUFVLENBQUMsR0FBRyxFQUFFO3dCQUNkLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQzdCLENBQUMsQ0FBQyxDQUFDO2lCQUNKO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQztRQUVqQixJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSzthQUN0QyxJQUFJLENBQ0gsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDakIsSUFBSSxHQUF3QixDQUFDO1lBRTdCLElBQUksSUFBSSxLQUFLLE1BQU0sRUFBRTtnQkFDbkIsR0FBRyxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckcsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFO29CQUNmLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQztvQkFFckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO29CQUU1QyxVQUFVLENBQUMsR0FBRyxFQUFFO3dCQUNkLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFFN0IsSUFBSSxNQUFNLEVBQUU7NEJBQ1YsS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQzt5QkFDcEQ7d0JBRUQsS0FBSyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQzt3QkFFNUIsTUFBTSxPQUFPLEdBQWdCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO3dCQUN4RCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO3dCQUVsQyxNQUFNLE1BQU0sR0FBRzs0QkFDYixVQUFVLEVBQUUsQ0FBQzs0QkFDYixXQUFXLEVBQUUsS0FBSzs0QkFDbEIsU0FBUyxFQUFFLEtBQUs7eUJBQ2pCLENBQUM7d0JBRUYsTUFBTSxNQUFNLEdBQTZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQywrQ0FBK0MsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQzFILEtBQUssRUFBRSxFQUNQLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsRUFBbUIsQ0FBQSxDQUFDLENBQ3hGLENBQUM7d0JBRUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7d0JBRTlELElBQUksQ0FBQyxJQUFJLEVBQUU7NEJBQ1QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzt5QkFDdkM7NkJBQU07NEJBQ0wsSUFBSSxHQUFHLElBQUksQ0FBQzt5QkFDYjtvQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsR0FBRyxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDckcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQ3JELEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNSLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztvQkFDNUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUNyQixDQUFDLENBQUMsQ0FDSCxDQUFDO2FBQ0g7WUFFRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQWM7UUFDekIsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO1lBQ2hCLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1NBQzVCO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQ0ksSUFBSSxDQUFDLElBQWdDO1FBQ3ZDLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFRCxJQUNJLElBQUksQ0FBQyxJQUFnQztRQUN2QyxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsSUFDSSxNQUFNLENBQUMsTUFBc0I7UUFDL0IsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELElBQ0ksVUFBVSxDQUFDLFVBQTBCO1FBQ3ZDLElBQUksVUFBVSxJQUFJLElBQUksRUFBRTtZQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQztJQUVELElBQ0ksV0FBVyxDQUFDLEtBQTJCO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBbUI7UUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFlO1FBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRS9CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssTUFBTSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQzs7c0hBak9VLHdCQUF3QjswR0FBeEIsd0JBQXdCLHNRQUl4QixrQkFBa0IsMkJBQVUsVUFBVSwrREFHdEMsa0JBQWtCLGdIQUdDLFVBQVUsa0VDcEMxQywwL0JBY0E7NEZEWWEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLG1CQUFtQjt3R0FNcEIsWUFBWTtzQkFEcEIsTUFBTTtnQkFJRSxnQkFBZ0I7c0JBRHhCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUkxQyxlQUFlO3NCQUR2QixTQUFTO3VCQUFDLGtCQUFrQjtnQkFJcEIsT0FBTztzQkFEZixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkE2S3BELElBQUk7c0JBRFAsS0FBSztnQkFRRixJQUFJO3NCQURQLEtBQUs7Z0JBUUYsTUFBTTtzQkFEVCxLQUFLO2dCQVFGLFVBQVU7c0JBRGIsS0FBSztnQkFRRixXQUFXO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0YXAsIHN3aXRjaE1hcCwgZmlyc3QsIHN0YXJ0V2l0aCwgc2hhcmVSZXBsYXksIHRocm90dGxlVGltZSwgbWFwLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWFwU3RvcmUgfSBmcm9tICcuL21hcGJveC5zdG9yZSc7XG5pbXBvcnQgeyBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgZGJ4Q29sb3JCYWNrZ3JvdW5kLCBEYnhUaGVtZUNvbG9yIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBSZXNpemVkRXZlbnQgfSBmcm9tICdhbmd1bGFyLXJlc2l6ZS1ldmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IE1hdERyYXdlckNvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWFwYm94RWFzZVRvIH0gZnJvbSAnLi9tYXBib3gnO1xuXG5leHBvcnQgdHlwZSBEYnhNYXBib3hMYXlvdXRTaWRlID0gJ2xlZnQnIHwgJ3JpZ2h0JztcblxuZXhwb3J0IHR5cGUgRGJ4TWFwYm94TGF5b3V0TW9kZSA9ICdzaWRlJyB8ICdwdXNoJztcblxuLyoqXG4gKiBSZXNwb25zaXZlIGNvbXBvbmVudCBtZWFudCB0byBzcGxpdCBhIGxlZnQgYW5kIHJpZ2h0IGNvbHVtbi5cbiAqXG4gKiBUaGUgbGVmdCBjb2x1bW4gaXMgc21hbGxlciB0aGFuIHRoZSByaWdodCBjb2x1bW4sIHdoaWNoIGNvbnRhaW5zIHRoZSBwcmltYXJ5IGNvbnRlbnQuXG4gKlxuICogUmVxdWlyZXMgYSBUd29Db2x1bW5zQ29udGV4dFN0b3JlIHRvIGJlIHByb3ZpZGVkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtbWFwYm94LWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXBib3gubGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFwYm94LmxheW91dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIERieE1hcGJveExheW91dENvbXBvbmVudCBleHRlbmRzIFN1YnNjcmlwdGlvbk9iamVjdCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IG9wZW5lZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKE1hdERyYXdlckNvbnRhaW5lciwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHJlYWRvbmx5IGNvbnRhaW5lckVsZW1lbnQhOiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoTWF0RHJhd2VyQ29udGFpbmVyKVxuICByZWFkb25seSBkcmF3ZXJDb250YWluZXIhOiBNYXREcmF3ZXJDb250YWluZXI7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pXG4gIHJlYWRvbmx5IGNvbnRlbnQhOiBFbGVtZW50UmVmO1xuXG4gIHByaXZhdGUgX3Jlc2l6ZWQgPSBuZXcgU3ViamVjdDxSZXNpemVkRXZlbnQ+KCk7XG4gIHByaXZhdGUgX3VwZGF0ZU1hcmdpbnMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIF9mb3JjZUhhc0NvbnRlbnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBfbW9kZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGJ4TWFwYm94TGF5b3V0TW9kZT4oJ3NpZGUnKTtcbiAgcHJpdmF0ZSBfc2lkZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGJ4TWFwYm94TGF5b3V0U2lkZT4oJ3JpZ2h0Jyk7XG4gIHByaXZhdGUgX2lzT3BlbiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHByaXZhdGUgX2NvbG9yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxEYnhUaGVtZUNvbG9yPj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBfdG9nZ2xlU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IHJlc2l6ZWQkID0gdGhpcy5fcmVzaXplZC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgc2lkZSQgPSB0aGlzLl9zaWRlLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSBtb2RlJDogT2JzZXJ2YWJsZTxEYnhNYXBib3hMYXlvdXRNb2RlPiA9IHRoaXMuX21vZGUucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgaGFzQ29udGVudCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9mb3JjZUhhc0NvbnRlbnQsIHRoaXMuZGJ4TWFwYm94TWFwU3RvcmUuaGFzQ29udGVudCRdKS5waXBlKFxuICAgIG1hcCgoW2hhc0NvbnRlbnQsIGZvcmNlSGFzQ29udGVudF0pID0+IGhhc0NvbnRlbnQgfHwgZm9yY2VIYXNDb250ZW50KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaXNPcGVuJCA9IHRoaXMuX2lzT3Blbi5hc09ic2VydmFibGUoKTtcblxuICByZWFkb25seSBpc09wZW5BbmRIYXNDb250ZW50JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuaGFzQ29udGVudCQsIHRoaXMuX2lzT3Blbl0pLnBpcGUoXG4gICAgbWFwKChbaGFzQ29udGVudCwgb3Blbl0pID0+IGhhc0NvbnRlbnQgJiYgb3BlbiksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHBvc2l0aW9uJDogT2JzZXJ2YWJsZTwnc3RhcnQnIHwgJ2VuZCc+ID0gdGhpcy5zaWRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gKHggPT09ICdyaWdodCcgPyAnZW5kJyA6ICdzdGFydCcpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZHJhd2VyQ2xhc3NlcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNpZGUkLCB0aGlzLmRieE1hcGJveE1hcFN0b3JlLmhhc0NvbnRlbnQkLCB0aGlzLmlzT3BlbkFuZEhhc0NvbnRlbnQkXSkucGlwZShcbiAgICAvL1xuICAgIG1hcCgoW3NpZGUsIGhhc0NvbnRlbnQsIG9wZW5dKSA9PiAoaGFzQ29udGVudCA/ICdoYXMtZHJhd2VyLWNvbnRlbnQnIDogJ25vLWRyYXdlci1jb250ZW50JykgKyBgICR7c2lkZX0tZHJhd2VyIGAgKyAob3BlbiA/ICdvcGVuLWRyYXdlcicgOiAnJykpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkcmF3ZXJCdXR0b25DbGFzc2VzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZGJ4TWFwYm94TWFwU3RvcmUuaGFzQ29udGVudCQsIHRoaXMuX2NvbG9yXSkucGlwZShcbiAgICAvL1xuICAgIG1hcCgoW2hhc0NvbnRlbnQsIGNvbG9yXSkgPT4gZGJ4Q29sb3JCYWNrZ3JvdW5kKGNvbG9yKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGJ1dHRvbkljb24kOiBPYnNlcnZhYmxlPHN0cmluZz4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNpZGUkLCB0aGlzLmlzT3BlbkFuZEhhc0NvbnRlbnQkXSkucGlwZShcbiAgICBtYXAoKFtzaWRlLCBvcGVuZWRdKSA9PiB7XG4gICAgICBsZXQgaWNvbnMgPSBbJ2NoZXZyb25fcmlnaHQnLCAnY2hldnJvbl9sZWZ0J107XG5cbiAgICAgIGlmIChzaWRlID09PSAnbGVmdCcpIHtcbiAgICAgICAgaWNvbnMgPSBpY29ucy5yZXZlcnNlKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBvcGVuZWQgPyBpY29uc1swXSA6IGljb25zWzFdO1xuICAgIH0pXG4gICk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZGJ4TWFwYm94TWFwU3RvcmU6IERieE1hcGJveE1hcFN0b3JlKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gKFxuICAgICAgdGhpcy5zaWRlJC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgICB0aGlzLl9yZXNpemVkLnBpcGUoXG4gICAgICAgICAgICB0aHJvdHRsZVRpbWUoMTAwLCB1bmRlZmluZWQsIHsgbGVhZGluZzogdHJ1ZSwgdHJhaWxpbmc6IHRydWUgfSksXG4gICAgICAgICAgICBtYXAoKCkgPT4gJ3InKSxcbiAgICAgICAgICAgIHN0YXJ0V2l0aCgncycpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApIGFzIE9ic2VydmFibGU8J3MnIHwgJ3InPlxuICAgICkuc3Vic2NyaWJlKChyZWFzb24pID0+IHtcbiAgICAgIHRoaXMuZGJ4TWFwYm94TWFwU3RvcmUubWFwSW5zdGFuY2UkLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgICB4LnJlc2l6ZSgpO1xuXG4gICAgICAgIC8vIHNpZGUgY2hhbmdlZFxuICAgICAgICBpZiAocmVhc29uID09PSAncycpIHtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZU1hcmdpbnMubmV4dCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGxldCBpbml0ID0gZmFsc2U7XG5cbiAgICB0aGlzLl90b2dnbGVTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5tb2RlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgobW9kZSkgPT4ge1xuICAgICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8dW5rbm93bj47XG5cbiAgICAgICAgICBpZiAobW9kZSA9PT0gJ3B1c2gnKSB7XG4gICAgICAgICAgICBvYnMgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmlzT3BlbkFuZEhhc0NvbnRlbnQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksIHRoaXMuX3VwZGF0ZU1hcmdpbnNdKS5waXBlKFxuICAgICAgICAgICAgICB0YXAoKFtvcGVuZWRdKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHsgcmlnaHQgfSA9IHRoaXMuZHJhd2VyQ29udGFpbmVyLl9jb250ZW50TWFyZ2lucztcblxuICAgICAgICAgICAgICAgIHRoaXMuZHJhd2VyQ29udGFpbmVyLnVwZGF0ZUNvbnRlbnRNYXJnaW5zKCk7XG5cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGZsaXAgPSBvcGVuZWQgPyAxIDogLTE7XG5cbiAgICAgICAgICAgICAgICAgIGlmIChvcGVuZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQgPSB0aGlzLmRyYXdlckNvbnRhaW5lci5fY29udGVudE1hcmdpbnMucmlnaHQ7XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHJpZ2h0ID0gKHJpZ2h0IHx8IDApICogZmxpcDtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gZWxlbWVudC5jbGllbnRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgY29uc3QgbWFyZ2luID0ge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0TWFyZ2luOiAwLFxuICAgICAgICAgICAgICAgICAgICByaWdodE1hcmdpbjogcmlnaHQsXG4gICAgICAgICAgICAgICAgICAgIGZ1bGxXaWR0aDogd2lkdGhcbiAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IGVhc2VUbzogT2JzZXJ2YWJsZTxNYXBib3hFYXNlVG8+ID0gdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5jYWxjdWxhdGVOZXh0Q2VudGVyT2Zmc2V0V2l0aFNjcmVlbk1hcmdpbkNoYW5nZShtYXJnaW4pLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoY2VudGVyKSA9PiAoeyB0bzogeyBjZW50ZXIsIGR1cmF0aW9uOiAzMjAwLCBlc3NlbnRpYWw6IGZhbHNlIH0gfSBhcyBNYXBib3hFYXNlVG8pKVxuICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5zZXRNYXJnaW4ob3BlbmVkID8gbWFyZ2luIDogdW5kZWZpbmVkKTtcblxuICAgICAgICAgICAgICAgICAgaWYgKCFpbml0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGJ4TWFwYm94TWFwU3RvcmUuZWFzZVRvKGVhc2VUbyk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbml0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9icyA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuaXNPcGVuQW5kSGFzQ29udGVudCQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSwgdGhpcy5fdXBkYXRlTWFyZ2luc10pLnBpcGUoXG4gICAgICAgICAgICAgIHN3aXRjaE1hcCgoXykgPT4gdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5tYXBJbnN0YW5jZSQpLFxuICAgICAgICAgICAgICB0YXAoKHgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYXdlckNvbnRhaW5lci51cGRhdGVDb250ZW50TWFyZ2lucygpO1xuICAgICAgICAgICAgICAgIHgudHJpZ2dlclJlcGFpbnQoKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG9icztcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub3BlbmVkQ2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fcmVzaXplZC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3VwZGF0ZU1hcmdpbnMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9zaWRlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5faXNPcGVuLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fY29sb3IuY29tcGxldGUoKTtcbiAgICB0aGlzLl90b2dnbGVTdWIuZGVzdHJveSgpO1xuICAgIHRoaXMuX2ZvcmNlSGFzQ29udGVudC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgdG9nZ2xlRHJhd2VyKG9wZW4/OiBib29sZWFuKSB7XG4gICAgaWYgKG9wZW4gPT0gbnVsbCkge1xuICAgICAgb3BlbiA9ICF0aGlzLl9pc09wZW4udmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5faXNPcGVuLm5leHQob3Blbik7XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgc2lkZShzaWRlOiBNYXliZTxEYnhNYXBib3hMYXlvdXRTaWRlPikge1xuICAgIGlmIChzaWRlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX3NpZGUubmV4dChzaWRlKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgbW9kZShtb2RlOiBNYXliZTxEYnhNYXBib3hMYXlvdXRNb2RlPikge1xuICAgIGlmIChtb2RlICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX21vZGUubmV4dChtb2RlKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgb3BlbmVkKG9wZW5lZDogTWF5YmU8Ym9vbGVhbj4pIHtcbiAgICBpZiAob3BlbmVkICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX2lzT3Blbi5uZXh0KG9wZW5lZCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IGhhc0NvbnRlbnQoaGFzQ29udGVudDogTWF5YmU8Ym9vbGVhbj4pIHtcbiAgICBpZiAoaGFzQ29udGVudCAhPSBudWxsKSB7XG4gICAgICB0aGlzLl9mb3JjZUhhc0NvbnRlbnQubmV4dChoYXNDb250ZW50KTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICBzZXQgZHJhd2VyQ29sb3IoY29sb3I6IE1heWJlPERieFRoZW1lQ29sb3I+KSB7XG4gICAgdGhpcy5fY29sb3IubmV4dChjb2xvcik7XG4gIH1cblxuICBvblJlc2l6ZWQoZXZlbnQ6IFJlc2l6ZWRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2l6ZWQubmV4dChldmVudCk7XG4gIH1cblxuICBvbk9wZW5lZChvcGVuZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm9wZW5lZENoYW5nZS5uZXh0KG9wZW5lZCk7XG5cbiAgICBpZiAodGhpcy5faXNPcGVuLnZhbHVlICE9PSBvcGVuZWQpIHtcbiAgICAgIHRoaXMub3BlbmVkQ2hhbmdlLm5leHQob3BlbmVkKTtcbiAgICB9XG4gIH1cblxuICAvLyBNQVJLOiBDb21wYXRcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzZSBpc09wZW5BbmRIYXNDb250ZW50JCBpbnN0ZWFkLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlbmVkJCA9IHRoaXMuaXNPcGVuQW5kSGFzQ29udGVudCQ7XG59XG4iLCI8bWF0LWRyYXdlci1jb250YWluZXIgI2NvbnRhaW5lckVsZW1lbnQgY2xhc3M9XCJkYngtbWFwYm94LWxheW91dC1jb250YWluZXJcIiBbbmdDbGFzc109XCIoZHJhd2VyQ2xhc3NlcyQgfCBhc3luYykgfHwgJydcIiBbaGFzQmFja2Ryb3BdPVwiZmFsc2VcIj5cbiAgPG1hdC1kcmF3ZXIgY2xhc3M9XCJkYngtbWFwYm94LWxheW91dC1kcmF3ZXJcIiAjZHJhd2VyIChvcGVuZWRDaGFuZ2UpPVwib25PcGVuZWQoJGV2ZW50KVwiIFtvcGVuZWRdPVwiaXNPcGVuQW5kSGFzQ29udGVudCQgfCBhc3luY1wiIFttb2RlXT1cIihtb2RlJCB8IGFzeW5jKSB8fCAnc2lkZSdcIiBbcG9zaXRpb25dPVwiKHBvc2l0aW9uJCB8IGFzeW5jKSB8fCAnZW5kJ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJkYngtbWFwYm94LWxheW91dC1kcmF3ZXItY29udGVudFwiIFtuZ0NsYXNzXT1cIihkcmF3ZXJCdXR0b25DbGFzc2VzJCB8IGFzeW5jKSB8fCAnJ1wiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RyYXdlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8ZGJ4LW1hcGJveC1sYXlvdXQtZHJhd2VyPjwvZGJ4LW1hcGJveC1sYXlvdXQtZHJhd2VyPlxuICAgIDwvZGl2PlxuICA8L21hdC1kcmF3ZXI+XG4gIDxtYXQtZHJhd2VyLWNvbnRlbnQgI2NvbnRlbnQgY2xhc3M9XCJkYngtbWFwYm94LWxheW91dC1jb250ZW50XCIgKHJlc2l6ZWQpPVwib25SZXNpemVkKCRldmVudClcIj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlRHJhd2VyKClcIiBjbGFzcz1cImRieC1tYXBib3gtbGF5b3V0LWRyYXdlci1idXR0b25cIiBbbmdDbGFzc109XCIoZHJhd2VyQnV0dG9uQ2xhc3NlcyQgfCBhc3luYykgfHwgJydcIj5cbiAgICAgIDxtYXQtaWNvbj57eyBidXR0b25JY29uJCB8IGFzeW5jIH19PC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvbWF0LWRyYXdlci1jb250ZW50PlxuPC9tYXQtZHJhd2VyLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -5,7 +5,7 @@ import * as i1 from "./mapbox.store";
|
|
|
5
5
|
import * as i2 from "@dereekb/dbx-core";
|
|
6
6
|
import * as i3 from "@angular/common";
|
|
7
7
|
/**
|
|
8
|
-
* Content drawer that connects with DbxMapboxMapStore to
|
|
8
|
+
* Content drawer that connects with DbxMapboxMapStore to show the content.
|
|
9
9
|
*/
|
|
10
10
|
export class DbxMapboxLayoutDrawerComponent {
|
|
11
11
|
constructor(dbxMapboxMapStore) {
|
|
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
21
21
|
class: 'dbx-mapbox-layout-drawer'
|
|
22
22
|
}, template: "<div>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n</div>\n" }]
|
|
23
23
|
}], ctorParameters: function () { return [{ type: i1.DbxMapboxMapStore }]; } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwYm94LmxheW91dC5kcmF3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9tYXBib3gvc3JjL2xpYi9tYXBib3gubGF5b3V0LmRyYXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL21hcGJveC9zcmMvbGliL21hcGJveC5sYXlvdXQuZHJhd2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBRW5EOztHQUVHO0FBUUgsTUFBTSxPQUFPLDhCQUE4QjtJQUd6QyxZQUFxQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUZoRCxZQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztJQUVTLENBQUM7OzRIQUhsRCw4QkFBOEI7Z0hBQTlCLDhCQUE4QixzSENiM0MsaUZBR0E7NEZEVWEsOEJBQThCO2tCQVAxQyxTQUFTOytCQUNFLDBCQUEwQixRQUU5Qjt3QkFDSixLQUFLLEVBQUUsMEJBQTBCO3FCQUNsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4TWFwYm94TWFwU3RvcmUgfSBmcm9tICcuL21hcGJveC5zdG9yZSc7XG5cbi8qKlxuICogQ29udGVudCBkcmF3ZXIgdGhhdCBjb25uZWN0cyB3aXRoIERieE1hcGJveE1hcFN0b3JlIHRvIHNob3cgdGhlIGNvbnRlbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1tYXBib3gtbGF5b3V0LWRyYXdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYXBib3gubGF5b3V0LmRyYXdlci5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2RieC1tYXBib3gtbGF5b3V0LWRyYXdlcidcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYnhNYXBib3hMYXlvdXREcmF3ZXJDb21wb25lbnQge1xuICByZWFkb25seSBjb25maWckID0gdGhpcy5kYnhNYXBib3hNYXBTdG9yZS5jb250ZW50JDtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkYnhNYXBib3hNYXBTdG9yZTogRGJ4TWFwYm94TWFwU3RvcmUpIHt9XG59XG4iLCI8ZGl2PlxuICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImNvbmZpZyQgfCBhc3luY1wiPjwvZGJ4LWluamVjdGlvbj5cbjwvZGl2PlxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, Host, Optional, Inject, Component, ChangeDetectionStrategy, SkipSelf, Directive, Injector, ElementRef, ViewChild, Input, NgModule } from '@angular/core';
|
|
2
|
+
import { Injectable, Host, Optional, Inject, Component, ChangeDetectionStrategy, SkipSelf, Directive, Injector, EventEmitter, ElementRef, Output, ViewChild, Input, NgModule } from '@angular/core';
|
|
3
3
|
import * as i2 from '@dereekb/dbx-core';
|
|
4
4
|
import { safeMarkForCheck, safeDetectChanges, AbstractSubscriptionDirective, DbxInjectionComponentModule } from '@dereekb/dbx-core';
|
|
5
5
|
import { asObservable, cleanup, filterMaybe, onTrueToFalse, SubscriptionObject, distinctUntilMapHasDifferentKeys } from '@dereekb/rxjs';
|
|
@@ -828,7 +828,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
828
828
|
} });
|
|
829
829
|
|
|
830
830
|
/**
|
|
831
|
-
* Content drawer that connects with DbxMapboxMapStore to
|
|
831
|
+
* Content drawer that connects with DbxMapboxMapStore to show the content.
|
|
832
832
|
*/
|
|
833
833
|
class DbxMapboxLayoutDrawerComponent {
|
|
834
834
|
constructor(dbxMapboxMapStore) {
|
|
@@ -856,33 +856,40 @@ class DbxMapboxLayoutComponent extends SubscriptionObject {
|
|
|
856
856
|
constructor(dbxMapboxMapStore) {
|
|
857
857
|
super();
|
|
858
858
|
this.dbxMapboxMapStore = dbxMapboxMapStore;
|
|
859
|
+
this.openedChange = new EventEmitter();
|
|
859
860
|
this._resized = new Subject();
|
|
860
861
|
this._updateMargins = new Subject();
|
|
861
862
|
this._forceHasContent = new BehaviorSubject(false);
|
|
862
863
|
this._mode = new BehaviorSubject('side');
|
|
863
864
|
this._side = new BehaviorSubject('right');
|
|
864
|
-
this.
|
|
865
|
+
this._isOpen = new BehaviorSubject(true);
|
|
865
866
|
this._color = new BehaviorSubject(undefined);
|
|
866
867
|
this._toggleSub = new SubscriptionObject();
|
|
867
868
|
this.resized$ = this._resized.asObservable();
|
|
868
869
|
this.side$ = this._side.pipe(distinctUntilChanged(), shareReplay(1));
|
|
869
870
|
this.mode$ = this._mode.pipe(distinctUntilChanged(), shareReplay(1));
|
|
870
871
|
this.hasContent$ = combineLatest([this._forceHasContent, this.dbxMapboxMapStore.hasContent$]).pipe(map(([hasContent, forceHasContent]) => hasContent || forceHasContent), distinctUntilChanged(), shareReplay(1));
|
|
871
|
-
this.
|
|
872
|
+
this.isOpen$ = this._isOpen.asObservable();
|
|
873
|
+
this.isOpenAndHasContent$ = combineLatest([this.hasContent$, this._isOpen]).pipe(map(([hasContent, open]) => hasContent && open), distinctUntilChanged(), shareReplay(1));
|
|
872
874
|
this.position$ = this.side$.pipe(map((x) => (x === 'right' ? 'end' : 'start')), distinctUntilChanged(), shareReplay(1));
|
|
873
|
-
this.drawerClasses$ = combineLatest([this.side$, this.dbxMapboxMapStore.hasContent$, this.
|
|
875
|
+
this.drawerClasses$ = combineLatest([this.side$, this.dbxMapboxMapStore.hasContent$, this.isOpenAndHasContent$]).pipe(
|
|
874
876
|
//
|
|
875
877
|
map(([side, hasContent, open]) => (hasContent ? 'has-drawer-content' : 'no-drawer-content') + ` ${side}-drawer ` + (open ? 'open-drawer' : '')), distinctUntilChanged(), shareReplay(1));
|
|
876
878
|
this.drawerButtonClasses$ = combineLatest([this.dbxMapboxMapStore.hasContent$, this._color]).pipe(
|
|
877
879
|
//
|
|
878
880
|
map(([hasContent, color]) => dbxColorBackground(color)), distinctUntilChanged(), shareReplay(1));
|
|
879
|
-
this.buttonIcon$ = combineLatest([this.side$, this.
|
|
881
|
+
this.buttonIcon$ = combineLatest([this.side$, this.isOpenAndHasContent$]).pipe(map(([side, opened]) => {
|
|
880
882
|
let icons = ['chevron_right', 'chevron_left'];
|
|
881
883
|
if (side === 'left') {
|
|
882
884
|
icons = icons.reverse();
|
|
883
885
|
}
|
|
884
886
|
return opened ? icons[0] : icons[1];
|
|
885
887
|
}));
|
|
888
|
+
// MARK: Compat
|
|
889
|
+
/**
|
|
890
|
+
* @deprecated use isOpenAndHasContent$ instead.
|
|
891
|
+
*/
|
|
892
|
+
this.opened$ = this.isOpenAndHasContent$;
|
|
886
893
|
}
|
|
887
894
|
ngOnInit() {
|
|
888
895
|
this.subscription = this.side$.pipe(switchMap(() => this._resized.pipe(throttleTime(100, undefined, { leading: true, trailing: true }), map(() => 'r'), startWith('s')))).subscribe((reason) => {
|
|
@@ -901,7 +908,7 @@ class DbxMapboxLayoutComponent extends SubscriptionObject {
|
|
|
901
908
|
.pipe(switchMap((mode) => {
|
|
902
909
|
let obs;
|
|
903
910
|
if (mode === 'push') {
|
|
904
|
-
obs = combineLatest([this.
|
|
911
|
+
obs = combineLatest([this.isOpenAndHasContent$.pipe(distinctUntilChanged()), this._updateMargins]).pipe(tap(([opened]) => {
|
|
905
912
|
let { right } = this.drawerContainer._contentMargins;
|
|
906
913
|
this.drawerContainer.updateContentMargins();
|
|
907
914
|
setTimeout(() => {
|
|
@@ -929,7 +936,7 @@ class DbxMapboxLayoutComponent extends SubscriptionObject {
|
|
|
929
936
|
}));
|
|
930
937
|
}
|
|
931
938
|
else {
|
|
932
|
-
obs = combineLatest([this.
|
|
939
|
+
obs = combineLatest([this.isOpenAndHasContent$.pipe(distinctUntilChanged()), this._updateMargins]).pipe(switchMap((_) => this.dbxMapboxMapStore.mapInstance$), tap((x) => {
|
|
933
940
|
this.drawerContainer.updateContentMargins();
|
|
934
941
|
x.triggerRepaint();
|
|
935
942
|
}));
|
|
@@ -939,19 +946,20 @@ class DbxMapboxLayoutComponent extends SubscriptionObject {
|
|
|
939
946
|
.subscribe();
|
|
940
947
|
}
|
|
941
948
|
ngOnDestroy() {
|
|
949
|
+
this.openedChange.complete();
|
|
942
950
|
this._resized.complete();
|
|
943
951
|
this._updateMargins.complete();
|
|
944
952
|
this._side.complete();
|
|
945
|
-
this.
|
|
953
|
+
this._isOpen.complete();
|
|
946
954
|
this._color.complete();
|
|
947
955
|
this._toggleSub.destroy();
|
|
948
956
|
this._forceHasContent.complete();
|
|
949
957
|
}
|
|
950
958
|
toggleDrawer(open) {
|
|
951
959
|
if (open == null) {
|
|
952
|
-
open = !this.
|
|
960
|
+
open = !this._isOpen.value;
|
|
953
961
|
}
|
|
954
|
-
this.
|
|
962
|
+
this._isOpen.next(open);
|
|
955
963
|
}
|
|
956
964
|
set side(side) {
|
|
957
965
|
if (side != null) {
|
|
@@ -965,7 +973,7 @@ class DbxMapboxLayoutComponent extends SubscriptionObject {
|
|
|
965
973
|
}
|
|
966
974
|
set opened(opened) {
|
|
967
975
|
if (opened != null) {
|
|
968
|
-
this.
|
|
976
|
+
this._isOpen.next(opened);
|
|
969
977
|
}
|
|
970
978
|
}
|
|
971
979
|
set hasContent(hasContent) {
|
|
@@ -979,13 +987,21 @@ class DbxMapboxLayoutComponent extends SubscriptionObject {
|
|
|
979
987
|
onResized(event) {
|
|
980
988
|
this._resized.next(event);
|
|
981
989
|
}
|
|
990
|
+
onOpened(opened) {
|
|
991
|
+
this.openedChange.next(opened);
|
|
992
|
+
if (this._isOpen.value !== opened) {
|
|
993
|
+
this.openedChange.next(opened);
|
|
994
|
+
}
|
|
995
|
+
}
|
|
982
996
|
}
|
|
983
997
|
DbxMapboxLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxLayoutComponent, deps: [{ token: DbxMapboxMapStore }], target: i0.ɵɵFactoryTarget.Component });
|
|
984
|
-
DbxMapboxLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxMapboxLayoutComponent, selector: "dbx-mapbox-layout", inputs: { side: "side", mode: "mode", opened: "opened", hasContent: "hasContent", drawerColor: "drawerColor" }, viewQueries: [{ propertyName: "containerElement", first: true, predicate: MatDrawerContainer, descendants: true, read: ElementRef }, { propertyName: "drawerContainer", first: true, predicate: MatDrawerContainer, descendants: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer [opened]=\"
|
|
998
|
+
DbxMapboxLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxMapboxLayoutComponent, selector: "dbx-mapbox-layout", inputs: { side: "side", mode: "mode", opened: "opened", hasContent: "hasContent", drawerColor: "drawerColor" }, outputs: { openedChange: "openedChange" }, viewQueries: [{ propertyName: "containerElement", first: true, predicate: MatDrawerContainer, descendants: true, read: ElementRef }, { propertyName: "drawerContainer", first: true, predicate: MatDrawerContainer, descendants: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer (openedChange)=\"onOpened($event)\" [opened]=\"isOpenAndHasContent$ | async\" [mode]=\"(mode$ | async) || 'side'\" [position]=\"(position$ | async) || 'end'\">\n <div class=\"dbx-mapbox-layout-drawer-content\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <ng-content select=\"[drawer]\"></ng-content>\n <dbx-mapbox-layout-drawer></dbx-mapbox-layout-drawer>\n </div>\n </mat-drawer>\n <mat-drawer-content #content class=\"dbx-mapbox-layout-content\" (resized)=\"onResized($event)\">\n <button mat-icon-button (click)=\"toggleDrawer()\" class=\"dbx-mapbox-layout-drawer-button\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <mat-icon>{{ buttonIcon$ | async }}</mat-icon>\n </button>\n <ng-content></ng-content>\n </mat-drawer-content>\n</mat-drawer-container>\n", styles: [".dbx-mapbox-layout-container{height:100%;max-width:100%}.dbx-mapbox-layout-container .mat-drawer-container{height:100%}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer{max-width:calc(100% - var(--dbx-mapbox-min-width-var, 60px))}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer-content{height:100%;width:100%;overflow:hidden}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{position:absolute;z-index:2;top:40%;border:none;display:flex;overflow:hidden}.left-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{left:0;border-radius:0 20px 20px 0}.right-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{right:0;border-radius:20px 0 0 20px}.has-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.has-drawer-content.open-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.no-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:0px}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button mat-icon{padding-left:8px}\n"], dependencies: [{ kind: "directive", type: i2$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i3.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i3.MatDrawerContent, selector: "mat-drawer-content" }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.ResizedDirective, selector: "[resized]", outputs: ["resized"] }, { kind: "component", type: DbxMapboxLayoutDrawerComponent, selector: "dbx-mapbox-layout-drawer" }, { kind: "pipe", type: i2$1.AsyncPipe, name: "async" }] });
|
|
985
999
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxMapboxLayoutComponent, decorators: [{
|
|
986
1000
|
type: Component,
|
|
987
|
-
args: [{ selector: 'dbx-mapbox-layout', template: "<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer [opened]=\"
|
|
988
|
-
}], ctorParameters: function () { return [{ type: DbxMapboxMapStore }]; }, propDecorators: {
|
|
1001
|
+
args: [{ selector: 'dbx-mapbox-layout', template: "<mat-drawer-container #containerElement class=\"dbx-mapbox-layout-container\" [ngClass]=\"(drawerClasses$ | async) || ''\" [hasBackdrop]=\"false\">\n <mat-drawer class=\"dbx-mapbox-layout-drawer\" #drawer (openedChange)=\"onOpened($event)\" [opened]=\"isOpenAndHasContent$ | async\" [mode]=\"(mode$ | async) || 'side'\" [position]=\"(position$ | async) || 'end'\">\n <div class=\"dbx-mapbox-layout-drawer-content\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <ng-content select=\"[drawer]\"></ng-content>\n <dbx-mapbox-layout-drawer></dbx-mapbox-layout-drawer>\n </div>\n </mat-drawer>\n <mat-drawer-content #content class=\"dbx-mapbox-layout-content\" (resized)=\"onResized($event)\">\n <button mat-icon-button (click)=\"toggleDrawer()\" class=\"dbx-mapbox-layout-drawer-button\" [ngClass]=\"(drawerButtonClasses$ | async) || ''\">\n <mat-icon>{{ buttonIcon$ | async }}</mat-icon>\n </button>\n <ng-content></ng-content>\n </mat-drawer-content>\n</mat-drawer-container>\n", styles: [".dbx-mapbox-layout-container{height:100%;max-width:100%}.dbx-mapbox-layout-container .mat-drawer-container{height:100%}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer{max-width:calc(100% - var(--dbx-mapbox-min-width-var, 60px))}.dbx-mapbox-layout-container .dbx-mapbox-layout-drawer-content{height:100%;width:100%;overflow:hidden}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{position:absolute;z-index:2;top:40%;border:none;display:flex;overflow:hidden}.left-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{left:0;border-radius:0 20px 20px 0}.right-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{right:0;border-radius:20px 0 0 20px}.has-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.has-drawer-content.open-drawer .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:35px}.no-drawer-content .dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button{width:0px}.dbx-mapbox-layout-content>.dbx-mapbox-layout-drawer-button mat-icon{padding-left:8px}\n"] }]
|
|
1002
|
+
}], ctorParameters: function () { return [{ type: DbxMapboxMapStore }]; }, propDecorators: { openedChange: [{
|
|
1003
|
+
type: Output
|
|
1004
|
+
}], containerElement: [{
|
|
989
1005
|
type: ViewChild,
|
|
990
1006
|
args: [MatDrawerContainer, { read: ElementRef }]
|
|
991
1007
|
}], drawerContainer: [{
|