@olafvv/ngx-dynamic-form 0.0.3 → 0.2.0

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 (54) hide show
  1. package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +21 -15
  2. package/esm2022/lib/components/dynamic-form-field/dynamic-form-field.component.mjs +22 -4
  3. package/esm2022/lib/controls/button/dynamic-button.component.mjs +3 -3
  4. package/esm2022/lib/controls/button-toggles/dynamic-button-toggles.component.mjs +28 -0
  5. package/esm2022/lib/controls/button-toggles/dynamic-button-toggles.model.mjs +13 -0
  6. package/esm2022/lib/controls/checkbox/dynamic-checkbox.component.mjs +5 -11
  7. package/esm2022/lib/controls/controls.mjs +9 -0
  8. package/esm2022/lib/controls/input/dynamic-input.component.mjs +12 -11
  9. package/esm2022/lib/controls/input/dynamic-input.model.mjs +2 -1
  10. package/esm2022/lib/controls/radio-group/dynamic-radio-group.component.mjs +27 -0
  11. package/esm2022/lib/controls/radio-group/dynamic-radio-group.model.mjs +11 -0
  12. package/esm2022/lib/controls/readonly/dynamic-readonly.component.mjs +3 -3
  13. package/esm2022/lib/controls/select/dynamic-select.component.mjs +5 -11
  14. package/esm2022/lib/controls/textarea/dynamic-textarea.component.mjs +12 -11
  15. package/esm2022/lib/models/classes/dynamic-form-field-base.mjs +28 -0
  16. package/esm2022/lib/models/classes/dynamic-form-field-model.mjs +1 -1
  17. package/esm2022/lib/models/constants/dynamic-relations.const.mjs +2 -15
  18. package/esm2022/lib/models/index.mjs +4 -3
  19. package/esm2022/lib/models/interfaces/dynamic-form-field-config.interface.mjs +1 -1
  20. package/esm2022/lib/models/interfaces/dynamic-form-field-event.interface.mjs +2 -0
  21. package/esm2022/lib/models/interfaces/dynamic-form-field-relation.interface.mjs +15 -0
  22. package/esm2022/lib/services/dynamic-form-relations.service.mjs +3 -2
  23. package/esm2022/lib/services/dynamic-form.service.mjs +12 -8
  24. package/esm2022/public-api.mjs +2 -2
  25. package/fesm2022/olafvv-ngx-dynamic-form.mjs +223 -148
  26. package/fesm2022/olafvv-ngx-dynamic-form.mjs.map +1 -1
  27. package/lib/components/dynamic-form/dynamic-form.component.d.ts +15 -9
  28. package/lib/components/dynamic-form-field/dynamic-form-field.component.d.ts +6 -2
  29. package/lib/controls/button/dynamic-button.component.d.ts +2 -2
  30. package/lib/controls/button-toggles/dynamic-button-toggles.component.d.ts +13 -0
  31. package/lib/controls/button-toggles/dynamic-button-toggles.model.d.ts +20 -0
  32. package/lib/controls/checkbox/dynamic-checkbox.component.d.ts +3 -5
  33. package/lib/controls/{index.d.ts → controls.d.ts} +2 -0
  34. package/lib/controls/input/dynamic-input.component.d.ts +6 -6
  35. package/lib/controls/input/dynamic-input.model.d.ts +2 -0
  36. package/lib/controls/radio-group/dynamic-radio-group.component.d.ts +13 -0
  37. package/lib/controls/radio-group/dynamic-radio-group.model.d.ts +14 -0
  38. package/lib/controls/readonly/dynamic-readonly.component.d.ts +2 -2
  39. package/lib/controls/select/dynamic-select.component.d.ts +5 -6
  40. package/lib/controls/textarea/dynamic-textarea.component.d.ts +6 -6
  41. package/lib/models/classes/{dynamic-form-field-base-component.d.ts → dynamic-form-field-base.d.ts} +2 -8
  42. package/lib/models/classes/dynamic-form-field-model.d.ts +2 -3
  43. package/lib/models/constants/dynamic-relations.const.d.ts +1 -29
  44. package/lib/models/index.d.ts +3 -2
  45. package/lib/models/interfaces/dynamic-form-field-config.interface.d.ts +4 -5
  46. package/lib/models/interfaces/dynamic-form-field-event.interface.d.ts +10 -0
  47. package/lib/models/interfaces/dynamic-form-field-relation.interface.d.ts +29 -0
  48. package/lib/services/dynamic-form.service.d.ts +12 -8
  49. package/package.json +1 -1
  50. package/public-api.d.ts +1 -1
  51. package/esm2022/lib/controls/index.mjs +0 -7
  52. package/esm2022/lib/models/classes/dynamic-form-field-base-component.mjs +0 -34
  53. package/esm2022/lib/models/types/dynamic-form-hook.type.mjs +0 -2
  54. package/lib/models/types/dynamic-form-hook.type.d.ts +0 -1
@@ -1,14 +1,12 @@
1
1
  import { NgClass, NgFor } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, Output } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
3
3
  import { ReactiveFormsModule } from '@angular/forms';
4
4
  import { DynamicFormService } from '../../services/dynamic-form.service';
5
5
  import { DynamicFormFieldComponent } from '../dynamic-form-field/dynamic-form-field.component';
6
6
  import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/forms";
8
7
  export class DynamicFormComponent {
9
8
  constructor() {
10
- this.ready = new EventEmitter();
11
- this.dynamicFormService = inject(DynamicFormService);
9
+ this.change = new EventEmitter();
12
10
  }
13
11
  /**
14
12
  * Get the formConfig as flat array.
@@ -16,10 +14,12 @@ export class DynamicFormComponent {
16
14
  get flatFormConfig() {
17
15
  return this.formConfig.reduce((acc, curr) => acc.concat(curr), []);
18
16
  }
19
- ngOnInit() {
20
- this.group = this.dynamicFormService.createFormGroup(this.formConfig);
21
- this.ready.emit(this.group);
22
- }
17
+ /**
18
+ * TrackBy Function for performance optimization
19
+ * @param _index
20
+ * @param field
21
+ * @returns
22
+ */
23
23
  trackByFn(_index, field) {
24
24
  return field.id;
25
25
  }
@@ -35,25 +35,31 @@ export class DynamicFormComponent {
35
35
  * Provides an Observable to listen to changes of a specific field in the form.
36
36
  *
37
37
  * @param name Name of the field
38
- * @returns Observable<any>
38
+ * @returns Observable<unknown>
39
39
  */
40
- onChange(name) {
40
+ onControlChange(name) {
41
41
  const field = this.group.get(name);
42
42
  if (!field) {
43
43
  throw new Error(`Cannot find a field with the name ${name} in the FormGroup`);
44
44
  }
45
45
  return field.valueChanges;
46
46
  }
47
+ onChange(event) {
48
+ this.change.emit(event);
49
+ }
47
50
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DynamicFormComponent, isStandalone: true, selector: "dynamic-form", inputs: { formConfig: "formConfig" }, outputs: { ready: "ready" }, providers: [DynamicFormService], ngImport: i0, template: "<form [formGroup]=\"group\"\n class=\"dynamic-form\">\n <div *ngFor=\"let row of formConfig\"\n class=\"dynamic-form-row\">\n <dynamic-form-field *ngFor=\"let field of row; trackBy: trackByFn\"\n class=\"dynamic-form-field\"\n [id]=\"field.id\"\n [hidden]=\"field.hidden\"\n [ngClass]=\"[field.type, 'form-field-width-'+field.width]\"\n [group]=\"group\"\n [model]=\"field\">\n </dynamic-form-field>\n </div>\n</form>", styles: [".dynamic-form{width:100%}.dynamic-form .dynamic-form-row{width:100%;display:flex}.dynamic-form .dynamic-form-row .dynamic-form-field{width:100%;margin:4px 0}.dynamic-form .dynamic-form-row .dynamic-form-field:not(:last-of-type){margin-right:12px}.dynamic-form .dynamic-form-row .dynamic-form-field.button{flex:0}.dynamic-form .dynamic-form-row .form-field-width-1{width:1%}.dynamic-form .dynamic-form-row .form-field-width-2{width:2%}.dynamic-form .dynamic-form-row .form-field-width-3{width:3%}.dynamic-form .dynamic-form-row .form-field-width-4{width:4%}.dynamic-form .dynamic-form-row .form-field-width-5{width:5%}.dynamic-form .dynamic-form-row .form-field-width-6{width:6%}.dynamic-form .dynamic-form-row .form-field-width-7{width:7%}.dynamic-form .dynamic-form-row .form-field-width-8{width:8%}.dynamic-form .dynamic-form-row .form-field-width-9{width:9%}.dynamic-form .dynamic-form-row .form-field-width-10{width:10%}.dynamic-form .dynamic-form-row .form-field-width-11{width:11%}.dynamic-form .dynamic-form-row .form-field-width-12{width:12%}.dynamic-form .dynamic-form-row .form-field-width-13{width:13%}.dynamic-form .dynamic-form-row .form-field-width-14{width:14%}.dynamic-form .dynamic-form-row .form-field-width-15{width:15%}.dynamic-form .dynamic-form-row .form-field-width-16{width:16%}.dynamic-form .dynamic-form-row .form-field-width-17{width:17%}.dynamic-form .dynamic-form-row .form-field-width-18{width:18%}.dynamic-form .dynamic-form-row .form-field-width-19{width:19%}.dynamic-form .dynamic-form-row .form-field-width-20{width:20%}.dynamic-form .dynamic-form-row .form-field-width-21{width:21%}.dynamic-form .dynamic-form-row .form-field-width-22{width:22%}.dynamic-form .dynamic-form-row .form-field-width-23{width:23%}.dynamic-form .dynamic-form-row .form-field-width-24{width:24%}.dynamic-form .dynamic-form-row .form-field-width-25{width:25%}.dynamic-form .dynamic-form-row .form-field-width-26{width:26%}.dynamic-form .dynamic-form-row .form-field-width-27{width:27%}.dynamic-form .dynamic-form-row .form-field-width-28{width:28%}.dynamic-form .dynamic-form-row .form-field-width-29{width:29%}.dynamic-form .dynamic-form-row .form-field-width-30{width:30%}.dynamic-form .dynamic-form-row .form-field-width-31{width:31%}.dynamic-form .dynamic-form-row .form-field-width-32{width:32%}.dynamic-form .dynamic-form-row .form-field-width-33{width:33%}.dynamic-form .dynamic-form-row .form-field-width-34{width:34%}.dynamic-form .dynamic-form-row .form-field-width-35{width:35%}.dynamic-form .dynamic-form-row .form-field-width-36{width:36%}.dynamic-form .dynamic-form-row .form-field-width-37{width:37%}.dynamic-form .dynamic-form-row .form-field-width-38{width:38%}.dynamic-form .dynamic-form-row .form-field-width-39{width:39%}.dynamic-form .dynamic-form-row .form-field-width-40{width:40%}.dynamic-form .dynamic-form-row .form-field-width-41{width:41%}.dynamic-form .dynamic-form-row .form-field-width-42{width:42%}.dynamic-form .dynamic-form-row .form-field-width-43{width:43%}.dynamic-form .dynamic-form-row .form-field-width-44{width:44%}.dynamic-form .dynamic-form-row .form-field-width-45{width:45%}.dynamic-form .dynamic-form-row .form-field-width-46{width:46%}.dynamic-form .dynamic-form-row .form-field-width-47{width:47%}.dynamic-form .dynamic-form-row .form-field-width-48{width:48%}.dynamic-form .dynamic-form-row .form-field-width-49{width:49%}.dynamic-form .dynamic-form-row .form-field-width-50{width:50%}.dynamic-form .dynamic-form-row .form-field-width-51{width:51%}.dynamic-form .dynamic-form-row .form-field-width-52{width:52%}.dynamic-form .dynamic-form-row .form-field-width-53{width:53%}.dynamic-form .dynamic-form-row .form-field-width-54{width:54%}.dynamic-form .dynamic-form-row .form-field-width-55{width:55%}.dynamic-form .dynamic-form-row .form-field-width-56{width:56%}.dynamic-form .dynamic-form-row .form-field-width-57{width:57%}.dynamic-form .dynamic-form-row .form-field-width-58{width:58%}.dynamic-form .dynamic-form-row .form-field-width-59{width:59%}.dynamic-form .dynamic-form-row .form-field-width-60{width:60%}.dynamic-form .dynamic-form-row .form-field-width-61{width:61%}.dynamic-form .dynamic-form-row .form-field-width-62{width:62%}.dynamic-form .dynamic-form-row .form-field-width-63{width:63%}.dynamic-form .dynamic-form-row .form-field-width-64{width:64%}.dynamic-form .dynamic-form-row .form-field-width-65{width:65%}.dynamic-form .dynamic-form-row .form-field-width-66{width:66%}.dynamic-form .dynamic-form-row .form-field-width-67{width:67%}.dynamic-form .dynamic-form-row .form-field-width-68{width:68%}.dynamic-form .dynamic-form-row .form-field-width-69{width:69%}.dynamic-form .dynamic-form-row .form-field-width-70{width:70%}.dynamic-form .dynamic-form-row .form-field-width-71{width:71%}.dynamic-form .dynamic-form-row .form-field-width-72{width:72%}.dynamic-form .dynamic-form-row .form-field-width-73{width:73%}.dynamic-form .dynamic-form-row .form-field-width-74{width:74%}.dynamic-form .dynamic-form-row .form-field-width-75{width:75%}.dynamic-form .dynamic-form-row .form-field-width-76{width:76%}.dynamic-form .dynamic-form-row .form-field-width-77{width:77%}.dynamic-form .dynamic-form-row .form-field-width-78{width:78%}.dynamic-form .dynamic-form-row .form-field-width-79{width:79%}.dynamic-form .dynamic-form-row .form-field-width-80{width:80%}.dynamic-form .dynamic-form-row .form-field-width-81{width:81%}.dynamic-form .dynamic-form-row .form-field-width-82{width:82%}.dynamic-form .dynamic-form-row .form-field-width-83{width:83%}.dynamic-form .dynamic-form-row .form-field-width-84{width:84%}.dynamic-form .dynamic-form-row .form-field-width-85{width:85%}.dynamic-form .dynamic-form-row .form-field-width-86{width:86%}.dynamic-form .dynamic-form-row .form-field-width-87{width:87%}.dynamic-form .dynamic-form-row .form-field-width-88{width:88%}.dynamic-form .dynamic-form-row .form-field-width-89{width:89%}.dynamic-form .dynamic-form-row .form-field-width-90{width:90%}.dynamic-form .dynamic-form-row .form-field-width-91{width:91%}.dynamic-form .dynamic-form-row .form-field-width-92{width:92%}.dynamic-form .dynamic-form-row .form-field-width-93{width:93%}.dynamic-form .dynamic-form-row .form-field-width-94{width:94%}.dynamic-form .dynamic-form-row .form-field-width-95{width:95%}.dynamic-form .dynamic-form-row .form-field-width-96{width:96%}.dynamic-form .dynamic-form-row .form-field-width-97{width:97%}.dynamic-form .dynamic-form-row .form-field-width-98{width:98%}.dynamic-form .dynamic-form-row .form-field-width-99{width:99%}.dynamic-form .dynamic-form-row .form-field-width-100{width:100%}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DynamicFormFieldComponent, selector: "dynamic-form-field", inputs: ["model", "group"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DynamicFormComponent, isStandalone: true, selector: "dynamic-form", inputs: { group: "group", formConfig: "formConfig" }, outputs: { change: "change" }, providers: [DynamicFormService], ngImport: i0, template: "<div *ngFor=\"let row of formConfig\"\n class=\"dynamic-form-row\">\n <dynamic-form-field *ngFor=\"let field of row; trackBy: trackByFn\"\n class=\"dynamic-form-field\"\n [id]=\"field.id\"\n [hidden]=\"field.hidden\"\n [ngClass]=\"[field.type, 'form-field-width-' + field.width]\"\n [group]=\"group\"\n [model]=\"field\"\n (change)=\"onChange($event)\">\n </dynamic-form-field>\n</div>", styles: [".dynamic-form-row{display:flex}.dynamic-form-row .dynamic-form-field{width:100%;margin:4px 0}.dynamic-form-row .dynamic-form-field:not(:last-of-type){margin-right:12px}.dynamic-form-row .dynamic-form-field.button{flex:0}.dynamic-form-row .form-field-width-1{width:1%}.dynamic-form-row .form-field-width-2{width:2%}.dynamic-form-row .form-field-width-3{width:3%}.dynamic-form-row .form-field-width-4{width:4%}.dynamic-form-row .form-field-width-5{width:5%}.dynamic-form-row .form-field-width-6{width:6%}.dynamic-form-row .form-field-width-7{width:7%}.dynamic-form-row .form-field-width-8{width:8%}.dynamic-form-row .form-field-width-9{width:9%}.dynamic-form-row .form-field-width-10{width:10%}.dynamic-form-row .form-field-width-11{width:11%}.dynamic-form-row .form-field-width-12{width:12%}.dynamic-form-row .form-field-width-13{width:13%}.dynamic-form-row .form-field-width-14{width:14%}.dynamic-form-row .form-field-width-15{width:15%}.dynamic-form-row .form-field-width-16{width:16%}.dynamic-form-row .form-field-width-17{width:17%}.dynamic-form-row .form-field-width-18{width:18%}.dynamic-form-row .form-field-width-19{width:19%}.dynamic-form-row .form-field-width-20{width:20%}.dynamic-form-row .form-field-width-21{width:21%}.dynamic-form-row .form-field-width-22{width:22%}.dynamic-form-row .form-field-width-23{width:23%}.dynamic-form-row .form-field-width-24{width:24%}.dynamic-form-row .form-field-width-25{width:25%}.dynamic-form-row .form-field-width-26{width:26%}.dynamic-form-row .form-field-width-27{width:27%}.dynamic-form-row .form-field-width-28{width:28%}.dynamic-form-row .form-field-width-29{width:29%}.dynamic-form-row .form-field-width-30{width:30%}.dynamic-form-row .form-field-width-31{width:31%}.dynamic-form-row .form-field-width-32{width:32%}.dynamic-form-row .form-field-width-33{width:33%}.dynamic-form-row .form-field-width-34{width:34%}.dynamic-form-row .form-field-width-35{width:35%}.dynamic-form-row .form-field-width-36{width:36%}.dynamic-form-row .form-field-width-37{width:37%}.dynamic-form-row .form-field-width-38{width:38%}.dynamic-form-row .form-field-width-39{width:39%}.dynamic-form-row .form-field-width-40{width:40%}.dynamic-form-row .form-field-width-41{width:41%}.dynamic-form-row .form-field-width-42{width:42%}.dynamic-form-row .form-field-width-43{width:43%}.dynamic-form-row .form-field-width-44{width:44%}.dynamic-form-row .form-field-width-45{width:45%}.dynamic-form-row .form-field-width-46{width:46%}.dynamic-form-row .form-field-width-47{width:47%}.dynamic-form-row .form-field-width-48{width:48%}.dynamic-form-row .form-field-width-49{width:49%}.dynamic-form-row .form-field-width-50{width:50%}.dynamic-form-row .form-field-width-51{width:51%}.dynamic-form-row .form-field-width-52{width:52%}.dynamic-form-row .form-field-width-53{width:53%}.dynamic-form-row .form-field-width-54{width:54%}.dynamic-form-row .form-field-width-55{width:55%}.dynamic-form-row .form-field-width-56{width:56%}.dynamic-form-row .form-field-width-57{width:57%}.dynamic-form-row .form-field-width-58{width:58%}.dynamic-form-row .form-field-width-59{width:59%}.dynamic-form-row .form-field-width-60{width:60%}.dynamic-form-row .form-field-width-61{width:61%}.dynamic-form-row .form-field-width-62{width:62%}.dynamic-form-row .form-field-width-63{width:63%}.dynamic-form-row .form-field-width-64{width:64%}.dynamic-form-row .form-field-width-65{width:65%}.dynamic-form-row .form-field-width-66{width:66%}.dynamic-form-row .form-field-width-67{width:67%}.dynamic-form-row .form-field-width-68{width:68%}.dynamic-form-row .form-field-width-69{width:69%}.dynamic-form-row .form-field-width-70{width:70%}.dynamic-form-row .form-field-width-71{width:71%}.dynamic-form-row .form-field-width-72{width:72%}.dynamic-form-row .form-field-width-73{width:73%}.dynamic-form-row .form-field-width-74{width:74%}.dynamic-form-row .form-field-width-75{width:75%}.dynamic-form-row .form-field-width-76{width:76%}.dynamic-form-row .form-field-width-77{width:77%}.dynamic-form-row .form-field-width-78{width:78%}.dynamic-form-row .form-field-width-79{width:79%}.dynamic-form-row .form-field-width-80{width:80%}.dynamic-form-row .form-field-width-81{width:81%}.dynamic-form-row .form-field-width-82{width:82%}.dynamic-form-row .form-field-width-83{width:83%}.dynamic-form-row .form-field-width-84{width:84%}.dynamic-form-row .form-field-width-85{width:85%}.dynamic-form-row .form-field-width-86{width:86%}.dynamic-form-row .form-field-width-87{width:87%}.dynamic-form-row .form-field-width-88{width:88%}.dynamic-form-row .form-field-width-89{width:89%}.dynamic-form-row .form-field-width-90{width:90%}.dynamic-form-row .form-field-width-91{width:91%}.dynamic-form-row .form-field-width-92{width:92%}.dynamic-form-row .form-field-width-93{width:93%}.dynamic-form-row .form-field-width-94{width:94%}.dynamic-form-row .form-field-width-95{width:95%}.dynamic-form-row .form-field-width-96{width:96%}.dynamic-form-row .form-field-width-97{width:97%}.dynamic-form-row .form-field-width-98{width:98%}.dynamic-form-row .form-field-width-99{width:99%}.dynamic-form-row .form-field-width-100{width:100%}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DynamicFormFieldComponent, selector: "dynamic-form-field", inputs: ["model", "group"], outputs: ["change"] }, { kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
49
52
  }
50
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicFormComponent, decorators: [{
51
54
  type: Component,
52
- args: [{ standalone: true, imports: [NgFor, NgClass, DynamicFormFieldComponent, ReactiveFormsModule], selector: 'dynamic-form', providers: [DynamicFormService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form [formGroup]=\"group\"\n class=\"dynamic-form\">\n <div *ngFor=\"let row of formConfig\"\n class=\"dynamic-form-row\">\n <dynamic-form-field *ngFor=\"let field of row; trackBy: trackByFn\"\n class=\"dynamic-form-field\"\n [id]=\"field.id\"\n [hidden]=\"field.hidden\"\n [ngClass]=\"[field.type, 'form-field-width-'+field.width]\"\n [group]=\"group\"\n [model]=\"field\">\n </dynamic-form-field>\n </div>\n</form>", styles: [".dynamic-form{width:100%}.dynamic-form .dynamic-form-row{width:100%;display:flex}.dynamic-form .dynamic-form-row .dynamic-form-field{width:100%;margin:4px 0}.dynamic-form .dynamic-form-row .dynamic-form-field:not(:last-of-type){margin-right:12px}.dynamic-form .dynamic-form-row .dynamic-form-field.button{flex:0}.dynamic-form .dynamic-form-row .form-field-width-1{width:1%}.dynamic-form .dynamic-form-row .form-field-width-2{width:2%}.dynamic-form .dynamic-form-row .form-field-width-3{width:3%}.dynamic-form .dynamic-form-row .form-field-width-4{width:4%}.dynamic-form .dynamic-form-row .form-field-width-5{width:5%}.dynamic-form .dynamic-form-row .form-field-width-6{width:6%}.dynamic-form .dynamic-form-row .form-field-width-7{width:7%}.dynamic-form .dynamic-form-row .form-field-width-8{width:8%}.dynamic-form .dynamic-form-row .form-field-width-9{width:9%}.dynamic-form .dynamic-form-row .form-field-width-10{width:10%}.dynamic-form .dynamic-form-row .form-field-width-11{width:11%}.dynamic-form .dynamic-form-row .form-field-width-12{width:12%}.dynamic-form .dynamic-form-row .form-field-width-13{width:13%}.dynamic-form .dynamic-form-row .form-field-width-14{width:14%}.dynamic-form .dynamic-form-row .form-field-width-15{width:15%}.dynamic-form .dynamic-form-row .form-field-width-16{width:16%}.dynamic-form .dynamic-form-row .form-field-width-17{width:17%}.dynamic-form .dynamic-form-row .form-field-width-18{width:18%}.dynamic-form .dynamic-form-row .form-field-width-19{width:19%}.dynamic-form .dynamic-form-row .form-field-width-20{width:20%}.dynamic-form .dynamic-form-row .form-field-width-21{width:21%}.dynamic-form .dynamic-form-row .form-field-width-22{width:22%}.dynamic-form .dynamic-form-row .form-field-width-23{width:23%}.dynamic-form .dynamic-form-row .form-field-width-24{width:24%}.dynamic-form .dynamic-form-row .form-field-width-25{width:25%}.dynamic-form .dynamic-form-row .form-field-width-26{width:26%}.dynamic-form .dynamic-form-row .form-field-width-27{width:27%}.dynamic-form .dynamic-form-row .form-field-width-28{width:28%}.dynamic-form .dynamic-form-row .form-field-width-29{width:29%}.dynamic-form .dynamic-form-row .form-field-width-30{width:30%}.dynamic-form .dynamic-form-row .form-field-width-31{width:31%}.dynamic-form .dynamic-form-row .form-field-width-32{width:32%}.dynamic-form .dynamic-form-row .form-field-width-33{width:33%}.dynamic-form .dynamic-form-row .form-field-width-34{width:34%}.dynamic-form .dynamic-form-row .form-field-width-35{width:35%}.dynamic-form .dynamic-form-row .form-field-width-36{width:36%}.dynamic-form .dynamic-form-row .form-field-width-37{width:37%}.dynamic-form .dynamic-form-row .form-field-width-38{width:38%}.dynamic-form .dynamic-form-row .form-field-width-39{width:39%}.dynamic-form .dynamic-form-row .form-field-width-40{width:40%}.dynamic-form .dynamic-form-row .form-field-width-41{width:41%}.dynamic-form .dynamic-form-row .form-field-width-42{width:42%}.dynamic-form .dynamic-form-row .form-field-width-43{width:43%}.dynamic-form .dynamic-form-row .form-field-width-44{width:44%}.dynamic-form .dynamic-form-row .form-field-width-45{width:45%}.dynamic-form .dynamic-form-row .form-field-width-46{width:46%}.dynamic-form .dynamic-form-row .form-field-width-47{width:47%}.dynamic-form .dynamic-form-row .form-field-width-48{width:48%}.dynamic-form .dynamic-form-row .form-field-width-49{width:49%}.dynamic-form .dynamic-form-row .form-field-width-50{width:50%}.dynamic-form .dynamic-form-row .form-field-width-51{width:51%}.dynamic-form .dynamic-form-row .form-field-width-52{width:52%}.dynamic-form .dynamic-form-row .form-field-width-53{width:53%}.dynamic-form .dynamic-form-row .form-field-width-54{width:54%}.dynamic-form .dynamic-form-row .form-field-width-55{width:55%}.dynamic-form .dynamic-form-row .form-field-width-56{width:56%}.dynamic-form .dynamic-form-row .form-field-width-57{width:57%}.dynamic-form .dynamic-form-row .form-field-width-58{width:58%}.dynamic-form .dynamic-form-row .form-field-width-59{width:59%}.dynamic-form .dynamic-form-row .form-field-width-60{width:60%}.dynamic-form .dynamic-form-row .form-field-width-61{width:61%}.dynamic-form .dynamic-form-row .form-field-width-62{width:62%}.dynamic-form .dynamic-form-row .form-field-width-63{width:63%}.dynamic-form .dynamic-form-row .form-field-width-64{width:64%}.dynamic-form .dynamic-form-row .form-field-width-65{width:65%}.dynamic-form .dynamic-form-row .form-field-width-66{width:66%}.dynamic-form .dynamic-form-row .form-field-width-67{width:67%}.dynamic-form .dynamic-form-row .form-field-width-68{width:68%}.dynamic-form .dynamic-form-row .form-field-width-69{width:69%}.dynamic-form .dynamic-form-row .form-field-width-70{width:70%}.dynamic-form .dynamic-form-row .form-field-width-71{width:71%}.dynamic-form .dynamic-form-row .form-field-width-72{width:72%}.dynamic-form .dynamic-form-row .form-field-width-73{width:73%}.dynamic-form .dynamic-form-row .form-field-width-74{width:74%}.dynamic-form .dynamic-form-row .form-field-width-75{width:75%}.dynamic-form .dynamic-form-row .form-field-width-76{width:76%}.dynamic-form .dynamic-form-row .form-field-width-77{width:77%}.dynamic-form .dynamic-form-row .form-field-width-78{width:78%}.dynamic-form .dynamic-form-row .form-field-width-79{width:79%}.dynamic-form .dynamic-form-row .form-field-width-80{width:80%}.dynamic-form .dynamic-form-row .form-field-width-81{width:81%}.dynamic-form .dynamic-form-row .form-field-width-82{width:82%}.dynamic-form .dynamic-form-row .form-field-width-83{width:83%}.dynamic-form .dynamic-form-row .form-field-width-84{width:84%}.dynamic-form .dynamic-form-row .form-field-width-85{width:85%}.dynamic-form .dynamic-form-row .form-field-width-86{width:86%}.dynamic-form .dynamic-form-row .form-field-width-87{width:87%}.dynamic-form .dynamic-form-row .form-field-width-88{width:88%}.dynamic-form .dynamic-form-row .form-field-width-89{width:89%}.dynamic-form .dynamic-form-row .form-field-width-90{width:90%}.dynamic-form .dynamic-form-row .form-field-width-91{width:91%}.dynamic-form .dynamic-form-row .form-field-width-92{width:92%}.dynamic-form .dynamic-form-row .form-field-width-93{width:93%}.dynamic-form .dynamic-form-row .form-field-width-94{width:94%}.dynamic-form .dynamic-form-row .form-field-width-95{width:95%}.dynamic-form .dynamic-form-row .form-field-width-96{width:96%}.dynamic-form .dynamic-form-row .form-field-width-97{width:97%}.dynamic-form .dynamic-form-row .form-field-width-98{width:98%}.dynamic-form .dynamic-form-row .form-field-width-99{width:99%}.dynamic-form .dynamic-form-row .form-field-width-100{width:100%}\n"] }]
53
- }], propDecorators: { formConfig: [{
55
+ args: [{ standalone: true, imports: [NgFor, NgClass, DynamicFormFieldComponent, ReactiveFormsModule], selector: 'dynamic-form', providers: [DynamicFormService], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngFor=\"let row of formConfig\"\n class=\"dynamic-form-row\">\n <dynamic-form-field *ngFor=\"let field of row; trackBy: trackByFn\"\n class=\"dynamic-form-field\"\n [id]=\"field.id\"\n [hidden]=\"field.hidden\"\n [ngClass]=\"[field.type, 'form-field-width-' + field.width]\"\n [group]=\"group\"\n [model]=\"field\"\n (change)=\"onChange($event)\">\n </dynamic-form-field>\n</div>", styles: [".dynamic-form-row{display:flex}.dynamic-form-row .dynamic-form-field{width:100%;margin:4px 0}.dynamic-form-row .dynamic-form-field:not(:last-of-type){margin-right:12px}.dynamic-form-row .dynamic-form-field.button{flex:0}.dynamic-form-row .form-field-width-1{width:1%}.dynamic-form-row .form-field-width-2{width:2%}.dynamic-form-row .form-field-width-3{width:3%}.dynamic-form-row .form-field-width-4{width:4%}.dynamic-form-row .form-field-width-5{width:5%}.dynamic-form-row .form-field-width-6{width:6%}.dynamic-form-row .form-field-width-7{width:7%}.dynamic-form-row .form-field-width-8{width:8%}.dynamic-form-row .form-field-width-9{width:9%}.dynamic-form-row .form-field-width-10{width:10%}.dynamic-form-row .form-field-width-11{width:11%}.dynamic-form-row .form-field-width-12{width:12%}.dynamic-form-row .form-field-width-13{width:13%}.dynamic-form-row .form-field-width-14{width:14%}.dynamic-form-row .form-field-width-15{width:15%}.dynamic-form-row .form-field-width-16{width:16%}.dynamic-form-row .form-field-width-17{width:17%}.dynamic-form-row .form-field-width-18{width:18%}.dynamic-form-row .form-field-width-19{width:19%}.dynamic-form-row .form-field-width-20{width:20%}.dynamic-form-row .form-field-width-21{width:21%}.dynamic-form-row .form-field-width-22{width:22%}.dynamic-form-row .form-field-width-23{width:23%}.dynamic-form-row .form-field-width-24{width:24%}.dynamic-form-row .form-field-width-25{width:25%}.dynamic-form-row .form-field-width-26{width:26%}.dynamic-form-row .form-field-width-27{width:27%}.dynamic-form-row .form-field-width-28{width:28%}.dynamic-form-row .form-field-width-29{width:29%}.dynamic-form-row .form-field-width-30{width:30%}.dynamic-form-row .form-field-width-31{width:31%}.dynamic-form-row .form-field-width-32{width:32%}.dynamic-form-row .form-field-width-33{width:33%}.dynamic-form-row .form-field-width-34{width:34%}.dynamic-form-row .form-field-width-35{width:35%}.dynamic-form-row .form-field-width-36{width:36%}.dynamic-form-row .form-field-width-37{width:37%}.dynamic-form-row .form-field-width-38{width:38%}.dynamic-form-row .form-field-width-39{width:39%}.dynamic-form-row .form-field-width-40{width:40%}.dynamic-form-row .form-field-width-41{width:41%}.dynamic-form-row .form-field-width-42{width:42%}.dynamic-form-row .form-field-width-43{width:43%}.dynamic-form-row .form-field-width-44{width:44%}.dynamic-form-row .form-field-width-45{width:45%}.dynamic-form-row .form-field-width-46{width:46%}.dynamic-form-row .form-field-width-47{width:47%}.dynamic-form-row .form-field-width-48{width:48%}.dynamic-form-row .form-field-width-49{width:49%}.dynamic-form-row .form-field-width-50{width:50%}.dynamic-form-row .form-field-width-51{width:51%}.dynamic-form-row .form-field-width-52{width:52%}.dynamic-form-row .form-field-width-53{width:53%}.dynamic-form-row .form-field-width-54{width:54%}.dynamic-form-row .form-field-width-55{width:55%}.dynamic-form-row .form-field-width-56{width:56%}.dynamic-form-row .form-field-width-57{width:57%}.dynamic-form-row .form-field-width-58{width:58%}.dynamic-form-row .form-field-width-59{width:59%}.dynamic-form-row .form-field-width-60{width:60%}.dynamic-form-row .form-field-width-61{width:61%}.dynamic-form-row .form-field-width-62{width:62%}.dynamic-form-row .form-field-width-63{width:63%}.dynamic-form-row .form-field-width-64{width:64%}.dynamic-form-row .form-field-width-65{width:65%}.dynamic-form-row .form-field-width-66{width:66%}.dynamic-form-row .form-field-width-67{width:67%}.dynamic-form-row .form-field-width-68{width:68%}.dynamic-form-row .form-field-width-69{width:69%}.dynamic-form-row .form-field-width-70{width:70%}.dynamic-form-row .form-field-width-71{width:71%}.dynamic-form-row .form-field-width-72{width:72%}.dynamic-form-row .form-field-width-73{width:73%}.dynamic-form-row .form-field-width-74{width:74%}.dynamic-form-row .form-field-width-75{width:75%}.dynamic-form-row .form-field-width-76{width:76%}.dynamic-form-row .form-field-width-77{width:77%}.dynamic-form-row .form-field-width-78{width:78%}.dynamic-form-row .form-field-width-79{width:79%}.dynamic-form-row .form-field-width-80{width:80%}.dynamic-form-row .form-field-width-81{width:81%}.dynamic-form-row .form-field-width-82{width:82%}.dynamic-form-row .form-field-width-83{width:83%}.dynamic-form-row .form-field-width-84{width:84%}.dynamic-form-row .form-field-width-85{width:85%}.dynamic-form-row .form-field-width-86{width:86%}.dynamic-form-row .form-field-width-87{width:87%}.dynamic-form-row .form-field-width-88{width:88%}.dynamic-form-row .form-field-width-89{width:89%}.dynamic-form-row .form-field-width-90{width:90%}.dynamic-form-row .form-field-width-91{width:91%}.dynamic-form-row .form-field-width-92{width:92%}.dynamic-form-row .form-field-width-93{width:93%}.dynamic-form-row .form-field-width-94{width:94%}.dynamic-form-row .form-field-width-95{width:95%}.dynamic-form-row .form-field-width-96{width:96%}.dynamic-form-row .form-field-width-97{width:97%}.dynamic-form-row .form-field-width-98{width:98%}.dynamic-form-row .form-field-width-99{width:99%}.dynamic-form-row .form-field-width-100{width:100%}\n"] }]
56
+ }], propDecorators: { group: [{
57
+ type: Input,
58
+ args: [{ required: true }]
59
+ }], formConfig: [{
54
60
  type: Input,
55
61
  args: [{ required: true }]
56
- }], ready: [{
62
+ }], change: [{
57
63
  type: Output
58
64
  }] } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1keW5hbWljLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWR5bmFtaWMtZm9ybS9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSxtQkFBbUIsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUl2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7O0FBVy9GLE1BQU0sT0FBTyxvQkFBb0I7SUFUakM7UUFZWSxVQUFLLEdBQW1DLElBQUksWUFBWSxFQUFFLENBQUM7UUFFN0QsdUJBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0E2Q3pEO0lBekNDOztPQUVHO0lBQ0gsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVNLFNBQVMsQ0FBQyxNQUFjLEVBQUUsS0FBNEI7UUFDM0QsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZLENBQWMscUJBQXFCLEdBQUcsSUFBSTtRQUMzRCxNQUFNLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFFdEYsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksUUFBUSxDQUFDLElBQVk7UUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbkMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLElBQUksbUJBQW1CLENBQUMsQ0FBQztTQUMvRTtRQUVELE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQztJQUM1QixDQUFDOytHQWpEVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiw4SEFIcEIsQ0FBQyxrQkFBa0IsQ0FBQywwQkNmakMsNmNBYU8sZ2dOREZLLEtBQUssbUhBQUUsT0FBTyxvRkFBRSx5QkFBeUIsMEZBQUUsbUJBQW1COzs0RkFPN0Qsb0JBQW9CO2tCQVRoQyxTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsbUJBQW1CLENBQUMsWUFDL0QsY0FBYyxhQUdiLENBQUMsa0JBQWtCLENBQUMsbUJBQ2QsdUJBQXVCLENBQUMsTUFBTTs4QkFHcEIsVUFBVTtzQkFBcEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRWYsS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IER5bmFtaWNGb3JtRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC1tb2RlbCc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy90eXBlcy9keW5hbWljLWZvcm0tY29uZmlnLnR5cGUnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZHluYW1pYy1mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uL2R5bmFtaWMtZm9ybS1maWVsZC9keW5hbWljLWZvcm0tZmllbGQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0ZvciwgTmdDbGFzcywgRHluYW1pY0Zvcm1GaWVsZENvbXBvbmVudCwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHNlbGVjdG9yOiAnZHluYW1pYy1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICdkeW5hbWljLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbRHluYW1pY0Zvcm1TZXJ2aWNlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBmb3JtQ29uZmlnITogRHluYW1pY0Zvcm1Db25maWc7XG5cbiAgQE91dHB1dCgpIHJlYWR5OiBFdmVudEVtaXR0ZXI8VW50eXBlZEZvcm1Hcm91cD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHJpdmF0ZSBkeW5hbWljRm9ybVNlcnZpY2UgPSBpbmplY3QoRHluYW1pY0Zvcm1TZXJ2aWNlKTtcblxuICBwdWJsaWMgZ3JvdXAhOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZvcm1Db25maWcgYXMgZmxhdCBhcnJheS5cbiAgICovXG4gIHB1YmxpYyBnZXQgZmxhdEZvcm1Db25maWcoKTogRHluYW1pY0Zvcm1GaWVsZE1vZGVsW10ge1xuICAgIHJldHVybiB0aGlzLmZvcm1Db25maWcucmVkdWNlKChhY2MsIGN1cnIpID0+IGFjYy5jb25jYXQoY3VyciksIFtdKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ3JvdXAgPSB0aGlzLmR5bmFtaWNGb3JtU2VydmljZS5jcmVhdGVGb3JtR3JvdXAodGhpcy5mb3JtQ29uZmlnKTtcbiAgICB0aGlzLnJlYWR5LmVtaXQodGhpcy5ncm91cCk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeUZuKF9pbmRleDogbnVtYmVyLCBmaWVsZDogRHluYW1pY0Zvcm1GaWVsZE1vZGVsKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZmllbGQuaWQ7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBmb3JtLlxuICAgKiBAcGFyYW0gaW5jbHVkZURpc2FibGVkRmllbGRzIEluY2x1ZGUgdGhlIGRpc2FibGVkIGZpZWxkcyBvZiB0aGUgZm9ybSwgaXMgZW5hYmxlZCBieSBkZWZhdWx0XG4gICAqL1xuICBwdWJsaWMgZ2V0Rm9ybVZhbHVlPFQgPSB1bmtub3duPihpbmNsdWRlRGlzYWJsZWRGaWVsZHMgPSB0cnVlKTogVCB7XG4gICAgY29uc3QgZm9ybVZhbHVlID0gaW5jbHVkZURpc2FibGVkRmllbGRzID8gdGhpcy5ncm91cC5nZXRSYXdWYWx1ZSgpIDogdGhpcy5ncm91cC52YWx1ZTtcblxuICAgIHJldHVybiBmb3JtVmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgYW4gT2JzZXJ2YWJsZSB0byBsaXN0ZW4gdG8gY2hhbmdlcyBvZiBhIHNwZWNpZmljIGZpZWxkIGluIHRoZSBmb3JtLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBOYW1lIG9mIHRoZSBmaWVsZFxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cbiAgICovXG4gIHB1YmxpYyBvbkNoYW5nZShuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGZpZWxkID0gdGhpcy5ncm91cC5nZXQobmFtZSk7XG5cbiAgICBpZiAoIWZpZWxkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIGEgZmllbGQgd2l0aCB0aGUgbmFtZSAke25hbWV9IGluIHRoZSBGb3JtR3JvdXBgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmllbGQudmFsdWVDaGFuZ2VzO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImdyb3VwXCJcbiAgY2xhc3M9XCJkeW5hbWljLWZvcm1cIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgcm93IG9mIGZvcm1Db25maWdcIlxuICAgIGNsYXNzPVwiZHluYW1pYy1mb3JtLXJvd1wiPlxuICAgIDxkeW5hbWljLWZvcm0tZmllbGQgKm5nRm9yPVwibGV0IGZpZWxkIG9mIHJvdzsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgIGNsYXNzPVwiZHluYW1pYy1mb3JtLWZpZWxkXCJcbiAgICAgIFtpZF09XCJmaWVsZC5pZFwiXG4gICAgICBbaGlkZGVuXT1cImZpZWxkLmhpZGRlblwiXG4gICAgICBbbmdDbGFzc109XCJbZmllbGQudHlwZSwgJ2Zvcm0tZmllbGQtd2lkdGgtJytmaWVsZC53aWR0aF1cIlxuICAgICAgW2dyb3VwXT1cImdyb3VwXCJcbiAgICAgIFttb2RlbF09XCJmaWVsZFwiPlxuICAgIDwvZHluYW1pYy1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbjwvZm9ybT4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1keW5hbWljLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9keW5hbWljLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWR5bmFtaWMtZm9ybS9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtL2R5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLG1CQUFtQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBS3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOztBQVcvRixNQUFNLE9BQU8sb0JBQW9CO0lBVGpDO1FBYVksV0FBTSxHQUF3QyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBZ0Q1RTtJQTlDQzs7T0FFRztJQUNILElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxTQUFTLENBQUMsTUFBYyxFQUFFLEtBQTRCO1FBQzNELE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWSxDQUFjLHFCQUFxQixHQUFHLElBQUk7UUFDM0QsTUFBTSxTQUFTLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBRXRGLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGVBQWUsQ0FBQyxJQUFZO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxJQUFJLG1CQUFtQixDQUFDLENBQUM7U0FDL0U7UUFFRCxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUM7SUFDNUIsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUE0QjtRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDOytHQW5EVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixnSkFIcEIsQ0FBQyxrQkFBa0IsQ0FBQywwQkNoQmpDLDJaQVdNLDRpS0RDTSxLQUFLLG1IQUFFLE9BQU8sb0ZBQUUseUJBQXlCLCtHQUFFLG1CQUFtQjs7NEZBTzdELG9CQUFvQjtrQkFUaEMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLG1CQUFtQixDQUFDLFlBQy9ELGNBQWMsYUFHYixDQUFDLGtCQUFrQixDQUFDLG1CQUNkLHVCQUF1QixDQUFDLE1BQU07OEJBR3BCLEtBQUs7c0JBQS9CLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLFVBQVU7c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUVmLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IER5bmFtaWNGb3JtRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC1tb2RlbCc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkRXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW50ZXJmYWNlcy9keW5hbWljLWZvcm0tZmllbGQtZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3R5cGVzL2R5bmFtaWMtZm9ybS1jb25maWcudHlwZSc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9keW5hbWljLWZvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vZHluYW1pYy1mb3JtLWZpZWxkL2R5bmFtaWMtZm9ybS1maWVsZC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nRm9yLCBOZ0NsYXNzLCBEeW5hbWljRm9ybUZpZWxkQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdkeW5hbWljLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJ2R5bmFtaWMtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtEeW5hbWljRm9ybVNlcnZpY2VdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybUNvbXBvbmVudCB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGdyb3VwITogVW50eXBlZEZvcm1Hcm91cDtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgZm9ybUNvbmZpZyE6IER5bmFtaWNGb3JtQ29uZmlnO1xuXG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybUZpZWxkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZvcm1Db25maWcgYXMgZmxhdCBhcnJheS5cbiAgICovXG4gIHB1YmxpYyBnZXQgZmxhdEZvcm1Db25maWcoKTogRHluYW1pY0Zvcm1GaWVsZE1vZGVsW10ge1xuICAgIHJldHVybiB0aGlzLmZvcm1Db25maWcucmVkdWNlKChhY2MsIGN1cnIpID0+IGFjYy5jb25jYXQoY3VyciksIFtdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFja0J5IEZ1bmN0aW9uIGZvciBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25cbiAgICogQHBhcmFtIF9pbmRleFxuICAgKiBAcGFyYW0gZmllbGRcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyB0cmFja0J5Rm4oX2luZGV4OiBudW1iZXIsIGZpZWxkOiBEeW5hbWljRm9ybUZpZWxkTW9kZWwpOiBzdHJpbmcge1xuICAgIHJldHVybiBmaWVsZC5pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIGZvcm0uXG4gICAqIEBwYXJhbSBpbmNsdWRlRGlzYWJsZWRGaWVsZHMgSW5jbHVkZSB0aGUgZGlzYWJsZWQgZmllbGRzIG9mIHRoZSBmb3JtLCBpcyBlbmFibGVkIGJ5IGRlZmF1bHRcbiAgICovXG4gIHB1YmxpYyBnZXRGb3JtVmFsdWU8VCA9IHVua25vd24+KGluY2x1ZGVEaXNhYmxlZEZpZWxkcyA9IHRydWUpOiBUIHtcbiAgICBjb25zdCBmb3JtVmFsdWUgPSBpbmNsdWRlRGlzYWJsZWRGaWVsZHMgPyB0aGlzLmdyb3VwLmdldFJhd1ZhbHVlKCkgOiB0aGlzLmdyb3VwLnZhbHVlO1xuXG4gICAgcmV0dXJuIGZvcm1WYWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBhbiBPYnNlcnZhYmxlIHRvIGxpc3RlbiB0byBjaGFuZ2VzIG9mIGEgc3BlY2lmaWMgZmllbGQgaW4gdGhlIGZvcm0uXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIE5hbWUgb2YgdGhlIGZpZWxkXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8dW5rbm93bj5cbiAgICovXG4gIHB1YmxpYyBvbkNvbnRyb2xDaGFuZ2UobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgY29uc3QgZmllbGQgPSB0aGlzLmdyb3VwLmdldChuYW1lKTtcblxuICAgIGlmICghZmllbGQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgYSBmaWVsZCB3aXRoIHRoZSBuYW1lICR7bmFtZX0gaW4gdGhlIEZvcm1Hcm91cGApO1xuICAgIH1cblxuICAgIHJldHVybiBmaWVsZC52YWx1ZUNoYW5nZXM7XG4gIH1cblxuICBwdWJsaWMgb25DaGFuZ2UoZXZlbnQ6IER5bmFtaWNGb3JtRmllbGRFdmVudCkge1xuICAgIHRoaXMuY2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0Zvcj1cImxldCByb3cgb2YgZm9ybUNvbmZpZ1wiXG4gIGNsYXNzPVwiZHluYW1pYy1mb3JtLXJvd1wiPlxuICA8ZHluYW1pYy1mb3JtLWZpZWxkICpuZ0Zvcj1cImxldCBmaWVsZCBvZiByb3c7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gICAgY2xhc3M9XCJkeW5hbWljLWZvcm0tZmllbGRcIlxuICAgIFtpZF09XCJmaWVsZC5pZFwiXG4gICAgW2hpZGRlbl09XCJmaWVsZC5oaWRkZW5cIlxuICAgIFtuZ0NsYXNzXT1cIltmaWVsZC50eXBlLCAnZm9ybS1maWVsZC13aWR0aC0nICsgZmllbGQud2lkdGhdXCJcbiAgICBbZ3JvdXBdPVwiZ3JvdXBcIlxuICAgIFttb2RlbF09XCJmaWVsZFwiXG4gICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCI+XG4gIDwvZHluYW1pYy1mb3JtLWZpZWxkPlxuPC9kaXY+Il19
@@ -1,13 +1,17 @@
1
1
  import { NgClass } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, inject, Input, ViewChild, ViewContainerRef } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, inject, Input, Output, ViewChild, ViewContainerRef } from '@angular/core';
3
3
  import { ReactiveFormsModule } from '@angular/forms';
4
4
  import { Subscription } from 'rxjs';
5
+ import { DynamicButtonTogglesComponent } from '../../controls/button-toggles/dynamic-button-toggles.component';
6
+ import { DYNAMIC_FORM_FIELD_BUTTON_TOGGLES } from '../../controls/button-toggles/dynamic-button-toggles.model';
5
7
  import { DynamicButtonComponent } from '../../controls/button/dynamic-button.component';
6
8
  import { DYNAMIC_FORM_FIELD_BUTTON } from '../../controls/button/dynamic-button.model';
7
9
  import { DynamicCheckboxComponent } from '../../controls/checkbox/dynamic-checkbox.component';
8
10
  import { DYNAMIC_FORM_FIELD_CHECKBOX } from '../../controls/checkbox/dynamic-checkbox.model';
9
11
  import { DynamicInputComponent } from '../../controls/input/dynamic-input.component';
10
12
  import { DYNAMIC_FORM_FIELD_INPUT } from '../../controls/input/dynamic-input.model';
13
+ import { DymamicRadioGroupComponent } from '../../controls/radio-group/dynamic-radio-group.component';
14
+ import { DYNAMIC_FORM_FIELD_RADIO_GROUP } from '../../controls/radio-group/dynamic-radio-group.model';
11
15
  import { DynamicReadonlyComponent } from '../../controls/readonly/dynamic-readonly.component';
12
16
  import { DYNAMIC_FORM_FIELD_READONLY } from '../../controls/readonly/dynamic-readonly.model';
13
17
  import { DynamicSelectComponent } from '../../controls/select/dynamic-select.component';
@@ -21,6 +25,7 @@ import * as i0 from "@angular/core";
21
25
  import * as i1 from "@angular/forms";
22
26
  export class DynamicFormFieldComponent {
23
27
  constructor() {
28
+ this.change = new EventEmitter();
24
29
  this._subs = new Subscription();
25
30
  this.dynamicFormService = inject(DynamicFormService);
26
31
  this.relationService = inject(DynamicFormRelationsService);
@@ -57,6 +62,10 @@ export class DynamicFormFieldComponent {
57
62
  return DynamicSelectComponent;
58
63
  case DYNAMIC_FORM_FIELD_BUTTON:
59
64
  return DynamicButtonComponent;
65
+ case DYNAMIC_FORM_FIELD_BUTTON_TOGGLES:
66
+ return DynamicButtonTogglesComponent;
67
+ case DYNAMIC_FORM_FIELD_RADIO_GROUP:
68
+ return DymamicRadioGroupComponent;
60
69
  default:
61
70
  console.warn(`Model of type 'dynamic-${this.model.type}' is not implemented yet. Add this type to dynamic-form-field.component.ts to add support`);
62
71
  return null;
@@ -67,6 +76,7 @@ export class DynamicFormFieldComponent {
67
76
  if (component != null) {
68
77
  let componentRef = this.componentViewContainer.createComponent(component);
69
78
  const componentInstance = componentRef.instance;
79
+ this._subs.add(componentInstance.change?.subscribe((event) => this.onChange(event)));
70
80
  componentInstance.group = this.group;
71
81
  componentInstance.model = this.model;
72
82
  }
@@ -76,7 +86,7 @@ export class DynamicFormFieldComponent {
76
86
  */
77
87
  setSubscriptions() {
78
88
  const model = this.model;
79
- // Subscribe to the value change inside the control to chagne the value inside the model as well
89
+ // Subscribe to the value change inside the control to change the value inside the model as well
80
90
  this._subs.add(this._control.valueChanges.subscribe((value) => this.onValueChange(value)));
81
91
  // Subscribe to the disabled change inside the model to change the disabled state of the FormControl
82
92
  this._subs.add(model.disabledChange.subscribe((disabled) => this.onDisabledChange(disabled)));
@@ -112,8 +122,14 @@ export class DynamicFormFieldComponent {
112
122
  onDisabledChange(disabled) {
113
123
  disabled ? this._control.disable() : this._control.enable();
114
124
  }
125
+ onChange(ev) {
126
+ this.change.emit(this.createDynamicFormEvent(ev, 'change'));
127
+ }
128
+ createDynamicFormEvent(event, type) {
129
+ return { event, type, control: this._control, form: this.group, model: this.model };
130
+ }
115
131
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DynamicFormFieldComponent, isStandalone: true, selector: "dynamic-form-field", inputs: { model: "model", group: "group" }, viewQueries: [{ propertyName: "componentViewContainer", first: true, predicate: ["componentViewContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div [formGroup]=\"group\"\n [ngClass]=\"['dynamic-form-field-container', 'dynamic-form-field-' + model.type]\">\n <ng-container #componentViewContainer></ng-container>\n</div>", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
132
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DynamicFormFieldComponent, isStandalone: true, selector: "dynamic-form-field", inputs: { model: "model", group: "group" }, outputs: { change: "change" }, viewQueries: [{ propertyName: "componentViewContainer", first: true, predicate: ["componentViewContainer"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div [formGroup]=\"group\"\n [ngClass]=\"['dynamic-form-field-container', 'dynamic-form-field-' + model.type]\">\n <ng-container #componentViewContainer></ng-container>\n</div>", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
117
133
  }
118
134
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicFormFieldComponent, decorators: [{
119
135
  type: Component,
@@ -125,5 +141,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
125
141
  type: Input
126
142
  }], group: [{
127
143
  type: Input
144
+ }], change: [{
145
+ type: Output
128
146
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1keW5hbWljLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1maWVsZC9keW5hbWljLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWR5bmFtaWMtZm9ybS9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLWZpZWxkL2R5bmFtaWMtZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUEyQixTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFFLG1CQUFtQixFQUF3QyxNQUFNLGdCQUFnQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDOUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDN0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDckYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDOUYsT0FBTyxFQUFFLDJCQUEy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SUFDSyxnQkFBZ0IsQ0FBQyxRQUFpQjtRQUN4QyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDOUQsQ0FBQzsrR0FwSFUseUJBQXlCO21HQUF6Qix5QkFBeUIsdU9BQ1MsZ0JBQWdCLDJDQy9CL0Qsb0xBR00sNENEc0JNLE9BQU8sbUZBQUUsbUJBQW1COzs0RkFLM0IseUJBQXlCO2tCQVByQyxTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxZQUM3QixvQkFBb0IsbUJBRWIsdUJBQXVCLENBQUMsTUFBTTs4QkFHZ0Msc0JBQXNCO3NCQUFwRyxTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRXBFLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBUeXBlLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRHluYW1pY0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2J1dHRvbi9keW5hbWljLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0ZJRUxEX0JVVFRPTiB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2J1dHRvbi9keW5hbWljLWJ1dHRvbi5tb2RlbCc7XG5pbXBvcnQgeyBEeW5hbWljQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb250cm9scy9jaGVja2JveC9keW5hbWljLWNoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEWU5BTUlDX0ZPUk1fRklFTERfQ0hFQ0tCT1ggfSBmcm9tICcuLi8uLi9jb250cm9scy9jaGVja2JveC9keW5hbWljLWNoZWNrYm94Lm1vZGVsJztcbmltcG9ydCB7IER5bmFtaWNJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2lucHV0L2R5bmFtaWMtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERZTkFNSUNfRk9STV9GSUVMRF9JTlBVVCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2lucHV0L2R5bmFtaWMtaW5wdXQubW9kZWwnO1xuaW1wb3J0IHsgRHluYW1pY1JlYWRvbmx5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udHJvbHMvcmVhZG9ubHkvZHluYW1pYy1yZWFkb25seS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0ZJRUxEX1JFQURPTkxZIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvcmVhZG9ubHkvZHluYW1pYy1yZWFkb25seS5tb2RlbCc7XG5pbXBvcnQgeyBEeW5hbWljU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udHJvbHMvc2VsZWN0L2R5bmFtaWMtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEWU5BTUlDX0ZPUk1fRklFTERfU0VMRUNUIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvc2VsZWN0L2R5bmFtaWMtc2VsZWN0Lm1vZGVsJztcbmltcG9ydCB7IER5bmFtaWNUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL3RleHRhcmVhL2R5bmFtaWMtdGV4dGFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IERZTkFNSUNfRk9STV9GSUVMRF9URVhUQVJFQSB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL3RleHRhcmVhL2R5bmFtaWMtdGV4dGFyZWEubW9kZWwnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZCB9IGZyb20gJy4uLy4uL21vZGVscy9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2xhc3Nlcy9keW5hbWljLWZvcm0tZmllbGQtbW9kZWwnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZFZhbHVlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2xhc3Nlcy9keW5hbWljLWZvcm0tZmllbGQtdmFsdWUtbW9kZWwnO1xuaW1wb3J0IHsgUmVsYXRlZEZvcm1Db250cm9scyB9IGZyb20gJy4uLy4uL21vZGVscy90eXBlcy9yZWxhdGVkLWZvcm0tY29udHJvbHMudHlwZSc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybVJlbGF0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9keW5hbWljLWZvcm0tcmVsYXRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZHluYW1pYy1mb3JtLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICBzZWxlY3RvcjogJ2R5bmFtaWMtZm9ybS1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnZHluYW1pYy1mb3JtLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0Zvcm1GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnY29tcG9uZW50Vmlld0NvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIGNvbXBvbmVudFZpZXdDb250YWluZXIhOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gIEBJbnB1dCgpIG1vZGVsITogRHluYW1pY0Zvcm1GaWVsZE1vZGVsO1xuICBASW5wdXQoKSBncm91cCE6IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgcHJpdmF0ZSBfY29udHJvbCE6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgcHJpdmF0ZSBfc3VicyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwcml2YXRlIGR5bmFtaWNGb3JtU2VydmljZSA9IGluamVjdChEeW5hbWljRm9ybVNlcnZpY2UpO1xuICBwcml2YXRlIHJlbGF0aW9uU2VydmljZSA9IGluamVjdChEeW5hbWljRm9ybVJlbGF0aW9uc1NlcnZpY2UpO1xuXG4gIC8qKiBHZXQgdGhlIGluc3RhbmNlIG9mIGEgY29udHJvbCBjb21wb25lbnQgdXNpbmcgdGhlIGluamVjdGVkIGN1c3RvbSBtZXRob2Qgb3IgbG9jYWwgbWV0aG9kICovXG4gIHByaXZhdGUgZ2V0IGNvbXBvbmVudFR5cGUoKTogVHlwZTxEeW5hbWljRm9ybUZpZWxkPiB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmR5bmFtaWNGb3JtU2VydmljZS5nZXRDdXN0b21Db250cm9sQ29tcG9uZW50VHlwZSh0aGlzLm1vZGVsKSB8fCB0aGlzLmdldENvbnRyb2xDb21wb25lbnRUeXBlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ncm91cCkge1xuICAgICAgdGhpcy5fY29udHJvbCA9IHRoaXMuZ3JvdXAuZ2V0KHRoaXMubW9kZWwubmFtZSkgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuXG4gICAgICB0aGlzLmNyZWF0ZUZvcm1Db250cm9sQ29tcG9uZW50KCk7XG4gICAgICB0aGlzLnNldFN1YnNjcmlwdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogRmluZHMgdGhlIGluc3RhbmNlIG9mIGEgY29udHJvbCBjb21wb25lbnQgYnkgdHlwZVxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRDb250cm9sQ29tcG9uZW50VHlwZSgpOiBUeXBlPER5bmFtaWNGb3JtRmllbGQ+IHwgbnVsbCB7XG4gICAgc3dpdGNoICh0aGlzLm1vZGVsLnR5cGUpIHtcbiAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0ZJRUxEX0NIRUNLQk9YOlxuICAgICAgICByZXR1cm4gRHluYW1pY0NoZWNrYm94Q29tcG9uZW50O1xuICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fRklFTERfSU5QVVQ6XG4gICAgICAgIHJldHVybiBEeW5hbWljSW5wdXRDb21wb25lbnQ7XG4gICAgICBjYXNlIERZTkFNSUNfRk9STV9GSUVMRF9URVhUQVJFQTpcbiAgICAgICAgcmV0dXJuIER5bmFtaWNUZXh0YXJlYUNvbXBvbmVudDtcbiAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0ZJRUxEX1JFQURPTkxZOlxuICAgICAgICByZXR1cm4gRHluYW1pY1JlYWRvbmx5Q29tcG9uZW50O1xuICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fRklFTERfU0VMRUNUOlxuICAgICAgICByZXR1cm4gRHluYW1pY1NlbGVjdENvbXBvbmVudDtcbiAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0ZJRUxEX0JVVFRPTjpcbiAgICAgICAgcmV0dXJuIER5bmFtaWNCdXR0b25Db21wb25lbnQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYE1vZGVsIG9mIHR5cGUgJ2R5bmFtaWMtJHt0aGlzLm1vZGVsLnR5cGV9JyBpcyBub3QgaW1wbGVtZW50ZWQgeWV0LiBBZGQgdGhpcyB0eXBlIHRvIGR5bmFtaWMtZm9ybS1maWVsZC5jb21wb25lbnQudHMgdG8gYWRkIHN1cHBvcnRgXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRm9ybUNvbnRyb2xDb21wb25lbnQoKTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5jb21wb25lbnRUeXBlO1xuXG4gICAgaWYgKGNvbXBvbmVudCAhPSBudWxsKSB7XG4gICAgICBsZXQgY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRWaWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQpO1xuXG4gICAgICBjb25zdCBjb21wb25lbnRJbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcblxuICAgICAgY29tcG9uZW50SW5zdGFuY2UuZ3JvdXAgPSB0aGlzLmdyb3VwO1xuICAgICAgY29tcG9uZW50SW5zdGFuY2UubW9kZWwgPSB0aGlzLm1vZGVsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR1cCBhbGwgbmVjZXNzYXJ5IHN1YnNjcmlwdGlvbnMgb2YgdGhlIEZvcm1Db250cm9sXG4gICAqL1xuICBwcml2YXRlIHNldFN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLm1vZGVsIGFzIER5bmFtaWNGb3JtRmllbGRWYWx1ZU1vZGVsPHVua25vd24+O1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHRoZSB2YWx1ZSBjaGFuZ2UgaW5zaWRlIHRoZSBjb250cm9sIHRvIGNoYWduZSB0aGUgdmFsdWUgaW5zaWRlIHRoZSBtb2RlbCBhcyB3ZWxsXG4gICAgdGhpcy5fc3Vicy5hZGQodGhpcy5fY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5vblZhbHVlQ2hhbmdlKHZhbHVlKSkpO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBkaXNhYmxlZCBjaGFuZ2UgaW5zaWRlIHRoZSBtb2RlbCB0byBjaGFuZ2UgdGhlIGRpc2FibGVkIHN0YXRlIG9mIHRoZSBGb3JtQ29udHJvbFxuICAgIHRoaXMuX3N1YnMuYWRkKG1vZGVsLmRpc2FibGVkQ2hhbmdlLnN1YnNjcmliZSgoZGlzYWJsZWQpID0+IHRoaXMub25EaXNhYmxlZENoYW5nZShkaXNhYmxlZCkpKTtcblxuICAgIC8vIFNldHVwIHN1YnNjcmlwdGlvbnMgZm9yIGFueSBwb3NzaWJsZSByZWxhdGlvblxuICAgIGlmICh0aGlzLm1vZGVsLnJlbGF0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNldFVwUmVsYXRpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB1cCBhbGwgcmVsYXRpb25zIG9mIHRoZSBjdXJyZW50IG1vZGVsXG4gICAqL1xuICBwcml2YXRlIHNldFVwUmVsYXRpb25zKCk6IHZvaWQge1xuICAgIC8vIEFycmF5IG9mIGFsbCBGb3JtQ29udHJvbHMgdGhlIGN1cnJlbnQgbW9kZWwgaGFzIGEgcmVsYXRpb24gdG9cbiAgICBjb25zdCByZWxhdGVkRm9ybUNvbnRyb2xzOiBSZWxhdGVkRm9ybUNvbnRyb2xzID0gdGhpcy5yZWxhdGlvblNlcnZpY2UuZmluZFJlbGF0ZWRGb3JtRmllbGQodGhpcy5tb2RlbCwgdGhpcy5ncm91cCk7XG4gICAgY29uc3Qgc3VicyA9IHRoaXMucmVsYXRpb25TZXJ2aWNlLmdldFJlbGF0aW9uU3Vic2NyaXB0aW9ucyhyZWxhdGVkRm9ybUNvbnRyb2xzLCB0aGlzLm1vZGVsLCB0aGlzLl9jb250cm9sKTtcblxuICAgIC8vIEFkZCBhbGwgcmVsYXRpb25zIGFzIHN1YnNjcmlwdGlvbiB0byB0aGUgbWFpbiBTdWJzY3JpcHRpb24gb2JqZWN0XG4gICAgc3Vicy5mb3JFYWNoKChzdWIpID0+IHRoaXMuX3N1YnMuYWRkKHN1YikpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMgb2YgdGhlIGNvbnRyb2wgYW5kIHVwZGF0ZXMgdGhlIHZhbHVlIGluc2lkZSB0aGUgbW9kZWxcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBwcml2YXRlIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtRmllbGRWYWx1ZU1vZGVsICYmIHRoaXMubW9kZWwudmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLm1vZGVsLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMvZGlzYWJsZWQgdGhlIGNvbnRyb2wgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHBhcmFtZXRlci5cbiAgICogSXMgZmlyZWQgd2hlbiBkaXNhYmxlZCBzdGF0ZSBpcyBjaGFuZ2VkIGluc2lkZSB0aGUgbW9kZWwgYW5kIHNob3VsZCBub3QgYmUgZGlyZWN0bHkgdXNlZCBvdXRzaWRlIHRoaXMgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gZGlzYWJsZWRcbiAgICovXG4gIHByaXZhdGUgb25EaXNhYmxlZENoYW5nZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGRpc2FibGVkID8gdGhpcy5fY29udHJvbC5kaXNhYmxlKCkgOiB0aGlzLl9jb250cm9sLmVuYWJsZSgpO1xuICB9XG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZ3JvdXBcIlxuICBbbmdDbGFzc109XCJbJ2R5bmFtaWMtZm9ybS1maWVsZC1jb250YWluZXInLCAnZHluYW1pYy1mb3JtLWZpZWxkLScgKyBtb2RlbC50eXBlXVwiPlxuICA8bmctY29udGFpbmVyICNjb21wb25lbnRWaWV3Q29udGFpbmVyPjwvbmctY29udGFpbmVyPlxuPC9kaXY+Il19
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1keW5hbWljLWZvcm0vc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1maWVsZC9keW5hbWljLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWR5bmFtaWMtZm9ybS9zcmMvbGliL2NvbXBvbmVudHMvZHluYW1pYy1mb3JtLWZpZWxkL2R5bmFtaWMtZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUF3QyxNQUFNLGdCQUFnQixDQUFDO0FBQzNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDL0csT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDL0csT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDOUYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDN0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOENBQThDLENBQUM7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LHlCQUF5QjttR0FBekIseUJBQXlCLHNRQUNTLGdCQUFnQiwyQ0NoRC9ELG9MQUdNLDRDRHVDTSxPQUFPLG1GQUFFLG1CQUFtQjs7NEZBSzNCLHlCQUF5QjtrQkFQckMsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUMsWUFDN0Isb0JBQW9CLG1CQUViLHVCQUF1QixDQUFDLE1BQU07OEJBR2dDLHNCQUFzQjtzQkFBcEcsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVwRSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBUeXBlLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IER5bmFtaWNCdXR0b25Ub2dnbGVzQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udHJvbHMvYnV0dG9uLXRvZ2dsZXMvZHluYW1pYy1idXR0b24tdG9nZ2xlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0ZJRUxEX0JVVFRPTl9UT0dHTEVTIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvYnV0dG9uLXRvZ2dsZXMvZHluYW1pYy1idXR0b24tdG9nZ2xlcy5tb2RlbCc7XG5pbXBvcnQgeyBEeW5hbWljQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udHJvbHMvYnV0dG9uL2R5bmFtaWMtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEWU5BTUlDX0ZPUk1fRklFTERfQlVUVE9OIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvYnV0dG9uL2R5bmFtaWMtYnV0dG9uLm1vZGVsJztcbmltcG9ydCB7IER5bmFtaWNDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2NoZWNrYm94L2R5bmFtaWMtY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IERZTkFNSUNfRk9STV9GSUVMRF9DSEVDS0JPWCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL2NoZWNrYm94L2R5bmFtaWMtY2hlY2tib3gubW9kZWwnO1xuaW1wb3J0IHsgRHluYW1pY0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udHJvbHMvaW5wdXQvZHluYW1pYy1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0ZJRUxEX0lOUFVUIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvaW5wdXQvZHluYW1pYy1pbnB1dC5tb2RlbCc7XG5pbXBvcnQgeyBEeW1hbWljUmFkaW9Hcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL3JhZGlvLWdyb3VwL2R5bmFtaWMtcmFkaW8tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IERZTkFNSUNfRk9STV9GSUVMRF9SQURJT19HUk9VUCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL3JhZGlvLWdyb3VwL2R5bmFtaWMtcmFkaW8tZ3JvdXAubW9kZWwnO1xuaW1wb3J0IHsgRHluYW1pY1JlYWRvbmx5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udHJvbHMvcmVhZG9ubHkvZHluYW1pYy1yZWFkb25seS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRFlOQU1JQ19GT1JNX0ZJRUxEX1JFQURPTkxZIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvcmVhZG9ubHkvZHluYW1pYy1yZWFkb25seS5tb2RlbCc7XG5pbXBvcnQgeyBEeW5hbWljU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udHJvbHMvc2VsZWN0L2R5bmFtaWMtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEWU5BTUlDX0ZPUk1fRklFTERfU0VMRUNUIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvc2VsZWN0L2R5bmFtaWMtc2VsZWN0Lm1vZGVsJztcbmltcG9ydCB7IER5bmFtaWNUZXh0YXJlYUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL3RleHRhcmVhL2R5bmFtaWMtdGV4dGFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IERZTkFNSUNfRk9STV9GSUVMRF9URVhUQVJFQSB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL3RleHRhcmVhL2R5bmFtaWMtdGV4dGFyZWEubW9kZWwnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZCB9IGZyb20gJy4uLy4uL21vZGVscy9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC1iYXNlJztcbmltcG9ydCB7IER5bmFtaWNGb3JtRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC1tb2RlbCc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkVmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC12YWx1ZS1tb2RlbCc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkRXZlbnQsIER5bmFtaWNGb3JtRmllbGRFdmVudFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW50ZXJmYWNlcy9keW5hbWljLWZvcm0tZmllbGQtZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlbGF0ZWRGb3JtQ29udHJvbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvdHlwZXMvcmVsYXRlZC1mb3JtLWNvbnRyb2xzLnR5cGUnO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1SZWxhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZHluYW1pYy1mb3JtLXJlbGF0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IER5bmFtaWNGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2R5bmFtaWMtZm9ybS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdkeW5hbWljLWZvcm0tZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJ2R5bmFtaWMtZm9ybS1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNGb3JtRmllbGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ2NvbXBvbmVudFZpZXdDb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KSBjb21wb25lbnRWaWV3Q29udGFpbmVyITogVmlld0NvbnRhaW5lclJlZjtcblxuICBASW5wdXQoKSBtb2RlbCE6IER5bmFtaWNGb3JtRmllbGRNb2RlbDtcbiAgQElucHV0KCkgZ3JvdXAhOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtRmllbGRFdmVudD4oKTtcblxuICBwcml2YXRlIF9jb250cm9sITogVW50eXBlZEZvcm1Db250cm9sO1xuICBwcml2YXRlIF9zdWJzID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHByaXZhdGUgZHluYW1pY0Zvcm1TZXJ2aWNlID0gaW5qZWN0KER5bmFtaWNGb3JtU2VydmljZSk7XG4gIHByaXZhdGUgcmVsYXRpb25TZXJ2aWNlID0gaW5qZWN0KER5bmFtaWNGb3JtUmVsYXRpb25zU2VydmljZSk7XG5cbiAgLyoqIEdldCB0aGUgaW5zdGFuY2Ugb2YgYSBjb250cm9sIGNvbXBvbmVudCB1c2luZyB0aGUgaW5qZWN0ZWQgY3VzdG9tIG1ldGhvZCBvciBsb2NhbCBtZXRob2QgKi9cbiAgcHJpdmF0ZSBnZXQgY29tcG9uZW50VHlwZSgpOiBUeXBlPER5bmFtaWNGb3JtRmllbGQ+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZHluYW1pY0Zvcm1TZXJ2aWNlLmdldEN1c3RvbUNvbnRyb2xDb21wb25lbnRUeXBlKHRoaXMubW9kZWwpIHx8IHRoaXMuZ2V0Q29udHJvbENvbXBvbmVudFR5cGUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICB0aGlzLl9jb250cm9sID0gdGhpcy5ncm91cC5nZXQodGhpcy5tb2RlbC5uYW1lKSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XG5cbiAgICAgIHRoaXMuY3JlYXRlRm9ybUNvbnRyb2xDb21wb25lbnQoKTtcbiAgICAgIHRoaXMuc2V0U3Vic2NyaXB0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3N1YnMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kcyB0aGUgaW5zdGFuY2Ugb2YgYSBjb250cm9sIGNvbXBvbmVudCBieSB0eXBlXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBwcml2YXRlIGdldENvbnRyb2xDb21wb25lbnRUeXBlKCk6IFR5cGU8RHluYW1pY0Zvcm1GaWVsZD4gfCBudWxsIHtcbiAgICBzd2l0Y2ggKHRoaXMubW9kZWwudHlwZSkge1xuICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fRklFTERfQ0hFQ0tCT1g6XG4gICAgICAgIHJldHVybiBEeW5hbWljQ2hlY2tib3hDb21wb25lbnQ7XG4gICAgICBjYXNlIERZTkFNSUNfRk9STV9GSUVMRF9JTlBVVDpcbiAgICAgICAgcmV0dXJuIER5bmFtaWNJbnB1dENvbXBvbmVudDtcbiAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0ZJRUxEX1RFWFRBUkVBOlxuICAgICAgICByZXR1cm4gRHluYW1pY1RleHRhcmVhQ29tcG9uZW50O1xuICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fRklFTERfUkVBRE9OTFk6XG4gICAgICAgIHJldHVybiBEeW5hbWljUmVhZG9ubHlDb21wb25lbnQ7XG4gICAgICBjYXNlIERZTkFNSUNfRk9STV9GSUVMRF9TRUxFQ1Q6XG4gICAgICAgIHJldHVybiBEeW5hbWljU2VsZWN0Q29tcG9uZW50O1xuICAgICAgY2FzZSBEWU5BTUlDX0ZPUk1fRklFTERfQlVUVE9OOlxuICAgICAgICByZXR1cm4gRHluYW1pY0J1dHRvbkNvbXBvbmVudDtcbiAgICAgIGNhc2UgRFlOQU1JQ19GT1JNX0ZJRUxEX0JVVFRPTl9UT0dHTEVTOlxuICAgICAgICByZXR1cm4gRHluYW1pY0J1dHRvblRvZ2dsZXNDb21wb25lbnQ7XG4gICAgICBjYXNlIERZTkFNSUNfRk9STV9GSUVMRF9SQURJT19HUk9VUDpcbiAgICAgICAgcmV0dXJuIER5bWFtaWNSYWRpb0dyb3VwQ29tcG9uZW50O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBNb2RlbCBvZiB0eXBlICdkeW5hbWljLSR7dGhpcy5tb2RlbC50eXBlfScgaXMgbm90IGltcGxlbWVudGVkIHlldC4gQWRkIHRoaXMgdHlwZSB0byBkeW5hbWljLWZvcm0tZmllbGQuY29tcG9uZW50LnRzIHRvIGFkZCBzdXBwb3J0YFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZvcm1Db250cm9sQ29tcG9uZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuY29tcG9uZW50VHlwZTtcblxuICAgIGlmIChjb21wb25lbnQgIT0gbnVsbCkge1xuICAgICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50Vmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50KTtcblxuICAgICAgY29uc3QgY29tcG9uZW50SW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG5cbiAgICAgIHRoaXMuX3N1YnMuYWRkKGNvbXBvbmVudEluc3RhbmNlLmNoYW5nZT8uc3Vic2NyaWJlKChldmVudCkgPT4gdGhpcy5vbkNoYW5nZShldmVudCkpKTtcblxuICAgICAgY29tcG9uZW50SW5zdGFuY2UuZ3JvdXAgPSB0aGlzLmdyb3VwO1xuICAgICAgY29tcG9uZW50SW5zdGFuY2UubW9kZWwgPSB0aGlzLm1vZGVsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXR1cCBhbGwgbmVjZXNzYXJ5IHN1YnNjcmlwdGlvbnMgb2YgdGhlIEZvcm1Db250cm9sXG4gICAqL1xuICBwcml2YXRlIHNldFN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLm1vZGVsIGFzIER5bmFtaWNGb3JtRmllbGRWYWx1ZU1vZGVsPHVua25vd24+O1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHRoZSB2YWx1ZSBjaGFuZ2UgaW5zaWRlIHRoZSBjb250cm9sIHRvIGNoYW5nZSB0aGUgdmFsdWUgaW5zaWRlIHRoZSBtb2RlbCBhcyB3ZWxsXG4gICAgdGhpcy5fc3Vicy5hZGQodGhpcy5fY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4gdGhpcy5vblZhbHVlQ2hhbmdlKHZhbHVlKSkpO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHRoZSBkaXNhYmxlZCBjaGFuZ2UgaW5zaWRlIHRoZSBtb2RlbCB0byBjaGFuZ2UgdGhlIGRpc2FibGVkIHN0YXRlIG9mIHRoZSBGb3JtQ29udHJvbFxuICAgIHRoaXMuX3N1YnMuYWRkKG1vZGVsLmRpc2FibGVkQ2hhbmdlLnN1YnNjcmliZSgoZGlzYWJsZWQpID0+IHRoaXMub25EaXNhYmxlZENoYW5nZShkaXNhYmxlZCkpKTtcblxuICAgIC8vIFNldHVwIHN1YnNjcmlwdGlvbnMgZm9yIGFueSBwb3NzaWJsZSByZWxhdGlvblxuICAgIGlmICh0aGlzLm1vZGVsLnJlbGF0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNldFVwUmVsYXRpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCB1cCBhbGwgcmVsYXRpb25zIG9mIHRoZSBjdXJyZW50IG1vZGVsXG4gICAqL1xuICBwcml2YXRlIHNldFVwUmVsYXRpb25zKCk6IHZvaWQge1xuICAgIC8vIEFycmF5IG9mIGFsbCBGb3JtQ29udHJvbHMgdGhlIGN1cnJlbnQgbW9kZWwgaGFzIGEgcmVsYXRpb24gdG9cbiAgICBjb25zdCByZWxhdGVkRm9ybUNvbnRyb2xzOiBSZWxhdGVkRm9ybUNvbnRyb2xzID0gdGhpcy5yZWxhdGlvblNlcnZpY2UuZmluZFJlbGF0ZWRGb3JtRmllbGQodGhpcy5tb2RlbCwgdGhpcy5ncm91cCk7XG4gICAgY29uc3Qgc3VicyA9IHRoaXMucmVsYXRpb25TZXJ2aWNlLmdldFJlbGF0aW9uU3Vic2NyaXB0aW9ucyhyZWxhdGVkRm9ybUNvbnRyb2xzLCB0aGlzLm1vZGVsLCB0aGlzLl9jb250cm9sKTtcblxuICAgIC8vIEFkZCBhbGwgcmVsYXRpb25zIGFzIHN1YnNjcmlwdGlvbiB0byB0aGUgbWFpbiBTdWJzY3JpcHRpb24gb2JqZWN0XG4gICAgc3Vicy5mb3JFYWNoKChzdWIpID0+IHRoaXMuX3N1YnMuYWRkKHN1YikpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMgb2YgdGhlIGNvbnRyb2wgYW5kIHVwZGF0ZXMgdGhlIHZhbHVlIGluc2lkZSB0aGUgbW9kZWxcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBwcml2YXRlIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHVua25vd24pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tb2RlbCBpbnN0YW5jZW9mIER5bmFtaWNGb3JtRmllbGRWYWx1ZU1vZGVsICYmIHRoaXMubW9kZWwudmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLm1vZGVsLnZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZXMvZGlzYWJsZWQgdGhlIGNvbnRyb2wgYmFzZWQgb24gdGhlIHByb3ZpZGVkIHBhcmFtZXRlci5cbiAgICogSXMgZmlyZWQgd2hlbiBkaXNhYmxlZCBzdGF0ZSBpcyBjaGFuZ2VkIGluc2lkZSB0aGUgbW9kZWwgYW5kIHNob3VsZCBub3QgYmUgZGlyZWN0bHkgdXNlZCBvdXRzaWRlIHRoaXMgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gZGlzYWJsZWRcbiAgICovXG4gIHByaXZhdGUgb25EaXNhYmxlZENoYW5nZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGRpc2FibGVkID8gdGhpcy5fY29udHJvbC5kaXNhYmxlKCkgOiB0aGlzLl9jb250cm9sLmVuYWJsZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZShldjogdW5rbm93bik6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlLmVtaXQodGhpcy5jcmVhdGVEeW5hbWljRm9ybUV2ZW50KGV2LCAnY2hhbmdlJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEeW5hbWljRm9ybUV2ZW50KGV2ZW50OiB1bmtub3duLCB0eXBlOiBEeW5hbWljRm9ybUZpZWxkRXZlbnRUeXBlKTogRHluYW1pY0Zvcm1GaWVsZEV2ZW50IHtcbiAgICByZXR1cm4geyBldmVudCwgdHlwZSwgY29udHJvbDogdGhpcy5fY29udHJvbCwgZm9ybTogdGhpcy5ncm91cCwgbW9kZWw6IHRoaXMubW9kZWwgfTtcbiAgfVxufVxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImdyb3VwXCJcbiAgW25nQ2xhc3NdPVwiWydkeW5hbWljLWZvcm0tZmllbGQtY29udGFpbmVyJywgJ2R5bmFtaWMtZm9ybS1maWVsZC0nICsgbW9kZWwudHlwZV1cIj5cbiAgPG5nLWNvbnRhaW5lciAjY29tcG9uZW50Vmlld0NvbnRhaW5lcj48L25nLWNvbnRhaW5lcj5cbjwvZGl2PiJdfQ==
@@ -1,10 +1,10 @@
1
1
  import { NgIf } from '@angular/common';
2
2
  import { Component, Input } from '@angular/core';
3
3
  import { MatButtonModule } from '@angular/material/button';
4
- import { DynamicFormFieldBaseComponent } from '../../models/classes/dynamic-form-field-base-component';
4
+ import { DynamicFormFieldBase } from '../../models/classes/dynamic-form-field-base';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/material/button";
7
- export class DynamicButtonComponent extends DynamicFormFieldBaseComponent {
7
+ export class DynamicButtonComponent extends DynamicFormFieldBase {
8
8
  onClick() {
9
9
  this.model.onClick();
10
10
  }
@@ -19,4 +19,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
19
19
  }], group: [{
20
20
  type: Input
21
21
  }] } });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWR5bmFtaWMtZm9ybS9zcmMvbGliL2NvbnRyb2xzL2J1dHRvbi9keW5hbWljLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvY29udHJvbHMvYnV0dG9uL2R5bmFtaWMtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sd0RBQXdELENBQUM7OztBQVN2RyxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsNkJBQTZCO0lBSWhFLE9BQU87UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7K0dBTlUsc0JBQXNCO21HQUF0QixzQkFBc0IsNklDYm5DLDhZQWdCYyw0Q0RQRixJQUFJLDRGQUFFLGVBQWU7OzRGQUlwQixzQkFBc0I7a0JBTmxDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxZQUN0QixnQkFBZ0I7OEJBSWpCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2xhc3Nlcy9keW5hbWljLWZvcm0tZmllbGQtYmFzZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0J1dHRvbiB9IGZyb20gJy4vZHluYW1pYy1idXR0b24ubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIE1hdEJ1dHRvbk1vZHVsZV0sXG4gIHNlbGVjdG9yOiAnZHluYW1pYy1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1idXR0b24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIER5bmFtaWNCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBEeW5hbWljRm9ybUZpZWxkQmFzZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1vZGVsITogRHluYW1pY0J1dHRvbjtcbiAgQElucHV0KCkgZ3JvdXAhOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBvbkNsaWNrKCkge1xuICAgIHRoaXMubW9kZWwub25DbGljaygpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWwucmFpc2VkIGVsc2Ugc3Ryb2tlZFwiPlxuICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIChjbGljayk9XCJvbkNsaWNrKClcIj5cbiAgICA8c3Bhbj57e21vZGVsLnRleHR9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNzdHJva2VkPlxuICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgW2lkXT1cImlkXCJcbiAgICAoY2xpY2spPVwib25DbGljaygpXCI+XG4gICAgPHNwYW4+e3ttb2RlbC50ZXh0fX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWR5bmFtaWMtZm9ybS9zcmMvbGliL2NvbnRyb2xzL2J1dHRvbi9keW5hbWljLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvY29udHJvbHMvYnV0dG9uL2R5bmFtaWMtYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7OztBQVNwRixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsb0JBQW9CO0lBSXZELE9BQU87UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZCLENBQUM7K0dBTlUsc0JBQXNCO21HQUF0QixzQkFBc0IsNklDYm5DLDhZQWdCYyw0Q0RQRixJQUFJLDRGQUFFLGVBQWU7OzRGQUlwQixzQkFBc0I7a0JBTmxDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxZQUN0QixnQkFBZ0I7OEJBSWpCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1GaWVsZEJhc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2xhc3Nlcy9keW5hbWljLWZvcm0tZmllbGQtYmFzZSc7XG5pbXBvcnQgeyBEeW5hbWljQnV0dG9uIH0gZnJvbSAnLi9keW5hbWljLWJ1dHRvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgTWF0QnV0dG9uTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdkeW5hbWljLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWJ1dHRvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0J1dHRvbkNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtRmllbGRCYXNlIHtcbiAgQElucHV0KCkgbW9kZWwhOiBEeW5hbWljQnV0dG9uO1xuICBASW5wdXQoKSBncm91cCE6IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgcHVibGljIG9uQ2xpY2soKSB7XG4gICAgdGhpcy5tb2RlbC5vbkNsaWNrKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlbC5yYWlzZWQgZWxzZSBzdHJva2VkXCI+XG4gIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b25cbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgIFtpZF09XCJpZFwiXG4gICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiPlxuICAgIDxzcGFuPnt7bW9kZWwudGV4dH19PC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3N0cm9rZWQ+XG4gIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIChjbGljayk9XCJvbkNsaWNrKClcIj5cbiAgICA8c3Bhbj57e21vZGVsLnRleHR9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { AsyncPipe, NgClass, NgFor, NgIf } from '@angular/common';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { ReactiveFormsModule } from '@angular/forms';
4
+ import { MatButtonToggleModule } from '@angular/material/button-toggle';
5
+ import { MatFormFieldModule } from '@angular/material/form-field';
6
+ import { DynamicFormFieldBase } from '../../models/classes/dynamic-form-field-base';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/material/button-toggle";
9
+ import * as i2 from "@angular/forms";
10
+ export class DynamicButtonTogglesComponent extends DynamicFormFieldBase {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.change = new EventEmitter();
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicButtonTogglesComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DynamicButtonTogglesComponent, isStandalone: true, selector: "dynamic-button-toggles", inputs: { model: "model", group: "group" }, outputs: { change: "change" }, usesInheritance: true, ngImport: i0, template: "<div class=\"dynamic-button-toggles-wrapper\"\n [formGroup]=\"group\">\n <label *ngIf=\"model.label\"\n [ngClass]=\"model.fieldLabelPosition\">{{model.label}}</label>\n <mat-button-toggle-group [id]=\"id\"\n [formControlName]=\"model.name\"\n [multiple]=\"model.multiple\"\n [vertical]=\"model.vertical\"\n (change)=\"onChange($event)\">\n <mat-button-toggle *ngFor=\"let option of model.options$ | async\"\n [value]=\"option.value\">{{option.label}}</mat-button-toggle>\n </mat-button-toggle-group>\n</div>", styles: [".dynamic-button-toggles-wrapper label{font-size:var(--mdc-typography-body2-font-size, 14px)}.dynamic-button-toggles-wrapper label.above{display:block;margin-bottom:8px}.dynamic-button-toggles-wrapper label.before{display:inline-block;margin-right:8px}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i1.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i1.MatButtonToggle, selector: "mat-button-toggle", inputs: ["disableRipple", "aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatFormFieldModule }] }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicButtonTogglesComponent, decorators: [{
19
+ type: Component,
20
+ args: [{ standalone: true, imports: [NgFor, NgIf, NgClass, MatButtonToggleModule, ReactiveFormsModule, AsyncPipe, MatFormFieldModule], selector: 'dynamic-button-toggles', template: "<div class=\"dynamic-button-toggles-wrapper\"\n [formGroup]=\"group\">\n <label *ngIf=\"model.label\"\n [ngClass]=\"model.fieldLabelPosition\">{{model.label}}</label>\n <mat-button-toggle-group [id]=\"id\"\n [formControlName]=\"model.name\"\n [multiple]=\"model.multiple\"\n [vertical]=\"model.vertical\"\n (change)=\"onChange($event)\">\n <mat-button-toggle *ngFor=\"let option of model.options$ | async\"\n [value]=\"option.value\">{{option.label}}</mat-button-toggle>\n </mat-button-toggle-group>\n</div>", styles: [".dynamic-button-toggles-wrapper label{font-size:var(--mdc-typography-body2-font-size, 14px)}.dynamic-button-toggles-wrapper label.above{display:block;margin-bottom:8px}.dynamic-button-toggles-wrapper label.before{display:inline-block;margin-right:8px}\n"] }]
21
+ }], propDecorators: { model: [{
22
+ type: Input
23
+ }], group: [{
24
+ type: Input
25
+ }], change: [{
26
+ type: Output
27
+ }] } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1idXR0b24tdG9nZ2xlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvY29udHJvbHMvYnV0dG9uLXRvZ2dsZXMvZHluYW1pYy1idXR0b24tdG9nZ2xlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvY29udHJvbHMvYnV0dG9uLXRvZ2dsZXMvZHluYW1pYy1idXR0b24tdG9nZ2xlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUF5QixxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOzs7O0FBVXBGLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxvQkFBb0I7SUFQdkU7O1FBV1ksV0FBTSxHQUF3QyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBQzVFOytHQUxZLDZCQUE2QjttR0FBN0IsNkJBQTZCLG9MQ2YxQyx3aEJBWU0sdVRERk0sS0FBSyxtSEFBRSxJQUFJLDZGQUFFLE9BQU8sbUZBQUUscUJBQXFCLHNoQkFBRSxtQkFBbUIsK2tCQUFFLFNBQVMsNkNBQUUsa0JBQWtCOzs0RkFLOUYsNkJBQTZCO2tCQVB6QyxTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxZQUNoRyx3QkFBd0I7OEJBS3pCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ0ZvciwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUNoYW5nZSwgTWF0QnV0dG9uVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IER5bmFtaWNGb3JtRmllbGRCYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NsYXNzZXMvZHluYW1pYy1mb3JtLWZpZWxkLWJhc2UnO1xuaW1wb3J0IHsgRHluYW1pY0J1dHRvblRvZ2dsZXMgfSBmcm9tICcuL2R5bmFtaWMtYnV0dG9uLXRvZ2dsZXMubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nRm9yLCBOZ0lmLCBOZ0NsYXNzLCBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEFzeW5jUGlwZSwgTWF0Rm9ybUZpZWxkTW9kdWxlXSxcbiAgc2VsZWN0b3I6ICdkeW5hbWljLWJ1dHRvbi10b2dnbGVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtYnV0dG9uLXRvZ2dsZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWJ1dHRvbi10b2dnbGVzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0J1dHRvblRvZ2dsZXNDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljRm9ybUZpZWxkQmFzZSB7XG4gIEBJbnB1dCgpIG1vZGVsITogRHluYW1pY0J1dHRvblRvZ2dsZXM7XG4gIEBJbnB1dCgpIGdyb3VwITogVW50eXBlZEZvcm1Hcm91cDtcblxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8TWF0QnV0dG9uVG9nZ2xlQ2hhbmdlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJkeW5hbWljLWJ1dHRvbi10b2dnbGVzLXdyYXBwZXJcIlxuICBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gIDxsYWJlbCAqbmdJZj1cIm1vZGVsLmxhYmVsXCJcbiAgICBbbmdDbGFzc109XCJtb2RlbC5maWVsZExhYmVsUG9zaXRpb25cIj57e21vZGVsLmxhYmVsfX08L2xhYmVsPlxuICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgW2lkXT1cImlkXCJcbiAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIm1vZGVsLm5hbWVcIlxuICAgIFttdWx0aXBsZV09XCJtb2RlbC5tdWx0aXBsZVwiXG4gICAgW3ZlcnRpY2FsXT1cIm1vZGVsLnZlcnRpY2FsXCJcbiAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIj5cbiAgICA8bWF0LWJ1dHRvbi10b2dnbGUgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBtb2RlbC5vcHRpb25zJCB8IGFzeW5jXCJcbiAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj57e29wdGlvbi5sYWJlbH19PC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { DynamicFormFieldOptionModel } from '../../models/classes/dynamic-form-field-option-model';
2
+ export const DYNAMIC_FORM_FIELD_BUTTON_TOGGLES = 'button-toggles';
3
+ export class DynamicButtonToggles extends DynamicFormFieldOptionModel {
4
+ constructor(config) {
5
+ super(config);
6
+ this.type = DYNAMIC_FORM_FIELD_BUTTON_TOGGLES;
7
+ this.multiple = config.multiple ?? false;
8
+ this.vertical = config.vertical ?? false;
9
+ this.showLabel = config.showLabel ?? false;
10
+ this.fieldLabelPosition = config.fieldLabelPosition ?? 'above';
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1idXR0b24tdG9nZ2xlcy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1keW5hbWljLWZvcm0vc3JjL2xpYi9jb250cm9scy9idXR0b24tdG9nZ2xlcy9keW5hbWljLWJ1dHRvbi10b2dnbGVzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0MsMkJBQTJCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUVqSSxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxnQkFBZ0IsQ0FBQztBQWFsRSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsMkJBQTRDO0lBUXBGLFlBQVksTUFBa0M7UUFDNUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBSEEsU0FBSSxHQUFXLGlDQUFpQyxDQUFDO1FBSy9ELElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDO1FBQzNDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLElBQUksT0FBTyxDQUFDO0lBQ2pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNGb3JtRmllbGRPcHRpb25Db25maWcsIER5bmFtaWNGb3JtRmllbGRPcHRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC1vcHRpb24tbW9kZWwnO1xuXG5leHBvcnQgY29uc3QgRFlOQU1JQ19GT1JNX0ZJRUxEX0JVVFRPTl9UT0dHTEVTID0gJ2J1dHRvbi10b2dnbGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljQnV0dG9uVG9nZ2xlc0NvbmZpZyBleHRlbmRzIER5bmFtaWNGb3JtRmllbGRPcHRpb25Db25maWc8c3RyaW5nIHwgbnVtYmVyPiB7XG4gIC8qKiBXaGV0aGVyIHRvIGFsbG93IG11bHRpcGxlIG9wdGlvbnMgdG8gYmUgc2VsZWN0ZWQuIERlZmF1bHQgaXMgZmFsc2UgKi9cbiAgbXVsdGlwbGU/OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGUgdG9nZ2xlIGdyb3VwIGlzIHZlcnRpY2FsLiBEZWZhdWx0IGlzIGZhbHNlICovXG4gIHZlcnRpY2FsPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdG8gc2hvdyBhIGxhYmVsIGFib3ZlIHRoZSBmaWVsZC4gRGVmYXVsdCBpcyBmYWxzZSAqL1xuICBzaG93TGFiZWw/OiBib29sZWFuO1xuICAvKiogUGxhY2VtZW50IG9mIHRoZSBmaWVsZCBsYWJlbC4gRGVmYXVsdCBpcyBhYm92ZSAqL1xuICBmaWVsZExhYmVsUG9zaXRpb24/OiAnYWJvdmUnIHwgJ2JlZm9yZSc7XG59XG5cbmV4cG9ydCBjbGFzcyBEeW5hbWljQnV0dG9uVG9nZ2xlcyBleHRlbmRzIER5bmFtaWNGb3JtRmllbGRPcHRpb25Nb2RlbDxzdHJpbmcgfCBudW1iZXI+IHtcbiAgcHVibGljIG11bHRpcGxlOiBib29sZWFuO1xuICBwdWJsaWMgdmVydGljYWw6IGJvb2xlYW47XG4gIHB1YmxpYyBzaG93TGFiZWw6IGJvb2xlYW47XG4gIHB1YmxpYyBmaWVsZExhYmVsUG9zaXRpb246ICdhYm92ZScgfCAnYmVmb3JlJztcblxuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gRFlOQU1JQ19GT1JNX0ZJRUxEX0JVVFRPTl9UT0dHTEVTO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogRHluYW1pY0J1dHRvblRvZ2dsZXNDb25maWcpIHtcbiAgICBzdXBlcihjb25maWcpO1xuXG4gICAgdGhpcy5tdWx0aXBsZSA9IGNvbmZpZy5tdWx0aXBsZSA/PyBmYWxzZTtcbiAgICB0aGlzLnZlcnRpY2FsID0gY29uZmlnLnZlcnRpY2FsID8/IGZhbHNlO1xuICAgIHRoaXMuc2hvd0xhYmVsID0gY29uZmlnLnNob3dMYWJlbCA/PyBmYWxzZTtcbiAgICB0aGlzLmZpZWxkTGFiZWxQb3NpdGlvbiA9IGNvbmZpZy5maWVsZExhYmVsUG9zaXRpb24gPz8gJ2Fib3ZlJztcbiAgfVxufVxuIl19
@@ -1,32 +1,26 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { ReactiveFormsModule } from '@angular/forms';
3
3
  import { MatCheckboxModule } from '@angular/material/checkbox';
4
- import { DynamicFormFieldBaseComponent } from '../../models/classes/dynamic-form-field-base-component';
4
+ import { DynamicFormFieldBase } from '../../models/classes/dynamic-form-field-base';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/forms";
7
7
  import * as i2 from "@angular/material/checkbox";
8
- export class DynamicCheckboxComponent extends DynamicFormFieldBaseComponent {
8
+ export class DynamicCheckboxComponent extends DynamicFormFieldBase {
9
9
  constructor() {
10
10
  super(...arguments);
11
- this.blur = new EventEmitter();
12
11
  this.change = new EventEmitter();
13
- this.focus = new EventEmitter();
14
12
  }
15
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicCheckboxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DynamicCheckboxComponent, isStandalone: true, selector: "dynamic-checkbox", inputs: { model: "model", group: "group" }, outputs: { blur: "blur", change: "change", focus: "focus" }, usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"group\">\n <mat-checkbox [checked]=\"model.checked\"\n [formControlName]=\"model.name\"\n [indeterminate]=\"model.indeterminate\"\n [labelPosition]=\"model.labelPosition\"\n [name]=\"model.name\"\n [id]=\"id\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (change)=\"onChange($event)\">\n\n <span class=\"checkbox-label\">{{model.label}}</span>\n </mat-checkbox>\n</ng-container>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DynamicCheckboxComponent, isStandalone: true, selector: "dynamic-checkbox", inputs: { model: "model", group: "group" }, outputs: { change: "change" }, usesInheritance: true, ngImport: i0, template: "<ng-container [formGroup]=\"group\">\n <mat-checkbox [checked]=\"model.checked\"\n [formControlName]=\"model.name\"\n [indeterminate]=\"model.indeterminate\"\n [labelPosition]=\"model.labelPosition\"\n [name]=\"model.name\"\n [id]=\"id\"\n (change)=\"onChange($event)\">\n\n <span class=\"checkbox-label\">{{model.label}}</span>\n </mat-checkbox>\n</ng-container>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] }); }
17
15
  }
18
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DynamicCheckboxComponent, decorators: [{
19
17
  type: Component,
20
- args: [{ selector: 'dynamic-checkbox', standalone: true, imports: [ReactiveFormsModule, MatCheckboxModule], template: "<ng-container [formGroup]=\"group\">\n <mat-checkbox [checked]=\"model.checked\"\n [formControlName]=\"model.name\"\n [indeterminate]=\"model.indeterminate\"\n [labelPosition]=\"model.labelPosition\"\n [name]=\"model.name\"\n [id]=\"id\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (change)=\"onChange($event)\">\n\n <span class=\"checkbox-label\">{{model.label}}</span>\n </mat-checkbox>\n</ng-container>" }]
18
+ args: [{ selector: 'dynamic-checkbox', standalone: true, imports: [ReactiveFormsModule, MatCheckboxModule], template: "<ng-container [formGroup]=\"group\">\n <mat-checkbox [checked]=\"model.checked\"\n [formControlName]=\"model.name\"\n [indeterminate]=\"model.indeterminate\"\n [labelPosition]=\"model.labelPosition\"\n [name]=\"model.name\"\n [id]=\"id\"\n (change)=\"onChange($event)\">\n\n <span class=\"checkbox-label\">{{model.label}}</span>\n </mat-checkbox>\n</ng-container>" }]
21
19
  }], propDecorators: { model: [{
22
20
  type: Input
23
21
  }], group: [{
24
22
  type: Input
25
- }], blur: [{
26
- type: Output
27
23
  }], change: [{
28
24
  type: Output
29
- }], focus: [{
30
- type: Output
31
25
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvY29udHJvbHMvY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvY29udHJvbHMvY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQXFCLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sd0RBQXdELENBQUM7Ozs7QUFTdkcsTUFBTSxPQUFPLHdCQUF5QixTQUFRLDZCQUE2QjtJQU4zRTs7UUFVWSxTQUFJLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0MsV0FBTSxHQUFvQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdELFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztLQUN6RDsrR0FQWSx3QkFBd0I7bUdBQXhCLHdCQUF3Qiw0TUNackMsb2NBYWUsMkNESEgsbUJBQW1CLG1sQkFBRSxpQkFBaUI7OzRGQUVyQyx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBRWhCLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLGlCQUFpQixDQUFDOzhCQUd4QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSwgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vZGVscy9jbGFzc2VzL2R5bmFtaWMtZm9ybS1maWVsZC1iYXNlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljQ2hlY2tib3ggfSBmcm9tICcuL2R5bmFtaWMtY2hlY2tib3gubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkeW5hbWljLWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICdkeW5hbWljLWNoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGUsIE1hdENoZWNrYm94TW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljQ2hlY2tib3hDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljRm9ybUZpZWxkQmFzZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIG1vZGVsITogRHluYW1pY0NoZWNrYm94O1xuICBASW5wdXQoKSBncm91cCE6IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgQE91dHB1dCgpIGJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8TWF0Q2hlY2tib3hDaGFuZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xufVxuIiwiPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImdyb3VwXCI+XG4gIDxtYXQtY2hlY2tib3ggW2NoZWNrZWRdPVwibW9kZWwuY2hlY2tlZFwiXG4gICAgW2Zvcm1Db250cm9sTmFtZV09XCJtb2RlbC5uYW1lXCJcbiAgICBbaW5kZXRlcm1pbmF0ZV09XCJtb2RlbC5pbmRldGVybWluYXRlXCJcbiAgICBbbGFiZWxQb3NpdGlvbl09XCJtb2RlbC5sYWJlbFBvc2l0aW9uXCJcbiAgICBbbmFtZV09XCJtb2RlbC5uYW1lXCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcbiAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIj5cblxuICAgIDxzcGFuIGNsYXNzPVwiY2hlY2tib3gtbGFiZWxcIj57e21vZGVsLmxhYmVsfX08L3NwYW4+XG4gIDwvbWF0LWNoZWNrYm94PlxuPC9uZy1jb250YWluZXI+Il19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvY29udHJvbHMvY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvY29udHJvbHMvY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQXFCLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOENBQThDLENBQUM7Ozs7QUFTcEYsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG9CQUFvQjtJQU5sRTs7UUFVWSxXQUFNLEdBQW9DLElBQUksWUFBWSxFQUFFLENBQUM7S0FDeEU7K0dBTFksd0JBQXdCO21HQUF4Qix3QkFBd0IsOEtDWnJDLG9ZQVdlLDJDRERILG1CQUFtQixtbEJBQUUsaUJBQWlCOzs0RkFFckMsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLGtCQUFrQixjQUVoQixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsRUFBRSxpQkFBaUIsQ0FBQzs4QkFHeEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlLCBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IER5bmFtaWNGb3JtRmllbGRCYXNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NsYXNzZXMvZHluYW1pYy1mb3JtLWZpZWxkLWJhc2UnO1xuaW1wb3J0IHsgRHluYW1pY0NoZWNrYm94IH0gZnJvbSAnLi9keW5hbWljLWNoZWNrYm94Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZHluYW1pYy1jaGVja2JveCcsXG4gIHRlbXBsYXRlVXJsOiAnZHluYW1pYy1jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRDaGVja2JveE1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0NoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgRHluYW1pY0Zvcm1GaWVsZEJhc2Uge1xuICBASW5wdXQoKSBtb2RlbCE6IER5bmFtaWNDaGVja2JveDtcbiAgQElucHV0KCkgZ3JvdXAhOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxNYXRDaGVja2JveENoYW5nZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG59XG4iLCI8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cbiAgPG1hdC1jaGVja2JveCBbY2hlY2tlZF09XCJtb2RlbC5jaGVja2VkXCJcbiAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIm1vZGVsLm5hbWVcIlxuICAgIFtpbmRldGVybWluYXRlXT1cIm1vZGVsLmluZGV0ZXJtaW5hdGVcIlxuICAgIFtsYWJlbFBvc2l0aW9uXT1cIm1vZGVsLmxhYmVsUG9zaXRpb25cIlxuICAgIFtuYW1lXT1cIm1vZGVsLm5hbWVcIlxuICAgIFtpZF09XCJpZFwiXG4gICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCI+XG5cbiAgICA8c3BhbiBjbGFzcz1cImNoZWNrYm94LWxhYmVsXCI+e3ttb2RlbC5sYWJlbH19PC9zcGFuPlxuICA8L21hdC1jaGVja2JveD5cbjwvbmctY29udGFpbmVyPiJdfQ==
@@ -0,0 +1,9 @@
1
+ export * from './button-toggles/dynamic-button-toggles.model';
2
+ export * from './button/dynamic-button.model';
3
+ export * from './checkbox/dynamic-checkbox.model';
4
+ export * from './input/dynamic-input.model';
5
+ export * from './radio-group/dynamic-radio-group.model';
6
+ export * from './readonly/dynamic-readonly.model';
7
+ export * from './select/dynamic-select.model';
8
+ export * from './textarea/dynamic-textarea.model';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtZHluYW1pYy1mb3JtL3NyYy9saWIvY29udHJvbHMvY29udHJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9idXR0b24tdG9nZ2xlcy9keW5hbWljLWJ1dHRvbi10b2dnbGVzLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vYnV0dG9uL2R5bmFtaWMtYnV0dG9uLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2tib3gvZHluYW1pYy1jaGVja2JveC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2lucHV0L2R5bmFtaWMtaW5wdXQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9yYWRpby1ncm91cC9keW5hbWljLXJhZGlvLWdyb3VwLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vcmVhZG9ubHkvZHluYW1pYy1yZWFkb25seS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdC9keW5hbWljLXNlbGVjdC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL3RleHRhcmVhL2R5bmFtaWMtdGV4dGFyZWEubW9kZWwnO1xuIl19