@tetacom/ng-components 1.4.5 → 1.4.7
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/component/property-grid/property-grid/property-grid-group/property-grid-group.component.d.ts +11 -17
- package/component/property-grid/property-grid/property-grid-item/property-grid-item.component.d.ts +18 -19
- package/component/property-grid/property-grid/property-grid.component.d.ts +10 -15
- package/component/property-grid/public-api.d.ts +0 -1
- package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +3 -3
- package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +15 -49
- package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +42 -55
- package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +23 -40
- package/esm2022/component/property-grid/public-api.mjs +1 -2
- package/esm2022/util/forms-util.mjs +4 -11
- package/fesm2022/tetacom-ng-components.mjs +123 -236
- package/fesm2022/tetacom-ng-components.mjs.map +1 -1
- package/package.json +1 -1
- package/style/list.scss +2 -1
- package/util/forms-util.d.ts +1 -2
- package/component/property-grid/property-grid.module.d.ts +0 -13
- package/esm2022/component/property-grid/property-grid.module.mjs +0 -57
package/component/property-grid/property-grid/property-grid-group/property-grid-group.component.d.ts
CHANGED
|
@@ -1,24 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ControlContainer, FormGroup } from '@angular/forms';
|
|
1
|
+
import { QueryList } from '@angular/core';
|
|
3
2
|
import { IDictionary } from '../../../../common/contract/i-dictionary';
|
|
4
3
|
import { IIdName } from '../../../../common/contract/i-id-name';
|
|
5
4
|
import { TableColumn } from '../../../table/contract/table-column';
|
|
6
5
|
import { PropertyGridItemDescriptionDirective } from '../property-grid-item-description.directive';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
8
7
|
export declare class PropertyGridGroupComponent<T> {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
get editable(): boolean;
|
|
20
|
-
constructor(_formGroup: ControlContainer);
|
|
21
|
-
trackColumns(index: number, column: TableColumn): any;
|
|
22
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<PropertyGridGroupComponent<any>, [{ optional: true; }]>;
|
|
23
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PropertyGridGroupComponent<any>, "teta-property-grid-group", never, { "column": { "alias": "column"; "required": false; }; "hideNonEditable": { "alias": "hideNonEditable"; "required": false; }; "dict": { "alias": "dict"; "required": false; }; "item": { "alias": "item"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; "decimalPart": { "alias": "decimalPart"; "required": false; }; "itemTemplates": { "alias": "itemTemplates"; "required": false; }; }, { "controlValueChange": "controlValueChange"; }, never, never, true, never>;
|
|
8
|
+
column: import("@angular/core").InputSignal<TableColumn>;
|
|
9
|
+
hideNonEditable: import("@angular/core").InputSignal<boolean>;
|
|
10
|
+
dict: import("@angular/core").InputSignal<IDictionary<IIdName<any>[]>>;
|
|
11
|
+
item: import("@angular/core").InputSignal<T>;
|
|
12
|
+
horizontal: import("@angular/core").InputSignal<boolean>;
|
|
13
|
+
controlValueChange: import("@angular/core").OutputEmitterRef<IIdName<any>>;
|
|
14
|
+
decimalPart: import("@angular/core").InputSignal<number>;
|
|
15
|
+
itemTemplates: import("@angular/core").InputSignal<QueryList<PropertyGridItemDescriptionDirective>>;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PropertyGridGroupComponent<any>, never>;
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PropertyGridGroupComponent<any>, "teta-property-grid-group", never, { "column": { "alias": "column"; "required": false; "isSignal": true; }; "hideNonEditable": { "alias": "hideNonEditable"; "required": false; "isSignal": true; }; "dict": { "alias": "dict"; "required": false; "isSignal": true; }; "item": { "alias": "item"; "required": false; "isSignal": true; }; "horizontal": { "alias": "horizontal"; "required": false; "isSignal": true; }; "decimalPart": { "alias": "decimalPart"; "required": false; "isSignal": true; }; "itemTemplates": { "alias": "itemTemplates"; "required": false; "isSignal": true; }; }, { "controlValueChange": "controlValueChange"; }, never, never, true, never>;
|
|
24
18
|
}
|
package/component/property-grid/property-grid/property-grid-item/property-grid-item.component.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { TranslocoService } from '@ngneat/transloco';
|
|
1
|
+
import { OnChanges, OnDestroy, QueryList, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { FormGroup } from '@angular/forms';
|
|
4
3
|
import { IDictionary } from '../../../../common/contract/i-dictionary';
|
|
5
4
|
import { IIdName } from '../../../../common/contract/i-id-name';
|
|
6
5
|
import { Align } from '../../../../common/enum/align.enum';
|
|
@@ -9,30 +8,30 @@ import { TableColumn } from '../../../table/contract/table-column';
|
|
|
9
8
|
import { PropertyGridItemDescriptionDirective } from '../property-grid-item-description.directive';
|
|
10
9
|
import * as i0 from "@angular/core";
|
|
11
10
|
export declare class PropertyGridItemComponent<T> implements OnDestroy, OnChanges {
|
|
12
|
-
private
|
|
11
|
+
private transloco;
|
|
13
12
|
private _formGroup;
|
|
14
|
-
column: TableColumn
|
|
15
|
-
hideNonEditable: boolean
|
|
16
|
-
dict: IDictionary<IIdName<any>[]
|
|
17
|
-
decimalPart: number
|
|
18
|
-
item: T
|
|
19
|
-
itemTemplates: QueryList<PropertyGridItemDescriptionDirective
|
|
20
|
-
|
|
13
|
+
column: import("@angular/core").InputSignal<TableColumn>;
|
|
14
|
+
hideNonEditable: import("@angular/core").InputSignal<boolean>;
|
|
15
|
+
dict: import("@angular/core").InputSignal<IDictionary<IIdName<any>[]>>;
|
|
16
|
+
decimalPart: import("@angular/core").InputSignal<number>;
|
|
17
|
+
item: import("@angular/core").InputSignal<T>;
|
|
18
|
+
itemTemplates: import("@angular/core").InputSignal<QueryList<PropertyGridItemDescriptionDirective>>;
|
|
19
|
+
template: import("@angular/core").Signal<PropertyGridItemDescriptionDirective>;
|
|
21
20
|
get formGroup(): FormGroup;
|
|
22
|
-
|
|
23
|
-
horizontal: boolean
|
|
24
|
-
controlValueChange:
|
|
21
|
+
editable: import("@angular/core").Signal<boolean>;
|
|
22
|
+
horizontal: import("@angular/core").InputSignal<boolean>;
|
|
23
|
+
controlValueChange: import("@angular/core").OutputEmitterRef<IIdName<any>>;
|
|
25
24
|
align: typeof Align;
|
|
26
25
|
filterTypeEnum: typeof FilterType;
|
|
27
26
|
private _formSub;
|
|
28
|
-
|
|
27
|
+
caption: import("@angular/core").Signal<string>;
|
|
29
28
|
private _alive;
|
|
30
|
-
constructor(
|
|
31
|
-
getDict():
|
|
29
|
+
constructor();
|
|
30
|
+
getDict(): any;
|
|
32
31
|
controlIsInvalid(controlName: string): boolean;
|
|
33
32
|
getError(column: TableColumn): string;
|
|
34
33
|
ngOnDestroy(): void;
|
|
35
34
|
ngOnChanges(changes: SimpleChanges): void;
|
|
36
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<PropertyGridItemComponent<any>,
|
|
37
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PropertyGridItemComponent<any>, "teta-property-grid-item", never, { "column": { "alias": "column"; "required": false; }; "hideNonEditable": { "alias": "hideNonEditable"; "required": false; }; "dict": { "alias": "dict"; "required": false; }; "decimalPart": { "alias": "decimalPart"; "required": false; }; "item": { "alias": "item"; "required": false; }; "itemTemplates": { "alias": "itemTemplates"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; }, { "controlValueChange": "controlValueChange"; }, never, never, true, never>;
|
|
35
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PropertyGridItemComponent<any>, never>;
|
|
36
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PropertyGridItemComponent<any>, "teta-property-grid-item", never, { "column": { "alias": "column"; "required": false; "isSignal": true; }; "hideNonEditable": { "alias": "hideNonEditable"; "required": false; "isSignal": true; }; "dict": { "alias": "dict"; "required": false; "isSignal": true; }; "decimalPart": { "alias": "decimalPart"; "required": false; "isSignal": true; }; "item": { "alias": "item"; "required": false; "isSignal": true; }; "itemTemplates": { "alias": "itemTemplates"; "required": false; "isSignal": true; }; "horizontal": { "alias": "horizontal"; "required": false; "isSignal": true; }; }, { "controlValueChange": "controlValueChange"; }, never, never, true, never>;
|
|
38
37
|
}
|
|
@@ -1,31 +1,26 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { QueryList } from '@angular/core';
|
|
2
2
|
import { ControlContainer, FormGroup } from '@angular/forms';
|
|
3
3
|
import { IDictionary } from '../../../common/contract/i-dictionary';
|
|
4
4
|
import { IIdName } from '../../../common/contract/i-id-name';
|
|
5
5
|
import { TableColumn } from '../../table/contract/table-column';
|
|
6
6
|
import { PropertyGridItemDescriptionDirective } from './property-grid-item-description.directive';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
|
-
export declare class PropertyGridComponent<T>
|
|
8
|
+
export declare class PropertyGridComponent<T> {
|
|
9
9
|
private _formGroup;
|
|
10
10
|
formClass: boolean;
|
|
11
11
|
itemTemplates: QueryList<PropertyGridItemDescriptionDirective>;
|
|
12
|
-
hideNonEditable: boolean
|
|
13
|
-
columns: TableColumn[]
|
|
14
|
-
dict: IDictionary<IIdName<any>[]
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
controlValueChange: EventEmitter<IIdName<any>>;
|
|
20
|
-
private _alive;
|
|
21
|
-
private _item;
|
|
12
|
+
hideNonEditable: import("@angular/core").InputSignal<boolean>;
|
|
13
|
+
columns: import("@angular/core").InputSignal<TableColumn[]>;
|
|
14
|
+
dict: import("@angular/core").InputSignal<IDictionary<IIdName<any>[]>>;
|
|
15
|
+
item: import("@angular/core").InputSignal<T>;
|
|
16
|
+
horizontal: import("@angular/core").InputSignal<boolean>;
|
|
17
|
+
decimalPart: import("@angular/core").InputSignal<number>;
|
|
18
|
+
controlValueChange: import("@angular/core").OutputEmitterRef<IIdName<any>>;
|
|
22
19
|
get formGroup(): FormGroup;
|
|
23
20
|
constructor(_formGroup: ControlContainer);
|
|
24
21
|
getEditable(column: TableColumn): boolean;
|
|
25
22
|
onControlValueChange(event: IIdName<any>): void;
|
|
26
|
-
ngOnDestroy(): void;
|
|
27
|
-
trackColumns(index: number, column: TableColumn): any;
|
|
28
23
|
private getDictValue;
|
|
29
24
|
static ɵfac: i0.ɵɵFactoryDeclaration<PropertyGridComponent<any>, [{ optional: true; }]>;
|
|
30
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PropertyGridComponent<any>, "teta-property-grid", never, { "hideNonEditable": { "alias": "hideNonEditable"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "dict": { "alias": "dict"; "required": false; }; "item": { "alias": "item"; "required": false; }; "horizontal": { "alias": "horizontal"; "required": false; }; "decimalPart": { "alias": "decimalPart"; "required": false; }; }, { "controlValueChange": "controlValueChange"; }, ["itemTemplates"], never, true, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PropertyGridComponent<any>, "teta-property-grid", never, { "hideNonEditable": { "alias": "hideNonEditable"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "dict": { "alias": "dict"; "required": false; "isSignal": true; }; "item": { "alias": "item"; "required": false; "isSignal": true; }; "horizontal": { "alias": "horizontal"; "required": false; "isSignal": true; }; "decimalPart": { "alias": "decimalPart"; "required": false; "isSignal": true; }; }, { "controlValueChange": "controlValueChange"; }, ["itemTemplates"], never, true, never>;
|
|
31
26
|
}
|
|
@@ -89,11 +89,11 @@ export class DayPickerComponent {
|
|
|
89
89
|
this.dayOrder = arr;
|
|
90
90
|
}
|
|
91
91
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
92
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DayPickerComponent, isStandalone: true, selector: "teta-day-picker", inputs: { date: "date", calendar: "calendar", viewType: "viewType", range: "range", min: "min", max: "max", locale: "locale", hoveredDate: "hoveredDate" }, outputs: { hoveredDateChange: "hoveredDateChange", selectDate: "selectDate" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day)\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DayItemComponent, selector: "teta-day-item", inputs: ["day"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
92
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DayPickerComponent, isStandalone: true, selector: "teta-day-picker", inputs: { date: "date", calendar: "calendar", viewType: "viewType", range: "range", min: "min", max: "max", locale: "locale", hoveredDate: "hoveredDate" }, outputs: { hoveredDateChange: "hoveredDateChange", selectDate: "selectDate" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day.date.getTime()) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day)\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DayItemComponent, selector: "teta-day-item", inputs: ["day"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
93
93
|
}
|
|
94
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayPickerComponent, decorators: [{
|
|
95
95
|
type: Component,
|
|
96
|
-
args: [{ selector: 'teta-day-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, DayItemComponent], template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day)\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n" }]
|
|
96
|
+
args: [{ selector: 'teta-day-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, DayItemComponent], template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day.date.getTime()) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day)\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n" }]
|
|
97
97
|
}], ctorParameters: () => [], propDecorators: { date: [{
|
|
98
98
|
type: Input
|
|
99
99
|
}], calendar: [{
|
|
@@ -115,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
115
115
|
}], selectDate: [{
|
|
116
116
|
type: Output
|
|
117
117
|
}] } });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RheS1waWNrZXIvZGF5LXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RheS1waWNrZXIvZGF5LXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFHMUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVUxQyxNQUFNLE9BQU8sa0JBQWtCO0lBWTdCO1FBWFMsU0FBSSxHQUEyQixJQUFJLElBQUksRUFBRSxDQUFDO1FBUXpDLHNCQUFpQixHQUF3QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2xFLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUVyRCxDQUFDO0lBRWhCLFNBQVMsQ0FBQyxHQUFhLEVBQUUsSUFBNEIsRUFBRSxFQUEwQjtRQUMvRSxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQztRQUNsRixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUs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Q0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLENBQUM7OEdBckdVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDJVQ3pCL0IsMjdCQTBCQSwwRERIWSxPQUFPLG9GQUFFLGdCQUFnQjs7MkZBRXhCLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7d0RBRzNCLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXlNb2RlbCB9IGZyb20gJy4uL21vZGVsL2RheS1tb2RlbCc7XG5pbXBvcnQgeyBEYXRlRnJvbVRvTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9mcm9tLXRvLm1vZGVsJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyB2aWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgVGV0YUxvY2FsaXNhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2xvY2FsZS90ZXRhLWxvY2FsaXNhdGlvbic7XG5pbXBvcnQgeyBEYXlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kYXktaXRlbS9kYXktaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtZGF5LXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXktcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF5LXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIERheUl0ZW1Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXlQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyID0gbmV3IERhdGUoKTtcbiAgQElucHV0KCkgY2FsZW5kYXI6IERheU1vZGVsW107XG4gIEBJbnB1dCgpIHZpZXdUeXBlOiB2aWV3VHlwZTtcbiAgQElucHV0KCkgcmFuZ2U/OiBEYXRlRnJvbVRvTW9kZWw7XG4gIEBJbnB1dCgpIG1pbjogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgQElucHV0KCkgbWF4OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuICBASW5wdXQoKSBsb2NhbGU6IFRldGFMb2NhbGlzYXRpb247XG4gIEBJbnB1dCgpIGhvdmVyZWREYXRlPzogRGF0ZTtcbiAgQE91dHB1dCgpIGhvdmVyZWREYXRlQ2hhbmdlPzogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBAT3V0cHV0KCkgc2VsZWN0RGF0ZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBwdWJsaWMgZGF5T3JkZXI6IHN0cmluZ1tdO1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgaXNJblJhbmdlKGRheTogRGF5TW9kZWwsIGZyb206IERhdGUgfCBudW1iZXIgfCBzdHJpbmcsIHRvOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgY29uc3QgbWF0Y2hlc01pbkRhdGUgPSBkYXlqcyhuZXcgRGF0ZShmcm9tKSkuc3RhcnRPZignZGF0ZScpLnRvRGF0ZSgpIDw9IGRheS5kYXRlO1xuICAgIGNvbnN0IG1hdGNoZXNNYXhEYXRlID0gZGF5LmRhdGUgPCBkYXlqcyhuZXcgRGF0ZSh0bykpLmVuZE9mKCdkYXRlJykudG9EYXRlKCk7XG4gICAgcmV0dXJuIG1hdGNoZXNNaW5EYXRlICYmIG1hdGNoZXNNYXhEYXRlO1xuICB9XG5cbiAgaXNIb3ZlcmVkUmFuZ2UoZGF5OiBEYXlNb2RlbCkge1xuICAgIGlmICghdGhpcy5yYW5nZT8udG8gJiYgdGhpcy5yYW5nZT8uZnJvbSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5pc0luUmFuZ2UoZGF5LCB0aGlzLnJhbmdlLmZyb20sIHRoaXMuaG92ZXJlZERhdGUpIHx8IHRoaXMuaXNJblJhbmdlKGRheSwgdGhpcy5ob3ZlcmVkRGF0ZSwgdGhpcy5yYW5nZS5mcm9tKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNBY3RpdmVSYW5nZShkYXk6IERheU1vZGVsKSB7XG4gICAgaWYgKHRoaXMucmFuZ2U/LmZyb20gJiYgdGhpcy5yYW5nZT8udG8pIHtcbiAgICAgIHJldHVybiB0aGlzLmlzSW5SYW5nZShkYXksIHRoaXMucmFuZ2UuZnJvbSwgdGhpcy5yYW5nZS50byk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHBpY2tEYXRlKGRheTogRGF5TW9kZWwpIHtcbiAgICBpZiAoIWRheS5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zZWxlY3REYXRlLmVtaXQoZGF5LmRhdGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFJhbmdlQWN0aXZlQ2xhc3MoZDogRGF5TW9kZWwpIHtcbiAgICBpZiAodGhpcy5yYW5nZSAmJiBuZXcgRGF0ZSh0aGlzLnJhbmdlPy5mcm9tKS5nZXRUaW1lKCkgIT09IG5ldyBEYXRlKHRoaXMucmFuZ2U/LnRvKS5nZXRUaW1lKCkpIHtcbiAgICAgIGlmICh0aGlzLnJhbmdlLnRvKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzU3RhdGljSXRlbShkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmhvdmVyZWREYXRlLmdldFRpbWUoKSA9PT0gZC5kYXRlLmdldFRpbWUoKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzSG92ZXJlZEl0ZW0oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDbGFzc1NlbGVjdGVkSXRlbShkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBob3ZlcihkYXRlOiBEYXRlKSB7XG4gICAgaWYgKGRhdGU/LmdldFRpbWUoKSAhPT0gdGhpcy5ob3ZlcmVkRGF0ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLmhvdmVyZWREYXRlID0gZGF0ZTtcbiAgICAgIHRoaXMuaG92ZXJlZERhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICB9XG4gIH1cblxuICBnZXRDbGFzc1N0YXRpY0l0ZW0oZDogRGF5TW9kZWwpIHtcbiAgICBjb25zdCBmcm9tID0gZGF5anMobmV3IERhdGUodGhpcy5yYW5nZS5mcm9tKSkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgY29uc3QgdG8gPSBkYXlqcyhuZXcgRGF0ZSh0aGlzLnJhbmdlLnRvKSkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgY29uc3QgaXRlbURhdGUgPSBkYXlqcyhuZXcgRGF0ZShkLmRhdGUpKS5zdGFydE9mKCdkYXknKS50b0RhdGUoKTtcbiAgICBpZiAoZnJvbS5nZXRUaW1lKCkgPT09IGl0ZW1EYXRlLmdldFRpbWUoKSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLWZpcnN0JztcbiAgICB9XG4gICAgaWYgKHRvLmdldFRpbWUoKSA9PT0gaXRlbURhdGUuZ2V0VGltZSgpKSB7XG4gICAgICByZXR1cm4gJ2RhdGVwaWNrZXItZGF0ZV9hY3RpdmUtc2Vjb25kJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0Q2xhc3NIb3ZlcmVkSXRlbSgpIHtcbiAgICBpZiAobmV3IERhdGUodGhpcy5yYW5nZS5mcm9tKSA+IHRoaXMuaG92ZXJlZERhdGUpIHtcbiAgICAgIHJldHVybiAnZGF0ZXBpY2tlci1kYXRlX2FjdGl2ZS1maXJzdCc7XG4gICAgfVxuICAgIGlmIChuZXcgRGF0ZSh0aGlzLnJhbmdlLmZyb20pIDwgdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLXNlY29uZCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldENsYXNzU2VsZWN0ZWRJdGVtKGQ6IERheU1vZGVsKSB7XG4gICAgaWYgKGQuc2VsZWN0ZWQgJiYgZC5kYXRlIDwgdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLWZpcnN0JztcbiAgICB9XG4gICAgaWYgKGQuc2VsZWN0ZWQgJiYgZC5kYXRlID4gdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLXNlY29uZCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBhcnIgPSBbLi4udGhpcy5sb2NhbGUuZGF5c1Nob3J0XTtcbiAgICBhcnIucHVzaChhcnIuc2hpZnQoKSk7XG4gICAgdGhpcy5kYXlPcmRlciA9IGFycjtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItd2VlayBmb250LWNhcHRpb25cIj5cbiAgQGZvciAoZGF5IG9mIGRheU9yZGVyOyB0cmFjayBkYXkpIHtcbiAgPHAgY2xhc3M9XCJkYXRlcGlja2VyLWRheVwiPlxuICAgIHt7IGRheSB9fVxuICA8L3A+XG4gIH1cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItcGlja2VyIGNvbG9yLXRleHQtOTAgZm9udC1ib2R5LTNcIj5cbiAgQGZvciAoZGF5IG9mIGNhbGVuZGFyOyB0cmFjayBkYXkpIHtcbiAgPGRpdlxuICAgIFtjbGFzc109XCJnZXRSYW5nZUFjdGl2ZUNsYXNzKGRheSkgKyAnIGRhdGVwaWNrZXItZGF0ZSBmb250LWJvZHktMyBkYXRlcGlja2VyXycgKyB2aWV3VHlwZVwiXG4gICAgKG1vdXNlZW50ZXIpPVwiaG92ZXIoZGF5LmRhdGUpXCJcbiAgICAoY2xpY2spPVwicGlja0RhdGUoZGF5KVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2RhdGVwaWNrZXItZGF0ZV9hY3RpdmUnOiBkYXkuc2VsZWN0ZWQgfHwgKGRheS5kYXRlID09PSBob3ZlcmVkRGF0ZSAmJiByYW5nZSAmJiAhcmFuZ2UudG8pLFxuICAgICAgJ2RhdGVwaWNrZXItZGF0ZS1yYW5nZV9ob3Zlcic6IHJhbmdlICYmIGlzSG92ZXJlZFJhbmdlKGRheSksXG4gICAgICAnZGF0ZXBpY2tlci1kYXRlX2Rpc2FibGVkJzogZGF5LmRpc2FibGVkLFxuICAgICAgJ2NvbG9yLXRleHQtMzAnOiBkYXkuZGlzYWJsZWQgfHwgKCFyYW5nZSAmJiAhZGF5LmlzQ3VycmVudE1vbnRoKSxcbiAgICAgICdkYXRlcGlja2VyLWRhdGUtcmFuZ2VfZGlzYWJsZWQnOiAhZGF5LmlzQ3VycmVudE1vbnRoICYmIHJhbmdlLFxuICAgICAgJ2RhdGVwaWNrZXItZGF0ZS1yYW5nZV9hY3RpdmUnOiBpc0FjdGl2ZVJhbmdlKGRheSlcbiAgICB9XCJcbiAgPlxuICAgIDx0ZXRhLWRheS1pdGVtIFtkYXldPVwiZGF5XCI+PC90ZXRhLWRheS1pdGVtPlxuICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RheS1waWNrZXIvZGF5LXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RheS1waWNrZXIvZGF5LXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFHMUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVUxQyxNQUFNLE9BQU8sa0JBQWtCO0lBWTdCO1FBWFMsU0FBSSxHQUEyQixJQUFJLElBQUksRUFBRSxDQUFDO1FBUXpDLHNCQUFpQixHQUF3QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2xFLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUVyRCxDQUFDO0lBRWhCLFNBQVMsQ0FBQyxHQUFhLEVBQUUsSUFBNEIsRUFBRSxFQUEwQjtRQUMvRSxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQztRQUNsRixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUs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Q0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLENBQUM7OEdBckdVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDJVQ3pCL0IsMDhCQTBCQSwwRERIWSxPQUFPLG9GQUFFLGdCQUFnQjs7MkZBRXhCLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7d0RBRzNCLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXlNb2RlbCB9IGZyb20gJy4uL21vZGVsL2RheS1tb2RlbCc7XG5pbXBvcnQgeyBEYXRlRnJvbVRvTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9mcm9tLXRvLm1vZGVsJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyB2aWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgVGV0YUxvY2FsaXNhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2xvY2FsZS90ZXRhLWxvY2FsaXNhdGlvbic7XG5pbXBvcnQgeyBEYXlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kYXktaXRlbS9kYXktaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtZGF5LXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXktcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF5LXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIERheUl0ZW1Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXlQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyID0gbmV3IERhdGUoKTtcbiAgQElucHV0KCkgY2FsZW5kYXI6IERheU1vZGVsW107XG4gIEBJbnB1dCgpIHZpZXdUeXBlOiB2aWV3VHlwZTtcbiAgQElucHV0KCkgcmFuZ2U/OiBEYXRlRnJvbVRvTW9kZWw7XG4gIEBJbnB1dCgpIG1pbjogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgQElucHV0KCkgbWF4OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuICBASW5wdXQoKSBsb2NhbGU6IFRldGFMb2NhbGlzYXRpb247XG4gIEBJbnB1dCgpIGhvdmVyZWREYXRlPzogRGF0ZTtcbiAgQE91dHB1dCgpIGhvdmVyZWREYXRlQ2hhbmdlPzogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBAT3V0cHV0KCkgc2VsZWN0RGF0ZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBwdWJsaWMgZGF5T3JkZXI6IHN0cmluZ1tdO1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgaXNJblJhbmdlKGRheTogRGF5TW9kZWwsIGZyb206IERhdGUgfCBudW1iZXIgfCBzdHJpbmcsIHRvOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgY29uc3QgbWF0Y2hlc01pbkRhdGUgPSBkYXlqcyhuZXcgRGF0ZShmcm9tKSkuc3RhcnRPZignZGF0ZScpLnRvRGF0ZSgpIDw9IGRheS5kYXRlO1xuICAgIGNvbnN0IG1hdGNoZXNNYXhEYXRlID0gZGF5LmRhdGUgPCBkYXlqcyhuZXcgRGF0ZSh0bykpLmVuZE9mKCdkYXRlJykudG9EYXRlKCk7XG4gICAgcmV0dXJuIG1hdGNoZXNNaW5EYXRlICYmIG1hdGNoZXNNYXhEYXRlO1xuICB9XG5cbiAgaXNIb3ZlcmVkUmFuZ2UoZGF5OiBEYXlNb2RlbCkge1xuICAgIGlmICghdGhpcy5yYW5nZT8udG8gJiYgdGhpcy5yYW5nZT8uZnJvbSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5pc0luUmFuZ2UoZGF5LCB0aGlzLnJhbmdlLmZyb20sIHRoaXMuaG92ZXJlZERhdGUpIHx8IHRoaXMuaXNJblJhbmdlKGRheSwgdGhpcy5ob3ZlcmVkRGF0ZSwgdGhpcy5yYW5nZS5mcm9tKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNBY3RpdmVSYW5nZShkYXk6IERheU1vZGVsKSB7XG4gICAgaWYgKHRoaXMucmFuZ2U/LmZyb20gJiYgdGhpcy5yYW5nZT8udG8pIHtcbiAgICAgIHJldHVybiB0aGlzLmlzSW5SYW5nZShkYXksIHRoaXMucmFuZ2UuZnJvbSwgdGhpcy5yYW5nZS50byk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHBpY2tEYXRlKGRheTogRGF5TW9kZWwpIHtcbiAgICBpZiAoIWRheS5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zZWxlY3REYXRlLmVtaXQoZGF5LmRhdGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFJhbmdlQWN0aXZlQ2xhc3MoZDogRGF5TW9kZWwpIHtcbiAgICBpZiAodGhpcy5yYW5nZSAmJiBuZXcgRGF0ZSh0aGlzLnJhbmdlPy5mcm9tKS5nZXRUaW1lKCkgIT09IG5ldyBEYXRlKHRoaXMucmFuZ2U/LnRvKS5nZXRUaW1lKCkpIHtcbiAgICAgIGlmICh0aGlzLnJhbmdlLnRvKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzU3RhdGljSXRlbShkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmhvdmVyZWREYXRlLmdldFRpbWUoKSA9PT0gZC5kYXRlLmdldFRpbWUoKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzSG92ZXJlZEl0ZW0oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDbGFzc1NlbGVjdGVkSXRlbShkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBob3ZlcihkYXRlOiBEYXRlKSB7XG4gICAgaWYgKGRhdGU/LmdldFRpbWUoKSAhPT0gdGhpcy5ob3ZlcmVkRGF0ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLmhvdmVyZWREYXRlID0gZGF0ZTtcbiAgICAgIHRoaXMuaG92ZXJlZERhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICB9XG4gIH1cblxuICBnZXRDbGFzc1N0YXRpY0l0ZW0oZDogRGF5TW9kZWwpIHtcbiAgICBjb25zdCBmcm9tID0gZGF5anMobmV3IERhdGUodGhpcy5yYW5nZS5mcm9tKSkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgY29uc3QgdG8gPSBkYXlqcyhuZXcgRGF0ZSh0aGlzLnJhbmdlLnRvKSkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgY29uc3QgaXRlbURhdGUgPSBkYXlqcyhuZXcgRGF0ZShkLmRhdGUpKS5zdGFydE9mKCdkYXknKS50b0RhdGUoKTtcbiAgICBpZiAoZnJvbS5nZXRUaW1lKCkgPT09IGl0ZW1EYXRlLmdldFRpbWUoKSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLWZpcnN0JztcbiAgICB9XG4gICAgaWYgKHRvLmdldFRpbWUoKSA9PT0gaXRlbURhdGUuZ2V0VGltZSgpKSB7XG4gICAgICByZXR1cm4gJ2RhdGVwaWNrZXItZGF0ZV9hY3RpdmUtc2Vjb25kJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0Q2xhc3NIb3ZlcmVkSXRlbSgpIHtcbiAgICBpZiAobmV3IERhdGUodGhpcy5yYW5nZS5mcm9tKSA+IHRoaXMuaG92ZXJlZERhdGUpIHtcbiAgICAgIHJldHVybiAnZGF0ZXBpY2tlci1kYXRlX2FjdGl2ZS1maXJzdCc7XG4gICAgfVxuICAgIGlmIChuZXcgRGF0ZSh0aGlzLnJhbmdlLmZyb20pIDwgdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLXNlY29uZCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldENsYXNzU2VsZWN0ZWRJdGVtKGQ6IERheU1vZGVsKSB7XG4gICAgaWYgKGQuc2VsZWN0ZWQgJiYgZC5kYXRlIDwgdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLWZpcnN0JztcbiAgICB9XG4gICAgaWYgKGQuc2VsZWN0ZWQgJiYgZC5kYXRlID4gdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLXNlY29uZCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBhcnIgPSBbLi4udGhpcy5sb2NhbGUuZGF5c1Nob3J0XTtcbiAgICBhcnIucHVzaChhcnIuc2hpZnQoKSk7XG4gICAgdGhpcy5kYXlPcmRlciA9IGFycjtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItd2VlayBmb250LWNhcHRpb25cIj5cbiAgQGZvciAoZGF5IG9mIGRheU9yZGVyOyB0cmFjayBkYXkpIHtcbiAgPHAgY2xhc3M9XCJkYXRlcGlja2VyLWRheVwiPlxuICAgIHt7IGRheSB9fVxuICA8L3A+XG4gIH1cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItcGlja2VyIGNvbG9yLXRleHQtOTAgZm9udC1ib2R5LTNcIj5cbiAgQGZvciAoZGF5IG9mIGNhbGVuZGFyOyB0cmFjayBkYXkuZGF0ZS5nZXRUaW1lKCkpIHtcbiAgPGRpdlxuICAgIFtjbGFzc109XCJnZXRSYW5nZUFjdGl2ZUNsYXNzKGRheSkgKyAnIGRhdGVwaWNrZXItZGF0ZSBmb250LWJvZHktMyBkYXRlcGlja2VyXycgKyB2aWV3VHlwZVwiXG4gICAgKG1vdXNlZW50ZXIpPVwiaG92ZXIoZGF5LmRhdGUpXCJcbiAgICAoY2xpY2spPVwicGlja0RhdGUoZGF5KVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ2RhdGVwaWNrZXItZGF0ZV9hY3RpdmUnOiBkYXkuc2VsZWN0ZWQgfHwgKGRheS5kYXRlID09PSBob3ZlcmVkRGF0ZSAmJiByYW5nZSAmJiAhcmFuZ2UudG8pLFxuICAgICAgJ2RhdGVwaWNrZXItZGF0ZS1yYW5nZV9ob3Zlcic6IHJhbmdlICYmIGlzSG92ZXJlZFJhbmdlKGRheSksXG4gICAgICAnZGF0ZXBpY2tlci1kYXRlX2Rpc2FibGVkJzogZGF5LmRpc2FibGVkLFxuICAgICAgJ2NvbG9yLXRleHQtMzAnOiBkYXkuZGlzYWJsZWQgfHwgKCFyYW5nZSAmJiAhZGF5LmlzQ3VycmVudE1vbnRoKSxcbiAgICAgICdkYXRlcGlja2VyLWRhdGUtcmFuZ2VfZGlzYWJsZWQnOiAhZGF5LmlzQ3VycmVudE1vbnRoICYmIHJhbmdlLFxuICAgICAgJ2RhdGVwaWNrZXItZGF0ZS1yYW5nZV9hY3RpdmUnOiBpc0FjdGl2ZVJhbmdlKGRheSlcbiAgICB9XCJcbiAgPlxuICAgIDx0ZXRhLWRheS1pdGVtIFtkYXldPVwiZGF5XCI+PC90ZXRhLWRheS1pdGVtPlxuICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
@@ -1,58 +1,24 @@
|
|
|
1
|
-
import { Component,
|
|
2
|
-
import { ControlContainer, FormGroup, NgForm } from '@angular/forms';
|
|
3
|
-
import { boolOrFuncCallback } from '../../../../util/bool-or-func';
|
|
1
|
+
import { Component, input, output } from '@angular/core';
|
|
4
2
|
import { FormsUtil } from '../../../../util/forms-util';
|
|
5
|
-
import { TableColumn } from '../../../table/contract/table-column';
|
|
6
3
|
import { PropertyGridItemComponent } from '../property-grid-item/property-grid-item.component';
|
|
7
4
|
import { ExpandItemComponent } from '../../../expand-card/expand-item/expand-item.component';
|
|
8
5
|
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@angular/forms";
|
|
10
6
|
export class PropertyGridGroupComponent {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
7
|
+
constructor() {
|
|
8
|
+
this.column = input();
|
|
9
|
+
this.hideNonEditable = input();
|
|
10
|
+
this.dict = input();
|
|
11
|
+
this.item = input();
|
|
12
|
+
this.horizontal = input();
|
|
13
|
+
this.controlValueChange = output();
|
|
14
|
+
this.decimalPart = input();
|
|
15
|
+
this.itemTemplates = input();
|
|
19
16
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
column: this.column,
|
|
23
|
-
row: this.formGroup?.getRawValue(),
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
constructor(_formGroup) {
|
|
27
|
-
this._formGroup = _formGroup;
|
|
28
|
-
this.controlValueChange = new EventEmitter();
|
|
29
|
-
}
|
|
30
|
-
trackColumns(index, column) {
|
|
31
|
-
return column.name;
|
|
32
|
-
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridGroupComponent, deps: [{ token: i1.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridGroupComponent, isStandalone: true, selector: "teta-property-grid-group", inputs: { column: "column", hideNonEditable: "hideNonEditable", dict: "dict", item: "item", horizontal: "horizontal", decimalPart: "decimalPart", itemTemplates: "itemTemplates" }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-expand-item>\n <span ngProjectAs=\"head\">\n {{ column.caption }}\n </span>\n <div class=\"form-container\">\n @for (col of column.columns; track trackColumns($index, col)) { @if (col.columns?.length < 1) { @if (column.editable\n || !hideNonEditable) {\n <teta-property-grid-item\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal\"\n ></teta-property-grid-item>\n } } @if (col.columns?.length > 0) {\n <teta-property-grid-group\n [id]=\"col.name\"\n [dict]=\"dict\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates\"\n [decimalPart]=\"decimalPart\"\n [hideNonEditable]=\"hideNonEditable\"\n [horizontal]=\"horizontal\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n ></teta-property-grid-group>\n } }\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }, { kind: "component", type: ExpandItemComponent, selector: "teta-expand-item", inputs: ["open"], outputs: ["openChange"], exportAs: ["expand-item"] }, { kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider] }); }
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: PropertyGridGroupComponent, isStandalone: true, selector: "teta-property-grid-group", inputs: { column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: false, transformFunction: null }, hideNonEditable: { classPropertyName: "hideNonEditable", publicName: "hideNonEditable", isSignal: true, isRequired: false, transformFunction: null }, dict: { classPropertyName: "dict", publicName: "dict", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, horizontal: { classPropertyName: "horizontal", publicName: "horizontal", isSignal: true, isRequired: false, transformFunction: null }, decimalPart: { classPropertyName: "decimalPart", publicName: "decimalPart", isSignal: true, isRequired: false, transformFunction: null }, itemTemplates: { classPropertyName: "itemTemplates", publicName: "itemTemplates", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { controlValueChange: "controlValueChange" }, ngImport: i0, template: "<teta-expand-item>\n <span ngProjectAs=\"head\">\n {{ column().caption }}\n </span>\n <div class=\"form-container\">\n @for (col of column().columns; track col.name) {\n @if (col.columns?.length < 1) {\n @if (column().editable || !hideNonEditable) {\n <teta-property-grid-item\n [id]=\"col.name\"\n [dict]=\"dict()\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [hideNonEditable]=\"hideNonEditable()\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal()\"\n ></teta-property-grid-item>\n }\n } @else {\n <teta-property-grid-group\n [id]=\"col.name\"\n [dict]=\"dict()\"\n [column]=\"col\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [hideNonEditable]=\"hideNonEditable()\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n ></teta-property-grid-group>\n }\n }\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"], dependencies: [{ kind: "component", type: PropertyGridGroupComponent, selector: "teta-property-grid-group", inputs: ["column", "hideNonEditable", "dict", "item", "horizontal", "decimalPart", "itemTemplates"], outputs: ["controlValueChange"] }, { kind: "component", type: ExpandItemComponent, selector: "teta-expand-item", inputs: ["open"], outputs: ["openChange"], exportAs: ["expand-item"] }, { kind: "component", type: PropertyGridItemComponent, selector: "teta-property-grid-item", inputs: ["column", "hideNonEditable", "dict", "decimalPart", "item", "itemTemplates", "horizontal"], outputs: ["controlValueChange"] }], viewProviders: [FormsUtil.formProvider] }); }
|
|
35
19
|
}
|
|
36
20
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: PropertyGridGroupComponent, decorators: [{
|
|
37
21
|
type: Component,
|
|
38
|
-
args: [{ selector: 'teta-property-grid-group', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [ExpandItemComponent, PropertyGridItemComponent], template: "<teta-expand-item>\n <span ngProjectAs=\"head\">\n {{ column.caption }}\n </span>\n <div class=\"form-container\">\n @for (col of column.columns; track
|
|
39
|
-
}]
|
|
40
|
-
|
|
41
|
-
}] }], propDecorators: { column: [{
|
|
42
|
-
type: Input
|
|
43
|
-
}], hideNonEditable: [{
|
|
44
|
-
type: Input
|
|
45
|
-
}], dict: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}], item: [{
|
|
48
|
-
type: Input
|
|
49
|
-
}], horizontal: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}], controlValueChange: [{
|
|
52
|
-
type: Output
|
|
53
|
-
}], decimalPart: [{
|
|
54
|
-
type: Input
|
|
55
|
-
}], itemTemplates: [{
|
|
56
|
-
type: Input
|
|
57
|
-
}] } });
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLWdyb3VwL3Byb3BlcnR5LWdyaWQtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1ncm91cC9wcm9wZXJ0eS1ncmlkLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFbkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDL0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0RBQXdELENBQUM7OztBQVU3RixNQUFNLE9BQU8sMEJBQTBCO0lBVXJDLElBQUksU0FBUztRQUNYLElBQUksSUFBSSxDQUFDLFVBQVUsWUFBWSxTQUFTLEVBQUUsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsWUFBWSxNQUFNLEVBQUUsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQzlCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDOUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLEdBQUcsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRTtTQUNuQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBZ0MsVUFBNEI7UUFBNUIsZUFBVSxHQUFWLFVBQVUsQ0FBa0I7UUFyQmxELHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFnQixDQUFDO0lBcUJELENBQUM7SUFFaEUsWUFBWSxDQUFDLEtBQWEsRUFBRSxNQUFtQjtRQUM3QyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQzs4R0EvQlUsMEJBQTBCO2tHQUExQiwwQkFBMEIsK1RDcEJ2Qyw2bENBaUNBLHFHRGJhLDBCQUEwQiwyTUFGM0IsbUJBQW1CLG1JQUFFLHlCQUF5QiwrTEFGekMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDOzsyRkFJNUIsMEJBQTBCO2tCQVJ0QyxTQUFTOytCQUNFLDBCQUEwQixpQkFHckIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLGNBQzNCLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLHlCQUF5QixDQUFDOzswQkE2QjVDLFFBQVE7eUNBMUJaLE1BQU07c0JBQWQsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0UsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cCwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBJRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWRpY3Rpb25hcnknO1xuaW1wb3J0IHsgSUlkTmFtZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWlkLW5hbWUnO1xuaW1wb3J0IHsgYm9vbE9yRnVuY0NhbGxiYWNrIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbC9ib29sLW9yLWZ1bmMnO1xuaW1wb3J0IHsgRm9ybXNVdGlsIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbC9mb3Jtcy11dGlsJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vLi4vdGFibGUvY29udHJhY3QvdGFibGUtY29sdW1uJztcbmltcG9ydCB7IFByb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL3Byb3BlcnR5LWdyaWQtaXRlbS1kZXNjcmlwdGlvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL3Byb3BlcnR5LWdyaWQtaXRlbS9wcm9wZXJ0eS1ncmlkLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEV4cGFuZEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9leHBhbmQtY2FyZC9leHBhbmQtaXRlbS9leHBhbmQtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLXByb3BlcnR5LWdyaWQtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktZ3JpZC1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb3BlcnR5LWdyaWQtZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW0Zvcm1zVXRpbC5mb3JtUHJvdmlkZXJdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbRXhwYW5kSXRlbUNvbXBvbmVudCwgUHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5R3JpZEdyb3VwQ29tcG9uZW50PFQ+IHtcbiAgQElucHV0KCkgY29sdW1uOiBUYWJsZUNvbHVtbjtcbiAgQElucHV0KCkgaGlkZU5vbkVkaXRhYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBkaWN0OiBJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT47XG4gIEBJbnB1dCgpIGl0ZW06IFQ7XG4gIEBJbnB1dCgpIGhvcml6b250YWw6IGJvb2xlYW47XG4gIEBPdXRwdXQoKSBjb250cm9sVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElJZE5hbWU8YW55Pj4oKTtcbiAgQElucHV0KCkgZGVjaW1hbFBhcnQ6IG51bWJlcjtcbiAgQElucHV0KCkgaXRlbVRlbXBsYXRlczogUXVlcnlMaXN0PFByb3BlcnR5R3JpZEl0ZW1EZXNjcmlwdGlvbkRpcmVjdGl2ZT47XG5cbiAgZ2V0IGZvcm1Hcm91cCgpOiBGb3JtR3JvdXAge1xuICAgIGlmICh0aGlzLl9mb3JtR3JvdXAgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXA7XG4gICAgfVxuICAgIGlmICh0aGlzLl9mb3JtR3JvdXAgaW5zdGFuY2VvZiBOZ0Zvcm0pIHtcbiAgICAgIHJldHVybiB0aGlzLl9mb3JtR3JvdXAuZm9ybTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBnZXQgZWRpdGFibGUoKSB7XG4gICAgcmV0dXJuIGJvb2xPckZ1bmNDYWxsYmFjayh0aGlzLmNvbHVtbi5lZGl0YWJsZSkoe1xuICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbixcbiAgICAgIHJvdzogdGhpcy5mb3JtR3JvdXA/LmdldFJhd1ZhbHVlKCksXG4gICAgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIF9mb3JtR3JvdXA6IENvbnRyb2xDb250YWluZXIpIHt9XG5cbiAgdHJhY2tDb2x1bW5zKGluZGV4OiBudW1iZXIsIGNvbHVtbjogVGFibGVDb2x1bW4pOiBhbnkge1xuICAgIHJldHVybiBjb2x1bW4ubmFtZTtcbiAgfVxufVxuIiwiPHRldGEtZXhwYW5kLWl0ZW0+XG4gIDxzcGFuIG5nUHJvamVjdEFzPVwiaGVhZFwiPlxuICAgIHt7IGNvbHVtbi5jYXB0aW9uIH19XG4gIDwvc3Bhbj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tY29udGFpbmVyXCI+XG4gICAgQGZvciAoY29sIG9mIGNvbHVtbi5jb2x1bW5zOyB0cmFjayB0cmFja0NvbHVtbnMoJGluZGV4LCBjb2wpKSB7IEBpZiAoY29sLmNvbHVtbnM/Lmxlbmd0aCA8IDEpIHsgQGlmIChjb2x1bW4uZWRpdGFibGVcbiAgICB8fCAhaGlkZU5vbkVkaXRhYmxlKSB7XG4gICAgPHRldGEtcHJvcGVydHktZ3JpZC1pdGVtXG4gICAgICBbaWRdPVwiY29sLm5hbWVcIlxuICAgICAgW2RpY3RdPVwiZGljdFwiXG4gICAgICBbY29sdW1uXT1cImNvbFwiXG4gICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgIFtpdGVtVGVtcGxhdGVzXT1cIml0ZW1UZW1wbGF0ZXNcIlxuICAgICAgW2RlY2ltYWxQYXJ0XT1cImRlY2ltYWxQYXJ0XCJcbiAgICAgIFtoaWRlTm9uRWRpdGFibGVdPVwiaGlkZU5vbkVkaXRhYmxlXCJcbiAgICAgIChjb250cm9sVmFsdWVDaGFuZ2UpPVwiY29udHJvbFZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICBbaG9yaXpvbnRhbF09XCJob3Jpem9udGFsXCJcbiAgICA+PC90ZXRhLXByb3BlcnR5LWdyaWQtaXRlbT5cbiAgICB9IH0gQGlmIChjb2wuY29sdW1ucz8ubGVuZ3RoID4gMCkge1xuICAgIDx0ZXRhLXByb3BlcnR5LWdyaWQtZ3JvdXBcbiAgICAgIFtpZF09XCJjb2wubmFtZVwiXG4gICAgICBbZGljdF09XCJkaWN0XCJcbiAgICAgIFtjb2x1bW5dPVwiY29sXCJcbiAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgW2l0ZW1UZW1wbGF0ZXNdPVwiaXRlbVRlbXBsYXRlc1wiXG4gICAgICBbZGVjaW1hbFBhcnRdPVwiZGVjaW1hbFBhcnRcIlxuICAgICAgW2hpZGVOb25FZGl0YWJsZV09XCJoaWRlTm9uRWRpdGFibGVcIlxuICAgICAgW2hvcml6b250YWxdPVwiaG9yaXpvbnRhbFwiXG4gICAgICAoY29udHJvbFZhbHVlQ2hhbmdlKT1cImNvbnRyb2xWYWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIlxuICAgID48L3RldGEtcHJvcGVydHktZ3JpZC1ncm91cD5cbiAgICB9IH1cbiAgPC9kaXY+XG48L3RldGEtZXhwYW5kLWl0ZW0+XG4iXX0=
|
|
22
|
+
args: [{ selector: 'teta-property-grid-group', viewProviders: [FormsUtil.formProvider], standalone: true, imports: [ExpandItemComponent, PropertyGridItemComponent], template: "<teta-expand-item>\n <span ngProjectAs=\"head\">\n {{ column().caption }}\n </span>\n <div class=\"form-container\">\n @for (col of column().columns; track col.name) {\n @if (col.columns?.length < 1) {\n @if (column().editable || !hideNonEditable) {\n <teta-property-grid-item\n [id]=\"col.name\"\n [dict]=\"dict()\"\n [column]=\"col\"\n [item]=\"item\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [hideNonEditable]=\"hideNonEditable()\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n [horizontal]=\"horizontal()\"\n ></teta-property-grid-item>\n }\n } @else {\n <teta-property-grid-group\n [id]=\"col.name\"\n [dict]=\"dict()\"\n [column]=\"col\"\n [item]=\"item()\"\n [itemTemplates]=\"itemTemplates()\"\n [decimalPart]=\"decimalPart()\"\n [hideNonEditable]=\"hideNonEditable()\"\n [horizontal]=\"horizontal()\"\n (controlValueChange)=\"controlValueChange.emit($event)\"\n ></teta-property-grid-group>\n }\n }\n </div>\n</teta-expand-item>\n", styles: [":host{display:flex;flex-direction:column}\n"] }]
|
|
23
|
+
}] });
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktZ3JpZC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC9wcm9wZXJ0eS1ncmlkLWdyb3VwL3Byb3BlcnR5LWdyaWQtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9wcm9wZXJ0eS1ncmlkL3Byb3BlcnR5LWdyaWQvcHJvcGVydHktZ3JpZC1ncm91cC9wcm9wZXJ0eS1ncmlkLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUdsRSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFHdEQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDN0YsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0RBQXdELENBQUM7O0FBVTNGLE1BQU0sT0FBTywwQkFBMEI7SUFSdkM7UUFTRSxXQUFNLEdBQUcsS0FBSyxFQUFlLENBQUM7UUFDOUIsb0JBQWUsR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUNuQyxTQUFJLEdBQUcsS0FBSyxFQUErQixDQUFDO1FBQzVDLFNBQUksR0FBRyxLQUFLLEVBQUssQ0FBQztRQUNsQixlQUFVLEdBQUcsS0FBSyxFQUFXLENBQUM7UUFDOUIsdUJBQWtCLEdBQUcsTUFBTSxFQUFnQixDQUFDO1FBQzVDLGdCQUFXLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDOUIsa0JBQWEsR0FBRyxLQUFLLEVBQW1ELENBQUM7S0FDMUU7OEdBVFksMEJBQTBCO2tHQUExQiwwQkFBMEIsbWpDQ2pCdkMsMnRDQW9DQSxxR0RuQmEsMEJBQTBCLDJNQUYzQixtQkFBbUIsbUlBQUUseUJBQXlCLCtMQUZ6QyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7OzJGQUk1QiwwQkFBMEI7a0JBUnRDLFNBQVM7K0JBQ0UsMEJBQTBCLGlCQUdyQixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsY0FDM0IsSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgaW5wdXQsIG91dHB1dCwgUXVlcnlMaXN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SURpY3Rpb25hcnl9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9jb250cmFjdC9pLWRpY3Rpb25hcnknO1xuaW1wb3J0IHtJSWROYW1lfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vY29udHJhY3QvaS1pZC1uYW1lJztcbmltcG9ydCB7Rm9ybXNVdGlsfSBmcm9tICcuLi8uLi8uLi8uLi91dGlsL2Zvcm1zLXV0aWwnO1xuaW1wb3J0IHtUYWJsZUNvbHVtbn0gZnJvbSAnLi4vLi4vLi4vdGFibGUvY29udHJhY3QvdGFibGUtY29sdW1uJztcbmltcG9ydCB7UHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlfSBmcm9tICcuLi9wcm9wZXJ0eS1ncmlkLWl0ZW0tZGVzY3JpcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7UHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudH0gZnJvbSAnLi4vcHJvcGVydHktZ3JpZC1pdGVtL3Byb3BlcnR5LWdyaWQtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHtFeHBhbmRJdGVtQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9leHBhbmQtY2FyZC9leHBhbmQtaXRlbS9leHBhbmQtaXRlbS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLXByb3BlcnR5LWdyaWQtZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvcGVydHktZ3JpZC1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb3BlcnR5LWdyaWQtZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgdmlld1Byb3ZpZGVyczogW0Zvcm1zVXRpbC5mb3JtUHJvdmlkZXJdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbRXhwYW5kSXRlbUNvbXBvbmVudCwgUHJvcGVydHlHcmlkSXRlbUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5R3JpZEdyb3VwQ29tcG9uZW50PFQ+IHtcbiAgY29sdW1uID0gaW5wdXQ8VGFibGVDb2x1bW4+KCk7XG4gIGhpZGVOb25FZGl0YWJsZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIGRpY3QgPSBpbnB1dDxJRGljdGlvbmFyeTxJSWROYW1lPGFueT5bXT4+KCk7XG4gIGl0ZW0gPSBpbnB1dDxUPigpO1xuICBob3Jpem9udGFsID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgY29udHJvbFZhbHVlQ2hhbmdlID0gb3V0cHV0PElJZE5hbWU8YW55Pj4oKTtcbiAgZGVjaW1hbFBhcnQgPSBpbnB1dDxudW1iZXI+KCk7XG4gIGl0ZW1UZW1wbGF0ZXMgPSBpbnB1dDxRdWVyeUxpc3Q8UHJvcGVydHlHcmlkSXRlbURlc2NyaXB0aW9uRGlyZWN0aXZlPj4oKTtcbn1cbiIsIjx0ZXRhLWV4cGFuZC1pdGVtPlxuICA8c3BhbiBuZ1Byb2plY3RBcz1cImhlYWRcIj5cbiAgICB7eyBjb2x1bW4oKS5jYXB0aW9uIH19XG4gIDwvc3Bhbj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tY29udGFpbmVyXCI+XG4gICAgQGZvciAoY29sIG9mIGNvbHVtbigpLmNvbHVtbnM7IHRyYWNrIGNvbC5uYW1lKSB7XG4gICAgICBAaWYgKGNvbC5jb2x1bW5zPy5sZW5ndGggPCAxKSB7XG4gICAgICAgIEBpZiAoY29sdW1uKCkuZWRpdGFibGUgfHwgIWhpZGVOb25FZGl0YWJsZSkge1xuICAgICAgICAgIDx0ZXRhLXByb3BlcnR5LWdyaWQtaXRlbVxuICAgICAgICAgICAgW2lkXT1cImNvbC5uYW1lXCJcbiAgICAgICAgICAgIFtkaWN0XT1cImRpY3QoKVwiXG4gICAgICAgICAgICBbY29sdW1uXT1cImNvbFwiXG4gICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICAgIFtpdGVtVGVtcGxhdGVzXT1cIml0ZW1UZW1wbGF0ZXMoKVwiXG4gICAgICAgICAgICBbZGVjaW1hbFBhcnRdPVwiZGVjaW1hbFBhcnQoKVwiXG4gICAgICAgICAgICBbaGlkZU5vbkVkaXRhYmxlXT1cImhpZGVOb25FZGl0YWJsZSgpXCJcbiAgICAgICAgICAgIChjb250cm9sVmFsdWVDaGFuZ2UpPVwiY29udHJvbFZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbaG9yaXpvbnRhbF09XCJob3Jpem9udGFsKClcIlxuICAgICAgICAgID48L3RldGEtcHJvcGVydHktZ3JpZC1pdGVtPlxuICAgICAgICB9XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHRldGEtcHJvcGVydHktZ3JpZC1ncm91cFxuICAgICAgICAgIFtpZF09XCJjb2wubmFtZVwiXG4gICAgICAgICAgW2RpY3RdPVwiZGljdCgpXCJcbiAgICAgICAgICBbY29sdW1uXT1cImNvbFwiXG4gICAgICAgICAgW2l0ZW1dPVwiaXRlbSgpXCJcbiAgICAgICAgICBbaXRlbVRlbXBsYXRlc109XCJpdGVtVGVtcGxhdGVzKClcIlxuICAgICAgICAgIFtkZWNpbWFsUGFydF09XCJkZWNpbWFsUGFydCgpXCJcbiAgICAgICAgICBbaGlkZU5vbkVkaXRhYmxlXT1cImhpZGVOb25FZGl0YWJsZSgpXCJcbiAgICAgICAgICBbaG9yaXpvbnRhbF09XCJob3Jpem9udGFsKClcIlxuICAgICAgICAgIChjb250cm9sVmFsdWVDaGFuZ2UpPVwiY29udHJvbFZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgID48L3RldGEtcHJvcGVydHktZ3JpZC1ncm91cD5cbiAgICAgIH1cbiAgICB9XG4gIDwvZGl2PlxuPC90ZXRhLWV4cGFuZC1pdGVtPlxuIl19
|