@seniorsistemas/angular-components 19.0.2 → 19.0.3-bugfix-ptfgap-1320-1a430aca
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/dynamic-form/dynamic-form/components/grid/row/row.component.d.ts +1 -0
- package/dynamic-form/dynamic-form/components/lookup/lookup.component.d.ts +4 -1
- package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +5 -5
- package/esm2022/dynamic-form/dynamic-form/components/grid/row/row.component.mjs +12 -3
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +26 -17
- package/esm2022/dynamic-form/dynamic-form/dynamic-form.mjs +5 -3
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +4 -4
- package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +40 -20
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -14,6 +14,7 @@ export declare class RowComponent implements BaseStructureComponentConfig {
|
|
|
14
14
|
protected isFunction(value: any): boolean;
|
|
15
15
|
protected fieldIsExpandedDynamicType(field: ExpandedDynamicType | ExpandedDynamicStructure | DynamicType): field is ExpandedDynamicType;
|
|
16
16
|
protected fieldGridClass(field: RowType): string;
|
|
17
|
+
protected getName(field: RowType): string;
|
|
17
18
|
static ɵfac: i0.ɵɵFactoryDeclaration<RowComponent, never>;
|
|
18
19
|
static ɵcmp: i0.ɵɵComponentDeclaration<RowComponent, "s-row", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": true; "isSignal": true; }; "group": { "alias": "group"; "required": true; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
19
20
|
}
|
|
@@ -21,6 +21,7 @@ export declare class LookupComponent implements ControlValueAccessor, OnChanges,
|
|
|
21
21
|
private readonly hotkeysService;
|
|
22
22
|
protected readonly translateService: TranslateService;
|
|
23
23
|
protected readonly changeDetectorRef: ChangeDetectorRef;
|
|
24
|
+
private readonly MAP_FORM_DIALOG_CONTROLS;
|
|
24
25
|
private readonly lookupDialogContainer;
|
|
25
26
|
protected rowType: string;
|
|
26
27
|
indicatorLogo: LoadingStateIndicators;
|
|
@@ -40,7 +41,9 @@ export declare class LookupComponent implements ControlValueAccessor, OnChanges,
|
|
|
40
41
|
searchEmptyDescription?: string;
|
|
41
42
|
searchGridData: any[];
|
|
42
43
|
searchTotalRecords: number;
|
|
43
|
-
searchFields: DynamicType
|
|
44
|
+
searchFields: (DynamicType & {
|
|
45
|
+
customName?: string;
|
|
46
|
+
})[];
|
|
44
47
|
searchGridFields: DynamicType[];
|
|
45
48
|
multiSortMeta: SortMeta[];
|
|
46
49
|
placeholder?: string;
|
|
@@ -38,7 +38,7 @@ export class BreadcrumbComponent {
|
|
|
38
38
|
return route.children.reduce((validRoutes, child) => [...validRoutes, ...this._getValidChildren(child)], valid ? [route] : []);
|
|
39
39
|
}
|
|
40
40
|
_getCurrentTitle(routes) {
|
|
41
|
-
const last = routes
|
|
41
|
+
const last = routes.at(-1);
|
|
42
42
|
if (last?.routeConfig) {
|
|
43
43
|
return this._getTitle(last);
|
|
44
44
|
}
|
|
@@ -63,7 +63,7 @@ export class BreadcrumbComponent {
|
|
|
63
63
|
}
|
|
64
64
|
const items = this.homeUrl ? routes : routes.slice(1);
|
|
65
65
|
if (items.length) {
|
|
66
|
-
return items.map((route, i) => this._getMenuItem(route, i ===
|
|
66
|
+
return items.map((route, i) => this._getMenuItem(route, i === items.length - 1));
|
|
67
67
|
}
|
|
68
68
|
else {
|
|
69
69
|
return null;
|
|
@@ -92,14 +92,14 @@ export class BreadcrumbComponent {
|
|
|
92
92
|
return title;
|
|
93
93
|
}
|
|
94
94
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
95
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BreadcrumbComponent, selector: "s-breadcrumb", inputs: { homeUrl: "homeUrl", targetHomeUrl: "targetHomeUrl" }, ngImport: i0, template: "<h1 class=\"sds-page-title\">{{ title }}</h1>\n<p-breadcrumb\n [home]=\"home\"\n [model]=\"items\"\n>\n <ng-template\n #item\n let-menuitem\n >\n @if (menuitem.routerLink) {\n <a\n [routerLink]=\"menuitem?.routerLink\"\n routerLinkActive=\"p-breadcrumb-item-link-active\"\n [queryParams]=\"menuitem?.queryParams\"\n [routerLinkActiveOptions]=\"menuitem?.routerLinkActiveOptions || { exact: false }\"\n class=\"p-breadcrumb-item-link\"\n [target]=\"menuitem?.target\"\n [attr.title]=\"menuitem?.title\"\n [attr.tabindex]=\"menuitem?.disabled ?
|
|
95
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: BreadcrumbComponent, selector: "s-breadcrumb", inputs: { homeUrl: "homeUrl", targetHomeUrl: "targetHomeUrl" }, ngImport: i0, template: "<h1 class=\"sds-page-title\">{{ title }}</h1>\n<p-breadcrumb\n [home]=\"home\"\n [model]=\"items\"\n>\n <ng-template\n #item\n let-menuitem\n >\n @if (menuitem.routerLink) {\n <a\n [routerLink]=\"menuitem?.disabled ? null : menuitem?.routerLink\"\n routerLinkActive=\"p-breadcrumb-item-link-active\"\n [queryParams]=\"menuitem?.disabled ? null : menuitem?.queryParams\"\n [routerLinkActiveOptions]=\"menuitem?.routerLinkActiveOptions || { exact: false }\"\n class=\"p-breadcrumb-item-link\"\n [target]=\"menuitem?.target\"\n [attr.title]=\"menuitem?.title\"\n [attr.tabindex]=\"menuitem?.disabled ? '-1' : '0'\"\n [attr.aria-disabled]=\"menuitem?.disabled ? 'true' : null\"\n [fragment]=\"menuitem?.fragment\"\n [queryParamsHandling]=\"menuitem?.queryParamsHandling\"\n [preserveFragment]=\"menuitem?.preserveFragment\"\n [skipLocationChange]=\"menuitem?.skipLocationChange\"\n [replaceUrl]=\"menuitem?.replaceUrl\"\n [state]=\"menuitem?.state\"\n (click)=\"menuitem?.disabled && $event.preventDefault()\"\n >\n @if (menuitem?.icon) {\n <span\n class=\"p-breadcrumb-item-icon\"\n [ngClass]=\"menuitem?.icon\"\n [ngStyle]=\"menuitem?.iconStyle\"\n ></span>\n }\n @if (menuitem?.label) {\n @if (menuitem?.escape !== false) {\n <span class=\"p-breadcrumb-item-label\">{{ menuitem?.label }}</span>\n } @else {\n <span\n class=\"p-breadcrumb-item-label\"\n [innerHTML]=\"menuitem?.label\"\n ></span>\n }\n }\n </a>\n } @else {\n <a\n [attr.href]=\"!menuitem?.disabled && menuitem?.url ? menuitem?.url : null\"\n class=\"p-breadcrumb-item-link\"\n [target]=\"menuitem?.target\"\n [attr.title]=\"menuitem?.title\"\n [attr.tabindex]=\"menuitem?.disabled ? '-1' : '0'\"\n [attr.aria-disabled]=\"menuitem?.disabled ? 'true' : null\"\n (click)=\"menuitem?.disabled && $event.preventDefault()\"\n >\n @if (menuitem?.icon) {\n <span\n class=\"p-breadcrumb-item-icon\"\n [ngClass]=\"menuitem?.icon\"\n [ngStyle]=\"menuitem?.iconStyle\"\n ></span>\n }\n @if (menuitem?.label) {\n @if (menuitem?.escape !== false) {\n <span class=\"p-breadcrumb-item-label\">{{ menuitem?.label }}</span>\n } @else {\n <span\n class=\"p-breadcrumb-item-label\"\n [innerHTML]=\"menuitem?.label\"\n ></span>\n }\n }\n </a>\n }\n </ng-template>\n</p-breadcrumb>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.Breadcrumb, selector: "p-breadcrumb", inputs: ["model", "style", "styleClass", "home", "homeAriaLabel"], outputs: ["onItemClick"] }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] });
|
|
96
96
|
}
|
|
97
97
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BreadcrumbComponent, decorators: [{
|
|
98
98
|
type: Component,
|
|
99
|
-
args: [{ selector: 's-breadcrumb', template: "<h1 class=\"sds-page-title\">{{ title }}</h1>\n<p-breadcrumb\n [home]=\"home\"\n [model]=\"items\"\n>\n <ng-template\n #item\n let-menuitem\n >\n @if (menuitem.routerLink) {\n <a\n [routerLink]=\"menuitem?.routerLink\"\n routerLinkActive=\"p-breadcrumb-item-link-active\"\n [queryParams]=\"menuitem?.queryParams\"\n [routerLinkActiveOptions]=\"menuitem?.routerLinkActiveOptions || { exact: false }\"\n class=\"p-breadcrumb-item-link\"\n [target]=\"menuitem?.target\"\n [attr.title]=\"menuitem?.title\"\n [attr.tabindex]=\"menuitem?.disabled ?
|
|
99
|
+
args: [{ selector: 's-breadcrumb', template: "<h1 class=\"sds-page-title\">{{ title }}</h1>\n<p-breadcrumb\n [home]=\"home\"\n [model]=\"items\"\n>\n <ng-template\n #item\n let-menuitem\n >\n @if (menuitem.routerLink) {\n <a\n [routerLink]=\"menuitem?.disabled ? null : menuitem?.routerLink\"\n routerLinkActive=\"p-breadcrumb-item-link-active\"\n [queryParams]=\"menuitem?.disabled ? null : menuitem?.queryParams\"\n [routerLinkActiveOptions]=\"menuitem?.routerLinkActiveOptions || { exact: false }\"\n class=\"p-breadcrumb-item-link\"\n [target]=\"menuitem?.target\"\n [attr.title]=\"menuitem?.title\"\n [attr.tabindex]=\"menuitem?.disabled ? '-1' : '0'\"\n [attr.aria-disabled]=\"menuitem?.disabled ? 'true' : null\"\n [fragment]=\"menuitem?.fragment\"\n [queryParamsHandling]=\"menuitem?.queryParamsHandling\"\n [preserveFragment]=\"menuitem?.preserveFragment\"\n [skipLocationChange]=\"menuitem?.skipLocationChange\"\n [replaceUrl]=\"menuitem?.replaceUrl\"\n [state]=\"menuitem?.state\"\n (click)=\"menuitem?.disabled && $event.preventDefault()\"\n >\n @if (menuitem?.icon) {\n <span\n class=\"p-breadcrumb-item-icon\"\n [ngClass]=\"menuitem?.icon\"\n [ngStyle]=\"menuitem?.iconStyle\"\n ></span>\n }\n @if (menuitem?.label) {\n @if (menuitem?.escape !== false) {\n <span class=\"p-breadcrumb-item-label\">{{ menuitem?.label }}</span>\n } @else {\n <span\n class=\"p-breadcrumb-item-label\"\n [innerHTML]=\"menuitem?.label\"\n ></span>\n }\n }\n </a>\n } @else {\n <a\n [attr.href]=\"!menuitem?.disabled && menuitem?.url ? menuitem?.url : null\"\n class=\"p-breadcrumb-item-link\"\n [target]=\"menuitem?.target\"\n [attr.title]=\"menuitem?.title\"\n [attr.tabindex]=\"menuitem?.disabled ? '-1' : '0'\"\n [attr.aria-disabled]=\"menuitem?.disabled ? 'true' : null\"\n (click)=\"menuitem?.disabled && $event.preventDefault()\"\n >\n @if (menuitem?.icon) {\n <span\n class=\"p-breadcrumb-item-icon\"\n [ngClass]=\"menuitem?.icon\"\n [ngStyle]=\"menuitem?.iconStyle\"\n ></span>\n }\n @if (menuitem?.label) {\n @if (menuitem?.escape !== false) {\n <span class=\"p-breadcrumb-item-label\">{{ menuitem?.label }}</span>\n } @else {\n <span\n class=\"p-breadcrumb-item-label\"\n [innerHTML]=\"menuitem?.label\"\n ></span>\n }\n }\n </a>\n }\n </ng-template>\n</p-breadcrumb>\n" }]
|
|
100
100
|
}], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }], propDecorators: { homeUrl: [{
|
|
101
101
|
type: Input
|
|
102
102
|
}], targetHomeUrl: [{
|
|
103
103
|
type: Input
|
|
104
104
|
}] } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvYnJlYWRjcnVtYi9zcmMvbGliL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvYnJlYWRjcnVtYi9zcmMvbGliL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQWtCLGFBQWEsRUFBRSxjQUFjLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUd4RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBTW5ELE1BQU0sT0FBTyxtQkFBbUI7SUFjUDtJQUNBO0lBYmQsT0FBTyxDQUFVO0lBR2pCLGFBQWEsR0FBRyxPQUFPLENBQUM7SUFFeEIsSUFBSSxDQUFZO0lBQ2hCLEtBQUssQ0FBYztJQUNuQixLQUFLLENBQVU7SUFFTCxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUV0RCxZQUNxQixlQUErQixFQUMvQixPQUFlO1FBRGYsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBQy9CLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFFaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2FBQ2QsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQzlCLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUNwRDthQUNBLFNBQVMsQ0FBQyxHQUFH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TSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDakYsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7d0dBN0dRLG1CQUFtQjs0RkFBbkIsbUJBQW1CLG9IQ1hoQyw4N0ZBeUVBOzs0RkQ5RGEsbUJBQW1CO2tCQUovQixTQUFTOytCQUNJLGNBQWM7d0dBS2pCLE9BQU87c0JBRGIsS0FBSztnQkFJQyxhQUFhO3NCQURuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbkVuZCwgUFJJTUFSWV9PVVRMRVQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1icmVhZGNydW1iJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGhvbWVVcmw/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0YXJnZXRIb21lVXJsID0gJ19zZWxmJztcblxuICAgIHB1YmxpYyBob21lPzogTWVudUl0ZW07XG4gICAgcHVibGljIGl0ZW1zPzogTWVudUl0ZW1bXTtcbiAgICBwdWJsaWMgdGl0bGU/OiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3JvdXRlcjogUm91dGVyLFxuICAgICkge1xuICAgICAgICB0aGlzLl9yb3V0ZXIuZXZlbnRzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSksXG4gICAgICAgICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fb25OYXZpZ2F0aW9uRW5kKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9vbk5hdmlnYXRpb25FbmQoKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRSb3V0ZSA9IHRoaXMuX2FjdGl2YXRlZFJvdXRlLnJvb3Q7XG4gICAgICAgIGNvbnN0IHZhbGlkUm91dGVzOiBBY3RpdmF0ZWRSb3V0ZVtdID0gdGhpcy5fZ2V0VmFsaWRDaGlsZHJlbihjdXJyZW50Um91dGUpO1xuXG4gICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLl9nZXRDdXJyZW50VGl0bGUodmFsaWRSb3V0ZXMpID8/ICcnO1xuICAgICAgICB0aGlzLmhvbWUgPSB0aGlzLl9nZXRDdXJyZW50SG9tZSh2YWxpZFJvdXRlcyk7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLl9nZXRDdXJyZW50SXRlbXModmFsaWRSb3V0ZXMpIHx8IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldFZhbGlkQ2hpbGRyZW4ocm91dGU6IEFjdGl2YXRlZFJvdXRlKTogQWN0aXZhdGVkUm91dGVbXSB7XG4gICAgICAgIGNvbnN0IHZhbGlkID0gcm91dGUucm91dGVDb25maWc/LnBhdGggJiYgcm91dGUucm91dGVDb25maWc/LmNvbXBvbmVudCAmJiByb3V0ZS5vdXRsZXQgPT09IFBSSU1BUllfT1VUTEVUO1xuICAgICAgICByZXR1cm4gcm91dGUuY2hpbGRyZW4ucmVkdWNlKFxuICAgICAgICAgICAgKHZhbGlkUm91dGVzLCBjaGlsZCkgPT4gWy4uLnZhbGlkUm91dGVzLCAuLi50aGlzLl9nZXRWYWxpZENoaWxkcmVuKGNoaWxkKV0sXG4gICAgICAgICAgICB2YWxpZCA/IFtyb3V0ZV0gOiBbXSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRDdXJyZW50VGl0bGUocm91dGVzOiBBY3RpdmF0ZWRSb3V0ZVtdKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGxhc3QgPSByb3V0ZXNbcm91dGVzLmxlbmd0aCAtIDFdO1xuXG4gICAgICAgIGlmIChsYXN0Py5yb3V0ZUNvbmZpZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2dldFRpdGxlKGxhc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0Q3VycmVudEhvbWUocm91dGVzOiBBY3RpdmF0ZWRSb3V0ZVtdKTogTWVudUl0ZW0gfCB1bmRlZmluZWQge1xuICAgICAgICBsZXQgaG9tZTogTWVudUl0ZW0gfCB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKHRoaXMuaG9tZVVybCkge1xuICAgICAgICAgICAgaG9tZSA9IHsgdXJsOiB0aGlzLmhvbWVVcmwsIGljb246ICdmYSBmYS1ob21lJywgdGFyZ2V0OiB0aGlzLnRhcmdldEhvbWVVcmwgfTtcbiAgICAgICAgfSBlbHNlIGlmIChyb3V0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBob21lID0geyAuLi50aGlzLl9nZXRNZW51SXRlbShyb3V0ZXNbMF0sIHJvdXRlcy5sZW5ndGggPT09IDEpLCBpY29uOiAnZmEgZmEtaG9tZScgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGhvbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaG9tZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRDdXJyZW50SXRlbXMocm91dGVzOiBBY3RpdmF0ZWRSb3V0ZVtdKTogTWVudUl0ZW1bXSB8IG51bGwge1xuICAgICAgICBpZiAoIXJvdXRlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmhvbWVVcmwgPyByb3V0ZXMgOiByb3V0ZXMuc2xpY2UoMSk7XG5cbiAgICAgICAgaWYgKGl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgocm91dGUsIGkpID0+IHRoaXMuX2dldE1lbnVJdGVtKHJvdXRlLCBpID09PSByb3V0ZXMubGVuZ3RoIC0gMSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRNZW51SXRlbShyb3V0ZTogQWN0aXZhdGVkUm91dGUsIGRpc2FibGVkID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLl9nZXRUaXRsZShyb3V0ZSk7XG4gICAgICAgIGNvbnN0IHJvdXRlcyA9IHJvdXRlLnBhdGhGcm9tUm9vdDtcbiAgICAgICAgY29uc3Qgcm91dGVyTGluayA9IHJvdXRlc1xuICAgICAgICAgICAgLnNsaWNlKDAsIHJvdXRlcy5pbmRleE9mKHJvdXRlKSArIDEpXG4gICAgICAgICAgICAucmVkdWNlKChyZXN1bHQsIGl0ZW0pID0+IFsuLi5yZXN1bHQsIC4uLml0ZW0uc25hcHNob3QudXJsLm1hcCgodXJsKSA9PiB1cmwucGF0aCldLCBbJy8nXSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgcm91dGVyTGluayxcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZU9wdGlvbnM6IHsgZXhhY3Q6IHRydWUgfSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRUaXRsZShyb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7IHNuYXBzaG90LCByb3V0ZUNvbmZpZyB9ID0gcm91dGU7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gc25hcHNob3QuZGF0YVsncm91dGVUaXRsZSddO1xuXG4gICAgICAgIGlmICghdGl0bGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gcm91dGVUaXRsZSBkZWZpbmVkIGZvciB0aGUgcm91dGUgLyR7cm91dGVDb25maWc/LnBhdGh9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRpdGxlO1xuICAgIH1cbn1cbiIsIjxoMSBjbGFzcz1cInNkcy1wYWdlLXRpdGxlXCI+e3sgdGl0bGUgfX08L2gxPlxuPHAtYnJlYWRjcnVtYlxuICAgIFtob21lXT1cImhvbWVcIlxuICAgIFttb2RlbF09XCJpdGVtc1wiXG4+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICNpdGVtXG4gICAgICAgIGxldC1tZW51aXRlbVxuICAgID5cbiAgICAgICAgQGlmIChtZW51aXRlbS5yb3V0ZXJMaW5rKSB7XG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIm1lbnVpdGVtPy5yb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwicC1icmVhZGNydW1iLWl0ZW0tbGluay1hY3RpdmVcIlxuICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJtZW51aXRlbT8ucXVlcnlQYXJhbXNcIlxuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rQWN0aXZlT3B0aW9uc109XCJtZW51aXRlbT8ucm91dGVyTGlua0FjdGl2ZU9wdGlvbnMgfHwgeyBleGFjdDogZmFsc2UgfVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJyZWFkY3J1bWItaXRlbS1saW5rXCJcbiAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cIm1lbnVpdGVtPy50YXJnZXRcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cIm1lbnVpdGVtPy50aXRsZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwibWVudWl0ZW0/LmRpc2FibGVkID8gbnVsbCA6ICcwJ1wiXG4gICAgICAgICAgICAgICAgW2ZyYWdtZW50XT1cIm1lbnVpdGVtPy5mcmFnbWVudFwiXG4gICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwibWVudWl0ZW0/LnF1ZXJ5UGFyYW1zSGFuZGxpbmdcIlxuICAgICAgICAgICAgICAgIFtwcmVzZXJ2ZUZyYWdtZW50XT1cIm1lbnVpdGVtPy5wcmVzZXJ2ZUZyYWdtZW50XCJcbiAgICAgICAgICAgICAgICBbc2tpcExvY2F0aW9uQ2hhbmdlXT1cIm1lbnVpdGVtPy5za2lwTG9jYXRpb25DaGFuZ2VcIlxuICAgICAgICAgICAgICAgIFtyZXBsYWNlVXJsXT1cIm1lbnVpdGVtPy5yZXBsYWNlVXJsXCJcbiAgICAgICAgICAgICAgICBbc3RhdGVdPVwibWVudWl0ZW0/LnN0YXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKG1lbnVpdGVtPy5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnJlYWRjcnVtYi1pdGVtLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWVudWl0ZW0/Lmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwibWVudWl0ZW0/Lmljb25TdHlsZVwiXG4gICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAobWVudWl0ZW0/LmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobWVudWl0ZW0/LmVzY2FwZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1icmVhZGNydW1iLWl0ZW0tbGFiZWwnXCI+e3sgbWVudWl0ZW0/LmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgID48c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1icmVhZGNydW1iLWl0ZW0tbGFiZWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1lbnVpdGVtPy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCJtZW51aXRlbT8udXJsID8gbWVudWl0ZW0/LnVybCA6IG51bGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1icmVhZGNydW1iLWl0ZW0tbGlua1wiXG4gICAgICAgICAgICAgICAgW3RhcmdldF09XCJtZW51aXRlbT8udGFyZ2V0XCJcbiAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJtZW51aXRlbT8udGl0bGVcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIm1lbnVpdGVtPy5kaXNhYmxlZCA/IG51bGwgOiAnMCdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAobWVudWl0ZW0/Lmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1icmVhZGNydW1iLWl0ZW0taWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJtZW51aXRlbT8uaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJtZW51aXRlbT8uaWNvblN0eWxlXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChtZW51aXRlbT8ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChtZW51aXRlbT8uZXNjYXBlICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLWJyZWFkY3J1bWItaXRlbS1sYWJlbCdcIj57eyBtZW51aXRlbT8ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPjxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJyZWFkY3J1bWItaXRlbS1sYWJlbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibWVudWl0ZW0/LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH1cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9wLWJyZWFkY3J1bWI+XG4iXX0=
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvYnJlYWRjcnVtYi9zcmMvbGliL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvYnJlYWRjcnVtYi9zcmMvbGliL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQWtCLGFBQWEsRUFBRSxjQUFjLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUd4RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBTW5ELE1BQU0sT0FBTyxtQkFBbUI7SUFjUDtJQUNBO0lBYmQsT0FBTyxDQUFVO0lBR2pCLGFBQWEsR0FBRyxPQUFPLENBQUM7SUFFeEIsSUFBSSxDQUFZO0lBQ2hCLEtBQUssQ0FBYztJQUNuQixLQUFLLENBQVU7SUFFTCxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUV0RCxZQUNxQixlQUErQixFQUMvQixPQUFlO1FBRGYsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBQy9CLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFFaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2FBQ2QsSUFBSSxDQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQzlCLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGFBQWEsQ0FBQyxDQUNwRDthQUNBLFNBQVMsQ0FBQyxHQUFH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SSxLQUFLLENBQUMsd0NBQXdDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO3dHQTdHUSxtQkFBbUI7NEZBQW5CLG1CQUFtQixvSENYaEMsdXpHQTZFQTs7NEZEbEVhLG1CQUFtQjtrQkFKL0IsU0FBUzsrQkFDSSxjQUFjO3dHQUtqQixPQUFPO3NCQURiLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFBSSU1BUllfT1VUTEVULCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3MtYnJlYWRjcnVtYicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBob21lVXJsPzogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFyZ2V0SG9tZVVybCA9ICdfc2VsZic7XG5cbiAgICBwdWJsaWMgaG9tZT86IE1lbnVJdGVtO1xuICAgIHB1YmxpYyBpdGVtcz86IE1lbnVJdGVtW107XG4gICAgcHVibGljIHRpdGxlPzogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9yb3V0ZXI6IFJvdXRlcixcbiAgICApIHtcbiAgICAgICAgdGhpcy5fcm91dGVyLmV2ZW50c1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpLFxuICAgICAgICAgICAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX29uTmF2aWdhdGlvbkVuZCgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb25OYXZpZ2F0aW9uRW5kKCkge1xuICAgICAgICBjb25zdCBjdXJyZW50Um91dGUgPSB0aGlzLl9hY3RpdmF0ZWRSb3V0ZS5yb290O1xuICAgICAgICBjb25zdCB2YWxpZFJvdXRlczogQWN0aXZhdGVkUm91dGVbXSA9IHRoaXMuX2dldFZhbGlkQ2hpbGRyZW4oY3VycmVudFJvdXRlKTtcblxuICAgICAgICB0aGlzLnRpdGxlID0gdGhpcy5fZ2V0Q3VycmVudFRpdGxlKHZhbGlkUm91dGVzKSA/PyAnJztcbiAgICAgICAgdGhpcy5ob21lID0gdGhpcy5fZ2V0Q3VycmVudEhvbWUodmFsaWRSb3V0ZXMpO1xuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5fZ2V0Q3VycmVudEl0ZW1zKHZhbGlkUm91dGVzKSB8fCBbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRWYWxpZENoaWxkcmVuKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSk6IEFjdGl2YXRlZFJvdXRlW10ge1xuICAgICAgICBjb25zdCB2YWxpZCA9IHJvdXRlLnJvdXRlQ29uZmlnPy5wYXRoICYmIHJvdXRlLnJvdXRlQ29uZmlnPy5jb21wb25lbnQgJiYgcm91dGUub3V0bGV0ID09PSBQUklNQVJZX09VVExFVDtcbiAgICAgICAgcmV0dXJuIHJvdXRlLmNoaWxkcmVuLnJlZHVjZShcbiAgICAgICAgICAgICh2YWxpZFJvdXRlcywgY2hpbGQpID0+IFsuLi52YWxpZFJvdXRlcywgLi4udGhpcy5fZ2V0VmFsaWRDaGlsZHJlbihjaGlsZCldLFxuICAgICAgICAgICAgdmFsaWQgPyBbcm91dGVdIDogW10sXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0Q3VycmVudFRpdGxlKHJvdXRlczogQWN0aXZhdGVkUm91dGVbXSk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBjb25zdCBsYXN0ID0gcm91dGVzLmF0KC0xKTtcblxuICAgICAgICBpZiAobGFzdD8ucm91dGVDb25maWcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9nZXRUaXRsZShsYXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEN1cnJlbnRIb21lKHJvdXRlczogQWN0aXZhdGVkUm91dGVbXSk6IE1lbnVJdGVtIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgbGV0IGhvbWU6IE1lbnVJdGVtIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmICh0aGlzLmhvbWVVcmwpIHtcbiAgICAgICAgICAgIGhvbWUgPSB7IHVybDogdGhpcy5ob21lVXJsLCBpY29uOiAnZmEgZmEtaG9tZScsIHRhcmdldDogdGhpcy50YXJnZXRIb21lVXJsIH07XG4gICAgICAgIH0gZWxzZSBpZiAocm91dGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgaG9tZSA9IHsgLi4udGhpcy5fZ2V0TWVudUl0ZW0ocm91dGVzWzBdLCByb3V0ZXMubGVuZ3RoID09PSAxKSwgaWNvbjogJ2ZhIGZhLWhvbWUnIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBob21lID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhvbWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0Q3VycmVudEl0ZW1zKHJvdXRlczogQWN0aXZhdGVkUm91dGVbXSk6IE1lbnVJdGVtW10gfCBudWxsIHtcbiAgICAgICAgaWYgKCFyb3V0ZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5ob21lVXJsID8gcm91dGVzIDogcm91dGVzLnNsaWNlKDEpO1xuXG4gICAgICAgIGlmIChpdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtcy5tYXAoKHJvdXRlLCBpKSA9PiB0aGlzLl9nZXRNZW51SXRlbShyb3V0ZSwgaSA9PT0gaXRlbXMubGVuZ3RoIC0gMSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRNZW51SXRlbShyb3V0ZTogQWN0aXZhdGVkUm91dGUsIGRpc2FibGVkID0gZmFsc2UpIHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLl9nZXRUaXRsZShyb3V0ZSk7XG4gICAgICAgIGNvbnN0IHJvdXRlcyA9IHJvdXRlLnBhdGhGcm9tUm9vdDtcbiAgICAgICAgY29uc3Qgcm91dGVyTGluayA9IHJvdXRlc1xuICAgICAgICAgICAgLnNsaWNlKDAsIHJvdXRlcy5pbmRleE9mKHJvdXRlKSArIDEpXG4gICAgICAgICAgICAucmVkdWNlKChyZXN1bHQsIGl0ZW0pID0+IFsuLi5yZXN1bHQsIC4uLml0ZW0uc25hcHNob3QudXJsLm1hcCgodXJsKSA9PiB1cmwucGF0aCldLCBbJy8nXSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgcm91dGVyTGluayxcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLFxuICAgICAgICAgICAgcm91dGVyTGlua0FjdGl2ZU9wdGlvbnM6IHsgZXhhY3Q6IHRydWUgfSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRUaXRsZShyb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7IHNuYXBzaG90LCByb3V0ZUNvbmZpZyB9ID0gcm91dGU7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gc25hcHNob3QuZGF0YVsncm91dGVUaXRsZSddO1xuXG4gICAgICAgIGlmICghdGl0bGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gcm91dGVUaXRsZSBkZWZpbmVkIGZvciB0aGUgcm91dGUgLyR7cm91dGVDb25maWc/LnBhdGh9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRpdGxlO1xuICAgIH1cbn1cblxuIiwiPGgxIGNsYXNzPVwic2RzLXBhZ2UtdGl0bGVcIj57eyB0aXRsZSB9fTwvaDE+XG48cC1icmVhZGNydW1iXG4gICAgW2hvbWVdPVwiaG9tZVwiXG4gICAgW21vZGVsXT1cIml0ZW1zXCJcbj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgI2l0ZW1cbiAgICAgICAgbGV0LW1lbnVpdGVtXG4gICAgPlxuICAgICAgICBAaWYgKG1lbnVpdGVtLnJvdXRlckxpbmspIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwibWVudWl0ZW0/LmRpc2FibGVkID8gbnVsbCA6IG1lbnVpdGVtPy5yb3V0ZXJMaW5rXCJcbiAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwicC1icmVhZGNydW1iLWl0ZW0tbGluay1hY3RpdmVcIlxuICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJtZW51aXRlbT8uZGlzYWJsZWQgPyBudWxsIDogbWVudWl0ZW0/LnF1ZXJ5UGFyYW1zXCJcbiAgICAgICAgICAgICAgICBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwibWVudWl0ZW0/LnJvdXRlckxpbmtBY3RpdmVPcHRpb25zIHx8IHsgZXhhY3Q6IGZhbHNlIH1cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1icmVhZGNydW1iLWl0ZW0tbGlua1wiXG4gICAgICAgICAgICAgICAgW3RhcmdldF09XCJtZW51aXRlbT8udGFyZ2V0XCJcbiAgICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJtZW51aXRlbT8udGl0bGVcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIm1lbnVpdGVtPy5kaXNhYmxlZCA/ICctMScgOiAnMCdcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwibWVudWl0ZW0/LmRpc2FibGVkID8gJ3RydWUnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgW2ZyYWdtZW50XT1cIm1lbnVpdGVtPy5mcmFnbWVudFwiXG4gICAgICAgICAgICAgICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwibWVudWl0ZW0/LnF1ZXJ5UGFyYW1zSGFuZGxpbmdcIlxuICAgICAgICAgICAgICAgIFtwcmVzZXJ2ZUZyYWdtZW50XT1cIm1lbnVpdGVtPy5wcmVzZXJ2ZUZyYWdtZW50XCJcbiAgICAgICAgICAgICAgICBbc2tpcExvY2F0aW9uQ2hhbmdlXT1cIm1lbnVpdGVtPy5za2lwTG9jYXRpb25DaGFuZ2VcIlxuICAgICAgICAgICAgICAgIFtyZXBsYWNlVXJsXT1cIm1lbnVpdGVtPy5yZXBsYWNlVXJsXCJcbiAgICAgICAgICAgICAgICBbc3RhdGVdPVwibWVudWl0ZW0/LnN0YXRlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibWVudWl0ZW0/LmRpc2FibGVkICYmICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKG1lbnVpdGVtPy5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnJlYWRjcnVtYi1pdGVtLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWVudWl0ZW0/Lmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwibWVudWl0ZW0/Lmljb25TdHlsZVwiXG4gICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAobWVudWl0ZW0/LmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobWVudWl0ZW0/LmVzY2FwZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1icmVhZGNydW1iLWl0ZW0tbGFiZWxcIj57eyBtZW51aXRlbT8ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnJlYWRjcnVtYi1pdGVtLWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1lbnVpdGVtPy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgW2F0dHIuaHJlZl09XCIhbWVudWl0ZW0/LmRpc2FibGVkICYmIG1lbnVpdGVtPy51cmwgPyBtZW51aXRlbT8udXJsIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJyZWFkY3J1bWItaXRlbS1saW5rXCJcbiAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cIm1lbnVpdGVtPy50YXJnZXRcIlxuICAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cIm1lbnVpdGVtPy50aXRsZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwibWVudWl0ZW0/LmRpc2FibGVkID8gJy0xJyA6ICcwJ1wiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJtZW51aXRlbT8uZGlzYWJsZWQgPyAndHJ1ZScgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibWVudWl0ZW0/LmRpc2FibGVkICYmICRldmVudC5wcmV2ZW50RGVmYXVsdCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKG1lbnVpdGVtPy5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnJlYWRjcnVtYi1pdGVtLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwibWVudWl0ZW0/Lmljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwibWVudWl0ZW0/Lmljb25TdHlsZVwiXG4gICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAobWVudWl0ZW0/LmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobWVudWl0ZW0/LmVzY2FwZSAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1icmVhZGNydW1iLWl0ZW0tbGFiZWxcIj57eyBtZW51aXRlbT8ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnJlYWRjcnVtYi1pdGVtLWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1lbnVpdGVtPy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvcC1icmVhZGNydW1iPlxuIl19
|
|
@@ -31,11 +31,20 @@ export class RowComponent {
|
|
|
31
31
|
const fieldSize = new FieldSize(field.size ?? {});
|
|
32
32
|
return fieldSize.getGridClass();
|
|
33
33
|
}
|
|
34
|
+
getName(field) {
|
|
35
|
+
if ('customName' in field && field.customName) {
|
|
36
|
+
return field.customName;
|
|
37
|
+
}
|
|
38
|
+
else if ('name' in field) {
|
|
39
|
+
return field.name;
|
|
40
|
+
}
|
|
41
|
+
return '';
|
|
42
|
+
}
|
|
34
43
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowComponent, isStandalone: true, selector: "s-row", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, group: { classPropertyName: "group", publicName: "group", isSignal: true, isRequired: true, transformFunction: null }, errorMessages: { classPropertyName: "errorMessages", publicName: "errorMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"w-full\"\n [formGroup]=\"group()\"\n>\n @let rowConfig = config();\n @let rowIsVisible = formUtils.getFieldProperty(rowConfig.visible, true);\n @if (rowIsVisible) {\n <div class=\"grid w-screen max-w-full grid-cols-12 gap-4\">\n @for (field of config().fields; let i = $index; track i) {\n @if (fieldIsExpandedDynamicType(field)) {\n @let fieldVisible = formUtils.getFieldProperty(field.visible, true);\n @if (fieldVisible) {\n <div\n class=\"p-1\"\n [ngClass]=\"fieldGridClass(field)\"\n >\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n\n @if (
|
|
44
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: RowComponent, isStandalone: true, selector: "s-row", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null }, group: { classPropertyName: "group", publicName: "group", isSignal: true, isRequired: true, transformFunction: null }, errorMessages: { classPropertyName: "errorMessages", publicName: "errorMessages", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div\n class=\"w-full\"\n [formGroup]=\"group()\"\n>\n @let rowConfig = config();\n @let rowIsVisible = formUtils.getFieldProperty(rowConfig.visible, true);\n @if (rowIsVisible) {\n <div class=\"grid w-screen max-w-full grid-cols-12 gap-4\">\n @for (field of config().fields; let i = $index; track i) {\n @let fieldName = getName(field);\n @if (fieldIsExpandedDynamicType(field)) {\n @let fieldVisible = formUtils.getFieldProperty(field.visible, true);\n @if (fieldVisible) {\n <div\n class=\"p-1\"\n [ngClass]=\"fieldGridClass(field)\"\n >\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n\n @if (fieldName) {\n <s-control-errors\n [form]=\"group\"\n [control]=\"group().controls[fieldName]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"\n ></s-control-errors>\n }\n\n @if (field.footer) {\n @if (field.footer.help) {\n @let footerHelpVisible =\n field.footer.help.visible?.({\n abstractControl: group().controls[fieldName],\n formField: field,\n });\n @if (fieldName && field.footer.help.visible ? footerHelpVisible : true) {\n <span style=\"color: #888b99\">\n {{ field.footer.help.text }}\n </span>\n }\n }\n }\n\n @if (field.footer) {\n @let footerLinkVisible =\n field.footer.link?.visible?.({\n abstractControl: group().controls[fieldName],\n formField: field,\n });\n @if (fieldName && field.footer.link?.visible ? footerLinkVisible : true) {\n <div style=\"margin-left: -17px\">\n <s-button\n [label]=\"field.footer.link?.label\"\n priority=\"link\"\n (clicked)=\"\n field.footer.link?.onClick({\n abstractControl: group().controls[fieldName],\n formField: field,\n })\n \"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n }\n }\n @if (field.bottomTemplate) {\n <ng-template [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n }\n </div>\n }\n } @else {\n @let gridClass = fieldGridClass(field);\n <div [ngClass]=\"gridClass\">\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n </div>\n }\n }\n </div>\n }\n</div>\n\n", dependencies: [{ kind: "ngmodule", type: ControlErrorsModule }, { kind: "component", type: i1.ControlErrorsComponent, selector: "s-control-errors", inputs: ["id", "control", "errorMessages", "form"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor"], outputs: ["clicked"] }, { kind: "directive", type: DynamicFormDirective, selector: "[sDynamicForm]", inputs: ["sDynamicForm"] }] });
|
|
36
45
|
}
|
|
37
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RowComponent, decorators: [{
|
|
38
47
|
type: Component,
|
|
39
|
-
args: [{ selector: 's-row', standalone: true, imports: [ControlErrorsModule, ReactiveFormsModule, NgClass, ButtonComponent, DynamicFormDirective], template: "<div\n class=\"w-full\"\n [formGroup]=\"group()\"\n>\n @let rowConfig = config();\n @let rowIsVisible = formUtils.getFieldProperty(rowConfig.visible, true);\n @if (rowIsVisible) {\n <div class=\"grid w-screen max-w-full grid-cols-12 gap-4\">\n @for (field of config().fields; let i = $index; track i) {\n @if (fieldIsExpandedDynamicType(field)) {\n @let fieldVisible = formUtils.getFieldProperty(field.visible, true);\n @if (fieldVisible) {\n <div\n class=\"p-1\"\n [ngClass]=\"fieldGridClass(field)\"\n >\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n\n @if (
|
|
48
|
+
args: [{ selector: 's-row', standalone: true, imports: [ControlErrorsModule, ReactiveFormsModule, NgClass, ButtonComponent, DynamicFormDirective], template: "<div\n class=\"w-full\"\n [formGroup]=\"group()\"\n>\n @let rowConfig = config();\n @let rowIsVisible = formUtils.getFieldProperty(rowConfig.visible, true);\n @if (rowIsVisible) {\n <div class=\"grid w-screen max-w-full grid-cols-12 gap-4\">\n @for (field of config().fields; let i = $index; track i) {\n @let fieldName = getName(field);\n @if (fieldIsExpandedDynamicType(field)) {\n @let fieldVisible = formUtils.getFieldProperty(field.visible, true);\n @if (fieldVisible) {\n <div\n class=\"p-1\"\n [ngClass]=\"fieldGridClass(field)\"\n >\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n\n @if (fieldName) {\n <s-control-errors\n [form]=\"group\"\n [control]=\"group().controls[fieldName]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"\n ></s-control-errors>\n }\n\n @if (field.footer) {\n @if (field.footer.help) {\n @let footerHelpVisible =\n field.footer.help.visible?.({\n abstractControl: group().controls[fieldName],\n formField: field,\n });\n @if (fieldName && field.footer.help.visible ? footerHelpVisible : true) {\n <span style=\"color: #888b99\">\n {{ field.footer.help.text }}\n </span>\n }\n }\n }\n\n @if (field.footer) {\n @let footerLinkVisible =\n field.footer.link?.visible?.({\n abstractControl: group().controls[fieldName],\n formField: field,\n });\n @if (fieldName && field.footer.link?.visible ? footerLinkVisible : true) {\n <div style=\"margin-left: -17px\">\n <s-button\n [label]=\"field.footer.link?.label\"\n priority=\"link\"\n (clicked)=\"\n field.footer.link?.onClick({\n abstractControl: group().controls[fieldName],\n formField: field,\n })\n \"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n }\n }\n @if (field.bottomTemplate) {\n <ng-template [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n }\n </div>\n }\n } @else {\n @let gridClass = fieldGridClass(field);\n <div [ngClass]=\"gridClass\">\n <ng-container *sDynamicForm=\"{ id: id(), config: field, group: group() }\"></ng-container>\n </div>\n }\n }\n </div>\n }\n</div>\n\n" }]
|
|
40
49
|
}] });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vY29tcG9uZW50cy9ncmlkL3Jvdy9yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2dyaWQvcm93L3Jvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQU94RixPQUFPLEVBQUUsb0JBQW9CLEVBQWlCLE1BQU0sNkNBQTZDLENBQUM7QUFDbEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7O0FBU25GLE1BQU0sT0FBTyxZQUFZO0lBQ3JCLEVBQUUsR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUNyQixNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYSxDQUFDO0lBRXJDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFhLENBQUM7SUFDcEMsYUFBYSxHQUFHLEtBQUssRUFBTyxDQUFDO0lBRVYsU0FBUyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRW5ELGdCQUFnQixDQUFDLGFBQWtCO1FBQ3pDLElBQUksYUFBYTtZQUFFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMzRixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQVU7UUFDM0IsT0FBTyxLQUFLLFlBQVksUUFBUSxDQUFDO0lBQ3JDLENBQUM7SUFFUywwQkFBMEIsQ0FDaEMsS0FBbUU7UUFFbkUsT0FBTyxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBcUIsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBYztRQUNuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3BDLENBQUM7d0dBM0JRLFlBQVk7NEZBQVosWUFBWSw2akJDekJ6QixvK0hBK0VBLDJDRHhEYyxtQkFBbUIsd0tBQUUsbUJBQW1CLDRVQUFFLE9BQU8sb0ZBQUUsZUFBZSxzVEFBRSxvQkFBb0I7OzRGQUV6RixZQUFZO2tCQU54QixTQUFTOytCQUVJLE9BQU8sY0FDTCxJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQ29udHJvbEVycm9yc01vZHVsZSB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvY29udHJvbC1lcnJvcnMnO1xuaW1wb3J0IHtcbiAgICBFeHBhbmRlZER5bmFtaWNTdHJ1Y3R1cmUsXG4gICAgRXhwYW5kZWREeW5hbWljVHlwZSxcbiAgICBSb3dDb25maWcsXG4gICAgUm93VHlwZSxcbn0gZnJvbSAnLi4vLi4vLi4vY29uZmlndXJhdGlvbnMvc3RydWN0dXJlL3Jvdyc7XG5pbXBvcnQgeyBTVFJVQ1RVUkVfVFlQRVNfTElTVCwgU3RydWN0dXJlVHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvbmZpZ3VyYXRpb25zL3N0cnVjdHVyZS9zdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9keW5hbWljLWZvcm0uZGlyZWN0aXZlJztcbmltcG9ydCB7IEZpZWxkU2l6ZSB9IGZyb20gJy4uLy4uLy4uL2Zvcm0tZmllbGQvY29uZmlndXJhdGlvbnMvZmllbGQtc2l6ZSc7XG5pbXBvcnQgeyBEeW5hbWljVHlwZSB9IGZyb20gJy4uLy4uLy4uL2Zvcm0tZmllbGQvY29uZmlndXJhdGlvbnMvZmllbGRzL2ZpZWxkJztcbmltcG9ydCB7IEZvcm1GaWVsZFV0aWxzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0tZmllbGQtdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlU3RydWN0dXJlQ29tcG9uZW50Q29uZmlnIH0gZnJvbSAnLi4vLi4vc3RydWN0dXJlL2Jhc2Utc3RydWN0dXJlLWNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHRlbXBsYXRlVXJsOiAnLi9yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHNlbGVjdG9yOiAncy1yb3cnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbnRyb2xFcnJvcnNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE5nQ2xhc3MsIEJ1dHRvbkNvbXBvbmVudCwgRHluYW1pY0Zvcm1EaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBSb3dDb21wb25lbnQgaW1wbGVtZW50cyBCYXNlU3RydWN0dXJlQ29tcG9uZW50Q29uZmlnIHtcbiAgICBpZCA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBjb25maWcgPSBpbnB1dC5yZXF1aXJlZDxSb3dDb25maWc+KCk7XG5cbiAgICBncm91cCA9IGlucHV0LnJlcXVpcmVkPEZvcm1Hcm91cD4oKTtcbiAgICBlcnJvck1lc3NhZ2VzID0gaW5wdXQ8YW55PigpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1VdGlscyA9IGluamVjdChGb3JtRmllbGRVdGlsc1NlcnZpY2UpO1xuXG4gICAgcHJvdGVjdGVkIGdldEVycm9yTWVzc2FnZXMoZXJyb3JNZXNzYWdlczogYW55KSB7XG4gICAgICAgIGlmIChlcnJvck1lc3NhZ2VzKSByZXR1cm4gdGhpcy5pc0Z1bmN0aW9uKGVycm9yTWVzc2FnZXMpID8gZXJyb3JNZXNzYWdlcygpIDogZXJyb3JNZXNzYWdlcztcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JNZXNzYWdlcygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb247XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGZpZWxkSXNFeHBhbmRlZER5bmFtaWNUeXBlKFxuICAgICAgICBmaWVsZDogRXhwYW5kZWREeW5hbWljVHlwZSB8IEV4cGFuZGVkRHluYW1pY1N0cnVjdHVyZSB8IER5bmFtaWNUeXBlLFxuICAgICk6IGZpZWxkIGlzIEV4cGFuZGVkRHluYW1pY1R5cGUge1xuICAgICAgICByZXR1cm4gIVNUUlVDVFVSRV9UWVBFU19MSVNULmluY2x1ZGVzKGZpZWxkLnR5cGUgYXMgU3RydWN0dXJlVHlwZSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGZpZWxkR3JpZENsYXNzKGZpZWxkOiBSb3dUeXBlKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkU2l6ZSA9IG5ldyBGaWVsZFNpemUoZmllbGQuc2l6ZSA/PyB7fSk7XG4gICAgICAgIHJldHVybiBmaWVsZFNpemUuZ2V0R3JpZENsYXNzKCk7XG4gICAgfVxufVxuXG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgIFtmb3JtR3JvdXBdPVwiZ3JvdXAoKVwiXG4+XG4gICAgQGxldCByb3dDb25maWcgPSBjb25maWcoKTtcbiAgICBAbGV0IHJvd0lzVmlzaWJsZSA9IGZvcm1VdGlscy5nZXRGaWVsZFByb3BlcnR5KHJvd0NvbmZpZy52aXNpYmxlLCB0cnVlKTtcbiAgICBAaWYgKHJvd0lzVmlzaWJsZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCB3LXNjcmVlbiBtYXgtdy1mdWxsIGdyaWQtY29scy0xMiBnYXAtNFwiPlxuICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgY29uZmlnKCkuZmllbGRzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgaSkge1xuICAgICAgICAgICAgICAgIEBpZiAoZmllbGRJc0V4cGFuZGVkRHluYW1pY1R5cGUoZmllbGQpKSB7XG4gICAgICAgICAgICAgICAgICAgIEBsZXQgZmllbGRWaXNpYmxlID0gZm9ybVV0aWxzLmdldEZpZWxkUHJvcGVydHkoZmllbGQudmlzaWJsZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGRWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImZpZWxkR3JpZENsYXNzKGZpZWxkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqc0R5bmFtaWNGb3JtPVwieyBpZDogaWQoKSwgY29uZmlnOiBmaWVsZCwgZ3JvdXA6IGdyb3VwKCkgfVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChmaWVsZC5uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzLWNvbnRyb2wtZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJncm91cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udHJvbF09XCJncm91cCgpLmNvbnRyb2xzW2ZpZWxkLm5hbWVdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvck1lc3NhZ2VzXT1cImdldEVycm9yTWVzc2FnZXMoZmllbGQuZXJyb3JNZXNzYWdlcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zLWNvbnRyb2wtZXJyb3JzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQuZm9vdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQuZm9vdGVyLmhlbHApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgZm9vdGVySGVscFZpc2libGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmZvb3Rlci5oZWxwLnZpc2libGU/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFic3RyYWN0Q29udHJvbDogZ3JvdXAoKS5jb250cm9sc1tmaWVsZC5uYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkOiBmaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQubmFtZSAmJiBmaWVsZC5mb290ZXIuaGVscC52aXNpYmxlID8gZm9vdGVySGVscFZpc2libGUgOiB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogIzg4OGI5OVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBmaWVsZC5mb290ZXIuaGVscC50ZXh0IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChmaWVsZC5mb290ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGxldCBmb290ZXJMaW5rVmlzaWJsZSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5mb290ZXIubGluaz8udmlzaWJsZT8uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnN0cmFjdENvbnRyb2w6IGdyb3VwKCkuY29udHJvbHNbZmllbGQubmFtZV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkOiBmaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLm5hbWUgJiYgZmllbGQuZm9vdGVyLmxpbms/LnZpc2libGUgPyBmb290ZXJMaW5rVmlzaWJsZSA6IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTE3cHhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cy1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImZpZWxkLmZvb3Rlci5saW5rPy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5PVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuZm9vdGVyLmxpbms/Lm9uQ2xpY2soe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFic3RyYWN0Q29udHJvbDogZ3JvdXAoKS5jb250cm9sc1tmaWVsZC5uYW1lXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQ6IGZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1eGlsaWFyeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQuYm90dG9tVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpZWxkLmJvdHRvbVRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAbGV0IGdyaWRDbGFzcyA9IGZpZWxkR3JpZENsYXNzKGZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJncmlkQ2xhc3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnNEeW5hbWljRm9ybT1cInsgaWQ6IGlkKCksIGNvbmZpZzogZmllbGQsIGdyb3VwOiBncm91cCgpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cblxuIl19
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9keW5hbWljLWZvcm0vc3JjL2xpYi9keW5hbWljLWZvcm0vY29tcG9uZW50cy9ncmlkL3Jvdy9yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9zcmMvbGliL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2dyaWQvcm93L3Jvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQU94RixPQUFPLEVBQUUsb0JBQW9CLEVBQWlCLE1BQU0sNkNBQTZDLENBQUM7QUFDbEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7O0FBU25GLE1BQU0sT0FBTyxZQUFZO0lBQ3JCLEVBQUUsR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUNyQixNQUFNLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYSxDQUFDO0lBRXJDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFhLENBQUM7SUFDcEMsYUFBYSxHQUFHLEtBQUssRUFBTyxDQUFDO0lBRVYsU0FBUyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRW5ELGdCQUFnQixDQUFDLGFBQWtCO1FBQ3pDLElBQUksYUFBYTtZQUFFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUMzRixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRVMsVUFBVSxDQUFDLEtBQVU7UUFDM0IsT0FBTyxLQUFLLFlBQVksUUFBUSxDQUFDO0lBQ3JDLENBQUM7SUFFUywwQkFBMEIsQ0FDaEMsS0FBbUU7UUFFbkUsT0FBTyxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBcUIsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFUyxjQUFjLENBQUMsS0FBYztRQUNuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFUyxPQUFPLENBQUMsS0FBYztRQUM1QixJQUFJLFlBQVksSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzVDLE9BQU8sS0FBSyxDQUFDLFVBQW9CLENBQUM7UUFDdEMsQ0FBQzthQUFNLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQztRQUN0QixDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO3dHQXJDUSxZQUFZOzRGQUFaLFlBQVksNmpCQ3pCekIsK2dJQWdGQSwyQ0R6RGMsbUJBQW1CLHdLQUFFLG1CQUFtQiw0VUFBRSxPQUFPLG9GQUFFLGVBQWUsc1RBQUUsb0JBQW9COzs0RkFFekYsWUFBWTtrQkFOeEIsU0FBUzsrQkFFSSxPQUFPLGNBQ0wsSUFBSSxXQUNQLENBQUMsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IENvbnRyb2xFcnJvcnNNb2R1bGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL2NvbnRyb2wtZXJyb3JzJztcbmltcG9ydCB7XG4gICAgRXhwYW5kZWREeW5hbWljU3RydWN0dXJlLFxuICAgIEV4cGFuZGVkRHluYW1pY1R5cGUsXG4gICAgUm93Q29uZmlnLFxuICAgIFJvd1R5cGUsXG59IGZyb20gJy4uLy4uLy4uL2NvbmZpZ3VyYXRpb25zL3N0cnVjdHVyZS9yb3cnO1xuaW1wb3J0IHsgU1RSVUNUVVJFX1RZUEVTX0xJU1QsIFN0cnVjdHVyZVR5cGUgfSBmcm9tICcuLi8uLi8uLi9jb25maWd1cmF0aW9ucy9zdHJ1Y3R1cmUvc3RydWN0dXJlJztcbmltcG9ydCB7IER5bmFtaWNGb3JtRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZHluYW1pYy1mb3JtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGaWVsZFNpemUgfSBmcm9tICcuLi8uLi8uLi9mb3JtLWZpZWxkL2NvbmZpZ3VyYXRpb25zL2ZpZWxkLXNpemUnO1xuaW1wb3J0IHsgRHluYW1pY1R5cGUgfSBmcm9tICcuLi8uLi8uLi9mb3JtLWZpZWxkL2NvbmZpZ3VyYXRpb25zL2ZpZWxkcy9maWVsZCc7XG5pbXBvcnQgeyBGb3JtRmllbGRVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLWZpZWxkLXV0aWxzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVN0cnVjdHVyZUNvbXBvbmVudENvbmZpZyB9IGZyb20gJy4uLy4uL3N0cnVjdHVyZS9iYXNlLXN0cnVjdHVyZS1jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vcm93LmNvbXBvbmVudC5odG1sJyxcbiAgICBzZWxlY3RvcjogJ3Mtcm93JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb250cm9sRXJyb3JzTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBOZ0NsYXNzLCBCdXR0b25Db21wb25lbnQsIER5bmFtaWNGb3JtRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgUm93Q29tcG9uZW50IGltcGxlbWVudHMgQmFzZVN0cnVjdHVyZUNvbXBvbmVudENvbmZpZyB7XG4gICAgaWQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgY29uZmlnID0gaW5wdXQucmVxdWlyZWQ8Um93Q29uZmlnPigpO1xuXG4gICAgZ3JvdXAgPSBpbnB1dC5yZXF1aXJlZDxGb3JtR3JvdXA+KCk7XG4gICAgZXJyb3JNZXNzYWdlcyA9IGlucHV0PGFueT4oKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBmb3JtVXRpbHMgPSBpbmplY3QoRm9ybUZpZWxkVXRpbHNTZXJ2aWNlKTtcblxuICAgIHByb3RlY3RlZCBnZXRFcnJvck1lc3NhZ2VzKGVycm9yTWVzc2FnZXM6IGFueSkge1xuICAgICAgICBpZiAoZXJyb3JNZXNzYWdlcykgcmV0dXJuIHRoaXMuaXNGdW5jdGlvbihlcnJvck1lc3NhZ2VzKSA/IGVycm9yTWVzc2FnZXMoKSA6IGVycm9yTWVzc2FnZXM7XG4gICAgICAgIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXNGdW5jdGlvbih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmaWVsZElzRXhwYW5kZWREeW5hbWljVHlwZShcbiAgICAgICAgZmllbGQ6IEV4cGFuZGVkRHluYW1pY1R5cGUgfCBFeHBhbmRlZER5bmFtaWNTdHJ1Y3R1cmUgfCBEeW5hbWljVHlwZSxcbiAgICApOiBmaWVsZCBpcyBFeHBhbmRlZER5bmFtaWNUeXBlIHtcbiAgICAgICAgcmV0dXJuICFTVFJVQ1RVUkVfVFlQRVNfTElTVC5pbmNsdWRlcyhmaWVsZC50eXBlIGFzIFN0cnVjdHVyZVR5cGUpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmaWVsZEdyaWRDbGFzcyhmaWVsZDogUm93VHlwZSkge1xuICAgICAgICBjb25zdCBmaWVsZFNpemUgPSBuZXcgRmllbGRTaXplKGZpZWxkLnNpemUgPz8ge30pO1xuICAgICAgICByZXR1cm4gZmllbGRTaXplLmdldEdyaWRDbGFzcygpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXROYW1lKGZpZWxkOiBSb3dUeXBlKSB7XG4gICAgICAgIGlmICgnY3VzdG9tTmFtZScgaW4gZmllbGQgJiYgZmllbGQuY3VzdG9tTmFtZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkLmN1c3RvbU5hbWUgYXMgc3RyaW5nO1xuICAgICAgICB9IGVsc2UgaWYgKCduYW1lJyBpbiBmaWVsZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkLm5hbWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxufVxuXG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgIFtmb3JtR3JvdXBdPVwiZ3JvdXAoKVwiXG4+XG4gICAgQGxldCByb3dDb25maWcgPSBjb25maWcoKTtcbiAgICBAbGV0IHJvd0lzVmlzaWJsZSA9IGZvcm1VdGlscy5nZXRGaWVsZFByb3BlcnR5KHJvd0NvbmZpZy52aXNpYmxlLCB0cnVlKTtcbiAgICBAaWYgKHJvd0lzVmlzaWJsZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCB3LXNjcmVlbiBtYXgtdy1mdWxsIGdyaWQtY29scy0xMiBnYXAtNFwiPlxuICAgICAgICAgICAgQGZvciAoZmllbGQgb2YgY29uZmlnKCkuZmllbGRzOyBsZXQgaSA9ICRpbmRleDsgdHJhY2sgaSkge1xuICAgICAgICAgICAgICAgIEBsZXQgZmllbGROYW1lID0gZ2V0TmFtZShmaWVsZCk7XG4gICAgICAgICAgICAgICAgQGlmIChmaWVsZElzRXhwYW5kZWREeW5hbWljVHlwZShmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgQGxldCBmaWVsZFZpc2libGUgPSBmb3JtVXRpbHMuZ2V0RmllbGRQcm9wZXJ0eShmaWVsZC52aXNpYmxlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChmaWVsZFZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZmllbGRHcmlkQ2xhc3MoZmllbGQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpzRHluYW1pY0Zvcm09XCJ7IGlkOiBpZCgpLCBjb25maWc6IGZpZWxkLCBncm91cDogZ3JvdXAoKSB9XCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkTmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cy1jb250cm9sLWVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1dPVwiZ3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRyb2xdPVwiZ3JvdXAoKS5jb250cm9sc1tmaWVsZE5hbWVdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvck1lc3NhZ2VzXT1cImdldEVycm9yTWVzc2FnZXMoZmllbGQuZXJyb3JNZXNzYWdlcylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zLWNvbnRyb2wtZXJyb3JzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQuZm9vdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQuZm9vdGVyLmhlbHApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgZm9vdGVySGVscFZpc2libGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLmZvb3Rlci5oZWxwLnZpc2libGU/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFic3RyYWN0Q29udHJvbDogZ3JvdXAoKS5jb250cm9sc1tmaWVsZE5hbWVdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQ6IGZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChmaWVsZE5hbWUgJiYgZmllbGQuZm9vdGVyLmhlbHAudmlzaWJsZSA/IGZvb3RlckhlbHBWaXNpYmxlIDogdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6ICM4ODhiOTlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZmllbGQuZm9vdGVyLmhlbHAudGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmllbGQuZm9vdGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgZm9vdGVyTGlua1Zpc2libGUgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuZm9vdGVyLmxpbms/LnZpc2libGU/Lih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzdHJhY3RDb250cm9sOiBncm91cCgpLmNvbnRyb2xzW2ZpZWxkTmFtZV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkOiBmaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkTmFtZSAmJiBmaWVsZC5mb290ZXIubGluaz8udmlzaWJsZSA/IGZvb3RlckxpbmtWaXNpYmxlIDogdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMTdweFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZmllbGQuZm9vdGVyLmxpbms/LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk9XCJsaW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5mb290ZXIubGluaz8ub25DbGljayh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzdHJhY3RDb250cm9sOiBncm91cCgpLmNvbnRyb2xzW2ZpZWxkTmFtZV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkOiBmaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXhpbGlhcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcy1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLmJvdHRvbVRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWVsZC5ib3R0b21UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgQGxldCBncmlkQ2xhc3MgPSBmaWVsZEdyaWRDbGFzcyhmaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwiZ3JpZENsYXNzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpzRHluYW1pY0Zvcm09XCJ7IGlkOiBpZCgpLCBjb25maWc6IGZpZWxkLCBncm91cDogZ3JvdXAoKSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaXY+XG5cbiJdfQ==
|