@coolon/angular-ui-powerups 16.1.0-aplpha.83 → 16.1.0-aplpha.85
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/esm2022/lib/components/disposable-component.mjs +14 -3
- package/esm2022/lib/components/icon/icon.component.mjs +4 -4
- package/esm2022/lib/components/switch-case/switch-case.component.mjs +5 -7
- package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +5 -7
- package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +5 -7
- package/fesm2022/coolon-angular-ui-powerups.mjs +23 -18
- package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
- package/lib/components/disposable-component.d.ts +10 -2
- package/lib/components/switch-case/switch-case.component.d.ts +2 -3
- package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +1 -3
- package/lib/place/components/place-outlet/place-outlet.component.d.ts +3 -4
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Directive, inject } from '@angular/core';
|
|
2
|
-
import { GarbageCollector } from '@coolon/pectin';
|
|
1
|
+
import { ChangeDetectorRef, Directive, inject } from '@angular/core';
|
|
2
|
+
import { Dsl, GarbageCollector } from '@coolon/pectin';
|
|
3
3
|
import { Track } from "./track";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class DisposableComponent extends GarbageCollector {
|
|
@@ -9,6 +9,7 @@ export class DisposableComponent extends GarbageCollector {
|
|
|
9
9
|
// #awaitedLoadables: Loadable[] = [];
|
|
10
10
|
#initCallbacks = [];
|
|
11
11
|
#initialised = false;
|
|
12
|
+
cdr = this.inject(ChangeDetectorRef);
|
|
12
13
|
onInit(callback) {
|
|
13
14
|
if (this.#initialised) {
|
|
14
15
|
callback();
|
|
@@ -27,10 +28,20 @@ export class DisposableComponent extends GarbageCollector {
|
|
|
27
28
|
inject(token) {
|
|
28
29
|
return inject(token);
|
|
29
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Monitors the specified models for any change and triggers and angular change detect cycle. This is intended for use
|
|
33
|
+
* when the component uses the ON_PUSH change detection strategy.
|
|
34
|
+
* @param models
|
|
35
|
+
* @protected
|
|
36
|
+
*/
|
|
37
|
+
trackChangesAndMarkForCheck(...models) {
|
|
38
|
+
const { when } = Dsl.disposeWith(this);
|
|
39
|
+
when.anyOf(...models).changes(() => this.cdr.markForCheck());
|
|
40
|
+
}
|
|
30
41
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DisposableComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
31
42
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: DisposableComponent, usesInheritance: true, ngImport: i0 });
|
|
32
43
|
}
|
|
33
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DisposableComponent, decorators: [{
|
|
34
45
|
type: Directive
|
|
35
46
|
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcG9zYWJsZS1jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFtQyxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUMsR0FBRyxFQUFFLGdCQUFnQixFQUE4QixNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBQyxLQUFLLEVBQUMsTUFBTSxTQUFTLENBQUM7O0FBSTlCLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxnQkFBZ0I7SUFFOUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUVsQyxnREFBZ0Q7SUFDaEQsb0NBQW9DO0lBQ3BDLHNDQUFzQztJQUN0QyxjQUFjLEdBQWlCLEVBQUUsQ0FBQztJQUNsQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBRUYsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUU5QyxNQUFNLENBQUMsUUFBb0I7UUFDbkMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLFFBQVEsRUFBRSxDQUFDO1NBQ1o7YUFBUTtZQUNQLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVTLE1BQU0sQ0FBSSxLQUF1QjtRQUN6QyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDTywyQkFBMkIsQ0FBQyxHQUFHLE1BQXVCO1FBQzlELE1BQU0sRUFBQyxJQUFJLEVBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFBO0lBQzlELENBQUM7dUdBMUNVLG1CQUFtQjsyRkFBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgRGlyZWN0aXZlLCBpbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LCBQcm92aWRlclRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RHNsLCBHYXJiYWdlQ29sbGVjdG9yLCBIYXNWYWx1ZSwgTXV0YWJsZVZhbHVlTW9kZWx9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7VHJhY2t9IGZyb20gXCIuL3RyYWNrXCI7XG5pbXBvcnQge0xvYWRhYmxlfSBmcm9tIFwiLi90eXBlcy9sb2FkYWJsZVwiO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBEaXNwb3NhYmxlQ29tcG9uZW50IGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICByZWFkb25seSB0cmFja0J5SWQgPSBUcmFjay5ieUlkKCk7XG5cbiAgLy8gI19sb2FkZWQkID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPGJvb2xlYW4+KCk7XG4gIC8vICNhc3luY0xvYWRhYmxlczogTG9hZGFibGVbXSA9IFtdO1xuICAvLyAjYXdhaXRlZExvYWRhYmxlczogTG9hZGFibGVbXSA9IFtdO1xuICAjaW5pdENhbGxiYWNrczogKCgpPT52b2lkKVtdID0gW107XG4gICNpbml0aWFsaXNlZCA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjZHIgPSB0aGlzLmluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgcHJvdGVjdGVkIG9uSW5pdChjYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICAgIGlmICh0aGlzLiNpbml0aWFsaXNlZCkge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9ICAgZWxzZSB7XG4gICAgICB0aGlzLiNpbml0Q2FsbGJhY2tzLnB1c2goY2FsbGJhY2spO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuI2luaXRDYWxsYmFja3MuZm9yRWFjaChpdCA9PiBpdCgpKTtcbiAgICB0aGlzLiNpbml0aWFsaXNlZCA9IHRydWU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbmplY3Q8VD4odG9rZW46IFByb3ZpZGVyVG9rZW48VD4pOlQge1xuICAgIHJldHVybiBpbmplY3QodG9rZW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vbml0b3JzIHRoZSBzcGVjaWZpZWQgbW9kZWxzIGZvciBhbnkgY2hhbmdlIGFuZCB0cmlnZ2VycyBhbmQgYW5ndWxhciBjaGFuZ2UgZGV0ZWN0IGN5Y2xlLiAgVGhpcyBpcyBpbnRlbmRlZCBmb3IgdXNlXG4gICAqIHdoZW4gdGhlIGNvbXBvbmVudCB1c2VzIHRoZSBPTl9QVVNIIGNoYW5nZSBkZXRlY3Rpb24gc3RyYXRlZ3kuXG4gICAqIEBwYXJhbSBtb2RlbHNcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIHRyYWNrQ2hhbmdlc0FuZE1hcmtGb3JDaGVjayguLi5tb2RlbHM6IEhhc1ZhbHVlPGFueT5bXSkge1xuICAgIGNvbnN0IHt3aGVufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB3aGVuLmFueU9mKC4uLm1vZGVscykuY2hhbmdlcygoKSA9PiB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKSlcbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @angular-eslint/no-host-metadata-property */
|
|
2
|
-
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
|
|
3
3
|
import { Enum } from 'typescript-string-enums';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "@angular/common";
|
|
@@ -36,11 +36,11 @@ export class IconComponent {
|
|
|
36
36
|
return `fa-${this.suffix}`;
|
|
37
37
|
}
|
|
38
38
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: IconComponent, selector: "aup-icon", inputs: { icon: "icon" }, host: { properties: { "attr.icon": "this.icon" }, classAttribute: "mat-icon" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\" class=\"faIconWrapper\">\n <i class=\"fa-solid\" [class]=\"faIcon\"></i>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n", styles: [":host{display:inline-flex;--resolved-size: var(--aup-icon-size, 24px);width:var(--resolved-size)!important;min-width:var(--resolved-size)!important;height:var(--resolved-size)!important;min-height:var(--resolved-size)!important}:host fa-icon{vertical-align:middle}:host .faIconWrapper{display:flex;flex-direction:row;align-items:center;justify-content:center;width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host .svgIcon{width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host :host(.mat-chip-remove){--aup-icon-size: 18px}:host mat-icon{font-size:var(--resolved-size)!important;width:var(--resolved-size)!important;height:var(--resolved-size)!important;margin-right:0!important}\n"], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
39
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: IconComponent, selector: "aup-icon", inputs: { icon: "icon" }, host: { properties: { "attr.icon": "this.icon" }, classAttribute: "mat-icon" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\" class=\"faIconWrapper\">\n <i class=\"fa-solid\" [class]=\"faIcon\"></i>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n", styles: [":host{display:inline-flex;--resolved-size: var(--aup-icon-size, 24px);width:var(--resolved-size)!important;min-width:var(--resolved-size)!important;height:var(--resolved-size)!important;min-height:var(--resolved-size)!important}:host fa-icon{vertical-align:middle}:host .faIconWrapper{display:flex;flex-direction:row;align-items:center;justify-content:center;width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host .svgIcon{width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host :host(.mat-chip-remove){--aup-icon-size: 18px}:host mat-icon{font-size:var(--resolved-size)!important;width:var(--resolved-size)!important;height:var(--resolved-size)!important;margin-right:0!important}\n"], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
40
40
|
}
|
|
41
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IconComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
43
|
-
args: [{ selector: 'aup-icon', host: {
|
|
43
|
+
args: [{ selector: 'aup-icon', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
44
44
|
class: "mat-icon" // this ensures angular form styles that target mat icon also work with us
|
|
45
45
|
}, template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\" class=\"faIconWrapper\">\n <i class=\"fa-solid\" [class]=\"faIcon\"></i>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n", styles: [":host{display:inline-flex;--resolved-size: var(--aup-icon-size, 24px);width:var(--resolved-size)!important;min-width:var(--resolved-size)!important;height:var(--resolved-size)!important;min-height:var(--resolved-size)!important}:host fa-icon{vertical-align:middle}:host .faIconWrapper{display:flex;flex-direction:row;align-items:center;justify-content:center;width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host .svgIcon{width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host :host(.mat-chip-remove){--aup-icon-size: 18px}:host mat-icon{font-size:var(--resolved-size)!important;width:var(--resolved-size)!important;height:var(--resolved-size)!important;margin-right:0!important}\n"] }]
|
|
46
46
|
}], propDecorators: { icon: [{
|
|
@@ -56,4 +56,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
56
56
|
MATERIAL: 'mat'
|
|
57
57
|
});
|
|
58
58
|
})(IconComponent || (IconComponent = {}));
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4REFBOEQ7QUFDOUQsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7QUFXN0MsTUFBTSxPQUFPLGFBQWE7SUFFeEIsS0FBSyxDQUFTO0lBRWQsTUFBTSxDQUFTO0lBQ2YsTUFBTSxDQUFTO0lBQ2YsWUFBWSxDQUFTO0lBRXJCLGVBQWUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUUsVUFBVSxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUM7SUFFdEMsSUFFSSxJQUFJLENBQUMsUUFBZ0I7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1lBQ3hCLE9BQU87U0FDUjtRQUVELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVksR0FBRyxpQkFBaUIsUUFBUSxHQUFHLENBQUM7U0FDbEQ7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLHlDQUF5QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUM7SUFDdkgsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO3VHQXRDVSxhQUFhOzJGQUFiLGFBQWEsMEpDYjFCLHdnQkFzQkE7OzJGRFRhLGFBQWE7a0JBVHpCLFNBQVM7K0JBQ0UsVUFBVSxtQkFHSCx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxVQUFVLENBQUUsMEVBQTBFO3FCQUM5Rjs4QkFlRyxJQUFJO3NCQUZQLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsV0FBVzs7QUErQjFCLFdBQWlCLGFBQWE7SUFFZix3QkFBVSxHQUFHLElBQUksQ0FBQztRQUM3QixHQUFHLEVBQUUsS0FBSztRQUNWLFlBQVksRUFBRSxJQUFJO1FBQ2xCLFFBQVEsRUFBRSxLQUFLO0tBQ2hCLENBQUMsQ0FBQztBQUdMLENBQUMsRUFUZ0IsYUFBYSxLQUFiLGFBQWEsUUFTN0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8taG9zdC1tZXRhZGF0YS1wcm9wZXJ0eSAqL1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbnVtfSBmcm9tICd0eXBlc2NyaXB0LXN0cmluZy1lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pY29uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6IFwibWF0LWljb25cIiAgLy8gdGhpcyBlbnN1cmVzIGFuZ3VsYXIgZm9ybSBzdHlsZXMgdGhhdCB0YXJnZXQgbWF0IGljb24gYWxzbyB3b3JrIHdpdGggdXNcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBJY29uQ29tcG9uZW50IHtcblxuICBfaWNvbjogc3RyaW5nO1xuXG4gIHByZWZpeDogc3RyaW5nO1xuICBzdWZmaXg6IHN0cmluZztcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG5cbiAgYWxsb3dlZFByZWZpeGVzID0gRW51bS52YWx1ZXMoSWNvbkNvbXBvbmVudC5JY29uUHJlZml4KS5tYXAocCA9PiBgJHtwfTpgKTtcbiAgaWNvblByZWZpeCA9IEljb25Db21wb25lbnQuSWNvblByZWZpeDtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoXCJhdHRyLmljb25cIilcbiAgc2V0IGljb24oaWNvbk5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuX2ljb24gPSBpY29uTmFtZTtcbiAgICBpZiAoIWljb25OYW1lKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9ICdpY29uIGlzIG5pbCc7XG4gICAgICB0aGlzLnByZWZpeCA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjb2xvbkluZGV4ID0gaWNvbk5hbWUuaW5kZXhPZignOicpO1xuICAgIGlmIChjb2xvbkluZGV4ID4gMCkge1xuICAgICAgdGhpcy5wcmVmaXggPSB0aGlzLmljb24uc2xpY2UoMCwgY29sb25JbmRleCk7XG4gICAgICB0aGlzLnN1ZmZpeCA9IHRoaXMuaWNvbi5zbGljZShjb2xvbkluZGV4ICsgMSk7XG4gICAgfVxuICAgIGlmICh0aGlzLnByZWZpeCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBgVW5rbm93biBpY29uIFwiJHtpY29uTmFtZX1cImA7XG4gICAgfVxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gYFVua25vd24gaWNvbiBwcmVmaXgsIGV4cGVjdGVkIG9uZSBvZiBbJHt0aGlzLmFsbG93ZWRQcmVmaXhlcy5qb2luKCcsJyl9XSBnb3QgXCIke3RoaXMucHJlZml4fTpcImA7XG4gIH1cblxuICBnZXQgaWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pY29uO1xuICB9XG5cbiAgZ2V0IGZhSWNvbigpOnN0cmluZyB7XG4gICAgcmV0dXJuIGBmYS0ke3RoaXMuc3VmZml4fWA7XG4gIH1cblxufVxuXG5cbmV4cG9ydCBuYW1lc3BhY2UgSWNvbkNvbXBvbmVudCB7XG5cbiAgZXhwb3J0IGNvbnN0IEljb25QcmVmaXggPSBFbnVtKHtcbiAgICBTVkc6ICdzdmcnLFxuICAgIEZPTlRfQVdFU09NRTogJ2ZhJyxcbiAgICBNQVRFUklBTDogJ21hdCdcbiAgfSk7XG4gIGV4cG9ydCB0eXBlIEljb25QcmVmaXggPSBFbnVtPHR5cGVvZiBJY29uUHJlZml4PjtcblxufVxuIiwiPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicHJlZml4XCI+XG5cbiAgPG1hdC1pY29uICpuZ1N3aXRjaENhc2U9XCJpY29uUHJlZml4LlNWR1wiXG4gICAgICAgICAgICBbc3ZnSWNvbl09XCJzdWZmaXhcIlxuICAgICAgICAgICAgY2xhc3M9XCJzdmdJY29uXCI+XG4gIDwvbWF0LWljb24+XG5cbiAgPG1hdC1pY29uICpuZ1N3aXRjaENhc2U9XCJpY29uUHJlZml4Lk1BVEVSSUFMXCI+XG4gICAge3tzdWZmaXh9fVxuICA8L21hdC1pY29uPlxuXG4gIDxkaXYgKm5nU3dpdGNoQ2FzZT1cImljb25QcmVmaXguRk9OVF9BV0VTT01FXCIgY2xhc3M9XCJmYUljb25XcmFwcGVyXCI+XG4gICAgPGkgY2xhc3M9XCJmYS1zb2xpZFwiIFtjbGFzc109XCJmYUljb25cIj48L2k+XG4gIDwvZGl2PlxuXG4gIDxtYXQtaWNvbiAqbmdTd2l0Y2hEZWZhdWx0XG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJlcnJvck1lc3NhZ2VcIj5cbiAgICBidWdfcmVwb3J0XG4gIDwvbWF0LWljb24+XG5cbjwvbmctY29udGFpbmVyPlxuXG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import {
|
|
2
|
+
import { Component, ContentChildren, Directive, Input, QueryList, TemplateRef } from '@angular/core';
|
|
3
3
|
import { Dsl, Proxify, proxify, StoreInValueModel, ValueModel } from '@coolon/pectin';
|
|
4
4
|
import { DisposableComponent } from '../disposable-component';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -61,7 +61,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
61
61
|
* </aup-switch-case>
|
|
62
62
|
*/
|
|
63
63
|
export class SwitchCaseComponent extends DisposableComponent {
|
|
64
|
-
cdr;
|
|
65
64
|
#switch$_accessor_storage = proxify((ValueModel));
|
|
66
65
|
get switch$() { return this.#switch$_accessor_storage; }
|
|
67
66
|
set switch$(value) { this.#switch$_accessor_storage = value; }
|
|
@@ -70,9 +69,8 @@ export class SwitchCaseComponent extends DisposableComponent {
|
|
|
70
69
|
set switch(value) { this.#switch_accessor_storage = value; }
|
|
71
70
|
switchCaseOptions;
|
|
72
71
|
selectedIndex = 0;
|
|
73
|
-
constructor(
|
|
72
|
+
constructor() {
|
|
74
73
|
super();
|
|
75
|
-
this.cdr = cdr;
|
|
76
74
|
}
|
|
77
75
|
ngAfterContentInit() {
|
|
78
76
|
const subscription = this.switchCaseOptions.changes.subscribe(change => this.updateSelection());
|
|
@@ -109,7 +107,7 @@ export class SwitchCaseComponent extends DisposableComponent {
|
|
|
109
107
|
this.selectedIndex = -1;
|
|
110
108
|
}
|
|
111
109
|
}
|
|
112
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, deps: [
|
|
110
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
113
111
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SwitchCaseComponent, selector: "aup-switch-case", inputs: { switch$: "switch$", switch: "switch" }, queries: [{ propertyName: "switchCaseOptions", predicate: SwitchCaseOption }], usesInheritance: true, ngImport: i0, template: "<mat-tab-group class=\"content-wrapper\" no-tab-header full-height-tabs [selectedIndex]=\"selectedIndex\">\n <mat-tab *ngFor=\"let option of switchCaseOptions\">\n <ng-template [ngTemplateOutlet]=\"option.templateRef\"></ng-template>\n </mat-tab>\n</mat-tab-group>\n\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}mat-tab-group{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.MatTab, selector: "mat-tab", inputs: ["disabled"], exportAs: ["matTab"] }, { kind: "component", type: i2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple", "fitInkBarToContent", "mat-stretch-tabs"], exportAs: ["matTabGroup"] }] });
|
|
114
112
|
}
|
|
115
113
|
__decorate([
|
|
@@ -123,7 +121,7 @@ __decorate([
|
|
|
123
121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, decorators: [{
|
|
124
122
|
type: Component,
|
|
125
123
|
args: [{ selector: 'aup-switch-case', template: "<mat-tab-group class=\"content-wrapper\" no-tab-header full-height-tabs [selectedIndex]=\"selectedIndex\">\n <mat-tab *ngFor=\"let option of switchCaseOptions\">\n <ng-template [ngTemplateOutlet]=\"option.templateRef\"></ng-template>\n </mat-tab>\n</mat-tab-group>\n\n\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}mat-tab-group{flex:1}\n"] }]
|
|
126
|
-
}], ctorParameters: function () { return [
|
|
124
|
+
}], ctorParameters: function () { return []; }, propDecorators: { switch$: [{
|
|
127
125
|
type: Input
|
|
128
126
|
}], switch: [{
|
|
129
127
|
type: Input
|
|
@@ -131,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
131
129
|
type: ContentChildren,
|
|
132
130
|
args: [SwitchCaseOption]
|
|
133
131
|
}] } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLWNhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy9zd2l0Y2gtY2FzZS9zd2l0Y2gtY2FzZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3N3aXRjaC1jYXNlL3N3aXRjaC1jYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULGVBQWUsRUFDZixTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsRUFDVCxXQUFXLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3BGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDOzs7O0FBRzVELE1BQU0sT0FBZ0IsZ0JBQWdCO0lBSWY7SUFBckIsWUFBcUIsV0FBZ0M7UUFBaEMsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO0lBQ3JELENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7Q0FHRjtBQU1ELE1BQU0sT0FBTyx1QkFBMkIsU0FBUSxnQkFBbUI7SUFDeEQsaUJBQWlCLENBQUk7SUFDckIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUUzQixZQUFZLFdBQWdDO1FBQzFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQVE7UUFDZCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxLQUFLLENBQUM7SUFDMUMsQ0FBQzt1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QixDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDL0MsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFO29CQUNwQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzlCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQy9CLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxnQkFBZ0IsQ0FBQyxNQUFNLDZDQUE2QyxDQUFDLENBQUM7YUFDN0Y7U0FDRjtRQUNELElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzFDO2FBQU07WUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUM7dUdBbkRVLG1CQUFtQjsyRkFBbkIsbUJBQW1CLDJJQVFiLGdCQUFnQixvRENsRm5DLHFSQU9BOztBRHNFVztJQURDLE9BQU8sRUFBRTs7a0RBQ3VCO0FBR2pDO0lBREMsaUJBQWlCLEVBQUU7O2lEQUNWOzJGQU5SLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7MEVBT2xCLE9BQU87c0JBRGYsS0FBSztnQkFJRyxNQUFNO3NCQURkLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixlQUFlO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtEc2wsIFByb3hpZnksIHByb3hpZnksIFN0b3JlSW5WYWx1ZU1vZGVsLCBWYWx1ZU1vZGVsfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0Rpc3Bvc2FibGVDb21wb25lbnR9IGZyb20gJy4uL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3dpdGNoQ2FzZU9wdGlvbjxUPiB7XG5cbiAgYWJzdHJhY3QgcmVhZG9ubHkgaXNEZWZhdWx0OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxvYmplY3Q+KSB7XG4gIH1cblxuICBnZXQgbmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICB9XG5cbiAgYWJzdHJhY3QgbWF0Y2hlcyh2YWx1ZTogVCk6IGJvb2xlYW47XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thdXBTd2l0Y2hDYXNlV2hlbl0nLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFN3aXRjaENhc2VPcHRpb24sIHVzZUV4aXN0aW5nOiBTd2l0Y2hDYXNlV2hlbkRpcmVjdGl2ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hDYXNlV2hlbkRpcmVjdGl2ZTxUPiBleHRlbmRzIFN3aXRjaENhc2VPcHRpb248VD4ge1xuICBASW5wdXQoKSBhdXBTd2l0Y2hDYXNlV2hlbjogVDtcbiAgcmVhZG9ubHkgaXNEZWZhdWx0ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IodGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPG9iamVjdD4pIHtcbiAgICBzdXBlcih0ZW1wbGF0ZVJlZik7XG4gIH1cblxuICBtYXRjaGVzKHZhbHVlOiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYXVwU3dpdGNoQ2FzZVdoZW4gPT09IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thdXBTd2l0Y2hDYXNlRGVmYXVsdF0nLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFN3aXRjaENhc2VPcHRpb24sIHVzZUV4aXN0aW5nOiBTd2l0Y2hDYXNlRGVmYXVsdERpcmVjdGl2ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hDYXNlRGVmYXVsdERpcmVjdGl2ZTxUPiBleHRlbmRzIFN3aXRjaENhc2VPcHRpb248VD4ge1xuICByZWFkb25seSBpc0RlZmF1bHQgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxvYmplY3Q+KSB7XG4gICAgc3VwZXIodGVtcGxhdGVSZWYpO1xuICB9XG5cbiAgbWF0Y2hlcyh2YWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIEBleGFtcGxlXG4gKiA8YXVwLXN3aXRjaC1jYXNlIFtzd2l0Y2hNb2RlbF09XCJib29sZWFuTW9kZWxcIj5cbiAqICAgIDxkaXYgKmF1cFN3aXRjaENhc2VXaGVuPVwidHJ1ZVwiPjwvZGl2PlxuICogICAgPGRpdiAqYXVwU3dpdGNoQ2FzZURlZmF1bHQ+VGhlIGRlZmF1bHQgY29udGVudDwvZGl2PlxuICogPC9hdXAtc3dpdGNoLWNhc2U+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1zd2l0Y2gtY2FzZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zd2l0Y2gtY2FzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N3aXRjaC1jYXNlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU3dpdGNoQ2FzZUNvbXBvbmVudDxUPiBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyAgQWZ0ZXJDb250ZW50SW5pdCB7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBzd2l0Y2gkID0gcHJveGlmeShWYWx1ZU1vZGVsPFQ+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBzd2l0Y2g6IFQ7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTd2l0Y2hDYXNlT3B0aW9uKVxuICBzd2l0Y2hDYXNlT3B0aW9uczogUXVlcnlMaXN0PFN3aXRjaENhc2VPcHRpb248VD4+O1xuXG4gIHNlbGVjdGVkSW5kZXggPSAwO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5zd2l0Y2hDYXNlT3B0aW9ucy5jaGFuZ2VzLnN1YnNjcmliZShjaGFuZ2UgPT4gdGhpcy51cGRhdGVTZWxlY3Rpb24oKSk7XG4gICAgdGhpcy5vbkRpc3Bvc2UoKCkgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgIGNvbnN0IHsgY2hhaW4sIHdoZW4gfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICB3aGVuKHRoaXMuc3dpdGNoJCkuY2hhbmdlcygoKSA9PiB0aGlzLnVwZGF0ZVNlbGVjdGlvbigpLCB7IGluaXRpYWxWYWx1ZTogJ3RyaWdnZXJDaGFuZ2UnIH0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0aW9uKCkge1xuICAgIGNvbnN0IG1hdGNoaW5nSW5kaWNpZXMgPSBbXTtcbiAgICB0aGlzLnN3aXRjaENhc2VPcHRpb25zLmZvckVhY2goKG9wdGlvbiwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChvcHRpb24ubWF0Y2hlcyh0aGlzLnN3aXRjaCQudmFsdWUpKSB7XG4gICAgICAgIG1hdGNoaW5nSW5kaWNpZXMucHVzaChpbmRleCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKG1hdGNoaW5nSW5kaWNpZXMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc29sZS53YXJuKGBmb3VuZCAke21hdGNoaW5nSW5kaWNpZXMubGVuZ3RofSBtYXRjaGluZyBjYXNlIHZhbHVlcywgZGlzcGxheWluZyB0aGUgZmlyc3QuYCk7XG4gICAgfVxuICAgIGlmIChtYXRjaGluZ0luZGljaWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zd2l0Y2hDYXNlT3B0aW9ucy5mb3JFYWNoKChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChvcHRpb24uaXNEZWZhdWx0KSB7XG4gICAgICAgICAgbWF0Y2hpbmdJbmRpY2llcy5wdXNoKGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpZiAobWF0Y2hpbmdJbmRpY2llcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgZm91bmQgJHttYXRjaGluZ0luZGljaWVzLmxlbmd0aH0gZGVmYXVsdCBjYXNlIHZhbHVlcywgZGlzcGxheWluZyB0aGUgZmlyc3QuYCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChtYXRjaGluZ0luZGljaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IG1hdGNoaW5nSW5kaWNpZXNbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybihgZm91bmQgbm8gbWF0Y2hpbmcgb3IgZGVmYXVsdCBjYXNlIHZhbHVlcy5gKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IC0xO1xuICAgIH1cbiAgfVxufVxuXG4iLCI8bWF0LXRhYi1ncm91cCBjbGFzcz1cImNvbnRlbnQtd3JhcHBlclwiIG5vLXRhYi1oZWFkZXIgZnVsbC1oZWlnaHQtdGFicyBbc2VsZWN0ZWRJbmRleF09XCJzZWxlY3RlZEluZGV4XCI+XG4gIDxtYXQtdGFiICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc3dpdGNoQ2FzZU9wdGlvbnNcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwib3B0aW9uLnRlbXBsYXRlUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9tYXQtdGFiPlxuPC9tYXQtdGFiLWdyb3VwPlxuXG5cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import {
|
|
2
|
+
import { Component, HostBinding, Input, ViewChild } from "@angular/core";
|
|
3
3
|
import { Command, proxify, Proxify } from '@coolon/pectin';
|
|
4
4
|
import { Enum } from 'typescript-string-enums';
|
|
5
5
|
import { CommandFace } from '../../../components/commands/command-face';
|
|
@@ -30,7 +30,6 @@ import * as i2 from "../../../components/commands/command/command.component";
|
|
|
30
30
|
* </aup-activity-actions>
|
|
31
31
|
*/
|
|
32
32
|
export class ActivityActionsComponent extends DisposableComponent {
|
|
33
|
-
cdr;
|
|
34
33
|
confirmCommandComponent;
|
|
35
34
|
cancelCommandComponent;
|
|
36
35
|
#confirmCommand_accessor_storage = proxify((Command));
|
|
@@ -59,9 +58,8 @@ export class ActivityActionsComponent extends DisposableComponent {
|
|
|
59
58
|
}
|
|
60
59
|
layout = ActivityActionsComponent.Layout.BLOCK;
|
|
61
60
|
align = ActivityActionsComponent.Align.STRETCH;
|
|
62
|
-
constructor(
|
|
61
|
+
constructor() {
|
|
63
62
|
super();
|
|
64
|
-
this.cdr = cdr;
|
|
65
63
|
}
|
|
66
64
|
hasConfirmFace() {
|
|
67
65
|
return !!this.confirmFace;
|
|
@@ -80,7 +78,7 @@ export class ActivityActionsComponent extends DisposableComponent {
|
|
|
80
78
|
focusCancel() {
|
|
81
79
|
this.cancelCommandComponent.requestFocus();
|
|
82
80
|
}
|
|
83
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, deps: [
|
|
81
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
84
82
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ActivityActionsComponent, selector: "aup-activity-actions", inputs: { confirmCommand: "confirmCommand", cancelCommand: "cancelCommand", faces: "faces", confirmFace: "confirmFace", cancelFace: "cancelFace", style: "style", layout: "layout", align: "align" }, host: { properties: { "attr.layout": "this.layout", "attr.align": "this.align" } }, viewQueries: [{ propertyName: "confirmCommandComponent", first: true, predicate: ["confirmCommandComponent"], descendants: true }, { propertyName: "cancelCommandComponent", first: true, predicate: ["cancelCommandComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command #cancelCommandComponent class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command #confirmCommandComponent class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n", styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}.cancel{grid-area:cancel}.confirm{grid-area:confirm}.content{grid-area:content;text-align:left}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CommandComponent, selector: "aup-command", inputs: ["command", "face$", "face", "busyFace$", "busyFace", "alignFace"] }] });
|
|
85
83
|
}
|
|
86
84
|
__decorate([
|
|
@@ -94,7 +92,7 @@ __decorate([
|
|
|
94
92
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, decorators: [{
|
|
95
93
|
type: Component,
|
|
96
94
|
args: [{ selector: 'aup-activity-actions', template: "<div class=\"content\">\n <ng-content></ng-content>\n</div>\n<ng-container *ngIf=\"hasCancelFace()\">\n <aup-command #cancelCommandComponent class=\"cancel\" [command]=\"cancelCommand\" [face]=\"cancelFace\" data-cy=\"cancel-command\"></aup-command>\n</ng-container>\n<ng-container *ngIf=\"hasConfirmFace()\">\n <aup-command #confirmCommandComponent class=\"confirm\" [command]=\"confirmCommand\" [face]=\"confirmFace\" data-cy=\"confirm-command\"></aup-command>\n</ng-container>\n", styles: [":host{display:grid;grid-template-rows:auto;align-items:center;justify-content:end;--resolved-activity-actions-gap: var(--activity-actions-gap, 8px)}:host[layout=block][align=start]{grid-template-areas:\"cancel confirm content\";grid-template-columns:auto auto 1fr}:host[layout=block][align=start] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=end]{grid-template-areas:\"content cancel confirm\";grid-template-columns:1fr auto auto}:host[layout=block][align=end] .confirm{margin-left:var(--resolved-activity-actions-gap)}:host[layout=block][align=stretch]{grid-template-areas:\"cancel content confirm\";grid-template-columns:auto 1fr auto}:host[layout=inline]{grid-template-areas:\"confirm cancel content\";grid-template-columns:auto auto 1fr}:host[layout=inline] .cancel{margin-left:var(--resolved-activity-actions-gap)}.cancel{grid-area:cancel}.confirm{grid-area:confirm}.content{grid-area:content;text-align:left}\n"] }]
|
|
97
|
-
}], ctorParameters: function () { return [
|
|
95
|
+
}], ctorParameters: function () { return []; }, propDecorators: { confirmCommandComponent: [{
|
|
98
96
|
type: ViewChild,
|
|
99
97
|
args: ["confirmCommandComponent"]
|
|
100
98
|
}], cancelCommandComponent: [{
|
|
@@ -134,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
134
132
|
STRETCH: 'stretch'
|
|
135
133
|
});
|
|
136
134
|
})(ActivityActionsComponent || (ActivityActionsComponent = {}));
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWFjdGlvbnMvYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LWFjdGlvbnMvYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUN4RixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQzs7OztBQUU3RTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFNSCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsbUJBQW1CO0lBR3JELHVCQUF1QixDQUFrQjtJQUd6QyxzQkFBc0IsQ0FBa0I7SUFNekMsbUNBQWlCLE9BQU8sQ0FBQyxDQUFBLE9BQVksQ0FBQSxDQUFDLENBQUM7SUFKaEQ7O09BRUc7SUFFTSxJQUFBLGNBQWMsb0RBQXlCO0lBQXZDLElBQUEsY0FBYywwREFBeUI7SUFNdkMsa0NBQWUsT0FBTyxDQUFDLENBQUEsT0FBWSxDQUFBLENBQUMsQ0FBQztJQUo5Qzs7T0FFRztJQUVNLElBQUEsYUFBYSxtREFBd0I7SUFBckMsSUFBQSxhQUFhLHlEQUF3QjtJQUU5QyxJQUNJLEtBQUssQ0FBQyxLQUFxQztRQUM3QyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUFHRCxXQUFXLENBQWM7SUFHekIsVUFBVSxDQUFjO0lBRXhCOztPQUVHO0lBQ0gsSUFDSSxLQUFLLENBQUMsS0FBcUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUlELE1BQU0sR0FBb0Msd0JBQXdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUloRixLQUFLLEdBQW1DLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFHL0U7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQVksQ0FBQyxRQUErRTtRQUMxRixJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0MsQ0FBQzt1R0F6RVUsd0JBQXdCOzJGQUF4Qix3QkFBd0Isb21CQ2pDckMsc2VBU0E7O0FEb0NXO0lBREMsT0FBTyxFQUFFOzs4REFDNkI7QUFNdkM7SUFEQyxPQUFPLEVBQUU7OzZEQUMyQjsyRkFsQm5DLHdCQUF3QjtrQkFMcEMsU0FBUzsrQkFDRSxzQkFBc0I7MEVBT3RCLHVCQUF1QjtzQkFEaEMsU0FBUzt1QkFBQyx5QkFBeUI7Z0JBSTFCLHNCQUFzQjtzQkFEL0IsU0FBUzt1QkFBQyx3QkFBd0I7Z0JBTzFCLGNBQWM7c0JBRHRCLEtBQUs7Z0JBT0csYUFBYTtzQkFEckIsS0FBSztnQkFJRixLQUFLO3NCQURSLEtBQUs7Z0JBT04sV0FBVztzQkFEVixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFPRixLQUFLO3NCQURSLEtBQUs7Z0JBT04sTUFBTTtzQkFGTCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGFBQWE7Z0JBSzFCLEtBQUs7c0JBRkosS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxZQUFZOztBQStCM0IsV0FBaUIsd0JBQXdCO0lBRTFCLCtCQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLEtBQUssRUFBRSxPQUFPO0tBQ2YsQ0FBQyxDQUFDO0lBR1UsOEJBQUssR0FBRyxJQUFJLENBQUM7UUFDeEIsS0FBSyxFQUFFLE9BQU87UUFDZCxHQUFHLEVBQUUsS0FBSztRQUNWLE9BQU8sRUFBRSxTQUFTO0tBQ25CLENBQUMsQ0FBQztBQVFMLENBQUMsRUFwQmdCLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFvQnhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdDaGlsZH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Q29tbWFuZCwgcHJveGlmeSwgUHJveGlmeX0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtFbnVtfSBmcm9tICd0eXBlc2NyaXB0LXN0cmluZy1lbnVtcyc7XG5pbXBvcnQge0NvbW1hbmRGYWNlfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2NvbW1hbmRzL2NvbW1hbmQtZmFjZSc7XG5pbXBvcnQge0NvbW1hbmRDb21wb25lbnR9IGZyb20gXCIuLi8uLi8uLi9jb21wb25lbnRzL2NvbW1hbmRzL2NvbW1hbmQvY29tbWFuZC5jb21wb25lbnRcIjtcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5cbi8qKlxuICogQGV4YW1wbGVcbiAqIDxhdXAtYWN0aXZpdHktYWN0aW9ucyBbY29uZmlybUZhY2VdPVwic2F2ZUZhY2VcIiBbY2FuY2VsRmFjZV09XCJjYW5jZWxGYWNlXCI+XG4gKiA8L2F1cC1hY3Rpdml0eS1hY3Rpb25zPlxuICpcbiAqICA8YXVwLWFjdGl2aXR5LWFjdGlvbnMgW2ZhY2VzXT1cIntjb25maXJtOiBzYXZlRmFjZSwgY2FuY2VsOiBjYW5jZWxGYWNlfVwiPlxuICogIDwvYXVwLWFjdGl2aXR5LWFjdGlvbnM+XG4gKlxuICogLy8gUnVubmluZyBgbmcgZyBAY29vbG9uL2FuZ3VsYXItdWktcG93ZXJ1cHM6YXVwLWkxOG5gIHdpbGwgaW5zdGFsbCBkZWZhdWx0XG4gKiAvLyBzdHlsZSBkZWZpbml0aW9uc1xuICogPGF1cC1hY3Rpdml0eS1hY3Rpb25zIFtmYWNlc109XCJJMThuLmF1cC5jb21wb25lbnRzLmFjdGl2aXR5QWN0aW9ucy5zdHlsZXMub2tDYW5jZWxJY29uc1wiPlxuICogPC9hdXAtYWN0aXZpdHktYWN0aW9ucz5cbiAqXG4gKiAvLyB5b3UgY2FuIGFsc28gYWRkIGFkZGl0aW9uYWwgY29udGVudCB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIGFsb25nIHdpdGggdGhlIGJ1dHRvbnMuXG4gKiAvLyBUaGUgbG9jYXRpb24gb2YgdGhlIGNvbnRlbnQgZGVwZW5kcyBvbiB0aGUgYWxpZ25tZW50IGF0dHJpYnV0ZS5cbiAqIDxhdXAtYWN0aXZpdHktYWN0aW9uc1xuICogICAgIGFsaWduPVwic3RyZXRjaFwiXG4gKiAgICAgW2ZhY2VzXT1cIkkxOG4uYXVwLmNvbXBvbmVudHMuYWN0aXZpdHlBY3Rpb25zLnN0eWxlcy5va0NhbmNlbEljb25zXCI+XG4gKiAgICAgPHNwYW4+VGhpcyBjb250ZW50IHdpbGwgYmUgYmV0d2VlbiB0aGUgdHdvIGNvbW1hbmRzPC9zcGFuPlxuICogPC9hdXAtYWN0aXZpdHktYWN0aW9ucz5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLWFjdGl2aXR5LWFjdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aXZpdHktYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FjdGl2aXR5LWFjdGlvbnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQgZXh0ZW5kcyBEaXNwb3NhYmxlQ29tcG9uZW50IHtcblxuICBAVmlld0NoaWxkKFwiY29uZmlybUNvbW1hbmRDb21wb25lbnRcIilcbiAgcHJvdGVjdGVkIGNvbmZpcm1Db21tYW5kQ29tcG9uZW50OiBDb21tYW5kQ29tcG9uZW50XG5cbiAgQFZpZXdDaGlsZChcImNhbmNlbENvbW1hbmRDb21wb25lbnRcIilcbiAgcHJvdGVjdGVkIGNhbmNlbENvbW1hbmRDb21wb25lbnQ6IENvbW1hbmRDb21wb25lbnRcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgYWN0aXZpdHkgYWN0aW9ucyBub3cgdXNlIHRoZSBjb25maXJtIGNvbW1hbmQgb2YgdGhlIGFjdGl2aXR5IGF1dG9tYXRpY2FsbHlcbiAgICovXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgY29uZmlybUNvbW1hbmQgPSBwcm94aWZ5KENvbW1hbmQ8YW55Pik7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIGFjdGl2aXR5IGFjdGlvbnMgbm93IHVzZSB0aGUgY2FuY2VsIGNvbW1hbmQgb2YgdGhlIGFjdGl2aXR5IGF1dG9tYXRpY2FsbHlcbiAgICovXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgY2FuY2VsQ29tbWFuZD0gcHJveGlmeShDb21tYW5kPGFueT4pO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBmYWNlcyhmYWNlczogQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50LlN0eWxlKSB7XG4gICAgdGhpcy5jb25maXJtRmFjZSA9IGZhY2VzLmNvbmZpcm07XG4gICAgdGhpcy5jYW5jZWxGYWNlID0gZmFjZXMuY2FuY2VsO1xuICB9XG5cbiAgQElucHV0KClcbiAgY29uZmlybUZhY2U6IENvbW1hbmRGYWNlO1xuXG4gIEBJbnB1dCgpXG4gIGNhbmNlbEZhY2U6IENvbW1hbmRGYWNlO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1c2UgI2ZhY2VzIGluc3RlYWQuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgc3R5bGUoc3R5bGU6IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5TdHlsZSkge1xuICAgIHRoaXMuZmFjZXMgPSBzdHlsZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5sYXlvdXQnKVxuICBsYXlvdXQ6IEFjdGl2aXR5QWN0aW9uc0NvbXBvbmVudC5MYXlvdXQgPSBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQuTGF5b3V0LkJMT0NLO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5hbGlnbicpXG4gIGFsaWduOiBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQuQWxpZ24gPSBBY3Rpdml0eUFjdGlvbnNDb21wb25lbnQuQWxpZ24uU1RSRVRDSDtcblxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBoYXNDb25maXJtRmFjZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLmNvbmZpcm1GYWNlO1xuICB9XG5cbiAgaGFzQ2FuY2VsRmFjZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLmNhbmNlbEZhY2U7XG4gIH1cblxuICBpbml0Q29tbWFuZHMoYWN0aXZpdHk6IHsgY29uZmlybUNvbW1hbmQ6IENvbW1hbmQ8dW5rbm93bj4sIGNhbmNlbENvbW1hbmQ6IENvbW1hbmQ8dW5rbm93bj4gfSkge1xuICAgIHRoaXMuY29uZmlybUNvbW1hbmQgPSBhY3Rpdml0eS5jb25maXJtQ29tbWFuZDtcbiAgICB0aGlzLmNhbmNlbENvbW1hbmQgPSBhY3Rpdml0eS5jYW5jZWxDb21tYW5kO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGZvY3VzQ29uZmlybSgpIHtcbiAgICB0aGlzLmNvbmZpcm1Db21tYW5kQ29tcG9uZW50LnJlcXVlc3RGb2N1cygpO1xuICB9XG5cbiAgZm9jdXNDYW5jZWwoKSB7XG4gICAgdGhpcy5jYW5jZWxDb21tYW5kQ29tcG9uZW50LnJlcXVlc3RGb2N1cygpO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgQWN0aXZpdHlBY3Rpb25zQ29tcG9uZW50IHtcblxuICBleHBvcnQgY29uc3QgTGF5b3V0ID0gRW51bSh7XG4gICAgSU5MSU5FOiAnaW5saW5lJyxcbiAgICBCTE9DSzogJ2Jsb2NrJ1xuICB9KTtcbiAgZXhwb3J0IHR5cGUgTGF5b3V0ID0gRW51bTx0eXBlb2YgTGF5b3V0PjtcblxuICBleHBvcnQgY29uc3QgQWxpZ24gPSBFbnVtKHtcbiAgICBTVEFSVDogJ3N0YXJ0JyxcbiAgICBFTkQ6ICdlbmQnLFxuICAgIFNUUkVUQ0g6ICdzdHJldGNoJ1xuICB9KTtcbiAgZXhwb3J0IHR5cGUgQWxpZ24gPSBFbnVtPHR5cGVvZiBBbGlnbj47XG5cbiAgZXhwb3J0IGludGVyZmFjZSBTdHlsZSB7XG4gICAgY29uZmlybTogQ29tbWFuZEZhY2U7XG4gICAgY2FuY2VsOiBDb21tYW5kRmFjZTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNDYW5jZWxGYWNlKClcIj5cbiAgPGF1cC1jb21tYW5kICNjYW5jZWxDb21tYW5kQ29tcG9uZW50IGNsYXNzPVwiY2FuY2VsXCIgW2NvbW1hbmRdPVwiY2FuY2VsQ29tbWFuZFwiIFtmYWNlXT1cImNhbmNlbEZhY2VcIiBkYXRhLWN5PVwiY2FuY2VsLWNvbW1hbmRcIj48L2F1cC1jb21tYW5kPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaGFzQ29uZmlybUZhY2UoKVwiPlxuICA8YXVwLWNvbW1hbmQgI2NvbmZpcm1Db21tYW5kQ29tcG9uZW50IGNsYXNzPVwiY29uZmlybVwiIFtjb21tYW5kXT1cImNvbmZpcm1Db21tYW5kXCIgW2ZhY2VdPVwiY29uZmlybUZhY2VcIiBkYXRhLWN5PVwiY29uZmlybS1jb21tYW5kXCI+PC9hdXAtY29tbWFuZD5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { ComponentPortal } from '@angular/cdk/portal';
|
|
3
|
-
import {
|
|
3
|
+
import { Component, EventEmitter, HostBinding, Inject, InjectionToken, Input, Optional, Output, SkipSelf, ViewChild } from '@angular/core';
|
|
4
4
|
import { Router, RouterOutlet } from '@angular/router';
|
|
5
5
|
import { DebugContext, Dsl, lang, ListModel, MutableValueModel, Proxify, proxify, StoreInListModel, StoreInValueModel, ValueModel } from '@coolon/pectin';
|
|
6
6
|
import { isNil } from 'lodash-es';
|
|
@@ -20,7 +20,6 @@ export class PlaceOutletComponent extends DisposableComponent {
|
|
|
20
20
|
router;
|
|
21
21
|
placeRouter;
|
|
22
22
|
placeConfig;
|
|
23
|
-
cdr;
|
|
24
23
|
#animate$_accessor_storage = proxify((ValueModel));
|
|
25
24
|
get animate$() { return this.#animate$_accessor_storage; }
|
|
26
25
|
set animate$(value) { this.#animate$_accessor_storage = value; }
|
|
@@ -54,12 +53,11 @@ export class PlaceOutletComponent extends DisposableComponent {
|
|
|
54
53
|
animationEnabled;
|
|
55
54
|
authorised;
|
|
56
55
|
notAuthorisedNoticePortal;
|
|
57
|
-
constructor(router, placeRouter, placeConfig, unauthorisedPlaceNotice, parentOutlet
|
|
56
|
+
constructor(router, placeRouter, placeConfig, unauthorisedPlaceNotice, parentOutlet) {
|
|
58
57
|
super();
|
|
59
58
|
this.router = router;
|
|
60
59
|
this.placeRouter = placeRouter;
|
|
61
60
|
this.placeConfig = placeConfig;
|
|
62
|
-
this.cdr = cdr;
|
|
63
61
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
64
62
|
this.parentOutletModel = new MutableValueModel(parentOutlet);
|
|
65
63
|
const defaultPlaceAnimationOrder = chain(this.parentOutletModel)
|
|
@@ -225,7 +223,7 @@ export class PlaceOutletComponent extends DisposableComponent {
|
|
|
225
223
|
this.onAnimationFinishedJob = undefined;
|
|
226
224
|
}
|
|
227
225
|
}
|
|
228
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceOutletComponent, deps: [{ token: i1.Router }, { token: i2.PlaceRouter }, { token: AUP_PLACE_CONFIG, optional: true }, { token: AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT, optional: true }, { token: PlaceOutletComponent, optional: true, skipSelf: true }
|
|
226
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceOutletComponent, deps: [{ token: i1.Router }, { token: i2.PlaceRouter }, { token: AUP_PLACE_CONFIG, optional: true }, { token: AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT, optional: true }, { token: PlaceOutletComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
229
227
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: PlaceOutletComponent, selector: "aup-place-outlet", inputs: { animate$: "animate$", animate: "animate", customPlaceAnimationOrder$: ["placeAnimationOrderModel", "customPlaceAnimationOrder$"], customPlaceAnimationOrder: ["placeAnimationOrder", "customPlaceAnimationOrder"] }, outputs: { placeChanged: "placeChanged" }, host: { properties: { "class.authorised": "this.isAuthorised" } }, viewQueries: [{ propertyName: "routerOut", first: true, predicate: ["routeOutlet"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable\n [@routeAnimations]=\"{value: getAnimationOrder(), params:{duration: animationDuration}}\"\n (@routeAnimations.start)=\"animationStarted()\"\n (@routeAnimations.done)=\"animationDone()\"\n >\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!animationEnabled.value\">\n <div class=\"router-outlet-container\"\n cdkScrollable>\n <router-outlet #routerOutlet=\"outlet\"\n (activate)=\"onOutletActivated(routerOutlet, $event)\"\n (deactivate)=\"onOutletDeactivated()\">\n </router-outlet>\n </div>\n</ng-container>\n\n<div class=\"not-authorised-component-container\" *ngIf=\"!authorised.value\">\n <ng-template [cdkPortalOutlet]=\"notAuthorisedNoticePortal\"></ng-template>\n</div>\n", styles: [":host{display:flex;flex-direction:column;min-height:0}:host:not(.authorised) .router-outlet-container{display:none}.router-outlet-container{flex:1;display:block;position:relative;min-height:0;overflow-x:hidden;overflow-y:auto}router-outlet{display:none}.not-authorised-component-container{flex:1;display:grid;grid-template-columns:1fr;grid-template-rows:1fr}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: i4.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i5.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [LEFT_RIGHT_PLACE_ANIMATION] });
|
|
230
228
|
}
|
|
231
229
|
__decorate([
|
|
@@ -261,7 +259,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
261
259
|
type: SkipSelf
|
|
262
260
|
}, {
|
|
263
261
|
type: Optional
|
|
264
|
-
}] }
|
|
262
|
+
}] }]; }, propDecorators: { animate$: [{
|
|
265
263
|
type: Input
|
|
266
264
|
}], animate: [{
|
|
267
265
|
type: Input
|
|
@@ -280,4 +278,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
280
278
|
type: HostBinding,
|
|
281
279
|
args: ["class.authorised"]
|
|
282
280
|
}] } });
|
|
283
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL2NvbXBvbmVudHMvcGxhY2Utb3V0bGV0L3BsYWNlLW91dGxldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sUUFBUSxFQUNSLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWlCLE1BQU0sRUFBRSxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBR0wsWUFBWSxFQUNaLEdBQUcsRUFDSCxJQUFJLEVBQ0osU0FBUyxFQUVULGlCQUFpQixFQUNqQixPQUFPLEVBQ1AsT0FBTyxFQUNQLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsVUFBVSxFQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUc3RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQWMsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFHL0MsT0FBTyxF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c0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxTQUFTLENBQUM7U0FDekM7SUFDSCxDQUFDO3VHQXpQVSxvQkFBb0IsbUVBaURDLGdCQUFnQiw2QkFDaEIsdUNBQXVDOzJGQWxENUQsb0JBQW9CLG9oQkNyRGpDLCtpQ0EyQkEsbTZCRHdCYyxDQUFDLDBCQUEwQixDQUFDOztBQUsvQjtJQURDLE9BQU8sRUFBRTs7b0RBQzhCO0FBR3hDO0lBREMsaUJBQWlCLEVBQUU7O21EQUNMO0FBS2Y7SUFEMkIsT0FBTyxFQUFFOztzRUFDMkM7QUFJL0U7SUFEc0IsZ0JBQWdCLEVBQUU7O3FFQUNpQzsyRkFmdkUsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGtCQUFrQixjQUdoQixDQUFDLDBCQUEwQixDQUFDOzswQkFtRDNCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDbkMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx1Q0FBdUM7OzBCQUMxRCxRQUFROzswQkFBSSxRQUFROzRFQWhEeEIsUUFBUTtzQkFEaEIsS0FBSztnQkFJRyxPQUFPO3NCQURmLEtBQUs7Z0JBTUcsMEJBQTBCO3NCQURsQyxLQUFLO3VCQUFDLDBCQUEwQjtnQkFLeEIseUJBQXlCO3NCQURqQyxLQUFLO3VCQUFDLHFCQUFxQjtnQkFJbkIsWUFBWTtzQkFEcEIsTUFBTTtnQkFJUCxTQUFTO3NCQURSLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFxR3RDLFlBQVk7c0JBRGYsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudFBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIEluamVjdGlvblRva2VuLFxuICBJbnB1dCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgU2tpcFNlbGYsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlciwgUm91dGVyT3V0bGV0fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQm9vbGVhblZhbHVlTW9kZWxDaGFpbixcbiAgQ29uc3RydWN0YWJsZSxcbiAgRGVidWdDb250ZXh0LFxuICBEc2wsXG4gIGxhbmcsXG4gIExpc3RNb2RlbCxcbiAgTGlzdE1vZGVsQ2hhaW4sXG4gIE11dGFibGVWYWx1ZU1vZGVsLFxuICBQcm94aWZ5LFxuICBwcm94aWZ5LFxuICBTdG9yZUluTGlzdE1vZGVsLFxuICBTdG9yZUluVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbCxcbiAgVmFsdWVNb2RlbENoYWluXG59IGZyb20gJ0Bjb29sb24vcGVjdGluJztcblxuaW1wb3J0IHtpc05pbH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7RGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9kaXNwb3NhYmxlLWNvbXBvbmVudCc7XG5pbXBvcnQge1BsYWNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi9wbGFjZS1jb21wb25lbnQnO1xuXG5pbXBvcnQge0FVUF9QTEFDRV9DT05GSUcsIFBsYWNlQ29uZmlnfSBmcm9tICcuLi8uLi9wbGFjZS1jb25maWcnO1xuaW1wb3J0IHtQbGFjZURlZmluaXRpb259IGZyb20gJy4uLy4uL3BsYWNlLWRlZmluaXRpb24nO1xuaW1wb3J0IHtQbGFjZVJvdXRlcn0gZnJvbSAnLi4vLi4vcGxhY2Utcm91dGVyJztcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tICcuLi8uLi92aXNpdC1zZWdtZW50JztcblxuaW1wb3J0IHtOb3RBdXRob3Jpc2VkTm90aWNlQ29tcG9uZW50fSBmcm9tICcuLi9ub3QtYXV0aG9yaXNlZC1ub3RpY2Uvbm90LWF1dGhvcmlzZWQtbm90aWNlLmNvbXBvbmVudCc7XG5pbXBvcnQge0xFRlRfUklHSFRfUExBQ0VfQU5JTUFUSU9OfSBmcm9tICcuL3JvdXRlLWFuaW1hdGlvbnMnO1xuXG5cbmV4cG9ydCBjb25zdCBBVVBfVU5BVVRIT1JJU0VEX1BMQUNFX05PVElDRV9DT01QT05FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29uc3RydWN0YWJsZTxhbnk+PignQVVQX1VOQVVUSE9SSVNFRF9QTEFDRV9DT01QT05FTlQnKTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLXBsYWNlLW91dGxldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wbGFjZS1vdXRsZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wbGFjZS1vdXRsZXQuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW0xFRlRfUklHSFRfUExBQ0VfQU5JTUFUSU9OXVxufSlcbmV4cG9ydCBjbGFzcyBQbGFjZU91dGxldENvbXBvbmVudCBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgYW5pbWF0ZSQgPSBwcm94aWZ5KFZhbHVlTW9kZWw8Ym9vbGVhbj4pO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIGFuaW1hdGUgPSB0cnVlO1xuXG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3BsYWNlQW5pbWF0aW9uT3JkZXJNb2RlbCcpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgY3VzdG9tUGxhY2VBbmltYXRpb25PcmRlciQgPSBwcm94aWZ5KExpc3RNb2RlbDxDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pj4pO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdwbGFjZUFuaW1hdGlvbk9yZGVyJykgQFN0b3JlSW5MaXN0TW9kZWwoKVxuICBhY2Nlc3NvciBjdXN0b21QbGFjZUFuaW1hdGlvbk9yZGVyOiAgUmVhZG9ubHlBcnJheTxDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pj47XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHBsYWNlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8UGxhY2VDb21wb25lbnQ+KCk7XG5cbiAgQFZpZXdDaGlsZCgncm91dGVPdXRsZXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICByb3V0ZXJPdXQ6IFJvdXRlck91dGxldDtcblxuICBwcml2YXRlIG9uQW5pbWF0aW9uRmluaXNoZWRKb2I6ICgpID0+IHZvaWQ7XG5cblxuICBwcml2YXRlIG91dGxldEFjdGl2YXRlZCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbChmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2YXRlZFJvdXRlTW9kZWwgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8QWN0aXZhdGVkUm91dGU+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZVBsYWNlTW9kZWwgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8UGxhY2VDb21wb25lbnQ+KCk7XG5cbiAgcmVhZG9ubHkgX2FjdGl2ZVBsYWNlRGVmaW5pdGlvbjogVmFsdWVNb2RlbENoYWluPFBsYWNlRGVmaW5pdGlvbj47XG5cbiAgcHJpdmF0ZSBwYXJlbnRPdXRsZXRNb2RlbDogTXV0YWJsZVZhbHVlTW9kZWw8UGxhY2VPdXRsZXRDb21wb25lbnQ+O1xuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlUGxhY2VBbmltYXRpb25Qb3NpdGlvbjogVmFsdWVNb2RlbENoYWluPG51bWJlcj47XG5cbiAgcHJpdmF0ZSBpbml0aWFsUGxhY2VJbmRleDogbnVtYmVyID0gbnVsbDtcbiAgcHJpdmF0ZSBjdXJyZW50VmlzaXRTZWdtZW50JDogVmFsdWVNb2RlbENoYWluPFZpc2l0U2VnbWVudD47XG4gIHByaXZhdGUgX2lzUHVzaGluZ1Zpc2l0VG9Sb3V0ZXIgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcml2YXRlIG5hdmlnYXRpb25JblByb2dyZXNzOiBWYWx1ZU1vZGVsQ2hhaW48Ym9vbGVhbj47XG5cbiAgcHJpdmF0ZSBpc1ZlcnlGaXJzdExvYWQgPSB0cnVlO1xuICBwcml2YXRlIHBsYWNlc0luQW5pbWF0aW9uT3JkZXI6IExpc3RNb2RlbENoYWluPENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+PjtcbiAgcHJpdmF0ZSBhbmltYXRpb25TdXBwb3J0ZWQ6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG4gIHJlYWRvbmx5IGFuaW1hdGlvbkVuYWJsZWQ6IEJvb2xlYW5WYWx1ZU1vZGVsQ2hhaW47XG4gIHJlYWRvbmx5IGF1dGhvcmlzZWQ6IFZhbHVlTW9kZWxDaGFpbjxib29sZWFuPjtcbiAgcmVhZG9ubHkgbm90QXV0aG9yaXNlZE5vdGljZVBvcnRhbDogQ29tcG9uZW50UG9ydGFsPGFueT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBwbGFjZVJvdXRlcjogUGxhY2VSb3V0ZXIsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVVQX1BMQUNFX0NPTkZJRykgcmVhZG9ubHkgcGxhY2VDb25maWc6IFBsYWNlQ29uZmlnLFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFVUF9VTkFVVEhPUklTRURfUExBQ0VfTk9USUNFX0NPTVBPTkVOVCkgdW5hdXRob3Jpc2VkUGxhY2VOb3RpY2U6IENvbnN0cnVjdGFibGU8YW55PixcbiAgICAgICAgICAgICAgQFNraXBTZWxmKCkgQE9wdGlvbmFsKCkgcGFyZW50T3V0bGV0OiBQbGFjZU91dGxldENvbXBvbmVudCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuXG4gICAgdGhpcy5wYXJlbnRPdXRsZXRNb2RlbCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbChwYXJlbnRPdXRsZXQpO1xuXG4gICAgY29uc3QgZGVmYXVsdFBsYWNlQW5pbWF0aW9uT3JkZXIgPSBjaGFpbih0aGlzLnBhcmVudE91dGxldE1vZGVsKVxuICAgICAgLnB1bGxWYWx1ZU1vZGVsKG8gPT4gby5hY3RpdmVQbGFjZU1vZGVsKVxuICAgICAgLnBsdWNrKCdwbGFjZURlZmluaXRpb24nKVxuICAgICAgLnBsdWNrTGlzdCgnY2hpbGRyZW4nKVxuICAgICAgLnBsdWNrKCdjb21wb25lbnQnKTtcblxuICAgIGNvbnN0IGFjdGl2YXRlUGxhY2VUeXBlID0gY2hhaW4odGhpcy5hY3RpdmVQbGFjZU1vZGVsKS5tYXAocCA9PiBwLmNvbnN0cnVjdG9yIGFzIENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTtcblxuICAgIHRoaXMucGxhY2VzSW5BbmltYXRpb25PcmRlciA9IGNoYWluKHRoaXMuY3VzdG9tUGxhY2VBbmltYXRpb25PcmRlciQpXG4gICAgICAub3RoZXJ3aXNlKGRlZmF1bHRQbGFjZUFuaW1hdGlvbk9yZGVyKTtcblxuICAgIHRoaXMuYWN0aXZlUGxhY2VBbmltYXRpb25Qb3NpdGlvbiA9IHRoaXMucGxhY2VzSW5BbmltYXRpb25PcmRlclxuICAgICAgLnJlZHVjZUFsbCgocGxhY2VzSW5PcmRlcikgPT4ge1xuICAgICAgICBsZXQgcGxhY2VJbmRleCA9IDA7XG4gICAgICAgIGlmIChhY3RpdmF0ZVBsYWNlVHlwZS52YWx1ZSkge1xuICAgICAgICAgIHBsYWNlSW5kZXggPSBwbGFjZXNJbk9yZGVyLmluZGV4T2YoYWN0aXZhdGVQbGFjZVR5cGUudmFsdWUpO1xuICAgICAgICAgIGlmIChpc05pbCh0aGlzLmluaXRpYWxQbGFjZUluZGV4KSkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsUGxhY2VJbmRleCA9IHBsYWNlSW5kZXg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc05pbCh0aGlzLmluaXRpYWxQbGFjZUluZGV4KSA/IDAgOiBwbGFjZUluZGV4IC0gdGhpcy5pbml0aWFsUGxhY2VJbmRleDtcbiAgICAgIH0sIHsgZGVwZW5kc09uOiBhY3RpdmF0ZVBsYWNlVHlwZSB9KTtcblxuICAgIHRoaXMuYW5pbWF0aW9uU3VwcG9ydGVkID0gdGhpcy5wbGFjZXNJbkFuaW1hdGlvbk9yZGVyLmNvdW50KCkuaXNHcmVhdGVyVGhhbigwKTtcbiAgICB0aGlzLmFuaW1hdGlvbkVuYWJsZWQgPSB2YWx1ZU9mLmFsbChcbiAgICAgIHRoaXMuYW5pbWF0ZSQsXG4gICAgICB0aGlzLmFuaW1hdGlvblN1cHBvcnRlZFxuICAgICkuYXJlVHJ1dGh5KCk7XG5cbiAgICAvLyBFeHRyYWN0IG91ciB2aXNpdCBtb2RlbCBmcm9tIHRoZSBwbGFjZSByb3V0ZXIuXG4gICAgdGhpcy5fYWN0aXZlUGxhY2VEZWZpbml0aW9uID0gY2hhaW4odGhpcy5fYWN0aXZlUGxhY2VNb2RlbCkucGx1Y2soJ3BsYWNlRGVmaW5pdGlvbicpO1xuICAgIHRoaXMuY3VycmVudFZpc2l0U2VnbWVudCQgPSBjaGFpbihwbGFjZVJvdXRlci5hY3RpdmVWaXNpdCQpLm1hcCh2aXNpdCA9PiB2aXNpdC5nZXRTZWdtZW50Rm9yKHRoaXMuX2FjdGl2ZVBsYWNlRGVmaW5pdGlvbi52YWx1ZSksIHsgZGVwZW5kc09uOiB0aGlzLl9hY3RpdmVQbGFjZURlZmluaXRpb24gfSk7XG5cbiAgICB0aGlzLm5hdmlnYXRpb25JblByb2dyZXNzID0gY2hhaW4odGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uSW5Qcm9ncmVzcyQpO1xuXG4gICAgd2hlbih0aGlzLm5hdmlnYXRpb25JblByb2dyZXNzKS5iZWNvbWVzRmFsc2V5KCgpID0+IHtcbiAgICAgIHRoaXMuY2hlY2tTdGF0ZUFuZEluaXRpYWxpc2UoKTtcbiAgICB9KTtcbiAgICB3aGVuKHRoaXMub3V0bGV0QWN0aXZhdGVkKS5iZWNvbWVzVHJ1dGh5KCgpID0+IHtcbiAgICAgIHRoaXMuY2hlY2tTdGF0ZUFuZEluaXRpYWxpc2UoKTtcbiAgICB9KTtcblxuICAgIGNoYWluKHRoaXMuX2FjdGl2ZVBsYWNlTW9kZWwpXG4gICAgICAucG9zdHBvbmVXaGlsZSh0aGlzLm5hdmlnYXRpb25JblByb2dyZXNzKVxuICAgICAgLnN1YnNjcmliZShwbGFjZSA9PiB0aGlzLnBsYWNlQ2hhbmdlZC5lbWl0KHBsYWNlKSk7XG5cbiAgICB0aGlzLmF1dGhvcmlzZWQgPSBjaGFpbihwbGFjZVJvdXRlci5hdXRoU2VydmljZS5hY2Nlc3NHdWFyZCQpLm1hcChndWFyZCA9PiBndWFyZC5pc0F1dGhvcmlzZWQodGhpcy5fYWN0aXZlUGxhY2VEZWZpbml0aW9uLnZhbHVlKSwge1xuICAgICAgZGVwZW5kc09uOiB0aGlzLl9hY3RpdmVQbGFjZURlZmluaXRpb24sXG4gICAgICBwb3N0cG9uZVdoaWxlOiBjaGFpbih0aGlzLl9hY3RpdmVQbGFjZURlZmluaXRpb24pLmlzTmlsKClcbiAgICB9KS5vdGhlcndpc2UodHJ1ZSk7IC8vIGlmIHdlIGRvbid0IGhhdmUgYSBwbGFjZSBkZWYgeWV0IHdlIG5lZWQgdG8gc2hvdyB0aGUgb3V0bGV0IHNvIHdlIGdldCBvbmUgaW5qZWN0ZWQuXG5cbiAgICB0aGlzLm5vdEF1dGhvcmlzZWROb3RpY2VQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHVuYXV0aG9yaXNlZFBsYWNlTm90aWNlID8/IE5vdEF1dGhvcmlzZWROb3RpY2VDb21wb25lbnQpO1xuICB9XG5cbiAgZ2V0QW5pbWF0aW9uT3JkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlUGxhY2VBbmltYXRpb25Qb3NpdGlvbi52YWx1ZTtcbiAgfVxuXG4gIGdldCBhbmltYXRpb25EdXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZUNvbmZpZyAmJiB0aGlzLnBsYWNlQ29uZmlnLmFuaW1hdGlvbkR1cmF0aW9uID8gdGhpcy5wbGFjZUNvbmZpZy5hbmltYXRpb25EdXJhdGlvbiA6ICc1MDBtcyc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5hdXRob3Jpc2VkXCIpXG4gIGdldCBpc0F1dGhvcmlzZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aG9yaXNlZC52YWx1ZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGdldCBwYXJlbnRPdXRsZXQoKTogUGxhY2VPdXRsZXRDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE91dGxldE1vZGVsLnZhbHVlO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZVBsYWNlTW9kZWwoKTogVmFsdWVNb2RlbDxQbGFjZUNvbXBvbmVudD4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVQbGFjZU1vZGVsLnJlYWRvbmx5JDtcbiAgfVxuXG4gIGdldCBhY3RpdmF0ZWRSb3V0ZU1vZGVsKCk6IFZhbHVlTW9kZWw8QWN0aXZhdGVkUm91dGU+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZhdGVkUm91dGVNb2RlbC5yZWFkb25seSQ7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvbk91dGxldEFjdGl2YXRlZChyb3V0ZXJPdXRsZXQ6IFJvdXRlck91dGxldCwgcGxhY2U6IFBsYWNlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fYWN0aXZhdGVkUm91dGVNb2RlbC52YWx1ZSA9IHJvdXRlck91dGxldC5hY3RpdmF0ZWRSb3V0ZTtcbiAgICB0aGlzLl9hY3RpdmVQbGFjZU1vZGVsLnZhbHVlID0gcGxhY2U7XG4gICAgdGhpcy52YWxpZGF0ZUFuaW1hdGlvblN0YXRlKHBsYWNlKTtcbiAgICB0aGlzLm91dGxldEFjdGl2YXRlZC52YWx1ZSA9IHRydWU7XG4gICAgdGhpcy5jaGVja1N0YXRlQW5kSW5pdGlhbGlzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUFuaW1hdGlvblN0YXRlKHBsYWNlOiBQbGFjZUNvbXBvbmVudCkge1xuICAgIGlmICh0aGlzLmFuaW1hdGUkLnZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5wbGFjZXNJbkFuaW1hdGlvbk9yZGVyLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignUGxhY2VPdXRsZXQuYW5pbWF0ZSA9PT0gdHJ1ZSBidXQgcGxhY2VBbmltYXRpb25PcmRlciBoYXMgbm90IGJlZW4gc2V0LiBBbmltYXRpb24gaXMgZGlzYWJsZWQuJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIXRoaXMucGxhY2VzSW5BbmltYXRpb25PcmRlci5xdWVyeSgpLmluY2x1ZGVzKHBsYWNlLnBsYWNlRGVmaW5pdGlvbi5jb21wb25lbnQpKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgUGxhY2VPdXRsZXQuYW5pbWF0ZSA9PT0gdHJ1ZSBidXQgcGxhY2VBbmltYXRpb25PcmRlciBkb2Vzbid0IGNvbnRhaW4gJHtwbGFjZS5wbGFjZURlZmluaXRpb24uY29tcG9uZW50Lm5hbWV9LmApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25PdXRsZXREZWFjdGl2YXRlZCgpIHtcbiAgICB0aGlzLm91dGxldEFjdGl2YXRlZC52YWx1ZSA9IGZhbHNlO1xuICAgIHRoaXMuX2FjdGl2ZVBsYWNlTW9kZWwudmFsdWUgPSBudWxsO1xuICAgIHRoaXMuX2FjdGl2YXRlZFJvdXRlTW9kZWwudmFsdWUgPSBudWxsO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcHJpdmF0ZSBjaGVja1N0YXRlQW5kSW5pdGlhbGlzZSgpIHtcbiAgICBjb25zdCByb3V0ZXJWaXNpdCA9IHRoaXMuY3VycmVudFZpc2l0U2VnbWVudCQudmFsdWU7XG4gICAgY29uc3QgYWN0aXZlUGxhY2UgPSB0aGlzLmFjdGl2ZVBsYWNlTW9kZWwudmFsdWU7XG4gICAgaWYgKHJvdXRlclZpc2l0ICYmIGFjdGl2ZVBsYWNlICYmICFhY3RpdmVQbGFjZS5pc0luaXRpYWxpc2VkKCkpIHtcbiAgICAgIGlmIChyb3V0ZXJWaXNpdC5wbGFjZURlZmluaXRpb24gIT09IGFjdGl2ZVBsYWNlLnBsYWNlRGVmaW5pdGlvbikge1xuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZSgnd3JvbmcgdmlzaXQhISEnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW5pdGlhbGlzZVBsYWNlKHJvdXRlclZpc2l0LCBhY3RpdmVQbGFjZSk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpc2VQbGFjZShyb3V0ZXJWaXNpdDogVmlzaXRTZWdtZW50LCBhY3RpdmVQbGFjZTogUGxhY2VDb21wb25lbnQpIHtcbiAgICBjb25zdCB2aXNpdE1vZGVsID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFZpc2l0U2VnbWVudD4ocm91dGVyVmlzaXQpO1xuICAgIERlYnVnQ29udGV4dC50YWcodmlzaXRNb2RlbCwgYFBsYWNlT3V0bGV0Q29tcG9uZW50WyR7YWN0aXZlUGxhY2UuY29uc3RydWN0b3IubmFtZX0pXS52aXNpdE1vZGVsYCk7XG4gICAgYWN0aXZlUGxhY2UuaW5pdGlhbGlzZVZpc2l0KHJvdXRlclZpc2l0LCAoaXMsIHdhcykgPT4ge1xuICAgICAgdGhpcy5ub3RpZnlDb21wb25lbnRWaXNpdFNlZ21lbnRDaGFuZ2VkKGlzLCB3YXMpO1xuICAgIH0pO1xuICAgIGNvbnN0IGZpbmlzaFBsYWNlTG9hZCA9ICgpID0+IHtcbiAgICAgIHRoaXMuX2FjdGl2ZVBsYWNlTW9kZWwudmFsdWUuX25vdGlmeUFjdGl2ZSh0cnVlKTtcbiAgICB9O1xuICAgIGlmICghdGhpcy5hbmltYXRpb25FbmFibGVkLnZhbHVlIHx8IHRoaXMuaXNWZXJ5Rmlyc3RMb2FkKSB7XG4gICAgICAvLyBpZiBhbmltYXRpb24gaXMgZGlzYWJsZWQgb3IgdGhpcyBpcyB0aGUgdmVyeSBmaXJzdCBsb2FkIHRoZW5cbiAgICAgIC8vIHdlIHdvbid0IGdldCBvdXIgYW5pbWF0aW9uIGRvbmUgY2FsbGJhY2sgc28gd2UgZmluaXNoIHRoZVxuICAgICAgLy8gcHJvY2VzcyBoZXJlIGFuZCBub3cuXG4gICAgICB0aGlzLmlzVmVyeUZpcnN0TG9hZCA9IGZhbHNlO1xuICAgICAgZmluaXNoUGxhY2VMb2FkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25BbmltYXRpb25GaW5pc2hlZEpvYiA9IGZpbmlzaFBsYWNlTG9hZDtcbiAgICB9XG4gICAgY29uc3QgeyB3aGVuLCBjaGFpbiwgdmFsdWVPZiB9ID0gRHNsLmRpc3Bvc2VXaXRoKGFjdGl2ZVBsYWNlKTtcbiAgICB3aGVuKHRoaXMuY3VycmVudFZpc2l0U2VnbWVudCQpXG4gICAgICAuY2hhbmdlcyh2aXNpdCA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwicm91dGVyVmlzaXRNb2RlbC5jaGFuZ2VcIiwgeyByb3V0ZXJWaXNpdE1vZGVsOiB0aGlzLnJvdXRlclZpc2l0TW9kZWwudmFsdWUgfSlcbiAgICAgICAgdGhpcy5wdXNoVmlzaXRDaGFuZ2VUb0NvbXBvbmVudChhY3RpdmVQbGFjZSwgdmlzaXQpO1xuICAgICAgfSwge1xuICAgICAgICB1bmxlc3M6IHZhbHVlT2YuYW55KFxuICAgICAgICAgIHRoaXMuX2lzUHVzaGluZ1Zpc2l0VG9Sb3V0ZXIsXG4gICAgICAgICAgdGhpcy5jdXJyZW50VmlzaXRTZWdtZW50JC5pc05pbCgpXG4gICAgICAgICkuYXJlVHJ1dGh5KClcbiAgICAgIH0pO1xuICAgIC8vIGNoYWluKHRoaXMuY3VycmVudFZpc2l0U2VnbWVudCQpLnN1YnNjcmliZShpdCA9PiB7XG4gICAgLy8gICBpZiAoaXQpIHtcbiAgICAvLyAgICAgY29uc29sZS5sb2coXCJQbGFjZU91dGxldCBzZWdtZW50IHVwZGF0ZWRcIiwgaXQudG9EZWJ1Z1N0cmluZygpLCB7XG4gICAgLy8gICAgICAgaXNQdXNoaW5nOiB0aGlzLl9pc1B1c2hpbmdWaXNpdFRvUm91dGVyLnZhbHVlLFxuICAgIC8vICAgICAgIHNlZ21lbnQ6IHRoaXMuY3VycmVudFZpc2l0U2VnbWVudCQudmFsdWU/LnRvRGVidWdTdHJpbmcoKVxuICAgIC8vICAgICB9KVxuICAgIC8vICAgfVxuICAgIC8vIH0pXG4gIH1cblxuICBwcml2YXRlIHB1c2hWaXNpdENoYW5nZVRvQ29tcG9uZW50KGFjdGl2ZVBsYWNlOiBQbGFjZUNvbXBvbmVudCwgc2VnbWVudDogVmlzaXRTZWdtZW50KSB7XG4gICAgLy8gY29uc29sZS5sb2coXCJQbGFjZU91dGxldC5wdXNoVmlzaXRDaGFuZ2VUb0NvbXBvbmVudFwiLCBzZWdtZW50LnRvRGVidWdTdHJpbmcoKSk7XG4gICAgYWN0aXZlUGxhY2UudXBkYXRlVmlzaXQoc2VnbWVudCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG5vdGlmeUNvbXBvbmVudFZpc2l0U2VnbWVudENoYW5nZWQoaXM6IFZpc2l0U2VnbWVudCwgd2FzOiBWaXNpdFNlZ21lbnQpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5faXNQdXNoaW5nVmlzaXRUb1JvdXRlci52YWx1ZSA9IHRydWU7XG4gICAgICBhd2FpdCB0aGlzLnBsYWNlUm91dGVyLm5vdGlmeVZpc2l0U2VnbWVudENoYW5nZWQoaXMsIHdhcyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX2lzUHVzaGluZ1Zpc2l0VG9Sb3V0ZXIudmFsdWUgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gc2FuaXRpc2VycyBtYXkgaGF2ZSBhZGp1c3RlZCBvdGhlciB2YWx1ZXMgaW4gdGhlIHZpc2l0IHRvIHdlIGNoZWNrIGFuZCB3cml0ZSBpdCBiYWNrLlxuICAgIGNvbnN0IGFuZEJlY2FtZSA9IHRoaXMuY3VycmVudFZpc2l0U2VnbWVudCQudmFsdWU7IC8vIHRoaXMgaXMgb2NjYXNpb25hbGx5IG51bGwuLi4gbmVlZCB0byBpbnZlc3RpZ2F0ZSBpZiB0aGF0J3MgYSBub3JtYWwgc3RhdGUgb3Igbm90LlxuICAgIC8vIGNvbnNvbGUubG9nKFwiUGxhY2VPdXRsZXQubm90aWZ5Q29tcG9uZW50VmlzaXRTZWdtZW50Q2hhbmdlZFwiLCB7IGlzLCB3YXMsIGFuZEJlY2FtZSB9KVxuICAgIGlmIChhbmRCZWNhbWUgJiYgYW5kQmVjYW1lLmhhc0NoYW5nZWRGcm9tKGlzKSkge1xuICAgICAgdGhpcy5wdXNoVmlzaXRDaGFuZ2VUb0NvbXBvbmVudCh0aGlzLmFjdGl2ZVBsYWNlTW9kZWwudmFsdWUsIGFuZEJlY2FtZSlcbiAgICB9XG4gIH1cblxuLy8gQFRyYWNlKClcbiAgYW5pbWF0aW9uU3RhcnRlZCgpIHtcbiAgICAvLyBjb25zb2xlLmxvZyh7IGFjdGl2ZVBsYWNlOiB0aGlzLl9hY3RpdmVQbGFjZU1vZGVsLnZhbHVlIH0pO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgYW5pbWF0aW9uRG9uZSgpIHtcbiAgICBpZiAodGhpcy5vbkFuaW1hdGlvbkZpbmlzaGVkSm9iKSB7XG4gICAgICB0aGlzLm9uQW5pbWF0aW9uRmluaXNoZWRKb2IoKTtcbiAgICAgIHRoaXMub25BbmltYXRpb25GaW5pc2hlZEpvYiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImFuaW1hdGlvbkVuYWJsZWQudmFsdWVcIj5cbiAgPGRpdiBjbGFzcz1cInJvdXRlci1vdXRsZXQtY29udGFpbmVyXCJcbiAgICAgICBjZGtTY3JvbGxhYmxlXG4gICAgICAgW0Byb3V0ZUFuaW1hdGlvbnNdPVwie3ZhbHVlOiBnZXRBbmltYXRpb25PcmRlcigpLCBwYXJhbXM6e2R1cmF0aW9uOiBhbmltYXRpb25EdXJhdGlvbn19XCJcbiAgICAgICAoQHJvdXRlQW5pbWF0aW9ucy5zdGFydCk9XCJhbmltYXRpb25TdGFydGVkKClcIlxuICAgICAgIChAcm91dGVBbmltYXRpb25zLmRvbmUpPVwiYW5pbWF0aW9uRG9uZSgpXCJcbiAgPlxuICAgIDxyb3V0ZXItb3V0bGV0ICNyb3V0ZXJPdXRsZXQ9XCJvdXRsZXRcIlxuICAgICAgICAgICAgICAgICAgIChhY3RpdmF0ZSk9XCJvbk91dGxldEFjdGl2YXRlZChyb3V0ZXJPdXRsZXQsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgIChkZWFjdGl2YXRlKT1cIm9uT3V0bGV0RGVhY3RpdmF0ZWQoKVwiPlxuICAgIDwvcm91dGVyLW91dGxldD5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhbmltYXRpb25FbmFibGVkLnZhbHVlXCI+XG4gIDxkaXYgY2xhc3M9XCJyb3V0ZXItb3V0bGV0LWNvbnRhaW5lclwiXG4gICAgICAgY2RrU2Nyb2xsYWJsZT5cbiAgICA8cm91dGVyLW91dGxldCAjcm91dGVyT3V0bGV0PVwib3V0bGV0XCJcbiAgICAgICAgICAgICAgICAgICAoYWN0aXZhdGUpPVwib25PdXRsZXRBY3RpdmF0ZWQocm91dGVyT3V0bGV0LCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAoZGVhY3RpdmF0ZSk9XCJvbk91dGxldERlYWN0aXZhdGVkKClcIj5cbiAgICA8L3JvdXRlci1vdXRsZXQ+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXYgIGNsYXNzPVwibm90LWF1dGhvcmlzZWQtY29tcG9uZW50LWNvbnRhaW5lclwiICpuZ0lmPVwiIWF1dGhvcmlzZWQudmFsdWVcIj5cbiAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwibm90QXV0aG9yaXNlZE5vdGljZVBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|
|
281
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2Utb3V0bGV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL2NvbXBvbmVudHMvcGxhY2Utb3V0bGV0L3BsYWNlLW91dGxldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBaUIsTUFBTSxFQUFFLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFHTCxZQUFZLEVBQ1osR0FBRyxFQUNILElBQUksRUFDSixTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLE9BQU8sRUFDUCxPQUFPLEVBQ1AsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixVQUFVLEVBRVgsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBRzdFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBYyxNQUFNLG9CQUFvQixDQUFDO0FBRWpFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUcvQyxPQUFPLEVBQUMsNEJBQTRCLEVB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QUNILENBQUM7dUdBeFBVLG9CQUFvQixtRUFpREMsZ0JBQWdCLDZCQUNoQix1Q0FBdUM7MkZBbEQ1RCxvQkFBb0Isb2hCQ3JEakMsK2lDQTJCQSxtNkJEd0JjLENBQUMsMEJBQTBCLENBQUM7O0FBSy9CO0lBREMsT0FBTyxFQUFFOztvREFDOEI7QUFHeEM7SUFEQyxpQkFBaUIsRUFBRTs7bURBQ0w7QUFLZjtJQUQyQixPQUFPLEVBQUU7O3NFQUMyQztBQUkvRTtJQURzQixnQkFBZ0IsRUFBRTs7cUVBQ2lDOzJGQWZ2RSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLENBQUMsMEJBQTBCLENBQUM7OzBCQW1EM0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxnQkFBZ0I7OzBCQUNuQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHVDQUF1Qzs7MEJBQzFELFFBQVE7OzBCQUFJLFFBQVE7NENBaER4QixRQUFRO3NCQURoQixLQUFLO2dCQUlHLE9BQU87c0JBRGYsS0FBSztnQkFNRywwQkFBMEI7c0JBRGxDLEtBQUs7dUJBQUMsMEJBQTBCO2dCQUt4Qix5QkFBeUI7c0JBRGpDLEtBQUs7dUJBQUMscUJBQXFCO2dCQUluQixZQUFZO3NCQURwQixNQUFNO2dCQUlQLFNBQVM7c0JBRFIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQW9HdEMsWUFBWTtzQkFEZixXQUFXO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50UG9ydGFsfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEluamVjdCxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTa2lwU2VsZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBCb29sZWFuVmFsdWVNb2RlbENoYWluLFxuICBDb25zdHJ1Y3RhYmxlLFxuICBEZWJ1Z0NvbnRleHQsXG4gIERzbCxcbiAgbGFuZyxcbiAgTGlzdE1vZGVsLFxuICBMaXN0TW9kZWxDaGFpbixcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFByb3hpZnksXG4gIHByb3hpZnksXG4gIFN0b3JlSW5MaXN0TW9kZWwsXG4gIFN0b3JlSW5WYWx1ZU1vZGVsLFxuICBWYWx1ZU1vZGVsLFxuICBWYWx1ZU1vZGVsQ2hhaW5cbn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuXG5pbXBvcnQge2lzTmlsfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB7UGxhY2VDb21wb25lbnR9IGZyb20gJy4uLy4uL3BsYWNlLWNvbXBvbmVudCc7XG5cbmltcG9ydCB7QVVQX1BMQUNFX0NPTkZJRywgUGxhY2VDb25maWd9IGZyb20gJy4uLy4uL3BsYWNlLWNvbmZpZyc7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSAnLi4vLi4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQge1BsYWNlUm91dGVyfSBmcm9tICcuLi8uLi9wbGFjZS1yb3V0ZXInO1xuaW1wb3J0IHtWaXNpdFNlZ21lbnR9IGZyb20gJy4uLy4uL3Zpc2l0LXNlZ21lbnQnO1xuXG5pbXBvcnQge05vdEF1dGhvcmlzZWROb3RpY2VDb21wb25lbnR9IGZyb20gJy4uL25vdC1hdXRob3Jpc2VkLW5vdGljZS9ub3QtYXV0aG9yaXNlZC1ub3RpY2UuY29tcG9uZW50JztcbmltcG9ydCB7TEVGVF9SSUdIVF9QTEFDRV9BTklNQVRJT059IGZyb20gJy4vcm91dGUtYW5pbWF0aW9ucyc7XG5cblxuZXhwb3J0IGNvbnN0IEFVUF9VTkFVVEhPUklTRURfUExBQ0VfTk9USUNFX0NPTVBPTkVOVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb25zdHJ1Y3RhYmxlPGFueT4+KCdBVVBfVU5BVVRIT1JJU0VEX1BMQUNFX0NPTVBPTkVOVCcpO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtcGxhY2Utb3V0bGV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BsYWNlLW91dGxldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BsYWNlLW91dGxldC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbTEVGVF9SSUdIVF9QTEFDRV9BTklNQVRJT05dXG59KVxuZXhwb3J0IGNsYXNzIFBsYWNlT3V0bGV0Q29tcG9uZW50IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBhbmltYXRlJCA9IHByb3hpZnkoVmFsdWVNb2RlbDxib29sZWFuPik7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5WYWx1ZU1vZGVsKClcbiAgYWNjZXNzb3IgYW5pbWF0ZSA9IHRydWU7XG5cblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgncGxhY2VBbmltYXRpb25PcmRlck1vZGVsJykgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBjdXN0b21QbGFjZUFuaW1hdGlvbk9yZGVyJCA9IHByb3hpZnkoTGlzdE1vZGVsPENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+Pik7XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3BsYWNlQW5pbWF0aW9uT3JkZXInKSBAU3RvcmVJbkxpc3RNb2RlbCgpXG4gIGFjY2Vzc29yIGN1c3RvbVBsYWNlQW5pbWF0aW9uT3JkZXI6ICBSZWFkb25seUFycmF5PENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+PjtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgcGxhY2VDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxQbGFjZUNvbXBvbmVudD4oKTtcblxuICBAVmlld0NoaWxkKCdyb3V0ZU91dGxldCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHJvdXRlck91dDogUm91dGVyT3V0bGV0O1xuXG4gIHByaXZhdGUgb25BbmltYXRpb25GaW5pc2hlZEpvYjogKCkgPT4gdm9pZDtcblxuXG4gIHByaXZhdGUgb3V0bGV0QWN0aXZhdGVkID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsKGZhbHNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZhdGVkUm91dGVNb2RlbCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxBY3RpdmF0ZWRSb3V0ZT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZlUGxhY2VNb2RlbCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxQbGFjZUNvbXBvbmVudD4oKTtcblxuICByZWFkb25seSBfYWN0aXZlUGxhY2VEZWZpbml0aW9uOiBWYWx1ZU1vZGVsQ2hhaW48UGxhY2VEZWZpbml0aW9uPjtcblxuICBwcml2YXRlIHBhcmVudE91dGxldE1vZGVsOiBNdXRhYmxlVmFsdWVNb2RlbDxQbGFjZU91dGxldENvbXBvbmVudD47XG4gIHB1YmxpYyByZWFkb25seSBhY3RpdmVQbGFjZUFuaW1hdGlvblBvc2l0aW9uOiBWYWx1ZU1vZGVsQ2hhaW48bnVtYmVyPjtcblxuICBwcml2YXRlIGluaXRpYWxQbGFjZUluZGV4OiBudW1iZXIgPSBudWxsO1xuICBwcml2YXRlIGN1cnJlbnRWaXNpdFNlZ21lbnQkOiBWYWx1ZU1vZGVsQ2hhaW48VmlzaXRTZWdtZW50PjtcbiAgcHJpdmF0ZSBfaXNQdXNoaW5nVmlzaXRUb1JvdXRlciA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgbmF2aWdhdGlvbkluUHJvZ3Jlc3M6IFZhbHVlTW9kZWxDaGFpbjxib29sZWFuPjtcblxuICBwcml2YXRlIGlzVmVyeUZpcnN0TG9hZCA9IHRydWU7XG4gIHByaXZhdGUgcGxhY2VzSW5BbmltYXRpb25PcmRlcjogTGlzdE1vZGVsQ2hhaW48Q29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4+O1xuICBwcml2YXRlIGFuaW1hdGlvblN1cHBvcnRlZDogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcbiAgcmVhZG9ubHkgYW5pbWF0aW9uRW5hYmxlZDogQm9vbGVhblZhbHVlTW9kZWxDaGFpbjtcbiAgcmVhZG9ubHkgYXV0aG9yaXNlZDogVmFsdWVNb2RlbENoYWluPGJvb2xlYW4+O1xuICByZWFkb25seSBub3RBdXRob3Jpc2VkTm90aWNlUG9ydGFsOiBDb21wb25lbnRQb3J0YWw8YW55PjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlUm91dGVyOiBQbGFjZVJvdXRlcixcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBVVBfUExBQ0VfQ09ORklHKSByZWFkb25seSBwbGFjZUNvbmZpZzogUGxhY2VDb25maWcsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVVQX1VOQVVUSE9SSVNFRF9QTEFDRV9OT1RJQ0VfQ09NUE9ORU5UKSB1bmF1dGhvcmlzZWRQbGFjZU5vdGljZTogQ29uc3RydWN0YWJsZTxhbnk+LFxuICAgICAgICAgICAgICBAU2tpcFNlbGYoKSBAT3B0aW9uYWwoKSBwYXJlbnRPdXRsZXQ6IFBsYWNlT3V0bGV0Q29tcG9uZW50KSB7XG4gICAgc3VwZXIoKTtcbiAgICBjb25zdCB7IGNoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbiB9ID0gRHNsLmRpc3Bvc2VXaXRoKHRoaXMpO1xuXG4gICAgdGhpcy5wYXJlbnRPdXRsZXRNb2RlbCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbChwYXJlbnRPdXRsZXQpO1xuXG4gICAgY29uc3QgZGVmYXVsdFBsYWNlQW5pbWF0aW9uT3JkZXIgPSBjaGFpbih0aGlzLnBhcmVudE91dGxldE1vZGVsKVxuICAgICAgLnB1bGxWYWx1ZU1vZGVsKG8gPT4gby5hY3RpdmVQbGFjZU1vZGVsKVxuICAgICAgLnBsdWNrKCdwbGFjZURlZmluaXRpb24nKVxuICAgICAgLnBsdWNrTGlzdCgnY2hpbGRyZW4nKVxuICAgICAgLnBsdWNrKCdjb21wb25lbnQnKTtcblxuICAgIGNvbnN0IGFjdGl2YXRlUGxhY2VUeXBlID0gY2hhaW4odGhpcy5hY3RpdmVQbGFjZU1vZGVsKS5tYXAocCA9PiBwLmNvbnN0cnVjdG9yIGFzIENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+KTtcblxuICAgIHRoaXMucGxhY2VzSW5BbmltYXRpb25PcmRlciA9IGNoYWluKHRoaXMuY3VzdG9tUGxhY2VBbmltYXRpb25PcmRlciQpXG4gICAgICAub3RoZXJ3aXNlKGRlZmF1bHRQbGFjZUFuaW1hdGlvbk9yZGVyKTtcblxuICAgIHRoaXMuYWN0aXZlUGxhY2VBbmltYXRpb25Qb3NpdGlvbiA9IHRoaXMucGxhY2VzSW5BbmltYXRpb25PcmRlclxuICAgICAgLnJlZHVjZUFsbCgocGxhY2VzSW5PcmRlcikgPT4ge1xuICAgICAgICBsZXQgcGxhY2VJbmRleCA9IDA7XG4gICAgICAgIGlmIChhY3RpdmF0ZVBsYWNlVHlwZS52YWx1ZSkge1xuICAgICAgICAgIHBsYWNlSW5kZXggPSBwbGFjZXNJbk9yZGVyLmluZGV4T2YoYWN0aXZhdGVQbGFjZVR5cGUudmFsdWUpO1xuICAgICAgICAgIGlmIChpc05pbCh0aGlzLmluaXRpYWxQbGFjZUluZGV4KSkge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsUGxhY2VJbmRleCA9IHBsYWNlSW5kZXg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc05pbCh0aGlzLmluaXRpYWxQbGFjZUluZGV4KSA/IDAgOiBwbGFjZUluZGV4IC0gdGhpcy5pbml0aWFsUGxhY2VJbmRleDtcbiAgICAgIH0sIHsgZGVwZW5kc09uOiBhY3RpdmF0ZVBsYWNlVHlwZSB9KTtcblxuICAgIHRoaXMuYW5pbWF0aW9uU3VwcG9ydGVkID0gdGhpcy5wbGFjZXNJbkFuaW1hdGlvbk9yZGVyLmNvdW50KCkuaXNHcmVhdGVyVGhhbigwKTtcbiAgICB0aGlzLmFuaW1hdGlvbkVuYWJsZWQgPSB2YWx1ZU9mLmFsbChcbiAgICAgIHRoaXMuYW5pbWF0ZSQsXG4gICAgICB0aGlzLmFuaW1hdGlvblN1cHBvcnRlZFxuICAgICkuYXJlVHJ1dGh5KCk7XG5cbiAgICAvLyBFeHRyYWN0IG91ciB2aXNpdCBtb2RlbCBmcm9tIHRoZSBwbGFjZSByb3V0ZXIuXG4gICAgdGhpcy5fYWN0aXZlUGxhY2VEZWZpbml0aW9uID0gY2hhaW4odGhpcy5fYWN0aXZlUGxhY2VNb2RlbCkucGx1Y2soJ3BsYWNlRGVmaW5pdGlvbicpO1xuICAgIHRoaXMuY3VycmVudFZpc2l0U2VnbWVudCQgPSBjaGFpbihwbGFjZVJvdXRlci5hY3RpdmVWaXNpdCQpLm1hcCh2aXNpdCA9PiB2aXNpdC5nZXRTZWdtZW50Rm9yKHRoaXMuX2FjdGl2ZVBsYWNlRGVmaW5pdGlvbi52YWx1ZSksIHsgZGVwZW5kc09uOiB0aGlzLl9hY3RpdmVQbGFjZURlZmluaXRpb24gfSk7XG5cbiAgICB0aGlzLm5hdmlnYXRpb25JblByb2dyZXNzID0gY2hhaW4odGhpcy5wbGFjZVJvdXRlci5uYXZpZ2F0aW9uSW5Qcm9ncmVzcyQpO1xuXG4gICAgd2hlbih0aGlzLm5hdmlnYXRpb25JblByb2dyZXNzKS5iZWNvbWVzRmFsc2V5KCgpID0+IHtcbiAgICAgIHRoaXMuY2hlY2tTdGF0ZUFuZEluaXRpYWxpc2UoKTtcbiAgICB9KTtcbiAgICB3aGVuKHRoaXMub3V0bGV0QWN0aXZhdGVkKS5iZWNvbWVzVHJ1dGh5KCgpID0+IHtcbiAgICAgIHRoaXMuY2hlY2tTdGF0ZUFuZEluaXRpYWxpc2UoKTtcbiAgICB9KTtcblxuICAgIGNoYWluKHRoaXMuX2FjdGl2ZVBsYWNlTW9kZWwpXG4gICAgICAucG9zdHBvbmVXaGlsZSh0aGlzLm5hdmlnYXRpb25JblByb2dyZXNzKVxuICAgICAgLnN1YnNjcmliZShwbGFjZSA9PiB0aGlzLnBsYWNlQ2hhbmdlZC5lbWl0KHBsYWNlKSk7XG5cbiAgICB0aGlzLmF1dGhvcmlzZWQgPSBjaGFpbihwbGFjZVJvdXRlci5hdXRoU2VydmljZS5hY2Nlc3NHdWFyZCQpLm1hcChndWFyZCA9PiBndWFyZC5pc0F1dGhvcmlzZWQodGhpcy5fYWN0aXZlUGxhY2VEZWZpbml0aW9uLnZhbHVlKSwge1xuICAgICAgZGVwZW5kc09uOiB0aGlzLl9hY3RpdmVQbGFjZURlZmluaXRpb24sXG4gICAgICBwb3N0cG9uZVdoaWxlOiBjaGFpbih0aGlzLl9hY3RpdmVQbGFjZURlZmluaXRpb24pLmlzTmlsKClcbiAgICB9KS5vdGhlcndpc2UodHJ1ZSk7IC8vIGlmIHdlIGRvbid0IGhhdmUgYSBwbGFjZSBkZWYgeWV0IHdlIG5lZWQgdG8gc2hvdyB0aGUgb3V0bGV0IHNvIHdlIGdldCBvbmUgaW5qZWN0ZWQuXG5cbiAgICB0aGlzLm5vdEF1dGhvcmlzZWROb3RpY2VQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKHVuYXV0aG9yaXNlZFBsYWNlTm90aWNlID8/IE5vdEF1dGhvcmlzZWROb3RpY2VDb21wb25lbnQpO1xuICB9XG5cbiAgZ2V0QW5pbWF0aW9uT3JkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlUGxhY2VBbmltYXRpb25Qb3NpdGlvbi52YWx1ZTtcbiAgfVxuXG4gIGdldCBhbmltYXRpb25EdXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZUNvbmZpZyAmJiB0aGlzLnBsYWNlQ29uZmlnLmFuaW1hdGlvbkR1cmF0aW9uID8gdGhpcy5wbGFjZUNvbmZpZy5hbmltYXRpb25EdXJhdGlvbiA6ICc1MDBtcyc7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5hdXRob3Jpc2VkXCIpXG4gIGdldCBpc0F1dGhvcmlzZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXV0aG9yaXNlZC52YWx1ZTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGdldCBwYXJlbnRPdXRsZXQoKTogUGxhY2VPdXRsZXRDb21wb25lbnQge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE91dGxldE1vZGVsLnZhbHVlO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZVBsYWNlTW9kZWwoKTogVmFsdWVNb2RlbDxQbGFjZUNvbXBvbmVudD4ge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVQbGFjZU1vZGVsLnJlYWRvbmx5JDtcbiAgfVxuXG4gIGdldCBhY3RpdmF0ZWRSb3V0ZU1vZGVsKCk6IFZhbHVlTW9kZWw8QWN0aXZhdGVkUm91dGU+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZhdGVkUm91dGVNb2RlbC5yZWFkb25seSQ7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvbk91dGxldEFjdGl2YXRlZChyb3V0ZXJPdXRsZXQ6IFJvdXRlck91dGxldCwgcGxhY2U6IFBsYWNlQ29tcG9uZW50KSB7XG4gICAgdGhpcy5fYWN0aXZhdGVkUm91dGVNb2RlbC52YWx1ZSA9IHJvdXRlck91dGxldC5hY3RpdmF0ZWRSb3V0ZTtcbiAgICB0aGlzLl9hY3RpdmVQbGFjZU1vZGVsLnZhbHVlID0gcGxhY2U7XG4gICAgdGhpcy52YWxpZGF0ZUFuaW1hdGlvblN0YXRlKHBsYWNlKTtcbiAgICB0aGlzLm91dGxldEFjdGl2YXRlZC52YWx1ZSA9IHRydWU7XG4gICAgdGhpcy5jaGVja1N0YXRlQW5kSW5pdGlhbGlzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUFuaW1hdGlvblN0YXRlKHBsYWNlOiBQbGFjZUNvbXBvbmVudCkge1xuICAgIGlmICh0aGlzLmFuaW1hdGUkLnZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5wbGFjZXNJbkFuaW1hdGlvbk9yZGVyLmxlbmd0aCA8IDEpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignUGxhY2VPdXRsZXQuYW5pbWF0ZSA9PT0gdHJ1ZSBidXQgcGxhY2VBbmltYXRpb25PcmRlciBoYXMgbm90IGJlZW4gc2V0LiBBbmltYXRpb24gaXMgZGlzYWJsZWQuJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIXRoaXMucGxhY2VzSW5BbmltYXRpb25PcmRlci5xdWVyeSgpLmluY2x1ZGVzKHBsYWNlLnBsYWNlRGVmaW5pdGlvbi5jb21wb25lbnQpKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgUGxhY2VPdXRsZXQuYW5pbWF0ZSA9PT0gdHJ1ZSBidXQgcGxhY2VBbmltYXRpb25PcmRlciBkb2Vzbid0IGNvbnRhaW4gJHtwbGFjZS5wbGFjZURlZmluaXRpb24uY29tcG9uZW50Lm5hbWV9LmApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25PdXRsZXREZWFjdGl2YXRlZCgpIHtcbiAgICB0aGlzLm91dGxldEFjdGl2YXRlZC52YWx1ZSA9IGZhbHNlO1xuICAgIHRoaXMuX2FjdGl2ZVBsYWNlTW9kZWwudmFsdWUgPSBudWxsO1xuICAgIHRoaXMuX2FjdGl2YXRlZFJvdXRlTW9kZWwudmFsdWUgPSBudWxsO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcHJpdmF0ZSBjaGVja1N0YXRlQW5kSW5pdGlhbGlzZSgpIHtcbiAgICBjb25zdCByb3V0ZXJWaXNpdCA9IHRoaXMuY3VycmVudFZpc2l0U2VnbWVudCQudmFsdWU7XG4gICAgY29uc3QgYWN0aXZlUGxhY2UgPSB0aGlzLmFjdGl2ZVBsYWNlTW9kZWwudmFsdWU7XG4gICAgaWYgKHJvdXRlclZpc2l0ICYmIGFjdGl2ZVBsYWNlICYmICFhY3RpdmVQbGFjZS5pc0luaXRpYWxpc2VkKCkpIHtcbiAgICAgIGlmIChyb3V0ZXJWaXNpdC5wbGFjZURlZmluaXRpb24gIT09IGFjdGl2ZVBsYWNlLnBsYWNlRGVmaW5pdGlvbikge1xuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZSgnd3JvbmcgdmlzaXQhISEnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW5pdGlhbGlzZVBsYWNlKHJvdXRlclZpc2l0LCBhY3RpdmVQbGFjZSk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpc2VQbGFjZShyb3V0ZXJWaXNpdDogVmlzaXRTZWdtZW50LCBhY3RpdmVQbGFjZTogUGxhY2VDb21wb25lbnQpIHtcbiAgICBjb25zdCB2aXNpdE1vZGVsID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFZpc2l0U2VnbWVudD4ocm91dGVyVmlzaXQpO1xuICAgIERlYnVnQ29udGV4dC50YWcodmlzaXRNb2RlbCwgYFBsYWNlT3V0bGV0Q29tcG9uZW50WyR7YWN0aXZlUGxhY2UuY29uc3RydWN0b3IubmFtZX0pXS52aXNpdE1vZGVsYCk7XG4gICAgYWN0aXZlUGxhY2UuaW5pdGlhbGlzZVZpc2l0KHJvdXRlclZpc2l0LCAoaXMsIHdhcykgPT4ge1xuICAgICAgdGhpcy5ub3RpZnlDb21wb25lbnRWaXNpdFNlZ21lbnRDaGFuZ2VkKGlzLCB3YXMpO1xuICAgIH0pO1xuICAgIGNvbnN0IGZpbmlzaFBsYWNlTG9hZCA9ICgpID0+IHtcbiAgICAgIHRoaXMuX2FjdGl2ZVBsYWNlTW9kZWwudmFsdWUuX25vdGlmeUFjdGl2ZSh0cnVlKTtcbiAgICB9O1xuICAgIGlmICghdGhpcy5hbmltYXRpb25FbmFibGVkLnZhbHVlIHx8IHRoaXMuaXNWZXJ5Rmlyc3RMb2FkKSB7XG4gICAgICAvLyBpZiBhbmltYXRpb24gaXMgZGlzYWJsZWQgb3IgdGhpcyBpcyB0aGUgdmVyeSBmaXJzdCBsb2FkIHRoZW5cbiAgICAgIC8vIHdlIHdvbid0IGdldCBvdXIgYW5pbWF0aW9uIGRvbmUgY2FsbGJhY2sgc28gd2UgZmluaXNoIHRoZVxuICAgICAgLy8gcHJvY2VzcyBoZXJlIGFuZCBub3cuXG4gICAgICB0aGlzLmlzVmVyeUZpcnN0TG9hZCA9IGZhbHNlO1xuICAgICAgZmluaXNoUGxhY2VMb2FkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25BbmltYXRpb25GaW5pc2hlZEpvYiA9IGZpbmlzaFBsYWNlTG9hZDtcbiAgICB9XG4gICAgY29uc3QgeyB3aGVuLCBjaGFpbiwgdmFsdWVPZiB9ID0gRHNsLmRpc3Bvc2VXaXRoKGFjdGl2ZVBsYWNlKTtcbiAgICB3aGVuKHRoaXMuY3VycmVudFZpc2l0U2VnbWVudCQpXG4gICAgICAuY2hhbmdlcyh2aXNpdCA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwicm91dGVyVmlzaXRNb2RlbC5jaGFuZ2VcIiwgeyByb3V0ZXJWaXNpdE1vZGVsOiB0aGlzLnJvdXRlclZpc2l0TW9kZWwudmFsdWUgfSlcbiAgICAgICAgdGhpcy5wdXNoVmlzaXRDaGFuZ2VUb0NvbXBvbmVudChhY3RpdmVQbGFjZSwgdmlzaXQpO1xuICAgICAgfSwge1xuICAgICAgICB1bmxlc3M6IHZhbHVlT2YuYW55KFxuICAgICAgICAgIHRoaXMuX2lzUHVzaGluZ1Zpc2l0VG9Sb3V0ZXIsXG4gICAgICAgICAgdGhpcy5jdXJyZW50VmlzaXRTZWdtZW50JC5pc05pbCgpXG4gICAgICAgICkuYXJlVHJ1dGh5KClcbiAgICAgIH0pO1xuICAgIC8vIGNoYWluKHRoaXMuY3VycmVudFZpc2l0U2VnbWVudCQpLnN1YnNjcmliZShpdCA9PiB7XG4gICAgLy8gICBpZiAoaXQpIHtcbiAgICAvLyAgICAgY29uc29sZS5sb2coXCJQbGFjZU91dGxldCBzZWdtZW50IHVwZGF0ZWRcIiwgaXQudG9EZWJ1Z1N0cmluZygpLCB7XG4gICAgLy8gICAgICAgaXNQdXNoaW5nOiB0aGlzLl9pc1B1c2hpbmdWaXNpdFRvUm91dGVyLnZhbHVlLFxuICAgIC8vICAgICAgIHNlZ21lbnQ6IHRoaXMuY3VycmVudFZpc2l0U2VnbWVudCQudmFsdWU/LnRvRGVidWdTdHJpbmcoKVxuICAgIC8vICAgICB9KVxuICAgIC8vICAgfVxuICAgIC8vIH0pXG4gIH1cblxuICBwcml2YXRlIHB1c2hWaXNpdENoYW5nZVRvQ29tcG9uZW50KGFjdGl2ZVBsYWNlOiBQbGFjZUNvbXBvbmVudCwgc2VnbWVudDogVmlzaXRTZWdtZW50KSB7XG4gICAgLy8gY29uc29sZS5sb2coXCJQbGFjZU91dGxldC5wdXNoVmlzaXRDaGFuZ2VUb0NvbXBvbmVudFwiLCBzZWdtZW50LnRvRGVidWdTdHJpbmcoKSk7XG4gICAgYWN0aXZlUGxhY2UudXBkYXRlVmlzaXQoc2VnbWVudCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG5vdGlmeUNvbXBvbmVudFZpc2l0U2VnbWVudENoYW5nZWQoaXM6IFZpc2l0U2VnbWVudCwgd2FzOiBWaXNpdFNlZ21lbnQpIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5faXNQdXNoaW5nVmlzaXRUb1JvdXRlci52YWx1ZSA9IHRydWU7XG4gICAgICBhd2FpdCB0aGlzLnBsYWNlUm91dGVyLm5vdGlmeVZpc2l0U2VnbWVudENoYW5nZWQoaXMsIHdhcyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX2lzUHVzaGluZ1Zpc2l0VG9Sb3V0ZXIudmFsdWUgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gc2FuaXRpc2VycyBtYXkgaGF2ZSBhZGp1c3RlZCBvdGhlciB2YWx1ZXMgaW4gdGhlIHZpc2l0IHRvIHdlIGNoZWNrIGFuZCB3cml0ZSBpdCBiYWNrLlxuICAgIGNvbnN0IGFuZEJlY2FtZSA9IHRoaXMuY3VycmVudFZpc2l0U2VnbWVudCQudmFsdWU7IC8vIHRoaXMgaXMgb2NjYXNpb25hbGx5IG51bGwuLi4gbmVlZCB0byBpbnZlc3RpZ2F0ZSBpZiB0aGF0J3MgYSBub3JtYWwgc3RhdGUgb3Igbm90LlxuICAgIC8vIGNvbnNvbGUubG9nKFwiUGxhY2VPdXRsZXQubm90aWZ5Q29tcG9uZW50VmlzaXRTZWdtZW50Q2hhbmdlZFwiLCB7IGlzLCB3YXMsIGFuZEJlY2FtZSB9KVxuICAgIGlmIChhbmRCZWNhbWUgJiYgYW5kQmVjYW1lLmhhc0NoYW5nZWRGcm9tKGlzKSkge1xuICAgICAgdGhpcy5wdXNoVmlzaXRDaGFuZ2VUb0NvbXBvbmVudCh0aGlzLmFjdGl2ZVBsYWNlTW9kZWwudmFsdWUsIGFuZEJlY2FtZSlcbiAgICB9XG4gIH1cblxuLy8gQFRyYWNlKClcbiAgYW5pbWF0aW9uU3RhcnRlZCgpIHtcbiAgICAvLyBjb25zb2xlLmxvZyh7IGFjdGl2ZVBsYWNlOiB0aGlzLl9hY3RpdmVQbGFjZU1vZGVsLnZhbHVlIH0pO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgYW5pbWF0aW9uRG9uZSgpIHtcbiAgICBpZiAodGhpcy5vbkFuaW1hdGlvbkZpbmlzaGVkSm9iKSB7XG4gICAgICB0aGlzLm9uQW5pbWF0aW9uRmluaXNoZWRKb2IoKTtcbiAgICAgIHRoaXMub25BbmltYXRpb25GaW5pc2hlZEpvYiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImFuaW1hdGlvbkVuYWJsZWQudmFsdWVcIj5cbiAgPGRpdiBjbGFzcz1cInJvdXRlci1vdXRsZXQtY29udGFpbmVyXCJcbiAgICAgICBjZGtTY3JvbGxhYmxlXG4gICAgICAgW0Byb3V0ZUFuaW1hdGlvbnNdPVwie3ZhbHVlOiBnZXRBbmltYXRpb25PcmRlcigpLCBwYXJhbXM6e2R1cmF0aW9uOiBhbmltYXRpb25EdXJhdGlvbn19XCJcbiAgICAgICAoQHJvdXRlQW5pbWF0aW9ucy5zdGFydCk9XCJhbmltYXRpb25TdGFydGVkKClcIlxuICAgICAgIChAcm91dGVBbmltYXRpb25zLmRvbmUpPVwiYW5pbWF0aW9uRG9uZSgpXCJcbiAgPlxuICAgIDxyb3V0ZXItb3V0bGV0ICNyb3V0ZXJPdXRsZXQ9XCJvdXRsZXRcIlxuICAgICAgICAgICAgICAgICAgIChhY3RpdmF0ZSk9XCJvbk91dGxldEFjdGl2YXRlZChyb3V0ZXJPdXRsZXQsICRldmVudClcIlxuICAgICAgICAgICAgICAgICAgIChkZWFjdGl2YXRlKT1cIm9uT3V0bGV0RGVhY3RpdmF0ZWQoKVwiPlxuICAgIDwvcm91dGVyLW91dGxldD5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhbmltYXRpb25FbmFibGVkLnZhbHVlXCI+XG4gIDxkaXYgY2xhc3M9XCJyb3V0ZXItb3V0bGV0LWNvbnRhaW5lclwiXG4gICAgICAgY2RrU2Nyb2xsYWJsZT5cbiAgICA8cm91dGVyLW91dGxldCAjcm91dGVyT3V0bGV0PVwib3V0bGV0XCJcbiAgICAgICAgICAgICAgICAgICAoYWN0aXZhdGUpPVwib25PdXRsZXRBY3RpdmF0ZWQocm91dGVyT3V0bGV0LCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAoZGVhY3RpdmF0ZSk9XCJvbk91dGxldERlYWN0aXZhdGVkKClcIj5cbiAgICA8L3JvdXRlci1vdXRsZXQ+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxkaXYgIGNsYXNzPVwibm90LWF1dGhvcmlzZWQtY29tcG9uZW50LWNvbnRhaW5lclwiICpuZ0lmPVwiIWF1dGhvcmlzZWQudmFsdWVcIj5cbiAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwibm90QXV0aG9yaXNlZE5vdGljZVBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|