@porscheinformatik/material-addons 17.4.2 → 17.4.4
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/alert/alert.component.mjs +60 -0
- package/esm2022/lib/data-table/configuration/data-table-global-configuration.mjs +2 -2
- package/esm2022/lib/data-table/data-table.component.mjs +37 -18
- package/esm2022/lib/data-table/util/data-table-sort-util.mjs +9 -6
- package/esm2022/lib/layout/sidebar/sidebar.component.mjs +6 -4
- package/esm2022/lib/quick-list/quick-list-compact/quick-list-compact.component.mjs +3 -3
- package/esm2022/lib/quick-list/quick-list.component.mjs +3 -3
- package/esm2022/lib/quick-list/reactive-form-quick-list/reactive-form-quick-list.component.mjs +3 -3
- package/esm2022/lib/quick-list/reactive-form-quick-list-compact/reactive-form-quick-list-compact.component.mjs +3 -3
- package/esm2022/lib/readonly/readonly-form-field/readonly-form-field.component.mjs +6 -3
- package/esm2022/public_api.mjs +2 -1
- package/fesm2022/porscheinformatik-material-addons.mjs +115 -36
- package/fesm2022/porscheinformatik-material-addons.mjs.map +1 -1
- package/lib/alert/alert.component.d.ts +19 -0
- package/lib/alert/alert.component.d.ts.map +1 -0
- package/lib/data-table/configuration/data-table-global-configuration.d.ts +1 -1
- package/lib/data-table/configuration/data-table-global-configuration.d.ts.map +1 -1
- package/lib/data-table/data-table.component.d.ts +9 -4
- package/lib/data-table/data-table.component.d.ts.map +1 -1
- package/lib/data-table/util/data-table-sort-util.d.ts +2 -2
- package/lib/data-table/util/data-table-sort-util.d.ts.map +1 -1
- package/lib/layout/sidebar/sidebar.component.d.ts +1 -1
- package/lib/layout/sidebar/sidebar.component.d.ts.map +1 -1
- package/lib/quick-list/quick-list-compact/quick-list-compact.component.d.ts.map +1 -1
- package/lib/readonly/readonly-form-field/readonly-form-field.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +1 -0
- package/public_api.d.ts.map +1 -1
- package/themes/common/styles.scss +48 -4
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/common";
|
|
7
|
+
import * as i2 from "@angular/material/icon";
|
|
8
|
+
import * as i3 from "@angular/material/button";
|
|
9
|
+
export class AlertComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.type = 'info';
|
|
12
|
+
this.message = '';
|
|
13
|
+
this.size = 'medium';
|
|
14
|
+
this.actionText = '';
|
|
15
|
+
this.closeable = true;
|
|
16
|
+
this.close = new EventEmitter();
|
|
17
|
+
this.action = new EventEmitter();
|
|
18
|
+
}
|
|
19
|
+
get icon() {
|
|
20
|
+
switch (this.type) {
|
|
21
|
+
case 'success':
|
|
22
|
+
return 'check_circle';
|
|
23
|
+
case 'info':
|
|
24
|
+
return 'info';
|
|
25
|
+
case 'warning':
|
|
26
|
+
return 'warning';
|
|
27
|
+
case 'error':
|
|
28
|
+
return 'error';
|
|
29
|
+
default:
|
|
30
|
+
return '';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
closeAlert() {
|
|
34
|
+
this.close.emit();
|
|
35
|
+
}
|
|
36
|
+
onAction() {
|
|
37
|
+
this.action.emit();
|
|
38
|
+
}
|
|
39
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
40
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: AlertComponent, isStandalone: true, selector: "mad-alert", inputs: { type: "type", message: "message", size: "size", actionText: "actionText", closeable: "closeable" }, outputs: { close: "close", action: "action" }, ngImport: i0, template: "<div data-cy=\"alert\" class=\"alert\" [ngClass]=\"[type, size]\">\n <span data-cy=\"alert-icon\" class=\"icon\"><mat-icon>{{ icon }}</mat-icon></span>\n <span data-cy=\"alert-message\" class=\"message\">{{ message }}</span>\n <ng-container *ngIf=\"actionText\">\n <span data-cy=\"alert-action-btn\" class=\"action-btn\" (click)=\"onAction()\">{{ actionText }}</span>\n </ng-container>\n <ng-container *ngIf=\"closeable\">\n <button mat-icon-button data-cy=\"alert-close-btn\" class=\"close-btn\" (click)=\"closeAlert()\">\n <mat-icon>close</mat-icon>\n </button>\n </ng-container>\n</div>\n", styles: [".alert{display:flex;align-items:center;padding:16px;border-radius:4px;margin:8px 0;font-size:14px;position:relative;border:1px solid transparent}.alert.small{padding:0 8px;font-size:14px}.alert.medium{padding:8px;font-size:16px}.alert.large{padding:12px 8px;font-size:18px}.alert .icon{margin-right:8px}.alert .message{flex:1}.alert .action-btn,.alert .close-btn{color:inherit;margin-left:auto;padding:0}.alert .action-btn{text-decoration:underline;cursor:pointer}.alert.success{background-color:var(--alert-success-background-color);border-color:var(--alert-success-border-color);color:var(--alert-success-text-color)}.alert.info{background-color:var(--alert-info-background-color);border-color:var(--alert-info-border-color);color:var(--alert-info-text-color)}.alert.warning{background-color:var(--alert-warning-background-color);border-color:var(--alert-warning-border-color);color:var(--alert-warning-text-color)}.alert.error{background-color:var(--alert-error-background-color);border-color:var(--alert-error-border-color);color:var(--alert-error-text-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }] }); }
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AlertComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'mad-alert', standalone: true, imports: [CommonModule, MatIconModule, MatButtonModule], template: "<div data-cy=\"alert\" class=\"alert\" [ngClass]=\"[type, size]\">\n <span data-cy=\"alert-icon\" class=\"icon\"><mat-icon>{{ icon }}</mat-icon></span>\n <span data-cy=\"alert-message\" class=\"message\">{{ message }}</span>\n <ng-container *ngIf=\"actionText\">\n <span data-cy=\"alert-action-btn\" class=\"action-btn\" (click)=\"onAction()\">{{ actionText }}</span>\n </ng-container>\n <ng-container *ngIf=\"closeable\">\n <button mat-icon-button data-cy=\"alert-close-btn\" class=\"close-btn\" (click)=\"closeAlert()\">\n <mat-icon>close</mat-icon>\n </button>\n </ng-container>\n</div>\n", styles: [".alert{display:flex;align-items:center;padding:16px;border-radius:4px;margin:8px 0;font-size:14px;position:relative;border:1px solid transparent}.alert.small{padding:0 8px;font-size:14px}.alert.medium{padding:8px;font-size:16px}.alert.large{padding:12px 8px;font-size:18px}.alert .icon{margin-right:8px}.alert .message{flex:1}.alert .action-btn,.alert .close-btn{color:inherit;margin-left:auto;padding:0}.alert .action-btn{text-decoration:underline;cursor:pointer}.alert.success{background-color:var(--alert-success-background-color);border-color:var(--alert-success-border-color);color:var(--alert-success-text-color)}.alert.info{background-color:var(--alert-info-background-color);border-color:var(--alert-info-border-color);color:var(--alert-info-text-color)}.alert.warning{background-color:var(--alert-warning-background-color);border-color:var(--alert-warning-border-color);color:var(--alert-warning-text-color)}.alert.error{background-color:var(--alert-error-background-color);border-color:var(--alert-error-border-color);color:var(--alert-error-text-color)}\n"] }]
|
|
45
|
+
}], propDecorators: { type: [{
|
|
46
|
+
type: Input
|
|
47
|
+
}], message: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], size: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], actionText: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], closeable: [{
|
|
54
|
+
type: Input
|
|
55
|
+
}], close: [{
|
|
56
|
+
type: Output
|
|
57
|
+
}], action: [{
|
|
58
|
+
type: Output
|
|
59
|
+
}] } });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvYWxlcnQvYWxlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFZM0QsTUFBTSxPQUFPLGNBQWM7SUFQM0I7UUFRVyxTQUFJLEdBQWMsTUFBTSxDQUFDO1FBQ3pCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsU0FBSSxHQUFjLFFBQVEsQ0FBQztRQUMzQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDekIsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDakMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0F3QjdDO0lBdEJDLElBQUksSUFBSTtRQUNOLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNqQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxjQUFjLENBQUM7WUFDeEIsS0FBSyxNQUFNO2dCQUNULE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssU0FBUztnQkFDWixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLE9BQU87Z0JBQ1YsT0FBTyxPQUFPLENBQUM7WUFDakI7Z0JBQ0UsT0FBTyxFQUFFLENBQUM7U0FDYjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQzs4R0E5QlUsY0FBYztrR0FBZCxjQUFjLGtPQ2YzQixxbUJBWUEsbW1DRERZLFlBQVksZ09BQUUsYUFBYSxtTEFBRSxlQUFlOzsyRkFJM0MsY0FBYztrQkFQMUIsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUM7OEJBSzlDLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuXG5leHBvcnQgdHlwZSBBbGVydFR5cGUgPSAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybmluZycgfCAnZXJyb3InO1xuZXhwb3J0IHR5cGUgQWxlcnRTaXplID0gJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLWFsZXJ0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2FsZXJ0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2FsZXJ0LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQWxlcnRDb21wb25lbnQge1xuICBASW5wdXQoKSB0eXBlOiBBbGVydFR5cGUgPSAnaW5mbyc7XG4gIEBJbnB1dCgpIG1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBzaXplOiBBbGVydFNpemUgPSAnbWVkaXVtJztcbiAgQElucHV0KCkgYWN0aW9uVGV4dDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNsb3NlYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBnZXQgaWNvbigpIHtcbiAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgIHJldHVybiAnY2hlY2tfY2lyY2xlJztcbiAgICAgIGNhc2UgJ2luZm8nOlxuICAgICAgICByZXR1cm4gJ2luZm8nO1xuICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgIHJldHVybiAnd2FybmluZyc7XG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlQWxlcnQoKSB7XG4gICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gIH1cblxuICBvbkFjdGlvbigpIHtcbiAgICB0aGlzLmFjdGlvbi5lbWl0KCk7XG4gIH1cbn1cbiIsIjxkaXYgZGF0YS1jeT1cImFsZXJ0XCIgY2xhc3M9XCJhbGVydFwiIFtuZ0NsYXNzXT1cIlt0eXBlLCBzaXplXVwiPlxuICA8c3BhbiBkYXRhLWN5PVwiYWxlcnQtaWNvblwiIGNsYXNzPVwiaWNvblwiPjxtYXQtaWNvbj57eyBpY29uIH19PC9tYXQtaWNvbj48L3NwYW4+XG4gIDxzcGFuIGRhdGEtY3k9XCJhbGVydC1tZXNzYWdlXCIgY2xhc3M9XCJtZXNzYWdlXCI+e3sgbWVzc2FnZSB9fTwvc3Bhbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGlvblRleHRcIj5cbiAgICA8c3BhbiBkYXRhLWN5PVwiYWxlcnQtYWN0aW9uLWJ0blwiIGNsYXNzPVwiYWN0aW9uLWJ0blwiIChjbGljayk9XCJvbkFjdGlvbigpXCI+e3sgYWN0aW9uVGV4dCB9fTwvc3Bhbj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjbG9zZWFibGVcIj5cbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBkYXRhLWN5PVwiYWxlcnQtY2xvc2UtYnRuXCIgY2xhc3M9XCJjbG9zZS1idG5cIiAoY2xpY2spPVwiY2xvc2VBbGVydCgpXCI+XG4gICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
@@ -5,7 +5,7 @@ export const MAD_DATA_TABL_GLOBAL_CONFIGURATION_PROVIDER = {
|
|
|
5
5
|
provide: MAD_DATA_TABLE_GLOBAL_CONFIGURATION,
|
|
6
6
|
deps: [[new Optional(), new SkipSelf(), new Inject(MAD_DATA_TABLE_GLOBAL_CONFIGURATION)]],
|
|
7
7
|
useFactory: (dataTableConfig) => dataTableConfig ?? {
|
|
8
|
-
dateTimeFormat: dataTableConfig?.dateTimeFormat ?? 'dd.MM.yyyy',
|
|
8
|
+
dateTimeFormat: dataTableConfig?.dateTimeFormat ?? ['dd.MM.yyyy', 'dd.MM.yyyy hh:mm:ss'],
|
|
9
9
|
numberFormat: dataTableConfig?.numberFormat ?? {
|
|
10
10
|
decimalSeparator: ',',
|
|
11
11
|
groupingSeparator: '.',
|
|
@@ -13,4 +13,4 @@ export const MAD_DATA_TABL_GLOBAL_CONFIGURATION_PROVIDER = {
|
|
|
13
13
|
},
|
|
14
14
|
},
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1nbG9iYWwtY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvbGliL2RhdGEtdGFibGUvY29uZmlndXJhdGlvbi9kYXRhLXRhYmxlLWdsb2JhbC1jb25maWd1cmF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFjM0UsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsSUFBSSxjQUFjLENBQStCLHFDQUFxQyxDQUFDLENBQUM7QUFFM0ksMkdBQTJHO0FBQzNHLE1BQU0sQ0FBQyxNQUFNLDJDQUEyQyxHQUFHO0lBQ3pELE9BQU8sRUFBRSxtQ0FBbUM7SUFDNUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxNQUFNLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLFVBQVUsRUFBRSxDQUFDLGVBQThDLEVBQUUsRUFBRSxDQUM3RCxlQUFlLElBQUk7UUFDakIsY0FBYyxFQUFFLGVBQWUsRUFBRSxjQUFjLElBQUksQ0FBQyxZQUFZLEVBQUUscUJBQXFCLENBQUM7UUFDeEYsWUFBWSxFQUFFLGVBQWUsRUFBRSxZQUFZLElBQUk7WUFDN0MsZ0JBQWdCLEVBQUUsR0FBRztZQUNyQixpQkFBaUIsRUFBRSxHQUFHO1lBQ3RCLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7U0FDbEI7S0FDRjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGlvblRva2VuLCBPcHRpb25hbCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBOdW1iZXJGb3JtYXQge1xuICBkZWNpbWFsU2VwYXJhdG9yOiBzdHJpbmc7XG4gIGdyb3VwaW5nU2VwYXJhdG9yOiBzdHJpbmc7XG4gIHVuaXRzOiBzdHJpbmdbXTsgLy8gZS5nLiBzaWducyBsaWtlIOKCrCwgJFxufVxuXG4vLyB0aGlzIGNvdWxkIGFsc28gYmUgZXh0ZW5kZWQgd2l0aCBlLmcuIGxhYmVscyBvciBvdGhlciBnZW5lcmFsIGNvbmZpZ3VyYXRpb24gc3R1ZmZcbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRhYmxlR2xvYmFsQ29uZmlndXJhdGlvbiB7XG4gIGRhdGVUaW1lRm9ybWF0Pzogc3RyaW5nIHwgc3RyaW5nW107XG4gIG51bWJlckZvcm1hdD86IE51bWJlckZvcm1hdDtcbn1cblxuZXhwb3J0IGNvbnN0IE1BRF9EQVRBX1RBQkxFX0dMT0JBTF9DT05GSUdVUkFUSU9OID0gbmV3IEluamVjdGlvblRva2VuPERhdGFUYWJsZUdsb2JhbENvbmZpZ3VyYXRpb24+KCdtYWQtZGF0YS10YWJsZS1nbG9iYWwtY29uZmlndXJhdGlvbicpO1xuXG4vLyBJZiB0aGVyZSBpcyBhIGN1c3RvbSBEQVRBX1RBQkxFX0NPTkZJR19QUk9WSURFUiBhdmFpbGFibGUsIHVzZSB0aGF0LiBPdGhlcndpc2UsIHByb3ZpZGUgdGhlIGRlZmF1bHQgb25lLlxuZXhwb3J0IGNvbnN0IE1BRF9EQVRBX1RBQkxfR0xPQkFMX0NPTkZJR1VSQVRJT05fUFJPVklERVIgPSB7XG4gIHByb3ZpZGU6IE1BRF9EQVRBX1RBQkxFX0dMT0JBTF9DT05GSUdVUkFUSU9OLFxuICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgbmV3IEluamVjdChNQURfREFUQV9UQUJMRV9HTE9CQUxfQ09ORklHVVJBVElPTildXSxcbiAgdXNlRmFjdG9yeTogKGRhdGFUYWJsZUNvbmZpZz86IERhdGFUYWJsZUdsb2JhbENvbmZpZ3VyYXRpb24pID0+XG4gICAgZGF0YVRhYmxlQ29uZmlnID8/IHtcbiAgICAgIGRhdGVUaW1lRm9ybWF0OiBkYXRhVGFibGVDb25maWc/LmRhdGVUaW1lRm9ybWF0ID8/IFsnZGQuTU0ueXl5eScsICdkZC5NTS55eXl5IGhoOm1tOnNzJ10sXG4gICAgICBudW1iZXJGb3JtYXQ6IGRhdGFUYWJsZUNvbmZpZz8ubnVtYmVyRm9ybWF0ID8/IHtcbiAgICAgICAgZGVjaW1hbFNlcGFyYXRvcjogJywnLFxuICAgICAgICBncm91cGluZ1NlcGFyYXRvcjogJy4nLFxuICAgICAgICB1bml0czogWyfigqwnLCAnJCddLFxuICAgICAgfSxcbiAgICB9LFxufTtcbiJdfQ==
|