@coolon/angular-ui-powerups 16.1.0-aplpha.137 → 16.1.0-aplpha.138
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/commands/button-renderer/button-renderer.component.mjs +17 -27
- package/esm2022/lib/components/commands/command/command.component.mjs +8 -14
- package/esm2022/lib/components/commands/group/popup-aware.component.mjs +31 -8
- package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +7 -11
- package/esm2022/lib/components/commands/group/popup-menu/more-menu.component.mjs +6 -13
- package/esm2022/lib/components/commands/group/popup-menu/popup-menu.component.mjs +6 -13
- package/esm2022/lib/components/commands/separator.component.mjs +6 -12
- package/esm2022/lib/components/file/file-download/file-download.component.mjs +13 -32
- package/fesm2022/coolon-angular-ui-powerups.mjs +147 -178
- package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
- package/lib/components/commands/button-renderer/button-renderer.component.d.ts +5 -8
- package/lib/components/commands/command/command.component.d.ts +2 -4
- package/lib/components/commands/group/popup-aware.component.d.ts +9 -4
- package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +2 -2
- package/lib/components/commands/group/popup-menu/more-menu.component.d.ts +2 -4
- package/lib/components/commands/group/popup-menu/popup-menu.component.d.ts +2 -4
- package/lib/components/commands/separator.component.d.ts +2 -4
- package/lib/components/file/file-download/file-download.component.d.ts +2 -9
- package/package.json +1 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, HostBinding, Optional } from '@angular/core';
|
|
2
2
|
import { CommandContainer } from './group/command-container';
|
|
3
3
|
import { PopupAwareComponent } from './group/popup-aware.component';
|
|
4
|
-
import { POPUP_CONTAINER } from './group/popup-container';
|
|
5
4
|
import { ToolBarComponent } from './group/tool-bar/tool-bar.component';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
import * as i1 from "./group/command-container";
|
|
@@ -11,14 +10,14 @@ import * as i2 from "@angular/material/divider";
|
|
|
11
10
|
*/
|
|
12
11
|
export class SeparatorComponent extends PopupAwareComponent {
|
|
13
12
|
containerParent;
|
|
14
|
-
constructor(
|
|
15
|
-
super(
|
|
13
|
+
constructor(containerParent) {
|
|
14
|
+
super();
|
|
16
15
|
this.containerParent = containerParent;
|
|
17
16
|
}
|
|
18
17
|
isHorizontalContainer() {
|
|
19
18
|
return this.containerParent instanceof ToolBarComponent && this.containerParent.orientation === CommandContainer.Orientation.HORIZONTAL;
|
|
20
19
|
}
|
|
21
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SeparatorComponent, deps: [{ token:
|
|
20
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SeparatorComponent, deps: [{ token: i1.CommandContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
22
21
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SeparatorComponent, selector: "aup-separator", host: { properties: { "class.horizontal-container": "this.isHorizontalContainer" } }, usesInheritance: true, ngImport: i0, template: `
|
|
23
22
|
<mat-divider [vertical]="!isHorizontalContainer()"></mat-divider>`, isInline: true, styles: ["", ":host(.horizontal-container){display:inline-flex;flex-direction:row;align-items:stretch}\n"], dependencies: [{ kind: "component", type: i2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] });
|
|
24
23
|
}
|
|
@@ -26,15 +25,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
26
25
|
type: Component,
|
|
27
26
|
args: [{ selector: 'aup-separator', template: `
|
|
28
27
|
<mat-divider [vertical]="!isHorizontalContainer()"></mat-divider>`, styles: [":host(.horizontal-container){display:inline-flex;flex-direction:row;align-items:stretch}\n"] }]
|
|
29
|
-
}], ctorParameters: function () { return [{ type:
|
|
30
|
-
type: Optional
|
|
31
|
-
}, {
|
|
32
|
-
type: Inject,
|
|
33
|
-
args: [POPUP_CONTAINER]
|
|
34
|
-
}] }, { type: i1.CommandContainer, decorators: [{
|
|
28
|
+
}], ctorParameters: function () { return [{ type: i1.CommandContainer, decorators: [{
|
|
35
29
|
type: Optional
|
|
36
30
|
}] }]; }, propDecorators: { isHorizontalContainer: [{
|
|
37
31
|
type: HostBinding,
|
|
38
32
|
args: ['class.horizontal-container']
|
|
39
33
|
}] } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwYXJhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvY29tbWFuZHMvc2VwYXJhdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFdBQVcsRUFBVSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFbEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFFckU7O0dBRUc7QUFjSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsbUJBQW1CO0lBRWhCO0lBQXpDLFlBQXlDLGVBQWtDO1FBQ3pFLEtBQUssRUFBRSxDQUFDO1FBRCtCLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtJQUUzRSxDQUFDO0lBR0QscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGVBQWUsWUFBWSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsS0FBSyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO0lBQzFJLENBQUM7dUdBVFUsa0JBQWtCOzJGQUFsQixrQkFBa0Isa0tBWG5CO3NFQUMwRDs7MkZBVXpELGtCQUFrQjtrQkFiOUIsU0FBUzsrQkFDRSxlQUFlLFlBQ2Y7c0VBQzBEOzswQkFZdkQsUUFBUTs0Q0FLckIscUJBQXFCO3NCQURwQixXQUFXO3VCQUFDLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5qZWN0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1hbmRDb250YWluZXJ9IGZyb20gJy4vZ3JvdXAvY29tbWFuZC1jb250YWluZXInO1xuaW1wb3J0IHtQb3B1cEF3YXJlQ29tcG9uZW50fSBmcm9tICcuL2dyb3VwL3BvcHVwLWF3YXJlLmNvbXBvbmVudCc7XG5pbXBvcnQge1BPUFVQX0NPTlRBSU5FUiwgUG9wdXBDb250YWluZXJ9IGZyb20gJy4vZ3JvdXAvcG9wdXAtY29udGFpbmVyJztcbmltcG9ydCB7VG9vbEJhckNvbXBvbmVudH0gZnJvbSAnLi9ncm91cC90b29sLWJhci90b29sLWJhci5jb21wb25lbnQnO1xuXG4vKipcbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1zZXBhcmF0b3InLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxtYXQtZGl2aWRlciBbdmVydGljYWxdPVwiIWlzSG9yaXpvbnRhbENvbnRhaW5lcigpXCI+PC9tYXQtZGl2aWRlcj5gLFxuICBzdHlsZXM6IFtgOmhvc3Qge1xuICB9YCxcbiAgICBgOmhvc3QoLmhvcml6b250YWwtY29udGFpbmVyKSB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgfWBcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZXBhcmF0b3JDb21wb25lbnQgZXh0ZW5kcyBQb3B1cEF3YXJlQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGNvbnRhaW5lclBhcmVudD86IENvbW1hbmRDb250YWluZXIpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ob3Jpem9udGFsLWNvbnRhaW5lcicpXG4gIGlzSG9yaXpvbnRhbENvbnRhaW5lcigpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWluZXJQYXJlbnQgaW5zdGFuY2VvZiBUb29sQmFyQ29tcG9uZW50ICYmIHRoaXMuY29udGFpbmVyUGFyZW50Lm9yaWVudGF0aW9uID09PSBDb21tYW5kQ29udGFpbmVyLk9yaWVudGF0aW9uLkhPUklaT05UQUw7XG4gIH1cblxufVxuIl19
|
|
@@ -1,26 +1,20 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Component,
|
|
3
|
-
import { MatMenu } from "@angular/material/menu";
|
|
2
|
+
import { Component, HostBinding, Input } from '@angular/core';
|
|
4
3
|
import { Dsl, proxify, Proxify, StoreInValueModel, ValueModel } from '@coolon/pectin';
|
|
5
4
|
import { HorizontalAlignment } from "../../alignment";
|
|
6
5
|
import { CommandFace as CommandFaceUtil } from '../../commands/command-face';
|
|
7
|
-
import { CommandContainer } from '../../commands/group/command-container';
|
|
8
6
|
import { PopupAwareComponent } from '../../commands/group/popup-aware.component';
|
|
9
|
-
import { POPUP_CONTAINER } from '../../commands/group/popup-container';
|
|
10
7
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "
|
|
12
|
-
import * as i2 from "@angular/material/
|
|
13
|
-
import * as i3 from "@angular/
|
|
14
|
-
import * as i4 from "@angular/material/
|
|
15
|
-
import * as i5 from "
|
|
16
|
-
import * as i6 from "../../commands/command-face/command-face.component";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "@angular/material/button";
|
|
10
|
+
import * as i3 from "@angular/material/tooltip";
|
|
11
|
+
import * as i4 from "@angular/material/menu";
|
|
12
|
+
import * as i5 from "../../commands/command-face/command-face.component";
|
|
17
13
|
// TODO: this is an ugly copy and paste hack from the Command component.
|
|
18
14
|
/**
|
|
19
15
|
*
|
|
20
16
|
*/
|
|
21
17
|
export class FileDownloadComponent extends PopupAwareComponent {
|
|
22
|
-
containerParent;
|
|
23
|
-
matMenu;
|
|
24
18
|
CommandFaceUtil = CommandFaceUtil;
|
|
25
19
|
#download$_accessor_storage = proxify((ValueModel));
|
|
26
20
|
get download$() { return this.#download$_accessor_storage; }
|
|
@@ -33,11 +27,8 @@ export class FileDownloadComponent extends PopupAwareComponent {
|
|
|
33
27
|
buttonStyle$;
|
|
34
28
|
color$;
|
|
35
29
|
tooltip$;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
super(element, popupContainer);
|
|
39
|
-
this.containerParent = containerParent;
|
|
40
|
-
this.matMenu = matMenu;
|
|
30
|
+
constructor() {
|
|
31
|
+
super();
|
|
41
32
|
const { chain } = Dsl.disposeWith(this);
|
|
42
33
|
this.faces$ = chain(this.download$).map(it => {
|
|
43
34
|
return it.icon ? it : {
|
|
@@ -50,10 +41,9 @@ export class FileDownloadComponent extends PopupAwareComponent {
|
|
|
50
41
|
this.buttonStyle$ = chain(this.download$).map(f => CommandFaceUtil.getStyleOf(f));
|
|
51
42
|
this.color$ = chain(this.download$).map(f => CommandFaceUtil.getColorOf(f));
|
|
52
43
|
this.tooltip$ = chain(this.download$).map(f => CommandFaceUtil.getTooltipOf(f));
|
|
53
|
-
this.inMenu = !!matMenu || !!popupContainer;
|
|
54
44
|
}
|
|
55
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: FileDownloadComponent, deps: [
|
|
56
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: FileDownloadComponent, selector: "aup-file-download", inputs: { download$: "download$", download: "download", alignFace: "alignFace" }, host: { properties: { "class": "this.alignFace" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!
|
|
45
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: FileDownloadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
46
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: FileDownloadComponent, selector: "aup-file-download", inputs: { download$: "download$", download: "download", alignFace: "alignFace" }, host: { properties: { "class": "this.alignFace" } }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!inPopup\">\n <ng-container [ngSwitch]=\"buttonStyle$.value\">\n <ng-container *ngSwitchCase=\"CommandFaceUtil.Style.STROKED\">\n <a mat-stroked-button [href]=\"download?.url\" [download]=\"download?.saveAs\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFaceUtil.Style.RAISED\">\n <a mat-raised-button [href]=\"download?.url\" [download]=\"download?.saveAs\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <a mat-button [href]=\"download?.url\" [download]=\"download?.saveAs\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n </ng-container>\n </ng-container>\n\n</ng-container>\n\n<ng-container *ngIf=\"inPopup\">\n <a mat-menu-item [href]=\"download?.url\" [download]=\"download?.saveAs\" [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n</ng-container>\n\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "component", type: i5.CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }] });
|
|
57
47
|
}
|
|
58
48
|
__decorate([
|
|
59
49
|
Proxify(),
|
|
@@ -65,17 +55,8 @@ __decorate([
|
|
|
65
55
|
], FileDownloadComponent.prototype, "download", null);
|
|
66
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: FileDownloadComponent, decorators: [{
|
|
67
57
|
type: Component,
|
|
68
|
-
args: [{ selector: 'aup-file-download', template: "<ng-container *ngIf=\"!
|
|
69
|
-
}], ctorParameters: function () { return [
|
|
70
|
-
type: Optional
|
|
71
|
-
}, {
|
|
72
|
-
type: Inject,
|
|
73
|
-
args: [POPUP_CONTAINER]
|
|
74
|
-
}] }, { type: i1.CommandContainer, decorators: [{
|
|
75
|
-
type: Optional
|
|
76
|
-
}] }, { type: i2.MatMenu, decorators: [{
|
|
77
|
-
type: Optional
|
|
78
|
-
}] }]; }, propDecorators: { download$: [{
|
|
58
|
+
args: [{ selector: 'aup-file-download', template: "<ng-container *ngIf=\"!inPopup\">\n <ng-container [ngSwitch]=\"buttonStyle$.value\">\n <ng-container *ngSwitchCase=\"CommandFaceUtil.Style.STROKED\">\n <a mat-stroked-button [href]=\"download?.url\" [download]=\"download?.saveAs\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFaceUtil.Style.RAISED\">\n <a mat-raised-button [href]=\"download?.url\" [download]=\"download?.saveAs\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <a mat-button [href]=\"download?.url\" [download]=\"download?.saveAs\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n </ng-container>\n </ng-container>\n\n</ng-container>\n\n<ng-container *ngIf=\"inPopup\">\n <a mat-menu-item [href]=\"download?.url\" [download]=\"download?.saveAs\" [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </a>\n</ng-container>\n\n" }]
|
|
59
|
+
}], ctorParameters: function () { return []; }, propDecorators: { download$: [{
|
|
79
60
|
type: Input
|
|
80
61
|
}], download: [{
|
|
81
62
|
type: Input
|
|
@@ -94,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
94
75
|
}
|
|
95
76
|
FileDownloadComponent.createInfo = createInfo;
|
|
96
77
|
})(FileDownloadComponent || (FileDownloadComponent = {}));
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kb3dubG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUvZmlsZS1kb3dubG9hZC9maWxlLWRvd25sb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS9maWxlLWRvd25sb2FkL2ZpbGUtZG93bmxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsV0FBVyxFQUFVLEtBQUssRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUcxRixPQUFPLEVBRUwsR0FBRyxFQUVILE9BQU8sRUFDUCxPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLFVBQVUsRUFFWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxXQUFXLElBQUksZUFBZSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7QUFHL0Usd0VBQXdFO0FBQ3hFOztHQUVHO0FBTUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG1CQUFtQjtJQUV6QyxlQUFlLEdBQUcsZUFBZSxDQUFDO0lBRzVDLDhCQUE0RCxPQUFPLENBQUMsQ0FBQSxVQUE4QyxDQUFBLENBQUMsQ0FBQztJQUFwSCxJQUFBLFNBQVMsK0NBQTJHO0lBQXBILElBQUEsU0FBUyxxREFBMkc7SUFHcEgsMkJBQTZDO0lBQTdDLElBQUEsUUFBUSw4Q0FBcUM7SUFBN0MsSUFBQSxRQUFRLG9EQUFxQztJQUl0RCxTQUFTLEdBQXdCLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztJQUVuRCxNQUFNLENBQWdEO0lBRTVDLFlBQVksQ0FBMEI7SUFDdEMsTUFBTSxDQUFnQztJQUN0QyxRQUFRLENBQTBCO0lBRXJEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFDUixNQUFNLEVBQUMsS0FBSyxFQUFDLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzNDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDcEIsR0FBRyxFQUFFO2dCQUNMLElBQUk7b0JBQ0YsT0FBTyxtQkFBbUIsQ0FBQTtnQkFDNUIsQ0FBQzthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7dUdBbkNVLHFCQUFxQjsyRkFBckIscUJBQXFCLHVOQzVCbEMseXlDQThCQTs7QURHVztJQURDLE9BQU8sRUFBRTs4QkFDQyxVQUFVO3NEQUErRjtBQUdwSDtJQURDLGlCQUFpQixFQUFFOztxREFDeUI7MkZBUjNDLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7MEVBU3BCLFNBQVM7c0JBRGpCLEtBQUs7Z0JBSUcsUUFBUTtzQkFEaEIsS0FBSztnQkFLTixTQUFTO3NCQUZSLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsT0FBTzs7QUE0QnRCLFdBQWlCLHFCQUFxQjtJQUVwQyxTQUFnQixVQUFVLENBQUMsT0FBMkQ7UUFDcEYsT0FBTztZQUNMLEdBQUcsT0FBTztZQUNWLEdBQUcsT0FBTyxDQUFDLElBQUk7U0FDaEIsQ0FBQTtJQUNILENBQUM7SUFMZSxnQ0FBVSxhQUt6QixDQUFBO0FBTUgsQ0FBQyxFQWJnQixxQkFBcUIsS0FBckIscUJBQXFCLFFBYXJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RoZW1lUGFsZXR0ZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcbmltcG9ydCB7TWF0TWVudX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcbmltcG9ydCB7XG4gIENvbW1hbmRGYWNlLFxuICBEc2wsXG4gIExpc3RNb2RlbCxcbiAgcHJveGlmeSxcbiAgUHJveGlmeSxcbiAgU3RvcmVJblZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxDaGFpblxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0hvcml6b250YWxBbGlnbm1lbnR9IGZyb20gXCIuLi8uLi9hbGlnbm1lbnRcIjtcbmltcG9ydCB7Q29tbWFuZEZhY2UgYXMgQ29tbWFuZEZhY2VVdGlsfSBmcm9tICcuLi8uLi9jb21tYW5kcy9jb21tYW5kLWZhY2UnO1xuaW1wb3J0IHtDb21tYW5kQ29udGFpbmVyfSBmcm9tICcuLi8uLi9jb21tYW5kcy9ncm91cC9jb21tYW5kLWNvbnRhaW5lcic7XG5pbXBvcnQge1BvcHVwQXdhcmVDb21wb25lbnR9IGZyb20gJy4uLy4uL2NvbW1hbmRzL2dyb3VwL3BvcHVwLWF3YXJlLmNvbXBvbmVudCc7XG5pbXBvcnQge1BPUFVQX0NPTlRBSU5FUiwgUG9wdXBDb250YWluZXJ9IGZyb20gJy4uLy4uL2NvbW1hbmRzL2dyb3VwL3BvcHVwLWNvbnRhaW5lcic7XG5cbi8vIFRPRE86IHRoaXMgaXMgYW4gdWdseSBjb3B5IGFuZCBwYXN0ZSBoYWNrIGZyb20gdGhlIENvbW1hbmQgY29tcG9uZW50LlxuLyoqXG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtZmlsZS1kb3dubG9hZCcsXG4gIHRlbXBsYXRlVXJsOiBcImZpbGUtZG93bmxvYWQuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCJmaWxlLWRvd25sb2FkLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVEb3dubG9hZENvbXBvbmVudCBleHRlbmRzIFBvcHVwQXdhcmVDb21wb25lbnQge1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBDb21tYW5kRmFjZVV0aWwgPSBDb21tYW5kRmFjZVV0aWw7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBkb3dubG9hZCQ6IFZhbHVlTW9kZWw8RmlsZURvd25sb2FkQ29tcG9uZW50LkRvd25sb2FkSW5mbz4gPSBwcm94aWZ5KFZhbHVlTW9kZWw8RmlsZURvd25sb2FkQ29tcG9uZW50LkRvd25sb2FkSW5mbz4pO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIGRvd25sb2FkOiBGaWxlRG93bmxvYWRDb21wb25lbnQuRG93bmxvYWRJbmZvO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZyhcImNsYXNzXCIpXG4gIGFsaWduRmFjZTogSG9yaXpvbnRhbEFsaWdubWVudCA9IEhvcml6b250YWxBbGlnbm1lbnQuQ0VOVEVSO1xuXG4gIHJlYWRvbmx5IGZhY2VzJDogTGlzdE1vZGVsPEZpbGVEb3dubG9hZENvbXBvbmVudC5Eb3dubG9hZEluZm8+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBidXR0b25TdHlsZSQ6IFZhbHVlTW9kZWxDaGFpbjxzdHJpbmc+O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29sb3IkOiBWYWx1ZU1vZGVsQ2hhaW48VGhlbWVQYWxldHRlPjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvb2x0aXAkOiBWYWx1ZU1vZGVsQ2hhaW48c3RyaW5nPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHtjaGFpbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG5cbiAgICB0aGlzLmZhY2VzJCA9IGNoYWluKHRoaXMuZG93bmxvYWQkKS5tYXAoaXQgPT4ge1xuICAgICAgcmV0dXJuIGl0Lmljb24gPyBpdCA6IHtcbiAgICAgICAgLi4uaXQsXG4gICAgICAgIGljb24oKSB7XG4gICAgICAgICAgcmV0dXJuICdtYXQ6ZmlsZV9kb3dubG9hZCdcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSkubWFwVG9MaXN0KCk7XG4gICAgdGhpcy5idXR0b25TdHlsZSQgPSBjaGFpbih0aGlzLmRvd25sb2FkJCkubWFwKGYgPT4gQ29tbWFuZEZhY2VVdGlsLmdldFN0eWxlT2YoZikpO1xuICAgIHRoaXMuY29sb3IkID0gY2hhaW4odGhpcy5kb3dubG9hZCQpLm1hcChmID0+IENvbW1hbmRGYWNlVXRpbC5nZXRDb2xvck9mKGYpKTtcbiAgICB0aGlzLnRvb2x0aXAkID0gY2hhaW4odGhpcy5kb3dubG9hZCQpLm1hcChmID0+IENvbW1hbmRGYWNlVXRpbC5nZXRUb29sdGlwT2YoZikpO1xuICB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBGaWxlRG93bmxvYWRDb21wb25lbnQge1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbmZvKG9wdGlvbnM6IHsgZmFjZTogQ29tbWFuZEZhY2UsIHVybDogc3RyaW5nLCBzYXZlQXM6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAuLi5vcHRpb25zLmZhY2UsXG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBEb3dubG9hZEluZm8gZXh0ZW5kcyBDb21tYW5kRmFjZSB7XG4gICAgc2F2ZUFzOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5Qb3B1cFwiPlxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJidXR0b25TdHlsZSQudmFsdWVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb21tYW5kRmFjZVV0aWwuU3R5bGUuU1RST0tFRFwiPlxuICAgICAgPGEgbWF0LXN0cm9rZWQtYnV0dG9uIFtocmVmXT1cImRvd25sb2FkPy51cmxcIiBbZG93bmxvYWRdPVwiZG93bmxvYWQ/LnNhdmVBc1wiXG4gICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwJC52YWx1ZVwiPlxuICAgICAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICAgIDwvYT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb21tYW5kRmFjZVV0aWwuU3R5bGUuUkFJU0VEXCI+XG4gICAgICA8YSBtYXQtcmFpc2VkLWJ1dHRvbiBbaHJlZl09XCJkb3dubG9hZD8udXJsXCIgW2Rvd25sb2FkXT1cImRvd25sb2FkPy5zYXZlQXNcIlxuICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICAgICAgPGF1cC1jb21tYW5kLWZhY2UgW2NsYXNzXT1cImFsaWduRmFjZVwiIFtmYWNlc109XCJmYWNlcyQudmFsdWVcIj48L2F1cC1jb21tYW5kLWZhY2U+XG4gICAgICA8L2E+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgPGEgbWF0LWJ1dHRvbiBbaHJlZl09XCJkb3dubG9hZD8udXJsXCIgW2Rvd25sb2FkXT1cImRvd25sb2FkPy5zYXZlQXNcIlxuICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcCQudmFsdWVcIj5cbiAgICAgICAgPGF1cC1jb21tYW5kLWZhY2UgW2NsYXNzXT1cImFsaWduRmFjZVwiIFtmYWNlc109XCJmYWNlcyQudmFsdWVcIj48L2F1cC1jb21tYW5kLWZhY2U+XG4gICAgICA8L2E+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuXG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImluUG9wdXBcIj5cbiAgPGEgbWF0LW1lbnUtaXRlbSBbaHJlZl09XCJkb3dubG9hZD8udXJsXCIgW2Rvd25sb2FkXT1cImRvd25sb2FkPy5zYXZlQXNcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwJC52YWx1ZVwiPlxuICAgIDxhdXAtY29tbWFuZC1mYWNlIFtjbGFzc109XCJhbGlnbkZhY2VcIiBbZmFjZXNdPVwiZmFjZXMkLnZhbHVlXCI+PC9hdXAtY29tbWFuZC1mYWNlPlxuICA8L2E+XG48L25nLWNvbnRhaW5lcj5cblxuIl19
|