@ng-formworks/core 18.6.7 → 18.6.9

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.
Files changed (55) hide show
  1. package/esm2022/lib/framework-library/framework-library.service.mjs +3 -3
  2. package/esm2022/lib/framework-library/framework.mjs +3 -3
  3. package/esm2022/lib/framework-library/no-framework.component.mjs +3 -3
  4. package/esm2022/lib/framework-library/no-framework.module.mjs +4 -4
  5. package/esm2022/lib/framework-library/no.framework.mjs +3 -3
  6. package/esm2022/lib/json-schema-form.component.mjs +30 -9
  7. package/esm2022/lib/json-schema-form.module.mjs +4 -4
  8. package/esm2022/lib/json-schema-form.service.mjs +65 -7
  9. package/esm2022/lib/shared/json-schema.functions.mjs +2 -9
  10. package/esm2022/lib/shared/jsonpointer.functions.mjs +3 -3
  11. package/esm2022/lib/shared/layout.functions.mjs +15 -5
  12. package/esm2022/lib/shared/utility.functions.mjs +44 -1
  13. package/esm2022/lib/widget-library/add-reference.component.mjs +6 -6
  14. package/esm2022/lib/widget-library/button.component.mjs +3 -3
  15. package/esm2022/lib/widget-library/checkbox.component.mjs +3 -3
  16. package/esm2022/lib/widget-library/checkboxes.component.mjs +3 -3
  17. package/esm2022/lib/widget-library/element-attribute.directive.mjs +3 -3
  18. package/esm2022/lib/widget-library/file.component.mjs +3 -3
  19. package/esm2022/lib/widget-library/hidden.component.mjs +3 -3
  20. package/esm2022/lib/widget-library/index.mjs +4 -2
  21. package/esm2022/lib/widget-library/input.component.mjs +10 -5
  22. package/esm2022/lib/widget-library/item-title.component.mjs +43 -0
  23. package/esm2022/lib/widget-library/message.component.mjs +3 -3
  24. package/esm2022/lib/widget-library/none.component.mjs +3 -3
  25. package/esm2022/lib/widget-library/number.component.mjs +8 -5
  26. package/esm2022/lib/widget-library/one-of.component.mjs +3 -3
  27. package/esm2022/lib/widget-library/orderable.directive.mjs +3 -3
  28. package/esm2022/lib/widget-library/radios.component.mjs +3 -3
  29. package/esm2022/lib/widget-library/root.component.mjs +15 -7
  30. package/esm2022/lib/widget-library/section.component.mjs +3 -3
  31. package/esm2022/lib/widget-library/select-framework.component.mjs +3 -3
  32. package/esm2022/lib/widget-library/select-widget.component.mjs +3 -3
  33. package/esm2022/lib/widget-library/select.component.mjs +3 -3
  34. package/esm2022/lib/widget-library/selectcheckbox.component.mjs +3 -3
  35. package/esm2022/lib/widget-library/stop-propagation.directive.mjs +3 -3
  36. package/esm2022/lib/widget-library/submit.component.mjs +3 -3
  37. package/esm2022/lib/widget-library/tab.component.mjs +3 -3
  38. package/esm2022/lib/widget-library/tabs.component.mjs +18 -5
  39. package/esm2022/lib/widget-library/template.component.mjs +3 -3
  40. package/esm2022/lib/widget-library/textarea.component.mjs +8 -5
  41. package/esm2022/lib/widget-library/widget-library.module.mjs +6 -5
  42. package/esm2022/lib/widget-library/widget-library.service.mjs +3 -3
  43. package/fesm2022/ng-formworks-core.mjs +338 -142
  44. package/fesm2022/ng-formworks-core.mjs.map +1 -1
  45. package/lib/json-schema-form.component.d.ts +1 -1
  46. package/lib/json-schema-form.service.d.ts +1 -0
  47. package/lib/shared/layout.functions.d.ts +1 -0
  48. package/lib/shared/utility.functions.d.ts +15 -0
  49. package/lib/shared/validator.functions.d.ts +1 -1
  50. package/lib/widget-library/index.d.ts +3 -1
  51. package/lib/widget-library/item-title.component.d.ts +19 -0
  52. package/lib/widget-library/root.component.d.ts +1 -0
  53. package/lib/widget-library/tabs.component.d.ts +6 -2
  54. package/lib/widget-library/widget-library.module.d.ts +8 -7
  55. package/package.json +1 -1
@@ -15,13 +15,13 @@ export class MessageComponent {
15
15
  this.message = this.options.help || this.options.helpvalue ||
16
16
  this.options.msg || this.options.message;
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: MessageComponent, selector: "message-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: MessageComponent, selector: "message-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
20
20
  <span *ngIf="message"
21
21
  [class]="options?.labelHtmlClass || ''"
22
22
  [innerHTML]="message"></span>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MessageComponent, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MessageComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{
27
27
  // tslint:disable-next-line:component-selector
@@ -6,10 +6,10 @@ export class NoneComponent {
6
6
  this.layoutIndex = input(undefined);
7
7
  this.dataIndex = input(undefined);
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NoneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: NoneComponent, selector: "none-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: ``, isInline: true }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: NoneComponent, selector: "none-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: ``, isInline: true }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NoneComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoneComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{
15
15
  // tslint:disable-next-line:component-selector
@@ -34,10 +34,13 @@ export class NumberComponent {
34
34
  this.jsf.updateValue(this, event.target.value);
35
35
  }
36
36
  ngOnDestroy() {
37
- this.jsf.updateValue(this, null);
37
+ //see cpmments in input component
38
+ setTimeout(() => {
39
+ this.jsf.updateValue(this, null);
40
+ });
38
41
  }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
40
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: NumberComponent, selector: "number-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "inputControl", first: true, predicate: ["inputControl"], descendants: true }, { propertyName: "div", first: true, predicate: ["divElt"], descendants: true }], ngImport: i0, template: `
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: NumberComponent, selector: "number-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "inputControl", first: true, predicate: ["inputControl"], descendants: true }, { propertyName: "div", first: true, predicate: ["divElt"], descendants: true }], ngImport: i0, template: `
41
44
  <div #divElt [class]="options?.htmlClass || ''" >
42
45
  <label *ngIf="options?.title"
43
46
  [attr.for]="'control' + layoutNode()?._id"
@@ -85,7 +88,7 @@ export class NumberComponent {
85
88
  <span *ngIf="layoutNode()?.type === 'range'" [innerHTML]="controlValue"></span>
86
89
  </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.ElementAttributeDirective, selector: "[attributes]", inputs: ["attributes"] }, { kind: "directive", type: i4.StopPropagationDirective, selector: "[appStopPropagation]", inputs: ["appStopPropagation"] }] }); }
87
90
  }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumberComponent, decorators: [{
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberComponent, decorators: [{
89
92
  type: Component,
90
93
  args: [{
91
94
  // tslint:disable-next-line:component-selector
@@ -145,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
145
148
  type: ViewChild,
146
149
  args: ['divElt', {}]
147
150
  }] } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWZvcm13b3Jrcy1jb3JlL3NyYy9saWIvd2lkZ2V0LWxpYnJhcnkvbnVtYmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFpQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBcURwRSxxQ0FBcUM7QUFDckMsTUFBTSxPQUFPLGVBQWU7SUFwRDVCO1FBcURVLFFBQUcsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUs1QyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNaLGVBQVUsR0FBRyxLQUFLLENBQU0sU0FBUyxDQUFDLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDekMsY0FBUyxHQUFHLEtBQUssQ0FBVyxTQUFTLENBQUMsQ0FBQztLQTBCakQ7SUF4QkcsK0ZBQStGO0lBQy9GLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFPSCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQXZDVSxlQUFlO21HQUFmLGVBQWUsb3BCQWpEZDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQThDSDs7NEZBR0UsZUFBZTtrQkFwRDNCLFNBQVM7bUJBQUM7b0JBQ1AsOENBQThDO29CQUM5QyxRQUFRLEVBQUUsZUFBZTtvQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBOENIO2lCQUNWOzhCQXdCQyxZQUFZO3NCQURYLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUU7Z0JBSTdCLEdBQUc7c0JBREYsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9qc29uLXNjaGVtYS1mb3JtLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgICBzZWxlY3RvcjogJ251bWJlci13aWRnZXQnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgI2RpdkVsdCBbY2xhc3NdPVwib3B0aW9ucz8uaHRtbENsYXNzIHx8ICcnXCIgID5cclxuICAgICAgPGxhYmVsICpuZ0lmPVwib3B0aW9ucz8udGl0bGVcIlxyXG4gICAgICAgIFthdHRyLmZvcl09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZFwiXHJcbiAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/LmxhYmVsSHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJvcHRpb25zPy5ub3RpdGxlID8gJ25vbmUnIDogJydcIlxyXG4gICAgICAgIFtpbm5lckhUTUxdPVwib3B0aW9ucz8udGl0bGVcIj48L2xhYmVsPlxyXG4gICAgICA8aW5wdXQgI2lucHV0Q29udHJvbCAqbmdJZj1cImJvdW5kQ29udHJvbFwiXHJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkICsgJ1N0YXR1cydcIlxyXG4gICAgICAgIFthdHRyLm1heF09XCJvcHRpb25zPy5tYXhpbXVtXCJcclxuICAgICAgICBbYXR0ci5taW5dPVwib3B0aW9ucz8ubWluaW11bVwiXHJcbiAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwib3B0aW9ucz8ucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFthdHRyLnJlcXVpcmVkXT1cIm9wdGlvbnM/LnJlcXVpcmVkXCJcclxuICAgICAgICBbYXR0ci5yZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcclxuICAgICAgICBbYXR0ci5zdGVwXT1cIm9wdGlvbnM/Lm11bHRpcGxlT2YgfHwgb3B0aW9ucz8uc3RlcCB8fCAnYW55J1wiXHJcbiAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/LmZpZWxkSHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgICBbaWRdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZSgpPy5faWRcIlxyXG4gICAgICAgIFtuYW1lXT1cImNvbnRyb2xOYW1lXCJcclxuICAgICAgICBbcmVhZG9ubHldPVwib3B0aW9ucz8ucmVhZG9ubHkgPyAncmVhZG9ubHknIDogbnVsbFwiXHJcbiAgICAgICAgW3RpdGxlXT1cImxhc3RWYWxpZE51bWJlclwiXHJcbiAgICAgICAgW3R5cGVdPVwibGF5b3V0Tm9kZSgpPy50eXBlID09PSAncmFuZ2UnID8gJ3JhbmdlJyA6ICdudW1iZXInXCJcclxuICAgICAgICBbYXR0cmlidXRlc109XCJpbnB1dEF0dHJpYnV0ZXNcIlxyXG4gICAgICAgIFthcHBTdG9wUHJvcGFnYXRpb25dPVwiWydtb3VzZWRvd24nLCAndG91Y2hzdGFydCddXCJcclxuICAgICAgICA+XHJcbiAgICAgIDxpbnB1dCAjaW5wdXRDb250cm9sICpuZ0lmPVwiIWJvdW5kQ29udHJvbFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZCArICdTdGF0dXMnXCJcclxuICAgICAgICBbYXR0ci5tYXhdPVwib3B0aW9ucz8ubWF4aW11bVwiXHJcbiAgICAgICAgW2F0dHIubWluXT1cIm9wdGlvbnM/Lm1pbmltdW1cIlxyXG4gICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cIm9wdGlvbnM/LnBsYWNlaG9sZGVyXCJcclxuICAgICAgICBbYXR0ci5yZXF1aXJlZF09XCJvcHRpb25zPy5yZXF1aXJlZFwiXHJcbiAgICAgICAgW2F0dHIucmVhZG9ubHldPVwib3B0aW9ucz8ucmVhZG9ubHkgPyAncmVhZG9ubHknIDogbnVsbFwiXHJcbiAgICAgICAgW2F0dHIuc3RlcF09XCJvcHRpb25zPy5tdWx0aXBsZU9mIHx8IG9wdGlvbnM/LnN0ZXAgfHwgJ2FueSdcIlxyXG4gICAgICAgIFtjbGFzc109XCJvcHRpb25zPy5maWVsZEh0bWxDbGFzcyB8fCAnJ1wiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImNvbnRyb2xEaXNhYmxlZFwiXHJcbiAgICAgICAgW2lkXT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkXCJcclxuICAgICAgICBbbmFtZV09XCJjb250cm9sTmFtZVwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cIm9wdGlvbnM/LnJlYWRvbmx5ID8gJ3JlYWRvbmx5JyA6IG51bGxcIlxyXG4gICAgICAgIFt0aXRsZV09XCJsYXN0VmFsaWROdW1iZXJcIlxyXG4gICAgICAgIFt0eXBlXT1cImxheW91dE5vZGUoKT8udHlwZSA9PT0gJ3JhbmdlJyA/ICdyYW5nZScgOiAnbnVtYmVyJ1wiXHJcbiAgICAgICAgW3ZhbHVlXT1cImNvbnRyb2xWYWx1ZVwiXHJcbiAgICAgICAgKGlucHV0KT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxyXG4gICAgICAgIFthdHRyaWJ1dGVzXT1cImlucHV0QXR0cmlidXRlc1wiXHJcbiAgICAgICAgW2FwcFN0b3BQcm9wYWdhdGlvbl09XCJbJ21vdXNlZG93bicsICd0b3VjaHN0YXJ0J11cIlxyXG4gICAgICAgID5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJsYXlvdXROb2RlKCk/LnR5cGUgPT09ICdyYW5nZSdcIiBbaW5uZXJIVE1MXT1cImNvbnRyb2xWYWx1ZVwiPjwvc3Bhbj5cclxuICAgIDwvZGl2PmAsXHJcbn0pXHJcbi8vVE9ETyBsb29rIGF0IHJldXNpbmcgSW5wdXRDb21wb25lbnRcclxuZXhwb3J0IGNsYXNzIE51bWJlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUganNmID0gaW5qZWN0KEpzb25TY2hlbWFGb3JtU2VydmljZSk7XHJcblxyXG4gIGZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgY29udHJvbE5hbWU6IHN0cmluZztcclxuICBjb250cm9sVmFsdWU6IGFueTtcclxuICBjb250cm9sRGlzYWJsZWQgPSBmYWxzZTtcclxuICBib3VuZENvbnRyb2wgPSBmYWxzZTtcclxuICBvcHRpb25zOiBhbnk7XHJcbiAgYWxsb3dOZWdhdGl2ZSA9IHRydWU7XHJcbiAgYWxsb3dEZWNpbWFsID0gdHJ1ZTtcclxuICBhbGxvd0V4cG9uZW50cyA9IGZhbHNlO1xyXG4gIGxhc3RWYWxpZE51bWJlciA9ICcnO1xyXG4gIHJlYWRvbmx5IGxheW91dE5vZGUgPSBpbnB1dDxhbnk+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgbGF5b3V0SW5kZXggPSBpbnB1dDxudW1iZXJbXT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBkYXRhSW5kZXggPSBpbnB1dDxudW1iZXJbXT4odW5kZWZpbmVkKTtcclxuXHJcbiAgICAvL25lZWRlZCBhcyB0ZW1wbGF0ZXMgZG9uJ3QgYWNjZXB0IHNvbWV0aGluZyBsaWtlIFthdHRyaWJ1dGVzXT1cIm9wdGlvbnM/LlsneC1pbnB1dEF0dHJpYnV0ZXMnXVwiXHJcbiAgICBnZXQgaW5wdXRBdHRyaWJ1dGVzKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zPy5bJ3gtaW5wdXRBdHRyaWJ1dGVzJ107XHJcbiAgICB9XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRDb250cm9sJywge30pXHJcbiAgaW5wdXRDb250cm9sOiBFbGVtZW50UmVmO1xyXG5cclxuICBAVmlld0NoaWxkKCdkaXZFbHQnLCB7fSlcclxuICBkaXY6IEVsZW1lbnRSZWY7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5sYXlvdXROb2RlKCkub3B0aW9ucyB8fCB7fTtcclxuICAgIHRoaXMuanNmLmluaXRpYWxpemVDb250cm9sKHRoaXMpO1xyXG4gICAgaWYgKHRoaXMubGF5b3V0Tm9kZSgpLmRhdGFUeXBlID09PSAnaW50ZWdlcicpIHsgdGhpcy5hbGxvd0RlY2ltYWwgPSBmYWxzZTsgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVmFsdWUoZXZlbnQpIHtcclxuICAgIHRoaXMuanNmLnVwZGF0ZVZhbHVlKHRoaXMsIGV2ZW50LnRhcmdldC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSAoKSB7XHJcbiAgICB0aGlzLmpzZi51cGRhdGVWYWx1ZSh0aGlzLCBudWxsKTtcclxuICB9XHJcbiAgXHJcbn1cclxuIl19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWZvcm13b3Jrcy1jb3JlL3NyYy9saWIvd2lkZ2V0LWxpYnJhcnkvbnVtYmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFpQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBcURwRSxxQ0FBcUM7QUFDckMsTUFBTSxPQUFPLGVBQWU7SUFwRDVCO1FBcURVLFFBQUcsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUs1QyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNaLGVBQVUsR0FBRyxLQUFLLENBQU0sU0FBUyxDQUFDLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDekMsY0FBUyxHQUFHLEtBQUssQ0FBVyxTQUFTLENBQUMsQ0FBQztLQTZCakQ7SUEzQkcsK0ZBQStGO0lBQy9GLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFPSCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQUs7UUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsV0FBVztRQUNULGlDQUFpQztRQUNqQyxVQUFVLENBQUMsR0FBRSxFQUFFO1lBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzsrR0ExQ1UsZUFBZTttR0FBZixlQUFlLG9wQkFqRGQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7V0E4Q0g7OzRGQUdFLGVBQWU7a0JBcEQzQixTQUFTO21CQUFDO29CQUNQLDhDQUE4QztvQkFDOUMsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQThDSDtpQkFDVjs4QkF3QkMsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUk3QixHQUFHO3NCQURGLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgSnNvblNjaGVtYUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vanNvbi1zY2hlbWEtZm9ybS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxyXG4gICAgc2VsZWN0b3I6ICdudW1iZXItd2lkZ2V0JyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2ICNkaXZFbHQgW2NsYXNzXT1cIm9wdGlvbnM/Lmh0bWxDbGFzcyB8fCAnJ1wiICA+XHJcbiAgICAgIDxsYWJlbCAqbmdJZj1cIm9wdGlvbnM/LnRpdGxlXCJcclxuICAgICAgICBbYXR0ci5mb3JdPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZSgpPy5faWRcIlxyXG4gICAgICAgIFtjbGFzc109XCJvcHRpb25zPy5sYWJlbEh0bWxDbGFzcyB8fCAnJ1wiXHJcbiAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwib3B0aW9ucz8ubm90aXRsZSA/ICdub25lJyA6ICcnXCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LnRpdGxlXCI+PC9sYWJlbD5cclxuICAgICAgPGlucHV0ICNpbnB1dENvbnRyb2wgKm5nSWY9XCJib3VuZENvbnRyb2xcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXHJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZCArICdTdGF0dXMnXCJcclxuICAgICAgICBbYXR0ci5tYXhdPVwib3B0aW9ucz8ubWF4aW11bVwiXHJcbiAgICAgICAgW2F0dHIubWluXT1cIm9wdGlvbnM/Lm1pbmltdW1cIlxyXG4gICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cIm9wdGlvbnM/LnBsYWNlaG9sZGVyXCJcclxuICAgICAgICBbYXR0ci5yZXF1aXJlZF09XCJvcHRpb25zPy5yZXF1aXJlZFwiXHJcbiAgICAgICAgW2F0dHIucmVhZG9ubHldPVwib3B0aW9ucz8ucmVhZG9ubHkgPyAncmVhZG9ubHknIDogbnVsbFwiXHJcbiAgICAgICAgW2F0dHIuc3RlcF09XCJvcHRpb25zPy5tdWx0aXBsZU9mIHx8IG9wdGlvbnM/LnN0ZXAgfHwgJ2FueSdcIlxyXG4gICAgICAgIFtjbGFzc109XCJvcHRpb25zPy5maWVsZEh0bWxDbGFzcyB8fCAnJ1wiXHJcbiAgICAgICAgW2lkXT1cIidjb250cm9sJyArIGxheW91dE5vZGUoKT8uX2lkXCJcclxuICAgICAgICBbbmFtZV09XCJjb250cm9sTmFtZVwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cIm9wdGlvbnM/LnJlYWRvbmx5ID8gJ3JlYWRvbmx5JyA6IG51bGxcIlxyXG4gICAgICAgIFt0aXRsZV09XCJsYXN0VmFsaWROdW1iZXJcIlxyXG4gICAgICAgIFt0eXBlXT1cImxheW91dE5vZGUoKT8udHlwZSA9PT0gJ3JhbmdlJyA/ICdyYW5nZScgOiAnbnVtYmVyJ1wiXHJcbiAgICAgICAgW2F0dHJpYnV0ZXNdPVwiaW5wdXRBdHRyaWJ1dGVzXCJcclxuICAgICAgICBbYXBwU3RvcFByb3BhZ2F0aW9uXT1cIlsnbW91c2Vkb3duJywgJ3RvdWNoc3RhcnQnXVwiXHJcbiAgICAgICAgPlxyXG4gICAgICA8aW5wdXQgI2lucHV0Q29udHJvbCAqbmdJZj1cIiFib3VuZENvbnRyb2xcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiJ2NvbnRyb2wnICsgbGF5b3V0Tm9kZSgpPy5faWQgKyAnU3RhdHVzJ1wiXHJcbiAgICAgICAgW2F0dHIubWF4XT1cIm9wdGlvbnM/Lm1heGltdW1cIlxyXG4gICAgICAgIFthdHRyLm1pbl09XCJvcHRpb25zPy5taW5pbXVtXCJcclxuICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJvcHRpb25zPy5wbGFjZWhvbGRlclwiXHJcbiAgICAgICAgW2F0dHIucmVxdWlyZWRdPVwib3B0aW9ucz8ucmVxdWlyZWRcIlxyXG4gICAgICAgIFthdHRyLnJlYWRvbmx5XT1cIm9wdGlvbnM/LnJlYWRvbmx5ID8gJ3JlYWRvbmx5JyA6IG51bGxcIlxyXG4gICAgICAgIFthdHRyLnN0ZXBdPVwib3B0aW9ucz8ubXVsdGlwbGVPZiB8fCBvcHRpb25zPy5zdGVwIHx8ICdhbnknXCJcclxuICAgICAgICBbY2xhc3NdPVwib3B0aW9ucz8uZmllbGRIdG1sQ2xhc3MgfHwgJydcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWRcIlxyXG4gICAgICAgIFtpZF09XCInY29udHJvbCcgKyBsYXlvdXROb2RlKCk/Ll9pZFwiXHJcbiAgICAgICAgW25hbWVdPVwiY29udHJvbE5hbWVcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcclxuICAgICAgICBbdGl0bGVdPVwibGFzdFZhbGlkTnVtYmVyXCJcclxuICAgICAgICBbdHlwZV09XCJsYXlvdXROb2RlKCk/LnR5cGUgPT09ICdyYW5nZScgPyAncmFuZ2UnIDogJ251bWJlcidcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJjb250cm9sVmFsdWVcIlxyXG4gICAgICAgIChpbnB1dCk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcclxuICAgICAgICBbYXR0cmlidXRlc109XCJpbnB1dEF0dHJpYnV0ZXNcIlxyXG4gICAgICAgIFthcHBTdG9wUHJvcGFnYXRpb25dPVwiWydtb3VzZWRvd24nLCAndG91Y2hzdGFydCddXCJcclxuICAgICAgICA+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwibGF5b3V0Tm9kZSgpPy50eXBlID09PSAncmFuZ2UnXCIgW2lubmVySFRNTF09XCJjb250cm9sVmFsdWVcIj48L3NwYW4+XHJcbiAgICA8L2Rpdj5gLFxyXG59KVxyXG4vL1RPRE8gbG9vayBhdCByZXVzaW5nIElucHV0Q29tcG9uZW50XHJcbmV4cG9ydCBjbGFzcyBOdW1iZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuICBwcml2YXRlIGpzZiA9IGluamVjdChKc29uU2NoZW1hRm9ybVNlcnZpY2UpO1xyXG5cclxuICBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG4gIGNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgY29udHJvbFZhbHVlOiBhbnk7XHJcbiAgY29udHJvbERpc2FibGVkID0gZmFsc2U7XHJcbiAgYm91bmRDb250cm9sID0gZmFsc2U7XHJcbiAgb3B0aW9uczogYW55O1xyXG4gIGFsbG93TmVnYXRpdmUgPSB0cnVlO1xyXG4gIGFsbG93RGVjaW1hbCA9IHRydWU7XHJcbiAgYWxsb3dFeHBvbmVudHMgPSBmYWxzZTtcclxuICBsYXN0VmFsaWROdW1iZXIgPSAnJztcclxuICByZWFkb25seSBsYXlvdXROb2RlID0gaW5wdXQ8YW55Pih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGxheW91dEluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgZGF0YUluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcblxyXG4gICAgLy9uZWVkZWQgYXMgdGVtcGxhdGVzIGRvbid0IGFjY2VwdCBzb21ldGhpbmcgbGlrZSBbYXR0cmlidXRlc109XCJvcHRpb25zPy5bJ3gtaW5wdXRBdHRyaWJ1dGVzJ11cIlxyXG4gICAgZ2V0IGlucHV0QXR0cmlidXRlcygpIHtcclxuICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucz8uWyd4LWlucHV0QXR0cmlidXRlcyddO1xyXG4gICAgfVxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0Q29udHJvbCcsIHt9KVxyXG4gIGlucHV0Q29udHJvbDogRWxlbWVudFJlZjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZGl2RWx0Jywge30pXHJcbiAgZGl2OiBFbGVtZW50UmVmO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZSgpLm9wdGlvbnMgfHwge307XHJcbiAgICB0aGlzLmpzZi5pbml0aWFsaXplQ29udHJvbCh0aGlzKTtcclxuICAgIGlmICh0aGlzLmxheW91dE5vZGUoKS5kYXRhVHlwZSA9PT0gJ2ludGVnZXInKSB7IHRoaXMuYWxsb3dEZWNpbWFsID0gZmFsc2U7IH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVZhbHVlKGV2ZW50KSB7XHJcbiAgICB0aGlzLmpzZi51cGRhdGVWYWx1ZSh0aGlzLCBldmVudC50YXJnZXQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3kgKCkge1xyXG4gICAgLy9zZWUgY3BtbWVudHMgaW4gaW5wdXQgY29tcG9uZW50XHJcbiAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgIHRoaXMuanNmLnVwZGF0ZVZhbHVlKHRoaXMsIG51bGwpO1xyXG4gICAgfSlcclxuICB9XHJcbiAgXHJcbn1cclxuIl19
@@ -93,14 +93,14 @@ export class OneOfComponent {
93
93
  ngOnDestroy() {
94
94
  //this.jsf.updateValue(this, null);
95
95
  }
96
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OneOfComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
97
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: OneOfComponent, selector: "one-of-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `<h4>{{this.options?.description}}</h4>
96
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OneOfComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
97
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: OneOfComponent, selector: "one-of-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `<h4>{{this.options?.description}}</h4>
98
98
  <tabs-widget #tabs [layoutNode]="layoutNode()"
99
99
  [layoutIndex]="layoutIndex()"
100
100
  [dataIndex]="dataIndex()" >
101
101
  </tabs-widget>`, isInline: true, dependencies: [{ kind: "component", type: i1.TabsComponent, selector: "tabs-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }] }); }
102
102
  }
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OneOfComponent, decorators: [{
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OneOfComponent, decorators: [{
104
104
  type: Component,
105
105
  args: [{
106
106
  // tslint:disable-next-line:component-selector
@@ -116,10 +116,10 @@ export class OrderableDirective {
116
116
  this.draggableStateSubscription.unsubscribe();
117
117
  }
118
118
  }
119
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrderableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
120
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: OrderableDirective, selector: "[orderable]", inputs: { orderable: { classPropertyName: "orderable", publicName: "orderable", isSignal: true, isRequired: false, transformFunction: null }, layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrderableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
120
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: OrderableDirective, selector: "[orderable]", inputs: { orderable: { classPropertyName: "orderable", publicName: "orderable", isSignal: true, isRequired: false, transformFunction: null }, layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
121
121
  }
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OrderableDirective, decorators: [{
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OrderableDirective, decorators: [{
123
123
  type: Directive,
124
124
  args: [{
125
125
  // tslint:disable-next-line:directive-selector
@@ -30,8 +30,8 @@ export class RadiosComponent {
30
30
  ngOnDestroy() {
31
31
  this.jsf.updateValue(this, null);
32
32
  }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadiosComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: RadiosComponent, selector: "radios-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RadiosComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: RadiosComponent, selector: "radios-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
35
35
  <label *ngIf="options?.title"
36
36
  [attr.for]="'control' + layoutNode()?._id"
37
37
  [class]="options?.labelHtmlClass || ''"
@@ -88,7 +88,7 @@ export class RadiosComponent {
88
88
  </div>
89
89
  </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
90
90
  }
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadiosComponent, decorators: [{
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RadiosComponent, decorators: [{
92
92
  type: Component,
93
93
  args: [{
94
94
  // tslint:disable-next-line:component-selector
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, input } from '@angular/core';
2
2
  import { memoize } from 'lodash';
3
3
  import { JsonSchemaFormService } from '../json-schema-form.service';
4
4
  import * as i0 from "@angular/core";
@@ -8,6 +8,7 @@ import * as i3 from "./select-framework.component";
8
8
  export class RootComponent {
9
9
  constructor() {
10
10
  this.jsf = inject(JsonSchemaFormService);
11
+ this.cdr = inject(ChangeDetectorRef);
11
12
  this.dataIndex = input(undefined);
12
13
  this.layoutIndex = input(undefined);
13
14
  this.layout = input(undefined);
@@ -115,6 +116,8 @@ export class RootComponent {
115
116
  return this._getSelectFrameworkInputsRaw(layoutItem, i);
116
117
  }
117
118
  }
119
+ //TODO investigate-causing layout issue with layout,for now
120
+ //removed from template
118
121
  trackByFn(index, item) {
119
122
  return item._id ?? index;
120
123
  }
@@ -130,6 +133,7 @@ export class RootComponent {
130
133
  if (changes['layout'] || changes['dataIndex'] || changes['layoutIndex']) {
131
134
  // Clear the entire cache of the memoized function
132
135
  this._getSelectFrameworkInputsMemoized.cache.clear();
136
+ this.cdr.markForCheck();
133
137
  }
134
138
  }
135
139
  showWidget(layoutNode) {
@@ -140,6 +144,10 @@ export class RootComponent {
140
144
  this.jsf.dataChanges.subscribe((val) => {
141
145
  //this.selectframeworkInputCache?.clear();
142
146
  this._getSelectFrameworkInputsMemoized.cache.clear();
147
+ //TODO-fix for now changed to detectChanges-
148
+ //used to updated the dynamic titles in tab compnents
149
+ this.cdr.markForCheck();
150
+ // this.cdr.detectChanges();-breaks oneOf/ matdatepicker
143
151
  });
144
152
  }
145
153
  }
@@ -149,8 +157,8 @@ export class RootComponent {
149
157
  this._getSelectFrameworkInputsMemoized.cache.clear();
150
158
  this.dataChangesSubs?.unsubscribe();
151
159
  }
152
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RootComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
153
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: RootComponent, selector: "root-widget", inputs: { dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, isOrderable: { classPropertyName: "isOrderable", publicName: "isOrderable", isSignal: true, isRequired: false, transformFunction: null }, isFlexItem: { classPropertyName: "isFlexItem", publicName: "isFlexItem", isSignal: true, isRequired: false, transformFunction: null }, memoizationEnabled: { classPropertyName: "memoizationEnabled", publicName: "memoizationEnabled", isSignal: true, isRequired: false, transformFunction: null } }, usesOnChanges: true, ngImport: i0, template: `
160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RootComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
161
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: RootComponent, selector: "root-widget", inputs: { dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, isOrderable: { classPropertyName: "isOrderable", publicName: "isOrderable", isSignal: true, isRequired: false, transformFunction: null }, isFlexItem: { classPropertyName: "isFlexItem", publicName: "isFlexItem", isSignal: true, isRequired: false, transformFunction: null }, memoizationEnabled: { classPropertyName: "memoizationEnabled", publicName: "memoizationEnabled", isSignal: true, isRequired: false, transformFunction: null } }, usesOnChanges: true, ngImport: i0, template: `
154
162
  <div cdkDropList (cdkDropListDropped)="drop($event)"
155
163
  [class.flex-inherit]="true"
156
164
  [cdkDropListSortPredicate]="sortPredicate"
@@ -161,7 +169,7 @@ export class RootComponent {
161
169
  You must explicitly disable dragging on the main element
162
170
  and re-enable it only when using the handle.
163
171
  -->
164
- <div *ngFor="let layoutItem of layout(); let i = index;trackBy: trackByFn"
172
+ <div *ngFor="let layoutItem of layout(); let i = index;"
165
173
  cdkDrag [cdkDragStartDelay]="{touch:1000,mouse:0}"
166
174
  [cdkDragDisabled]="!isDraggable(layoutItem)"
167
175
  [class.form-flex-item]="isFlexItem()"
@@ -203,7 +211,7 @@ export class RootComponent {
203
211
  </div>
204
212
  `, isInline: true, styles: ["[draggable=true]{transition:all .15s cubic-bezier(.4,0,.2,1)}[draggable=true]:hover{cursor:move;box-shadow:2px 2px 4px #0003;position:relative;z-index:10;margin:-1px 1px 1px -1px}[draggable=true].drag-target-top{box-shadow:0 -2px #000;position:relative;z-index:20}[draggable=true].drag-target-bottom{box-shadow:0 2px #000;position:relative;z-index:20}.flex-inherit{display:inherit;flex-flow:inherit;flex-wrap:inherit;flex-direction:inherit;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i3.SelectFrameworkComponent, selector: "select-framework-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
205
213
  }
206
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RootComponent, decorators: [{
214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RootComponent, decorators: [{
207
215
  type: Component,
208
216
  args: [{ selector: 'root-widget', template: `
209
217
  <div cdkDropList (cdkDropListDropped)="drop($event)"
@@ -216,7 +224,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
216
224
  You must explicitly disable dragging on the main element
217
225
  and re-enable it only when using the handle.
218
226
  -->
219
- <div *ngFor="let layoutItem of layout(); let i = index;trackBy: trackByFn"
227
+ <div *ngFor="let layoutItem of layout(); let i = index;"
220
228
  cdkDrag [cdkDragStartDelay]="{touch:1000,mouse:0}"
221
229
  [cdkDragDisabled]="!isDraggable(layoutItem)"
222
230
  [class.form-flex-item]="isFlexItem()"
@@ -258,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
258
266
  </div>
259
267
  `, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: ["[draggable=true]{transition:all .15s cubic-bezier(.4,0,.2,1)}[draggable=true]:hover{cursor:move;box-shadow:2px 2px 4px #0003;position:relative;z-index:10;margin:-1px 1px 1px -1px}[draggable=true].drag-target-top{box-shadow:0 -2px #000;position:relative;z-index:20}[draggable=true].drag-target-bottom{box-shadow:0 2px #000;position:relative;z-index:20}.flex-inherit{display:inherit;flex-flow:inherit;flex-wrap:inherit;flex-direction:inherit;width:100%}\n"] }]
260
268
  }] });
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L3Jvb3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVqQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUF3RnBFLE1BQU0sT0FBTyxhQUFhO0lBdkYxQjtRQXlGVSxRQUFHLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFHbkMsY0FBUyxHQUFHLEtBQUssQ0FBVyxTQUFTLENBQUMsQ0FBQztRQUN2QyxnQkFBVyxHQUFHLEtBQUssQ0FBVyxTQUFTLENBQUMsQ0FBQztRQUN6QyxXQUFNLEdBQUcsS0FBSyxDQUFRLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLGdCQUFXLEdBQUcsS0FBSyxDQUFVLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLGVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsdUJBQWtCLEdBQUUsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBaUNsRDs7Ozs7O1dBTUc7UUFDRCxvRUFBb0U7UUFDcEUsZ0NBQWdDO1FBQ2hDLDBEQUEwRDtRQUMxRCxrQkFBYSxHQUFDLENBQUMsS0FBYSxFQUFFLElBQXFCLEVBQUMsRUFBRTtZQUNwRCxJQUFJLFVBQVUsR0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEMsSUFBSSxNQUFNLEdBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN4Qyw0QkFBNEI7WUFD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Q0gsQ0FBQztJQUdELFVBQVUsQ0FBQyxVQUFlO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFO2dCQUNwQywwQ0FBMEM7Z0JBQzFDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkQsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO0lBRUwsQ0FBQztJQUNELFdBQVc7UUFDUCx5Q0FBeUM7UUFDekMsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN4QyxDQUFDOytHQXRLVSxhQUFhO21HQUFiLGFBQWEsNjRCQXBGZDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBbURQOzs0RkFpQ1EsYUFBYTtrQkF2RnpCLFNBQVM7K0JBRUUsYUFBYSxZQUNiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FtRFAsbUJBOEJhLHVCQUF1QixDQUFDLE1BQU0sY0FDbEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWcsIENka0RyYWdEcm9wIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWVtb2l6ZSB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9qc29uLXNjaGVtYS1mb3JtLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdyb290LXdpZGdldCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIiBcclxuICAgICAgW2NsYXNzLmZsZXgtaW5oZXJpdF09XCJ0cnVlXCJcclxuICAgICAgW2Nka0Ryb3BMaXN0U29ydFByZWRpY2F0ZV09XCJzb3J0UHJlZGljYXRlXCJcclxuICAgID5cclxuICAgICAgPCEtLSAtZm9yIG5vdyBsZWZ0IG91dFxyXG4gICAgICBjZGtEcmFnSGFuZGxlIGRpcmVjdGl2ZSwgYnkgaXRzZWxmLCBkb2VzIG5vdCBkaXNhYmxlIHRoZSBcclxuICAgICAgZGVmYXVsdCBkcmFnIGJlaGF2aW9yIG9mIGl0cyBwYXJlbnQgY2RrRHJhZyBlbGVtZW50LiBcclxuICAgICAgWW91IG11c3QgZXhwbGljaXRseSBkaXNhYmxlIGRyYWdnaW5nIG9uIHRoZSBtYWluIGVsZW1lbnQgXHJcbiAgICAgIGFuZCByZS1lbmFibGUgaXQgb25seSB3aGVuIHVzaW5nIHRoZSBoYW5kbGUuXHJcbiAgICAgIC0tPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBsYXlvdXRJdGVtIG9mIGxheW91dCgpOyBsZXQgaSA9IGluZGV4O3RyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgIGNka0RyYWcgIFtjZGtEcmFnU3RhcnREZWxheV09XCJ7dG91Y2g6MTAwMCxtb3VzZTowfVwiXHJcbiAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhaXNEcmFnZ2FibGUobGF5b3V0SXRlbSlcIlxyXG4gICAgICAgIFtjbGFzcy5mb3JtLWZsZXgtaXRlbV09XCJpc0ZsZXhJdGVtKClcIlxyXG4gICAgICAgIFtzdHlsZS5hbGlnbi1zZWxmXT1cIihsYXlvdXRJdGVtLm9wdGlvbnMgfHwge30pWydhbGlnbi1zZWxmJ11cIlxyXG4gICAgICAgIFtzdHlsZS5mbGV4LWJhc2lzXT1cImdldEZsZXhBdHRyaWJ1dGUobGF5b3V0SXRlbSwgJ2ZsZXgtYmFzaXMnKVwiXHJcbiAgICAgICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJnZXRGbGV4QXR0cmlidXRlKGxheW91dEl0ZW0sICdmbGV4LWdyb3cnKVwiXHJcbiAgICAgICAgW3N0eWxlLmZsZXgtc2hyaW5rXT1cImdldEZsZXhBdHRyaWJ1dGUobGF5b3V0SXRlbSwgJ2ZsZXgtc2hyaW5rJylcIlxyXG4gICAgICAgIFtzdHlsZS5vcmRlcl09XCIobGF5b3V0SXRlbS5vcHRpb25zIHx8IHt9KS5vcmRlclwiXHJcbiAgICAgICAgPlxyXG5cclxuICAgICAgICA8IS0tIHdvcmthcm91bmQgdG8gZGlzYmFsZSBkcmFnZ2luZyBvZiBpbnB1dCBmaWVsZHMgLS0+XHJcbiAgICAgICAgPCEtLVxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJsYXlvdXRJdGVtPy5kYXRhVHlwZSAhPSdvYmplY3QnXCIgIGNka0RyYWdIYW5kbGU+XHJcbiAgICAgICAgIDxwPkRyYWcgSGFuZGxlIHt7bGF5b3V0SXRlbT8uZGF0YVR5cGV9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICAtLT5cclxuICAgICAgICA8IS0tTkIgb3JkZXJhYmxlIGRpcmVjdGl2ZSBpcyBub3QgdXNlZCBidXQgaGFzIGJlZW4gbGVmdCBpbiBmb3Igbm93IGFuZCBzZXQgdG8gZmFsc2VcclxuICAgICAgICAgIG90aGVyd2lzZSB0aGUgY29tcGlsZXIgd29uJ3QgcmVjb2duaXplIGRhdGFJbmRleCBhbmQgb3RoZXIgZGVwZW5kZW50IGF0dHJpYnV0ZXNcclxuICAgICAgICAtLT5cclxuICAgICAgICA8IS0tXHJcbiAgICAgICAgPGRpdiBcclxuICAgICAgICAgIFtkYXRhSW5kZXhdPVwibGF5b3V0SXRlbT8uYXJyYXlJdGVtID8gKGRhdGFJbmRleCgpIHx8IFtdKS5jb25jYXQoaSkgOiAoZGF0YUluZGV4KCkgfHwgW10pXCJcclxuICAgICAgICAgIFtsYXlvdXRJbmRleF09XCIobGF5b3V0SW5kZXgoKSB8fCBbXSkuY29uY2F0KGkpXCJcclxuICAgICAgICAgIFtsYXlvdXROb2RlXT1cImxheW91dEl0ZW1cIlxyXG4gICAgICAgICAgW29yZGVyYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8c2VsZWN0LWZyYW1ld29yay13aWRnZXQgKm5nSWY9XCJzaG93V2lkZ2V0KGxheW91dEl0ZW0pXCJcclxuICAgICAgICAgICAgW2RhdGFJbmRleF09XCJsYXlvdXRJdGVtPy5hcnJheUl0ZW0gPyAoZGF0YUluZGV4KCkgfHwgW10pLmNvbmNhdChpKSA6IChkYXRhSW5kZXgoKSB8fCBbXSlcIlxyXG4gICAgICAgICAgICBbbGF5b3V0SW5kZXhdPVwiKGxheW91dEluZGV4KCkgfHwgW10pLmNvbmNhdChpKVwiXHJcbiAgICAgICAgICAgIFtsYXlvdXROb2RlXT1cImxheW91dEl0ZW1cIj48L3NlbGVjdC1mcmFtZXdvcmstd2lkZ2V0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIC0tPlxyXG4gICAgICA8c2VsZWN0LWZyYW1ld29yay13aWRnZXQgKm5nSWY9XCJzaG93V2lkZ2V0KGxheW91dEl0ZW0pXCJcclxuICAgICAgICAgICAgW2RhdGFJbmRleF09XCJnZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHMobGF5b3V0SXRlbSxpKS5kYXRhSW5kZXhcIlxyXG4gICAgICAgICAgICBbbGF5b3V0SW5kZXhdPVwiZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzKGxheW91dEl0ZW0saSkubGF5b3V0SW5kZXhcIlxyXG4gICAgICAgICAgICBbbGF5b3V0Tm9kZV09XCJnZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHMobGF5b3V0SXRlbSxpKS5sYXlvdXROb2RlXCI+XHJcblx0XHQgIDwvc2VsZWN0LWZyYW1ld29yay13aWRnZXQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gIHN0eWxlczogW2BcclxuICAgIFtkcmFnZ2FibGU9dHJ1ZV0ge1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMTUwbXMgY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSk7XHJcbiAgICB9XHJcbiAgICBbZHJhZ2dhYmxlPXRydWVdOmhvdmVyIHtcclxuICAgICAgY3Vyc29yOiBtb3ZlO1xyXG4gICAgICBib3gtc2hhZG93OiAycHggMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTA7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMXB4O1xyXG4gICAgfVxyXG4gICAgW2RyYWdnYWJsZT10cnVlXS5kcmFnLXRhcmdldC10b3Age1xyXG4gICAgICBib3gtc2hhZG93OiAwIC0ycHggMCAjMDAwO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDIwO1xyXG4gICAgfVxyXG4gICAgW2RyYWdnYWJsZT10cnVlXS5kcmFnLXRhcmdldC1ib3R0b20ge1xyXG4gICAgICBib3gtc2hhZG93OiAwIDJweCAwICMwMDA7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMjA7XHJcbiAgICB9XHJcbiAgICAuZmxleC1pbmhlcml0e1xyXG4gICAgICBkaXNwbGF5OmluaGVyaXQ7XHJcbiAgICAgIGZsZXgtZmxvdzppbmhlcml0O1xyXG4gICAgICBmbGV4LXdyYXA6aW5oZXJpdDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246aW5oZXJpdDtcclxuICAgICAgd2lkdGg6MTAwJVxyXG4gICAgfVxyXG4gIGBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjpDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFJvb3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSxPbkNoYW5nZXMge1xyXG5cclxuICBwcml2YXRlIGpzZiA9IGluamVjdChKc29uU2NoZW1hRm9ybVNlcnZpY2UpO1xyXG5cclxuICBvcHRpb25zOiBhbnk7XHJcbiAgcmVhZG9ubHkgZGF0YUluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgbGF5b3V0SW5kZXggPSBpbnB1dDxudW1iZXJbXT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBsYXlvdXQgPSBpbnB1dDxhbnlbXT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBpc09yZGVyYWJsZSA9IGlucHV0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgaXNGbGV4SXRlbSA9IGlucHV0KGZhbHNlKTtcclxuICByZWFkb25seSBtZW1vaXphdGlvbkVuYWJsZWQ9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cclxuICBkYXRhQ2hhbmdlc1N1YnM6U3Vic2NyaXB0aW9uO1xyXG5cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIC8vIG1vc3QgbGlrZWx5IHdoeSB0aGlzIGV2ZW50IGlzIHVzZWQgaXMgdG8gZ2V0IHRoZSBkcmFnZ2luZyBlbGVtZW50J3MgY3VycmVudCBpbmRleFxyXG4gICAgbGV0IHNyY0luZD1ldmVudC5wcmV2aW91c0luZGV4O1xyXG4gICAgbGV0IHRyZ0luZD1ldmVudC5jdXJyZW50SW5kZXg7XHJcbiAgICBsZXQgbGF5b3V0SXRlbT10aGlzLmxheW91dCgpW3RyZ0luZF07XHJcbiAgICBsZXQgZGF0YUluZD1sYXlvdXRJdGVtPy5hcnJheUl0ZW0gPyAodGhpcy5kYXRhSW5kZXgoKSB8fCBbXSkuY29uY2F0KHRyZ0luZCkgOiAodGhpcy5kYXRhSW5kZXgoKSB8fCBbXSk7XHJcbiAgICBsZXQgbGF5b3V0SW5kPSh0aGlzLmxheW91dEluZGV4KCkgfHwgW10pLmNvbmNhdCh0cmdJbmQpXHJcbiAgICBsZXQgaXRlbUN0eDphbnk9e1xyXG4gICAgICBkYXRhSW5kZXg6KCk9PntyZXR1cm4gZGF0YUluZH0sXHJcbiAgICAgIGxheW91dEluZGV4OigpPT57cmV0dXJuIGxheW91dEluZH0sXHJcbiAgICAgIGxheW91dE5vZGU6KCk9PntyZXR1cm4gbGF5b3V0SXRlbX0sXHJcbiAgICB9XHJcbiAgICB0aGlzLmpzZi5tb3ZlQXJyYXlJdGVtKGl0ZW1DdHgsIHNyY0luZCwgdHJnSW5kLHRydWUpO1xyXG4gIH1cclxuXHJcbiAgaXNEcmFnZ2FibGUobm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0PW5vZGUuYXJyYXlJdGVtICYmIG5vZGUudHlwZSAhPT0gJyRyZWYnICYmXHJcbiAgICBub2RlLmFycmF5SXRlbVR5cGUgPT09ICdsaXN0JyAmJiB0aGlzLmlzT3JkZXJhYmxlKCkgIT09IGZhbHNlXHJcbiAgICAmJiBub2RlLnR5cGUgIT09J3N1Ym1pdCdcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gYWxzbyBuZWVkIHRvIHRoaW5rIG9mIG90aGVyIHR5cGVzIHN1Y2ggYXMgYnV0dG9uIHdoaWNoIGNhbiBiZVxyXG4gIC8vY3JlYXRlZCBieSBhbiBhcmJpdHJhcnkgbGF5b3V0XHJcbiAgaXNGaXhlZChub2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ9bm9kZS50eXBlID09ICckcmVmJztcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcmVkaWNhdGUgZnVuY3Rpb24gdGhhdCBkaXNhbGxvd3MgJyRyZWYnIGl0ZW0gc29ydHNcclxuICAgKiBOQiBkZWNsYXJlZCBhcyBhIHZhciBpbnN0ZWFkIG9mIGEgZnVuY3Rpb24gXHJcbiAgICogbGlrZSBzb3J0UHJlZGljYXRlKGluZGV4OiBudW1iZXIsIGl0ZW06IENka0RyYWc8bnVtYmVyPil7Li59XHJcbiAgICogc2luY2UgJ3RoaXMnIGlzIGJvdW5kIHRvIHRoZSBkcmFnbGlzdCBhbmQgZG9lc24ndCByZWZlcmVuY2UgdGhlXHJcbiAgICogRmxleExheW91dFJvb3RDb21wb25lbnQgaW5zdGFuY2VcclxuICAgKi9cclxuICAgIC8vVE9ETyBhbHNvIG5lZWQgdG8gdGhpbmsgb2Ygb3RoZXIgdHlwZXMgc3VjaCBhcyBidXR0b24gd2hpY2ggY2FuIGJlXHJcbiAgICAvL2NyZWF0ZWQgYnkgYW4gYXJiaXRyYXJ5IGxheW91dFxyXG4gICAgLy9taWdodCBub3QgYmUgbmVlZGVkIGFkZGVkIGNvbmRpdGlvbiB0byBbY2RrRHJhZ0Rpc2FibGVkXVxyXG4gICAgc29ydFByZWRpY2F0ZT0oaW5kZXg6IG51bWJlciwgaXRlbTogQ2RrRHJhZzxudW1iZXI+KT0+IHtcclxuICAgICAgbGV0IGxheW91dEl0ZW09dGhpcy5sYXlvdXQoKVtpbmRleF07XHJcbiAgICAgIGxldCByZXN1bHQ9dGhpcy5pc0RyYWdnYWJsZShsYXlvdXRJdGVtKTtcclxuICAgICAgLy9sYXlvdXRJdGVtLnR5cGUgIT0gJyRyZWYnO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAvLyBTZXQgYXR0cmlidXRlcyBmb3IgZmxleGJveCBjaGlsZFxyXG4gIC8vIChjb250YWluZXIgYXR0cmlidXRlcyBhcmUgc2V0IGluIHNlY3Rpb24uY29tcG9uZW50KVxyXG4gIGdldEZsZXhBdHRyaWJ1dGUobm9kZTogYW55LCBhdHRyaWJ1dGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgaW5kZXggPSBbJ2ZsZXgtZ3JvdycsICdmbGV4LXNocmluaycsICdmbGV4LWJhc2lzJ10uaW5kZXhPZihhdHRyaWJ1dGUpO1xyXG4gICAgcmV0dXJuICgobm9kZS5vcHRpb25zIHx8IHt9KS5mbGV4IHx8ICcnKS5zcGxpdCgvXFxzKy8pW2luZGV4XSB8fFxyXG4gICAgICAobm9kZS5vcHRpb25zIHx8IHt9KVthdHRyaWJ1dGVdIHx8IFsnMScsICcxJywgJ2F1dG8nXVtpbmRleF07XHJcbiAgfVxyXG5cclxuICAvL3ByaXZhdGUgc2VsZWN0ZnJhbWV3b3JrSW5wdXRDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCB7IGRhdGFJbmRleDogYW55W10sIGxheW91dEluZGV4OiBhbnlbXSwgbGF5b3V0Tm9kZTogYW55IH0+KCk7XHJcblxyXG4gIC8vVE9ETyByZXZpZXcgY2FjaGluZy1pZiBmb3JtIGZpZWxkIHZhbHVlcyBjaGFuZ2UsIHRoZSBjaGFuZ2VzIGFyZSBub3QgcHJvcGFnYXRlZFxyXG5cclxuICAvKlxyXG4gIGdldFNlbGVjdEZyYW1ld29ya0lucHV0cyhsYXlvdXRJdGVtOiBhbnksIGk6IG51bWJlcikge1xyXG4gICAgLy8gQ3JlYXRlIGEgdW5pcXVlIGtleSBiYXNlZCBvbiB0aGUgbGF5b3V0SXRlbSBhbmQgaW5kZXhcclxuICAgIGNvbnN0IGNhY2hlS2V5ID0gYCR7bGF5b3V0SXRlbS5faWR9LSR7aX1gO1xyXG4gIFxyXG4gICAgLy8gSWYgdGhlIHJlc3VsdCBpcyBhbHJlYWR5IGluIHRoZSBjYWNoZSwgcmV0dXJuIGl0XHJcbiAgICBpZih0aGlzLmVuYWJsZUNhY2hpbmcpe1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RmcmFtZXdvcmtJbnB1dENhY2hlLmhhcyhjYWNoZUtleSkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RmcmFtZXdvcmtJbnB1dENhY2hlLmdldChjYWNoZUtleSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gSWYgbm90IGNhY2hlZCwgY2FsY3VsYXRlIHRoZSB2YWx1ZXMgKGFzc3VtaW5nIGRhdGFJbmRleCgpIGFuZCBsYXlvdXRJbmRleCgpIGFyZSBmdW5jdGlvbnMpXHJcbiAgICBjb25zdCBkYXRhSW5kZXggPSBsYXlvdXRJdGVtPy5hcnJheUl0ZW0gPyAodGhpcy5kYXRhSW5kZXgoKSB8fCBbXSkuY29uY2F0KGkpIDogKHRoaXMuZGF0YUluZGV4KCkgfHwgW10pO1xyXG4gICAgY29uc3QgbGF5b3V0SW5kZXggPSAodGhpcy5sYXlvdXRJbmRleCgpIHx8IFtdKS5jb25jYXQoaSk7XHJcblxyXG4gICAgLy8gU2F2ZSB0aGUgcmVzdWx0IGluIHRoZSBjYWNoZVxyXG4gICAgY29uc3QgcmVzdWx0ID0geyBkYXRhSW5kZXgsIGxheW91dEluZGV4LCBsYXlvdXROb2RlOiBsYXlvdXRJdGVtIH07XHJcbiAgICBpZih0aGlzLmVuYWJsZUNhY2hpbmcpe1xyXG4gICAgICB0aGlzLnNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGUuc2V0KGNhY2hlS2V5LCByZXN1bHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG4gICAgKi9cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzUmF3ID0gKGxheW91dEl0ZW06IGFueSwgaTogbnVtYmVyKSA9PiB7XHJcbiAgICBjb25zdCBkYXRhSW5kZXhWYWx1ZSA9IHRoaXMuZGF0YUluZGV4KCkgfHwgW107XHJcbiAgICBjb25zdCBsYXlvdXRJbmRleFZhbHVlID0gdGhpcy5sYXlvdXRJbmRleCgpIHx8IFtdO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxheW91dE5vZGU6IGxheW91dEl0ZW0sXHJcbiAgICAgIGxheW91dEluZGV4OiBbLi4ubGF5b3V0SW5kZXhWYWx1ZSwgaV0sXHJcbiAgICAgIGRhdGFJbmRleDogbGF5b3V0SXRlbT8uYXJyYXlJdGVtID8gWy4uLmRhdGFJbmRleFZhbHVlLCBpXSA6IGRhdGFJbmRleFZhbHVlLFxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICAvLyBEZWZpbmUgYSBzZXBhcmF0ZSBmdW5jdGlvbiB0byBob2xkIHRoZSBtZW1vaXplZCB2ZXJzaW9uXHJcbiAgcHJpdmF0ZSBfZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzTWVtb2l6ZWQgPSBtZW1vaXplKFxyXG4gICAgdGhpcy5fZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzUmF3LFxyXG4gICAgKGxheW91dEl0ZW06IGFueSwgaTogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGNvbnN0IGxheW91dEl0ZW1LZXkgPSBsYXlvdXRJdGVtPy5pZCA/PyBKU09OLnN0cmluZ2lmeShsYXlvdXRJdGVtKTtcclxuICAgICAgcmV0dXJuIGAke2xheW91dEl0ZW1LZXl9LSR7aX1gO1xyXG4gICAgfVxyXG4gICk7XHJcblxyXG4gIC8vIFRoaXMgaXMgdGhlIHB1YmxpYyBmdW5jdGlvbiB0aGF0IHRoZSB0ZW1wbGF0ZSBjYWxsc1xyXG4gIGdldFNlbGVjdEZyYW1ld29ya0lucHV0cyhsYXlvdXRJdGVtOiBhbnksIGk6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMubWVtb2l6YXRpb25FbmFibGVkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNNZW1vaXplZChsYXlvdXRJdGVtLCBpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNSYXcobGF5b3V0SXRlbSwgaSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIGl0ZW0uX2lkID8/IGluZGV4O1xyXG4gIH1cclxuXHJcbiAgXHJcblxyXG4gIC8qXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgLy8gSWYgYW55IG9mIHRoZSBpbnB1dCBwcm9wZXJ0aWVzIGNoYW5nZSwgY2xlYXIgdGhlIGNhY2hlXHJcbiAgICBpZiAoY2hhbmdlcy5kYXRhSW5kZXggfHwgY2hhbmdlcy5sYXlvdXRJbmRleCB8fCBjaGFuZ2VzLmxheW91dCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGU/LmNsZWFyKCk7IC8vIENsZWFyIHRoZSBlbnRpcmUgY2FjaGVcclxuICAgIH1cclxuICB9XHJcbiAgKi9cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snbGF5b3V0J10gfHwgY2hhbmdlc1snZGF0YUluZGV4J10gfHwgY2hhbmdlc1snbGF5b3V0SW5kZXgnXSkge1xyXG4gICAgICAvLyBDbGVhciB0aGUgZW50aXJlIGNhY2hlIG9mIHRoZSBtZW1vaXplZCBmdW5jdGlvblxyXG4gICAgICB0aGlzLl9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNNZW1vaXplZC5jYWNoZS5jbGVhcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHNob3dXaWRnZXQobGF5b3V0Tm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5qc2YuZXZhbHVhdGVDb25kaXRpb24obGF5b3V0Tm9kZSwgdGhpcy5kYXRhSW5kZXgoKSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICBpZih0aGlzLm1lbW9pemF0aW9uRW5hYmxlZCl7XHJcbiAgICAgICAgdGhpcy5qc2YuZGF0YUNoYW5nZXMuc3Vic2NyaWJlKCh2YWwpPT57XHJcbiAgICAgICAgICAvL3RoaXMuc2VsZWN0ZnJhbWV3b3JrSW5wdXRDYWNoZT8uY2xlYXIoKTtcclxuICAgICAgICAgIHRoaXMuX2dldFNlbGVjdEZyYW1ld29ya0lucHV0c01lbW9pemVkLmNhY2hlLmNsZWFyKCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG5cclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgIC8vdGhpcy5zZWxlY3RmcmFtZXdvcmtJbnB1dENhY2hlPy5jbGVhcigpXHJcbiAgICAgIC8vdGhpcy5zZWxlY3RmcmFtZXdvcmtJbnB1dENhY2hlPW51bGw7XHJcbiAgICAgIHRoaXMuX2dldFNlbGVjdEZyYW1ld29ya0lucHV0c01lbW9pemVkLmNhY2hlLmNsZWFyKCk7XHJcbiAgICAgIHRoaXMuZGF0YUNoYW5nZXNTdWJzPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuICBcclxuXHJcbn1cclxuIl19
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L3Jvb3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDbEosT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVqQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUF3RnBFLE1BQU0sT0FBTyxhQUFhO0lBdkYxQjtRQXlGVSxRQUFHLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDcEMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9CLGNBQVMsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDdkMsZ0JBQVcsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDekMsV0FBTSxHQUFHLEtBQUssQ0FBUSxTQUFTLENBQUMsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLEtBQUssQ0FBVSxTQUFTLENBQUMsQ0FBQztRQUN4QyxlQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLHVCQUFrQixHQUFFLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQWlDbEQ7Ozs7OztXQU1HO1FBQ0Qsb0VBQW9FO1FBQ3BFLGdDQUFnQztRQUNoQywwREFBMEQ7UUFDMUQsa0JBQWEsR0FBQyxDQUFDLEtBQWEsRUFBRSxJQUFxQixFQUFDLEVBQUU7WUFDcEQsSUFBSSxVQUFVLEdBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLElBQUksTUFBTSxH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QUNsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrRHJhZywgQ2RrRHJhZ0Ryb3AgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgbWVtb2l6ZSB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBKc29uU2NoZW1hRm9ybVNlcnZpY2UgfSBmcm9tICcuLi9qc29uLXNjaGVtYS1mb3JtLnNlcnZpY2UnO1xyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdyb290LXdpZGdldCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIiBcclxuICAgICAgW2NsYXNzLmZsZXgtaW5oZXJpdF09XCJ0cnVlXCJcclxuICAgICAgW2Nka0Ryb3BMaXN0U29ydFByZWRpY2F0ZV09XCJzb3J0UHJlZGljYXRlXCJcclxuICAgID5cclxuICAgICAgPCEtLSAtZm9yIG5vdyBsZWZ0IG91dFxyXG4gICAgICBjZGtEcmFnSGFuZGxlIGRpcmVjdGl2ZSwgYnkgaXRzZWxmLCBkb2VzIG5vdCBkaXNhYmxlIHRoZSBcclxuICAgICAgZGVmYXVsdCBkcmFnIGJlaGF2aW9yIG9mIGl0cyBwYXJlbnQgY2RrRHJhZyBlbGVtZW50LiBcclxuICAgICAgWW91IG11c3QgZXhwbGljaXRseSBkaXNhYmxlIGRyYWdnaW5nIG9uIHRoZSBtYWluIGVsZW1lbnQgXHJcbiAgICAgIGFuZCByZS1lbmFibGUgaXQgb25seSB3aGVuIHVzaW5nIHRoZSBoYW5kbGUuXHJcbiAgICAgIC0tPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBsYXlvdXRJdGVtIG9mIGxheW91dCgpOyBsZXQgaSA9IGluZGV4O1wiXHJcbiAgICAgICAgIGNka0RyYWcgIFtjZGtEcmFnU3RhcnREZWxheV09XCJ7dG91Y2g6MTAwMCxtb3VzZTowfVwiXHJcbiAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhaXNEcmFnZ2FibGUobGF5b3V0SXRlbSlcIlxyXG4gICAgICAgIFtjbGFzcy5mb3JtLWZsZXgtaXRlbV09XCJpc0ZsZXhJdGVtKClcIlxyXG4gICAgICAgIFtzdHlsZS5hbGlnbi1zZWxmXT1cIihsYXlvdXRJdGVtLm9wdGlvbnMgfHwge30pWydhbGlnbi1zZWxmJ11cIlxyXG4gICAgICAgIFtzdHlsZS5mbGV4LWJhc2lzXT1cImdldEZsZXhBdHRyaWJ1dGUobGF5b3V0SXRlbSwgJ2ZsZXgtYmFzaXMnKVwiXHJcbiAgICAgICAgW3N0eWxlLmZsZXgtZ3Jvd109XCJnZXRGbGV4QXR0cmlidXRlKGxheW91dEl0ZW0sICdmbGV4LWdyb3cnKVwiXHJcbiAgICAgICAgW3N0eWxlLmZsZXgtc2hyaW5rXT1cImdldEZsZXhBdHRyaWJ1dGUobGF5b3V0SXRlbSwgJ2ZsZXgtc2hyaW5rJylcIlxyXG4gICAgICAgIFtzdHlsZS5vcmRlcl09XCIobGF5b3V0SXRlbS5vcHRpb25zIHx8IHt9KS5vcmRlclwiXHJcbiAgICAgICAgPlxyXG5cclxuICAgICAgICA8IS0tIHdvcmthcm91bmQgdG8gZGlzYmFsZSBkcmFnZ2luZyBvZiBpbnB1dCBmaWVsZHMgLS0+XHJcbiAgICAgICAgPCEtLVxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJsYXlvdXRJdGVtPy5kYXRhVHlwZSAhPSdvYmplY3QnXCIgIGNka0RyYWdIYW5kbGU+XHJcbiAgICAgICAgIDxwPkRyYWcgSGFuZGxlIHt7bGF5b3V0SXRlbT8uZGF0YVR5cGV9fTwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICAtLT5cclxuICAgICAgICA8IS0tTkIgb3JkZXJhYmxlIGRpcmVjdGl2ZSBpcyBub3QgdXNlZCBidXQgaGFzIGJlZW4gbGVmdCBpbiBmb3Igbm93IGFuZCBzZXQgdG8gZmFsc2VcclxuICAgICAgICAgIG90aGVyd2lzZSB0aGUgY29tcGlsZXIgd29uJ3QgcmVjb2duaXplIGRhdGFJbmRleCBhbmQgb3RoZXIgZGVwZW5kZW50IGF0dHJpYnV0ZXNcclxuICAgICAgICAtLT5cclxuICAgICAgICA8IS0tXHJcbiAgICAgICAgPGRpdiBcclxuICAgICAgICAgIFtkYXRhSW5kZXhdPVwibGF5b3V0SXRlbT8uYXJyYXlJdGVtID8gKGRhdGFJbmRleCgpIHx8IFtdKS5jb25jYXQoaSkgOiAoZGF0YUluZGV4KCkgfHwgW10pXCJcclxuICAgICAgICAgIFtsYXlvdXRJbmRleF09XCIobGF5b3V0SW5kZXgoKSB8fCBbXSkuY29uY2F0KGkpXCJcclxuICAgICAgICAgIFtsYXlvdXROb2RlXT1cImxheW91dEl0ZW1cIlxyXG4gICAgICAgICAgW29yZGVyYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8c2VsZWN0LWZyYW1ld29yay13aWRnZXQgKm5nSWY9XCJzaG93V2lkZ2V0KGxheW91dEl0ZW0pXCJcclxuICAgICAgICAgICAgW2RhdGFJbmRleF09XCJsYXlvdXRJdGVtPy5hcnJheUl0ZW0gPyAoZGF0YUluZGV4KCkgfHwgW10pLmNvbmNhdChpKSA6IChkYXRhSW5kZXgoKSB8fCBbXSlcIlxyXG4gICAgICAgICAgICBbbGF5b3V0SW5kZXhdPVwiKGxheW91dEluZGV4KCkgfHwgW10pLmNvbmNhdChpKVwiXHJcbiAgICAgICAgICAgIFtsYXlvdXROb2RlXT1cImxheW91dEl0ZW1cIj48L3NlbGVjdC1mcmFtZXdvcmstd2lkZ2V0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIC0tPlxyXG4gICAgICA8c2VsZWN0LWZyYW1ld29yay13aWRnZXQgKm5nSWY9XCJzaG93V2lkZ2V0KGxheW91dEl0ZW0pXCJcclxuICAgICAgICAgICAgW2RhdGFJbmRleF09XCJnZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHMobGF5b3V0SXRlbSxpKS5kYXRhSW5kZXhcIlxyXG4gICAgICAgICAgICBbbGF5b3V0SW5kZXhdPVwiZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzKGxheW91dEl0ZW0saSkubGF5b3V0SW5kZXhcIlxyXG4gICAgICAgICAgICBbbGF5b3V0Tm9kZV09XCJnZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHMobGF5b3V0SXRlbSxpKS5sYXlvdXROb2RlXCI+XHJcblx0XHQgIDwvc2VsZWN0LWZyYW1ld29yay13aWRnZXQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gIHN0eWxlczogW2BcclxuICAgIFtkcmFnZ2FibGU9dHJ1ZV0ge1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMTUwbXMgY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSk7XHJcbiAgICB9XHJcbiAgICBbZHJhZ2dhYmxlPXRydWVdOmhvdmVyIHtcclxuICAgICAgY3Vyc29yOiBtb3ZlO1xyXG4gICAgICBib3gtc2hhZG93OiAycHggMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTA7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMXB4O1xyXG4gICAgfVxyXG4gICAgW2RyYWdnYWJsZT10cnVlXS5kcmFnLXRhcmdldC10b3Age1xyXG4gICAgICBib3gtc2hhZG93OiAwIC0ycHggMCAjMDAwO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDIwO1xyXG4gICAgfVxyXG4gICAgW2RyYWdnYWJsZT10cnVlXS5kcmFnLXRhcmdldC1ib3R0b20ge1xyXG4gICAgICBib3gtc2hhZG93OiAwIDJweCAwICMwMDA7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMjA7XHJcbiAgICB9XHJcbiAgICAuZmxleC1pbmhlcml0e1xyXG4gICAgICBkaXNwbGF5OmluaGVyaXQ7XHJcbiAgICAgIGZsZXgtZmxvdzppbmhlcml0O1xyXG4gICAgICBmbGV4LXdyYXA6aW5oZXJpdDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246aW5oZXJpdDtcclxuICAgICAgd2lkdGg6MTAwJVxyXG4gICAgfVxyXG4gIGBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjpDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFJvb3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSxPbkNoYW5nZXMge1xyXG5cclxuICBwcml2YXRlIGpzZiA9IGluamVjdChKc29uU2NoZW1hRm9ybVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBvcHRpb25zOiBhbnk7XHJcbiAgcmVhZG9ubHkgZGF0YUluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgbGF5b3V0SW5kZXggPSBpbnB1dDxudW1iZXJbXT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBsYXlvdXQgPSBpbnB1dDxhbnlbXT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBpc09yZGVyYWJsZSA9IGlucHV0PGJvb2xlYW4+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgaXNGbGV4SXRlbSA9IGlucHV0KGZhbHNlKTtcclxuICByZWFkb25seSBtZW1vaXphdGlvbkVuYWJsZWQ9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG5cclxuICBkYXRhQ2hhbmdlc1N1YnM6U3Vic2NyaXB0aW9uO1xyXG5cclxuICBkcm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4pIHtcclxuICAgIC8vIG1vc3QgbGlrZWx5IHdoeSB0aGlzIGV2ZW50IGlzIHVzZWQgaXMgdG8gZ2V0IHRoZSBkcmFnZ2luZyBlbGVtZW50J3MgY3VycmVudCBpbmRleFxyXG4gICAgbGV0IHNyY0luZD1ldmVudC5wcmV2aW91c0luZGV4O1xyXG4gICAgbGV0IHRyZ0luZD1ldmVudC5jdXJyZW50SW5kZXg7XHJcbiAgICBsZXQgbGF5b3V0SXRlbT10aGlzLmxheW91dCgpW3RyZ0luZF07XHJcbiAgICBsZXQgZGF0YUluZD1sYXlvdXRJdGVtPy5hcnJheUl0ZW0gPyAodGhpcy5kYXRhSW5kZXgoKSB8fCBbXSkuY29uY2F0KHRyZ0luZCkgOiAodGhpcy5kYXRhSW5kZXgoKSB8fCBbXSk7XHJcbiAgICBsZXQgbGF5b3V0SW5kPSh0aGlzLmxheW91dEluZGV4KCkgfHwgW10pLmNvbmNhdCh0cmdJbmQpXHJcbiAgICBsZXQgaXRlbUN0eDphbnk9e1xyXG4gICAgICBkYXRhSW5kZXg6KCk9PntyZXR1cm4gZGF0YUluZH0sXHJcbiAgICAgIGxheW91dEluZGV4OigpPT57cmV0dXJuIGxheW91dEluZH0sXHJcbiAgICAgIGxheW91dE5vZGU6KCk9PntyZXR1cm4gbGF5b3V0SXRlbX0sXHJcbiAgICB9XHJcbiAgICB0aGlzLmpzZi5tb3ZlQXJyYXlJdGVtKGl0ZW1DdHgsIHNyY0luZCwgdHJnSW5kLHRydWUpO1xyXG4gIH1cclxuXHJcbiAgaXNEcmFnZ2FibGUobm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0PW5vZGUuYXJyYXlJdGVtICYmIG5vZGUudHlwZSAhPT0gJyRyZWYnICYmXHJcbiAgICBub2RlLmFycmF5SXRlbVR5cGUgPT09ICdsaXN0JyAmJiB0aGlzLmlzT3JkZXJhYmxlKCkgIT09IGZhbHNlXHJcbiAgICAmJiBub2RlLnR5cGUgIT09J3N1Ym1pdCdcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvL1RPRE8gYWxzbyBuZWVkIHRvIHRoaW5rIG9mIG90aGVyIHR5cGVzIHN1Y2ggYXMgYnV0dG9uIHdoaWNoIGNhbiBiZVxyXG4gIC8vY3JlYXRlZCBieSBhbiBhcmJpdHJhcnkgbGF5b3V0XHJcbiAgaXNGaXhlZChub2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCByZXN1bHQ9bm9kZS50eXBlID09ICckcmVmJztcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQcmVkaWNhdGUgZnVuY3Rpb24gdGhhdCBkaXNhbGxvd3MgJyRyZWYnIGl0ZW0gc29ydHNcclxuICAgKiBOQiBkZWNsYXJlZCBhcyBhIHZhciBpbnN0ZWFkIG9mIGEgZnVuY3Rpb24gXHJcbiAgICogbGlrZSBzb3J0UHJlZGljYXRlKGluZGV4OiBudW1iZXIsIGl0ZW06IENka0RyYWc8bnVtYmVyPil7Li59XHJcbiAgICogc2luY2UgJ3RoaXMnIGlzIGJvdW5kIHRvIHRoZSBkcmFnbGlzdCBhbmQgZG9lc24ndCByZWZlcmVuY2UgdGhlXHJcbiAgICogRmxleExheW91dFJvb3RDb21wb25lbnQgaW5zdGFuY2VcclxuICAgKi9cclxuICAgIC8vVE9ETyBhbHNvIG5lZWQgdG8gdGhpbmsgb2Ygb3RoZXIgdHlwZXMgc3VjaCBhcyBidXR0b24gd2hpY2ggY2FuIGJlXHJcbiAgICAvL2NyZWF0ZWQgYnkgYW4gYXJiaXRyYXJ5IGxheW91dFxyXG4gICAgLy9taWdodCBub3QgYmUgbmVlZGVkIGFkZGVkIGNvbmRpdGlvbiB0byBbY2RrRHJhZ0Rpc2FibGVkXVxyXG4gICAgc29ydFByZWRpY2F0ZT0oaW5kZXg6IG51bWJlciwgaXRlbTogQ2RrRHJhZzxudW1iZXI+KT0+IHtcclxuICAgICAgbGV0IGxheW91dEl0ZW09dGhpcy5sYXlvdXQoKVtpbmRleF07XHJcbiAgICAgIGxldCByZXN1bHQ9dGhpcy5pc0RyYWdnYWJsZShsYXlvdXRJdGVtKTtcclxuICAgICAgLy9sYXlvdXRJdGVtLnR5cGUgIT0gJyRyZWYnO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAvLyBTZXQgYXR0cmlidXRlcyBmb3IgZmxleGJveCBjaGlsZFxyXG4gIC8vIChjb250YWluZXIgYXR0cmlidXRlcyBhcmUgc2V0IGluIHNlY3Rpb24uY29tcG9uZW50KVxyXG4gIGdldEZsZXhBdHRyaWJ1dGUobm9kZTogYW55LCBhdHRyaWJ1dGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgaW5kZXggPSBbJ2ZsZXgtZ3JvdycsICdmbGV4LXNocmluaycsICdmbGV4LWJhc2lzJ10uaW5kZXhPZihhdHRyaWJ1dGUpO1xyXG4gICAgcmV0dXJuICgobm9kZS5vcHRpb25zIHx8IHt9KS5mbGV4IHx8ICcnKS5zcGxpdCgvXFxzKy8pW2luZGV4XSB8fFxyXG4gICAgICAobm9kZS5vcHRpb25zIHx8IHt9KVthdHRyaWJ1dGVdIHx8IFsnMScsICcxJywgJ2F1dG8nXVtpbmRleF07XHJcbiAgfVxyXG5cclxuICAvL3ByaXZhdGUgc2VsZWN0ZnJhbWV3b3JrSW5wdXRDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCB7IGRhdGFJbmRleDogYW55W10sIGxheW91dEluZGV4OiBhbnlbXSwgbGF5b3V0Tm9kZTogYW55IH0+KCk7XHJcblxyXG4gIC8vVE9ETyByZXZpZXcgY2FjaGluZy1pZiBmb3JtIGZpZWxkIHZhbHVlcyBjaGFuZ2UsIHRoZSBjaGFuZ2VzIGFyZSBub3QgcHJvcGFnYXRlZFxyXG5cclxuICAvKlxyXG4gIGdldFNlbGVjdEZyYW1ld29ya0lucHV0cyhsYXlvdXRJdGVtOiBhbnksIGk6IG51bWJlcikge1xyXG4gICAgLy8gQ3JlYXRlIGEgdW5pcXVlIGtleSBiYXNlZCBvbiB0aGUgbGF5b3V0SXRlbSBhbmQgaW5kZXhcclxuICAgIGNvbnN0IGNhY2hlS2V5ID0gYCR7bGF5b3V0SXRlbS5faWR9LSR7aX1gO1xyXG4gIFxyXG4gICAgLy8gSWYgdGhlIHJlc3VsdCBpcyBhbHJlYWR5IGluIHRoZSBjYWNoZSwgcmV0dXJuIGl0XHJcbiAgICBpZih0aGlzLmVuYWJsZUNhY2hpbmcpe1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RmcmFtZXdvcmtJbnB1dENhY2hlLmhhcyhjYWNoZUtleSkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RmcmFtZXdvcmtJbnB1dENhY2hlLmdldChjYWNoZUtleSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG4gICAgLy8gSWYgbm90IGNhY2hlZCwgY2FsY3VsYXRlIHRoZSB2YWx1ZXMgKGFzc3VtaW5nIGRhdGFJbmRleCgpIGFuZCBsYXlvdXRJbmRleCgpIGFyZSBmdW5jdGlvbnMpXHJcbiAgICBjb25zdCBkYXRhSW5kZXggPSBsYXlvdXRJdGVtPy5hcnJheUl0ZW0gPyAodGhpcy5kYXRhSW5kZXgoKSB8fCBbXSkuY29uY2F0KGkpIDogKHRoaXMuZGF0YUluZGV4KCkgfHwgW10pO1xyXG4gICAgY29uc3QgbGF5b3V0SW5kZXggPSAodGhpcy5sYXlvdXRJbmRleCgpIHx8IFtdKS5jb25jYXQoaSk7XHJcblxyXG4gICAgLy8gU2F2ZSB0aGUgcmVzdWx0IGluIHRoZSBjYWNoZVxyXG4gICAgY29uc3QgcmVzdWx0ID0geyBkYXRhSW5kZXgsIGxheW91dEluZGV4LCBsYXlvdXROb2RlOiBsYXlvdXRJdGVtIH07XHJcbiAgICBpZih0aGlzLmVuYWJsZUNhY2hpbmcpe1xyXG4gICAgICB0aGlzLnNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGUuc2V0KGNhY2hlS2V5LCByZXN1bHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG4gICAgKi9cclxuXHJcbiAgcHJpdmF0ZSBfZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzUmF3ID0gKGxheW91dEl0ZW06IGFueSwgaTogbnVtYmVyKSA9PiB7XHJcbiAgICBjb25zdCBkYXRhSW5kZXhWYWx1ZSA9IHRoaXMuZGF0YUluZGV4KCkgfHwgW107XHJcbiAgICBjb25zdCBsYXlvdXRJbmRleFZhbHVlID0gdGhpcy5sYXlvdXRJbmRleCgpIHx8IFtdO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIGxheW91dE5vZGU6IGxheW91dEl0ZW0sXHJcbiAgICAgIGxheW91dEluZGV4OiBbLi4ubGF5b3V0SW5kZXhWYWx1ZSwgaV0sXHJcbiAgICAgIGRhdGFJbmRleDogbGF5b3V0SXRlbT8uYXJyYXlJdGVtID8gWy4uLmRhdGFJbmRleFZhbHVlLCBpXSA6IGRhdGFJbmRleFZhbHVlLFxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICAvLyBEZWZpbmUgYSBzZXBhcmF0ZSBmdW5jdGlvbiB0byBob2xkIHRoZSBtZW1vaXplZCB2ZXJzaW9uXHJcbiAgcHJpdmF0ZSBfZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzTWVtb2l6ZWQgPSBtZW1vaXplKFxyXG4gICAgdGhpcy5fZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzUmF3LFxyXG4gICAgKGxheW91dEl0ZW06IGFueSwgaTogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGNvbnN0IGxheW91dEl0ZW1LZXkgPSBsYXlvdXRJdGVtPy5pZCA/PyBKU09OLnN0cmluZ2lmeShsYXlvdXRJdGVtKTtcclxuICAgICAgcmV0dXJuIGAke2xheW91dEl0ZW1LZXl9LSR7aX1gO1xyXG4gICAgfVxyXG4gICk7XHJcblxyXG4gIC8vIFRoaXMgaXMgdGhlIHB1YmxpYyBmdW5jdGlvbiB0aGF0IHRoZSB0ZW1wbGF0ZSBjYWxsc1xyXG4gIGdldFNlbGVjdEZyYW1ld29ya0lucHV0cyhsYXlvdXRJdGVtOiBhbnksIGk6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMubWVtb2l6YXRpb25FbmFibGVkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNNZW1vaXplZChsYXlvdXRJdGVtLCBpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9nZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHNSYXcobGF5b3V0SXRlbSwgaSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vVE9ETyBpbnZlc3RpZ2F0ZS1jYXVzaW5nIGxheW91dCBpc3N1ZSB3aXRoIGxheW91dCxmb3Igbm93XHJcbiAgLy9yZW1vdmVkIGZyb20gdGVtcGxhdGVcclxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogYW55IHtcclxuICAgIHJldHVybiBpdGVtLl9pZCA/PyBpbmRleDtcclxuICB9XHJcblxyXG4gIFxyXG5cclxuICAvKlxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIC8vIElmIGFueSBvZiB0aGUgaW5wdXQgcHJvcGVydGllcyBjaGFuZ2UsIGNsZWFyIHRoZSBjYWNoZVxyXG4gICAgaWYgKGNoYW5nZXMuZGF0YUluZGV4IHx8IGNoYW5nZXMubGF5b3V0SW5kZXggfHwgY2hhbmdlcy5sYXlvdXQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RmcmFtZXdvcmtJbnB1dENhY2hlPy5jbGVhcigpOyAvLyBDbGVhciB0aGUgZW50aXJlIGNhY2hlXHJcbiAgICB9XHJcbiAgfVxyXG4gICovXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2xheW91dCddIHx8IGNoYW5nZXNbJ2RhdGFJbmRleCddIHx8IGNoYW5nZXNbJ2xheW91dEluZGV4J10pIHtcclxuICAgICAgLy8gQ2xlYXIgdGhlIGVudGlyZSBjYWNoZSBvZiB0aGUgbWVtb2l6ZWQgZnVuY3Rpb25cclxuICAgICAgdGhpcy5fZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzTWVtb2l6ZWQuY2FjaGUuY2xlYXIoKTtcclxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgc2hvd1dpZGdldChsYXlvdXROb2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmpzZi5ldmFsdWF0ZUNvbmRpdGlvbihsYXlvdXROb2RlLCB0aGlzLmRhdGFJbmRleCgpKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgIGlmKHRoaXMubWVtb2l6YXRpb25FbmFibGVkKXtcclxuICAgICAgICB0aGlzLmpzZi5kYXRhQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCk9PntcclxuICAgICAgICAgIC8vdGhpcy5zZWxlY3RmcmFtZXdvcmtJbnB1dENhY2hlPy5jbGVhcigpO1xyXG4gICAgICAgICAgdGhpcy5fZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzTWVtb2l6ZWQuY2FjaGUuY2xlYXIoKTtcclxuICAgICAgICAvL1RPRE8tZml4IGZvciBub3cgY2hhbmdlZCB0byBkZXRlY3RDaGFuZ2VzLVxyXG4gICAgICAgIC8vdXNlZCB0byB1cGRhdGVkIHRoZSBkeW5hbWljIHRpdGxlcyBpbiB0YWIgY29tcG5lbnRzIFxyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgLy8gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpOy1icmVha3Mgb25lT2YvIG1hdGRhdGVwaWNrZXJcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcblxyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgLy90aGlzLnNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGU/LmNsZWFyKClcclxuICAgICAgLy90aGlzLnNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGU9bnVsbDtcclxuICAgICAgdGhpcy5fZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzTWVtb2l6ZWQuY2FjaGUuY2xlYXIoKTtcclxuICAgICAgdGhpcy5kYXRhQ2hhbmdlc1N1YnM/LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG4gIFxyXG5cclxufVxyXG4iXX0=
@@ -64,8 +64,8 @@ export class SectionComponent {
64
64
  return this.options[attribute];
65
65
  }
66
66
  }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: SectionComponent, selector: "section-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: SectionComponent, selector: "section-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
69
69
  <div *ngIf="containerType === 'div'"
70
70
  [class]="options?.htmlClass || ''"
71
71
  [class.expandable]="options?.expandable && !expanded"
@@ -128,7 +128,7 @@ export class SectionComponent {
128
128
  </div>
129
129
  </fieldset>`, isInline: true, styles: [".legend{font-weight:700}.expandable>legend:before,.expandable>label:before{content:\"\\25b6\";padding-right:.3em;font-family:auto}.expanded>legend:before,.expanded>label:before{content:\"\\25bc\";padding-right:.2em}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.RootComponent, selector: "root-widget", inputs: ["dataIndex", "layoutIndex", "layout", "isOrderable", "isFlexItem", "memoizationEnabled"] }] }); }
130
130
  }
131
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SectionComponent, decorators: [{
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SectionComponent, decorators: [{
132
132
  type: Component,
133
133
  args: [{ selector: 'section-widget', template: `
134
134
  <div *ngIf="containerType === 'div'"
@@ -33,10 +33,10 @@ export class SelectFrameworkComponent {
33
33
  //this.changeDetectorRef.detectChanges();
34
34
  }
35
35
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectFrameworkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: SelectFrameworkComponent, selector: "select-framework-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "widgetContainer", first: true, predicate: ["widgetContainer"], descendants: true, read: ViewContainerRef, isSignal: true }], usesOnChanges: true, ngImport: i0, template: `<div #widgetContainer></div>`, isInline: true }); }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectFrameworkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: SelectFrameworkComponent, selector: "select-framework-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "widgetContainer", first: true, predicate: ["widgetContainer"], descendants: true, read: ViewContainerRef, isSignal: true }], usesOnChanges: true, ngImport: i0, template: `<div #widgetContainer></div>`, isInline: true }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectFrameworkComponent, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectFrameworkComponent, decorators: [{
40
40
  type: Component,
41
41
  args: [{
42
42
  // tslint:disable-next-line:component-selector
@@ -28,10 +28,10 @@ export class SelectWidgetComponent {
28
28
  }
29
29
  }
30
30
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: SelectWidgetComponent, selector: "select-widget-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "widgetContainer", first: true, predicate: ["widgetContainer"], descendants: true, read: ViewContainerRef, isSignal: true }], usesOnChanges: true, ngImport: i0, template: `<div #widgetContainer></div>`, isInline: true }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectWidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.14", type: SelectWidgetComponent, selector: "select-widget-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "widgetContainer", first: true, predicate: ["widgetContainer"], descendants: true, read: ViewContainerRef, isSignal: true }], usesOnChanges: true, ngImport: i0, template: `<div #widgetContainer></div>`, isInline: true }); }
33
33
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectWidgetComponent, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectWidgetComponent, decorators: [{
35
35
  type: Component,
36
36
  args: [{
37
37
  // tslint:disable-next-line:component-selector
@@ -54,8 +54,8 @@ export class SelectComponent {
54
54
  this.formControl.reset(nullVal);
55
55
  this.controlValue = null;
56
56
  }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: SelectComponent, selector: "select-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
57
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
58
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: SelectComponent, selector: "select-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
59
59
  <div
60
60
  [class]="options?.htmlClass || ''">
61
61
  <label *ngIf="options?.title"
@@ -139,7 +139,7 @@ export class SelectComponent {
139
139
  </select>
140
140
  </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
141
141
  }
142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectComponent, decorators: [{
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectComponent, decorators: [{
143
143
  type: Component,
144
144
  args: [{
145
145
  // tslint:disable-next-line:component-selector
@@ -71,8 +71,8 @@ export class SelectCheckboxComponent {
71
71
  this.formControl.reset(nullVal);
72
72
  this.controlValue = null;
73
73
  }
74
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: SelectCheckboxComponent, selector: "selectcheckbox-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: SelectCheckboxComponent, selector: "selectcheckbox-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
76
76
  <div
77
77
  [class]="options?.htmlClass || ''">
78
78
  <select *ngIf="boundControl"
@@ -125,7 +125,7 @@ export class SelectCheckboxComponent {
125
125
 
126
126
  </div>`, isInline: true, styles: [".select-box{font-size:16px;border:none;appearance:none;-webkit-appearance:none;-moz-appearance:none;height:25px;overflow:hidden;text-overflow:ellipsis;background-color:#fff;color:#000;background-color:transparent}.select-box:focus{outline:none}.select-option{font-size:20px;color:#000;background-color:#fff;display:inline-block}.unchecked:before{content:\"\\2610\";left:5px;top:50%;transform:translateY(-50%);font-size:30px}.checked:before{content:\"\\2611\";left:5px;top:50%;transform:translateY(-50%);font-size:30px}.select-option:checked{background-image:linear-gradient(0deg,#fff 0% 100%);color:#000}.select-box[multiple]:focus{background-color:transparent;color:#00f;-webkit-text-fill-color:black}.display-inline-block{display:inline-block}.bs4-option,.bs3-option{width:14px;height:14px;border:solid 1px;color:#a9a9a9;min-block-size:auto;border-radius:3px}.bs4-option:checked[type=checkbox],.bs3-option:checked[type=checkbox]{background-image:url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%3C!--%20License%3A%20MIT.%20Made%20by%20jaynewey%3A%20https%3A%2F%2Fgithub.com%2Fjaynewey%2Fcharm-icons%20--%3E%3Csvg%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20stroke-width%3D%222.5%22%3E%3Cpolyline%20points%3D%224%208.75%2C6.25%2012.25%2C13.25%203.5%22%2F%3E%3C%2Fsvg%3E);background-color:#00ced1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectMultipleControlValueAccessor, selector: "select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
127
127
  }
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectCheckboxComponent, decorators: [{
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectCheckboxComponent, decorators: [{
129
129
  type: Component,
130
130
  args: [{ selector: 'selectcheckbox-widget', template: `
131
131
  <div
@@ -27,10 +27,10 @@ export class StopPropagationDirective {
27
27
  // Call each stored unsubscribe function to clean up listeners
28
28
  this.unsubscribeFunctions.forEach(unsub => unsub());
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StopPropagationDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
31
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: StopPropagationDirective, selector: "[appStopPropagation]", inputs: { events: ["appStopPropagation", "events"] }, ngImport: i0 }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StopPropagationDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: StopPropagationDirective, selector: "[appStopPropagation]", inputs: { events: ["appStopPropagation", "events"] }, ngImport: i0 }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StopPropagationDirective, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StopPropagationDirective, decorators: [{
34
34
  type: Directive,
35
35
  args: [{
36
36
  selector: '[appStopPropagation]', standalone: false
@@ -39,8 +39,8 @@ export class SubmitComponent {
39
39
  this.jsf.updateValue(this, event.target.value);
40
40
  }
41
41
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubmitComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: SubmitComponent, selector: "submit-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SubmitComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: SubmitComponent, selector: "submit-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
44
44
  <div
45
45
  [class]="options?.htmlClass || ''">
46
46
  <input
@@ -58,7 +58,7 @@ export class SubmitComponent {
58
58
  >
59
59
  </div>`, isInline: true, dependencies: [{ kind: "directive", type: i1.StopPropagationDirective, selector: "[appStopPropagation]", inputs: ["appStopPropagation"] }] }); }
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SubmitComponent, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SubmitComponent, decorators: [{
62
62
  type: Component,
63
63
  args: [{
64
64
  // tslint:disable-next-line:component-selector
@@ -12,8 +12,8 @@ export class TabComponent {
12
12
  ngOnInit() {
13
13
  this.options = this.layoutNode().options || {};
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: TabComponent, selector: "tab-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: TabComponent, selector: "tab-widget", inputs: { layoutNode: { classPropertyName: "layoutNode", publicName: "layoutNode", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
17
17
  <div [class]="options?.htmlClass || ''">
18
18
  <root-widget
19
19
  [dataIndex]="dataIndex()"
@@ -21,7 +21,7 @@ export class TabComponent {
21
21
  [layout]="layoutNode().items"></root-widget>
22
22
  </div>`, isInline: true, dependencies: [{ kind: "component", type: i1.RootComponent, selector: "root-widget", inputs: ["dataIndex", "layoutIndex", "layout", "isOrderable", "isFlexItem", "memoizationEnabled"] }] }); }
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TabComponent, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TabComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{
27
27
  // tslint:disable-next-line:component-selector