@cleavelandprice/ngx-lib 3.11.4 → 3.12.0
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/active-directory/gui/components/user-chooser/user-chooser.component.d.ts +20 -2
- package/active-directory/gui/components/user-form-field/user-form-field.component.d.ts +5 -4
- package/authentication/token/gui/components/login/login.component.d.ts +3 -3
- package/authentication/token/gui/components/login-form/login-form.component.d.ts +1 -2
- package/authentication/token/gui/services/authentication.service.d.ts +2 -4
- package/authentication/token/services/authentication.service.d.ts +3 -4
- package/dialog/components/base/base.component.d.ts +6 -5
- package/esm2022/active-directory/gui/components/user-chooser/user-chooser.component.mjs +60 -68
- package/esm2022/active-directory/gui/components/user-form-field/user-form-field.component.mjs +22 -27
- package/esm2022/authentication/token/gui/components/login/login.component.mjs +9 -10
- package/esm2022/authentication/token/gui/components/login-form/login-form.component.mjs +9 -10
- package/esm2022/authentication/token/gui/services/authentication.service.mjs +5 -7
- package/esm2022/authentication/token/services/authentication.service.mjs +9 -8
- package/esm2022/dialog/components/base/base.component.mjs +26 -26
- package/esm2022/lib/services/app-path-config.service.mjs +13 -10
- package/esm2022/quill/components/editor/editor.component.mjs +40 -47
- package/esm2022/quill/mention/components/editor/editor.component.mjs +30 -40
- package/esm2022/sharepoint/components/user-photo/user-photo.component.mjs +36 -0
- package/esm2022/sharepoint/pipes/user-photo-url.pipe.mjs +38 -0
- package/esm2022/sharepoint/public_api.mjs +3 -3
- package/esm2022/sharepoint/sharepoint.module.mjs +11 -11
- package/fesm2022/cleavelandprice-ngx-lib-active-directory-gui.mjs +79 -91
- package/fesm2022/cleavelandprice-ngx-lib-active-directory-gui.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token-gui.mjs +22 -26
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token-gui.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs +8 -7
- package/fesm2022/cleavelandprice-ngx-lib-authentication-token.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs +25 -25
- package/fesm2022/cleavelandprice-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs +30 -40
- package/fesm2022/cleavelandprice-ngx-lib-quill-mention.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-quill.mjs +42 -48
- package/fesm2022/cleavelandprice-ngx-lib-quill.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs +34 -35
- package/fesm2022/cleavelandprice-ngx-lib-sharepoint.mjs.map +1 -1
- package/fesm2022/cleavelandprice-ngx-lib.mjs +12 -9
- package/fesm2022/cleavelandprice-ngx-lib.mjs.map +1 -1
- package/lib/services/app-path-config.service.d.ts +1 -2
- package/package.json +7 -7
- package/quill/components/editor/editor.component.d.ts +2 -7
- package/quill/mention/components/editor/editor.component.d.ts +13 -10
- package/sharepoint/components/user-photo/user-photo.component.d.ts +15 -0
- package/sharepoint/pipes/{employee-photo-url.pipe.d.ts → user-photo-url.pipe.d.ts} +3 -3
- package/sharepoint/public_api.d.ts +2 -2
- package/sharepoint/sharepoint.module.d.ts +3 -3
- package/esm2022/sharepoint/components/employee-photo/employee-photo.component.mjs +0 -37
- package/esm2022/sharepoint/pipes/employee-photo-url.pipe.mjs +0 -38
- package/sharepoint/components/employee-photo/employee-photo.component.d.ts +0 -15
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter,
|
|
1
|
+
import { Component, EventEmitter, Output, input } from '@angular/core';
|
|
2
2
|
import { ConfirmationDialogMode } from '../../model/confirmation-dialog-mode';
|
|
3
3
|
import { DialogType } from '../../model/dialog-type';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -10,42 +10,46 @@ import * as i5 from "@angular/material/form-field";
|
|
|
10
10
|
import * as i6 from "@angular/material/input";
|
|
11
11
|
export class BaseComponent {
|
|
12
12
|
constructor() {
|
|
13
|
-
// This is so that DialogType can be
|
|
13
|
+
// This is so that DialogType can be accessible from the HTML template
|
|
14
14
|
this.DialogType = DialogType;
|
|
15
|
-
this.dialogType = DialogType.Message;
|
|
15
|
+
this.dialogType = input(DialogType.Message);
|
|
16
|
+
this.data = input.required();
|
|
16
17
|
this.closed = new EventEmitter();
|
|
17
18
|
this.ConfirmationDialogMode = ConfirmationDialogMode;
|
|
18
19
|
}
|
|
20
|
+
get #customTrueFalseTextValid() {
|
|
21
|
+
return this.data().customTrueFalseText?.length === 2;
|
|
22
|
+
}
|
|
19
23
|
get customTrueText() {
|
|
20
|
-
return this
|
|
21
|
-
this.data.customTrueFalseText[0] :
|
|
22
|
-
|
|
24
|
+
return this.#customTrueFalseTextValid ?
|
|
25
|
+
this.data().customTrueFalseText[0] :
|
|
26
|
+
undefined;
|
|
23
27
|
}
|
|
24
28
|
get customFalseText() {
|
|
25
|
-
return this
|
|
26
|
-
this.data.customTrueFalseText[1] :
|
|
27
|
-
|
|
29
|
+
return this.#customTrueFalseTextValid ?
|
|
30
|
+
this.data().customTrueFalseText[1] :
|
|
31
|
+
undefined;
|
|
28
32
|
}
|
|
29
33
|
get choices() {
|
|
30
|
-
return this.dialogType === DialogType.Choice ?
|
|
31
|
-
this.data.choices :
|
|
34
|
+
return this.dialogType() === DialogType.Choice ?
|
|
35
|
+
this.data().choices :
|
|
32
36
|
null;
|
|
33
37
|
}
|
|
34
38
|
ngOnInit() {
|
|
35
|
-
this.userInput = this.data.value;
|
|
39
|
+
this.userInput = this.data().value;
|
|
36
40
|
}
|
|
37
41
|
close() {
|
|
38
42
|
let data;
|
|
39
|
-
switch (this.dialogType) {
|
|
43
|
+
switch (this.dialogType()) {
|
|
40
44
|
case DialogType.Message:
|
|
41
|
-
data = this.data.checkboxMessage ?
|
|
45
|
+
data = this.data().checkboxMessage ?
|
|
42
46
|
{
|
|
43
47
|
checkbox: this.checkboxValue || false
|
|
44
48
|
} :
|
|
45
49
|
null;
|
|
46
50
|
break;
|
|
47
51
|
case DialogType.Input:
|
|
48
|
-
data = this.data.checkboxMessage ?
|
|
52
|
+
data = this.data().checkboxMessage ?
|
|
49
53
|
{
|
|
50
54
|
response: this.userInput,
|
|
51
55
|
checkbox: this.checkboxValue || false
|
|
@@ -53,7 +57,7 @@ export class BaseComponent {
|
|
|
53
57
|
this.userInput;
|
|
54
58
|
break;
|
|
55
59
|
case DialogType.Confirmation:
|
|
56
|
-
data = this.data.checkboxMessage ?
|
|
60
|
+
data = this.data().checkboxMessage ?
|
|
57
61
|
{
|
|
58
62
|
response: true,
|
|
59
63
|
checkbox: this.checkboxValue || false
|
|
@@ -65,8 +69,8 @@ export class BaseComponent {
|
|
|
65
69
|
}
|
|
66
70
|
cancel() {
|
|
67
71
|
let data;
|
|
68
|
-
if (this.dialogType === DialogType.Confirmation) {
|
|
69
|
-
data = this.data.checkboxMessage ?
|
|
72
|
+
if (this.dialogType() === DialogType.Confirmation) {
|
|
73
|
+
data = this.data().checkboxMessage ?
|
|
70
74
|
{
|
|
71
75
|
response: false,
|
|
72
76
|
checkbox: this.checkboxValue || false
|
|
@@ -76,16 +80,12 @@ export class BaseComponent {
|
|
|
76
80
|
this.closed.emit(data);
|
|
77
81
|
}
|
|
78
82
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
79
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: BaseComponent, selector: "cp-dialog-base", inputs: { dialogType: "dialogType", data: "data" }, outputs: { closed: "closed" }, ngImport: i0, template: "@if (data
|
|
83
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: BaseComponent, selector: "cp-dialog-base", inputs: { dialogType: { classPropertyName: "dialogType", publicName: "dialogType", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "@if (data().title) {\n <h2 mat-dialog-title [innerHTML]=\"data().title\"></h2>\n}\n\n<mat-dialog-content>\n @if (data().message) {\n <div [innerHTML]=\"data().message\"></div>\n }\n\n @if (dialogType() === DialogType.Input) {\n <mat-form-field>\n <textarea matInput [placeholder]=\"data().placeholder ?? ''\" [(ngModel)]=\"userInput\"></textarea>\n </mat-form-field>\n }\n\n @if (data().checkboxMessage) {\n <div id=\"checkbox\">\n <mat-checkbox [(ngModel)]=\"checkboxValue\">\n <span [innerHTML]=\"data().checkboxMessage\"></span>\n </mat-checkbox>\n </div>\n }\n</mat-dialog-content>\n\n<mat-dialog-actions>\n @if (dialogType() !== DialogType.Choice) {\n <button mat-raised-button (click)=\"close()\" [disabled]=\"dialogType() === DialogType.Input && !userInput\">\n <span>\n @switch (data().mode) {\n @case (ConfirmationDialogMode.YesNo) {\n <span>Yes</span>\n }\n @case (ConfirmationDialogMode.TrueFalse) {\n <span>True</span>\n }\n @case (ConfirmationDialogMode.Custom) {\n <span>{{ customTrueText }}</span>\n }\n @default {\n <span>OK</span>\n }\n }\n </span>\n </button>\n @if (dialogType() !== DialogType.Message) {\n <button mat-raised-button (click)=\"cancel()\">\n <span>\n @switch (data().mode) {\n @case (ConfirmationDialogMode.YesNo) {\n <span>No</span>\n }\n @case (ConfirmationDialogMode.TrueFalse) {\n <span>False</span>\n }\n @case (ConfirmationDialogMode.Custom) {\n <span>{{ customFalseText }}</span>\n }\n @default {\n <span>Cancel</span>\n }\n }\n </span>\n </button>\n }\n }\n\n @if (dialogType() === DialogType.Choice) {\n @for (choice of choices; track choice; let i = $index) {\n <button mat-raised-button [matDialogClose]=\"i\">\n <span>{{ choice }}</span>\n </button>\n }\n }\n</mat-dialog-actions>", styles: ["mat-form-field{margin-top:2em;width:100%}#checkbox{margin:2em 0}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
|
|
80
84
|
}
|
|
81
85
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: BaseComponent, decorators: [{
|
|
82
86
|
type: Component,
|
|
83
|
-
args: [{ selector: 'cp-dialog-base', template: "@if (data
|
|
84
|
-
}], propDecorators: {
|
|
85
|
-
type: Input
|
|
86
|
-
}], data: [{
|
|
87
|
-
type: Input
|
|
88
|
-
}], closed: [{
|
|
87
|
+
args: [{ selector: 'cp-dialog-base', template: "@if (data().title) {\n <h2 mat-dialog-title [innerHTML]=\"data().title\"></h2>\n}\n\n<mat-dialog-content>\n @if (data().message) {\n <div [innerHTML]=\"data().message\"></div>\n }\n\n @if (dialogType() === DialogType.Input) {\n <mat-form-field>\n <textarea matInput [placeholder]=\"data().placeholder ?? ''\" [(ngModel)]=\"userInput\"></textarea>\n </mat-form-field>\n }\n\n @if (data().checkboxMessage) {\n <div id=\"checkbox\">\n <mat-checkbox [(ngModel)]=\"checkboxValue\">\n <span [innerHTML]=\"data().checkboxMessage\"></span>\n </mat-checkbox>\n </div>\n }\n</mat-dialog-content>\n\n<mat-dialog-actions>\n @if (dialogType() !== DialogType.Choice) {\n <button mat-raised-button (click)=\"close()\" [disabled]=\"dialogType() === DialogType.Input && !userInput\">\n <span>\n @switch (data().mode) {\n @case (ConfirmationDialogMode.YesNo) {\n <span>Yes</span>\n }\n @case (ConfirmationDialogMode.TrueFalse) {\n <span>True</span>\n }\n @case (ConfirmationDialogMode.Custom) {\n <span>{{ customTrueText }}</span>\n }\n @default {\n <span>OK</span>\n }\n }\n </span>\n </button>\n @if (dialogType() !== DialogType.Message) {\n <button mat-raised-button (click)=\"cancel()\">\n <span>\n @switch (data().mode) {\n @case (ConfirmationDialogMode.YesNo) {\n <span>No</span>\n }\n @case (ConfirmationDialogMode.TrueFalse) {\n <span>False</span>\n }\n @case (ConfirmationDialogMode.Custom) {\n <span>{{ customFalseText }}</span>\n }\n @default {\n <span>Cancel</span>\n }\n }\n </span>\n </button>\n }\n }\n\n @if (dialogType() === DialogType.Choice) {\n @for (choice of choices; track choice; let i = $index) {\n <button mat-raised-button [matDialogClose]=\"i\">\n <span>{{ choice }}</span>\n </button>\n }\n }\n</mat-dialog-actions>", styles: ["mat-form-field{margin-top:2em;width:100%}#checkbox{margin:2em 0}\n"] }]
|
|
88
|
+
}], propDecorators: { closed: [{
|
|
89
89
|
type: Output
|
|
90
90
|
}] } });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9kaWFsb2cvc3JjL2NvbXBvbmVudHMvYmFzZS9iYXNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2RpYWxvZy9zcmMvY29tcG9uZW50cy9iYXNlL2Jhc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUc5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBT3JELE1BQU0sT0FBTyxhQUFhO0lBTDFCO1FBTUUsOEVBQThFO1FBQzlFLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFDZixlQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUUvQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUUzQywyQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQztLQTBFakQ7SUFwRUMsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUM7SUFDVCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUM7SUFDVCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsSUFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUM7SUFDVCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLElBQVMsQ0FBQztRQUVkLFFBQVEsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RCLEtBQUssVUFBVSxDQUFDLE9BQU87Z0JBQ25CLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUM5Qjt3QkFDSSxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLO3FCQUN4QyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDO2dCQUNULE1BQU07WUFDVixLQUFLLFVBQVUsQ0FBQyxLQUFLO2dCQUNqQixJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDOUI7d0JBQ0ksUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO3dCQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLO3FCQUN4QyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDbkIsTUFBTTtZQUNWLEtBQUssVUFBVSxDQUFDLFlBQVk7Z0JBQ3hCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUM5Qjt3QkFDSSxRQUFRLEVBQUUsSUFBSTt3QkFDZCxRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLO3FCQUN4QyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDO2dCQUNULE1BQU07UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQVMsQ0FBQztRQUVkLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDOUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQzlCO29CQUNJLFFBQVEsRUFBRSxLQUFLO29CQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxJQUFJLEtBQUs7aUJBQ3hDLENBQUMsQ0FBQztnQkFDSCxLQUFLLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FoRlUsYUFBYTtrR0FBYixhQUFhLHlJQ1oxQiw0akVBeUVxQjs7MkZEN0RSLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsZ0JBQWdCOzhCQU9qQixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dNb2RlIH0gZnJvbSAnLi4vLi4vbW9kZWwvY29uZmlybWF0aW9uLWRpYWxvZy1tb2RlJztcclxuaW1wb3J0IHsgRGlhbG9nQmFzZURhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctYmFzZS1kYXRhJztcclxuaW1wb3J0IHsgRGlhbG9nQ2hvaWNlRGF0YSB9IGZyb20gJy4uLy4uL21vZGVsL2RpYWxvZy1jaG9pY2UtZGF0YSc7XHJcbmltcG9ydCB7IERpYWxvZ1R5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctdHlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NwLWRpYWxvZy1iYXNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmFzZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmFzZS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vIFRoaXMgaXMgc28gdGhhdCBEaWFsb2dUeXBlIGNhbiBiZSBwdWJsaXNoIGFjY2Vzc2libGUgZnJvbSB0aGUgSFRNTCB0ZW1wbGF0ZVxyXG4gIERpYWxvZ1R5cGUgPSBEaWFsb2dUeXBlO1xyXG4gIEBJbnB1dCgpIGRpYWxvZ1R5cGUgPSBEaWFsb2dUeXBlLk1lc3NhZ2U7XHJcbiAgQElucHV0KCkgZGF0YSE6IERpYWxvZ0Jhc2VEYXRhO1xyXG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQ29uZmlybWF0aW9uRGlhbG9nTW9kZSA9IENvbmZpcm1hdGlvbkRpYWxvZ01vZGU7XHJcblxyXG4gIC8vIEZvcm0gdmFsdWVzXHJcbiAgdXNlcklucHV0Pzogc3RyaW5nO1xyXG4gIGNoZWNrYm94VmFsdWUhOiBib29sZWFuO1xyXG5cclxuICBnZXQgY3VzdG9tVHJ1ZVRleHQoKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhLmN1c3RvbVRydWVGYWxzZVRleHQgP1xyXG4gICAgICB0aGlzLmRhdGEuY3VzdG9tVHJ1ZUZhbHNlVGV4dFswXSA6XHJcbiAgICAgIG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXQgY3VzdG9tRmFsc2VUZXh0KCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5jdXN0b21UcnVlRmFsc2VUZXh0ID9cclxuICAgICAgdGhpcy5kYXRhLmN1c3RvbVRydWVGYWxzZVRleHRbMV0gOlxyXG4gICAgICBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNob2ljZXMoKTogc3RyaW5nW10gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmRpYWxvZ1R5cGUgPT09IERpYWxvZ1R5cGUuQ2hvaWNlID9cclxuICAgICAgKHRoaXMuZGF0YSBhcyBEaWFsb2dDaG9pY2VEYXRhKS5jaG9pY2VzIDpcclxuICAgICAgbnVsbDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy51c2VySW5wdXQgPSB0aGlzLmRhdGEudmFsdWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICAgIGxldCBkYXRhOiBhbnk7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLmRpYWxvZ1R5cGUpIHtcclxuICAgICAgICBjYXNlIERpYWxvZ1R5cGUuTWVzc2FnZTpcclxuICAgICAgICAgICAgZGF0YSA9IHRoaXMuZGF0YS5jaGVja2JveE1lc3NhZ2UgP1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrYm94OiB0aGlzLmNoZWNrYm94VmFsdWUgfHwgZmFsc2VcclxuICAgICAgICAgICAgICAgIH0gOlxyXG4gICAgICAgICAgICAgICAgbnVsbDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBEaWFsb2dUeXBlLklucHV0OlxyXG4gICAgICAgICAgICBkYXRhID0gdGhpcy5kYXRhLmNoZWNrYm94TWVzc2FnZSA/XHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6IHRoaXMudXNlcklucHV0LFxyXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrYm94OiB0aGlzLmNoZWNrYm94VmFsdWUgfHwgZmFsc2VcclxuICAgICAgICAgICAgICAgIH0gOlxyXG4gICAgICAgICAgICAgICAgdGhpcy51c2VySW5wdXQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGlhbG9nVHlwZS5Db25maXJtYXRpb246XHJcbiAgICAgICAgICAgIGRhdGEgPSB0aGlzLmRhdGEuY2hlY2tib3hNZXNzYWdlID9cclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICBjaGVja2JveDogdGhpcy5jaGVja2JveFZhbHVlIHx8IGZhbHNlXHJcbiAgICAgICAgICAgICAgICB9IDpcclxuICAgICAgICAgICAgICAgIHRydWU7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2xvc2VkLmVtaXQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICBsZXQgZGF0YTogYW55O1xyXG5cclxuICAgIGlmICh0aGlzLmRpYWxvZ1R5cGUgPT09IERpYWxvZ1R5cGUuQ29uZmlybWF0aW9uKSB7XHJcbiAgICAgICAgZGF0YSA9IHRoaXMuZGF0YS5jaGVja2JveE1lc3NhZ2UgP1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBjaGVja2JveDogdGhpcy5jaGVja2JveFZhbHVlIHx8IGZhbHNlXHJcbiAgICAgICAgICAgIH0gOlxyXG4gICAgICAgICAgICBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNsb3NlZC5lbWl0KGRhdGEpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKGRhdGE/LnRpdGxlKSB7XG4gIDxoMiBtYXQtZGlhbG9nLXRpdGxlIFtpbm5lckhUTUxdPVwiZGF0YS50aXRsZVwiPjwvaDI+XG59XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIEBpZiAoZGF0YT8ubWVzc2FnZSkge1xuICAgIDxkaXYgW2lubmVySFRNTF09XCJkYXRhLm1lc3NhZ2VcIj48L2Rpdj5cbiAgfVxuXG4gIEBpZiAoZGlhbG9nVHlwZSA9PT0gRGlhbG9nVHlwZS5JbnB1dCkge1xuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwiZGF0YS5wbGFjZWhvbGRlciA/PyAnJ1wiIFsobmdNb2RlbCldPVwidXNlcklucHV0XCI+PC90ZXh0YXJlYT5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICB9XG5cbiAgQGlmIChkYXRhPy5jaGVja2JveE1lc3NhZ2UpIHtcbiAgICA8ZGl2IGlkPVwiY2hlY2tib3hcIj5cbiAgICAgIDxtYXQtY2hlY2tib3ggWyhuZ01vZGVsKV09XCJjaGVja2JveFZhbHVlXCI+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiZGF0YS5jaGVja2JveE1lc3NhZ2VcIj48L3NwYW4+XG4gICAgICA8L21hdC1jaGVja2JveD5cbiAgICA8L2Rpdj5cbiAgfVxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gIEBpZiAoZGlhbG9nVHlwZSAhPT0gRGlhbG9nVHlwZS5DaG9pY2UpIHtcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgW2Rpc2FibGVkXT1cImRpYWxvZ1R5cGUgPT09IERpYWxvZ1R5cGUuSW5wdXQgJiYgIXVzZXJJbnB1dFwiPlxuICAgICAgPHNwYW4+XG4gICAgICAgIEBzd2l0Y2ggKGRhdGEubW9kZSkge1xuICAgICAgICAgIEBjYXNlIChDb25maXJtYXRpb25EaWFsb2dNb2RlLlllc05vKSB7XG4gICAgICAgICAgICA8c3Bhbj5ZZXM8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChDb25maXJtYXRpb25EaWFsb2dNb2RlLlRydWVGYWxzZSkge1xuICAgICAgICAgICAgPHNwYW4+VHJ1ZTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKENvbmZpcm1hdGlvbkRpYWxvZ01vZGUuQ3VzdG9tKSB7XG4gICAgICAgICAgICA8c3Bhbj57eyBjdXN0b21UcnVlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgPHNwYW4+T0s8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgQGlmIChkaWFsb2dUeXBlICE9PSBEaWFsb2dUeXBlLk1lc3NhZ2UpIHtcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCI+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIEBzd2l0Y2ggKGRhdGEubW9kZSkge1xuICAgICAgICAgICAgQGNhc2UgKENvbmZpcm1hdGlvbkRpYWxvZ01vZGUuWWVzTm8pIHtcbiAgICAgICAgICAgICAgPHNwYW4+Tm88L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoQ29uZmlybWF0aW9uRGlhbG9nTW9kZS5UcnVlRmFsc2UpIHtcbiAgICAgICAgICAgICAgPHNwYW4+RmFsc2U8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoQ29uZmlybWF0aW9uRGlhbG9nTW9kZS5DdXN0b20pIHtcbiAgICAgICAgICAgICAgPHNwYW4+e3sgY3VzdG9tRmFsc2VUZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICA8c3Bhbj5DYW5jZWw8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIH1cblxuICBAaWYgKGRpYWxvZ1R5cGUgPT09IERpYWxvZ1R5cGUuQ2hvaWNlKSB7XG4gICAgQGZvciAoY2hvaWNlIG9mIGNob2ljZXM7IHRyYWNrIGNob2ljZTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gW21hdERpYWxvZ0Nsb3NlXT1cImlcIj5cbiAgICAgICAgPHNwYW4+e3sgY2hvaWNlIH19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICB9XG48L21hdC1kaWFsb2ctYWN0aW9ucz4iXX0=
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9kaWFsb2cvc3JjL2NvbXBvbmVudHMvYmFzZS9iYXNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2RpYWxvZy9zcmMvY29tcG9uZW50cy9iYXNlL2Jhc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUc5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7O0FBT3JELE1BQU0sT0FBTyxhQUFhO0lBTDFCO1FBTUUsc0VBQXNFO1FBQ3RFLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFDeEIsZUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWtCLENBQUM7UUFDOUIsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFM0MsMkJBQXNCLEdBQUcsc0JBQXNCLENBQUM7S0E4RWpEO0lBeEVDLElBQUkseUJBQXlCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLG1CQUFtQixFQUFFLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxtQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLFNBQVMsQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsbUJBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxTQUFTLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxJQUFJLEVBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDM0MsSUFBSSxDQUFDO0lBQ1QsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLElBQVMsQ0FBQztRQUVkLFFBQVEsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDeEIsS0FBSyxVQUFVLENBQUMsT0FBTztnQkFDbkIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDaEM7d0JBQ0ksUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLElBQUksS0FBSztxQkFDeEMsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQztnQkFDVCxNQUFNO1lBQ1YsS0FBSyxVQUFVLENBQUMsS0FBSztnQkFDakIsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDaEM7d0JBQ0ksUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTO3dCQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxLQUFLO3FCQUN4QyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDbkIsTUFBTTtZQUNWLEtBQUssVUFBVSxDQUFDLFlBQVk7Z0JBQ3hCLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7b0JBQ2hDO3dCQUNJLFFBQVEsRUFBRSxJQUFJO3dCQUNkLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxJQUFJLEtBQUs7cUJBQ3hDLENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUM7Z0JBQ1QsTUFBTTtRQUNkLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBUyxDQUFDO1FBRWQsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2hELElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ2hDO29CQUNJLFFBQVEsRUFBRSxLQUFLO29CQUNmLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxJQUFJLEtBQUs7aUJBQ3hDLENBQUMsQ0FBQztnQkFDSCxLQUFLLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQzs4R0FwRlUsYUFBYTtrR0FBYixhQUFhLDRWQ1oxQixxbEVBeUVxQjs7MkZEN0RSLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsZ0JBQWdCOzhCQVNoQixNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBDb25maXJtYXRpb25EaWFsb2dNb2RlIH0gZnJvbSAnLi4vLi4vbW9kZWwvY29uZmlybWF0aW9uLWRpYWxvZy1tb2RlJztcclxuaW1wb3J0IHsgRGlhbG9nQmFzZURhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctYmFzZS1kYXRhJztcclxuaW1wb3J0IHsgRGlhbG9nQ2hvaWNlRGF0YSB9IGZyb20gJy4uLy4uL21vZGVsL2RpYWxvZy1jaG9pY2UtZGF0YSc7XHJcbmltcG9ydCB7IERpYWxvZ1R5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctdHlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NwLWRpYWxvZy1iYXNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYmFzZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmFzZS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8vIFRoaXMgaXMgc28gdGhhdCBEaWFsb2dUeXBlIGNhbiBiZSBhY2Nlc3NpYmxlIGZyb20gdGhlIEhUTUwgdGVtcGxhdGVcclxuICBEaWFsb2dUeXBlID0gRGlhbG9nVHlwZTtcclxuICBkaWFsb2dUeXBlID0gaW5wdXQoRGlhbG9nVHlwZS5NZXNzYWdlKTtcclxuICBkYXRhID0gaW5wdXQucmVxdWlyZWQ8RGlhbG9nQmFzZURhdGE+KCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBDb25maXJtYXRpb25EaWFsb2dNb2RlID0gQ29uZmlybWF0aW9uRGlhbG9nTW9kZTtcclxuXHJcbiAgLy8gRm9ybSB2YWx1ZXNcclxuICB1c2VySW5wdXQ/OiBzdHJpbmc7XHJcbiAgY2hlY2tib3hWYWx1ZSE6IGJvb2xlYW47XHJcblxyXG4gIGdldCAjY3VzdG9tVHJ1ZUZhbHNlVGV4dFZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YSgpLmN1c3RvbVRydWVGYWxzZVRleHQ/Lmxlbmd0aCA9PT0gMjtcclxuICB9XHJcblxyXG4gIGdldCBjdXN0b21UcnVlVGV4dCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuI2N1c3RvbVRydWVGYWxzZVRleHRWYWxpZCA/XHJcbiAgICAgIHRoaXMuZGF0YSgpLmN1c3RvbVRydWVGYWxzZVRleHQhWzBdIDpcclxuICAgICAgdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1c3RvbUZhbHNlVGV4dCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuI2N1c3RvbVRydWVGYWxzZVRleHRWYWxpZCA/XHJcbiAgICAgIHRoaXMuZGF0YSgpLmN1c3RvbVRydWVGYWxzZVRleHQhWzFdIDpcclxuICAgICAgdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNob2ljZXMoKTogc3RyaW5nW10gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmRpYWxvZ1R5cGUoKSA9PT0gRGlhbG9nVHlwZS5DaG9pY2UgP1xyXG4gICAgICAodGhpcy5kYXRhKCkgYXMgRGlhbG9nQ2hvaWNlRGF0YSkuY2hvaWNlcyA6XHJcbiAgICAgIG51bGw7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudXNlcklucHV0ID0gdGhpcy5kYXRhKCkudmFsdWU7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpOiB2b2lkIHtcclxuICAgIGxldCBkYXRhOiBhbnk7XHJcblxyXG4gICAgc3dpdGNoICh0aGlzLmRpYWxvZ1R5cGUoKSkge1xyXG4gICAgICAgIGNhc2UgRGlhbG9nVHlwZS5NZXNzYWdlOlxyXG4gICAgICAgICAgICBkYXRhID0gdGhpcy5kYXRhKCkuY2hlY2tib3hNZXNzYWdlID9cclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBjaGVja2JveDogdGhpcy5jaGVja2JveFZhbHVlIHx8IGZhbHNlXHJcbiAgICAgICAgICAgICAgICB9IDpcclxuICAgICAgICAgICAgICAgIG51bGw7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGlhbG9nVHlwZS5JbnB1dDpcclxuICAgICAgICAgICAgZGF0YSA9IHRoaXMuZGF0YSgpLmNoZWNrYm94TWVzc2FnZSA/XHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6IHRoaXMudXNlcklucHV0LFxyXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrYm94OiB0aGlzLmNoZWNrYm94VmFsdWUgfHwgZmFsc2VcclxuICAgICAgICAgICAgICAgIH0gOlxyXG4gICAgICAgICAgICAgICAgdGhpcy51c2VySW5wdXQ7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgRGlhbG9nVHlwZS5Db25maXJtYXRpb246XHJcbiAgICAgICAgICAgIGRhdGEgPSB0aGlzLmRhdGEoKS5jaGVja2JveE1lc3NhZ2UgP1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIGNoZWNrYm94OiB0aGlzLmNoZWNrYm94VmFsdWUgfHwgZmFsc2VcclxuICAgICAgICAgICAgICAgIH0gOlxyXG4gICAgICAgICAgICAgICAgdHJ1ZTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jbG9zZWQuZW1pdChkYXRhKTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpOiB2b2lkIHtcclxuICAgIGxldCBkYXRhOiBhbnk7XHJcblxyXG4gICAgaWYgKHRoaXMuZGlhbG9nVHlwZSgpID09PSBEaWFsb2dUeXBlLkNvbmZpcm1hdGlvbikge1xyXG4gICAgICAgIGRhdGEgPSB0aGlzLmRhdGEoKS5jaGVja2JveE1lc3NhZ2UgP1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICByZXNwb25zZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBjaGVja2JveDogdGhpcy5jaGVja2JveFZhbHVlIHx8IGZhbHNlXHJcbiAgICAgICAgICAgIH0gOlxyXG4gICAgICAgICAgICBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNsb3NlZC5lbWl0KGRhdGEpO1xyXG4gIH1cclxufVxyXG4iLCJAaWYgKGRhdGEoKS50aXRsZSkge1xuICA8aDIgbWF0LWRpYWxvZy10aXRsZSBbaW5uZXJIVE1MXT1cImRhdGEoKS50aXRsZVwiPjwvaDI+XG59XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIEBpZiAoZGF0YSgpLm1lc3NhZ2UpIHtcbiAgICA8ZGl2IFtpbm5lckhUTUxdPVwiZGF0YSgpLm1lc3NhZ2VcIj48L2Rpdj5cbiAgfVxuXG4gIEBpZiAoZGlhbG9nVHlwZSgpID09PSBEaWFsb2dUeXBlLklucHV0KSB7XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPHRleHRhcmVhIG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCJkYXRhKCkucGxhY2Vob2xkZXIgPz8gJydcIiBbKG5nTW9kZWwpXT1cInVzZXJJbnB1dFwiPjwvdGV4dGFyZWE+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgfVxuXG4gIEBpZiAoZGF0YSgpLmNoZWNrYm94TWVzc2FnZSkge1xuICAgIDxkaXYgaWQ9XCJjaGVja2JveFwiPlxuICAgICAgPG1hdC1jaGVja2JveCBbKG5nTW9kZWwpXT1cImNoZWNrYm94VmFsdWVcIj5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJkYXRhKCkuY2hlY2tib3hNZXNzYWdlXCI+PC9zcGFuPlxuICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgPC9kaXY+XG4gIH1cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zPlxuICBAaWYgKGRpYWxvZ1R5cGUoKSAhPT0gRGlhbG9nVHlwZS5DaG9pY2UpIHtcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJjbG9zZSgpXCIgW2Rpc2FibGVkXT1cImRpYWxvZ1R5cGUoKSA9PT0gRGlhbG9nVHlwZS5JbnB1dCAmJiAhdXNlcklucHV0XCI+XG4gICAgICA8c3Bhbj5cbiAgICAgICAgQHN3aXRjaCAoZGF0YSgpLm1vZGUpIHtcbiAgICAgICAgICBAY2FzZSAoQ29uZmlybWF0aW9uRGlhbG9nTW9kZS5ZZXNObykge1xuICAgICAgICAgICAgPHNwYW4+WWVzPC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoQ29uZmlybWF0aW9uRGlhbG9nTW9kZS5UcnVlRmFsc2UpIHtcbiAgICAgICAgICAgIDxzcGFuPlRydWU8L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChDb25maXJtYXRpb25EaWFsb2dNb2RlLkN1c3RvbSkge1xuICAgICAgICAgICAgPHNwYW4+e3sgY3VzdG9tVHJ1ZVRleHQgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgIDxzcGFuPk9LPC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIEBpZiAoZGlhbG9nVHlwZSgpICE9PSBEaWFsb2dUeXBlLk1lc3NhZ2UpIHtcbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCI+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIEBzd2l0Y2ggKGRhdGEoKS5tb2RlKSB7XG4gICAgICAgICAgICBAY2FzZSAoQ29uZmlybWF0aW9uRGlhbG9nTW9kZS5ZZXNObykge1xuICAgICAgICAgICAgICA8c3Bhbj5Obzwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlIChDb25maXJtYXRpb25EaWFsb2dNb2RlLlRydWVGYWxzZSkge1xuICAgICAgICAgICAgICA8c3Bhbj5GYWxzZTwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlIChDb25maXJtYXRpb25EaWFsb2dNb2RlLkN1c3RvbSkge1xuICAgICAgICAgICAgICA8c3Bhbj57eyBjdXN0b21GYWxzZVRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgIDxzcGFuPkNhbmNlbDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgfVxuXG4gIEBpZiAoZGlhbG9nVHlwZSgpID09PSBEaWFsb2dUeXBlLkNob2ljZSkge1xuICAgIEBmb3IgKGNob2ljZSBvZiBjaG9pY2VzOyB0cmFjayBjaG9pY2U7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIFttYXREaWFsb2dDbG9zZV09XCJpXCI+XG4gICAgICAgIDxzcGFuPnt7IGNob2ljZSB9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgfVxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+Il19
|
|
@@ -7,28 +7,31 @@ export class AppPathConfigService {
|
|
|
7
7
|
//#region Services
|
|
8
8
|
this.config = inject(ServiceConfig, { optional: true }) ?? new ServiceConfig();
|
|
9
9
|
this.http = inject(HttpClient);
|
|
10
|
-
|
|
10
|
+
//#endregion
|
|
11
|
+
this.#url = `${this.config.apiUrl}/apppathconfigs`;
|
|
11
12
|
}
|
|
13
|
+
//#endregion
|
|
14
|
+
#url;
|
|
12
15
|
getAll() {
|
|
13
|
-
return this.http.get(this
|
|
16
|
+
return this.http.get(this.#url);
|
|
14
17
|
}
|
|
15
18
|
getById(id) {
|
|
16
|
-
return this.http.get(`${this
|
|
19
|
+
return this.http.get(`${this.#url}/${id}`);
|
|
17
20
|
}
|
|
18
21
|
getByAppId(id) {
|
|
19
|
-
return this.http.get(`${this
|
|
22
|
+
return this.http.get(`${this.#url}/appid/${id}`);
|
|
20
23
|
}
|
|
21
24
|
getByApp(name) {
|
|
22
|
-
return this.http.get(`${this
|
|
25
|
+
return this.http.get(`${this.#url}/app/${name}`);
|
|
23
26
|
}
|
|
24
27
|
getByAppTypeId(id) {
|
|
25
|
-
return this.http.get(`${this
|
|
28
|
+
return this.http.get(`${this.#url}/apptypeid/${id}`);
|
|
26
29
|
}
|
|
27
30
|
getByAppType(name) {
|
|
28
|
-
return this.http.get(`${this
|
|
31
|
+
return this.http.get(`${this.#url}/apptype/${name}`);
|
|
29
32
|
}
|
|
30
33
|
getByAppFunction(name) {
|
|
31
|
-
return this.http.get(`${this
|
|
34
|
+
return this.http.get(`${this.#url}/function/${name}`);
|
|
32
35
|
}
|
|
33
36
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppPathConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
34
37
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppPathConfigService, providedIn: 'root' }); }
|
|
@@ -38,5 +41,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
|
|
|
38
41
|
args: [{
|
|
39
42
|
providedIn: 'root'
|
|
40
43
|
}]
|
|
41
|
-
}]
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
}] });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXBhdGgtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9zcmMvbGliL3NlcnZpY2VzL2FwcC1wYXRoLWNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBS3hELE1BQU0sT0FBTyxvQkFBb0I7SUFIakM7UUFJRSxrQkFBa0I7UUFDVixXQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLElBQUksYUFBYSxFQUFFLENBQUM7UUFDMUUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQyxZQUFZO1FBRVosU0FBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixDQUFDO0tBNkIvQztJQS9CQyxZQUFZO0lBRVosSUFBSSxDQUEwQztJQUU5QyxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxPQUFPLENBQUMsRUFBVTtRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWtCLEdBQUcsSUFBSSxDQUFDLElBQUksUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxjQUFjLENBQUMsRUFBVTtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVk7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxZQUFZLElBQUksRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQVk7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxhQUFhLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQzs4R0FsQ1Usb0JBQW9CO2tIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBBcHBQYXRoQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWwvYXBwLXBhdGgtY29uZmlnJztcclxuaW1wb3J0IHsgU2VydmljZUNvbmZpZyB9IGZyb20gJy4uL21vZGVsL3NlcnZpY2UtY29uZmlnJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcFBhdGhDb25maWdTZXJ2aWNlIHtcclxuICAvLyNyZWdpb24gU2VydmljZXNcclxuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChTZXJ2aWNlQ29uZmlnLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/IG5ldyBTZXJ2aWNlQ29uZmlnKCk7XHJcbiAgcHJpdmF0ZSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAjdXJsID0gYCR7dGhpcy5jb25maWcuYXBpVXJsfS9hcHBwYXRoY29uZmlnc2A7XHJcblxyXG4gIGdldEFsbCgpOiBPYnNlcnZhYmxlPEFwcFBhdGhDb25maWdbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBwUGF0aENvbmZpZ1tdPih0aGlzLiN1cmwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnlJZChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxBcHBQYXRoQ29uZmlnPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxBcHBQYXRoQ29uZmlnPihgJHt0aGlzLiN1cmx9LyR7aWR9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRCeUFwcElkKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEFwcFBhdGhDb25maWdbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBwUGF0aENvbmZpZ1tdPihgJHt0aGlzLiN1cmx9L2FwcGlkLyR7aWR9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRCeUFwcChuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFwcFBhdGhDb25maWdbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBwUGF0aENvbmZpZ1tdPihgJHt0aGlzLiN1cmx9L2FwcC8ke25hbWV9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRCeUFwcFR5cGVJZChpZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxBcHBQYXRoQ29uZmlnW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwcFBhdGhDb25maWdbXT4oYCR7dGhpcy4jdXJsfS9hcHB0eXBlaWQvJHtpZH1gKTtcclxuICB9XHJcblxyXG4gIGdldEJ5QXBwVHlwZShuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFwcFBhdGhDb25maWdbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBwUGF0aENvbmZpZ1tdPihgJHt0aGlzLiN1cmx9L2FwcHR5cGUvJHtuYW1lfWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnlBcHBGdW5jdGlvbihuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFwcFBhdGhDb25maWdbXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBwUGF0aENvbmZpZ1tdPihgJHt0aGlzLiN1cmx9L2Z1bmN0aW9uLyR7bmFtZX1gKTtcclxuICB9XHJcbn1cclxuIl19
|