ng-prime-tools 1.0.62 → 1.0.64
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/models/text-style.model.mjs +1 -1
- package/esm2022/lib/pt-form-builder/pt-form-builder.component.mjs +12 -5
- package/esm2022/lib/pt-metric-card/pt-metric-card.component.mjs +59 -39
- package/esm2022/lib/pt-side-bar-menu/pt-side-bar-menu.component.mjs +2 -2
- package/fesm2022/ng-prime-tools.mjs +71 -44
- package/fesm2022/ng-prime-tools.mjs.map +1 -1
- package/lib/models/text-style.model.d.ts +1 -0
- package/lib/models/text-style.model.d.ts.map +1 -1
- package/lib/pt-form-builder/pt-form-builder.component.d.ts +8 -1
- package/lib/pt-form-builder/pt-form-builder.component.d.ts.map +1 -1
- package/lib/pt-group/pt-group.component.d.ts +1 -1
- package/lib/pt-metric-card/pt-metric-card.component.d.ts +17 -9
- package/lib/pt-metric-card/pt-metric-card.component.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1zdHlsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvbW9kZWxzL3RleHQtc3R5bGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVGV4dFN0eWxlIHtcbiAgdGV4dDogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgZm9udFNpemU/OiBzdHJpbmc7XG4gIGZvbnRXZWlnaHQ/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1zdHlsZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvbW9kZWxzL3RleHQtc3R5bGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVGV4dFN0eWxlIHtcbiAgdGV4dDogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgZm9udFNpemU/OiBzdHJpbmc7XG4gIGZvbnRXZWlnaHQ/OiBzdHJpbmc7XG4gIHBvc2l0aW9uPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnO1xufVxuIl19
|
|
@@ -11,11 +11,17 @@ export class PTFormBuilderComponent {
|
|
|
11
11
|
this.fb = fb;
|
|
12
12
|
this.mainGroup = { fields: [], groups: [] };
|
|
13
13
|
this.buttons = [];
|
|
14
|
+
/**
|
|
15
|
+
* Largeur des inputs/champs
|
|
16
|
+
*/
|
|
14
17
|
this.inputWidth = '100%';
|
|
18
|
+
/**
|
|
19
|
+
* Nouvelle largeur globale du composant pt-form-builder
|
|
20
|
+
*/
|
|
21
|
+
this.formWidth = '100%';
|
|
15
22
|
this.language = 'en';
|
|
16
23
|
this.formSubmit = new EventEmitter();
|
|
17
24
|
this.formReady = new EventEmitter();
|
|
18
|
-
// ✅ NEW
|
|
19
25
|
this.formChange = new EventEmitter();
|
|
20
26
|
this.FormInputTypeEnum = FormInputTypeEnum;
|
|
21
27
|
this.errorMessages = {
|
|
@@ -52,7 +58,6 @@ export class PTFormBuilderComponent {
|
|
|
52
58
|
this.form = this.fb.group({});
|
|
53
59
|
this.buildFormGroup(this.mainGroup);
|
|
54
60
|
this.formReady.emit(this.form);
|
|
55
|
-
// ✅ NEW: emit on every form change
|
|
56
61
|
this.formValueChangesSub = this.form.valueChanges.subscribe((value) => {
|
|
57
62
|
this.formChange.emit(value);
|
|
58
63
|
});
|
|
@@ -133,11 +138,11 @@ export class PTFormBuilderComponent {
|
|
|
133
138
|
this.formChange.emit(this.form.getRawValue());
|
|
134
139
|
}
|
|
135
140
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTFormBuilderComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
136
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTFormBuilderComponent, selector: "pt-form-builder", inputs: { mainGroup: "mainGroup", buttons: "buttons", title: "title", titleStyle: "titleStyle", inputWidth: "inputWidth", language: "language" }, outputs: { formSubmit: "formSubmit", formReady: "formReady", formChange: "formChange" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"title\" [ngStyle]=\"titleStyle\" class=\"form-title\">{{ title }}</div>\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n
|
|
141
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTFormBuilderComponent, selector: "pt-form-builder", inputs: { mainGroup: "mainGroup", buttons: "buttons", title: "title", titleStyle: "titleStyle", inputWidth: "inputWidth", formWidth: "formWidth", language: "language" }, outputs: { formSubmit: "formSubmit", formReady: "formReady", formChange: "formChange" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"pt-form-builder-wrapper\"\n [ngStyle]=\"{ width: formWidth, maxWidth: formWidth }\"\n>\n <div *ngIf=\"title\" [ngStyle]=\"titleStyle\" class=\"form-title\">{{ title }}</div>\n\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n <ng-container *ngFor=\"let field of mainGroup.fields\">\n <pt-dynamic-form-field\n [field]=\"field\"\n [form]=\"form\"\n [inputWidth]=\"inputWidth\"\n ></pt-dynamic-form-field>\n </ng-container>\n\n <ng-container *ngFor=\"let group of mainGroup.groups\">\n <div\n class=\"form-field-group\"\n [ngStyle]=\"{ width: group.width || '100%' }\"\n >\n <ng-container *ngFor=\"let field of group.fields\">\n <pt-dynamic-form-field\n [field]=\"field\"\n [form]=\"form\"\n [inputWidth]=\"inputWidth\"\n class=\"flex-item\"\n ></pt-dynamic-form-field>\n </ng-container>\n </div>\n </ng-container>\n\n <div class=\"button-group\">\n <button\n *ngFor=\"let button of buttons\"\n type=\"button\"\n pButton\n [label]=\"button.text\"\n [icon]=\"button.icon || ''\"\n [class]=\"button.color\"\n (click)=\"\n button.isSubmit\n ? onSubmit()\n : button.isClear\n ? onClear()\n : button.action\n ? button.action()\n : null\n \"\n ></button>\n </div>\n </form>\n</div>\n", styles: [".pt-form-builder-wrapper{width:100%;margin:0 auto}.form-title{text-align:center;margin-bottom:1rem;font-size:1.5rem;font-weight:700}.form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:700}::ng-deep .p-inputtext,::ng-deep .p-inputtextarea,::ng-deep .p-calendar,::ng-deep .p-inputnumber,::ng-deep .p-multiselect,::ng-deep .p-dropdown{width:100%!important}::ng-deep .p-inputnumber,::ng-deep p-inputnumber{display:flex!important}.button-group{display:flex;gap:1rem;margin-top:1rem;justify-content:space-between}.button-group button{flex:1;display:flex;align-items:center;justify-content:center}.button-group button i{margin-right:.5rem}.button-group button.p-button-primary{background-color:#007bff;color:#fff}.button-group button.p-button-secondary{background-color:#6c757d;color:#fff}.button-group button.p-button-success{background-color:#28a745;color:#fff}.button-group button:hover{opacity:.9}.form-field-group{display:flex;gap:1rem}.form-field-group .flex-item{flex:1}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: i4.PTDynamicFormFieldComponent, selector: "pt-dynamic-form-field", inputs: ["field", "form", "inputWidth"] }] }); }
|
|
137
142
|
}
|
|
138
143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTFormBuilderComponent, decorators: [{
|
|
139
144
|
type: Component,
|
|
140
|
-
args: [{ selector: 'pt-form-builder', template: "<div *ngIf=\"title\" [ngStyle]=\"titleStyle\" class=\"form-title\">{{ title }}</div>\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n
|
|
145
|
+
args: [{ selector: 'pt-form-builder', template: "<div\n class=\"pt-form-builder-wrapper\"\n [ngStyle]=\"{ width: formWidth, maxWidth: formWidth }\"\n>\n <div *ngIf=\"title\" [ngStyle]=\"titleStyle\" class=\"form-title\">{{ title }}</div>\n\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n <ng-container *ngFor=\"let field of mainGroup.fields\">\n <pt-dynamic-form-field\n [field]=\"field\"\n [form]=\"form\"\n [inputWidth]=\"inputWidth\"\n ></pt-dynamic-form-field>\n </ng-container>\n\n <ng-container *ngFor=\"let group of mainGroup.groups\">\n <div\n class=\"form-field-group\"\n [ngStyle]=\"{ width: group.width || '100%' }\"\n >\n <ng-container *ngFor=\"let field of group.fields\">\n <pt-dynamic-form-field\n [field]=\"field\"\n [form]=\"form\"\n [inputWidth]=\"inputWidth\"\n class=\"flex-item\"\n ></pt-dynamic-form-field>\n </ng-container>\n </div>\n </ng-container>\n\n <div class=\"button-group\">\n <button\n *ngFor=\"let button of buttons\"\n type=\"button\"\n pButton\n [label]=\"button.text\"\n [icon]=\"button.icon || ''\"\n [class]=\"button.color\"\n (click)=\"\n button.isSubmit\n ? onSubmit()\n : button.isClear\n ? onClear()\n : button.action\n ? button.action()\n : null\n \"\n ></button>\n </div>\n </form>\n</div>\n", styles: [".pt-form-builder-wrapper{width:100%;margin:0 auto}.form-title{text-align:center;margin-bottom:1rem;font-size:1.5rem;font-weight:700}.form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:.5rem;font-weight:700}::ng-deep .p-inputtext,::ng-deep .p-inputtextarea,::ng-deep .p-calendar,::ng-deep .p-inputnumber,::ng-deep .p-multiselect,::ng-deep .p-dropdown{width:100%!important}::ng-deep .p-inputnumber,::ng-deep p-inputnumber{display:flex!important}.button-group{display:flex;gap:1rem;margin-top:1rem;justify-content:space-between}.button-group button{flex:1;display:flex;align-items:center;justify-content:center}.button-group button i{margin-right:.5rem}.button-group button.p-button-primary{background-color:#007bff;color:#fff}.button-group button.p-button-secondary{background-color:#6c757d;color:#fff}.button-group button.p-button-success{background-color:#28a745;color:#fff}.button-group button:hover{opacity:.9}.form-field-group{display:flex;gap:1rem}.form-field-group .flex-item{flex:1}\n"] }]
|
|
141
146
|
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { mainGroup: [{
|
|
142
147
|
type: Input
|
|
143
148
|
}], buttons: [{
|
|
@@ -148,6 +153,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
148
153
|
type: Input
|
|
149
154
|
}], inputWidth: [{
|
|
150
155
|
type: Input
|
|
156
|
+
}], formWidth: [{
|
|
157
|
+
type: Input
|
|
151
158
|
}], language: [{
|
|
152
159
|
type: Input
|
|
153
160
|
}], formSubmit: [{
|
|
@@ -157,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
157
164
|
}], formChange: [{
|
|
158
165
|
type: Output
|
|
159
166
|
}] } });
|
|
160
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtZm9ybS1idWlsZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtZm9ybS1idWlsZGVyL3B0LWZvcm0tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWZvcm0tYnVpbGRlci9wdC1mb3JtLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBS0wsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFNeEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQVFsRSxNQUFNLE9BQU8sc0JBQXNCO0lBcUNqQyxZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQXBDMUIsY0FBUyxHQUFtQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3ZELFlBQU8sR0FBaUIsRUFBRSxDQUFDO1FBRzNCLGVBQVUsR0FBVyxNQUFNLENBQUM7UUFDNUIsYUFBUSxHQUFnQixJQUFJLENBQUM7UUFFNUIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO1FBQ3hELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBRXBELFFBQVE7UUFDRSxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFJbEUsc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFJOUIsa0JBQWEsR0FBRztZQUN0QixFQUFFLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLEtBQUssRUFBRSw4QkFBOEI7Z0JB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QVU7c0JBQW5CLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFHRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0b3JGbixcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEZvcm1CdXR0b24gfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1idXR0b24ubW9kZWwnO1xuaW1wb3J0IHsgRm9ybUZpZWxkIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybUZpZWxkR3JvdXAgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1maWVsZC1ncm91cC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtSW5wdXRUeXBlRW51bSB9IGZyb20gJy4uL2VudW1zL2Zvcm0taW5wdXQtdHlwZS5lbnVtJztcbmltcG9ydCB7IElucHV0VmFsaWRhdGlvbkVudW0gfSBmcm9tICcuLi9lbnVtcy9pbnB1dC12YWxpZGF0aW9uLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwdC1mb3JtLWJ1aWxkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcHQtZm9ybS1idWlsZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtZm9ybS1idWlsZGVyLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFRGb3JtQnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBtYWluR3JvdXA6IEZvcm1GaWVsZEdyb3VwID0geyBmaWVsZHM6IFtdLCBncm91cHM6IFtdIH07XG4gIEBJbnB1dCgpIGJ1dHRvbnM6IEZvcm1CdXR0b25bXSA9IFtdO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgdGl0bGVTdHlsZT86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIEBJbnB1dCgpIGlucHV0V2lkdGg6IHN0cmluZyA9ICcxMDAlJztcbiAgQElucHV0KCkgbGFuZ3VhZ2U6ICdlbicgfCAnZnInID0gJ2VuJztcblxuICBAT3V0cHV0KCkgZm9ybVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBba2V5OiBzdHJpbmddOiBhbnkgfT4oKTtcbiAgQE91dHB1dCgpIGZvcm1SZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybUdyb3VwPigpO1xuXG4gIC8vIOKchSBORVdcbiAgQE91dHB1dCgpIGZvcm1DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgW2tleTogc3RyaW5nXTogYW55IH0+KCk7XG5cbiAgZm9ybTogRm9ybUdyb3VwO1xuXG4gIEZvcm1JbnB1dFR5cGVFbnVtID0gRm9ybUlucHV0VHlwZUVudW07XG5cbiAgcHJpdmF0ZSBmb3JtVmFsdWVDaGFuZ2VzU3ViPzogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgZXJyb3JNZXNzYWdlcyA9IHtcbiAgICBlbjoge1xuICAgICAgcmVxdWlyZWQ6ICdpcyByZXF1aXJlZCcsXG4gICAgICBlbWFpbDogJ2lzIG5vdCBhIHZhbGlkIGVtYWlsIGFkZHJlc3MnLFxuICAgICAgcGF0dGVybjogJ2lzIGludmFsaWQnLFxuICAgICAgbWlubGVuZ3RoOiAnbXVzdCBiZSBhdCBsZWFzdCcsXG4gICAgICBtYXhsZW5ndGg6ICdtdXN0IGJlIGF0IG1vc3QnLFxuICAgIH0sXG4gICAgZnI6IHtcbiAgICAgIHJlcXVpcmVkOiAnZXN0IHJlcXVpcycsXG4gICAgICBlbWFpbDogXCJuJ2VzdCBwYXMgdW5lIGFkcmVzc2UgZS1tYWlsIHZhbGlkZVwiLFxuICAgICAgcGF0dGVybjogJ2VzdCBpbnZhbGlkZScsXG4gICAgICBtaW5sZW5ndGg6ICdkb2l0IGNvbnRlbmlyIGF1IG1vaW5zJyxcbiAgICAgIG1heGxlbmd0aDogJ2RvaXQgY29udGVuaXIgYXUgcGx1cycsXG4gICAgfSxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe30pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWJ1aWxkRm9ybSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydtYWluR3JvdXAnXSAmJiAhY2hhbmdlc1snbWFpbkdyb3VwJ10uZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMucmVidWlsZEZvcm0oKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1WYWx1ZUNoYW5nZXNTdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlYnVpbGRGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybVZhbHVlQ2hhbmdlc1N1Yj8udW5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe30pO1xuICAgIHRoaXMuYnVpbGRGb3JtR3JvdXAodGhpcy5tYWluR3JvdXApO1xuXG4gICAgdGhpcy5mb3JtUmVhZHkuZW1pdCh0aGlzLmZvcm0pO1xuXG4gICAgLy8g4pyFIE5FVzogZW1pdCBvbiBldmVyeSBmb3JtIGNoYW5nZVxuICAgIHRoaXMuZm9ybVZhbHVlQ2hhbmdlc1N1YiA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5mb3JtQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEZvcm1Hcm91cChncm91cDogRm9ybUZpZWxkR3JvdXApOiB2b2lkIHtcbiAgICAoZ3JvdXA/LmZpZWxkcyA/PyBbXSkuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLmJ1aWxkVmFsaWRhdG9ycyhmaWVsZCk7XG5cbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKFxuICAgICAgICBmaWVsZC5uYW1lLFxuICAgICAgICB0aGlzLmZiLmNvbnRyb2woXG4gICAgICAgICAgeyB2YWx1ZTogZmllbGQudmFsdWUgPz8gbnVsbCwgZGlzYWJsZWQ6ICEhKGZpZWxkIGFzIGFueSkuZGlzYWJsZWQgfSxcbiAgICAgICAgICB2YWxpZGF0b3JzLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIChncm91cD8uZ3JvdXBzID8/IFtdKS5mb3JFYWNoKChzdWJHcm91cCkgPT4gdGhpcy5idWlsZEZvcm1Hcm91cChzdWJHcm91cCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFZhbGlkYXRvcnMoZmllbGQ6IEZvcm1GaWVsZCk6IFZhbGlkYXRvckZuW10ge1xuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcbiAgICBjb25zdCBhbnlGaWVsZCA9IGZpZWxkIGFzIGFueTtcblxuICAgIGlmIChmaWVsZC5yZXF1aXJlZCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cblxuICAgIGlmIChhbnlGaWVsZC5taW5MZW5ndGggIT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKE51bWJlcihhbnlGaWVsZC5taW5MZW5ndGgpKSk7XG4gICAgfVxuXG4gICAgaWYgKGFueUZpZWxkLm1heExlbmd0aCAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoTnVtYmVyKGFueUZpZWxkLm1heExlbmd0aCkpKTtcbiAgICB9XG5cbiAgICBpZiAoYW55RmllbGQuaW5wdXRWYWxpZGF0aW9uKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihcbiAgICAgICAgICBuZXcgUmVnRXhwKGFueUZpZWxkLmlucHV0VmFsaWRhdGlvbiBhcyBJbnB1dFZhbGlkYXRpb25FbnVtKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChhbnlGaWVsZC5wYXR0ZXJuKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKGFueUZpZWxkLnBhdHRlcm4pKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgIGNhc2UgRm9ybUlucHV0VHlwZUVudW0uRU1BSUw6XG4gICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLmVtYWlsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxuXG4gIGlzSW52YWxpZChmaWVsZDogRm9ybUZpZWxkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYyA9IHRoaXMuZm9ybS5nZXQoZmllbGQubmFtZSk7XG4gICAgcmV0dXJuICEhYyAmJiBjLmludmFsaWQgJiYgKGMudG91Y2hlZCB8fCBjLmRpcnR5KTtcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZShmaWVsZDogRm9ybUZpZWxkKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gdGhpcy5mb3JtLmdldChmaWVsZC5uYW1lKTtcbiAgICBpZiAoIWNvbnRyb2wpIHJldHVybiAnJztcblxuICAgIGNvbnN0IGxhbmcgPSB0aGlzLmxhbmd1YWdlO1xuXG4gICAgaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChmaWVsZCBhcyBhbnkpLmVycm9yVGV4dCB8fFxuICAgICAgICBgJHtmaWVsZC5sYWJlbH0gJHt0aGlzLmVycm9yTWVzc2FnZXNbbGFuZ10ucmVxdWlyZWR9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29udHJvbC5oYXNFcnJvcignZW1haWwnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKGZpZWxkIGFzIGFueSkuZXJyb3JUZXh0IHx8XG4gICAgICAgIGAke2ZpZWxkLmxhYmVsfSAke3RoaXMuZXJyb3JNZXNzYWdlc1tsYW5nXS5lbWFpbH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sLmhhc0Vycm9yKCdwYXR0ZXJuJykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChmaWVsZCBhcyBhbnkpLmVycm9yVGV4dCB8fFxuICAgICAgICBgJHtmaWVsZC5sYWJlbH0gJHt0aGlzLmVycm9yTWVzc2FnZXNbbGFuZ10ucGF0dGVybn1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSkge1xuICAgICAgY29uc3QgcmVxdWlyZWRMZW4gPSBjb250cm9sLmdldEVycm9yKCdtaW5sZW5ndGgnKT8ucmVxdWlyZWRMZW5ndGg7XG4gICAgICByZXR1cm4gYCR7ZmllbGQubGFiZWx9ICR7dGhpcy5lcnJvck1lc3NhZ2VzW2xhbmddLm1pbmxlbmd0aH0gJHtyZXF1aXJlZExlbn0gJHtcbiAgICAgICAgbGFuZyA9PT0gJ2ZyJyA/ICdjYXJhY3TDqHJlcycgOiAnY2hhcmFjdGVycydcbiAgICAgIH1gO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkge1xuICAgICAgY29uc3QgcmVxdWlyZWRMZW4gPSBjb250cm9sLmdldEVycm9yKCdtYXhsZW5ndGgnKT8ucmVxdWlyZWRMZW5ndGg7XG4gICAgICByZXR1cm4gYCR7ZmllbGQubGFiZWx9ICR7dGhpcy5lcnJvck1lc3NhZ2VzW2xhbmddLm1heGxlbmd0aH0gJHtyZXF1aXJlZExlbn0gJHtcbiAgICAgICAgbGFuZyA9PT0gJ2ZyJyA/ICdjYXJhY3TDqHJlcycgOiAnY2hhcmFjdGVycydcbiAgICAgIH1gO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG9uU3VibWl0KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5mb3JtU3VibWl0LmVtaXQodGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgdGhpcy5mb3JtQ2hhbmdlLmVtaXQodGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwidGl0bGVcIiBbbmdTdHlsZV09XCJ0aXRsZVN0eWxlXCIgY2xhc3M9XCJmb3JtLXRpdGxlXCI+e3sgdGl0bGUgfX08L2Rpdj5cbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpZWxkIG9mIG1haW5Hcm91cC5maWVsZHNcIj5cbiAgICA8cHQtZHluYW1pYy1mb3JtLWZpZWxkXG4gICAgICBbZmllbGRdPVwiZmllbGRcIlxuICAgICAgW2Zvcm1dPVwiZm9ybVwiXG4gICAgICBbaW5wdXRXaWR0aF09XCJpbnB1dFdpZHRoXCJcbiAgICA+PC9wdC1keW5hbWljLWZvcm0tZmllbGQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGdyb3VwIG9mIG1haW5Hcm91cC5ncm91cHNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZC1ncm91cFwiIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGdyb3VwLndpZHRoIHx8ICcxMDAlJyB9XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBncm91cC5maWVsZHNcIj5cbiAgICAgICAgPHB0LWR5bmFtaWMtZm9ybS1maWVsZFxuICAgICAgICAgIFtmaWVsZF09XCJmaWVsZFwiXG4gICAgICAgICAgW2Zvcm1dPVwiZm9ybVwiXG4gICAgICAgICAgY2xhc3M9XCJmbGV4LWl0ZW1cIlxuICAgICAgICA+PC9wdC1keW5hbWljLWZvcm0tZmllbGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncm91cFwiPlxuICAgIDxidXR0b25cbiAgICAgICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYnV0dG9uc1wiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIHBCdXR0b25cbiAgICAgIFtsYWJlbF09XCJidXR0b24udGV4dFwiXG4gICAgICBbaWNvbl09XCJidXR0b24uaWNvbiB8fCAnJ1wiXG4gICAgICBbY2xhc3NdPVwiYnV0dG9uLmNvbG9yXCJcbiAgICAgIChjbGljayk9XCJcbiAgICAgICAgYnV0dG9uLmlzU3VibWl0XG4gICAgICAgICAgPyBvblN1Ym1pdCgpXG4gICAgICAgICAgOiBidXR0b24uaXNDbGVhclxuICAgICAgICAgID8gb25DbGVhcigpXG4gICAgICAgICAgOiBidXR0b24uYWN0aW9uXG4gICAgICAgICAgPyBidXR0b24uYWN0aW9uKClcbiAgICAgICAgICA6IG51bGxcbiAgICAgIFwiXG4gICAgPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtZm9ybS1idWlsZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtZm9ybS1idWlsZGVyL3B0LWZvcm0tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWZvcm0tYnVpbGRlci9wdC1mb3JtLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBS0wsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFNeEIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQVFsRSxNQUFNLE9BQU8sc0JBQXNCO0lBNkNqQyxZQUFvQixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQTVDMUIsY0FBUyxHQUFtQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ3ZELFlBQU8sR0FBaUIsRUFBRSxDQUFDO1FBSXBDOztXQUVHO1FBQ00sZUFBVSxHQUFXLE1BQU0sQ0FBQztRQUVyQzs7V0FFRztRQUNNLGNBQVMsR0FBVyxNQUFNLENBQUM7UUFFM0IsYUFBUSxHQUFnQixJQUFJLENBQUM7UUFFNUIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUEwQixDQUFDO1FBQ3hELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBQzFDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUlsRSxzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUk5QixrQkFBYSxHQUFHO1lBQ3RCLEVBQUUsRUFBRTtnQkFDRixRQUFR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LFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUJ1aWxkZXIsXG4gIEZvcm1Hcm91cCxcbiAgVmFsaWRhdG9yRm4sXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGb3JtQnV0dG9uIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tYnV0dG9uLm1vZGVsJztcbmltcG9ydCB7IEZvcm1GaWVsZCB9IGZyb20gJy4uL21vZGVscy9mb3JtLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZvcm1GaWVsZEdyb3VwIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tZmllbGQtZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHsgRm9ybUlucHV0VHlwZUVudW0gfSBmcm9tICcuLi9lbnVtcy9mb3JtLWlucHV0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBJbnB1dFZhbGlkYXRpb25FbnVtIH0gZnJvbSAnLi4vZW51bXMvaW5wdXQtdmFsaWRhdGlvbi5lbnVtJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHQtZm9ybS1idWlsZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3B0LWZvcm0tYnVpbGRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3B0LWZvcm0tYnVpbGRlci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFBURm9ybUJ1aWxkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgbWFpbkdyb3VwOiBGb3JtRmllbGRHcm91cCA9IHsgZmllbGRzOiBbXSwgZ3JvdXBzOiBbXSB9O1xuICBASW5wdXQoKSBidXR0b25zOiBGb3JtQnV0dG9uW10gPSBbXTtcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRpdGxlU3R5bGU/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBMYXJnZXVyIGRlcyBpbnB1dHMvY2hhbXBzXG4gICAqL1xuICBASW5wdXQoKSBpbnB1dFdpZHRoOiBzdHJpbmcgPSAnMTAwJSc7XG5cbiAgLyoqXG4gICAqIE5vdXZlbGxlIGxhcmdldXIgZ2xvYmFsZSBkdSBjb21wb3NhbnQgcHQtZm9ybS1idWlsZGVyXG4gICAqL1xuICBASW5wdXQoKSBmb3JtV2lkdGg6IHN0cmluZyA9ICcxMDAlJztcblxuICBASW5wdXQoKSBsYW5ndWFnZTogJ2VuJyB8ICdmcicgPSAnZW4nO1xuXG4gIEBPdXRwdXQoKSBmb3JtU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IFtrZXk6IHN0cmluZ106IGFueSB9PigpO1xuICBAT3V0cHV0KCkgZm9ybVJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtR3JvdXA+KCk7XG4gIEBPdXRwdXQoKSBmb3JtQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IFtrZXk6IHN0cmluZ106IGFueSB9PigpO1xuXG4gIGZvcm06IEZvcm1Hcm91cDtcblxuICBGb3JtSW5wdXRUeXBlRW51bSA9IEZvcm1JbnB1dFR5cGVFbnVtO1xuXG4gIHByaXZhdGUgZm9ybVZhbHVlQ2hhbmdlc1N1Yj86IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGVycm9yTWVzc2FnZXMgPSB7XG4gICAgZW46IHtcbiAgICAgIHJlcXVpcmVkOiAnaXMgcmVxdWlyZWQnLFxuICAgICAgZW1haWw6ICdpcyBub3QgYSB2YWxpZCBlbWFpbCBhZGRyZXNzJyxcbiAgICAgIHBhdHRlcm46ICdpcyBpbnZhbGlkJyxcbiAgICAgIG1pbmxlbmd0aDogJ211c3QgYmUgYXQgbGVhc3QnLFxuICAgICAgbWF4bGVuZ3RoOiAnbXVzdCBiZSBhdCBtb3N0JyxcbiAgICB9LFxuICAgIGZyOiB7XG4gICAgICByZXF1aXJlZDogJ2VzdCByZXF1aXMnLFxuICAgICAgZW1haWw6IFwibidlc3QgcGFzIHVuZSBhZHJlc3NlIGUtbWFpbCB2YWxpZGVcIixcbiAgICAgIHBhdHRlcm46ICdlc3QgaW52YWxpZGUnLFxuICAgICAgbWlubGVuZ3RoOiAnZG9pdCBjb250ZW5pciBhdSBtb2lucycsXG4gICAgICBtYXhsZW5ndGg6ICdkb2l0IGNvbnRlbmlyIGF1IHBsdXMnLFxuICAgIH0sXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHt9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVidWlsZEZvcm0oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snbWFpbkdyb3VwJ10gJiYgIWNoYW5nZXNbJ21haW5Hcm91cCddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLnJlYnVpbGRGb3JtKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtVmFsdWVDaGFuZ2VzU3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWJ1aWxkRm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1WYWx1ZUNoYW5nZXNTdWI/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHt9KTtcbiAgICB0aGlzLmJ1aWxkRm9ybUdyb3VwKHRoaXMubWFpbkdyb3VwKTtcblxuICAgIHRoaXMuZm9ybVJlYWR5LmVtaXQodGhpcy5mb3JtKTtcblxuICAgIHRoaXMuZm9ybVZhbHVlQ2hhbmdlc1N1YiA9IHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5mb3JtQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEZvcm1Hcm91cChncm91cDogRm9ybUZpZWxkR3JvdXApOiB2b2lkIHtcbiAgICAoZ3JvdXA/LmZpZWxkcyA/PyBbXSkuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB0aGlzLmJ1aWxkVmFsaWRhdG9ycyhmaWVsZCk7XG5cbiAgICAgIHRoaXMuZm9ybS5hZGRDb250cm9sKFxuICAgICAgICBmaWVsZC5uYW1lLFxuICAgICAgICB0aGlzLmZiLmNvbnRyb2woXG4gICAgICAgICAgeyB2YWx1ZTogZmllbGQudmFsdWUgPz8gbnVsbCwgZGlzYWJsZWQ6ICEhKGZpZWxkIGFzIGFueSkuZGlzYWJsZWQgfSxcbiAgICAgICAgICB2YWxpZGF0b3JzLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIChncm91cD8uZ3JvdXBzID8/IFtdKS5mb3JFYWNoKChzdWJHcm91cCkgPT4gdGhpcy5idWlsZEZvcm1Hcm91cChzdWJHcm91cCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFZhbGlkYXRvcnMoZmllbGQ6IEZvcm1GaWVsZCk6IFZhbGlkYXRvckZuW10ge1xuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcbiAgICBjb25zdCBhbnlGaWVsZCA9IGZpZWxkIGFzIGFueTtcblxuICAgIGlmIChmaWVsZC5yZXF1aXJlZCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cblxuICAgIGlmIChhbnlGaWVsZC5taW5MZW5ndGggIT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKE51bWJlcihhbnlGaWVsZC5taW5MZW5ndGgpKSk7XG4gICAgfVxuXG4gICAgaWYgKGFueUZpZWxkLm1heExlbmd0aCAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoTnVtYmVyKGFueUZpZWxkLm1heExlbmd0aCkpKTtcbiAgICB9XG5cbiAgICBpZiAoYW55RmllbGQuaW5wdXRWYWxpZGF0aW9uKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihcbiAgICAgICAgICBuZXcgUmVnRXhwKGFueUZpZWxkLmlucHV0VmFsaWRhdGlvbiBhcyBJbnB1dFZhbGlkYXRpb25FbnVtKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChhbnlGaWVsZC5wYXR0ZXJuKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKGFueUZpZWxkLnBhdHRlcm4pKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgIGNhc2UgRm9ybUlucHV0VHlwZUVudW0uRU1BSUw6XG4gICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLmVtYWlsKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdG9ycztcbiAgfVxuXG4gIGlzSW52YWxpZChmaWVsZDogRm9ybUZpZWxkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYyA9IHRoaXMuZm9ybS5nZXQoZmllbGQubmFtZSk7XG4gICAgcmV0dXJuICEhYyAmJiBjLmludmFsaWQgJiYgKGMudG91Y2hlZCB8fCBjLmRpcnR5KTtcbiAgfVxuXG4gIGdldEVycm9yTWVzc2FnZShmaWVsZDogRm9ybUZpZWxkKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsID0gdGhpcy5mb3JtLmdldChmaWVsZC5uYW1lKTtcbiAgICBpZiAoIWNvbnRyb2wpIHJldHVybiAnJztcblxuICAgIGNvbnN0IGxhbmcgPSB0aGlzLmxhbmd1YWdlO1xuXG4gICAgaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChmaWVsZCBhcyBhbnkpLmVycm9yVGV4dCB8fFxuICAgICAgICBgJHtmaWVsZC5sYWJlbH0gJHt0aGlzLmVycm9yTWVzc2FnZXNbbGFuZ10ucmVxdWlyZWR9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoY29udHJvbC5oYXNFcnJvcignZW1haWwnKSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKGZpZWxkIGFzIGFueSkuZXJyb3JUZXh0IHx8XG4gICAgICAgIGAke2ZpZWxkLmxhYmVsfSAke3RoaXMuZXJyb3JNZXNzYWdlc1tsYW5nXS5lbWFpbH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sLmhhc0Vycm9yKCdwYXR0ZXJuJykpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChmaWVsZCBhcyBhbnkpLmVycm9yVGV4dCB8fFxuICAgICAgICBgJHtmaWVsZC5sYWJlbH0gJHt0aGlzLmVycm9yTWVzc2FnZXNbbGFuZ10ucGF0dGVybn1gXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSkge1xuICAgICAgY29uc3QgcmVxdWlyZWRMZW4gPSBjb250cm9sLmdldEVycm9yKCdtaW5sZW5ndGgnKT8ucmVxdWlyZWRMZW5ndGg7XG4gICAgICByZXR1cm4gYCR7ZmllbGQubGFiZWx9ICR7dGhpcy5lcnJvck1lc3NhZ2VzW2xhbmddLm1pbmxlbmd0aH0gJHtyZXF1aXJlZExlbn0gJHtcbiAgICAgICAgbGFuZyA9PT0gJ2ZyJyA/ICdjYXJhY3TDqHJlcycgOiAnY2hhcmFjdGVycydcbiAgICAgIH1gO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkge1xuICAgICAgY29uc3QgcmVxdWlyZWRMZW4gPSBjb250cm9sLmdldEVycm9yKCdtYXhsZW5ndGgnKT8ucmVxdWlyZWRMZW5ndGg7XG4gICAgICByZXR1cm4gYCR7ZmllbGQubGFiZWx9ICR7dGhpcy5lcnJvck1lc3NhZ2VzW2xhbmddLm1heGxlbmd0aH0gJHtyZXF1aXJlZExlbn0gJHtcbiAgICAgICAgbGFuZyA9PT0gJ2ZyJyA/ICdjYXJhY3TDqHJlcycgOiAnY2hhcmFjdGVycydcbiAgICAgIH1gO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG9uU3VibWl0KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5mb3JtU3VibWl0LmVtaXQodGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgdGhpcy5mb3JtQ2hhbmdlLmVtaXQodGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwicHQtZm9ybS1idWlsZGVyLXdyYXBwZXJcIlxuICBbbmdTdHlsZV09XCJ7IHdpZHRoOiBmb3JtV2lkdGgsIG1heFdpZHRoOiBmb3JtV2lkdGggfVwiXG4+XG4gIDxkaXYgKm5nSWY9XCJ0aXRsZVwiIFtuZ1N0eWxlXT1cInRpdGxlU3R5bGVcIiBjbGFzcz1cImZvcm0tdGl0bGVcIj57eyB0aXRsZSB9fTwvZGl2PlxuXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgbWFpbkdyb3VwLmZpZWxkc1wiPlxuICAgICAgPHB0LWR5bmFtaWMtZm9ybS1maWVsZFxuICAgICAgICBbZmllbGRdPVwiZmllbGRcIlxuICAgICAgICBbZm9ybV09XCJmb3JtXCJcbiAgICAgICAgW2lucHV0V2lkdGhdPVwiaW5wdXRXaWR0aFwiXG4gICAgICA+PC9wdC1keW5hbWljLWZvcm0tZmllbGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBncm91cCBvZiBtYWluR3JvdXAuZ3JvdXBzXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZm9ybS1maWVsZC1ncm91cFwiXG4gICAgICAgIFtuZ1N0eWxlXT1cInsgd2lkdGg6IGdyb3VwLndpZHRoIHx8ICcxMDAlJyB9XCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZ3JvdXAuZmllbGRzXCI+XG4gICAgICAgICAgPHB0LWR5bmFtaWMtZm9ybS1maWVsZFxuICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgICAgICAgW2lucHV0V2lkdGhdPVwiaW5wdXRXaWR0aFwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXgtaXRlbVwiXG4gICAgICAgICAgPjwvcHQtZHluYW1pYy1mb3JtLWZpZWxkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1ncm91cFwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGJ1dHRvbnNcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgcEJ1dHRvblxuICAgICAgICBbbGFiZWxdPVwiYnV0dG9uLnRleHRcIlxuICAgICAgICBbaWNvbl09XCJidXR0b24uaWNvbiB8fCAnJ1wiXG4gICAgICAgIFtjbGFzc109XCJidXR0b24uY29sb3JcIlxuICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgYnV0dG9uLmlzU3VibWl0XG4gICAgICAgICAgICA/IG9uU3VibWl0KClcbiAgICAgICAgICAgIDogYnV0dG9uLmlzQ2xlYXJcbiAgICAgICAgICAgICAgPyBvbkNsZWFyKClcbiAgICAgICAgICAgICAgOiBidXR0b24uYWN0aW9uXG4gICAgICAgICAgICAgICAgPyBidXR0b24uYWN0aW9uKClcbiAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9kaXY+XG4iXX0=
|
|
@@ -14,19 +14,20 @@ export class PTMetricCardComponent {
|
|
|
14
14
|
static { this.DEFAULT_ADDITIONAL_INFO_SIZE = '14px'; }
|
|
15
15
|
static { this.DEFAULT_BACKGROUND_COLOR = '#fff'; }
|
|
16
16
|
isIconObject() {
|
|
17
|
-
return typeof this.cardData.icon === 'object';
|
|
17
|
+
return (typeof this.cardData.icon === 'object' && this.cardData.icon !== null);
|
|
18
18
|
}
|
|
19
19
|
isTitleObject() {
|
|
20
|
-
return typeof this.cardData.title === 'object';
|
|
20
|
+
return (typeof this.cardData.title === 'object' && this.cardData.title !== null);
|
|
21
21
|
}
|
|
22
22
|
isValueObject() {
|
|
23
|
-
return typeof this.cardData.value === 'object';
|
|
23
|
+
return (typeof this.cardData.value === 'object' && this.cardData.value !== null);
|
|
24
24
|
}
|
|
25
25
|
isLabelObject(label) {
|
|
26
|
-
return typeof label === 'object';
|
|
26
|
+
return typeof label === 'object' && label !== null;
|
|
27
27
|
}
|
|
28
28
|
isAdditionalInfoObject() {
|
|
29
|
-
return typeof this.cardData.additionalInfo === 'object'
|
|
29
|
+
return (typeof this.cardData.additionalInfo === 'object' &&
|
|
30
|
+
this.cardData.additionalInfo !== null);
|
|
30
31
|
}
|
|
31
32
|
getIconText() {
|
|
32
33
|
return this.isIconObject()
|
|
@@ -36,35 +37,34 @@ export class PTMetricCardComponent {
|
|
|
36
37
|
getTitleText() {
|
|
37
38
|
return this.isTitleObject()
|
|
38
39
|
? this.cardData.title.text
|
|
39
|
-
: this.cardData.title;
|
|
40
|
+
: this.cardData.title || '';
|
|
40
41
|
}
|
|
41
42
|
getValueText() {
|
|
42
43
|
return this.isValueObject()
|
|
43
44
|
? this.cardData.value.text
|
|
44
|
-
: this.cardData.value;
|
|
45
|
+
: this.cardData.value || '';
|
|
45
46
|
}
|
|
46
47
|
getLabelText() {
|
|
47
48
|
const label = this.cardData.value?.label;
|
|
48
49
|
return this.isLabelObject(label)
|
|
49
50
|
? label.text
|
|
50
|
-
: label;
|
|
51
|
+
: label || '';
|
|
51
52
|
}
|
|
52
53
|
getAdditionalInfoText() {
|
|
53
54
|
return this.isAdditionalInfoObject()
|
|
54
55
|
? this.cardData.additionalInfo.text
|
|
55
|
-
: this.cardData.additionalInfo;
|
|
56
|
+
: this.cardData.additionalInfo || '';
|
|
56
57
|
}
|
|
57
58
|
getIconStyles() {
|
|
58
59
|
if (this.isIconObject()) {
|
|
59
60
|
const icon = this.cardData.icon;
|
|
60
|
-
const shape = icon.shape || 'circular';
|
|
61
|
-
// Determine border radius based on shape
|
|
61
|
+
const shape = icon.shape || 'circular';
|
|
62
62
|
const borderRadius = shape === 'circular' ? '50%' : '8px';
|
|
63
63
|
return {
|
|
64
64
|
color: icon.color || PTMetricCardComponent.DEFAULT_ICON_COLOR,
|
|
65
65
|
fontSize: icon.fontSize || PTMetricCardComponent.DEFAULT_ICON_SIZE,
|
|
66
|
-
|
|
67
|
-
|
|
66
|
+
backgroundColor: icon.backgroundColor || 'transparent',
|
|
67
|
+
borderRadius,
|
|
68
68
|
padding: '6px',
|
|
69
69
|
display: 'inline-block',
|
|
70
70
|
};
|
|
@@ -85,19 +85,43 @@ export class PTMetricCardComponent {
|
|
|
85
85
|
getValueStyles() {
|
|
86
86
|
if (this.isValueObject()) {
|
|
87
87
|
const value = this.cardData.value;
|
|
88
|
+
const position = value.position || 'left';
|
|
88
89
|
return {
|
|
89
90
|
color: value.color || PTMetricCardComponent.DEFAULT_VALUE_COLOR,
|
|
90
91
|
fontSize: value.fontSize || PTMetricCardComponent.DEFAULT_VALUE_SIZE,
|
|
91
92
|
fontWeight: value.fontWeight || 'bold',
|
|
93
|
+
textAlign: position,
|
|
94
|
+
width: '100%',
|
|
95
|
+
display: 'flex',
|
|
96
|
+
justifyContent: position === 'center'
|
|
97
|
+
? 'center'
|
|
98
|
+
: position === 'right'
|
|
99
|
+
? 'flex-end'
|
|
100
|
+
: 'flex-start',
|
|
101
|
+
alignItems: 'center',
|
|
92
102
|
};
|
|
93
103
|
}
|
|
94
|
-
|
|
104
|
+
return {
|
|
105
|
+
color: PTMetricCardComponent.DEFAULT_VALUE_COLOR,
|
|
106
|
+
fontSize: PTMetricCardComponent.DEFAULT_VALUE_SIZE,
|
|
107
|
+
fontWeight: 'bold',
|
|
108
|
+
textAlign: 'left',
|
|
109
|
+
width: '100%',
|
|
110
|
+
display: 'flex',
|
|
111
|
+
justifyContent: 'flex-start',
|
|
112
|
+
alignItems: 'center',
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
getValueTextStyles() {
|
|
116
|
+
if (this.isValueObject()) {
|
|
117
|
+
const value = this.cardData.value;
|
|
95
118
|
return {
|
|
96
|
-
|
|
97
|
-
fontSize: PTMetricCardComponent.DEFAULT_VALUE_SIZE,
|
|
98
|
-
fontWeight: 'bold',
|
|
119
|
+
textAlign: value.position || 'left',
|
|
99
120
|
};
|
|
100
121
|
}
|
|
122
|
+
return {
|
|
123
|
+
textAlign: 'left',
|
|
124
|
+
};
|
|
101
125
|
}
|
|
102
126
|
getLabelStyles(position) {
|
|
103
127
|
const label = this.cardData.value?.label;
|
|
@@ -111,13 +135,11 @@ export class PTMetricCardComponent {
|
|
|
111
135
|
fontWeight: label.fontWeight || 'normal',
|
|
112
136
|
};
|
|
113
137
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
};
|
|
120
|
-
}
|
|
138
|
+
return {
|
|
139
|
+
color: PTMetricCardComponent.DEFAULT_LABEL_COLOR,
|
|
140
|
+
fontSize: PTMetricCardComponent.DEFAULT_LABEL_SIZE,
|
|
141
|
+
fontWeight: 'normal',
|
|
142
|
+
};
|
|
121
143
|
}
|
|
122
144
|
getAdditionalInfoStyles() {
|
|
123
145
|
if (this.isAdditionalInfoObject()) {
|
|
@@ -130,13 +152,11 @@ export class PTMetricCardComponent {
|
|
|
130
152
|
fontWeight: additionalInfo.fontWeight || 'normal',
|
|
131
153
|
};
|
|
132
154
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
};
|
|
139
|
-
}
|
|
155
|
+
return {
|
|
156
|
+
color: PTMetricCardComponent.DEFAULT_ADDITIONAL_INFO_COLOR,
|
|
157
|
+
fontSize: PTMetricCardComponent.DEFAULT_ADDITIONAL_INFO_SIZE,
|
|
158
|
+
fontWeight: 'normal',
|
|
159
|
+
};
|
|
140
160
|
}
|
|
141
161
|
isLabelOnLeft() {
|
|
142
162
|
const label = this.cardData.value?.label;
|
|
@@ -148,27 +168,27 @@ export class PTMetricCardComponent {
|
|
|
148
168
|
}
|
|
149
169
|
getMetricCardContainerStyle() {
|
|
150
170
|
return {
|
|
151
|
-
|
|
152
|
-
|
|
171
|
+
minWidth: this.cardData.size?.minWidth || '100%',
|
|
172
|
+
maxWidth: this.cardData.size?.maxWidth || 'calc(25% - 16px)',
|
|
153
173
|
width: this.cardData.size?.fixedWidth || 'auto',
|
|
154
174
|
};
|
|
155
175
|
}
|
|
156
176
|
getMetricCardStyle() {
|
|
157
177
|
return {
|
|
158
|
-
|
|
178
|
+
backgroundColor: this.cardData.appearance?.backgroundColor ||
|
|
159
179
|
PTMetricCardComponent.DEFAULT_BACKGROUND_COLOR,
|
|
160
|
-
|
|
161
|
-
|
|
180
|
+
minWidth: this.cardData.size?.minWidth || '100%',
|
|
181
|
+
maxWidth: this.cardData.size?.maxWidth || 'calc(25% - 16px)',
|
|
162
182
|
width: this.cardData.size?.fixedWidth || 'auto',
|
|
163
183
|
};
|
|
164
184
|
}
|
|
165
185
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMetricCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
166
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTMetricCardComponent, selector: "pt-metric-card", inputs: { cardData: "cardData" }, ngImport: i0, template: "<div class=\"metric-card-container\" [ngStyle]=\"getMetricCardContainerStyle()\">\n <div\n *ngIf=\"cardData.verticalLine?.show\"\n class=\"vertical-line\"\n [ngStyle]=\"{\n 'background-color': cardData.verticalLine?.color || '#5a67d8'
|
|
186
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTMetricCardComponent, selector: "pt-metric-card", inputs: { cardData: "cardData" }, ngImport: i0, template: "<div class=\"metric-card-container\" [ngStyle]=\"getMetricCardContainerStyle()\">\n <div\n *ngIf=\"cardData.verticalLine?.show\"\n class=\"vertical-line\"\n [ngStyle]=\"{\n 'background-color': cardData.verticalLine?.color || '#5a67d8',\n }\"\n ></div>\n\n <div class=\"metric-card\" [ngStyle]=\"getMetricCardStyle()\">\n <div class=\"metric-card-header\">\n <i\n *ngIf=\"isIconObject()\"\n [ngClass]=\"getIconText()\"\n [ngStyle]=\"getIconStyles()\"\n ></i>\n <i *ngIf=\"!isIconObject()\" [ngClass]=\"cardData.icon\"></i>\n\n <span\n *ngIf=\"isTitleObject()\"\n class=\"metric-card-header-text\"\n [ngStyle]=\"getTitleStyles()\"\n >\n {{ getTitleText() }}\n </span>\n <span *ngIf=\"!isTitleObject()\" class=\"metric-card-header-text\">\n {{ cardData.title }}\n </span>\n </div>\n\n <div class=\"metric-card-content\">\n <div class=\"metric-value\" [ngStyle]=\"getValueStyles()\">\n <span\n *ngIf=\"isLabelOnLeft()\"\n class=\"value-label\"\n [ngStyle]=\"getLabelStyles('left')\"\n >\n {{ getLabelText() }}\n </span>\n\n <span class=\"metric-value-text\" [ngStyle]=\"getValueTextStyles()\">\n {{ getValueText() }}\n </span>\n\n <span\n *ngIf=\"isLabelOnRight()\"\n class=\"value-label\"\n [ngStyle]=\"getLabelStyles('right')\"\n >\n {{ getLabelText() }}\n </span>\n </div>\n\n <div\n *ngIf=\"cardData.divider?.show\"\n class=\"metric-divider\"\n [ngStyle]=\"{ backgroundColor: cardData.divider?.color || '#e2e8f0' }\"\n ></div>\n\n <div\n *ngIf=\"isAdditionalInfoObject()\"\n class=\"metric-additional-info\"\n [ngStyle]=\"getAdditionalInfoStyles()\"\n >\n {{ getAdditionalInfoText() }}\n </div>\n <div\n *ngIf=\"!isAdditionalInfoObject()\"\n class=\"metric-additional-info\"\n [ngStyle]=\"getAdditionalInfoStyles()\"\n >\n {{ cardData.additionalInfo }}\n </div>\n </div>\n </div>\n</div>\n", styles: [".metric-card-container{display:flex;align-items:stretch;box-sizing:border-box}.vertical-line{width:4px;border-radius:8px 0 0 8px;margin-right:-4px;z-index:2}.metric-card{background-color:#fff;border-radius:5px;box-shadow:0 1px 3px #0000001a;padding:16px;display:flex;flex-direction:column;box-sizing:border-box;margin-left:0;width:100%}.metric-card-header{display:flex;align-items:center;margin-bottom:16px}.metric-card-header i.icon-text{margin-right:8px}.metric-card-header-text{margin-left:6px}.metric-card-content{display:flex;flex-direction:column;justify-content:space-between;width:100%;flex:1}.metric-value{width:100%;display:flex;align-items:center;gap:6px;box-sizing:border-box}.metric-value-text{display:inline-block;width:100%;line-height:1.2}.metric-number{font-weight:700}.metric-label,.value-label{margin-left:8px;white-space:nowrap}.metric-divider{width:100%;height:1px;margin:16px 0}.metric-additional-info{margin-top:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
167
187
|
}
|
|
168
188
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTMetricCardComponent, decorators: [{
|
|
169
189
|
type: Component,
|
|
170
|
-
args: [{ selector: 'pt-metric-card', template: "<div class=\"metric-card-container\" [ngStyle]=\"getMetricCardContainerStyle()\">\n <div\n *ngIf=\"cardData.verticalLine?.show\"\n class=\"vertical-line\"\n [ngStyle]=\"{\n 'background-color': cardData.verticalLine?.color || '#5a67d8'
|
|
190
|
+
args: [{ selector: 'pt-metric-card', template: "<div class=\"metric-card-container\" [ngStyle]=\"getMetricCardContainerStyle()\">\n <div\n *ngIf=\"cardData.verticalLine?.show\"\n class=\"vertical-line\"\n [ngStyle]=\"{\n 'background-color': cardData.verticalLine?.color || '#5a67d8',\n }\"\n ></div>\n\n <div class=\"metric-card\" [ngStyle]=\"getMetricCardStyle()\">\n <div class=\"metric-card-header\">\n <i\n *ngIf=\"isIconObject()\"\n [ngClass]=\"getIconText()\"\n [ngStyle]=\"getIconStyles()\"\n ></i>\n <i *ngIf=\"!isIconObject()\" [ngClass]=\"cardData.icon\"></i>\n\n <span\n *ngIf=\"isTitleObject()\"\n class=\"metric-card-header-text\"\n [ngStyle]=\"getTitleStyles()\"\n >\n {{ getTitleText() }}\n </span>\n <span *ngIf=\"!isTitleObject()\" class=\"metric-card-header-text\">\n {{ cardData.title }}\n </span>\n </div>\n\n <div class=\"metric-card-content\">\n <div class=\"metric-value\" [ngStyle]=\"getValueStyles()\">\n <span\n *ngIf=\"isLabelOnLeft()\"\n class=\"value-label\"\n [ngStyle]=\"getLabelStyles('left')\"\n >\n {{ getLabelText() }}\n </span>\n\n <span class=\"metric-value-text\" [ngStyle]=\"getValueTextStyles()\">\n {{ getValueText() }}\n </span>\n\n <span\n *ngIf=\"isLabelOnRight()\"\n class=\"value-label\"\n [ngStyle]=\"getLabelStyles('right')\"\n >\n {{ getLabelText() }}\n </span>\n </div>\n\n <div\n *ngIf=\"cardData.divider?.show\"\n class=\"metric-divider\"\n [ngStyle]=\"{ backgroundColor: cardData.divider?.color || '#e2e8f0' }\"\n ></div>\n\n <div\n *ngIf=\"isAdditionalInfoObject()\"\n class=\"metric-additional-info\"\n [ngStyle]=\"getAdditionalInfoStyles()\"\n >\n {{ getAdditionalInfoText() }}\n </div>\n <div\n *ngIf=\"!isAdditionalInfoObject()\"\n class=\"metric-additional-info\"\n [ngStyle]=\"getAdditionalInfoStyles()\"\n >\n {{ cardData.additionalInfo }}\n </div>\n </div>\n </div>\n</div>\n", styles: [".metric-card-container{display:flex;align-items:stretch;box-sizing:border-box}.vertical-line{width:4px;border-radius:8px 0 0 8px;margin-right:-4px;z-index:2}.metric-card{background-color:#fff;border-radius:5px;box-shadow:0 1px 3px #0000001a;padding:16px;display:flex;flex-direction:column;box-sizing:border-box;margin-left:0;width:100%}.metric-card-header{display:flex;align-items:center;margin-bottom:16px}.metric-card-header i.icon-text{margin-right:8px}.metric-card-header-text{margin-left:6px}.metric-card-content{display:flex;flex-direction:column;justify-content:space-between;width:100%;flex:1}.metric-value{width:100%;display:flex;align-items:center;gap:6px;box-sizing:border-box}.metric-value-text{display:inline-block;width:100%;line-height:1.2}.metric-number{font-weight:700}.metric-label,.value-label{margin-left:8px;white-space:nowrap}.metric-divider{width:100%;height:1px;margin:16px 0}.metric-additional-info{margin-top:8px}\n"] }]
|
|
171
191
|
}], propDecorators: { cardData: [{
|
|
172
192
|
type: Input
|
|
173
193
|
}] } });
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbWV0cmljLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcHJpbWUtdG9vbHMvc3JjL2xpYi9wdC1tZXRyaWMtY2FyZC9wdC1tZXRyaWMtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW1ldHJpYy1jYXJkL3B0LW1ldHJpYy1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFjakQsTUFBTSxPQUFPLHFCQUFxQjthQUNSLHVCQUFrQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQy9CLHNCQUFpQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzNCLHdCQUFtQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQ2hDLHVCQUFrQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzVCLHdCQUFtQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQ2hDLHVCQUFrQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzVCLHdCQUFtQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQ2hDLHVCQUFrQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzVCLGtDQUE2QixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQ3ZDLGlDQUE0QixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQ3RDLDZCQUF3QixHQUFHLE1BQU0sQUFBVCxDQUFVO0lBSTFELFlBQVk7UUFDVixPQUFPLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0lBQ2hELENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUNqRCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sT0FB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QUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksTUFBTTtZQUNuRCxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLGtCQUFrQjtZQUMvRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxJQUFJLE1BQU07U0FDaEQsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsT0FBTztZQUNMLGtCQUFrQixFQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxlQUFlO2dCQUN6QyxxQkFBcUIsQ0FBQyx3QkFBd0I7WUFDaEQsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsSUFBSSxNQUFNO1lBQ25ELFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksa0JBQWtCO1lBQy9ELEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxVQUFVLElBQUksTUFBTTtTQUNoRCxDQUFDO0lBQ0osQ0FBQzsrR0EvTFUscUJBQXFCO21HQUFyQixxQkFBcUIsd0ZDZGxDLGlsRUEwRUE7OzRGRDVEYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZ0JBQWdCOzhCQWlCakIsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIExhYmVsU2V0dGluZyxcbiAgTWV0cmljQ2FyZERhdGEsXG4gIFZhbHVlU2V0dGluZyxcbiAgSWNvblN0eWxlLFxuICBUZXh0U3R5bGUsXG59IGZyb20gJy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3B0LW1ldHJpYy1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3B0LW1ldHJpYy1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHQtbWV0cmljLWNhcmQuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQVE1ldHJpY0NhcmRDb21wb25lbnQge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0lDT05fQ09MT1IgPSAnIzVhNjdkOCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfSUNPTl9TSVpFID0gJzI0cHgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1RJVExFX0NPTE9SID0gJyM1YTY3ZDgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1RJVExFX1NJWkUgPSAnMTZweCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfVkFMVUVfQ09MT1IgPSAnIzJkMzc0OCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfVkFMVUVfU0laRSA9ICczMnB4JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9MQUJFTF9DT0xPUiA9ICcjNzE4MDk2JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9MQUJFTF9TSVpFID0gJzE0cHgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0FERElUSU9OQUxfSU5GT19DT0xPUiA9ICdncmF5JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9BRERJVElPTkFMX0lORk9fU0laRSA9ICcxNHB4JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9CQUNLR1JPVU5EX0NPTE9SID0gJyNmZmYnO1xuXG4gIEBJbnB1dCgpIGNhcmREYXRhITogTWV0cmljQ2FyZERhdGE7XG5cbiAgaXNJY29uT2JqZWN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5jYXJkRGF0YS5pY29uID09PSAnb2JqZWN0JztcbiAgfVxuXG4gIGlzVGl0bGVPYmplY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLmNhcmREYXRhLnRpdGxlID09PSAnb2JqZWN0JztcbiAgfVxuXG4gIGlzVmFsdWVPYmplY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLmNhcmREYXRhLnZhbHVlID09PSAnb2JqZWN0JztcbiAgfVxuXG4gIGlzTGFiZWxPYmplY3QobGFiZWw6IExhYmVsU2V0dGluZyB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgbGFiZWwgPT09ICdvYmplY3QnO1xuICB9XG5cbiAgaXNBZGRpdGlvbmFsSW5mb09iamVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuY2FyZERhdGEuYWRkaXRpb25hbEluZm8gPT09ICdvYmplY3QnO1xuICB9XG5cbiAgZ2V0SWNvblRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0ljb25PYmplY3QoKVxuICAgICAgPyAodGhpcy5jYXJkRGF0YS5pY29uIGFzIEljb25TdHlsZSkuY29kZVxuICAgICAgOiAodGhpcy5jYXJkRGF0YS5pY29uIGFzIHN0cmluZyk7XG4gIH1cblxuICBnZXRUaXRsZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1RpdGxlT2JqZWN0KClcbiAgICAgID8gKHRoaXMuY2FyZERhdGEudGl0bGUgYXMgVGV4dFN0eWxlKS50ZXh0XG4gICAgICA6ICh0aGlzLmNhcmREYXRhLnRpdGxlIGFzIHN0cmluZyk7XG4gIH1cblxuICBnZXRWYWx1ZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbHVlT2JqZWN0KClcbiAgICAgID8gKHRoaXMuY2FyZERhdGEudmFsdWUgYXMgVmFsdWVTZXR0aW5nKS50ZXh0XG4gICAgICA6ICh0aGlzLmNhcmREYXRhLnZhbHVlIGFzIHN0cmluZyk7XG4gIH1cblxuICBnZXRMYWJlbFRleHQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBsYWJlbCA9ICh0aGlzLmNhcmREYXRhLnZhbHVlIGFzIFZhbHVlU2V0dGluZyk/LmxhYmVsO1xuICAgIHJldHVybiB0aGlzLmlzTGFiZWxPYmplY3QobGFiZWwpXG4gICAgICA/IChsYWJlbCBhcyBMYWJlbFNldHRpbmcpLnRleHRcbiAgICAgIDogKGxhYmVsIGFzIHN0cmluZyk7XG4gIH1cblxuICBnZXRBZGRpdGlvbmFsSW5mb1RleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0FkZGl0aW9uYWxJbmZvT2JqZWN0KClcbiAgICAgID8gKHRoaXMuY2FyZERhdGEuYWRkaXRpb25hbEluZm8gYXMgVGV4dFN0eWxlKS50ZXh0XG4gICAgICA6ICh0aGlzLmNhcmREYXRhLmFkZGl0aW9uYWxJbmZvIGFzIHN0cmluZyk7XG4gIH1cblxuICBnZXRJY29uU3R5bGVzKCkge1xuICAgIGlmICh0aGlzLmlzSWNvbk9iamVjdCgpKSB7XG4gICAgICBjb25zdCBpY29uID0gdGhpcy5jYXJkRGF0YS5pY29uIGFzIEljb25TdHlsZTtcbiAgICAgIGNvbnN0IHNoYXBlID0gaWNvbi5zaGFwZSB8fCAnY2lyY3VsYXInOyAvLyBEZWZhdWx0IHRvICdjaXJjdWxhcicgaWYgbm90IHNwZWNpZmllZFxuXG4gICAgICAvLyBEZXRlcm1pbmUgYm9yZGVyIHJhZGl1cyBiYXNlZCBvbiBzaGFwZVxuICAgICAgY29uc3QgYm9yZGVyUmFkaXVzID0gc2hhcGUgPT09ICdjaXJjdWxhcicgPyAnNTAlJyA6ICc4cHgnO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogaWNvbi5jb2xvciB8fCBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9JQ09OX0NPTE9SLFxuICAgICAgICBmb250U2l6ZTogaWNvbi5mb250U2l6ZSB8fCBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9JQ09OX1NJWkUsXG4gICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogaWNvbi5iYWNrZ3JvdW5kQ29sb3IgfHwgJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiBib3JkZXJSYWRpdXMsXG4gICAgICAgIHBhZGRpbmc6ICc2cHgnLFxuICAgICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGdldFRpdGxlU3R5bGVzKCkge1xuICAgIGlmICh0aGlzLmlzVGl0bGVPYmplY3QoKSkge1xuICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLmNhcmREYXRhLnRpdGxlIGFzIFRleHRTdHlsZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOiB0aXRsZS5jb2xvciB8fCBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9USVRMRV9DT0xPUixcbiAgICAgICAgZm9udFNpemU6IHRpdGxlLmZvbnRTaXplIHx8IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX1RJVExFX1NJWkUsXG4gICAgICAgIGZvbnRXZWlnaHQ6IHRpdGxlLmZvbnRXZWlnaHQgfHwgJ25vcm1hbCcsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH1cblxuICBnZXRWYWx1ZVN0eWxlcygpIHtcbiAgICBpZiAodGhpcy5pc1ZhbHVlT2JqZWN0KCkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jYXJkRGF0YS52YWx1ZSBhcyBWYWx1ZVNldHRpbmc7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogdmFsdWUuY29sb3IgfHwgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfVkFMVUVfQ09MT1IsXG4gICAgICAgIGZvbnRTaXplOiB2YWx1ZS5mb250U2l6ZSB8fCBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9WQUxVRV9TSVpFLFxuICAgICAgICBmb250V2VpZ2h0OiB2YWx1ZS5mb250V2VpZ2h0IHx8ICdib2xkJyxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOiBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9WQUxVRV9DT0xPUixcbiAgICAgICAgZm9udFNpemU6IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX1ZBTFVFX1NJWkUsXG4gICAgICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgZ2V0TGFiZWxTdHlsZXMocG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcpIHtcbiAgICBjb25zdCBsYWJlbCA9ICh0aGlzLmNhcmREYXRhLnZhbHVlIGFzIFZhbHVlU2V0dGluZyk/LmxhYmVsO1xuICAgIGlmIChcbiAgICAgIHRoaXMuaXNMYWJlbE9iamVjdChsYWJlbCkgJiZcbiAgICAgIChsYWJlbCBhcyBMYWJlbFNldHRpbmcpLnBvc2l0aW9uID09PSBwb3NpdGlvblxuICAgICkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6XG4gICAgICAgICAgKGxhYmVsIGFzIExhYmVsU2V0dGluZykuY29sb3IgfHxcbiAgICAgICAgICBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9MQUJFTF9DT0xPUixcbiAgICAgICAgZm9udFNpemU6XG4gICAgICAgICAgKGxhYmVsIGFzIExhYmVsU2V0dGluZykuZm9udFNpemUgfHxcbiAgICAgICAgICBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9MQUJFTF9TSVpFLFxuICAgICAgICBmb250V2VpZ2h0OiAobGFiZWwgYXMgTGFiZWxTZXR0aW5nKS5mb250V2VpZ2h0IHx8ICdub3JtYWwnLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX0xBQkVMX0NPTE9SLFxuICAgICAgICBmb250U2l6ZTogUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfTEFCRUxfU0laRSxcbiAgICAgICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGdldEFkZGl0aW9uYWxJbmZvU3R5bGVzKCkge1xuICAgIGlmICh0aGlzLmlzQWRkaXRpb25hbEluZm9PYmplY3QoKSkge1xuICAgICAgY29uc3QgYWRkaXRpb25hbEluZm8gPSB0aGlzLmNhcmREYXRhLmFkZGl0aW9uYWxJbmZvIGFzIFRleHRTdHlsZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOlxuICAgICAgICAgIGFkZGl0aW9uYWxJbmZvLmNvbG9yIHx8XG4gICAgICAgICAgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfQURESVRJT05BTF9JTkZPX0NPTE9SLFxuICAgICAgICBmb250U2l6ZTpcbiAgICAgICAgICBhZGRpdGlvbmFsSW5mby5mb250U2l6ZSB8fFxuICAgICAgICAgIFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX0FERElUSU9OQUxfSU5GT19TSVpFLFxuICAgICAgICBmb250V2VpZ2h0OiBhZGRpdGlvbmFsSW5mby5mb250V2VpZ2h0IHx8ICdub3JtYWwnLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX0FERElUSU9OQUxfSU5GT19DT0xPUixcbiAgICAgICAgZm9udFNpemU6IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX0FERElUSU9OQUxfSU5GT19TSVpFLFxuICAgICAgICBmb250V2VpZ2h0OiAnbm9ybWFsJyxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgaXNMYWJlbE9uTGVmdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBsYWJlbCA9ICh0aGlzLmNhcmREYXRhLnZhbHVlIGFzIFZhbHVlU2V0dGluZyk/LmxhYmVsO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzTGFiZWxPYmplY3QobGFiZWwpICYmIChsYWJlbCBhcyBMYWJlbFNldHRpbmcpLnBvc2l0aW9uID09PSAnbGVmdCdcbiAgICApO1xuICB9XG5cbiAgaXNMYWJlbE9uUmlnaHQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbGFiZWwgPSAodGhpcy5jYXJkRGF0YS52YWx1ZSBhcyBWYWx1ZVNldHRpbmcpPy5sYWJlbDtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc0xhYmVsT2JqZWN0KGxhYmVsKSAmJiAobGFiZWwgYXMgTGFiZWxTZXR0aW5nKS5wb3NpdGlvbiA9PT0gJ3JpZ2h0J1xuICAgICk7XG4gIH1cblxuICBnZXRNZXRyaWNDYXJkQ29udGFpbmVyU3R5bGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdtaW4td2lkdGgnOiB0aGlzLmNhcmREYXRhLnNpemU/Lm1pbldpZHRoIHx8ICcxMDAlJyxcbiAgICAgICdtYXgtd2lkdGgnOiB0aGlzLmNhcmREYXRhLnNpemU/Lm1heFdpZHRoIHx8ICdjYWxjKDI1JSAtIDE2cHgpJyxcbiAgICAgIHdpZHRoOiB0aGlzLmNhcmREYXRhLnNpemU/LmZpeGVkV2lkdGggfHwgJ2F1dG8nLFxuICAgIH07XG4gIH1cblxuICBnZXRNZXRyaWNDYXJkU3R5bGUoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzpcbiAgICAgICAgdGhpcy5jYXJkRGF0YS5hcHBlYXJhbmNlPy5iYWNrZ3JvdW5kQ29sb3IgfHxcbiAgICAgICAgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfQkFDS0dST1VORF9DT0xPUixcbiAgICAgICdtaW4td2lkdGgnOiB0aGlzLmNhcmREYXRhLnNpemU/Lm1pbldpZHRoIHx8ICcxMDAlJyxcbiAgICAgICdtYXgtd2lkdGgnOiB0aGlzLmNhcmREYXRhLnNpemU/Lm1heFdpZHRoIHx8ICdjYWxjKDI1JSAtIDE2cHgpJyxcbiAgICAgIHdpZHRoOiB0aGlzLmNhcmREYXRhLnNpemU/LmZpeGVkV2lkdGggfHwgJ2F1dG8nLFxuICAgIH07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtZXRyaWMtY2FyZC1jb250YWluZXJcIiBbbmdTdHlsZV09XCJnZXRNZXRyaWNDYXJkQ29udGFpbmVyU3R5bGUoKVwiPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJjYXJkRGF0YS52ZXJ0aWNhbExpbmU/LnNob3dcIlxuICAgIGNsYXNzPVwidmVydGljYWwtbGluZVwiXG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgJ2JhY2tncm91bmQtY29sb3InOiBjYXJkRGF0YS52ZXJ0aWNhbExpbmU/LmNvbG9yIHx8ICcjNWE2N2Q4J1xuICAgIH1cIlxuICA+PC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1ldHJpYy1jYXJkXCIgW25nU3R5bGVdPVwiZ2V0TWV0cmljQ2FyZFN0eWxlKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWV0cmljLWNhcmQtaGVhZGVyXCI+XG4gICAgICA8aVxuICAgICAgICAqbmdJZj1cImlzSWNvbk9iamVjdCgpXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0SWNvblRleHQoKVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cImdldEljb25TdHlsZXMoKVwiXG4gICAgICA+PC9pPlxuICAgICAgPGkgKm5nSWY9XCIhaXNJY29uT2JqZWN0KClcIiBbbmdDbGFzc109XCJjYXJkRGF0YS5pY29uXCI+PC9pPlxuXG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImlzVGl0bGVPYmplY3QoKVwiXG4gICAgICAgIGNsYXNzPVwibWV0cmljLWNhcmQtaGVhZGVyLXRleHRcIlxuICAgICAgICBbbmdTdHlsZV09XCJnZXRUaXRsZVN0eWxlcygpXCJcbiAgICAgID5cbiAgICAgICAge3sgZ2V0VGl0bGVUZXh0KCkgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIWlzVGl0bGVPYmplY3QoKVwiIGNsYXNzPVwibWV0cmljLWNhcmQtaGVhZGVyLXRleHRcIj5cbiAgICAgICAge3sgY2FyZERhdGEudGl0bGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtZXRyaWMtY2FyZC1jb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWV0cmljLXZhbHVlXCIgW25nU3R5bGVdPVwiZ2V0VmFsdWVTdHlsZXMoKVwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiaXNMYWJlbE9uTGVmdCgpXCJcbiAgICAgICAgICBjbGFzcz1cInZhbHVlLWxhYmVsXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJnZXRMYWJlbFN0eWxlcygnbGVmdCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGdldExhYmVsVGV4dCgpIH19XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8c3BhbiBbbmdTdHlsZV09XCJnZXRWYWx1ZVN0eWxlcygpXCI+e3sgZ2V0VmFsdWVUZXh0KCkgfX08L3NwYW4+XG5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cImlzTGFiZWxPblJpZ2h0KClcIlxuICAgICAgICAgIGNsYXNzPVwidmFsdWUtbGFiZWxcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cImdldExhYmVsU3R5bGVzKCdyaWdodCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGdldExhYmVsVGV4dCgpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiY2FyZERhdGEuZGl2aWRlcj8uc2hvd1wiXG4gICAgICAgIGNsYXNzPVwibWV0cmljLWRpdmlkZXJcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7IGJhY2tncm91bmRDb2xvcjogY2FyZERhdGEuZGl2aWRlcj8uY29sb3IgfHwgJyNlMmU4ZjAnIH1cIlxuICAgICAgPjwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaXNBZGRpdGlvbmFsSW5mb09iamVjdCgpXCJcbiAgICAgICAgY2xhc3M9XCJtZXRyaWMtYWRkaXRpb25hbC1pbmZvXCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0QWRkaXRpb25hbEluZm9TdHlsZXMoKVwiXG4gICAgICA+XG4gICAgICAgIHt7IGdldEFkZGl0aW9uYWxJbmZvVGV4dCgpIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCIhaXNBZGRpdGlvbmFsSW5mb09iamVjdCgpXCJcbiAgICAgICAgY2xhc3M9XCJtZXRyaWMtYWRkaXRpb25hbC1pbmZvXCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0QWRkaXRpb25hbEluZm9TdHlsZXMoKVwiXG4gICAgICA+XG4gICAgICAgIHt7IGNhcmREYXRhLmFkZGl0aW9uYWxJbmZvIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtbWV0cmljLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctcHJpbWUtdG9vbHMvc3JjL2xpYi9wdC1tZXRyaWMtY2FyZC9wdC1tZXRyaWMtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LW1ldHJpYy1jYXJkL3B0LW1ldHJpYy1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFjakQsTUFBTSxPQUFPLHFCQUFxQjthQUNSLHVCQUFrQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQy9CLHNCQUFpQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzNCLHdCQUFtQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQ2hDLHVCQUFrQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzVCLHdCQUFtQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQ2hDLHVCQUFrQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzVCLHdCQUFtQixHQUFHLFNBQVMsQUFBWixDQUFhO2FBQ2hDLHVCQUFrQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQzVCLGtDQUE2QixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQ3ZDLGlDQUE0QixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQ3RDLDZCQUF3QixHQUFHLE1BQU0sQUFBVCxDQUFVO0lBSTFELFlBQVk7UUFDVixPQUFPLENBQ0wsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUN0RSxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLENBQ0wsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFD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QVUsSUFBSSxNQUFNO1NBQ2hELENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE9BQU87WUFDTCxlQUFlLEVBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsZUFBZTtnQkFDekMscUJBQXFCLENBQUMsd0JBQXdCO1lBQ2hELFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksTUFBTTtZQUNoRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLGtCQUFrQjtZQUM1RCxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxJQUFJLE1BQU07U0FDaEQsQ0FBQztJQUNKLENBQUM7K0dBNU9VLHFCQUFxQjttR0FBckIscUJBQXFCLHdGQ2RsQyx3b0VBNEVBOzs0RkQ5RGEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGdCQUFnQjs4QkFpQmpCLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBMYWJlbFNldHRpbmcsXG4gIE1ldHJpY0NhcmREYXRhLFxuICBWYWx1ZVNldHRpbmcsXG4gIEljb25TdHlsZSxcbiAgVGV4dFN0eWxlLFxufSBmcm9tICcuLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwdC1tZXRyaWMtY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wdC1tZXRyaWMtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3B0LW1ldHJpYy1jYXJkLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUFRNZXRyaWNDYXJkQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9JQ09OX0NPTE9SID0gJyM1YTY3ZDgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0lDT05fU0laRSA9ICcyNHB4JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9USVRMRV9DT0xPUiA9ICcjNWE2N2Q4JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9USVRMRV9TSVpFID0gJzE2cHgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1ZBTFVFX0NPTE9SID0gJyMyZDM3NDgnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1ZBTFVFX1NJWkUgPSAnMzJweCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfTEFCRUxfQ09MT1IgPSAnIzcxODA5Nic7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfTEFCRUxfU0laRSA9ICcxNHB4JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9BRERJVElPTkFMX0lORk9fQ09MT1IgPSAnZ3JheSc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfQURESVRJT05BTF9JTkZPX1NJWkUgPSAnMTRweCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfQkFDS0dST1VORF9DT0xPUiA9ICcjZmZmJztcblxuICBASW5wdXQoKSBjYXJkRGF0YSE6IE1ldHJpY0NhcmREYXRhO1xuXG4gIGlzSWNvbk9iamVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdHlwZW9mIHRoaXMuY2FyZERhdGEuaWNvbiA9PT0gJ29iamVjdCcgJiYgdGhpcy5jYXJkRGF0YS5pY29uICE9PSBudWxsXG4gICAgKTtcbiAgfVxuXG4gIGlzVGl0bGVPYmplY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB0aGlzLmNhcmREYXRhLnRpdGxlID09PSAnb2JqZWN0JyAmJiB0aGlzLmNhcmREYXRhLnRpdGxlICE9PSBudWxsXG4gICAgKTtcbiAgfVxuXG4gIGlzVmFsdWVPYmplY3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGVvZiB0aGlzLmNhcmREYXRhLnZhbHVlID09PSAnb2JqZWN0JyAmJiB0aGlzLmNhcmREYXRhLnZhbHVlICE9PSBudWxsXG4gICAgKTtcbiAgfVxuXG4gIGlzTGFiZWxPYmplY3QobGFiZWw6IExhYmVsU2V0dGluZyB8IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgbGFiZWwgPT09ICdvYmplY3QnICYmIGxhYmVsICE9PSBudWxsO1xuICB9XG5cbiAgaXNBZGRpdGlvbmFsSW5mb09iamVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdHlwZW9mIHRoaXMuY2FyZERhdGEuYWRkaXRpb25hbEluZm8gPT09ICdvYmplY3QnICYmXG4gICAgICB0aGlzLmNhcmREYXRhLmFkZGl0aW9uYWxJbmZvICE9PSBudWxsXG4gICAgKTtcbiAgfVxuXG4gIGdldEljb25UZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNJY29uT2JqZWN0KClcbiAgICAgID8gKHRoaXMuY2FyZERhdGEuaWNvbiBhcyBJY29uU3R5bGUpLmNvZGVcbiAgICAgIDogKHRoaXMuY2FyZERhdGEuaWNvbiBhcyBzdHJpbmcpO1xuICB9XG5cbiAgZ2V0VGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNUaXRsZU9iamVjdCgpXG4gICAgICA/ICh0aGlzLmNhcmREYXRhLnRpdGxlIGFzIFRleHRTdHlsZSkudGV4dFxuICAgICAgOiAodGhpcy5jYXJkRGF0YS50aXRsZSBhcyBzdHJpbmcpIHx8ICcnO1xuICB9XG5cbiAgZ2V0VmFsdWVUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNWYWx1ZU9iamVjdCgpXG4gICAgICA/ICh0aGlzLmNhcmREYXRhLnZhbHVlIGFzIFZhbHVlU2V0dGluZykudGV4dFxuICAgICAgOiAodGhpcy5jYXJkRGF0YS52YWx1ZSBhcyBzdHJpbmcpIHx8ICcnO1xuICB9XG5cbiAgZ2V0TGFiZWxUZXh0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgbGFiZWwgPSAodGhpcy5jYXJkRGF0YS52YWx1ZSBhcyBWYWx1ZVNldHRpbmcpPy5sYWJlbDtcbiAgICByZXR1cm4gdGhpcy5pc0xhYmVsT2JqZWN0KGxhYmVsKVxuICAgICAgPyAobGFiZWwgYXMgTGFiZWxTZXR0aW5nKS50ZXh0XG4gICAgICA6IChsYWJlbCBhcyBzdHJpbmcpIHx8ICcnO1xuICB9XG5cbiAgZ2V0QWRkaXRpb25hbEluZm9UZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNBZGRpdGlvbmFsSW5mb09iamVjdCgpXG4gICAgICA/ICh0aGlzLmNhcmREYXRhLmFkZGl0aW9uYWxJbmZvIGFzIFRleHRTdHlsZSkudGV4dFxuICAgICAgOiAodGhpcy5jYXJkRGF0YS5hZGRpdGlvbmFsSW5mbyBhcyBzdHJpbmcpIHx8ICcnO1xuICB9XG5cbiAgZ2V0SWNvblN0eWxlcygpIHtcbiAgICBpZiAodGhpcy5pc0ljb25PYmplY3QoKSkge1xuICAgICAgY29uc3QgaWNvbiA9IHRoaXMuY2FyZERhdGEuaWNvbiBhcyBJY29uU3R5bGU7XG4gICAgICBjb25zdCBzaGFwZSA9IGljb24uc2hhcGUgfHwgJ2NpcmN1bGFyJztcbiAgICAgIGNvbnN0IGJvcmRlclJhZGl1cyA9IHNoYXBlID09PSAnY2lyY3VsYXInID8gJzUwJScgOiAnOHB4JztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6IGljb24uY29sb3IgfHwgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfSUNPTl9DT0xPUixcbiAgICAgICAgZm9udFNpemU6IGljb24uZm9udFNpemUgfHwgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfSUNPTl9TSVpFLFxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGljb24uYmFja2dyb3VuZENvbG9yIHx8ICd0cmFuc3BhcmVudCcsXG4gICAgICAgIGJvcmRlclJhZGl1cyxcbiAgICAgICAgcGFkZGluZzogJzZweCcsXG4gICAgICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge307XG4gIH1cblxuICBnZXRUaXRsZVN0eWxlcygpIHtcbiAgICBpZiAodGhpcy5pc1RpdGxlT2JqZWN0KCkpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy5jYXJkRGF0YS50aXRsZSBhcyBUZXh0U3R5bGU7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOiB0aXRsZS5jb2xvciB8fCBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9USVRMRV9DT0xPUixcbiAgICAgICAgZm9udFNpemU6IHRpdGxlLmZvbnRTaXplIHx8IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX1RJVExFX1NJWkUsXG4gICAgICAgIGZvbnRXZWlnaHQ6IHRpdGxlLmZvbnRXZWlnaHQgfHwgJ25vcm1hbCcsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGdldFZhbHVlU3R5bGVzKCkge1xuICAgIGlmICh0aGlzLmlzVmFsdWVPYmplY3QoKSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmNhcmREYXRhLnZhbHVlIGFzIFZhbHVlU2V0dGluZztcbiAgICAgIGNvbnN0IHBvc2l0aW9uID0gdmFsdWUucG9zaXRpb24gfHwgJ2xlZnQnO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb2xvcjogdmFsdWUuY29sb3IgfHwgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfVkFMVUVfQ09MT1IsXG4gICAgICAgIGZvbnRTaXplOiB2YWx1ZS5mb250U2l6ZSB8fCBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9WQUxVRV9TSVpFLFxuICAgICAgICBmb250V2VpZ2h0OiB2YWx1ZS5mb250V2VpZ2h0IHx8ICdib2xkJyxcbiAgICAgICAgdGV4dEFsaWduOiBwb3NpdGlvbixcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICBqdXN0aWZ5Q29udGVudDpcbiAgICAgICAgICBwb3NpdGlvbiA9PT0gJ2NlbnRlcidcbiAgICAgICAgICAgID8gJ2NlbnRlcidcbiAgICAgICAgICAgIDogcG9zaXRpb24gPT09ICdyaWdodCdcbiAgICAgICAgICAgICAgPyAnZmxleC1lbmQnXG4gICAgICAgICAgICAgIDogJ2ZsZXgtc3RhcnQnLFxuICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9WQUxVRV9DT0xPUixcbiAgICAgIGZvbnRTaXplOiBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9WQUxVRV9TSVpFLFxuICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAganVzdGlmeUNvbnRlbnQ6ICdmbGV4LXN0YXJ0JyxcbiAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgIH07XG4gIH1cblxuICBnZXRWYWx1ZVRleHRTdHlsZXMoKSB7XG4gICAgaWYgKHRoaXMuaXNWYWx1ZU9iamVjdCgpKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuY2FyZERhdGEudmFsdWUgYXMgVmFsdWVTZXR0aW5nO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICB0ZXh0QWxpZ246IHZhbHVlLnBvc2l0aW9uIHx8ICdsZWZ0JyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgIH07XG4gIH1cblxuICBnZXRMYWJlbFN0eWxlcyhwb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0Jykge1xuICAgIGNvbnN0IGxhYmVsID0gKHRoaXMuY2FyZERhdGEudmFsdWUgYXMgVmFsdWVTZXR0aW5nKT8ubGFiZWw7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmlzTGFiZWxPYmplY3QobGFiZWwpICYmXG4gICAgICAobGFiZWwgYXMgTGFiZWxTZXR0aW5nKS5wb3NpdGlvbiA9PT0gcG9zaXRpb25cbiAgICApIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNvbG9yOlxuICAgICAgICAgIChsYWJlbCBhcyBMYWJlbFNldHRpbmcpLmNvbG9yIHx8XG4gICAgICAgICAgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfTEFCRUxfQ09MT1IsXG4gICAgICAgIGZvbnRTaXplOlxuICAgICAgICAgIChsYWJlbCBhcyBMYWJlbFNldHRpbmcpLmZvbnRTaXplIHx8XG4gICAgICAgICAgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfTEFCRUxfU0laRSxcbiAgICAgICAgZm9udFdlaWdodDogKGxhYmVsIGFzIExhYmVsU2V0dGluZykuZm9udFdlaWdodCB8fCAnbm9ybWFsJyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbG9yOiBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9MQUJFTF9DT0xPUixcbiAgICAgIGZvbnRTaXplOiBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9MQUJFTF9TSVpFLFxuICAgICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgfTtcbiAgfVxuXG4gIGdldEFkZGl0aW9uYWxJbmZvU3R5bGVzKCkge1xuICAgIGlmICh0aGlzLmlzQWRkaXRpb25hbEluZm9PYmplY3QoKSkge1xuICAgICAgY29uc3QgYWRkaXRpb25hbEluZm8gPSB0aGlzLmNhcmREYXRhLmFkZGl0aW9uYWxJbmZvIGFzIFRleHRTdHlsZTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29sb3I6XG4gICAgICAgICAgYWRkaXRpb25hbEluZm8uY29sb3IgfHxcbiAgICAgICAgICBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9BRERJVElPTkFMX0lORk9fQ09MT1IsXG4gICAgICAgIGZvbnRTaXplOlxuICAgICAgICAgIGFkZGl0aW9uYWxJbmZvLmZvbnRTaXplIHx8XG4gICAgICAgICAgUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfQURESVRJT05BTF9JTkZPX1NJWkUsXG4gICAgICAgIGZvbnRXZWlnaHQ6IGFkZGl0aW9uYWxJbmZvLmZvbnRXZWlnaHQgfHwgJ25vcm1hbCcsXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjb2xvcjogUFRNZXRyaWNDYXJkQ29tcG9uZW50LkRFRkFVTFRfQURESVRJT05BTF9JTkZPX0NPTE9SLFxuICAgICAgZm9udFNpemU6IFBUTWV0cmljQ2FyZENvbXBvbmVudC5ERUZBVUxUX0FERElUSU9OQUxfSU5GT19TSVpFLFxuICAgICAgZm9udFdlaWdodDogJ25vcm1hbCcsXG4gICAgfTtcbiAgfVxuXG4gIGlzTGFiZWxPbkxlZnQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbGFiZWwgPSAodGhpcy5jYXJkRGF0YS52YWx1ZSBhcyBWYWx1ZVNldHRpbmcpPy5sYWJlbDtcblxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzTGFiZWxPYmplY3QobGFiZWwpICYmIChsYWJlbCBhcyBMYWJlbFNldHRpbmcpLnBvc2l0aW9uID09PSAnbGVmdCdcbiAgICApO1xuICB9XG5cbiAgaXNMYWJlbE9uUmlnaHQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbGFiZWwgPSAodGhpcy5jYXJkRGF0YS52YWx1ZSBhcyBWYWx1ZVNldHRpbmcpPy5sYWJlbDtcblxuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzTGFiZWxPYmplY3QobGFiZWwpICYmIChsYWJlbCBhcyBMYWJlbFNldHRpbmcpLnBvc2l0aW9uID09PSAncmlnaHQnXG4gICAgKTtcbiAgfVxuXG4gIGdldE1ldHJpY0NhcmRDb250YWluZXJTdHlsZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbWluV2lkdGg6IHRoaXMuY2FyZERhdGEuc2l6ZT8ubWluV2lkdGggfHwgJzEwMCUnLFxuICAgICAgbWF4V2lkdGg6IHRoaXMuY2FyZERhdGEuc2l6ZT8ubWF4V2lkdGggfHwgJ2NhbGMoMjUlIC0gMTZweCknLFxuICAgICAgd2lkdGg6IHRoaXMuY2FyZERhdGEuc2l6ZT8uZml4ZWRXaWR0aCB8fCAnYXV0bycsXG4gICAgfTtcbiAgfVxuXG4gIGdldE1ldHJpY0NhcmRTdHlsZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYmFja2dyb3VuZENvbG9yOlxuICAgICAgICB0aGlzLmNhcmREYXRhLmFwcGVhcmFuY2U/LmJhY2tncm91bmRDb2xvciB8fFxuICAgICAgICBQVE1ldHJpY0NhcmRDb21wb25lbnQuREVGQVVMVF9CQUNLR1JPVU5EX0NPTE9SLFxuICAgICAgbWluV2lkdGg6IHRoaXMuY2FyZERhdGEuc2l6ZT8ubWluV2lkdGggfHwgJzEwMCUnLFxuICAgICAgbWF4V2lkdGg6IHRoaXMuY2FyZERhdGEuc2l6ZT8ubWF4V2lkdGggfHwgJ2NhbGMoMjUlIC0gMTZweCknLFxuICAgICAgd2lkdGg6IHRoaXMuY2FyZERhdGEuc2l6ZT8uZml4ZWRXaWR0aCB8fCAnYXV0bycsXG4gICAgfTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1ldHJpYy1jYXJkLWNvbnRhaW5lclwiIFtuZ1N0eWxlXT1cImdldE1ldHJpY0NhcmRDb250YWluZXJTdHlsZSgpXCI+XG4gIDxkaXZcbiAgICAqbmdJZj1cImNhcmREYXRhLnZlcnRpY2FsTGluZT8uc2hvd1wiXG4gICAgY2xhc3M9XCJ2ZXJ0aWNhbC1saW5lXCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAnYmFja2dyb3VuZC1jb2xvcic6IGNhcmREYXRhLnZlcnRpY2FsTGluZT8uY29sb3IgfHwgJyM1YTY3ZDgnLFxuICAgIH1cIlxuICA+PC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm1ldHJpYy1jYXJkXCIgW25nU3R5bGVdPVwiZ2V0TWV0cmljQ2FyZFN0eWxlKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwibWV0cmljLWNhcmQtaGVhZGVyXCI+XG4gICAgICA8aVxuICAgICAgICAqbmdJZj1cImlzSWNvbk9iamVjdCgpXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiZ2V0SWNvblRleHQoKVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cImdldEljb25TdHlsZXMoKVwiXG4gICAgICA+PC9pPlxuICAgICAgPGkgKm5nSWY9XCIhaXNJY29uT2JqZWN0KClcIiBbbmdDbGFzc109XCJjYXJkRGF0YS5pY29uXCI+PC9pPlxuXG4gICAgICA8c3BhblxuICAgICAgICAqbmdJZj1cImlzVGl0bGVPYmplY3QoKVwiXG4gICAgICAgIGNsYXNzPVwibWV0cmljLWNhcmQtaGVhZGVyLXRleHRcIlxuICAgICAgICBbbmdTdHlsZV09XCJnZXRUaXRsZVN0eWxlcygpXCJcbiAgICAgID5cbiAgICAgICAge3sgZ2V0VGl0bGVUZXh0KCkgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiIWlzVGl0bGVPYmplY3QoKVwiIGNsYXNzPVwibWV0cmljLWNhcmQtaGVhZGVyLXRleHRcIj5cbiAgICAgICAge3sgY2FyZERhdGEudGl0bGUgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtZXRyaWMtY2FyZC1jb250ZW50XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWV0cmljLXZhbHVlXCIgW25nU3R5bGVdPVwiZ2V0VmFsdWVTdHlsZXMoKVwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICpuZ0lmPVwiaXNMYWJlbE9uTGVmdCgpXCJcbiAgICAgICAgICBjbGFzcz1cInZhbHVlLWxhYmVsXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJnZXRMYWJlbFN0eWxlcygnbGVmdCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGdldExhYmVsVGV4dCgpIH19XG4gICAgICAgIDwvc3Bhbj5cblxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1ldHJpYy12YWx1ZS10ZXh0XCIgW25nU3R5bGVdPVwiZ2V0VmFsdWVUZXh0U3R5bGVzKClcIj5cbiAgICAgICAgICB7eyBnZXRWYWx1ZVRleHQoKSB9fVxuICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAqbmdJZj1cImlzTGFiZWxPblJpZ2h0KClcIlxuICAgICAgICAgIGNsYXNzPVwidmFsdWUtbGFiZWxcIlxuICAgICAgICAgIFtuZ1N0eWxlXT1cImdldExhYmVsU3R5bGVzKCdyaWdodCcpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGdldExhYmVsVGV4dCgpIH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiY2FyZERhdGEuZGl2aWRlcj8uc2hvd1wiXG4gICAgICAgIGNsYXNzPVwibWV0cmljLWRpdmlkZXJcIlxuICAgICAgICBbbmdTdHlsZV09XCJ7IGJhY2tncm91bmRDb2xvcjogY2FyZERhdGEuZGl2aWRlcj8uY29sb3IgfHwgJyNlMmU4ZjAnIH1cIlxuICAgICAgPjwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaXNBZGRpdGlvbmFsSW5mb09iamVjdCgpXCJcbiAgICAgICAgY2xhc3M9XCJtZXRyaWMtYWRkaXRpb25hbC1pbmZvXCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0QWRkaXRpb25hbEluZm9TdHlsZXMoKVwiXG4gICAgICA+XG4gICAgICAgIHt7IGdldEFkZGl0aW9uYWxJbmZvVGV4dCgpIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCIhaXNBZGRpdGlvbmFsSW5mb09iamVjdCgpXCJcbiAgICAgICAgY2xhc3M9XCJtZXRyaWMtYWRkaXRpb25hbC1pbmZvXCJcbiAgICAgICAgW25nU3R5bGVdPVwiZ2V0QWRkaXRpb25hbEluZm9TdHlsZXMoKVwiXG4gICAgICA+XG4gICAgICAgIHt7IGNhcmREYXRhLmFkZGl0aW9uYWxJbmZvIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -203,11 +203,11 @@ export class PTSideBarMenuComponent {
|
|
|
203
203
|
}));
|
|
204
204
|
}
|
|
205
205
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTSideBarMenuComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
206
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTSideBarMenuComponent, selector: "pt-side-bar-menu", inputs: { menuConfig: "menuConfig" }, ngImport: i0, template: "<div class=\"pt-side-bar-menu\">\n <pt-card\n *ngIf=\"menuConfig.searchable\"\n [config]=\"searchCardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <div class=\"search-input\">\n <pt-text-input [formGroup]=\"formGroup\" [formField]=\"searchField\">\n </pt-text-input>\n </div>\n </pt-card>\n\n <pt-card\n [config]=\"cardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <ul class=\"menu-list\">\n <ng-container\n *ngTemplateOutlet=\"\n recursiveMenu;\n context: { $implicit: filteredMenus, level: 0 }\n \"\n ></ng-container>\n </ul>\n </pt-card>\n</div>\n\n<ng-template #recursiveMenu let-menus let-level=\"level\">\n <ng-container *ngFor=\"let item of menus\">\n <li\n class=\"menu-item\"\n [ngClass]=\"{\n 'menu-item-expanded': item.isExpanded,\n 'submenu-level-item': level > 0,\n }\"\n [attr.data-level]=\"level\"\n [ngStyle]=\"getMenuItemStyles()\"\n >\n <!-- item without children -->\n <a\n *ngIf=\"!hasChildren(item)\"\n [routerLink]=\"item.url\"\n [class.menu-link]=\"level === 0\"\n [class.submenu-link]=\"level > 0\"\n [ngStyle]=\"\n level === 0 ? getMenuLinkStyles() : getSubMenuLinkStyles(level)\n \"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span [class.submenu-title]=\"level > 0\">{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n </a>\n\n <!-- item with children -->\n <a\n *ngIf=\"hasChildren(item)\"\n href=\"#\"\n [class.menu-link]=\"level === 0\"\n [class.submenu-link]=\"level > 0\"\n (click)=\"toggleMenu(item, $event)\"\n [ngStyle]=\"\n level === 0 ? getMenuLinkStyles() : getSubMenuLinkStyles(level)\n \"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span [class.submenu-title]=\"level > 0\">{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n <i [ngClass]=\"getChevronClass(item)\" class=\"chevron\"></i>\n </a>\n\n <div\n class=\"submenu-wrapper\"\n [class.expanded]=\"item.isExpanded\"\n *ngIf=\"hasChildren(item)\"\n >\n <ul\n class=\"submenu-list\"\n [ngClass]=\"{\n 'submenu-list-root': level === 0,\n 'submenu-list-nested': level > 0,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n recursiveMenu;\n context: { $implicit: item.children, level: level + 1 }\n \"\n ></ng-container>\n </ul>\n </div>\n </li>\n </ng-container>\n</ng-template>\n", styles: [".pt-side-bar-menu .badge{background-color:#38bdf8;border-radius:5px;color:#fff;font-size:12px;margin-left:auto;padding:2px 8px}.pt-side-bar-menu .chevron{color:#8c8c8c;cursor:pointer;margin-left:auto}.pt-side-bar-menu .menu-item{position:relative}.pt-side-bar-menu .menu-link{align-items:center;border-radius:8px;color:#333;cursor:pointer;display:flex;font-size:16px;margin-bottom:
|
|
206
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTSideBarMenuComponent, selector: "pt-side-bar-menu", inputs: { menuConfig: "menuConfig" }, ngImport: i0, template: "<div class=\"pt-side-bar-menu\">\n <pt-card\n *ngIf=\"menuConfig.searchable\"\n [config]=\"searchCardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <div class=\"search-input\">\n <pt-text-input [formGroup]=\"formGroup\" [formField]=\"searchField\">\n </pt-text-input>\n </div>\n </pt-card>\n\n <pt-card\n [config]=\"cardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <ul class=\"menu-list\">\n <ng-container\n *ngTemplateOutlet=\"\n recursiveMenu;\n context: { $implicit: filteredMenus, level: 0 }\n \"\n ></ng-container>\n </ul>\n </pt-card>\n</div>\n\n<ng-template #recursiveMenu let-menus let-level=\"level\">\n <ng-container *ngFor=\"let item of menus\">\n <li\n class=\"menu-item\"\n [ngClass]=\"{\n 'menu-item-expanded': item.isExpanded,\n 'submenu-level-item': level > 0,\n }\"\n [attr.data-level]=\"level\"\n [ngStyle]=\"getMenuItemStyles()\"\n >\n <!-- item without children -->\n <a\n *ngIf=\"!hasChildren(item)\"\n [routerLink]=\"item.url\"\n [class.menu-link]=\"level === 0\"\n [class.submenu-link]=\"level > 0\"\n [ngStyle]=\"\n level === 0 ? getMenuLinkStyles() : getSubMenuLinkStyles(level)\n \"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span [class.submenu-title]=\"level > 0\">{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n </a>\n\n <!-- item with children -->\n <a\n *ngIf=\"hasChildren(item)\"\n href=\"#\"\n [class.menu-link]=\"level === 0\"\n [class.submenu-link]=\"level > 0\"\n (click)=\"toggleMenu(item, $event)\"\n [ngStyle]=\"\n level === 0 ? getMenuLinkStyles() : getSubMenuLinkStyles(level)\n \"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span [class.submenu-title]=\"level > 0\">{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n <i [ngClass]=\"getChevronClass(item)\" class=\"chevron\"></i>\n </a>\n\n <div\n class=\"submenu-wrapper\"\n [class.expanded]=\"item.isExpanded\"\n *ngIf=\"hasChildren(item)\"\n >\n <ul\n class=\"submenu-list\"\n [ngClass]=\"{\n 'submenu-list-root': level === 0,\n 'submenu-list-nested': level > 0,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n recursiveMenu;\n context: { $implicit: item.children, level: level + 1 }\n \"\n ></ng-container>\n </ul>\n </div>\n </li>\n </ng-container>\n</ng-template>\n", styles: [".pt-side-bar-menu .badge{background-color:#38bdf8;border-radius:5px;color:#fff;font-size:12px;margin-left:auto;padding:2px 8px}.pt-side-bar-menu .chevron{color:#8c8c8c;cursor:pointer;margin-left:auto}.pt-side-bar-menu .menu-item{position:relative}.pt-side-bar-menu .menu-link{align-items:center;border-radius:8px;color:#333;cursor:pointer;display:flex;font-size:16px;margin-bottom:6px;padding:10px 15px;text-decoration:none;transition:background-color .2s,color .2s}.pt-side-bar-menu .menu-link:hover{background-color:#f1f1f1;color:#111}.pt-side-bar-menu .menu-link i{margin-right:10px}.pt-side-bar-menu .menu-list{list-style-type:none;padding:0;margin:0}.pt-side-bar-menu pt-card{transition:transform .3s ease-in-out,opacity .3s ease-in-out;display:block}.pt-side-bar-menu .sidebar-hidden{transform:translate(-100%);opacity:0}.pt-side-bar-menu .sidebar-menu{margin:0;padding:0;transition:transform .3s ease-in-out;width:250px}.pt-side-bar-menu .submenu-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease;min-height:0}.pt-side-bar-menu .submenu-wrapper.expanded{grid-template-rows:1fr}.pt-side-bar-menu .submenu-wrapper:not(.expanded){margin:0!important;padding:0!important}.pt-side-bar-menu .submenu-list{overflow:hidden;min-height:0;list-style-type:none;margin-top:5px;margin-bottom:0;position:relative}.pt-side-bar-menu .submenu-wrapper:not(.expanded) .submenu-list{margin:0!important;padding-top:0!important;padding-bottom:0!important;border-left:none!important}.pt-side-bar-menu .submenu-list-root{border-left:1px solid #e5e7eb;margin-left:23px;padding-left:25px;padding-top:5px;padding-bottom:5px}.pt-side-bar-menu .submenu-list-root:after{background-color:#e5e7eb;bottom:0;content:\"\";left:-1px;position:absolute;top:0;width:1px}.pt-side-bar-menu .submenu-list-nested{border-left:1px solid #2f3b46;margin-left:18px;padding-left:20px;padding-top:4px;padding-bottom:4px}.pt-side-bar-menu .submenu-item,.pt-side-bar-menu .submenu-level-item{padding:5px 0;position:relative}.pt-side-bar-menu .submenu-level-item:before{background-color:#e5e7eb;content:\"\";height:1px;left:-25px;position:absolute;top:22px;transform:translateY(-50%);width:25px}.pt-side-bar-menu .submenu-link{align-items:center;border-radius:5px;color:#666;display:flex;font-size:14px;padding:5px 10px;text-decoration:none;transition:background-color .2s,color .2s}.pt-side-bar-menu .submenu-link:hover{background-color:#f1f1f1;color:#000}.pt-side-bar-menu .submenu-title{margin-left:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.PTCardComponent, selector: "pt-card", inputs: ["config"] }, { kind: "component", type: i4.PTTextInputComponent, selector: "pt-text-input", inputs: ["formGroup", "formField"] }] }); }
|
|
207
207
|
}
|
|
208
208
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTSideBarMenuComponent, decorators: [{
|
|
209
209
|
type: Component,
|
|
210
|
-
args: [{ selector: 'pt-side-bar-menu', template: "<div class=\"pt-side-bar-menu\">\n <pt-card\n *ngIf=\"menuConfig.searchable\"\n [config]=\"searchCardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <div class=\"search-input\">\n <pt-text-input [formGroup]=\"formGroup\" [formField]=\"searchField\">\n </pt-text-input>\n </div>\n </pt-card>\n\n <pt-card\n [config]=\"cardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <ul class=\"menu-list\">\n <ng-container\n *ngTemplateOutlet=\"\n recursiveMenu;\n context: { $implicit: filteredMenus, level: 0 }\n \"\n ></ng-container>\n </ul>\n </pt-card>\n</div>\n\n<ng-template #recursiveMenu let-menus let-level=\"level\">\n <ng-container *ngFor=\"let item of menus\">\n <li\n class=\"menu-item\"\n [ngClass]=\"{\n 'menu-item-expanded': item.isExpanded,\n 'submenu-level-item': level > 0,\n }\"\n [attr.data-level]=\"level\"\n [ngStyle]=\"getMenuItemStyles()\"\n >\n <!-- item without children -->\n <a\n *ngIf=\"!hasChildren(item)\"\n [routerLink]=\"item.url\"\n [class.menu-link]=\"level === 0\"\n [class.submenu-link]=\"level > 0\"\n [ngStyle]=\"\n level === 0 ? getMenuLinkStyles() : getSubMenuLinkStyles(level)\n \"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span [class.submenu-title]=\"level > 0\">{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n </a>\n\n <!-- item with children -->\n <a\n *ngIf=\"hasChildren(item)\"\n href=\"#\"\n [class.menu-link]=\"level === 0\"\n [class.submenu-link]=\"level > 0\"\n (click)=\"toggleMenu(item, $event)\"\n [ngStyle]=\"\n level === 0 ? getMenuLinkStyles() : getSubMenuLinkStyles(level)\n \"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span [class.submenu-title]=\"level > 0\">{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n <i [ngClass]=\"getChevronClass(item)\" class=\"chevron\"></i>\n </a>\n\n <div\n class=\"submenu-wrapper\"\n [class.expanded]=\"item.isExpanded\"\n *ngIf=\"hasChildren(item)\"\n >\n <ul\n class=\"submenu-list\"\n [ngClass]=\"{\n 'submenu-list-root': level === 0,\n 'submenu-list-nested': level > 0,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n recursiveMenu;\n context: { $implicit: item.children, level: level + 1 }\n \"\n ></ng-container>\n </ul>\n </div>\n </li>\n </ng-container>\n</ng-template>\n", styles: [".pt-side-bar-menu .badge{background-color:#38bdf8;border-radius:5px;color:#fff;font-size:12px;margin-left:auto;padding:2px 8px}.pt-side-bar-menu .chevron{color:#8c8c8c;cursor:pointer;margin-left:auto}.pt-side-bar-menu .menu-item{position:relative}.pt-side-bar-menu .menu-link{align-items:center;border-radius:8px;color:#333;cursor:pointer;display:flex;font-size:16px;margin-bottom:
|
|
210
|
+
args: [{ selector: 'pt-side-bar-menu', template: "<div class=\"pt-side-bar-menu\">\n <pt-card\n *ngIf=\"menuConfig.searchable\"\n [config]=\"searchCardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <div class=\"search-input\">\n <pt-text-input [formGroup]=\"formGroup\" [formField]=\"searchField\">\n </pt-text-input>\n </div>\n </pt-card>\n\n <pt-card\n [config]=\"cardConfig\"\n [ngClass]=\"{ 'sidebar-hidden': !menuConfig.isVisible }\"\n >\n <ul class=\"menu-list\">\n <ng-container\n *ngTemplateOutlet=\"\n recursiveMenu;\n context: { $implicit: filteredMenus, level: 0 }\n \"\n ></ng-container>\n </ul>\n </pt-card>\n</div>\n\n<ng-template #recursiveMenu let-menus let-level=\"level\">\n <ng-container *ngFor=\"let item of menus\">\n <li\n class=\"menu-item\"\n [ngClass]=\"{\n 'menu-item-expanded': item.isExpanded,\n 'submenu-level-item': level > 0,\n }\"\n [attr.data-level]=\"level\"\n [ngStyle]=\"getMenuItemStyles()\"\n >\n <!-- item without children -->\n <a\n *ngIf=\"!hasChildren(item)\"\n [routerLink]=\"item.url\"\n [class.menu-link]=\"level === 0\"\n [class.submenu-link]=\"level > 0\"\n [ngStyle]=\"\n level === 0 ? getMenuLinkStyles() : getSubMenuLinkStyles(level)\n \"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span [class.submenu-title]=\"level > 0\">{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n </a>\n\n <!-- item with children -->\n <a\n *ngIf=\"hasChildren(item)\"\n href=\"#\"\n [class.menu-link]=\"level === 0\"\n [class.submenu-link]=\"level > 0\"\n (click)=\"toggleMenu(item, $event)\"\n [ngStyle]=\"\n level === 0 ? getMenuLinkStyles() : getSubMenuLinkStyles(level)\n \"\n >\n <i [ngClass]=\"item.icon\"></i>\n <span [class.submenu-title]=\"level > 0\">{{ item.label }}</span>\n <span\n *ngIf=\"item.badge\"\n [ngStyle]=\"getBadgeStyles(item.badge)\"\n class=\"badge\"\n >\n {{ item.badge.count }}\n </span>\n <i [ngClass]=\"getChevronClass(item)\" class=\"chevron\"></i>\n </a>\n\n <div\n class=\"submenu-wrapper\"\n [class.expanded]=\"item.isExpanded\"\n *ngIf=\"hasChildren(item)\"\n >\n <ul\n class=\"submenu-list\"\n [ngClass]=\"{\n 'submenu-list-root': level === 0,\n 'submenu-list-nested': level > 0,\n }\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n recursiveMenu;\n context: { $implicit: item.children, level: level + 1 }\n \"\n ></ng-container>\n </ul>\n </div>\n </li>\n </ng-container>\n</ng-template>\n", styles: [".pt-side-bar-menu .badge{background-color:#38bdf8;border-radius:5px;color:#fff;font-size:12px;margin-left:auto;padding:2px 8px}.pt-side-bar-menu .chevron{color:#8c8c8c;cursor:pointer;margin-left:auto}.pt-side-bar-menu .menu-item{position:relative}.pt-side-bar-menu .menu-link{align-items:center;border-radius:8px;color:#333;cursor:pointer;display:flex;font-size:16px;margin-bottom:6px;padding:10px 15px;text-decoration:none;transition:background-color .2s,color .2s}.pt-side-bar-menu .menu-link:hover{background-color:#f1f1f1;color:#111}.pt-side-bar-menu .menu-link i{margin-right:10px}.pt-side-bar-menu .menu-list{list-style-type:none;padding:0;margin:0}.pt-side-bar-menu pt-card{transition:transform .3s ease-in-out,opacity .3s ease-in-out;display:block}.pt-side-bar-menu .sidebar-hidden{transform:translate(-100%);opacity:0}.pt-side-bar-menu .sidebar-menu{margin:0;padding:0;transition:transform .3s ease-in-out;width:250px}.pt-side-bar-menu .submenu-wrapper{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease;min-height:0}.pt-side-bar-menu .submenu-wrapper.expanded{grid-template-rows:1fr}.pt-side-bar-menu .submenu-wrapper:not(.expanded){margin:0!important;padding:0!important}.pt-side-bar-menu .submenu-list{overflow:hidden;min-height:0;list-style-type:none;margin-top:5px;margin-bottom:0;position:relative}.pt-side-bar-menu .submenu-wrapper:not(.expanded) .submenu-list{margin:0!important;padding-top:0!important;padding-bottom:0!important;border-left:none!important}.pt-side-bar-menu .submenu-list-root{border-left:1px solid #e5e7eb;margin-left:23px;padding-left:25px;padding-top:5px;padding-bottom:5px}.pt-side-bar-menu .submenu-list-root:after{background-color:#e5e7eb;bottom:0;content:\"\";left:-1px;position:absolute;top:0;width:1px}.pt-side-bar-menu .submenu-list-nested{border-left:1px solid #2f3b46;margin-left:18px;padding-left:20px;padding-top:4px;padding-bottom:4px}.pt-side-bar-menu .submenu-item,.pt-side-bar-menu .submenu-level-item{padding:5px 0;position:relative}.pt-side-bar-menu .submenu-level-item:before{background-color:#e5e7eb;content:\"\";height:1px;left:-25px;position:absolute;top:22px;transform:translateY(-50%);width:25px}.pt-side-bar-menu .submenu-link{align-items:center;border-radius:5px;color:#666;display:flex;font-size:14px;padding:5px 10px;text-decoration:none;transition:background-color .2s,color .2s}.pt-side-bar-menu .submenu-link:hover{background-color:#f1f1f1;color:#000}.pt-side-bar-menu .submenu-title{margin-left:5px}\n"] }]
|
|
211
211
|
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { menuConfig: [{
|
|
212
212
|
type: Input
|
|
213
213
|
}] } });
|