@coolon/angular-ui-powerups 16.1.0-aplpha.132 → 16.1.0-aplpha.133
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/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.mjs +2 -2
- package/esm2022/lib/components/components.module.mjs +2 -2
- package/esm2022/lib/components/exports.mjs +2 -2
- package/esm2022/lib/components/file/file-download/file-download.component.mjs +89 -0
- package/fesm2022/coolon-angular-ui-powerups.mjs +4 -7
- package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
- package/lib/components/commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component.d.ts +1 -1
- package/lib/components/components.module.d.ts +1 -1
- package/lib/components/exports.d.ts +1 -1
- package/lib/components/file/{file-download.component.d.ts → file-download/file-download.component.d.ts} +11 -6
- package/package.json +1 -1
- package/esm2022/lib/components/file/file-download.component.mjs +0 -92
|
@@ -2,7 +2,7 @@ import { EventEmitter, QueryList } from "@angular/core";
|
|
|
2
2
|
import { MatMenu, MatMenuTrigger } from "@angular/material/menu";
|
|
3
3
|
import { Command, ValueModel } from "@coolon/pectin";
|
|
4
4
|
import { DisposableComponent } from "../../../../disposable-component";
|
|
5
|
-
import { FileDownloadComponent } from "../../../../file/file-download.component";
|
|
5
|
+
import { FileDownloadComponent } from "../../../../file/file-download/file-download.component";
|
|
6
6
|
import { Track } from "../../../../track";
|
|
7
7
|
import { CommandFace } from "../../../command-face";
|
|
8
8
|
import { CommandComponent } from "../../../command/command.component";
|
|
@@ -54,7 +54,7 @@ import * as i52 from "./tables/renderer/table-more-menu/table-more-menu.componen
|
|
|
54
54
|
import * as i53 from "./tables/renderer/table-more-menu/table-more-menu-popup/table-more-menu-popup.component";
|
|
55
55
|
import * as i54 from "./forms/search-input/search-input.component";
|
|
56
56
|
import * as i55 from "./tables/renderer/table-footer-row/table-footer-row.component";
|
|
57
|
-
import * as i56 from "./file/file-download.component";
|
|
57
|
+
import * as i56 from "./file/file-download/file-download.component";
|
|
58
58
|
import * as i57 from "@angular/common";
|
|
59
59
|
import * as i58 from "@angular/platform-browser/animations";
|
|
60
60
|
import * as i59 from "@angular/forms";
|
|
@@ -25,7 +25,7 @@ export * from "./commands/group/popup-menu/popup-menu.component";
|
|
|
25
25
|
export * from "./commands/group/popup-menu/popup-menu-renderer/popup-menu-renderer.component";
|
|
26
26
|
export * from "./commands/group/tool-bar/tool-bar.component";
|
|
27
27
|
export * from "./empty-state/empty-state.component";
|
|
28
|
-
export * from "./file/file-download.component";
|
|
28
|
+
export * from "./file/file-download/file-download.component";
|
|
29
29
|
export * from "./focus-container/focus-container.component";
|
|
30
30
|
export * from "./forms/abstract-input.component";
|
|
31
31
|
export * from "./forms/abstract-list-input.component";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ElementRef } from '@angular/core';
|
|
2
2
|
import { CommandFace, ListModel, ValueModel, ValueModelChain } from '@coolon/pectin';
|
|
3
|
-
import { HorizontalAlignment } from "
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
3
|
+
import { HorizontalAlignment } from "../../alignment";
|
|
4
|
+
import { CommandFace as CommandFaceUtil } from '../../commands/command-face';
|
|
5
|
+
import { CommandContainer } from '../../commands/group/command-container';
|
|
6
|
+
import { PopupAwareComponent } from '../../commands/group/popup-aware.component';
|
|
7
|
+
import { PopupContainer } from '../../commands/group/popup-container';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
/**
|
|
10
10
|
*
|
|
@@ -24,15 +24,20 @@ export declare class FileDownloadComponent extends PopupAwareComponent {
|
|
|
24
24
|
static ɵcmp: i0.ɵɵComponentDeclaration<FileDownloadComponent, "aup-file-download", never, { "download$": { "alias": "download$"; "required": false; }; "download": { "alias": "download"; "required": false; }; "alignFace": { "alias": "alignFace"; "required": false; }; }, {}, never, never, false, never>;
|
|
25
25
|
}
|
|
26
26
|
export declare namespace FileDownloadComponent {
|
|
27
|
-
function createInfo(
|
|
27
|
+
function createInfo(options: {
|
|
28
|
+
face: CommandFace;
|
|
28
29
|
url: string;
|
|
29
30
|
saveAs: string;
|
|
31
|
+
}): {
|
|
30
32
|
text?(): string;
|
|
31
33
|
icon?(): string;
|
|
32
34
|
iconPosition?(): string;
|
|
33
35
|
tooltip?(): string;
|
|
34
36
|
color?(): string;
|
|
35
37
|
style?(): string;
|
|
38
|
+
face: CommandFace;
|
|
39
|
+
url: string;
|
|
40
|
+
saveAs: string;
|
|
36
41
|
};
|
|
37
42
|
interface DownloadInfo extends CommandFace {
|
|
38
43
|
saveAs: string;
|
package/package.json
CHANGED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Component, ElementRef, HostBinding, Inject, Input, Optional } from '@angular/core';
|
|
3
|
-
import { Dsl, proxify, Proxify, StoreInValueModel, ValueModel } from '@coolon/pectin';
|
|
4
|
-
import { HorizontalAlignment } from "../alignment";
|
|
5
|
-
import { CommandContainer } from '../commands/group/command-container';
|
|
6
|
-
import { PopupAwareComponent } from '../commands/group/popup-aware.component';
|
|
7
|
-
import { POPUP_CONTAINER } from '../commands/group/popup-container';
|
|
8
|
-
import { CommandFace as CommandFaceUtil } from '../commands/command-face';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "../commands/group/command-container";
|
|
11
|
-
import * as i2 from "@angular/common";
|
|
12
|
-
import * as i3 from "@angular/material/button";
|
|
13
|
-
import * as i4 from "@angular/material/tooltip";
|
|
14
|
-
import * as i5 from "../commands/command-face/command-face.component";
|
|
15
|
-
// TODO: this is an ugly copy and paste hack from the Command component.
|
|
16
|
-
/**
|
|
17
|
-
*
|
|
18
|
-
*/
|
|
19
|
-
export class FileDownloadComponent extends PopupAwareComponent {
|
|
20
|
-
containerParent;
|
|
21
|
-
CommandFaceUtil = CommandFaceUtil;
|
|
22
|
-
#download$_accessor_storage = proxify((ValueModel));
|
|
23
|
-
get download$() { return this.#download$_accessor_storage; }
|
|
24
|
-
set download$(value) { this.#download$_accessor_storage = value; }
|
|
25
|
-
#download_accessor_storage;
|
|
26
|
-
get download() { return this.#download_accessor_storage; }
|
|
27
|
-
set download(value) { this.#download_accessor_storage = value; }
|
|
28
|
-
alignFace = HorizontalAlignment.CENTER;
|
|
29
|
-
faces$;
|
|
30
|
-
buttonStyle$;
|
|
31
|
-
color$;
|
|
32
|
-
tooltip$;
|
|
33
|
-
constructor(element, popupContainer, containerParent) {
|
|
34
|
-
super(element, popupContainer);
|
|
35
|
-
this.containerParent = containerParent;
|
|
36
|
-
const { chain } = Dsl.disposeWith(this);
|
|
37
|
-
this.faces$ = chain(this.download$).map(it => {
|
|
38
|
-
return it.icon ? it : {
|
|
39
|
-
...it,
|
|
40
|
-
icon() {
|
|
41
|
-
return 'mat:file_download';
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
}).mapToList();
|
|
45
|
-
this.buttonStyle$ = chain(this.download$).map(f => CommandFaceUtil.getStyleOf(f));
|
|
46
|
-
this.color$ = chain(this.download$).map(f => CommandFaceUtil.getColorOf(f));
|
|
47
|
-
this.tooltip$ = chain(this.download$).map(f => CommandFaceUtil.getTooltipOf(f));
|
|
48
|
-
}
|
|
49
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: FileDownloadComponent, deps: [{ token: i0.ElementRef }, { token: POPUP_CONTAINER, optional: true }, { token: i1.CommandContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
50
|
-
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 [ngSwitch]=\"buttonStyle$.value\">\n <ng-container *ngSwitchCase=\"CommandFaceUtil.Style.STROKED\">\n <a mat-stroked-button [href]=\"download?.url\" [download]=\"download?.saveAs\" [color]=\"color$.value\"\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\" [color]=\"color$.value\"\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\" [color]=\"color$.value\"\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", styles: [""], dependencies: [{ kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.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: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i5.CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }] });
|
|
51
|
-
}
|
|
52
|
-
__decorate([
|
|
53
|
-
Proxify(),
|
|
54
|
-
__metadata("design:type", ValueModel)
|
|
55
|
-
], FileDownloadComponent.prototype, "download$", null);
|
|
56
|
-
__decorate([
|
|
57
|
-
StoreInValueModel(),
|
|
58
|
-
__metadata("design:type", Object)
|
|
59
|
-
], FileDownloadComponent.prototype, "download", null);
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: FileDownloadComponent, decorators: [{
|
|
61
|
-
type: Component,
|
|
62
|
-
args: [{ selector: 'aup-file-download', template: "<ng-container [ngSwitch]=\"buttonStyle$.value\">\n <ng-container *ngSwitchCase=\"CommandFaceUtil.Style.STROKED\">\n <a mat-stroked-button [href]=\"download?.url\" [download]=\"download?.saveAs\" [color]=\"color$.value\"\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\" [color]=\"color$.value\"\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\" [color]=\"color$.value\"\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" }]
|
|
63
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
64
|
-
type: Optional
|
|
65
|
-
}, {
|
|
66
|
-
type: Inject,
|
|
67
|
-
args: [POPUP_CONTAINER]
|
|
68
|
-
}] }, { type: i1.CommandContainer, decorators: [{
|
|
69
|
-
type: Optional
|
|
70
|
-
}] }]; }, propDecorators: { download$: [{
|
|
71
|
-
type: Input
|
|
72
|
-
}], download: [{
|
|
73
|
-
type: Input
|
|
74
|
-
}], alignFace: [{
|
|
75
|
-
type: Input
|
|
76
|
-
}, {
|
|
77
|
-
type: HostBinding,
|
|
78
|
-
args: ["class"]
|
|
79
|
-
}] } });
|
|
80
|
-
(function (FileDownloadComponent) {
|
|
81
|
-
function createInfo(face, url, saveAs) {
|
|
82
|
-
const info = {
|
|
83
|
-
...face,
|
|
84
|
-
url,
|
|
85
|
-
saveAs,
|
|
86
|
-
};
|
|
87
|
-
console.log(info);
|
|
88
|
-
return info;
|
|
89
|
-
}
|
|
90
|
-
FileDownloadComponent.createInfo = createInfo;
|
|
91
|
-
})(FileDownloadComponent || (FileDownloadComponent = {}));
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kb3dubG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUvZmlsZS1kb3dubG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpbGUvZmlsZS1kb3dubG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFFTCxHQUFHLEVBR0gsT0FBTyxFQUNQLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsVUFBVSxFQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQ2pELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxlQUFlLEVBQWlCLE1BQU0sbUNBQW1DLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsSUFBSSxlQUFlLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUV6RSx3RUFBd0U7QUFDeEU7O0dBRUc7QUFNSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1CO0lBdUJuQjtJQXJCdEIsZUFBZSxHQUFHLGVBQWUsQ0FBQztJQUc1Qyw4QkFBNEQsT0FBTyxDQUFDLENBQUEsVUFBOEMsQ0FBQSxDQUFDLENBQUM7SUFBcEgsSUFBQSxTQUFTLCtDQUEyRztJQUFwSCxJQUFBLFNBQVMscURBQTJHO0lBR3BILDJCQUE2QztJQUE3QyxJQUFBLFFBQVEsOENBQXFDO0lBQTdDLElBQUEsUUFBUSxvREFBcUM7SUFJdEQsU0FBUyxHQUF3QixtQkFBbUIsQ0FBQyxNQUFNLENBQUM7SUFHbkQsTUFBTSxDQUFnRDtJQUU1QyxZQUFZLENBQTBCO0lBQ3RDLE1BQU0sQ0FBMEI7SUFDaEMsUUFBUSxDQUEwQjtJQUVyRCxZQUFZLE9BQW1CLEVBQ2tCLGNBQThCLEVBQ3RDLGVBQWtDO1FBQ3pFLEtBQUssQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFEUSxvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFFekUsTUFBTSxFQUFDLEtBQUssRUFBQyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUMzQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLEdBQUcsRUFBRTtnQkFDTCxJQUFJO29CQUNGLE9BQU8sbUJBQW1CLENBQUE7Z0JBQzVCLENBQUM7YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO3VHQXRDVSxxQkFBcUIsNENBc0JBLGVBQWU7MkZBdEJwQyxxQkFBcUIsdU5DM0JsQyw4aENBb0JBOztBRFlXO0lBREMsT0FBTyxFQUFFOzhCQUNDLFVBQVU7c0RBQStGO0FBR3BIO0lBREMsaUJBQWlCLEVBQUU7O3FEQUN5QjsyRkFSM0MscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjs7MEJBMEJoQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGVBQWU7OzBCQUNsQyxRQUFROzRDQWxCWixTQUFTO3NCQURqQixLQUFLO2dCQUlHLFFBQVE7c0JBRGhCLEtBQUs7Z0JBS04sU0FBUztzQkFGUixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLE9BQU87O0FBZ0N0QixXQUFpQixxQkFBcUI7SUFFcEMsU0FBZ0IsVUFBVSxDQUFDLElBQWlCLEVBQUUsR0FBVyxFQUFFLE1BQWM7UUFDdkUsTUFBTSxJQUFJLEdBQUc7WUFDWCxHQUFHLElBQUk7WUFDUCxHQUFHO1lBQ0gsTUFBTTtTQUNQLENBQUM7UUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQVJlLGdDQUFVLGFBUXpCLENBQUE7QUFNSCxDQUFDLEVBaEJnQixxQkFBcUIsS0FBckIscUJBQXFCLFFBZ0JyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5qZWN0LCBJbnB1dCwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29tbWFuZEZhY2UsXG4gIERzbCxcbiAgTGlzdE1vZGVsLFxuICBMaXN0TW9kZWxDaGFpbixcbiAgcHJveGlmeSxcbiAgUHJveGlmeSxcbiAgU3RvcmVJblZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxDaGFpblxufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge0hvcml6b250YWxBbGlnbm1lbnR9IGZyb20gXCIuLi9hbGlnbm1lbnRcIjtcbmltcG9ydCB7Q29tbWFuZENvbnRhaW5lcn0gZnJvbSAnLi4vY29tbWFuZHMvZ3JvdXAvY29tbWFuZC1jb250YWluZXInO1xuaW1wb3J0IHtQb3B1cEF3YXJlQ29tcG9uZW50fSBmcm9tICcuLi9jb21tYW5kcy9ncm91cC9wb3B1cC1hd2FyZS5jb21wb25lbnQnO1xuaW1wb3J0IHtQT1BVUF9DT05UQUlORVIsIFBvcHVwQ29udGFpbmVyfSBmcm9tICcuLi9jb21tYW5kcy9ncm91cC9wb3B1cC1jb250YWluZXInO1xuaW1wb3J0IHsgQ29tbWFuZEZhY2UgYXMgQ29tbWFuZEZhY2VVdGlsfSBmcm9tICcuLi9jb21tYW5kcy9jb21tYW5kLWZhY2UnO1xuXG4vLyBUT0RPOiB0aGlzIGlzIGFuIHVnbHkgY29weSBhbmQgcGFzdGUgaGFjayBmcm9tIHRoZSBDb21tYW5kIGNvbXBvbmVudC5cbi8qKlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVwLWZpbGUtZG93bmxvYWQnLFxuICB0ZW1wbGF0ZVVybDogXCJmaWxlLWRvd25sb2FkLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiZmlsZS1kb3dubG9hZC5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlRG93bmxvYWRDb21wb25lbnQgZXh0ZW5kcyBQb3B1cEF3YXJlQ29tcG9uZW50IHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgQ29tbWFuZEZhY2VVdGlsID0gQ29tbWFuZEZhY2VVdGlsO1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgZG93bmxvYWQkOiBWYWx1ZU1vZGVsPEZpbGVEb3dubG9hZENvbXBvbmVudC5Eb3dubG9hZEluZm8+ID0gcHJveGlmeShWYWx1ZU1vZGVsPEZpbGVEb3dubG9hZENvbXBvbmVudC5Eb3dubG9hZEluZm8+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBkb3dubG9hZDogRmlsZURvd25sb2FkQ29tcG9uZW50LkRvd25sb2FkSW5mbztcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKVxuICBhbGlnbkZhY2U6IEhvcml6b250YWxBbGlnbm1lbnQgPSBIb3Jpem9udGFsQWxpZ25tZW50LkNFTlRFUjtcblxuXG4gIHJlYWRvbmx5IGZhY2VzJDogTGlzdE1vZGVsPEZpbGVEb3dubG9hZENvbXBvbmVudC5Eb3dubG9hZEluZm8+O1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBidXR0b25TdHlsZSQ6IFZhbHVlTW9kZWxDaGFpbjxzdHJpbmc+O1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29sb3IkOiBWYWx1ZU1vZGVsQ2hhaW48c3RyaW5nPjtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvb2x0aXAkOiBWYWx1ZU1vZGVsQ2hhaW48c3RyaW5nPjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFBPUFVQX0NPTlRBSU5FUikgcG9wdXBDb250YWluZXI6IFBvcHVwQ29udGFpbmVyLFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGNvbnRhaW5lclBhcmVudD86IENvbW1hbmRDb250YWluZXIpIHtcbiAgICBzdXBlcihlbGVtZW50LCBwb3B1cENvbnRhaW5lcik7XG4gICAgY29uc3Qge2NoYWlufSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcblxuICAgIHRoaXMuZmFjZXMkID0gY2hhaW4odGhpcy5kb3dubG9hZCQpLm1hcChpdCA9PiB7XG4gICAgICByZXR1cm4gaXQuaWNvbiA/IGl0IDoge1xuICAgICAgICAuLi5pdCxcbiAgICAgICAgaWNvbigpIHtcbiAgICAgICAgICByZXR1cm4gJ21hdDpmaWxlX2Rvd25sb2FkJ1xuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9KS5tYXBUb0xpc3QoKTtcbiAgICB0aGlzLmJ1dHRvblN0eWxlJCA9IGNoYWluKHRoaXMuZG93bmxvYWQkKS5tYXAoZiA9PiBDb21tYW5kRmFjZVV0aWwuZ2V0U3R5bGVPZihmKSk7XG4gICAgdGhpcy5jb2xvciQgPSBjaGFpbih0aGlzLmRvd25sb2FkJCkubWFwKGYgPT4gQ29tbWFuZEZhY2VVdGlsLmdldENvbG9yT2YoZikpO1xuICAgIHRoaXMudG9vbHRpcCQgPSBjaGFpbih0aGlzLmRvd25sb2FkJCkubWFwKGYgPT4gQ29tbWFuZEZhY2VVdGlsLmdldFRvb2x0aXBPZihmKSk7XG4gIH1cblxuXG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgRmlsZURvd25sb2FkQ29tcG9uZW50IHtcblxuICBleHBvcnQgZnVuY3Rpb24gY3JlYXRlSW5mbyhmYWNlOiBDb21tYW5kRmFjZSwgdXJsOiBzdHJpbmcsIHNhdmVBczogc3RyaW5nKSB7XG4gICAgY29uc3QgaW5mbyA9IHtcbiAgICAgIC4uLmZhY2UsXG4gICAgICB1cmwsXG4gICAgICBzYXZlQXMsXG4gICAgfTtcbiAgICBjb25zb2xlLmxvZyhpbmZvKTtcbiAgICByZXR1cm4gaW5mb1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBEb3dubG9hZEluZm8gZXh0ZW5kcyBDb21tYW5kRmFjZSB7XG4gICAgc2F2ZUFzOiBzdHJpbmc7XG4gICAgdXJsOiBzdHJpbmc7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImJ1dHRvblN0eWxlJC52YWx1ZVwiPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb21tYW5kRmFjZVV0aWwuU3R5bGUuU1RST0tFRFwiPlxuICAgIDxhIG1hdC1zdHJva2VkLWJ1dHRvbiBbaHJlZl09XCJkb3dubG9hZD8udXJsXCIgW2Rvd25sb2FkXT1cImRvd25sb2FkPy5zYXZlQXNcIiBbY29sb3JdPVwiY29sb3IkLnZhbHVlXCJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAkLnZhbHVlXCI+XG4gICAgICA8YXVwLWNvbW1hbmQtZmFjZSBbY2xhc3NdPVwiYWxpZ25GYWNlXCIgW2ZhY2VzXT1cImZhY2VzJC52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICA8L2E+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJDb21tYW5kRmFjZVV0aWwuU3R5bGUuUkFJU0VEXCI+XG4gICAgPGEgbWF0LXJhaXNlZC1idXR0b24gW2hyZWZdPVwiZG93bmxvYWQ/LnVybFwiIFtkb3dubG9hZF09XCJkb3dubG9hZD8uc2F2ZUFzXCIgW2NvbG9yXT1cImNvbG9yJC52YWx1ZVwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwJC52YWx1ZVwiPlxuICAgICAgPGF1cC1jb21tYW5kLWZhY2UgW2NsYXNzXT1cImFsaWduRmFjZVwiIFtmYWNlc109XCJmYWNlcyQudmFsdWVcIj48L2F1cC1jb21tYW5kLWZhY2U+XG4gICAgPC9hPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgIDxhIG1hdC1idXR0b24gW2hyZWZdPVwiZG93bmxvYWQ/LnVybFwiIFtkb3dubG9hZF09XCJkb3dubG9hZD8uc2F2ZUFzXCIgW2NvbG9yXT1cImNvbG9yJC52YWx1ZVwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwJC52YWx1ZVwiPlxuICAgICAgPGF1cC1jb21tYW5kLWZhY2UgW2NsYXNzXT1cImFsaWduRmFjZVwiIFtmYWNlc109XCJmYWNlcyQudmFsdWVcIj48L2F1cC1jb21tYW5kLWZhY2U+XG4gICAgPC9hPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|