@olafvv/ngx-dynamic-form 0.0.2

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 (70) hide show
  1. package/README.md +55 -0
  2. package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +59 -0
  3. package/esm2022/lib/components/dynamic-form-field/dynamic-form-field.component.mjs +129 -0
  4. package/esm2022/lib/controls/button/dynamic-button.component.mjs +22 -0
  5. package/esm2022/lib/controls/button/dynamic-button.model.mjs +12 -0
  6. package/esm2022/lib/controls/checkbox/dynamic-checkbox.component.mjs +32 -0
  7. package/esm2022/lib/controls/checkbox/dynamic-checkbox.model.mjs +21 -0
  8. package/esm2022/lib/controls/index.mjs +7 -0
  9. package/esm2022/lib/controls/input/dynamic-input.component.mjs +51 -0
  10. package/esm2022/lib/controls/input/dynamic-input.model.mjs +18 -0
  11. package/esm2022/lib/controls/readonly/dynamic-readonly.component.mjs +18 -0
  12. package/esm2022/lib/controls/readonly/dynamic-readonly.model.mjs +9 -0
  13. package/esm2022/lib/controls/select/dynamic-select.component.mjs +42 -0
  14. package/esm2022/lib/controls/select/dynamic-select.model.mjs +11 -0
  15. package/esm2022/lib/controls/textarea/dynamic-textarea.component.mjs +45 -0
  16. package/esm2022/lib/controls/textarea/dynamic-textarea.model.mjs +15 -0
  17. package/esm2022/lib/models/classes/dynamic-form-field-base-component.mjs +34 -0
  18. package/esm2022/lib/models/classes/dynamic-form-field-model.mjs +24 -0
  19. package/esm2022/lib/models/classes/dynamic-form-field-option-model.mjs +48 -0
  20. package/esm2022/lib/models/classes/dynamic-form-field-value-model.mjs +24 -0
  21. package/esm2022/lib/models/classes/dynamic-form-validators.mjs +73 -0
  22. package/esm2022/lib/models/constants/dynamic-relations.const.mjs +47 -0
  23. package/esm2022/lib/models/index.mjs +11 -0
  24. package/esm2022/lib/models/interfaces/dynamic-form-field-config.interface.mjs +2 -0
  25. package/esm2022/lib/models/interfaces/dynamic-form-validator.interface.mjs +2 -0
  26. package/esm2022/lib/models/tokens/dynamic-form-field-map-fn.token.mjs +3 -0
  27. package/esm2022/lib/models/types/dynamic-form-config.type.mjs +2 -0
  28. package/esm2022/lib/models/types/dynamic-form-hook.type.mjs +2 -0
  29. package/esm2022/lib/models/types/related-form-controls.type.mjs +2 -0
  30. package/esm2022/lib/services/dynamic-form-relations.service.mjs +103 -0
  31. package/esm2022/lib/services/dynamic-form.service.mjs +77 -0
  32. package/esm2022/lib/services/dynamic-validations.service.mjs +37 -0
  33. package/esm2022/olafvv-ngx-dynamic-form.mjs +5 -0
  34. package/esm2022/public-api.mjs +8 -0
  35. package/fesm2022/olafvv-ngx-dynamic-form.mjs +873 -0
  36. package/fesm2022/olafvv-ngx-dynamic-form.mjs.map +1 -0
  37. package/index.d.ts +5 -0
  38. package/lib/components/dynamic-form/dynamic-form.component.d.ts +32 -0
  39. package/lib/components/dynamic-form-field/dynamic-form-field.component.d.ts +44 -0
  40. package/lib/controls/button/dynamic-button.component.d.ts +11 -0
  41. package/lib/controls/button/dynamic-button.model.d.ts +15 -0
  42. package/lib/controls/checkbox/dynamic-checkbox.component.d.ts +15 -0
  43. package/lib/controls/checkbox/dynamic-checkbox.model.d.ts +15 -0
  44. package/lib/controls/index.d.ts +6 -0
  45. package/lib/controls/input/dynamic-input.component.d.ts +19 -0
  46. package/lib/controls/input/dynamic-input.model.d.ts +27 -0
  47. package/lib/controls/readonly/dynamic-readonly.component.d.ts +10 -0
  48. package/lib/controls/readonly/dynamic-readonly.model.d.ts +9 -0
  49. package/lib/controls/select/dynamic-select.component.d.ts +16 -0
  50. package/lib/controls/select/dynamic-select.model.d.ts +12 -0
  51. package/lib/controls/textarea/dynamic-textarea.component.d.ts +18 -0
  52. package/lib/controls/textarea/dynamic-textarea.model.d.ts +21 -0
  53. package/lib/models/classes/dynamic-form-field-base-component.d.ts +26 -0
  54. package/lib/models/classes/dynamic-form-field-model.d.ts +22 -0
  55. package/lib/models/classes/dynamic-form-field-option-model.d.ts +41 -0
  56. package/lib/models/classes/dynamic-form-field-value-model.d.ts +18 -0
  57. package/lib/models/classes/dynamic-form-validators.d.ts +48 -0
  58. package/lib/models/constants/dynamic-relations.const.d.ts +30 -0
  59. package/lib/models/index.d.ts +10 -0
  60. package/lib/models/interfaces/dynamic-form-field-config.interface.d.ts +60 -0
  61. package/lib/models/interfaces/dynamic-form-validator.interface.d.ts +6 -0
  62. package/lib/models/tokens/dynamic-form-field-map-fn.token.d.ts +2 -0
  63. package/lib/models/types/dynamic-form-config.type.d.ts +2 -0
  64. package/lib/models/types/dynamic-form-hook.type.d.ts +1 -0
  65. package/lib/models/types/related-form-controls.type.d.ts +4 -0
  66. package/lib/services/dynamic-form-relations.service.d.ts +26 -0
  67. package/lib/services/dynamic-form.service.d.ts +42 -0
  68. package/lib/services/dynamic-validations.service.d.ts +20 -0
  69. package/package.json +28 -0
  70. package/public-api.d.ts +4 -0
@@ -0,0 +1,42 @@
1
+ import { AsyncPipe, NgFor, NgIf } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { ReactiveFormsModule } from '@angular/forms';
4
+ import { MatOptionModule } from '@angular/material/core';
5
+ import { MatFormFieldModule } from '@angular/material/form-field';
6
+ import { MatInputModule } from '@angular/material/input';
7
+ import { MatSelectModule } from '@angular/material/select';
8
+ import { DynamicFormFieldBaseComponent } from '../../models/classes/dynamic-form-field-base-component';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/material/form-field";
11
+ import * as i2 from "@angular/forms";
12
+ import * as i3 from "@angular/material/select";
13
+ import * as i4 from "@angular/material/core";
14
+ import * as i5 from "@angular/material/input";
15
+ export class DynamicSelectComponent extends DynamicFormFieldBaseComponent {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.blur = new EventEmitter();
19
+ this.change = new EventEmitter();
20
+ this.focus = new EventEmitter();
21
+ }
22
+ trackByFn(index, option) {
23
+ return option.value;
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DynamicSelectComponent, isStandalone: true, selector: "dynamic-select", inputs: { model: "model", group: "group" }, outputs: { blur: "blur", change: "change", focus: "focus" }, usesInheritance: true, ngImport: i0, template: "<mat-form-field [formGroup]=\"group\"\n [id]=\"id\"\n color=\"primary\">\n <mat-label>{{model.label}}</mat-label>\n\n <!-- Template for select without grouped options -->\n <ng-container *ngIf=\"model.options$ | async as options\">\n <ng-container *ngIf=\"!model.native else nativeSelect\">\n <mat-select [formControlName]=\"model.name\"\n [multiple]=\"model.multiple\">\n <mat-option *ngFor=\"let option of options; trackBy: trackByFn\"\n [value]=\"option.value\">\n {{option.label}}\n </mat-option>\n </mat-select>\n </ng-container>\n\n <ng-template #nativeSelect>\n <select matNativeControl>\n <option *ngFor=\"let option of options\"\n [value]=\"option.value\">\n {{option.label}}\n </option>\n </select>\n </ng-template>\n </ng-container>\n\n <!-- Template for select with grouped options -->\n <ng-container *ngIf=\"model.groupedOptions$ | async as groupedOptions\">\n <ng-container *ngIf=\"!model.native else nativeSelectGrouped\">\n <mat-select [formControlName]=\"model.name\">\n <mat-optgroup *ngFor=\"let group of groupedOptions\"\n [label]=\"group.name\">\n <mat-option *ngFor=\"let option of group.options; trackBy: trackByFn\"\n [value]=\"option.value\">\n {{option.label}}\n </mat-option>\n </mat-optgroup>\n </mat-select>\n </ng-container>\n\n <ng-template #nativeSelectGrouped>\n <select matNativeControl>\n <optgroup *ngFor=\"let group of groupedOptions\"\n [label]=\"group.name\">\n <option *ngFor=\"let option of group.options\"\n [value]=\"option.value\">\n {{option.label}}\n </option>\n </optgroup>\n </select>\n </ng-template>\n </ng-container>\n\n <mat-hint *ngIf=\"model.hint\"\n align=\"start\">{{model.hint}}</mat-hint>\n\n <ng-container *ngFor=\"let validator of model.validators\"\n ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"hasError(validator.name)\">{{validator.message}}</mat-error>\n </ng-container>\n</mat-form-field>", styles: ["mat-form-field{width:100%}mat-option{padding-top:8px;padding-bottom:8px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatOptgroup, selector: "mat-optgroup", inputs: ["disabled"], exportAs: ["matOptgroup"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }] }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicSelectComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ standalone: true, imports: [NgIf, NgFor, MatFormFieldModule, ReactiveFormsModule, MatSelectModule, MatOptionModule, AsyncPipe, MatInputModule], selector: 'dynamic-select', template: "<mat-form-field [formGroup]=\"group\"\n [id]=\"id\"\n color=\"primary\">\n <mat-label>{{model.label}}</mat-label>\n\n <!-- Template for select without grouped options -->\n <ng-container *ngIf=\"model.options$ | async as options\">\n <ng-container *ngIf=\"!model.native else nativeSelect\">\n <mat-select [formControlName]=\"model.name\"\n [multiple]=\"model.multiple\">\n <mat-option *ngFor=\"let option of options; trackBy: trackByFn\"\n [value]=\"option.value\">\n {{option.label}}\n </mat-option>\n </mat-select>\n </ng-container>\n\n <ng-template #nativeSelect>\n <select matNativeControl>\n <option *ngFor=\"let option of options\"\n [value]=\"option.value\">\n {{option.label}}\n </option>\n </select>\n </ng-template>\n </ng-container>\n\n <!-- Template for select with grouped options -->\n <ng-container *ngIf=\"model.groupedOptions$ | async as groupedOptions\">\n <ng-container *ngIf=\"!model.native else nativeSelectGrouped\">\n <mat-select [formControlName]=\"model.name\">\n <mat-optgroup *ngFor=\"let group of groupedOptions\"\n [label]=\"group.name\">\n <mat-option *ngFor=\"let option of group.options; trackBy: trackByFn\"\n [value]=\"option.value\">\n {{option.label}}\n </mat-option>\n </mat-optgroup>\n </mat-select>\n </ng-container>\n\n <ng-template #nativeSelectGrouped>\n <select matNativeControl>\n <optgroup *ngFor=\"let group of groupedOptions\"\n [label]=\"group.name\">\n <option *ngFor=\"let option of group.options\"\n [value]=\"option.value\">\n {{option.label}}\n </option>\n </optgroup>\n </select>\n </ng-template>\n </ng-container>\n\n <mat-hint *ngIf=\"model.hint\"\n align=\"start\">{{model.hint}}</mat-hint>\n\n <ng-container *ngFor=\"let validator of model.validators\"\n ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"hasError(validator.name)\">{{validator.message}}</mat-error>\n </ng-container>\n</mat-form-field>", styles: ["mat-form-field{width:100%}mat-option{padding-top:8px;padding-bottom:8px}\n"] }]
31
+ }], propDecorators: { model: [{
32
+ type: Input
33
+ }], group: [{
34
+ type: Input
35
+ }], blur: [{
36
+ type: Output
37
+ }], change: [{
38
+ type: Output
39
+ }], focus: [{
40
+ type: Output
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWR5bmFtaWMtZm9ybS9zcmMvbGliL2NvbnRyb2xzL3NlbGVjdC9keW5hbWljLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvY29udHJvbHMvc2VsZWN0L2R5bmFtaWMtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDOzs7Ozs7O0FBV3ZHLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSw2QkFBNkI7SUFQekU7O1FBV1ksU0FBSSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQyxVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7S0FLekQ7SUFIUSxTQUFTLENBQUMsS0FBYSxFQUFFLE1BQXVDO1FBQ3JFLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDOytHQVZVLHNCQUFzQjttR0FBdEIsc0JBQXNCLDBNQ2xCbkMsOGxFQTZEaUIsb0lEaERMLElBQUksNkZBQUUsS0FBSyxrSEFBRSxrQkFBa0IsK2RBQUUsbUJBQW1CLGd5QkFBRSxlQUFlLCthQUFFLGVBQWUsMEJBQUUsU0FBUyw2Q0FBRSxjQUFjOzs0RkFLaEgsc0JBQXNCO2tCQVBsQyxTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsY0FBYyxDQUFDLFlBQ2xILGdCQUFnQjs4QkFLakIsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2xhc3Nlcy9keW5hbWljLWZvcm0tZmllbGQtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZE9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC1vcHRpb24tbW9kZWwnO1xuaW1wb3J0IHsgRHluYW1pY1NlbGVjdCB9IGZyb20gJy4vZHluYW1pYy1zZWxlY3QubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIE5nRm9yLCBNYXRGb3JtRmllbGRNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdFNlbGVjdE1vZHVsZSwgTWF0T3B0aW9uTW9kdWxlLCBBc3luY1BpcGUsIE1hdElucHV0TW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdkeW5hbWljLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY1NlbGVjdENvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtRmllbGRCYXNlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbW9kZWwhOiBEeW5hbWljU2VsZWN0PHN0cmluZz47XG4gIEBJbnB1dCgpIGdyb3VwITogVW50eXBlZEZvcm1Hcm91cDtcblxuICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgb3B0aW9uOiBEeW5hbWljRm9ybUZpZWxkT3B0aW9uPHVua25vd24+KSB7XG4gICAgcmV0dXJuIG9wdGlvbi52YWx1ZTtcbiAgfVxufVxuIiwiPG1hdC1mb3JtLWZpZWxkIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIlxuICBbaWRdPVwiaWRcIlxuICBjb2xvcj1cInByaW1hcnlcIj5cbiAgPG1hdC1sYWJlbD57e21vZGVsLmxhYmVsfX08L21hdC1sYWJlbD5cblxuICA8IS0tIFRlbXBsYXRlIGZvciBzZWxlY3Qgd2l0aG91dCBncm91cGVkIG9wdGlvbnMgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbC5vcHRpb25zJCB8IGFzeW5jIGFzIG9wdGlvbnNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1vZGVsLm5hdGl2ZSBlbHNlIG5hdGl2ZVNlbGVjdFwiPlxuICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sTmFtZV09XCJtb2RlbC5uYW1lXCJcbiAgICAgICAgW211bHRpcGxlXT1cIm1vZGVsLm11bHRpcGxlXCI+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+XG4gICAgICAgICAge3tvcHRpb24ubGFiZWx9fVxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI25hdGl2ZVNlbGVjdD5cbiAgICAgIDxzZWxlY3QgbWF0TmF0aXZlQ29udHJvbD5cbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj5cbiAgICAgICAgICB7e29wdGlvbi5sYWJlbH19XG4gICAgICAgIDwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPCEtLSBUZW1wbGF0ZSBmb3Igc2VsZWN0IHdpdGggZ3JvdXBlZCBvcHRpb25zIC0tPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWwuZ3JvdXBlZE9wdGlvbnMkIHwgYXN5bmMgYXMgZ3JvdXBlZE9wdGlvbnNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1vZGVsLm5hdGl2ZSBlbHNlIG5hdGl2ZVNlbGVjdEdyb3VwZWRcIj5cbiAgICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwibW9kZWwubmFtZVwiPlxuICAgICAgICA8bWF0LW9wdGdyb3VwICpuZ0Zvcj1cImxldCBncm91cCBvZiBncm91cGVkT3B0aW9uc1wiXG4gICAgICAgICAgW2xhYmVsXT1cImdyb3VwLm5hbWVcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGdyb3VwLm9wdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+XG4gICAgICAgICAgICB7e29wdGlvbi5sYWJlbH19XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1vcHRncm91cD5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbmF0aXZlU2VsZWN0R3JvdXBlZD5cbiAgICAgIDxzZWxlY3QgbWF0TmF0aXZlQ29udHJvbD5cbiAgICAgICAgPG9wdGdyb3VwICpuZ0Zvcj1cImxldCBncm91cCBvZiBncm91cGVkT3B0aW9uc1wiXG4gICAgICAgICAgW2xhYmVsXT1cImdyb3VwLm5hbWVcIj5cbiAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZ3JvdXAub3B0aW9uc1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+XG4gICAgICAgICAgICB7e29wdGlvbi5sYWJlbH19XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgIDwvb3B0Z3JvdXA+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bWF0LWhpbnQgKm5nSWY9XCJtb2RlbC5oaW50XCJcbiAgICBhbGlnbj1cInN0YXJ0XCI+e3ttb2RlbC5oaW50fX08L21hdC1oaW50PlxuXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZhbGlkYXRvciBvZiBtb2RlbC52YWxpZGF0b3JzXCJcbiAgICBuZ1Byb2plY3RBcz1cIm1hdC1lcnJvclwiPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJoYXNFcnJvcih2YWxpZGF0b3IubmFtZSlcIj57e3ZhbGlkYXRvci5tZXNzYWdlfX08L21hdC1lcnJvcj5cbiAgPC9uZy1jb250YWluZXI+XG48L21hdC1mb3JtLWZpZWxkPiJdfQ==
@@ -0,0 +1,11 @@
1
+ import { DynamicFormFieldOptionModel } from '../../models/classes/dynamic-form-field-option-model';
2
+ export const DYNAMIC_FORM_FIELD_SELECT = 'select';
3
+ export class DynamicSelect extends DynamicFormFieldOptionModel {
4
+ constructor(config) {
5
+ super(config);
6
+ this.type = DYNAMIC_FORM_FIELD_SELECT;
7
+ this.native = config.native ?? false;
8
+ this.multiple = config.multiple ?? false;
9
+ }
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1zZWxlY3QubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvY29udHJvbHMvc2VsZWN0L2R5bmFtaWMtc2VsZWN0Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0MsMkJBQTJCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUVqSSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxRQUFRLENBQUM7QUFPbEQsTUFBTSxPQUFPLGFBQWlCLFNBQVEsMkJBQThCO0lBTWxFLFlBQVksTUFBOEI7UUFDeEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBSEEsU0FBSSxHQUFHLHlCQUF5QixDQUFDO1FBSy9DLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztJQUMzQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkT3B0aW9uQ29uZmlnLCBEeW5hbWljRm9ybUZpZWxkT3B0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2xhc3Nlcy9keW5hbWljLWZvcm0tZmllbGQtb3B0aW9uLW1vZGVsJztcblxuZXhwb3J0IGNvbnN0IERZTkFNSUNfRk9STV9GSUVMRF9TRUxFQ1QgPSAnc2VsZWN0JztcblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljU2VsZWN0Q29uZmlnPFQ+IGV4dGVuZHMgRHluYW1pY0Zvcm1GaWVsZE9wdGlvbkNvbmZpZzxUPiB7XG4gIG5hdGl2ZT86IGJvb2xlYW47XG4gIG11bHRpcGxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIER5bmFtaWNTZWxlY3Q8VD4gZXh0ZW5kcyBEeW5hbWljRm9ybUZpZWxkT3B0aW9uTW9kZWw8VD4ge1xuICBwdWJsaWMgbmF0aXZlOiBib29sZWFuO1xuICBwdWJsaWMgbXVsdGlwbGU6IGJvb2xlYW47XG5cbiAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSBEWU5BTUlDX0ZPUk1fRklFTERfU0VMRUNUO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogRHluYW1pY1NlbGVjdENvbmZpZzxUPikge1xuICAgIHN1cGVyKGNvbmZpZyk7XG5cbiAgICB0aGlzLm5hdGl2ZSA9IGNvbmZpZy5uYXRpdmUgPz8gZmFsc2U7XG4gICAgdGhpcy5tdWx0aXBsZSA9IGNvbmZpZy5tdWx0aXBsZSA/PyBmYWxzZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,45 @@
1
+ import { NgFor, NgIf } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
3
+ import { ReactiveFormsModule } from '@angular/forms';
4
+ import { MatFormFieldModule } from '@angular/material/form-field';
5
+ import { MatInput, MatInputModule } from '@angular/material/input';
6
+ import { DynamicFormFieldBaseComponent } from '../../models/classes/dynamic-form-field-base-component';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/material/form-field";
9
+ import * as i2 from "@angular/material/input";
10
+ import * as i3 from "@angular/cdk/text-field";
11
+ import * as i4 from "@angular/forms";
12
+ export class DynamicTextareaComponent extends DynamicFormFieldBaseComponent {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.blur = new EventEmitter();
16
+ this.change = new EventEmitter();
17
+ this.focus = new EventEmitter();
18
+ }
19
+ get valueCount() {
20
+ return this.textarea?.value ? this.textarea.value.length : 0;
21
+ }
22
+ get maxCountText() {
23
+ return `${this.valueCount} / ${this.model.maxLength}`;
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicTextareaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DynamicTextareaComponent, isStandalone: true, selector: "dynamic-textarea", inputs: { model: "model", group: "group" }, outputs: { blur: "blur", change: "change", focus: "focus" }, viewQueries: [{ propertyName: "textarea", first: true, predicate: MatInput, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field [formGroup]=\"group\"\n [id]=\"id\"\n color=\"primary\">\n <mat-label *ngIf=\"model.label\">{{model.label}}</mat-label>\n\n <textarea matInput\n [cdkTextareaAutosize]=\"model.resize\"\n [cdkAutosizeMinRows]=\"model.rows\"\n [cdkAutosizeMaxRows]=\"model.resizeMaxRows\"\n [id]=\"id\"\n [formControlName]=\"model.name\"\n [attr.minLength]=\"model.minLength\"\n [attr.maxLength]=\"model.maxLength\"\n [rows]=\"model.rows\"\n [autocomplete]=\"model.autocomplete\">\n </textarea>\n\n <mat-hint *ngIf=\"model.hint\"\n align=\"start\">{{model.hint}}</mat-hint>\n\n <mat-hint *ngIf=\"model.maxLength\"\n align=\"end\">{{maxCountText}}</mat-hint>\n\n <ng-container *ngFor=\"let validator of model.validators\"\n ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"hasError(validator.name)\">{{validator.message}}</mat-error>\n </ng-container>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i3.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicTextareaComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ standalone: true, imports: [NgIf, NgFor, MatFormFieldModule, MatInputModule, ReactiveFormsModule], selector: 'dynamic-textarea', template: "<mat-form-field [formGroup]=\"group\"\n [id]=\"id\"\n color=\"primary\">\n <mat-label *ngIf=\"model.label\">{{model.label}}</mat-label>\n\n <textarea matInput\n [cdkTextareaAutosize]=\"model.resize\"\n [cdkAutosizeMinRows]=\"model.rows\"\n [cdkAutosizeMaxRows]=\"model.resizeMaxRows\"\n [id]=\"id\"\n [formControlName]=\"model.name\"\n [attr.minLength]=\"model.minLength\"\n [attr.maxLength]=\"model.maxLength\"\n [rows]=\"model.rows\"\n [autocomplete]=\"model.autocomplete\">\n </textarea>\n\n <mat-hint *ngIf=\"model.hint\"\n align=\"start\">{{model.hint}}</mat-hint>\n\n <mat-hint *ngIf=\"model.maxLength\"\n align=\"end\">{{maxCountText}}</mat-hint>\n\n <ng-container *ngFor=\"let validator of model.validators\"\n ngProjectAs=\"mat-error\">\n <mat-error *ngIf=\"hasError(validator.name)\">{{validator.message}}</mat-error>\n </ng-container>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"] }]
31
+ }], propDecorators: { textarea: [{
32
+ type: ViewChild,
33
+ args: [MatInput, { static: true }]
34
+ }], model: [{
35
+ type: Input
36
+ }], group: [{
37
+ type: Input
38
+ }], blur: [{
39
+ type: Output
40
+ }], change: [{
41
+ type: Output
42
+ }], focus: [{
43
+ type: Output
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10ZXh0YXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvY29udHJvbHMvdGV4dGFyZWEvZHluYW1pYy10ZXh0YXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvY29udHJvbHMvdGV4dGFyZWEvZHluYW1pYy10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxtQkFBbUIsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDOzs7Ozs7QUFVdkcsTUFBTSxPQUFPLHdCQUF5QixTQUFRLDZCQUE2QjtJQVAzRTs7UUFhWSxTQUFJLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0MsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQy9DLFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQVN6RDtJQVBDLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3hELENBQUM7K0dBaEJVLHdCQUF3QjttR0FBeEIsd0JBQXdCLCtOQUN4QixRQUFRLHFGQ2hCckIsazVCQTJCaUIsc0ZEakJMLElBQUksNkZBQUUsS0FBSyxrSEFBRSxrQkFBa0IsK2RBQUUsY0FBYyx5a0JBQUUsbUJBQW1COzs0RkFLbkUsd0JBQXdCO2tCQVBwQyxTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixDQUFDLFlBQ3JFLGtCQUFrQjs4QkFLVyxRQUFRO3NCQUE5QyxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRTVCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksSUFBSTtzQkFBYixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dCwgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vZGVscy9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljVGV4dGFyZWEgfSBmcm9tICcuL2R5bmFtaWMtdGV4dGFyZWEubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIE5nRm9yLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdkeW5hbWljLXRleHRhcmVhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFsnbWF0LWZvcm0tZmllbGQge3dpZHRoOiAxMDAlO30nXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljVGV4dGFyZWFDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljRm9ybUZpZWxkQmFzZUNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoTWF0SW5wdXQsIHsgc3RhdGljOiB0cnVlIH0pIHRleHRhcmVhITogTWF0SW5wdXQ7XG5cbiAgQElucHV0KCkgbW9kZWwhOiBEeW5hbWljVGV4dGFyZWE7XG4gIEBJbnB1dCgpIGdyb3VwITogVW50eXBlZEZvcm1Hcm91cDtcblxuICBAT3V0cHV0KCkgYmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGdldCB2YWx1ZUNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudGV4dGFyZWE/LnZhbHVlID8gdGhpcy50ZXh0YXJlYS52YWx1ZS5sZW5ndGggOiAwO1xuICB9XG5cbiAgZ2V0IG1heENvdW50VGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLnZhbHVlQ291bnR9IC8gJHt0aGlzLm1vZGVsLm1heExlbmd0aH1gO1xuICB9XG59XG4iLCI8bWF0LWZvcm0tZmllbGQgW2Zvcm1Hcm91cF09XCJncm91cFwiXG4gIFtpZF09XCJpZFwiXG4gIGNvbG9yPVwicHJpbWFyeVwiPlxuICA8bWF0LWxhYmVsICpuZ0lmPVwibW9kZWwubGFiZWxcIj57e21vZGVsLmxhYmVsfX08L21hdC1sYWJlbD5cblxuICA8dGV4dGFyZWEgbWF0SW5wdXRcbiAgICBbY2RrVGV4dGFyZWFBdXRvc2l6ZV09XCJtb2RlbC5yZXNpemVcIlxuICAgIFtjZGtBdXRvc2l6ZU1pblJvd3NdPVwibW9kZWwucm93c1wiXG4gICAgW2Nka0F1dG9zaXplTWF4Um93c109XCJtb2RlbC5yZXNpemVNYXhSb3dzXCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIFtmb3JtQ29udHJvbE5hbWVdPVwibW9kZWwubmFtZVwiXG4gICAgW2F0dHIubWluTGVuZ3RoXT1cIm1vZGVsLm1pbkxlbmd0aFwiXG4gICAgW2F0dHIubWF4TGVuZ3RoXT1cIm1vZGVsLm1heExlbmd0aFwiXG4gICAgW3Jvd3NdPVwibW9kZWwucm93c1wiXG4gICAgW2F1dG9jb21wbGV0ZV09XCJtb2RlbC5hdXRvY29tcGxldGVcIj5cbiAgPC90ZXh0YXJlYT5cblxuICA8bWF0LWhpbnQgKm5nSWY9XCJtb2RlbC5oaW50XCJcbiAgICBhbGlnbj1cInN0YXJ0XCI+e3ttb2RlbC5oaW50fX08L21hdC1oaW50PlxuXG4gIDxtYXQtaGludCAqbmdJZj1cIm1vZGVsLm1heExlbmd0aFwiXG4gICAgYWxpZ249XCJlbmRcIj57e21heENvdW50VGV4dH19PC9tYXQtaGludD5cblxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB2YWxpZGF0b3Igb2YgbW9kZWwudmFsaWRhdG9yc1wiXG4gICAgbmdQcm9qZWN0QXM9XCJtYXQtZXJyb3JcIj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiaGFzRXJyb3IodmFsaWRhdG9yLm5hbWUpXCI+e3t2YWxpZGF0b3IubWVzc2FnZX19PC9tYXQtZXJyb3I+XG4gIDwvbmctY29udGFpbmVyPlxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
@@ -0,0 +1,15 @@
1
+ import { DynamicFormFieldValueModel } from '../../models/classes/dynamic-form-field-value-model';
2
+ export const DYNAMIC_FORM_FIELD_TEXTAREA = 'textarea';
3
+ export class DynamicTextarea extends DynamicFormFieldValueModel {
4
+ constructor(config) {
5
+ super(config);
6
+ this.type = DYNAMIC_FORM_FIELD_TEXTAREA;
7
+ this.minLength = config.minLength ?? 0;
8
+ this.maxLength = config.minLength ?? null;
9
+ this.autocomplete = config.autocomplete ?? 'off';
10
+ this.rows = config.rows ?? 3;
11
+ this.resize = config.resize ?? true;
12
+ this.resizeMaxRows = config.resizeMaxRows ?? null;
13
+ }
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10ZXh0YXJlYS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1keW5hbWljLWZvcm0vc3JjL2xpYi9jb250cm9scy90ZXh0YXJlYS9keW5hbWljLXRleHRhcmVhLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBK0IsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUU5SCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxVQUFVLENBQUM7QUFZdEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsMEJBQWdEO0lBVW5GLFlBQVksTUFBNkI7UUFDdkMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBSEEsU0FBSSxHQUFHLDJCQUEyQixDQUFDO1FBS2pELElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDO1FBQ2pELElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQztRQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO0lBQ3BELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNGb3JtRmllbGRWYWx1ZUNvbmZpZywgRHluYW1pY0Zvcm1GaWVsZFZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2xhc3Nlcy9keW5hbWljLWZvcm0tZmllbGQtdmFsdWUtbW9kZWwnO1xuXG5leHBvcnQgY29uc3QgRFlOQU1JQ19GT1JNX0ZJRUxEX1RFWFRBUkVBID0gJ3RleHRhcmVhJztcbmV4cG9ydCB0eXBlIER5bmFtaWNUZXh0YXJlYVZhbHVlID0gc3RyaW5nIHwgbnVsbDtcblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljVGV4dGFyZWFDb25maWcgZXh0ZW5kcyBEeW5hbWljRm9ybUZpZWxkVmFsdWVDb25maWc8RHluYW1pY1RleHRhcmVhVmFsdWU+IHtcbiAgbWluTGVuZ3RoPzogbnVtYmVyO1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIGF1dG9jb21wbGV0ZT86ICdvbicgfCAnb2ZmJztcbiAgcm93cz86IG51bWJlcjtcbiAgcmVzaXplPzogYm9vbGVhbjtcbiAgcmVzaXplTWF4Um93cz86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIER5bmFtaWNUZXh0YXJlYSBleHRlbmRzIER5bmFtaWNGb3JtRmllbGRWYWx1ZU1vZGVsPER5bmFtaWNUZXh0YXJlYVZhbHVlPiB7XG4gIHB1YmxpYyBtaW5MZW5ndGg6IG51bWJlciB8IG51bGw7XG4gIHB1YmxpYyBtYXhMZW5ndGg6IG51bWJlciB8IG51bGw7XG4gIHB1YmxpYyBhdXRvY29tcGxldGU6ICdvbicgfCAnb2ZmJztcbiAgcHVibGljIHJvd3M6IG51bWJlcjtcbiAgcHVibGljIHJlc2l6ZTogYm9vbGVhbjtcbiAgcHVibGljIHJlc2l6ZU1heFJvd3M6IG51bWJlciB8IG51bGw7XG5cbiAgcHVibGljIHJlYWRvbmx5IHR5cGUgPSBEWU5BTUlDX0ZPUk1fRklFTERfVEVYVEFSRUE7XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBEeW5hbWljVGV4dGFyZWFDb25maWcpIHtcbiAgICBzdXBlcihjb25maWcpO1xuXG4gICAgdGhpcy5taW5MZW5ndGggPSBjb25maWcubWluTGVuZ3RoID8/IDA7XG4gICAgdGhpcy5tYXhMZW5ndGggPSBjb25maWcubWluTGVuZ3RoID8/IG51bGw7XG4gICAgdGhpcy5hdXRvY29tcGxldGUgPSBjb25maWcuYXV0b2NvbXBsZXRlID8/ICdvZmYnO1xuICAgIHRoaXMucm93cyA9IGNvbmZpZy5yb3dzID8/IDM7XG4gICAgdGhpcy5yZXNpemUgPSBjb25maWcucmVzaXplID8/IHRydWU7XG4gICAgdGhpcy5yZXNpemVNYXhSb3dzID0gY29uZmlnLnJlc2l6ZU1heFJvd3MgPz8gbnVsbDtcbiAgfVxufVxuIl19
@@ -0,0 +1,34 @@
1
+ export class DynamicFormFieldBaseComponent {
2
+ get id() {
3
+ return this.model.id ?? this.model.name;
4
+ }
5
+ get control() {
6
+ const ctrl = this.group.get(this.model.name);
7
+ if (!ctrl) {
8
+ throw new Error(`Provided FormGroup does not contain a control with the name ${this.model.name}`);
9
+ }
10
+ return ctrl;
11
+ }
12
+ get isValid() {
13
+ return this.control.valid;
14
+ }
15
+ get isInvalid() {
16
+ return this.control.invalid;
17
+ }
18
+ onBlur(ev) {
19
+ this.blur.emit(ev);
20
+ }
21
+ onChange(ev) {
22
+ this.change.emit(ev);
23
+ }
24
+ onFocus(ev) {
25
+ this.focus.emit(ev);
26
+ }
27
+ resetControl() {
28
+ this.group.get(this.model.name)?.reset();
29
+ }
30
+ hasError(name) {
31
+ return this.control.hasError(name);
32
+ }
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWZpZWxkLWJhc2UtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWR5bmFtaWMtZm9ybS9zcmMvbGliL21vZGVscy9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC1iYXNlLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLE9BQWdCLDZCQUE2QjtJQVFqRCxJQUFJLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLCtEQUErRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7U0FDbkc7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQzlCLENBQUM7SUFFTSxNQUFNLENBQUMsRUFBTztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRU0sUUFBUSxDQUFDLEVBQU87UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxFQUFPO1FBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFZO1FBQzFCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkTW9kZWwgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1maWVsZC1tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1GaWVsZCB7XG4gIGdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBtb2RlbDogRHluYW1pY0Zvcm1GaWVsZE1vZGVsO1xuICBibHVyOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHluYW1pY0Zvcm1GaWVsZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBEeW5hbWljRm9ybUZpZWxkIHtcbiAgZ3JvdXAhOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBtb2RlbCE6IER5bmFtaWNGb3JtRmllbGRNb2RlbDtcblxuICBibHVyITogRXZlbnRFbWl0dGVyPGFueT47XG4gIGNoYW5nZSE6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBmb2N1cyE6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1vZGVsLmlkID8/IHRoaXMubW9kZWwubmFtZTtcbiAgfVxuXG4gIGdldCBjb250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgY29uc3QgY3RybCA9IHRoaXMuZ3JvdXAuZ2V0KHRoaXMubW9kZWwubmFtZSk7XG5cbiAgICBpZiAoIWN0cmwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvdmlkZWQgRm9ybUdyb3VwIGRvZXMgbm90IGNvbnRhaW4gYSBjb250cm9sIHdpdGggdGhlIG5hbWUgJHt0aGlzLm1vZGVsLm5hbWV9YCk7XG4gICAgfVxuICAgIHJldHVybiBjdHJsO1xuICB9XG5cbiAgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC52YWxpZDtcbiAgfVxuXG4gIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbC5pbnZhbGlkO1xuICB9XG5cbiAgcHVibGljIG9uQmx1cihldjogYW55KSB7XG4gICAgdGhpcy5ibHVyLmVtaXQoZXYpO1xuICB9XG5cbiAgcHVibGljIG9uQ2hhbmdlKGV2OiBhbnkpIHtcbiAgICB0aGlzLmNoYW5nZS5lbWl0KGV2KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkZvY3VzKGV2OiBhbnkpIHtcbiAgICB0aGlzLmZvY3VzLmVtaXQoZXYpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0Q29udHJvbCgpIHtcbiAgICB0aGlzLmdyb3VwLmdldCh0aGlzLm1vZGVsLm5hbWUpPy5yZXNldCgpO1xuICB9XG5cbiAgcHVibGljIGhhc0Vycm9yKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2wuaGFzRXJyb3IobmFtZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,24 @@
1
+ import { BehaviorSubject } from 'rxjs';
2
+ export class DynamicFormFieldModel {
3
+ constructor(config) {
4
+ this.hidden = config.hidden ?? false;
5
+ this.id = config.id ?? config.name;
6
+ this.width = config.width ?? 100;
7
+ this.label = config.label ?? null;
8
+ this.name = config.name;
9
+ this.hint = config.hint ?? null;
10
+ this.validators = config.validators ?? [];
11
+ this.updateOn = config.updateOn ?? 'change';
12
+ this.relations = config.relations ?? null;
13
+ // Create a disabled Subject and Observable to change the state of the FormControl inside DynamicFormFieldComponent by subscribing to disabledChange
14
+ this.disabled$ = new BehaviorSubject(config.disabled ?? false);
15
+ this.disabledChange = this.disabled$.asObservable();
16
+ }
17
+ get disabled() {
18
+ return this.disabled$.getValue();
19
+ }
20
+ set disabled(disable) {
21
+ this.disabled$.next(disable);
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWZpZWxkLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWR5bmFtaWMtZm9ybS9zcmMvbGliL21vZGVscy9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBT25ELE1BQU0sT0FBZ0IscUJBQXFCO0lBZ0J6QyxZQUFZLE1BQThCO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQztRQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDO1FBRTFDLG9KQUFvSjtRQUNwSixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLE9BQWdCO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZENvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZHluYW1pYy1mb3JtLWZpZWxkLWNvbmZpZy5pbnRlcmZhY2UnO1xuXG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkUmVsYXRpb24gfSBmcm9tICcuLi9jb25zdGFudHMvZHluYW1pYy1yZWxhdGlvbnMuY29uc3QnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1WYWxpZGF0b3IgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2R5bmFtaWMtZm9ybS12YWxpZGF0b3IuaW50ZXJmYWNlJztcbmltcG9ydCB7IER5bmFtaWNGb3JtSG9vayB9IGZyb20gJy4uL3R5cGVzL2R5bmFtaWMtZm9ybS1ob29rLnR5cGUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHluYW1pY0Zvcm1GaWVsZE1vZGVsIHtcbiAgcHVibGljIGhpZGRlbjogYm9vbGVhbjtcbiAgcHVibGljIGlkOiBzdHJpbmc7XG4gIHB1YmxpYyB3aWR0aDogbnVtYmVyO1xuICBwdWJsaWMgbGFiZWw6IHN0cmluZyB8IG51bGw7XG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBoaW50OiBzdHJpbmcgfCBudWxsO1xuICBwdWJsaWMgdmFsaWRhdG9yczogRHluYW1pY0Zvcm1WYWxpZGF0b3JbXTtcbiAgcHVibGljIHVwZGF0ZU9uOiBEeW5hbWljRm9ybUhvb2s7XG4gIHB1YmxpYyByZWxhdGlvbnM6IER5bmFtaWNGb3JtRmllbGRSZWxhdGlvbltdIHwgbnVsbDtcbiAgcHVibGljIGRpc2FibGVkQ2hhbmdlOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGFic3RyYWN0IHJlYWRvbmx5IHR5cGU6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGRpc2FibGVkJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogRHluYW1pY0Zvcm1GaWVsZENvbmZpZykge1xuICAgIHRoaXMuaGlkZGVuID0gY29uZmlnLmhpZGRlbiA/PyBmYWxzZTtcbiAgICB0aGlzLmlkID0gY29uZmlnLmlkID8/IGNvbmZpZy5uYW1lO1xuICAgIHRoaXMud2lkdGggPSBjb25maWcud2lkdGggPz8gMTAwO1xuICAgIHRoaXMubGFiZWwgPSBjb25maWcubGFiZWwgPz8gbnVsbDtcbiAgICB0aGlzLm5hbWUgPSBjb25maWcubmFtZTtcbiAgICB0aGlzLmhpbnQgPSBjb25maWcuaGludCA/PyBudWxsO1xuICAgIHRoaXMudmFsaWRhdG9ycyA9IGNvbmZpZy52YWxpZGF0b3JzID8/IFtdO1xuICAgIHRoaXMudXBkYXRlT24gPSBjb25maWcudXBkYXRlT24gPz8gJ2NoYW5nZSc7XG4gICAgdGhpcy5yZWxhdGlvbnMgPSBjb25maWcucmVsYXRpb25zID8/IG51bGw7XG5cbiAgICAvLyBDcmVhdGUgYSBkaXNhYmxlZCBTdWJqZWN0IGFuZCBPYnNlcnZhYmxlIHRvIGNoYW5nZSB0aGUgc3RhdGUgb2YgdGhlIEZvcm1Db250cm9sIGluc2lkZSBEeW5hbWljRm9ybUZpZWxkQ29tcG9uZW50IGJ5IHN1YnNjcmliaW5nIHRvIGRpc2FibGVkQ2hhbmdlXG4gICAgdGhpcy5kaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGNvbmZpZy5kaXNhYmxlZCA/PyBmYWxzZSk7XG4gICAgdGhpcy5kaXNhYmxlZENoYW5nZSA9IHRoaXMuZGlzYWJsZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkJC5nZXRWYWx1ZSgpO1xuICB9XG4gIHNldCBkaXNhYmxlZChkaXNhYmxlOiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlZCQubmV4dChkaXNhYmxlKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,48 @@
1
+ import { isObservable, map, of } from 'rxjs';
2
+ import { DynamicFormFieldValueModel } from './dynamic-form-field-value-model';
3
+ /**
4
+ * Base class for any DynamicFormField with options (e.g. DynamicSelect or DynamicAutocomplete)
5
+ */
6
+ export class DynamicFormFieldOptionModel extends DynamicFormFieldValueModel {
7
+ constructor(config) {
8
+ super(config);
9
+ this._options = [];
10
+ this._groupedOptions = [];
11
+ if (!config.options && !config.groupedOptions) {
12
+ console.error(`No options or groupedOptions provided for ${this.name}`);
13
+ }
14
+ if (config.options) {
15
+ this.options$ = this.setOptions(config.options);
16
+ }
17
+ else if (config.groupedOptions) {
18
+ this.groupedOptions$ = this.setGroupedOptions(config.groupedOptions);
19
+ }
20
+ }
21
+ setOptions(options) {
22
+ if (Array.isArray(options)) {
23
+ this._options = options;
24
+ return of(this._options);
25
+ }
26
+ if (isObservable(options)) {
27
+ return options.pipe(map((o) => {
28
+ this._options = o;
29
+ return this._options;
30
+ }));
31
+ }
32
+ return of([]);
33
+ }
34
+ setGroupedOptions(groupedOptions) {
35
+ if (Array.isArray(groupedOptions)) {
36
+ this._groupedOptions = groupedOptions;
37
+ return of(this._groupedOptions);
38
+ }
39
+ if (isObservable(groupedOptions)) {
40
+ return groupedOptions.pipe(map((o) => {
41
+ this._groupedOptions = o;
42
+ return this._groupedOptions;
43
+ }));
44
+ }
45
+ return of([]);
46
+ }
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWZpZWxkLW9wdGlvbi1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1keW5hbWljLWZvcm0vc3JjL2xpYi9tb2RlbHMvY2xhc3Nlcy9keW5hbWljLWZvcm0tZmllbGQtb3B0aW9uLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQStCLDBCQUEwQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFrQzNHOztHQUVHO0FBQ0gsTUFBTSxPQUFnQiwyQkFBK0IsU0FBUSwwQkFBNkI7SUFPeEYsWUFBWSxNQUF1QztRQUNqRCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFKUixhQUFRLEdBQWdDLEVBQUUsQ0FBQztRQUMzQyxvQkFBZSxHQUFxQyxFQUFFLENBQUM7UUFLN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFO1lBQzdDLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkNBQTZDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3pFO1FBRUQsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDakQ7YUFBTSxJQUFJLE1BQU0sQ0FBQyxjQUFjLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxPQUE2QjtRQUM5QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDeEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzFCO1FBRUQsSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDekIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUNqQixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDUixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztnQkFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUVELE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxjQUEyQztRQUNuRSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUM7WUFDdEMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2pDO1FBRUQsSUFBSSxZQUFZLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDaEMsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUN4QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDUixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztnQkFDekIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQzlCLENBQUMsQ0FBQyxDQUNILENBQUM7U0FDSDtRQUVELE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzT2JzZXJ2YWJsZSwgbWFwLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZFZhbHVlQ29uZmlnLCBEeW5hbWljRm9ybUZpZWxkVmFsdWVNb2RlbCB9IGZyb20gJy4vZHluYW1pYy1mb3JtLWZpZWxkLXZhbHVlLW1vZGVsJztcblxuZXhwb3J0IHR5cGUgRHluYW1pY09wdGlvbkxpc3Q8VD4gPSBEeW5hbWljRm9ybUZpZWxkT3B0aW9uPFQ+W10gfCBPYnNlcnZhYmxlPER5bmFtaWNGb3JtRmllbGRPcHRpb248VD5bXT47XG5cbmV4cG9ydCB0eXBlIER5bmFtaWNHcm91cGVkT3B0aW9uTGlzdDxUPiA9IER5bmFtaWNGb3JtRmllbGRPcHRpb25Hcm91cDxUPltdIHwgT2JzZXJ2YWJsZTxEeW5hbWljRm9ybUZpZWxkT3B0aW9uR3JvdXA8VD5bXT47XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciB0aGUgb2JqZWN0cyBpbnNpZGUgYSBsaXN0IG9mIG9wdGlvbnMgb2YgRHluYW1pYyBGb3JtRmllbGRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRm9ybUZpZWxkT3B0aW9uPFQ+IHtcbiAgLyoqIFRoZSB0ZXh0IHNob3duIGFzIGxhYmVsICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIC8qKiBFeHRyYSBsaW5lIG9mIHRleHQgc2hvd24gYXMgc3VidGl0bGUgKi9cbiAgc3ViVGl0bGU/OiBzdHJpbmc7XG4gIC8qKiBUaGUgdmFsdWUgdGhlIG9wdGlvbiBob2xkcyAqL1xuICB2YWx1ZTogVDtcbn1cblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIGEgZ3JvdXAgb3Agb3B0aW9ucyBpbnNpZGUgYSBEeW5hbWljIEZvcm1GaWVsZCAob3B0Z3JvdXApXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1GaWVsZE9wdGlvbkdyb3VwPFQ+IHtcbiAgbmFtZTogc3RyaW5nO1xuICBvcHRpb25zOiBEeW5hbWljRm9ybUZpZWxkT3B0aW9uPFQ+W107XG59XG5cbi8qKlxuICogQmFzZSBpbnRlcmZhY2UgZm9yIGFueSBEeW5hbWljRm9ybUZpZWxkQ29uZmlnIHdpdGggb3B0aW9ucyAoZS5nLiBEeW5hbWljU2VsZWN0Q29uZmlnIG9yIER5bmFtaWNBdXRvY29tcGxldGVDb25maWcpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNGb3JtRmllbGRPcHRpb25Db25maWc8VD4gZXh0ZW5kcyBEeW5hbWljRm9ybUZpZWxkVmFsdWVDb25maWc8VD4ge1xuICBvcHRpb25zPzogRHluYW1pY09wdGlvbkxpc3Q8VD47XG4gIGdyb3VwZWRPcHRpb25zPzogRHluYW1pY0dyb3VwZWRPcHRpb25MaXN0PFQ+O1xufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGFueSBEeW5hbWljRm9ybUZpZWxkIHdpdGggb3B0aW9ucyAoZS5nLiBEeW5hbWljU2VsZWN0IG9yIER5bmFtaWNBdXRvY29tcGxldGUpXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEeW5hbWljRm9ybUZpZWxkT3B0aW9uTW9kZWw8VD4gZXh0ZW5kcyBEeW5hbWljRm9ybUZpZWxkVmFsdWVNb2RlbDxUPiB7XG4gIHB1YmxpYyBvcHRpb25zJCE6IE9ic2VydmFibGU8RHluYW1pY0Zvcm1GaWVsZE9wdGlvbjxUPltdPjtcbiAgcHVibGljIGdyb3VwZWRPcHRpb25zJCE6IE9ic2VydmFibGU8RHluYW1pY0Zvcm1GaWVsZE9wdGlvbkdyb3VwPFQ+W10+O1xuXG4gIHByaXZhdGUgX29wdGlvbnM6IER5bmFtaWNGb3JtRmllbGRPcHRpb248VD5bXSA9IFtdO1xuICBwcml2YXRlIF9ncm91cGVkT3B0aW9uczogRHluYW1pY0Zvcm1GaWVsZE9wdGlvbkdyb3VwPFQ+W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihjb25maWc6IER5bmFtaWNGb3JtRmllbGRPcHRpb25Db25maWc8VD4pIHtcbiAgICBzdXBlcihjb25maWcpO1xuXG4gICAgaWYgKCFjb25maWcub3B0aW9ucyAmJiAhY29uZmlnLmdyb3VwZWRPcHRpb25zKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBObyBvcHRpb25zIG9yIGdyb3VwZWRPcHRpb25zIHByb3ZpZGVkIGZvciAke3RoaXMubmFtZX1gKTtcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLm9wdGlvbnMpIHtcbiAgICAgIHRoaXMub3B0aW9ucyQgPSB0aGlzLnNldE9wdGlvbnMoY29uZmlnLm9wdGlvbnMpO1xuICAgIH0gZWxzZSBpZiAoY29uZmlnLmdyb3VwZWRPcHRpb25zKSB7XG4gICAgICB0aGlzLmdyb3VwZWRPcHRpb25zJCA9IHRoaXMuc2V0R3JvdXBlZE9wdGlvbnMoY29uZmlnLmdyb3VwZWRPcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldE9wdGlvbnMob3B0aW9uczogRHluYW1pY09wdGlvbkxpc3Q8VD4pOiBPYnNlcnZhYmxlPER5bmFtaWNGb3JtRmllbGRPcHRpb248VD5bXT4ge1xuICAgIGlmIChBcnJheS5pc0FycmF5KG9wdGlvbnMpKSB7XG4gICAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcbiAgICAgIHJldHVybiBvZih0aGlzLl9vcHRpb25zKTtcbiAgICB9XG5cbiAgICBpZiAoaXNPYnNlcnZhYmxlKG9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy5waXBlKFxuICAgICAgICBtYXAoKG8pID0+IHtcbiAgICAgICAgICB0aGlzLl9vcHRpb25zID0gbztcbiAgICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mKFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0R3JvdXBlZE9wdGlvbnMoZ3JvdXBlZE9wdGlvbnM6IER5bmFtaWNHcm91cGVkT3B0aW9uTGlzdDxUPik6IE9ic2VydmFibGU8RHluYW1pY0Zvcm1GaWVsZE9wdGlvbkdyb3VwPFQ+W10+IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShncm91cGVkT3B0aW9ucykpIHtcbiAgICAgIHRoaXMuX2dyb3VwZWRPcHRpb25zID0gZ3JvdXBlZE9wdGlvbnM7XG4gICAgICByZXR1cm4gb2YodGhpcy5fZ3JvdXBlZE9wdGlvbnMpO1xuICAgIH1cblxuICAgIGlmIChpc09ic2VydmFibGUoZ3JvdXBlZE9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gZ3JvdXBlZE9wdGlvbnMucGlwZShcbiAgICAgICAgbWFwKChvKSA9PiB7XG4gICAgICAgICAgdGhpcy5fZ3JvdXBlZE9wdGlvbnMgPSBvO1xuICAgICAgICAgIHJldHVybiB0aGlzLl9ncm91cGVkT3B0aW9ucztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9mKFtdKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,24 @@
1
+ import { BehaviorSubject } from 'rxjs';
2
+ import { DynamicFormFieldModel } from './dynamic-form-field-model';
3
+ export class DynamicFormFieldValueModel extends DynamicFormFieldModel {
4
+ constructor(config) {
5
+ super(config);
6
+ this._defaultValue = config.defaultValue ?? null;
7
+ this._value = config.value ?? null;
8
+ this._value$ = new BehaviorSubject(this._value);
9
+ this.valueChanges = this._value$.asObservable();
10
+ }
11
+ get defaultValue() {
12
+ return this._defaultValue;
13
+ }
14
+ set defaultValue(val) {
15
+ this._defaultValue = val;
16
+ }
17
+ get value() {
18
+ return this._value$.getValue();
19
+ }
20
+ set value(val) {
21
+ this._value$.next(val);
22
+ }
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWZpZWxkLXZhbHVlLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWR5bmFtaWMtZm9ybS9zcmMvbGliL21vZGVscy9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC12YWx1ZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBT25FLE1BQU0sT0FBZ0IsMEJBQThCLFNBQVEscUJBQXFCO0lBTy9FLFlBQVksTUFBc0M7UUFDaEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFDRCxJQUFJLFlBQVksQ0FBQyxHQUFhO1FBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEdBQWE7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9keW5hbWljLWZvcm0tZmllbGQtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkTW9kZWwgfSBmcm9tICcuL2R5bmFtaWMtZm9ybS1maWVsZC1tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1GaWVsZFZhbHVlQ29uZmlnPFQ+IGV4dGVuZHMgRHluYW1pY0Zvcm1GaWVsZENvbmZpZyB7XG4gIHZhbHVlPzogVDtcbiAgZGVmYXVsdFZhbHVlPzogVDtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIER5bmFtaWNGb3JtRmllbGRWYWx1ZU1vZGVsPFQ+IGV4dGVuZHMgRHluYW1pY0Zvcm1GaWVsZE1vZGVsIHtcbiAgcHVibGljIHZhbHVlQ2hhbmdlczogT2JzZXJ2YWJsZTxUIHwgbnVsbD47XG5cbiAgcHJpdmF0ZSBfZGVmYXVsdFZhbHVlOiBUIHwgbnVsbDtcbiAgcHJpdmF0ZSBfdmFsdWU6IFQgfCBudWxsO1xuICBwcml2YXRlIF92YWx1ZSQ6IEJlaGF2aW9yU3ViamVjdDxUIHwgbnVsbD47XG5cbiAgY29uc3RydWN0b3IoY29uZmlnOiBEeW5hbWljRm9ybUZpZWxkVmFsdWVDb25maWc8VD4pIHtcbiAgICBzdXBlcihjb25maWcpO1xuXG4gICAgdGhpcy5fZGVmYXVsdFZhbHVlID0gY29uZmlnLmRlZmF1bHRWYWx1ZSA/PyBudWxsO1xuICAgIHRoaXMuX3ZhbHVlID0gY29uZmlnLnZhbHVlID8/IG51bGw7XG4gICAgdGhpcy5fdmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLl92YWx1ZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZXMgPSB0aGlzLl92YWx1ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZGVmYXVsdFZhbHVlKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmYXVsdFZhbHVlO1xuICB9XG4gIHNldCBkZWZhdWx0VmFsdWUodmFsOiBUIHwgbnVsbCkge1xuICAgIHRoaXMuX2RlZmF1bHRWYWx1ZSA9IHZhbDtcbiAgfVxuXG4gIGdldCB2YWx1ZSgpOiBUIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlJC5nZXRWYWx1ZSgpO1xuICB9XG4gIHNldCB2YWx1ZSh2YWw6IFQgfCBudWxsKSB7XG4gICAgdGhpcy5fdmFsdWUkLm5leHQodmFsKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,73 @@
1
+ import { Validators } from '@angular/forms';
2
+ export class DynamicFormValidators {
3
+ /**
4
+ * Default required validator, the control must contain a value
5
+ * @param msg
6
+ */
7
+ static required(msg) {
8
+ const message = msg ?? 'Dit veld is verplicht';
9
+ return { name: 'required', validator: Validators.required, message };
10
+ }
11
+ /**
12
+ * Ddefault requiredTrue validator, the value of the control has to be true
13
+ * @param msg
14
+ */
15
+ static requiredTrue(msg) {
16
+ const message = msg ?? 'Dit veld is verplicht';
17
+ return { name: 'requiredTrue', validator: Validators.requiredTrue, message };
18
+ }
19
+ /**
20
+ * Default min validator, the value has to be greater or equal than the the provided number
21
+ * @param min number
22
+ * @param msg
23
+ */
24
+ static min(min, msg) {
25
+ const message = msg ?? `Minimum is ${min}`;
26
+ return { name: 'min', validator: Validators.min(min), message };
27
+ }
28
+ /**
29
+ * Default max validator, the value has to be less or equal than the the provided number
30
+ * @param max number
31
+ * @param msg
32
+ */
33
+ static max(max, msg) {
34
+ const message = msg ?? `Maximum is ${max}`;
35
+ return { name: 'max', validator: Validators.max(max), message };
36
+ }
37
+ /**
38
+ * Default minLength validator, the value has to contain a minimum amount of characters
39
+ * @param min number
40
+ * @param msg
41
+ */
42
+ static minLength(min, msg) {
43
+ const message = msg ?? `Minimaal ${min} tekens`;
44
+ return { name: 'minLength', validator: Validators.min(min), message };
45
+ }
46
+ /**
47
+ * Default maxLength validator, the value has to contain a maximum amount of characters
48
+ * @param max number
49
+ * @param msg
50
+ */
51
+ static maxLength(max, msg) {
52
+ const message = msg ?? `Maximaal ${max} tekens`;
53
+ return { name: 'maxLength', validator: Validators.max(max), message };
54
+ }
55
+ /**
56
+ * Ddefault email validator, the value of the control has to be a valid email address
57
+ * @param msg
58
+ */
59
+ static email(msg) {
60
+ const message = msg ?? 'Geen geldig emailadres';
61
+ return { name: 'email', validator: Validators.email, message };
62
+ }
63
+ /**
64
+ * Default pattern validator, the value of the control has to match the provided pattern
65
+ * @param pattern: string | RegExp
66
+ * @param msg
67
+ */
68
+ static pattern(pattern, msg) {
69
+ const message = msg ?? 'Geen geldige invoer';
70
+ return { name: 'pattern', validator: Validators.pattern(pattern), message };
71
+ }
72
+ }
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXZhbGlkYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvbW9kZWxzL2NsYXNzZXMvZHluYW1pYy1mb3JtLXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzVDLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEM7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFZO1FBQzFCLE1BQU0sT0FBTyxHQUFXLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQztRQUV2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFZO1FBQzlCLE1BQU0sT0FBTyxHQUFXLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQztRQUN2RCxPQUFPLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMvRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBVyxFQUFFLEdBQVk7UUFDbEMsTUFBTSxPQUFPLEdBQVcsR0FBRyxJQUFJLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDbkQsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFZO1FBQ2xDLE1BQU0sT0FBTyxHQUFXLEdBQUcsSUFBSSxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ25ELE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFXLEVBQUUsR0FBWTtRQUN4QyxNQUFNLE9BQU8sR0FBVyxHQUFHLElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUN4RCxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBVyxFQUFFLEdBQVk7UUFDeEMsTUFBTSxPQUFPLEdBQVcsR0FBRyxJQUFJLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDeEQsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBWTtRQUN2QixNQUFNLE9BQU8sR0FBVyxHQUFHLElBQUksd0JBQXdCLENBQUM7UUFDeEQsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQXdCLEVBQUUsR0FBWTtRQUNuRCxNQUFNLE9BQU8sR0FBVyxHQUFHLElBQUkscUJBQXFCLENBQUM7UUFDckQsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDOUUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IER5bmFtaWNGb3JtVmFsaWRhdG9yIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9keW5hbWljLWZvcm0tdmFsaWRhdG9yLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybVZhbGlkYXRvcnMge1xuICAvKipcbiAgICogRGVmYXVsdCByZXF1aXJlZCB2YWxpZGF0b3IsIHRoZSBjb250cm9sIG11c3QgY29udGFpbiBhIHZhbHVlXG4gICAqIEBwYXJhbSBtc2dcbiAgICovXG4gIHN0YXRpYyByZXF1aXJlZChtc2c/OiBzdHJpbmcpOiBEeW5hbWljRm9ybVZhbGlkYXRvciB7XG4gICAgY29uc3QgbWVzc2FnZTogc3RyaW5nID0gbXNnID8/ICdEaXQgdmVsZCBpcyB2ZXJwbGljaHQnO1xuXG4gICAgcmV0dXJuIHsgbmFtZTogJ3JlcXVpcmVkJywgdmFsaWRhdG9yOiBWYWxpZGF0b3JzLnJlcXVpcmVkLCBtZXNzYWdlIH07XG4gIH1cblxuICAvKipcbiAgICogRGRlZmF1bHQgcmVxdWlyZWRUcnVlIHZhbGlkYXRvciwgdGhlIHZhbHVlIG9mIHRoZSBjb250cm9sIGhhcyB0byBiZSB0cnVlXG4gICAqIEBwYXJhbSBtc2dcbiAgICovXG4gIHN0YXRpYyByZXF1aXJlZFRydWUobXNnPzogc3RyaW5nKTogRHluYW1pY0Zvcm1WYWxpZGF0b3Ige1xuICAgIGNvbnN0IG1lc3NhZ2U6IHN0cmluZyA9IG1zZyA/PyAnRGl0IHZlbGQgaXMgdmVycGxpY2h0JztcbiAgICByZXR1cm4geyBuYW1lOiAncmVxdWlyZWRUcnVlJywgdmFsaWRhdG9yOiBWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZSwgbWVzc2FnZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgbWluIHZhbGlkYXRvciwgdGhlIHZhbHVlIGhhcyB0byBiZSBncmVhdGVyIG9yIGVxdWFsIHRoYW4gdGhlIHRoZSBwcm92aWRlZCBudW1iZXJcbiAgICogQHBhcmFtIG1pbiBudW1iZXJcbiAgICogQHBhcmFtIG1zZ1xuICAgKi9cbiAgc3RhdGljIG1pbihtaW46IG51bWJlciwgbXNnPzogc3RyaW5nKTogRHluYW1pY0Zvcm1WYWxpZGF0b3Ige1xuICAgIGNvbnN0IG1lc3NhZ2U6IHN0cmluZyA9IG1zZyA/PyBgTWluaW11bSBpcyAke21pbn1gO1xuICAgIHJldHVybiB7IG5hbWU6ICdtaW4nLCB2YWxpZGF0b3I6IFZhbGlkYXRvcnMubWluKG1pbiksIG1lc3NhZ2UgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IG1heCB2YWxpZGF0b3IsIHRoZSB2YWx1ZSBoYXMgdG8gYmUgbGVzcyBvciBlcXVhbCB0aGFuIHRoZSB0aGUgcHJvdmlkZWQgbnVtYmVyXG4gICAqIEBwYXJhbSBtYXggbnVtYmVyXG4gICAqIEBwYXJhbSBtc2dcbiAgICovXG4gIHN0YXRpYyBtYXgobWF4OiBudW1iZXIsIG1zZz86IHN0cmluZyk6IER5bmFtaWNGb3JtVmFsaWRhdG9yIHtcbiAgICBjb25zdCBtZXNzYWdlOiBzdHJpbmcgPSBtc2cgPz8gYE1heGltdW0gaXMgJHttYXh9YDtcbiAgICByZXR1cm4geyBuYW1lOiAnbWF4JywgdmFsaWRhdG9yOiBWYWxpZGF0b3JzLm1heChtYXgpLCBtZXNzYWdlIH07XG4gIH1cblxuICAvKipcbiAgICogRGVmYXVsdCBtaW5MZW5ndGggdmFsaWRhdG9yLCB0aGUgdmFsdWUgaGFzIHRvIGNvbnRhaW4gYSBtaW5pbXVtIGFtb3VudCBvZiBjaGFyYWN0ZXJzXG4gICAqIEBwYXJhbSBtaW4gbnVtYmVyXG4gICAqIEBwYXJhbSBtc2dcbiAgICovXG4gIHN0YXRpYyBtaW5MZW5ndGgobWluOiBudW1iZXIsIG1zZz86IHN0cmluZyk6IER5bmFtaWNGb3JtVmFsaWRhdG9yIHtcbiAgICBjb25zdCBtZXNzYWdlOiBzdHJpbmcgPSBtc2cgPz8gYE1pbmltYWFsICR7bWlufSB0ZWtlbnNgO1xuICAgIHJldHVybiB7IG5hbWU6ICdtaW5MZW5ndGgnLCB2YWxpZGF0b3I6IFZhbGlkYXRvcnMubWluKG1pbiksIG1lc3NhZ2UgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZhdWx0IG1heExlbmd0aCB2YWxpZGF0b3IsIHRoZSB2YWx1ZSBoYXMgdG8gY29udGFpbiBhIG1heGltdW0gYW1vdW50IG9mIGNoYXJhY3RlcnNcbiAgICogQHBhcmFtIG1heCBudW1iZXJcbiAgICogQHBhcmFtIG1zZ1xuICAgKi9cbiAgc3RhdGljIG1heExlbmd0aChtYXg6IG51bWJlciwgbXNnPzogc3RyaW5nKTogRHluYW1pY0Zvcm1WYWxpZGF0b3Ige1xuICAgIGNvbnN0IG1lc3NhZ2U6IHN0cmluZyA9IG1zZyA/PyBgTWF4aW1hYWwgJHttYXh9IHRla2Vuc2A7XG4gICAgcmV0dXJuIHsgbmFtZTogJ21heExlbmd0aCcsIHZhbGlkYXRvcjogVmFsaWRhdG9ycy5tYXgobWF4KSwgbWVzc2FnZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERkZWZhdWx0IGVtYWlsIHZhbGlkYXRvciwgdGhlIHZhbHVlIG9mIHRoZSBjb250cm9sIGhhcyB0byBiZSBhIHZhbGlkIGVtYWlsIGFkZHJlc3NcbiAgICogQHBhcmFtIG1zZ1xuICAgKi9cbiAgc3RhdGljIGVtYWlsKG1zZz86IHN0cmluZyk6IER5bmFtaWNGb3JtVmFsaWRhdG9yIHtcbiAgICBjb25zdCBtZXNzYWdlOiBzdHJpbmcgPSBtc2cgPz8gJ0dlZW4gZ2VsZGlnIGVtYWlsYWRyZXMnO1xuICAgIHJldHVybiB7IG5hbWU6ICdlbWFpbCcsIHZhbGlkYXRvcjogVmFsaWRhdG9ycy5lbWFpbCwgbWVzc2FnZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgcGF0dGVybiB2YWxpZGF0b3IsIHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbCBoYXMgdG8gbWF0Y2ggdGhlIHByb3ZpZGVkIHBhdHRlcm5cbiAgICogQHBhcmFtIHBhdHRlcm46IHN0cmluZyB8IFJlZ0V4cFxuICAgKiBAcGFyYW0gbXNnXG4gICAqL1xuICBzdGF0aWMgcGF0dGVybihwYXR0ZXJuOiBzdHJpbmcgfCBSZWdFeHAsIG1zZz86IHN0cmluZyk6IER5bmFtaWNGb3JtVmFsaWRhdG9yIHtcbiAgICBjb25zdCBtZXNzYWdlOiBzdHJpbmcgPSBtc2cgPz8gJ0dlZW4gZ2VsZGlnZSBpbnZvZXInO1xuICAgIHJldHVybiB7IG5hbWU6ICdwYXR0ZXJuJywgdmFsaWRhdG9yOiBWYWxpZGF0b3JzLnBhdHRlcm4ocGF0dGVybiksIG1lc3NhZ2UgfTtcbiAgfVxufVxuIl19
@@ -0,0 +1,47 @@
1
+ import { DynamicFormValidationsService } from '../../services/dynamic-validations.service';
2
+ import { DynamicFormValidators } from '../classes/dynamic-form-validators';
3
+ export var RelationActionType;
4
+ (function (RelationActionType) {
5
+ RelationActionType["DISABLED"] = "DISABLED";
6
+ RelationActionType["ENABLED"] = "ENABLED";
7
+ RelationActionType["HIDDEN"] = "HIDDEN";
8
+ RelationActionType["VISIBLE"] = "VISIBLE";
9
+ RelationActionType["REQUIRED"] = "REQUIRED";
10
+ RelationActionType["OPTIONAL"] = "OPTIONAL";
11
+ })(RelationActionType || (RelationActionType = {}));
12
+ export var RelationOperator;
13
+ (function (RelationOperator) {
14
+ RelationOperator["AND"] = "AND";
15
+ RelationOperator["OR"] = "OR";
16
+ })(RelationOperator || (RelationOperator = {}));
17
+ const DISABLE_ACTION = {
18
+ type: RelationActionType.DISABLED,
19
+ reversedType: RelationActionType.ENABLED,
20
+ change(hasMatch, model) {
21
+ model.disabled = hasMatch;
22
+ }
23
+ };
24
+ const HIDDEN_ACTION = {
25
+ type: RelationActionType.HIDDEN,
26
+ reversedType: RelationActionType.VISIBLE,
27
+ change(hasMatch, model) {
28
+ model.hidden = hasMatch;
29
+ }
30
+ };
31
+ const REQUIRED_ACTION = {
32
+ type: RelationActionType.REQUIRED,
33
+ reversedType: RelationActionType.OPTIONAL,
34
+ change(hasMatch, model, control, injector) {
35
+ const hasRequiredValidation = !!model.validators.find((f) => f.name === 'required');
36
+ let validators;
37
+ if (hasMatch) {
38
+ validators = hasRequiredValidation ? model.validators : [...model.validators, DynamicFormValidators.required()];
39
+ }
40
+ else {
41
+ validators = model.validators.filter((f) => f.name === 'required');
42
+ }
43
+ injector.get(DynamicFormValidationsService).updateValidators(validators, control);
44
+ }
45
+ };
46
+ export const RELATION_ACTIONS = [DISABLE_ACTION, HIDDEN_ACTION, REQUIRED_ACTION];
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1yZWxhdGlvbnMuY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvbW9kZWxzL2NvbnN0YW50cy9keW5hbWljLXJlbGF0aW9ucy5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUUzRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUczRSxNQUFNLENBQU4sSUFBWSxrQkFPWDtBQVBELFdBQVksa0JBQWtCO0lBQzVCLDJDQUFxQixDQUFBO0lBQ3JCLHlDQUFtQixDQUFBO0lBQ25CLHVDQUFpQixDQUFBO0lBQ2pCLHlDQUFtQixDQUFBO0lBQ25CLDJDQUFxQixDQUFBO0lBQ3JCLDJDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFQVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBTzdCO0FBRUQsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUMxQiwrQkFBVyxDQUFBO0lBQ1gsNkJBQVMsQ0FBQTtBQUNYLENBQUMsRUFIVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBRzNCO0FBbUJELE1BQU0sY0FBYyxHQUEwQjtJQUM1QyxJQUFJLEVBQUUsa0JBQWtCLENBQUMsUUFBUTtJQUNqQyxZQUFZLEVBQUUsa0JBQWtCLENBQUMsT0FBTztJQUN4QyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUs7UUFDcEIsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztDQUNGLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBMEI7SUFDM0MsSUFBSSxFQUFFLGtCQUFrQixDQUFDLE1BQU07SUFDL0IsWUFBWSxFQUFFLGtCQUFrQixDQUFDLE9BQU87SUFDeEMsTUFBTSxDQUFDLFFBQVEsRUFBRSxLQUFLO1FBQ3BCLEtBQUssQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO0lBQzFCLENBQUM7Q0FDRixDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQTBCO0lBQzdDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxRQUFRO0lBQ2pDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxRQUFRO0lBQ3pDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRO1FBQ3ZDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO1FBQ3BGLElBQUksVUFBa0MsQ0FBQztRQUV2QyxJQUFJLFFBQVEsRUFBRTtZQUNaLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLEVBQUUscUJBQXFCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNqSDthQUFNO1lBQ0wsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDO1NBQ3BFO1FBRUQsUUFBUSxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwRixDQUFDO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUE0QixDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1WYWxpZGF0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9keW5hbWljLXZhbGlkYXRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZE1vZGVsIH0gZnJvbSAnLi4vY2xhc3Nlcy9keW5hbWljLWZvcm0tZmllbGQtbW9kZWwnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1WYWxpZGF0b3JzIH0gZnJvbSAnLi4vY2xhc3Nlcy9keW5hbWljLWZvcm0tdmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVZhbGlkYXRvciB9IGZyb20gJy4uL2ludGVyZmFjZXMvZHluYW1pYy1mb3JtLXZhbGlkYXRvci5pbnRlcmZhY2UnO1xuXG5leHBvcnQgZW51bSBSZWxhdGlvbkFjdGlvblR5cGUge1xuICBESVNBQkxFRCA9ICdESVNBQkxFRCcsXG4gIEVOQUJMRUQgPSAnRU5BQkxFRCcsXG4gIEhJRERFTiA9ICdISURERU4nLFxuICBWSVNJQkxFID0gJ1ZJU0lCTEUnLFxuICBSRVFVSVJFRCA9ICdSRVFVSVJFRCcsXG4gIE9QVElPTkFMID0gJ09QVElPTkFMJ1xufVxuXG5leHBvcnQgZW51bSBSZWxhdGlvbk9wZXJhdG9yIHtcbiAgQU5EID0gJ0FORCcsXG4gIE9SID0gJ09SJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbGF0aW9uQ29uZGl0aW9uIHtcbiAgZmllbGROYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiAodmFsOiBhbnkpID0+IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1GaWVsZFJlbGF0aW9uIHtcbiAgYWN0aW9uVHlwZTogUmVsYXRpb25BY3Rpb25UeXBlO1xuICBvcGVyYXRvcj86IFJlbGF0aW9uT3BlcmF0b3I7XG4gIGNvbmRpdGlvbnM6IFJlbGF0aW9uQ29uZGl0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY1JlbGF0aW9uQWN0aW9uIHtcbiAgdHlwZTogUmVsYXRpb25BY3Rpb25UeXBlO1xuICByZXZlcnNlZFR5cGU/OiBzdHJpbmc7XG4gIGNoYW5nZShoYXNNYXRjaDogYm9vbGVhbiwgbW9kZWw6IER5bmFtaWNGb3JtRmllbGRNb2RlbCwgY29udHJvbDogVW50eXBlZEZvcm1Db250cm9sLCBpbmplY3RvcjogSW5qZWN0b3IpOiB2b2lkO1xufVxuXG5jb25zdCBESVNBQkxFX0FDVElPTjogRHluYW1pY1JlbGF0aW9uQWN0aW9uID0ge1xuICB0eXBlOiBSZWxhdGlvbkFjdGlvblR5cGUuRElTQUJMRUQsXG4gIHJldmVyc2VkVHlwZTogUmVsYXRpb25BY3Rpb25UeXBlLkVOQUJMRUQsXG4gIGNoYW5nZShoYXNNYXRjaCwgbW9kZWwpIHtcbiAgICBtb2RlbC5kaXNhYmxlZCA9IGhhc01hdGNoO1xuICB9XG59O1xuXG5jb25zdCBISURERU5fQUNUSU9OOiBEeW5hbWljUmVsYXRpb25BY3Rpb24gPSB7XG4gIHR5cGU6IFJlbGF0aW9uQWN0aW9uVHlwZS5ISURERU4sXG4gIHJldmVyc2VkVHlwZTogUmVsYXRpb25BY3Rpb25UeXBlLlZJU0lCTEUsXG4gIGNoYW5nZShoYXNNYXRjaCwgbW9kZWwpIHtcbiAgICBtb2RlbC5oaWRkZW4gPSBoYXNNYXRjaDtcbiAgfVxufTtcblxuY29uc3QgUkVRVUlSRURfQUNUSU9OOiBEeW5hbWljUmVsYXRpb25BY3Rpb24gPSB7XG4gIHR5cGU6IFJlbGF0aW9uQWN0aW9uVHlwZS5SRVFVSVJFRCxcbiAgcmV2ZXJzZWRUeXBlOiBSZWxhdGlvbkFjdGlvblR5cGUuT1BUSU9OQUwsXG4gIGNoYW5nZShoYXNNYXRjaCwgbW9kZWwsIGNvbnRyb2wsIGluamVjdG9yKSB7XG4gICAgY29uc3QgaGFzUmVxdWlyZWRWYWxpZGF0aW9uID0gISFtb2RlbC52YWxpZGF0b3JzLmZpbmQoKGYpID0+IGYubmFtZSA9PT0gJ3JlcXVpcmVkJyk7XG4gICAgbGV0IHZhbGlkYXRvcnM6IER5bmFtaWNGb3JtVmFsaWRhdG9yW107XG5cbiAgICBpZiAoaGFzTWF0Y2gpIHtcbiAgICAgIHZhbGlkYXRvcnMgPSBoYXNSZXF1aXJlZFZhbGlkYXRpb24gPyBtb2RlbC52YWxpZGF0b3JzIDogWy4uLm1vZGVsLnZhbGlkYXRvcnMsIER5bmFtaWNGb3JtVmFsaWRhdG9ycy5yZXF1aXJlZCgpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsaWRhdG9ycyA9IG1vZGVsLnZhbGlkYXRvcnMuZmlsdGVyKChmKSA9PiBmLm5hbWUgPT09ICdyZXF1aXJlZCcpO1xuICAgIH1cblxuICAgIGluamVjdG9yLmdldChEeW5hbWljRm9ybVZhbGlkYXRpb25zU2VydmljZSkudXBkYXRlVmFsaWRhdG9ycyh2YWxpZGF0b3JzLCBjb250cm9sKTtcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IFJFTEFUSU9OX0FDVElPTlM6IER5bmFtaWNSZWxhdGlvbkFjdGlvbltdID0gW0RJU0FCTEVfQUNUSU9OLCBISURERU5fQUNUSU9OLCBSRVFVSVJFRF9BQ1RJT05dO1xuIl19
@@ -0,0 +1,11 @@
1
+ export * from './classes/dynamic-form-field-base-component';
2
+ export * from './classes/dynamic-form-field-model';
3
+ export * from './classes/dynamic-form-field-option-model';
4
+ export * from './classes/dynamic-form-field-value-model';
5
+ export * from './classes/dynamic-form-validators';
6
+ export * from './constants/dynamic-relations.const';
7
+ export * from './interfaces/dynamic-form-field-config.interface';
8
+ export * from './interfaces/dynamic-form-validator.interface';
9
+ export * from './types/dynamic-form-config.type';
10
+ export * from './tokens/dynamic-form-field-map-fn.token';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxtQ0FBbUMsQ0FBQztBQUVsRCxjQUFjLHFDQUFxQyxDQUFDO0FBRXBELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYywrQ0FBK0MsQ0FBQztBQUU5RCxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGNBQWMsMENBQTBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvZHluYW1pYy1mb3JtLWZpZWxkLWJhc2UtY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy9keW5hbWljLWZvcm0tZmllbGQtbW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC1vcHRpb24tbW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC12YWx1ZS1tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvZHluYW1pYy1mb3JtLXZhbGlkYXRvcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cy9keW5hbWljLXJlbGF0aW9ucy5jb25zdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9keW5hbWljLWZvcm0tZmllbGQtY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZHluYW1pYy1mb3JtLXZhbGlkYXRvci5pbnRlcmZhY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL2R5bmFtaWMtZm9ybS1jb25maWcudHlwZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdG9rZW5zL2R5bmFtaWMtZm9ybS1maWVsZC1tYXAtZm4udG9rZW4nO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWZpZWxkLWNvbmZpZy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvbW9kZWxzL2ludGVyZmFjZXMvZHluYW1pYy1mb3JtLWZpZWxkLWNvbmZpZy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNGb3JtRmllbGRSZWxhdGlvbiB9IGZyb20gJy4uL2NvbnN0YW50cy9keW5hbWljLXJlbGF0aW9ucy5jb25zdCc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUhvb2sgfSBmcm9tICcuLi90eXBlcy9keW5hbWljLWZvcm0taG9vay50eXBlJztcbmltcG9ydCB7IER5bmFtaWNGb3JtVmFsaWRhdG9yIH0gZnJvbSAnLi9keW5hbWljLWZvcm0tdmFsaWRhdG9yLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1GaWVsZENvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjb250cm9sIGhhcyB0byBiZSBkaXNhYmxlZC5cbiAgICogRGVmYXVsdCB2YWx1ZSBpcyBmYWxzZS5cbiAgICogQG9wdGlvbmFsXG4gICAqL1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjb250cm9sIHNob3VsZCBiZSBoaWRkZW4uXG4gICAqIERlZmF1bHQgdmFsdWUgaXMgZmFsc2VcbiAgICogQG9wdGlvbmFsXG4gICAqL1xuICBoaWRkZW4/OiBib29sZWFuO1xuICAvKipcbiAgICogQWRkcyBhbiBpZCBhdHRyaWJ1dGUgdG8gdGhlIEZvcm1Db250cm9sLlxuICAgKiBXaGVuIG5vdCBwcm92aWRlZCwgdGhlIHJlcXVpcmVkICduYW1lJyBwcm9wZXJ0eSBpcyB1c2VkIGFzIGlkXG4gICAqIEBvcHRpb25hbFxuICAgKi9cbiAgaWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXRzIHRoZSB3aWR0aCBvZiB0aGUgZmllbGQsIGJhc2VkIG9uIHBlcmNlbnRhZ2VzLiBEZWZhdWx0IHZhbHVlIGlzIDEwMC5cbiAgICogQG9wdGlvbmFsXG4gICAqL1xuICB3aWR0aD86IG51bWJlcjtcbiAgLyoqXG4gICAqIFVzZWQgYXMgbWF0LWxhYmVsIHdoZW4gcHJvdmlkZWRcbiAgICogQG9wdGlvbmFsXG4gICAqL1xuICBsYWJlbD86IHN0cmluZyB8IG51bGw7XG4gIC8qKlxuICAgKiBOYW1lIHVzZWQgYXMgRm9ybUNvbnRyb2xOYW1lXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogSGludCB0ZXh0IHVuZGVybmVhdGggdGhlIEZvcm1Db250cm9sXG4gICAqIEBvcHRpb25hbFxuICAgKi9cbiAgaGludD86IHN0cmluZztcbiAgLyoqXG4gICAqIEFycmF5IG9mIER5bmFtaWMgRm9ybSBWYWxpZGF0b3JzXG4gICAqIEBvcHRpb25hbFxuICAgKi9cbiAgdmFsaWRhdG9ycz86IER5bmFtaWNGb3JtVmFsaWRhdG9yW107XG4gIC8qKlxuICAgKiBBcnJheSBvZiBEeW5hbWljIEZvcm0gUmVsYXRpb25zXG4gICAqIEBvcHRpb25hbFxuICAgKi9cbiAgcmVsYXRpb25zPzogRHluYW1pY0Zvcm1GaWVsZFJlbGF0aW9uW107XG4gIC8qKlxuICAgKiBFdmVudCBuYW1lIGZvciB0aGUgY29udHJvbCB0byB1cGRhdGUgb24uXG4gICAqIFBvc3NpYmxlIHZhbHVlczogJ3VwZGF0ZScsICdibHVyJyBvciAnc3VibWl0Jy5cbiAgICogRGVmYXVsdCB2YWx1ZXMgaXMgJ3VwZGF0ZSdcbiAgICogQG9wdGlvbmFsXG4gICAqL1xuICB1cGRhdGVPbj86IER5bmFtaWNGb3JtSG9vaztcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXZhbGlkYXRvci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvbW9kZWxzL2ludGVyZmFjZXMvZHluYW1pYy1mb3JtLXZhbGlkYXRvci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNGb3JtVmFsaWRhdG9yIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWxpZGF0b3I6IFZhbGlkYXRvckZuO1xuICBtZXNzYWdlPzogc3RyaW5nO1xufVxuIl19
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const DYNAMIC_FORM_FIELD_MAP_FN = new InjectionToken('DYNAMIC_FORM_FIELD_MAP_FN');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWZpZWxkLW1hcC1mbi50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1keW5hbWljLWZvcm0vc3JjL2xpYi9tb2RlbHMvdG9rZW5zL2R5bmFtaWMtZm9ybS1maWVsZC1tYXAtZm4udG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IERZTkFNSUNfRk9STV9GSUVMRF9NQVBfRk4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0RZTkFNSUNfRk9STV9GSUVMRF9NQVBfRk4nKTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbmZpZy50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWR5bmFtaWMtZm9ybS9zcmMvbGliL21vZGVscy90eXBlcy9keW5hbWljLWZvcm0tY29uZmlnLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNGb3JtRmllbGRNb2RlbCB9IGZyb20gJy4uL2NsYXNzZXMvZHluYW1pYy1mb3JtLWZpZWxkLW1vZGVsJztcblxuZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1Db25maWcgPSBEeW5hbWljRm9ybUZpZWxkTW9kZWxbXVtdO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWhvb2sudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1keW5hbWljLWZvcm0vc3JjL2xpYi9tb2RlbHMvdHlwZXMvZHluYW1pYy1mb3JtLWhvb2sudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRHluYW1pY0Zvcm1Ib29rID0gJ3N1Ym1pdCcgfCAnYmx1cicgfCAnY2hhbmdlJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRlZC1mb3JtLWNvbnRyb2xzLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvbW9kZWxzL3R5cGVzL3JlbGF0ZWQtZm9ybS1jb250cm9scy50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCB0eXBlIFJlbGF0ZWRGb3JtQ29udHJvbHMgPSB7XG4gIFtuYW1lOiBzdHJpbmddOiBVbnR5cGVkRm9ybUNvbnRyb2w7XG59O1xuIl19