superlikers-dynamic-forms 0.2.3 → 0.4.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 (26) hide show
  1. package/fesm2022/superlikers-dynamic-forms-select-field.component-D6Qy_SzE.mjs +27 -0
  2. package/fesm2022/superlikers-dynamic-forms-select-field.component-D6Qy_SzE.mjs.map +1 -0
  3. package/fesm2022/superlikers-dynamic-forms.mjs +122 -44
  4. package/fesm2022/superlikers-dynamic-forms.mjs.map +1 -1
  5. package/index.d.ts +190 -5
  6. package/package.json +1 -1
  7. package/fesm2022/superlikers-dynamic-forms-select-field.component-DaFIx75e.mjs +0 -27
  8. package/fesm2022/superlikers-dynamic-forms-select-field.component-DaFIx75e.mjs.map +0 -1
  9. package/lib/components/base-control/base-control.component.d.ts +0 -26
  10. package/lib/components/checkbox-field/checkbox-field.component.d.ts +0 -6
  11. package/lib/components/checkbox-group-field/checkbox-group-field.component.d.ts +0 -9
  12. package/lib/components/errors/errors.component.d.ts +0 -13
  13. package/lib/components/group-field/group-field.component.d.ts +0 -11
  14. package/lib/components/help-text/help-text.component.d.ts +0 -6
  15. package/lib/components/input-field/input-field.component.d.ts +0 -6
  16. package/lib/components/radio-field/radio-field.component.d.ts +0 -6
  17. package/lib/components/select-field/select-field.component.d.ts +0 -9
  18. package/lib/directives/helpText/help-text.directive.d.ts +0 -11
  19. package/lib/directives/validator-array-message/validator-array-message.directive.d.ts +0 -15
  20. package/lib/directives/validator-message/validator-message.directive.d.ts +0 -17
  21. package/lib/models/forms.model.d.ts +0 -42
  22. package/lib/pipes/control-injector.pipe.d.ts +0 -10
  23. package/lib/services/control-resolver/control-resolver.service.d.ts +0 -13
  24. package/lib/utils/control-data.token.d.ts +0 -9
  25. package/lib/utils/validation-error-messages.token.d.ts +0 -10
  26. package/public-api.d.ts +0 -16
@@ -0,0 +1,27 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Component } from '@angular/core';
3
+ import { BaseControlComponent, controlProvider, ValidatorMessageDirective, HelpTextDirective, sharedControlDeps } from './superlikers-dynamic-forms.mjs';
4
+ import * as i1 from '@angular/common';
5
+ import * as i2 from '@angular/forms';
6
+
7
+ class SelectFieldComponent extends BaseControlComponent {
8
+ ngOnInit() {
9
+ this.initialize();
10
+ this.setSelectedOption();
11
+ }
12
+ setSelectedOption() {
13
+ const selectedOption = this.control.control.options?.find(option => option.selected);
14
+ if (!selectedOption)
15
+ return;
16
+ this.formControl.setValue(selectedOption.value);
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: SelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: SelectFieldComponent, isStandalone: true, selector: "app-radio-field", usesInheritance: true, ngImport: i0, template: "@if (control.control.label) {\n <label for=\"\">{{ control.control.label }}</label>\n}\n<select\n [formControlName]=\"control.control.name\"\n [id]=\"id\">\n @for (option of getOptions() | async; track option.value; let i = $index) {\n <option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\">\n {{ option.label }}\n </option>\n }\n</select>\n\n<div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n [formControlName]=\"control.control.name\"\n ngDefaultControl></div>\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "ngmodule", type: i2.ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: ValidatorMessageDirective, selector: "[appValidatorMessage]" }, { kind: "directive", type: HelpTextDirective, selector: "[appHelpText]", inputs: ["message"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], viewProviders: [controlProvider] }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: SelectFieldComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'app-radio-field', imports: [...sharedControlDeps], viewProviders: [controlProvider], standalone: true, template: "@if (control.control.label) {\n <label for=\"\">{{ control.control.label }}</label>\n}\n<select\n [formControlName]=\"control.control.name\"\n [id]=\"id\">\n @for (option of getOptions() | async; track option.value; let i = $index) {\n <option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\">\n {{ option.label }}\n </option>\n }\n</select>\n\n<div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n [formControlName]=\"control.control.name\"\n ngDefaultControl></div>\n" }]
24
+ }] });
25
+
26
+ export { SelectFieldComponent };
27
+ //# sourceMappingURL=superlikers-dynamic-forms-select-field.component-D6Qy_SzE.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"superlikers-dynamic-forms-select-field.component-D6Qy_SzE.mjs","sources":["../../../projects/dynamic-forms/src/lib/components/select-field/select-field.component.ts","../../../projects/dynamic-forms/src/lib/components/select-field/select-field.component.html"],"sourcesContent":["import { Component, OnInit } from '@angular/core'\nimport { BaseControlComponent, controlProvider, sharedControlDeps } from '../base-control/base-control.component'\n\n@Component({\n selector: 'app-radio-field',\n imports: [...sharedControlDeps],\n viewProviders: [controlProvider],\n templateUrl: './select-field.component.html',\n standalone: true\n})\nexport class SelectFieldComponent extends BaseControlComponent implements OnInit {\n override ngOnInit() {\n this.initialize()\n\n this.setSelectedOption()\n }\n\n setSelectedOption() {\n const selectedOption = this.control.control.options?.find(option => option.selected)\n if (!selectedOption) return\n\n this.formControl.setValue(selectedOption.value)\n }\n}\n","@if (control.control.label) {\n <label for=\"\">{{ control.control.label }}</label>\n}\n<select\n [formControlName]=\"control.control.name\"\n [id]=\"id\">\n @for (option of getOptions() | async; track option.value; let i = $index) {\n <option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\">\n {{ option.label }}\n </option>\n }\n</select>\n\n<div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n [formControlName]=\"control.control.name\"\n ngDefaultControl></div>\n"],"names":["i3.ValidatorMessageDirective","i4.HelpTextDirective"],"mappings":";;;;;;AAUM,MAAO,oBAAqB,SAAQ,oBAAoB,CAAA;IACnD,QAAQ,GAAA;QACf,IAAI,CAAC,UAAU,EAAE;QAEjB,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEA,iBAAiB,GAAA;QACf,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC;AACpF,QAAA,IAAI,CAAC,cAAc;YAAE;QAErB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC;IACjD;8GAZW,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVjC,qiBAqBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,aAAA,EDfiB,CAAC,eAAe,CAAC,EAAA,CAAA,CAAA;;2FAIrB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACE,iBAAiB,EAAA,OAAA,EAClB,CAAC,GAAG,iBAAiB,CAAC,iBAChB,CAAC,eAAe,CAAC,EAAA,UAAA,EAEpB,IAAI,EAAA,QAAA,EAAA,qiBAAA,EAAA;;;;;"}
@@ -23,10 +23,10 @@ class ControlInjector {
23
23
  ]
24
24
  });
25
25
  }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: ControlInjector, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
27
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.0", ngImport: i0, type: ControlInjector, isStandalone: true, name: "controlInjector" }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ControlInjector, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
27
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.1", ngImport: i0, type: ControlInjector, isStandalone: true, name: "controlInjector" }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: ControlInjector, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ControlInjector, decorators: [{
30
30
  type: Pipe,
31
31
  args: [{
32
32
  name: 'controlInjector',
@@ -52,7 +52,7 @@ class ControlResolver {
52
52
  radio: () => Promise.resolve().then(function () { return radioField_component; }).then(c => c.RadioFieldComponent),
53
53
  checkbox: () => Promise.resolve().then(function () { return checkboxField_component; }).then(c => c.CheckboxFieldComponent),
54
54
  'checkbox-group': () => Promise.resolve().then(function () { return checkboxGroupField_component; }).then(c => c.CheckboxGroupFieldComponent),
55
- select: () => import('./superlikers-dynamic-forms-select-field.component-DaFIx75e.mjs').then(c => c.SelectFieldComponent)
55
+ select: () => import('./superlikers-dynamic-forms-select-field.component-D6Qy_SzE.mjs').then(c => c.SelectFieldComponent)
56
56
  };
57
57
  this.loadedControlComponents = new Map();
58
58
  }
@@ -90,10 +90,10 @@ class ControlResolver {
90
90
  });
91
91
  }));
92
92
  }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: ControlResolver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
94
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: ControlResolver, providedIn: 'root' }); }
93
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ControlResolver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
94
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ControlResolver, providedIn: 'root' }); }
95
95
  }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: ControlResolver, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ControlResolver, decorators: [{
97
97
  type: Injectable,
98
98
  args: [{
99
99
  providedIn: 'root'
@@ -136,14 +136,14 @@ class ErrorsComponent {
136
136
  }
137
137
  return this.errorsMap[error.key](error.value);
138
138
  }
139
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: ErrorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
140
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.0", type: ErrorsComponent, isStandalone: true, selector: "app-errors", inputs: { errors: "errors" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: `
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ErrorsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
140
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: ErrorsComponent, isStandalone: true, selector: "app-errors", inputs: { errors: "errors" }, host: { properties: { "class": "this.hostClass" } }, ngImport: i0, template: `
141
141
  @for (error of errors | keyvalue; track error.key) {
142
142
  <div class="error-text">{{ getError(error) }}</div>
143
143
  }
144
144
  `, isInline: true, dependencies: [{ kind: "pipe", type: KeyValuePipe, name: "keyvalue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
145
145
  }
146
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: ErrorsComponent, decorators: [{
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ErrorsComponent, decorators: [{
147
147
  type: Component,
148
148
  args: [{
149
149
  selector: 'app-errors',
@@ -196,10 +196,10 @@ class ValidatorMessageDirective {
196
196
  ngOnDestroy() {
197
197
  this.controlSubscription.unsubscribe();
198
198
  }
199
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: ValidatorMessageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
200
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.0", type: ValidatorMessageDirective, isStandalone: true, selector: "[appValidatorMessage]", ngImport: i0 }); }
199
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ValidatorMessageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
200
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: ValidatorMessageDirective, isStandalone: true, selector: "[appValidatorMessage]", ngImport: i0 }); }
201
201
  }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: ValidatorMessageDirective, decorators: [{
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ValidatorMessageDirective, decorators: [{
203
203
  type: Directive,
204
204
  args: [{
205
205
  selector: '[appValidatorMessage]',
@@ -211,10 +211,10 @@ class HelpTextComponent {
211
211
  constructor() {
212
212
  this.message = '';
213
213
  }
214
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: HelpTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
215
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.0", type: HelpTextComponent, isStandalone: true, selector: "app-help-text", inputs: { message: "message" }, ngImport: i0, template: '<p class="help-text">{{ message }}</p>', isInline: true }); }
214
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HelpTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
215
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: HelpTextComponent, isStandalone: true, selector: "app-help-text", inputs: { message: "message" }, ngImport: i0, template: '<p class="help-text">{{ message }}</p>', isInline: true }); }
216
216
  }
217
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: HelpTextComponent, decorators: [{
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HelpTextComponent, decorators: [{
218
218
  type: Component,
219
219
  args: [{
220
220
  selector: 'app-help-text',
@@ -239,10 +239,10 @@ class HelpTextDirective {
239
239
  this.componentRef = this.vcr.createComponent(HelpTextComponent);
240
240
  this.componentRef.setInput('message', this.message);
241
241
  }
242
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: HelpTextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
243
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.0", type: HelpTextDirective, isStandalone: true, selector: "[appHelpText]", inputs: { message: "message" }, ngImport: i0 }); }
242
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HelpTextDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
243
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: HelpTextDirective, isStandalone: true, selector: "[appHelpText]", inputs: { message: "message" }, ngImport: i0 }); }
244
244
  }
245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: HelpTextDirective, decorators: [{
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: HelpTextDirective, decorators: [{
246
246
  type: Directive,
247
247
  args: [{
248
248
  selector: '[appHelpText]',
@@ -285,10 +285,10 @@ class ValidatorArrayMessageDirective {
285
285
  ngOnDestroy() {
286
286
  this.controlSubscription?.unsubscribe();
287
287
  }
288
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: ValidatorArrayMessageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
289
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.0", type: ValidatorArrayMessageDirective, isStandalone: true, selector: "[appValidatorArrayMessage]", ngImport: i0 }); }
288
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ValidatorArrayMessageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
289
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: ValidatorArrayMessageDirective, isStandalone: true, selector: "[appValidatorArrayMessage]", ngImport: i0 }); }
290
290
  }
291
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: ValidatorArrayMessageDirective, decorators: [{
291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: ValidatorArrayMessageDirective, decorators: [{
292
292
  type: Directive,
293
293
  args: [{
294
294
  selector: '[appValidatorArrayMessage]',
@@ -363,10 +363,10 @@ class BaseControlComponent {
363
363
  return of([]);
364
364
  return this.control.control.asyncOptions(this.parentFormGroup);
365
365
  }
366
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: BaseControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
367
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.0", type: BaseControlComponent, isStandalone: true, host: { properties: { "class": "this.hostClass" } }, ngImport: i0 }); }
366
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: BaseControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
367
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.1", type: BaseControlComponent, isStandalone: true, host: { properties: { "class": "this.hostClass" } }, ngImport: i0 }); }
368
368
  }
369
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: BaseControlComponent, decorators: [{
369
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: BaseControlComponent, decorators: [{
370
370
  type: Directive
371
371
  }], propDecorators: { hostClass: [{
372
372
  type: HostBinding,
@@ -374,12 +374,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImpor
374
374
  }] } });
375
375
 
376
376
  class CheckboxFieldComponent extends BaseControlComponent {
377
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: CheckboxFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
378
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.0", type: CheckboxFieldComponent, isStandalone: true, selector: "app-checkbox-field", usesInheritance: true, ngImport: i0, template: "<div>\n <input\n type=\"checkbox\"\n [id]=\"id\"\n [formControlName]=\"control.control.name\" />\n <label\n [for]=\"id\"\n [innerHTML]=\"control.control.label\">\n </label>\n\n <div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n ngDefaultControl\n [formControlName]=\"control.control.name\"></div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "ngmodule", type: i2.ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: ValidatorMessageDirective, selector: "[appValidatorMessage]" }, { kind: "directive", type: HelpTextDirective, selector: "[appHelpText]", inputs: ["message"] }], viewProviders: [controlProvider] }); }
377
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CheckboxFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
378
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: CheckboxFieldComponent, isStandalone: true, selector: "app-checkbox-field", usesInheritance: true, ngImport: i0, template: "<div>\n <input\n type=\"checkbox\"\n [id]=\"id\"\n [formControlName]=\"control.control.name\" />\n @if (control.control.label) {\n <label\n [for]=\"id\"\n [innerHTML]=\"control.control.label\">\n </label>\n }\n\n <div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n ngDefaultControl\n [formControlName]=\"control.control.name\"></div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "ngmodule", type: i2.ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: ValidatorMessageDirective, selector: "[appValidatorMessage]" }, { kind: "directive", type: HelpTextDirective, selector: "[appHelpText]", inputs: ["message"] }], viewProviders: [controlProvider] }); }
379
379
  }
380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: CheckboxFieldComponent, decorators: [{
380
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CheckboxFieldComponent, decorators: [{
381
381
  type: Component,
382
- args: [{ selector: 'app-checkbox-field', imports: [...sharedControlDeps], viewProviders: [controlProvider], standalone: true, template: "<div>\n <input\n type=\"checkbox\"\n [id]=\"id\"\n [formControlName]=\"control.control.name\" />\n <label\n [for]=\"id\"\n [innerHTML]=\"control.control.label\">\n </label>\n\n <div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n ngDefaultControl\n [formControlName]=\"control.control.name\"></div>\n</div>\n" }]
382
+ args: [{ selector: 'app-checkbox-field', imports: [...sharedControlDeps], viewProviders: [controlProvider], standalone: true, template: "<div>\n <input\n type=\"checkbox\"\n [id]=\"id\"\n [formControlName]=\"control.control.name\" />\n @if (control.control.label) {\n <label\n [for]=\"id\"\n [innerHTML]=\"control.control.label\">\n </label>\n }\n\n <div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n ngDefaultControl\n [formControlName]=\"control.control.name\"></div>\n</div>\n" }]
383
383
  }] });
384
384
 
385
385
  var checkboxField_component = /*#__PURE__*/Object.freeze({
@@ -404,12 +404,12 @@ class CheckboxGroupFieldComponent extends BaseControlComponent {
404
404
  this.formControl.removeAt(index);
405
405
  }
406
406
  }
407
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: CheckboxGroupFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
408
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.0", type: CheckboxGroupFieldComponent, isStandalone: true, selector: "app-checkbox-group-field", usesInheritance: true, ngImport: i0, template: "<label for=\"\">\n {{ control.control.label }}\n</label>\n\n<div\n [formArrayName]=\"control.control.name\"\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorArrayMessage>\n @for (option of getOptions() | async; track option.value; let index = $index) {\n <div>\n <input\n type=\"checkbox\"\n (change)=\"change($event)\"\n [value]=\"option.value\"\n [id]=\"id + index\" />\n <label [for]=\"id + index\">\n {{ option.label }}\n </label>\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: i2.ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: HelpTextDirective, selector: "[appHelpText]", inputs: ["message"] }, { kind: "directive", type: ValidatorArrayMessageDirective, selector: "[appValidatorArrayMessage]" }], viewProviders: [controlProvider] }); }
407
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CheckboxGroupFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
408
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: CheckboxGroupFieldComponent, isStandalone: true, selector: "app-checkbox-group-field", usesInheritance: true, ngImport: i0, template: "@if (control.control.label) {\n <label for=\"\">\n {{ control.control.label }}\n </label>\n}\n\n<div\n [formArrayName]=\"control.control.name\"\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorArrayMessage>\n @for (option of getOptions() | async; track option.value; let index = $index) {\n <div>\n <input\n type=\"checkbox\"\n (change)=\"change($event)\"\n [value]=\"option.value\"\n [id]=\"id + index\" />\n <label [for]=\"id + index\">\n {{ option.label }}\n </label>\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "ngmodule", type: i2.ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: HelpTextDirective, selector: "[appHelpText]", inputs: ["message"] }, { kind: "directive", type: ValidatorArrayMessageDirective, selector: "[appValidatorArrayMessage]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], viewProviders: [controlProvider] }); }
409
409
  }
410
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: CheckboxGroupFieldComponent, decorators: [{
410
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: CheckboxGroupFieldComponent, decorators: [{
411
411
  type: Component,
412
- args: [{ selector: 'app-checkbox-group-field', imports: [...sharedControlDeps], viewProviders: [controlProvider], standalone: true, template: "<label for=\"\">\n {{ control.control.label }}\n</label>\n\n<div\n [formArrayName]=\"control.control.name\"\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorArrayMessage>\n @for (option of getOptions() | async; track option.value; let index = $index) {\n <div>\n <input\n type=\"checkbox\"\n (change)=\"change($event)\"\n [value]=\"option.value\"\n [id]=\"id + index\" />\n <label [for]=\"id + index\">\n {{ option.label }}\n </label>\n </div>\n }\n</div>\n" }]
412
+ args: [{ selector: 'app-checkbox-group-field', imports: [...sharedControlDeps], viewProviders: [controlProvider], standalone: true, template: "@if (control.control.label) {\n <label for=\"\">\n {{ control.control.label }}\n </label>\n}\n\n<div\n [formArrayName]=\"control.control.name\"\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorArrayMessage>\n @for (option of getOptions() | async; track option.value; let index = $index) {\n <div>\n <input\n type=\"checkbox\"\n (change)=\"change($event)\"\n [value]=\"option.value\"\n [id]=\"id + index\" />\n <label [for]=\"id + index\">\n {{ option.label }}\n </label>\n </div>\n }\n</div>\n" }]
413
413
  }] });
414
414
 
415
415
  var checkboxGroupField_component = /*#__PURE__*/Object.freeze({
@@ -423,10 +423,10 @@ class GroupFieldComponent extends BaseControlComponent {
423
423
  this.controlResolver = inject(ControlResolver);
424
424
  this.formControl = new FormGroup({});
425
425
  }
426
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: GroupFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
427
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.0", type: GroupFieldComponent, isStandalone: true, selector: "app-group-field", usesInheritance: true, ngImport: i0, template: "<div [formGroupName]=\"control.control.name\">\n @for (control of control.control.controls; track control.name) {\n <ng-container\n [ngComponentOutlet]=\"controlResolver.resolve(control, parentFormGroup) | async\"\n [ngComponentOutletInjector]=\"control.name | controlInjector: control\">\n </ng-container>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: i2.ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "pipe", type: ControlInjector, name: "controlInjector" }], viewProviders: [controlProvider] }); }
426
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: GroupFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
427
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: GroupFieldComponent, isStandalone: true, selector: "app-group-field", usesInheritance: true, ngImport: i0, template: "<div [formGroupName]=\"control.control.name\">\n @for (control of control.control.controls; track control.name) {\n <ng-container\n [ngComponentOutlet]=\"controlResolver.resolve(control, parentFormGroup) | async\"\n [ngComponentOutletInjector]=\"control.name | controlInjector: control\">\n </ng-container>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "ngmodule", type: i2.ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: ControlInjector, name: "controlInjector" }], viewProviders: [controlProvider] }); }
428
428
  }
429
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: GroupFieldComponent, decorators: [{
429
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: GroupFieldComponent, decorators: [{
430
430
  type: Component,
431
431
  args: [{ selector: 'app-group-field', imports: [...sharedControlDeps, ControlInjector], viewProviders: [controlProvider], standalone: true, template: "<div [formGroupName]=\"control.control.name\">\n @for (control of control.control.controls; track control.name) {\n <ng-container\n [ngComponentOutlet]=\"controlResolver.resolve(control, parentFormGroup) | async\"\n [ngComponentOutletInjector]=\"control.name | controlInjector: control\">\n </ng-container>\n }\n</div>\n" }]
432
432
  }] });
@@ -436,13 +436,91 @@ var groupField_component = /*#__PURE__*/Object.freeze({
436
436
  GroupFieldComponent: GroupFieldComponent
437
437
  });
438
438
 
439
+ class EyeIcon {
440
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EyeIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
441
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: EyeIcon, isStandalone: true, selector: "eye-icon", ngImport: i0, template: `<svg
442
+ width="100%"
443
+ height="100%"
444
+ viewBox="0 0 16 10"
445
+ fill="none"
446
+ xmlns="http://www.w3.org/2000/svg">
447
+ <path
448
+ d="M15.4569 4.7975C15.435 4.74813 14.9056 3.57375 13.7287 2.39687C12.1606 0.82875 10.18 0 7.99999 0C5.81999 0 3.83937 0.82875 2.27124 2.39687C1.09437 3.57375 0.562494 4.75 0.543119 4.7975C0.51469 4.86144 0.5 4.93064 0.5 5.00062C0.5 5.0706 0.51469 5.1398 0.543119 5.20375C0.564994 5.25312 1.09437 6.42688 2.27124 7.60375C3.83937 9.17125 5.81999 10 7.99999 10C10.18 10 12.1606 9.17125 13.7287 7.60375C14.9056 6.42688 15.435 5.25312 15.4569 5.20375C15.4853 5.1398 15.5 5.0706 15.5 5.00062C15.5 4.93064 15.4853 4.86144 15.4569 4.7975ZM7.99999 7.5C7.50554 7.5 7.02219 7.35338 6.61107 7.07867C6.19995 6.80397 5.87951 6.41352 5.6903 5.95671C5.50108 5.49989 5.45157 4.99723 5.54803 4.51227C5.64449 4.02732 5.8826 3.58186 6.23223 3.23223C6.58186 2.8826 7.02732 2.6445 7.51227 2.54804C7.99722 2.45157 8.49989 2.50108 8.9567 2.6903C9.41352 2.87952 9.80396 3.19995 10.0787 3.61107C10.3534 4.0222 10.5 4.50555 10.5 5C10.5 5.66304 10.2366 6.29893 9.76776 6.76777C9.29892 7.23661 8.66304 7.5 7.99999 7.5Z"
449
+ fill="#252623" />
450
+ </svg>`, isInline: true }); }
451
+ }
452
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EyeIcon, decorators: [{
453
+ type: Component,
454
+ args: [{
455
+ selector: 'eye-icon',
456
+ standalone: true,
457
+ template: `<svg
458
+ width="100%"
459
+ height="100%"
460
+ viewBox="0 0 16 10"
461
+ fill="none"
462
+ xmlns="http://www.w3.org/2000/svg">
463
+ <path
464
+ d="M15.4569 4.7975C15.435 4.74813 14.9056 3.57375 13.7287 2.39687C12.1606 0.82875 10.18 0 7.99999 0C5.81999 0 3.83937 0.82875 2.27124 2.39687C1.09437 3.57375 0.562494 4.75 0.543119 4.7975C0.51469 4.86144 0.5 4.93064 0.5 5.00062C0.5 5.0706 0.51469 5.1398 0.543119 5.20375C0.564994 5.25312 1.09437 6.42688 2.27124 7.60375C3.83937 9.17125 5.81999 10 7.99999 10C10.18 10 12.1606 9.17125 13.7287 7.60375C14.9056 6.42688 15.435 5.25312 15.4569 5.20375C15.4853 5.1398 15.5 5.0706 15.5 5.00062C15.5 4.93064 15.4853 4.86144 15.4569 4.7975ZM7.99999 7.5C7.50554 7.5 7.02219 7.35338 6.61107 7.07867C6.19995 6.80397 5.87951 6.41352 5.6903 5.95671C5.50108 5.49989 5.45157 4.99723 5.54803 4.51227C5.64449 4.02732 5.8826 3.58186 6.23223 3.23223C6.58186 2.8826 7.02732 2.6445 7.51227 2.54804C7.99722 2.45157 8.49989 2.50108 8.9567 2.6903C9.41352 2.87952 9.80396 3.19995 10.0787 3.61107C10.3534 4.0222 10.5 4.50555 10.5 5C10.5 5.66304 10.2366 6.29893 9.76776 6.76777C9.29892 7.23661 8.66304 7.5 7.99999 7.5Z"
465
+ fill="#252623" />
466
+ </svg>`
467
+ }]
468
+ }] });
469
+
470
+ class EyeOffIcon {
471
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EyeOffIcon, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
472
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.1", type: EyeOffIcon, isStandalone: true, selector: "eye-off-icon", ngImport: i0, template: `<svg
473
+ width="100%"
474
+ height="100%"
475
+ viewBox="0 0 16 12"
476
+ fill="none"
477
+ xmlns="http://www.w3.org/2000/svg">
478
+ <path
479
+ d="M6.04249 1.61686C6.01297 1.58451 5.99246 1.54497 5.98301 1.5022C5.97357 1.45944 5.97553 1.41494 5.9887 1.37317C6.00186 1.33139 6.02577 1.29381 6.05803 1.26419C6.09028 1.23456 6.12976 1.21393 6.17249 1.20436C6.77196 1.06729 7.38506 0.998729 7.99999 0.999981C10.18 0.999981 12.1606 1.82873 13.7287 3.39686C14.9056 4.57373 15.435 5.74811 15.4569 5.79748C15.4853 5.86143 15.5 5.93063 15.5 6.00061C15.5 6.07059 15.4853 6.13979 15.4569 6.20373C15.435 6.25311 14.9056 7.42686 13.7287 8.60373C13.5504 8.78123 13.3673 8.94936 13.1794 9.10811C13.1299 9.15008 13.0661 9.1712 13.0014 9.16701C12.9367 9.16281 12.8761 9.13362 12.8325 9.08561L6.04249 1.61686ZM13.37 11.1637C13.4151 11.2122 13.4501 11.2691 13.473 11.3311C13.496 11.3932 13.5064 11.4592 13.5036 11.5253C13.5008 11.5914 13.485 11.6563 13.4569 11.7162C13.4289 11.7762 13.3893 11.8299 13.3403 11.8744C13.2913 11.9189 13.234 11.9533 13.1717 11.9755C13.1094 11.9977 13.0432 12.0072 12.9772 12.0037C12.9111 12.0001 12.8464 11.9835 12.7868 11.9548C12.7272 11.926 12.6739 11.8857 12.63 11.8362L11.25 10.3206C10.2266 10.7733 9.11907 11.0048 7.99999 11C5.81999 11 3.83937 10.1712 2.27124 8.60373C1.09437 7.42686 0.562494 6.25311 0.543119 6.20373C0.51469 6.13979 0.5 6.07059 0.5 6.00061C0.5 5.93063 0.51469 5.86143 0.543119 5.79748C0.562494 5.74998 1.09437 4.57373 2.27124 3.39686C2.74142 2.92451 3.26591 2.50953 3.83374 2.16061L2.62999 0.836231C2.58491 0.787802 2.54989 0.730907 2.52696 0.668843C2.50402 0.606779 2.49364 0.54078 2.4964 0.474672C2.49916 0.408565 2.51502 0.343662 2.54305 0.283728C2.57108 0.223793 2.61072 0.170017 2.65969 0.125518C2.70865 0.0810184 2.76597 0.0466801 2.8283 0.0244932C2.89063 0.00230626 2.95675 -0.00728797 3.02282 -0.00373355C3.08889 -0.000179118 3.1536 0.0164534 3.21319 0.0451998C3.27279 0.0739463 3.32608 0.114235 3.36999 0.163731L13.37 11.1637ZM9.27687 8.14811L5.98374 4.52311C5.64441 4.98804 5.47591 5.55583 5.50668 6.1306C5.53746 6.70538 5.76562 7.25192 6.15266 7.67797C6.5397 8.10401 7.0619 8.38345 7.63109 8.4691C8.20028 8.55476 8.78159 8.44138 9.27687 8.14811Z"
480
+ fill="#252623" />
481
+ </svg>`, isInline: true }); }
482
+ }
483
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: EyeOffIcon, decorators: [{
484
+ type: Component,
485
+ args: [{
486
+ selector: 'eye-off-icon',
487
+ standalone: true,
488
+ template: `<svg
489
+ width="100%"
490
+ height="100%"
491
+ viewBox="0 0 16 12"
492
+ fill="none"
493
+ xmlns="http://www.w3.org/2000/svg">
494
+ <path
495
+ d="M6.04249 1.61686C6.01297 1.58451 5.99246 1.54497 5.98301 1.5022C5.97357 1.45944 5.97553 1.41494 5.9887 1.37317C6.00186 1.33139 6.02577 1.29381 6.05803 1.26419C6.09028 1.23456 6.12976 1.21393 6.17249 1.20436C6.77196 1.06729 7.38506 0.998729 7.99999 0.999981C10.18 0.999981 12.1606 1.82873 13.7287 3.39686C14.9056 4.57373 15.435 5.74811 15.4569 5.79748C15.4853 5.86143 15.5 5.93063 15.5 6.00061C15.5 6.07059 15.4853 6.13979 15.4569 6.20373C15.435 6.25311 14.9056 7.42686 13.7287 8.60373C13.5504 8.78123 13.3673 8.94936 13.1794 9.10811C13.1299 9.15008 13.0661 9.1712 13.0014 9.16701C12.9367 9.16281 12.8761 9.13362 12.8325 9.08561L6.04249 1.61686ZM13.37 11.1637C13.4151 11.2122 13.4501 11.2691 13.473 11.3311C13.496 11.3932 13.5064 11.4592 13.5036 11.5253C13.5008 11.5914 13.485 11.6563 13.4569 11.7162C13.4289 11.7762 13.3893 11.8299 13.3403 11.8744C13.2913 11.9189 13.234 11.9533 13.1717 11.9755C13.1094 11.9977 13.0432 12.0072 12.9772 12.0037C12.9111 12.0001 12.8464 11.9835 12.7868 11.9548C12.7272 11.926 12.6739 11.8857 12.63 11.8362L11.25 10.3206C10.2266 10.7733 9.11907 11.0048 7.99999 11C5.81999 11 3.83937 10.1712 2.27124 8.60373C1.09437 7.42686 0.562494 6.25311 0.543119 6.20373C0.51469 6.13979 0.5 6.07059 0.5 6.00061C0.5 5.93063 0.51469 5.86143 0.543119 5.79748C0.562494 5.74998 1.09437 4.57373 2.27124 3.39686C2.74142 2.92451 3.26591 2.50953 3.83374 2.16061L2.62999 0.836231C2.58491 0.787802 2.54989 0.730907 2.52696 0.668843C2.50402 0.606779 2.49364 0.54078 2.4964 0.474672C2.49916 0.408565 2.51502 0.343662 2.54305 0.283728C2.57108 0.223793 2.61072 0.170017 2.65969 0.125518C2.70865 0.0810184 2.76597 0.0466801 2.8283 0.0244932C2.89063 0.00230626 2.95675 -0.00728797 3.02282 -0.00373355C3.08889 -0.000179118 3.1536 0.0164534 3.21319 0.0451998C3.27279 0.0739463 3.32608 0.114235 3.36999 0.163731L13.37 11.1637ZM9.27687 8.14811L5.98374 4.52311C5.64441 4.98804 5.47591 5.55583 5.50668 6.1306C5.53746 6.70538 5.76562 7.25192 6.15266 7.67797C6.5397 8.10401 7.0619 8.38345 7.63109 8.4691C8.20028 8.55476 8.78159 8.44138 9.27687 8.14811Z"
496
+ fill="#252623" />
497
+ </svg>`
498
+ }]
499
+ }] });
500
+
439
501
  class InputFieldComponent extends BaseControlComponent {
440
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: InputFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
441
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.0", type: InputFieldComponent, isStandalone: true, selector: "app-input-field", usesInheritance: true, ngImport: i0, template: "<label [for]=\"id\">\n {{ control.control.label }}\n</label>\n<input\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n [placeholder]=\"control.control.placeholder ?? ''\"\n appValidatorMessage\n [type]=\"control.control.type ?? 'text'\"\n [formControlName]=\"control.control.name\"\n [checked]=\"control.control.value\"\n [id]=\"id\" />\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "ngmodule", type: i2.ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: ValidatorMessageDirective, selector: "[appValidatorMessage]" }, { kind: "directive", type: HelpTextDirective, selector: "[appHelpText]", inputs: ["message"] }], viewProviders: [controlProvider] }); }
502
+ constructor() {
503
+ super(...arguments);
504
+ this.showPassword = false;
505
+ }
506
+ togglePasswordVisibility() {
507
+ this.showPassword = !this.showPassword;
508
+ }
509
+ get inputType() {
510
+ if (this.control.control.type === 'password' && this.showPassword) {
511
+ return 'text';
512
+ }
513
+ return this.control.control.type ?? 'text';
514
+ }
515
+ get isPasswordField() {
516
+ return this.control.control.type === 'password';
517
+ }
518
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: InputFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
519
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: InputFieldComponent, isStandalone: true, selector: "app-input-field", usesInheritance: true, ngImport: i0, template: "@if (control.control.label) {\n <label [for]=\"id\">\n {{ control.control.label }}\n </label>\n}\n<div class=\"input-wrapper\">\n <input\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n [placeholder]=\"control.control.placeholder ?? ''\"\n appValidatorMessage\n [type]=\"inputType\"\n [formControlName]=\"control.control.name\"\n [checked]=\"control.control.value\"\n [id]=\"id\"\n [class.has-toggle]=\"isPasswordField\" />\n @if (isPasswordField) {\n <button\n type=\"button\"\n class=\"toggle-password-btn\"\n (click)=\"togglePasswordVisibility()\"\n [attr.aria-label]=\"showPassword ? 'Ocultar contrase\u00F1a' : 'Mostrar contrase\u00F1a'\">\n @if (showPassword) {\n <eye-off-icon />\n } @else {\n <eye-icon />\n }\n </button>\n }\n</div>\n", styles: [".input-wrapper{position:relative}.toggle-password-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;width:24px;height:24px}.toggle-password-btn:hover{opacity:.7}input.has-toggle{padding-right:40px}\n"], dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "ngmodule", type: i2.ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: ValidatorMessageDirective, selector: "[appValidatorMessage]" }, { kind: "directive", type: HelpTextDirective, selector: "[appHelpText]", inputs: ["message"] }, { kind: "component", type: EyeIcon, selector: "eye-icon" }, { kind: "component", type: EyeOffIcon, selector: "eye-off-icon" }], viewProviders: [controlProvider] }); }
442
520
  }
443
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: InputFieldComponent, decorators: [{
521
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: InputFieldComponent, decorators: [{
444
522
  type: Component,
445
- args: [{ selector: 'app-input-field', imports: [...sharedControlDeps], viewProviders: [controlProvider], standalone: true, template: "<label [for]=\"id\">\n {{ control.control.label }}\n</label>\n<input\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n [placeholder]=\"control.control.placeholder ?? ''\"\n appValidatorMessage\n [type]=\"control.control.type ?? 'text'\"\n [formControlName]=\"control.control.name\"\n [checked]=\"control.control.value\"\n [id]=\"id\" />\n" }]
523
+ args: [{ selector: 'app-input-field', imports: [...sharedControlDeps, EyeIcon, EyeOffIcon], viewProviders: [controlProvider], standalone: true, template: "@if (control.control.label) {\n <label [for]=\"id\">\n {{ control.control.label }}\n </label>\n}\n<div class=\"input-wrapper\">\n <input\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n [placeholder]=\"control.control.placeholder ?? ''\"\n appValidatorMessage\n [type]=\"inputType\"\n [formControlName]=\"control.control.name\"\n [checked]=\"control.control.value\"\n [id]=\"id\"\n [class.has-toggle]=\"isPasswordField\" />\n @if (isPasswordField) {\n <button\n type=\"button\"\n class=\"toggle-password-btn\"\n (click)=\"togglePasswordVisibility()\"\n [attr.aria-label]=\"showPassword ? 'Ocultar contrase\u00F1a' : 'Mostrar contrase\u00F1a'\">\n @if (showPassword) {\n <eye-off-icon />\n } @else {\n <eye-icon />\n }\n </button>\n }\n</div>\n", styles: [".input-wrapper{position:relative}.toggle-password-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;width:24px;height:24px}.toggle-password-btn:hover{opacity:.7}input.has-toggle{padding-right:40px}\n"] }]
446
524
  }] });
447
525
 
448
526
  var inputField_component = /*#__PURE__*/Object.freeze({
@@ -451,12 +529,12 @@ var inputField_component = /*#__PURE__*/Object.freeze({
451
529
  });
452
530
 
453
531
  class RadioFieldComponent extends BaseControlComponent {
454
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: RadioFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
455
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.0", type: RadioFieldComponent, isStandalone: true, selector: "app-radio-field", usesInheritance: true, ngImport: i0, template: "<label for=\"\">\n {{ control.control.label }}\n</label>\n\n<div>\n @for (option of getOptions() | async; track option.value; let i = $index) {\n <div>\n <input\n type=\"radio\"\n [formControlName]=\"control.control.name\"\n [value]=\"option.value\"\n [id]=\"id + i\" />\n <label [for]=\"id + i\">\n {{ option.label }}\n </label>\n </div>\n }\n</div>\n\n<div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n [formControlName]=\"control.control.name\"\n ngDefaultControl></div>\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: i2.ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: ValidatorMessageDirective, selector: "[appValidatorMessage]" }, { kind: "directive", type: HelpTextDirective, selector: "[appHelpText]", inputs: ["message"] }], viewProviders: [controlProvider] }); }
532
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RadioFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
533
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.1", type: RadioFieldComponent, isStandalone: true, selector: "app-radio-field", usesInheritance: true, ngImport: i0, template: "@if (control.control.label) {\n <label for=\"\">\n {{ control.control.label }}\n </label>\n}\n\n<div>\n @for (option of getOptions() | async; track option.value; let i = $index) {\n <div>\n <input\n type=\"radio\"\n [formControlName]=\"control.control.name\"\n [value]=\"option.value\"\n [id]=\"id + i\" />\n <label [for]=\"id + i\">\n {{ option.label }}\n </label>\n </div>\n }\n</div>\n\n<div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n [formControlName]=\"control.control.name\"\n ngDefaultControl></div>\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "ngmodule", type: i2.ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: ValidatorMessageDirective, selector: "[appValidatorMessage]" }, { kind: "directive", type: HelpTextDirective, selector: "[appHelpText]", inputs: ["message"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], viewProviders: [controlProvider] }); }
456
534
  }
457
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: RadioFieldComponent, decorators: [{
535
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: RadioFieldComponent, decorators: [{
458
536
  type: Component,
459
- args: [{ selector: 'app-radio-field', imports: [...sharedControlDeps], viewProviders: [controlProvider], standalone: true, template: "<label for=\"\">\n {{ control.control.label }}\n</label>\n\n<div>\n @for (option of getOptions() | async; track option.value; let i = $index) {\n <div>\n <input\n type=\"radio\"\n [formControlName]=\"control.control.name\"\n [value]=\"option.value\"\n [id]=\"id + i\" />\n <label [for]=\"id + i\">\n {{ option.label }}\n </label>\n </div>\n }\n</div>\n\n<div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n [formControlName]=\"control.control.name\"\n ngDefaultControl></div>\n" }]
537
+ args: [{ selector: 'app-radio-field', imports: [...sharedControlDeps], viewProviders: [controlProvider], standalone: true, template: "@if (control.control.label) {\n <label for=\"\">\n {{ control.control.label }}\n </label>\n}\n\n<div>\n @for (option of getOptions() | async; track option.value; let i = $index) {\n <div>\n <input\n type=\"radio\"\n [formControlName]=\"control.control.name\"\n [value]=\"option.value\"\n [id]=\"id + i\" />\n <label [for]=\"id + i\">\n {{ option.label }}\n </label>\n </div>\n }\n</div>\n\n<div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n [formControlName]=\"control.control.name\"\n ngDefaultControl></div>\n" }]
460
538
  }] });
461
539
 
462
540
  var radioField_component = /*#__PURE__*/Object.freeze({
@@ -1 +1 @@
1
- {"version":3,"file":"superlikers-dynamic-forms.mjs","sources":["../../../projects/dynamic-forms/src/lib/utils/control-data.token.ts","../../../projects/dynamic-forms/src/lib/pipes/control-injector.pipe.ts","../../../projects/dynamic-forms/src/lib/models/forms.model.ts","../../../projects/dynamic-forms/src/lib/services/control-resolver/control-resolver.service.ts","../../../projects/dynamic-forms/src/lib/utils/validation-error-messages.token.ts","../../../projects/dynamic-forms/src/lib/components/errors/errors.component.ts","../../../projects/dynamic-forms/src/lib/directives/validator-message/validator-message.directive.ts","../../../projects/dynamic-forms/src/lib/components/help-text/help-text.component.ts","../../../projects/dynamic-forms/src/lib/directives/helpText/help-text.directive.ts","../../../projects/dynamic-forms/src/lib/directives/validator-array-message/validator-array-message.directive.ts","../../../projects/dynamic-forms/src/lib/components/base-control/base-control.component.ts","../../../projects/dynamic-forms/src/lib/components/checkbox-field/checkbox-field.component.ts","../../../projects/dynamic-forms/src/lib/components/checkbox-field/checkbox-field.component.html","../../../projects/dynamic-forms/src/lib/components/checkbox-group-field/checkbox-group-field.component.ts","../../../projects/dynamic-forms/src/lib/components/checkbox-group-field/checkbox-group-field.component.html","../../../projects/dynamic-forms/src/lib/components/group-field/group-field.component.ts","../../../projects/dynamic-forms/src/lib/components/group-field/group-field.component.html","../../../projects/dynamic-forms/src/lib/components/input-field/input-field.component.ts","../../../projects/dynamic-forms/src/lib/components/input-field/input-field.component.html","../../../projects/dynamic-forms/src/lib/components/radio-field/radio-field.component.ts","../../../projects/dynamic-forms/src/lib/components/radio-field/radio-field.component.html","../../../projects/dynamic-forms/src/public-api.ts","../../../projects/dynamic-forms/src/superlikers-dynamic-forms.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core'\nimport { Control } from '../models/forms.model'\nimport { FormGroup } from '@angular/forms'\n\nexport interface ControlData {\n control: Control\n formGroup?: FormGroup\n index?: number\n}\n\nexport const CONTROL_DATA = new InjectionToken<ControlData>('Control Data')\n","import { Injector, Pipe, PipeTransform, inject } from '@angular/core'\nimport { Control } from '../models/forms.model'\nimport { CONTROL_DATA } from '../utils/control-data.token'\nimport { FormGroup } from '@angular/forms'\n\n@Pipe({\n name: 'controlInjector',\n standalone: true\n})\nexport class ControlInjector implements PipeTransform {\n injector = inject(Injector)\n\n transform(name: string, control: Control, formGroup?: FormGroup, index?: number): Injector {\n return Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: CONTROL_DATA,\n useValue: { key: name, control, formGroup, index }\n }\n ]\n })\n }\n}\n","import { Type } from '@angular/core'\nimport { FormGroup, Validators } from '@angular/forms'\nimport { Observable } from 'rxjs'\n\nexport type ControlType = 'input' | 'group' | 'checkbox' | 'checkbox-group' | 'radio' | 'select'\n\nexport enum ControlTypeValues {\n INPUT = 'input',\n GROUP = 'group',\n CHECKBOX = 'checkbox',\n CHECKBOX_GROUP = 'checkbox-group',\n RADIO = 'radio',\n SELECT = 'select'\n}\n\nexport interface Option {\n label: string\n value: unknown\n selected?: boolean\n disabled?: boolean\n}\n\ntype CustomValidators = object\ntype ValidatorsKeys = keyof Omit<typeof Validators & CustomValidators, 'prototype' | 'compose' | 'composeAsync'>\n\nexport interface Control {\n id: number\n label: string\n name: string\n controlType: ControlType\n helpText?: string\n type?: string\n value?: unknown\n placeholder?: string\n disabled?: (form: FormGroup) => boolean\n asyncOptions?: (form: FormGroup) => Observable<Option[]>\n options?: Option[]\n controls?: Control[]\n visible?: (form: FormGroup) => boolean\n validators?: {\n [key in ValidatorsKeys]?: unknown\n }\n}\n\nexport type ControlMap = {\n [T in Control['controlType']]: () => Promise<Type<unknown>>\n}\n","import { Injectable, Type } from '@angular/core'\nimport { distinctUntilChanged, from, map, of, tap } from 'rxjs'\n\nimport { Control, ControlMap } from '../../models/forms.model'\nimport { FormGroup } from '@angular/forms'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ControlResolver {\n private lazyControlComponents: ControlMap = {\n input: () => import('../../components/input-field/input-field.component').then(c => c.InputFieldComponent),\n group: () => import('../../components/group-field/group-field.component').then(c => c.GroupFieldComponent),\n radio: () => import('../../components/radio-field/radio-field.component').then(c => c.RadioFieldComponent),\n checkbox: () => import('../../components/checkbox-field/checkbox-field.component').then(c => c.CheckboxFieldComponent),\n 'checkbox-group': () => import('../../components/checkbox-group-field/checkbox-group-field.component').then(c => c.CheckboxGroupFieldComponent),\n select: () => import('../../components/select-field/select-field.component').then(c => c.SelectFieldComponent)\n }\n\n private loadedControlComponents = new Map<string, Type<unknown>>()\n\n resolve(control: Control, form: FormGroup) {\n const controlType = control.controlType\n\n const isVisible = this.checkVisible(control, form)\n\n if (!isVisible) return\n\n const loadedComponent = this.loadedControlComponents.get(controlType)\n\n if (loadedComponent) return of(loadedComponent)\n\n return from(this.lazyControlComponents[controlType]()).pipe(\n tap(component => {\n this.loadedControlComponents.set(controlType, component)\n })\n )\n }\n\n checkVisible(control: Control, form: FormGroup) {\n if (!control.visible) return true\n return control.visible(form)\n }\n\n toggleControlDisability(controls: Control[], form: FormGroup) {\n return form.valueChanges.pipe(\n distinctUntilChanged((prev, current) => {\n return JSON.stringify(prev) === JSON.stringify(current)\n }),\n map(() => {\n controls.forEach(control => {\n if (control.disabled) {\n const disabled = control.disabled(form)\n if (disabled) {\n form.get(control.name)?.disable()\n } else {\n form.get(control.name)?.enable()\n }\n }\n })\n })\n )\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { InjectionToken } from '@angular/core'\n\nexport const ERROR_MESSAGES: { [key: string]: (args?: any) => string } = {\n required: () => `This field is required`,\n requiredTrue: () => `This field is required`,\n pattern: () => `Does not match the pattern`,\n email: () => `Must be a valid email`,\n minlength: ({ requiredLength }) => `Length must be at least ${requiredLength} characters`,\n customError: error => error\n}\n\nexport const ERROR_MESSAGES_ES: { [key: string]: (args?: any) => string } = {\n required: () => `Este campo es obligatorio`,\n requiredTrue: () => `Este campo es obligatorio`,\n pattern: () => `No coincide con el patrón`,\n email: () => `Debe ser un correo electrónico válido`,\n minlength: ({ requiredLength }) => `La longitud debe ser al menos de ${requiredLength} caracteres`,\n customError: error => error\n}\n\nexport const VALIDATION_ERROR_MESSAGES = new InjectionToken(`Validation Messages`, {\n providedIn: 'root',\n factory: () => ERROR_MESSAGES\n})\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { KeyValue, KeyValuePipe } from '@angular/common'\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, inject } from '@angular/core'\nimport { ValidationErrors } from '@angular/forms'\n\nimport { VALIDATION_ERROR_MESSAGES } from '../../utils/validation-error-messages.token'\n\n@Component({\n selector: 'app-errors',\n imports: [KeyValuePipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @for (error of errors | keyvalue; track error.key) {\n <div class=\"error-text\">{{ getError(error) }}</div>\n }\n `,\n standalone: true\n})\nexport class ErrorsComponent {\n @Input() errors: ValidationErrors | null | undefined = null\n\n @HostBinding('class') hostClass = ''\n\n protected errorsMap = inject(VALIDATION_ERROR_MESSAGES)\n\n getError(error: KeyValue<string, any>) {\n if (!this.errorsMap[error.key]) {\n console.warn(`missing message for ${error.key}`)\n return\n }\n\n return this.errorsMap[error.key](error.value)\n }\n}\n","import { ComponentRef, Directive, ElementRef, OnDestroy, OnInit, ViewContainerRef, inject } from '@angular/core'\nimport { NgControl, NgForm, FormGroupDirective, ControlContainer } from '@angular/forms'\nimport { Subscription, merge, fromEvent, iif, EMPTY, startWith } from 'rxjs'\n\nimport { ErrorsComponent } from '../../components/errors/errors.component'\n\n@Directive({\n selector: '[appValidatorMessage]',\n standalone: true\n})\nexport class ValidatorMessageDirective implements OnInit, OnDestroy {\n ngControl = inject(NgControl, { self: true })\n elementRef = inject(ElementRef)\n\n private componentRef: ComponentRef<ErrorsComponent> | null = null\n\n get form() {\n return this.parentContainer?.formDirective as NgForm | FormGroupDirective | null\n }\n\n private parentContainer = inject(ControlContainer, { optional: true })\n private vcr = inject(ViewContainerRef)\n\n controlSubscription!: Subscription\n\n ngOnInit() {\n if (!this.ngControl.control) return\n\n this.controlSubscription = merge(\n this.ngControl.control.statusChanges,\n fromEvent(this.elementRef.nativeElement, 'blur'),\n iif(() => !!this.form, this.form!.ngSubmit, EMPTY)\n )\n .pipe(startWith(this.ngControl.control.status))\n .subscribe(() => {\n if (this.ngControl.errors && this.form?.submitted) {\n if (this.componentRef) return\n\n this.componentRef = this.vcr.createComponent(ErrorsComponent)\n this.componentRef.changeDetectorRef.markForCheck()\n this.componentRef.setInput('errors', this.ngControl.errors)\n } else {\n this.componentRef?.destroy()\n this.componentRef = null\n }\n })\n }\n\n ngOnDestroy() {\n this.controlSubscription.unsubscribe()\n }\n}\n","import { Component, Input } from '@angular/core'\n\n@Component({\n selector: 'app-help-text',\n imports: [],\n template: '<p class=\"help-text\">{{ message }}</p>',\n standalone: true\n})\nexport class HelpTextComponent {\n @Input() message = ''\n}\n","import { ComponentRef, Directive, ElementRef, Input, OnInit, ViewContainerRef, inject } from '@angular/core'\nimport { HelpTextComponent } from '../../components/help-text/help-text.component'\n\n@Directive({\n selector: '[appHelpText]',\n standalone: true\n})\nexport class HelpTextDirective implements OnInit {\n @Input() message = ''\n\n elementRef = inject(ElementRef)\n private vcr = inject(ViewContainerRef)\n private componentRef: ComponentRef<HelpTextComponent> | null = null\n\n ngOnInit() {\n if (!this.message) return\n\n this.componentRef = this.vcr.createComponent(HelpTextComponent)\n this.componentRef.setInput('message', this.message)\n }\n}\n","import { ComponentRef, Directive, ElementRef, OnDestroy, OnInit, ViewContainerRef, inject } from '@angular/core'\nimport { ControlContainer, FormGroupDirective, NgForm } from '@angular/forms'\nimport { EMPTY, Subscription, fromEvent, iif, merge, startWith } from 'rxjs'\nimport { ErrorsComponent } from '../../components/errors/errors.component'\n\n@Directive({\n selector: '[appValidatorArrayMessage]',\n standalone: true\n})\nexport class ValidatorArrayMessageDirective implements OnInit, OnDestroy {\n private controlSubscription!: Subscription\n\n private parentContainer = inject(ControlContainer)\n private vcr = inject(ViewContainerRef)\n elementRef = inject(ElementRef)\n\n private componentRef: ComponentRef<ErrorsComponent> | null = null\n\n get form() {\n return this.parentContainer?.formDirective as NgForm | FormGroupDirective | null\n }\n\n ngOnInit() {\n const formArray = this.parentContainer.control\n\n if (!formArray) return\n\n this.controlSubscription = merge(\n formArray.statusChanges,\n fromEvent(this.elementRef.nativeElement, 'blur'),\n iif(() => !!this.form, this.form!.ngSubmit, EMPTY)\n )\n .pipe(startWith(formArray.status))\n .subscribe(() => {\n if (formArray.errors && this.form?.submitted) {\n if (this.componentRef) return\n\n this.componentRef = this.vcr.createComponent(ErrorsComponent)\n this.componentRef.changeDetectorRef.markForCheck()\n this.componentRef.setInput('errors', formArray.errors)\n } else {\n this.componentRef?.destroy()\n this.componentRef = null\n }\n })\n }\n\n ngOnDestroy() {\n this.controlSubscription?.unsubscribe()\n }\n}\n","import { Directive, HostBinding, OnDestroy, OnInit, StaticProvider, inject } from '@angular/core'\nimport { AbstractControl, ControlContainer, FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms'\nimport { AsyncPipe, CommonModule } from '@angular/common'\nimport { of } from 'rxjs'\n\nimport { CONTROL_DATA } from '../../utils/control-data.token'\nimport { Control } from '../../models/forms.model'\n\nimport { ValidatorMessageDirective } from '../../directives/validator-message/validator-message.directive'\nimport { HelpTextDirective } from '../../directives/helpText/help-text.directive'\nimport { ValidatorArrayMessageDirective } from '../../directives/validator-array-message/validator-array-message.directive'\n\nexport const sharedControlDeps = [CommonModule, ReactiveFormsModule, ValidatorMessageDirective, HelpTextDirective, ValidatorArrayMessageDirective, AsyncPipe]\n\nexport const controlProvider: StaticProvider = {\n provide: ControlContainer,\n useFactory: () => inject(ControlContainer, { skipSelf: true })\n}\n\n@Directive()\nexport class BaseControlComponent implements OnInit, OnDestroy {\n @HostBinding('class') hostClass = ''\n\n control = inject(CONTROL_DATA)\n\n formControl: AbstractControl = new FormControl(this.control.control.value, this.resolveValidators(this.control.control))\n id = this.control.control.name + this.control.control.id + (this.control.index ?? '')\n\n private parentGroupDir = inject(ControlContainer)\n\n get parentFormGroup() {\n return this.parentGroupDir.control as FormGroup\n }\n\n ngOnInit() {\n this.initialize()\n }\n\n ngOnDestroy() {\n this.destroy()\n }\n\n initialize() {\n if (this.control.formGroup) {\n this.control.formGroup.addControl(this.control.control.name, this.formControl)\n } else {\n this.parentFormGroup.addControl(this.control.control.name, this.formControl)\n }\n\n this.hostClass = `field wrapper-${this.control.control.name}`\n }\n\n destroy() {\n if (this.control.formGroup) return\n else this.parentFormGroup.removeControl(this.control.control.name)\n }\n\n resolveValidators({ validators = {} }: Control) {\n const validatorsKeys = Object.keys(validators) as Array<keyof typeof validators>\n\n return validatorsKeys.map(key => {\n const value = validators[key]\n\n if (key === 'required') {\n return Validators.required\n }\n\n if (key === 'email') {\n return Validators.email\n }\n\n if (key === 'requiredTrue') {\n return Validators.requiredTrue\n }\n\n if (key === 'minLength' && typeof value === 'number') {\n return Validators.minLength(value)\n }\n\n if (key === 'pattern' && typeof value === 'string') {\n return Validators.pattern(value)\n }\n\n return Validators.nullValidator\n })\n }\n\n getOptions() {\n if (this.control.control.options) {\n return of(this.control.control.options)\n }\n\n if (!this.control.control.asyncOptions) return of([])\n\n return this.control.control.asyncOptions(this.parentFormGroup)\n }\n}\n","import { Component } from '@angular/core'\nimport { BaseControlComponent, controlProvider, sharedControlDeps } from '../base-control/base-control.component'\n\n@Component({\n selector: 'app-checkbox-field',\n imports: [...sharedControlDeps],\n viewProviders: [controlProvider],\n templateUrl: './checkbox-field.component.html',\n standalone: true\n})\nexport class CheckboxFieldComponent extends BaseControlComponent {}\n","<div>\n <input\n type=\"checkbox\"\n [id]=\"id\"\n [formControlName]=\"control.control.name\" />\n <label\n [for]=\"id\"\n [innerHTML]=\"control.control.label\">\n </label>\n\n <div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n ngDefaultControl\n [formControlName]=\"control.control.name\"></div>\n</div>\n","import { Component } from '@angular/core'\nimport { BaseControlComponent, controlProvider, sharedControlDeps } from '../base-control/base-control.component'\nimport { FormArray, FormControl } from '@angular/forms'\n\n@Component({\n selector: 'app-checkbox-group-field',\n imports: [...sharedControlDeps],\n viewProviders: [controlProvider],\n templateUrl: './checkbox-group-field.component.html',\n standalone: true\n})\nexport class CheckboxGroupFieldComponent extends BaseControlComponent {\n override formControl = new FormArray<FormControl>([], this.resolveValidators(this.control.control))\n\n change(event: Event) {\n const element = event.target as HTMLInputElement\n const value = element.value as never\n\n const index = this.formControl.value.indexOf(value)\n if (index === -1) {\n const fc = new FormControl(value)\n this.formControl.push(fc)\n } else {\n this.formControl.removeAt(index)\n }\n }\n}\n","<label for=\"\">\n {{ control.control.label }}\n</label>\n\n<div\n [formArrayName]=\"control.control.name\"\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorArrayMessage>\n @for (option of getOptions() | async; track option.value; let index = $index) {\n <div>\n <input\n type=\"checkbox\"\n (change)=\"change($event)\"\n [value]=\"option.value\"\n [id]=\"id + index\" />\n <label [for]=\"id + index\">\n {{ option.label }}\n </label>\n </div>\n }\n</div>\n","import { Component, OnInit, inject } from '@angular/core'\nimport { BaseControlComponent, controlProvider, sharedControlDeps } from '../base-control/base-control.component'\nimport { FormGroup } from '@angular/forms'\nimport { ControlResolver } from '../../services/control-resolver/control-resolver.service'\nimport { ControlInjector } from '../../pipes/control-injector.pipe'\n\n@Component({\n selector: 'app-group-field',\n imports: [...sharedControlDeps, ControlInjector],\n viewProviders: [controlProvider],\n templateUrl: './group-field.component.html',\n standalone: true\n})\nexport class GroupFieldComponent extends BaseControlComponent implements OnInit {\n controlResolver = inject(ControlResolver)\n\n override formControl = new FormGroup({})\n}\n","<div [formGroupName]=\"control.control.name\">\n @for (control of control.control.controls; track control.name) {\n <ng-container\n [ngComponentOutlet]=\"controlResolver.resolve(control, parentFormGroup) | async\"\n [ngComponentOutletInjector]=\"control.name | controlInjector: control\">\n </ng-container>\n }\n</div>\n","import { Component } from '@angular/core'\nimport { BaseControlComponent, controlProvider, sharedControlDeps } from '../base-control/base-control.component'\n\n@Component({\n selector: 'app-input-field',\n imports: [...sharedControlDeps],\n viewProviders: [controlProvider],\n templateUrl: './input-field.component.html',\n standalone: true\n})\nexport class InputFieldComponent extends BaseControlComponent {}\n","<label [for]=\"id\">\n {{ control.control.label }}\n</label>\n<input\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n [placeholder]=\"control.control.placeholder ?? ''\"\n appValidatorMessage\n [type]=\"control.control.type ?? 'text'\"\n [formControlName]=\"control.control.name\"\n [checked]=\"control.control.value\"\n [id]=\"id\" />\n","import { Component } from '@angular/core'\nimport { BaseControlComponent, controlProvider, sharedControlDeps } from '../base-control/base-control.component'\n\n@Component({\n selector: 'app-radio-field',\n imports: [...sharedControlDeps],\n viewProviders: [controlProvider],\n templateUrl: './radio-field.component.html',\n standalone: true\n})\nexport class RadioFieldComponent extends BaseControlComponent {}\n","<label for=\"\">\n {{ control.control.label }}\n</label>\n\n<div>\n @for (option of getOptions() | async; track option.value; let i = $index) {\n <div>\n <input\n type=\"radio\"\n [formControlName]=\"control.control.name\"\n [value]=\"option.value\"\n [id]=\"id + i\" />\n <label [for]=\"id + i\">\n {{ option.label }}\n </label>\n </div>\n }\n</div>\n\n<div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n [formControlName]=\"control.control.name\"\n ngDefaultControl></div>\n","/*\n * Public API Surface of ngx-dynamic-forms\n */\n\nexport * from './lib/pipes/control-injector.pipe'\nexport * from './lib/models/forms.model'\nexport * from './lib/services/control-resolver/control-resolver.service'\n\nexport * from './lib/components/base-control/base-control.component'\nexport * from './lib/components/checkbox-field/checkbox-field.component'\nexport * from './lib/components/checkbox-group-field/checkbox-group-field.component'\nexport * from './lib/components/errors/errors.component'\nexport * from './lib/components/group-field/group-field.component'\nexport * from './lib/components/help-text/help-text.component'\nexport * from './lib/components/input-field/input-field.component'\nexport * from './lib/components/radio-field/radio-field.component'\n\nexport * from './lib/directives/helpText/help-text.directive'\nexport * from './lib/directives/validator-array-message/validator-array-message.directive'\nexport * from './lib/directives/validator-message/validator-message.directive'\n\nexport * from './lib/utils/control-data.token'\nexport * from './lib/utils/validation-error-messages.token'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.ValidatorMessageDirective","i4.HelpTextDirective","i3.HelpTextDirective","i4.ValidatorArrayMessageDirective"],"mappings":"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"}
1
+ {"version":3,"file":"superlikers-dynamic-forms.mjs","sources":["../../../projects/dynamic-forms/src/lib/utils/control-data.token.ts","../../../projects/dynamic-forms/src/lib/pipes/control-injector.pipe.ts","../../../projects/dynamic-forms/src/lib/models/forms.model.ts","../../../projects/dynamic-forms/src/lib/services/control-resolver/control-resolver.service.ts","../../../projects/dynamic-forms/src/lib/utils/validation-error-messages.token.ts","../../../projects/dynamic-forms/src/lib/components/errors/errors.component.ts","../../../projects/dynamic-forms/src/lib/directives/validator-message/validator-message.directive.ts","../../../projects/dynamic-forms/src/lib/components/help-text/help-text.component.ts","../../../projects/dynamic-forms/src/lib/directives/helpText/help-text.directive.ts","../../../projects/dynamic-forms/src/lib/directives/validator-array-message/validator-array-message.directive.ts","../../../projects/dynamic-forms/src/lib/components/base-control/base-control.component.ts","../../../projects/dynamic-forms/src/lib/components/checkbox-field/checkbox-field.component.ts","../../../projects/dynamic-forms/src/lib/components/checkbox-field/checkbox-field.component.html","../../../projects/dynamic-forms/src/lib/components/checkbox-group-field/checkbox-group-field.component.ts","../../../projects/dynamic-forms/src/lib/components/checkbox-group-field/checkbox-group-field.component.html","../../../projects/dynamic-forms/src/lib/components/group-field/group-field.component.ts","../../../projects/dynamic-forms/src/lib/components/group-field/group-field.component.html","../../../projects/dynamic-forms/src/lib/components/icons/eye-icon.component.ts","../../../projects/dynamic-forms/src/lib/components/icons/eye-off-icon.component.ts","../../../projects/dynamic-forms/src/lib/components/input-field/input-field.component.ts","../../../projects/dynamic-forms/src/lib/components/input-field/input-field.component.html","../../../projects/dynamic-forms/src/lib/components/radio-field/radio-field.component.ts","../../../projects/dynamic-forms/src/lib/components/radio-field/radio-field.component.html","../../../projects/dynamic-forms/src/public-api.ts","../../../projects/dynamic-forms/src/superlikers-dynamic-forms.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core'\nimport { Control } from '../models/forms.model'\nimport { FormGroup } from '@angular/forms'\n\nexport interface ControlData {\n control: Control\n formGroup?: FormGroup\n index?: number\n}\n\nexport const CONTROL_DATA = new InjectionToken<ControlData>('Control Data')\n","import { Injector, Pipe, PipeTransform, inject } from '@angular/core'\nimport { Control } from '../models/forms.model'\nimport { CONTROL_DATA } from '../utils/control-data.token'\nimport { FormGroup } from '@angular/forms'\n\n@Pipe({\n name: 'controlInjector',\n standalone: true\n})\nexport class ControlInjector implements PipeTransform {\n injector = inject(Injector)\n\n transform(name: string, control: Control, formGroup?: FormGroup, index?: number): Injector {\n return Injector.create({\n parent: this.injector,\n providers: [\n {\n provide: CONTROL_DATA,\n useValue: { key: name, control, formGroup, index }\n }\n ]\n })\n }\n}\n","import { Type } from '@angular/core'\nimport { FormGroup, Validators } from '@angular/forms'\nimport { Observable } from 'rxjs'\n\nexport type ControlType = 'input' | 'group' | 'checkbox' | 'checkbox-group' | 'radio' | 'select'\n\nexport enum ControlTypeValues {\n INPUT = 'input',\n GROUP = 'group',\n CHECKBOX = 'checkbox',\n CHECKBOX_GROUP = 'checkbox-group',\n RADIO = 'radio',\n SELECT = 'select'\n}\n\nexport interface Option {\n label: string\n value: unknown\n selected?: boolean\n disabled?: boolean\n}\n\ntype CustomValidators = object\ntype ValidatorsKeys = keyof Omit<typeof Validators & CustomValidators, 'prototype' | 'compose' | 'composeAsync'>\n\nexport interface Control {\n id: number\n label?: string\n name: string\n controlType: ControlType\n helpText?: string\n type?: string\n value?: unknown\n placeholder?: string\n disabled?: (form: FormGroup) => boolean\n asyncOptions?: (form: FormGroup) => Observable<Option[]>\n options?: Option[]\n controls?: Control[]\n visible?: (form: FormGroup) => boolean\n validators?: {\n [key in ValidatorsKeys]?: unknown\n }\n}\n\nexport type ControlMap = {\n [T in Control['controlType']]: () => Promise<Type<unknown>>\n}\n","import { Injectable, Type } from '@angular/core'\nimport { distinctUntilChanged, from, map, of, tap } from 'rxjs'\n\nimport { Control, ControlMap } from '../../models/forms.model'\nimport { FormGroup } from '@angular/forms'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ControlResolver {\n private lazyControlComponents: ControlMap = {\n input: () => import('../../components/input-field/input-field.component').then(c => c.InputFieldComponent),\n group: () => import('../../components/group-field/group-field.component').then(c => c.GroupFieldComponent),\n radio: () => import('../../components/radio-field/radio-field.component').then(c => c.RadioFieldComponent),\n checkbox: () => import('../../components/checkbox-field/checkbox-field.component').then(c => c.CheckboxFieldComponent),\n 'checkbox-group': () => import('../../components/checkbox-group-field/checkbox-group-field.component').then(c => c.CheckboxGroupFieldComponent),\n select: () => import('../../components/select-field/select-field.component').then(c => c.SelectFieldComponent)\n }\n\n private loadedControlComponents = new Map<string, Type<unknown>>()\n\n resolve(control: Control, form: FormGroup) {\n const controlType = control.controlType\n\n const isVisible = this.checkVisible(control, form)\n\n if (!isVisible) return\n\n const loadedComponent = this.loadedControlComponents.get(controlType)\n\n if (loadedComponent) return of(loadedComponent)\n\n return from(this.lazyControlComponents[controlType]()).pipe(\n tap(component => {\n this.loadedControlComponents.set(controlType, component)\n })\n )\n }\n\n checkVisible(control: Control, form: FormGroup) {\n if (!control.visible) return true\n return control.visible(form)\n }\n\n toggleControlDisability(controls: Control[], form: FormGroup) {\n return form.valueChanges.pipe(\n distinctUntilChanged((prev, current) => {\n return JSON.stringify(prev) === JSON.stringify(current)\n }),\n map(() => {\n controls.forEach(control => {\n if (control.disabled) {\n const disabled = control.disabled(form)\n if (disabled) {\n form.get(control.name)?.disable()\n } else {\n form.get(control.name)?.enable()\n }\n }\n })\n })\n )\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { InjectionToken } from '@angular/core'\n\nexport const ERROR_MESSAGES: { [key: string]: (args?: any) => string } = {\n required: () => `This field is required`,\n requiredTrue: () => `This field is required`,\n pattern: () => `Does not match the pattern`,\n email: () => `Must be a valid email`,\n minlength: ({ requiredLength }) => `Length must be at least ${requiredLength} characters`,\n customError: error => error\n}\n\nexport const ERROR_MESSAGES_ES: { [key: string]: (args?: any) => string } = {\n required: () => `Este campo es obligatorio`,\n requiredTrue: () => `Este campo es obligatorio`,\n pattern: () => `No coincide con el patrón`,\n email: () => `Debe ser un correo electrónico válido`,\n minlength: ({ requiredLength }) => `La longitud debe ser al menos de ${requiredLength} caracteres`,\n customError: error => error\n}\n\nexport const VALIDATION_ERROR_MESSAGES = new InjectionToken(`Validation Messages`, {\n providedIn: 'root',\n factory: () => ERROR_MESSAGES\n})\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { KeyValue, KeyValuePipe } from '@angular/common'\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, inject } from '@angular/core'\nimport { ValidationErrors } from '@angular/forms'\n\nimport { VALIDATION_ERROR_MESSAGES } from '../../utils/validation-error-messages.token'\n\n@Component({\n selector: 'app-errors',\n imports: [KeyValuePipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @for (error of errors | keyvalue; track error.key) {\n <div class=\"error-text\">{{ getError(error) }}</div>\n }\n `,\n standalone: true\n})\nexport class ErrorsComponent {\n @Input() errors: ValidationErrors | null | undefined = null\n\n @HostBinding('class') hostClass = ''\n\n protected errorsMap = inject(VALIDATION_ERROR_MESSAGES)\n\n getError(error: KeyValue<string, any>) {\n if (!this.errorsMap[error.key]) {\n console.warn(`missing message for ${error.key}`)\n return\n }\n\n return this.errorsMap[error.key](error.value)\n }\n}\n","import { ComponentRef, Directive, ElementRef, OnDestroy, OnInit, ViewContainerRef, inject } from '@angular/core'\nimport { NgControl, NgForm, FormGroupDirective, ControlContainer } from '@angular/forms'\nimport { Subscription, merge, fromEvent, iif, EMPTY, startWith } from 'rxjs'\n\nimport { ErrorsComponent } from '../../components/errors/errors.component'\n\n@Directive({\n selector: '[appValidatorMessage]',\n standalone: true\n})\nexport class ValidatorMessageDirective implements OnInit, OnDestroy {\n ngControl = inject(NgControl, { self: true })\n elementRef = inject(ElementRef)\n\n private componentRef: ComponentRef<ErrorsComponent> | null = null\n\n get form() {\n return this.parentContainer?.formDirective as NgForm | FormGroupDirective | null\n }\n\n private parentContainer = inject(ControlContainer, { optional: true })\n private vcr = inject(ViewContainerRef)\n\n controlSubscription!: Subscription\n\n ngOnInit() {\n if (!this.ngControl.control) return\n\n this.controlSubscription = merge(\n this.ngControl.control.statusChanges,\n fromEvent(this.elementRef.nativeElement, 'blur'),\n iif(() => !!this.form, this.form!.ngSubmit, EMPTY)\n )\n .pipe(startWith(this.ngControl.control.status))\n .subscribe(() => {\n if (this.ngControl.errors && this.form?.submitted) {\n if (this.componentRef) return\n\n this.componentRef = this.vcr.createComponent(ErrorsComponent)\n this.componentRef.changeDetectorRef.markForCheck()\n this.componentRef.setInput('errors', this.ngControl.errors)\n } else {\n this.componentRef?.destroy()\n this.componentRef = null\n }\n })\n }\n\n ngOnDestroy() {\n this.controlSubscription.unsubscribe()\n }\n}\n","import { Component, Input } from '@angular/core'\n\n@Component({\n selector: 'app-help-text',\n imports: [],\n template: '<p class=\"help-text\">{{ message }}</p>',\n standalone: true\n})\nexport class HelpTextComponent {\n @Input() message = ''\n}\n","import { ComponentRef, Directive, ElementRef, Input, OnInit, ViewContainerRef, inject } from '@angular/core'\nimport { HelpTextComponent } from '../../components/help-text/help-text.component'\n\n@Directive({\n selector: '[appHelpText]',\n standalone: true\n})\nexport class HelpTextDirective implements OnInit {\n @Input() message = ''\n\n elementRef = inject(ElementRef)\n private vcr = inject(ViewContainerRef)\n private componentRef: ComponentRef<HelpTextComponent> | null = null\n\n ngOnInit() {\n if (!this.message) return\n\n this.componentRef = this.vcr.createComponent(HelpTextComponent)\n this.componentRef.setInput('message', this.message)\n }\n}\n","import { ComponentRef, Directive, ElementRef, OnDestroy, OnInit, ViewContainerRef, inject } from '@angular/core'\nimport { ControlContainer, FormGroupDirective, NgForm } from '@angular/forms'\nimport { EMPTY, Subscription, fromEvent, iif, merge, startWith } from 'rxjs'\nimport { ErrorsComponent } from '../../components/errors/errors.component'\n\n@Directive({\n selector: '[appValidatorArrayMessage]',\n standalone: true\n})\nexport class ValidatorArrayMessageDirective implements OnInit, OnDestroy {\n private controlSubscription!: Subscription\n\n private parentContainer = inject(ControlContainer)\n private vcr = inject(ViewContainerRef)\n elementRef = inject(ElementRef)\n\n private componentRef: ComponentRef<ErrorsComponent> | null = null\n\n get form() {\n return this.parentContainer?.formDirective as NgForm | FormGroupDirective | null\n }\n\n ngOnInit() {\n const formArray = this.parentContainer.control\n\n if (!formArray) return\n\n this.controlSubscription = merge(\n formArray.statusChanges,\n fromEvent(this.elementRef.nativeElement, 'blur'),\n iif(() => !!this.form, this.form!.ngSubmit, EMPTY)\n )\n .pipe(startWith(formArray.status))\n .subscribe(() => {\n if (formArray.errors && this.form?.submitted) {\n if (this.componentRef) return\n\n this.componentRef = this.vcr.createComponent(ErrorsComponent)\n this.componentRef.changeDetectorRef.markForCheck()\n this.componentRef.setInput('errors', formArray.errors)\n } else {\n this.componentRef?.destroy()\n this.componentRef = null\n }\n })\n }\n\n ngOnDestroy() {\n this.controlSubscription?.unsubscribe()\n }\n}\n","import { Directive, HostBinding, OnDestroy, OnInit, StaticProvider, inject } from '@angular/core'\nimport { AbstractControl, ControlContainer, FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms'\nimport { AsyncPipe, CommonModule } from '@angular/common'\nimport { of } from 'rxjs'\n\nimport { CONTROL_DATA } from '../../utils/control-data.token'\nimport { Control } from '../../models/forms.model'\n\nimport { ValidatorMessageDirective } from '../../directives/validator-message/validator-message.directive'\nimport { HelpTextDirective } from '../../directives/helpText/help-text.directive'\nimport { ValidatorArrayMessageDirective } from '../../directives/validator-array-message/validator-array-message.directive'\n\nexport const sharedControlDeps = [CommonModule, ReactiveFormsModule, ValidatorMessageDirective, HelpTextDirective, ValidatorArrayMessageDirective, AsyncPipe]\n\nexport const controlProvider: StaticProvider = {\n provide: ControlContainer,\n useFactory: () => inject(ControlContainer, { skipSelf: true })\n}\n\n@Directive()\nexport class BaseControlComponent implements OnInit, OnDestroy {\n @HostBinding('class') hostClass = ''\n\n control = inject(CONTROL_DATA)\n\n formControl: AbstractControl = new FormControl(this.control.control.value, this.resolveValidators(this.control.control))\n id = this.control.control.name + this.control.control.id + (this.control.index ?? '')\n\n private parentGroupDir = inject(ControlContainer)\n\n get parentFormGroup() {\n return this.parentGroupDir.control as FormGroup\n }\n\n ngOnInit() {\n this.initialize()\n }\n\n ngOnDestroy() {\n this.destroy()\n }\n\n initialize() {\n if (this.control.formGroup) {\n this.control.formGroup.addControl(this.control.control.name, this.formControl)\n } else {\n this.parentFormGroup.addControl(this.control.control.name, this.formControl)\n }\n\n this.hostClass = `field wrapper-${this.control.control.name}`\n }\n\n destroy() {\n if (this.control.formGroup) return\n else this.parentFormGroup.removeControl(this.control.control.name)\n }\n\n resolveValidators({ validators = {} }: Control) {\n const validatorsKeys = Object.keys(validators) as Array<keyof typeof validators>\n\n return validatorsKeys.map(key => {\n const value = validators[key]\n\n if (key === 'required') {\n return Validators.required\n }\n\n if (key === 'email') {\n return Validators.email\n }\n\n if (key === 'requiredTrue') {\n return Validators.requiredTrue\n }\n\n if (key === 'minLength' && typeof value === 'number') {\n return Validators.minLength(value)\n }\n\n if (key === 'pattern' && typeof value === 'string') {\n return Validators.pattern(value)\n }\n\n return Validators.nullValidator\n })\n }\n\n getOptions() {\n if (this.control.control.options) {\n return of(this.control.control.options)\n }\n\n if (!this.control.control.asyncOptions) return of([])\n\n return this.control.control.asyncOptions(this.parentFormGroup)\n }\n}\n","import { Component } from '@angular/core'\nimport { BaseControlComponent, controlProvider, sharedControlDeps } from '../base-control/base-control.component'\n\n@Component({\n selector: 'app-checkbox-field',\n imports: [...sharedControlDeps],\n viewProviders: [controlProvider],\n templateUrl: './checkbox-field.component.html',\n standalone: true\n})\nexport class CheckboxFieldComponent extends BaseControlComponent {}\n","<div>\n <input\n type=\"checkbox\"\n [id]=\"id\"\n [formControlName]=\"control.control.name\" />\n @if (control.control.label) {\n <label\n [for]=\"id\"\n [innerHTML]=\"control.control.label\">\n </label>\n }\n\n <div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n ngDefaultControl\n [formControlName]=\"control.control.name\"></div>\n</div>\n","import { Component } from '@angular/core'\nimport { BaseControlComponent, controlProvider, sharedControlDeps } from '../base-control/base-control.component'\nimport { FormArray, FormControl } from '@angular/forms'\n\n@Component({\n selector: 'app-checkbox-group-field',\n imports: [...sharedControlDeps],\n viewProviders: [controlProvider],\n templateUrl: './checkbox-group-field.component.html',\n standalone: true\n})\nexport class CheckboxGroupFieldComponent extends BaseControlComponent {\n override formControl = new FormArray<FormControl>([], this.resolveValidators(this.control.control))\n\n change(event: Event) {\n const element = event.target as HTMLInputElement\n const value = element.value as never\n\n const index = this.formControl.value.indexOf(value)\n if (index === -1) {\n const fc = new FormControl(value)\n this.formControl.push(fc)\n } else {\n this.formControl.removeAt(index)\n }\n }\n}\n","@if (control.control.label) {\n <label for=\"\">\n {{ control.control.label }}\n </label>\n}\n\n<div\n [formArrayName]=\"control.control.name\"\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorArrayMessage>\n @for (option of getOptions() | async; track option.value; let index = $index) {\n <div>\n <input\n type=\"checkbox\"\n (change)=\"change($event)\"\n [value]=\"option.value\"\n [id]=\"id + index\" />\n <label [for]=\"id + index\">\n {{ option.label }}\n </label>\n </div>\n }\n</div>\n","import { Component, OnInit, inject } from '@angular/core'\nimport { BaseControlComponent, controlProvider, sharedControlDeps } from '../base-control/base-control.component'\nimport { FormGroup } from '@angular/forms'\nimport { ControlResolver } from '../../services/control-resolver/control-resolver.service'\nimport { ControlInjector } from '../../pipes/control-injector.pipe'\n\n@Component({\n selector: 'app-group-field',\n imports: [...sharedControlDeps, ControlInjector],\n viewProviders: [controlProvider],\n templateUrl: './group-field.component.html',\n standalone: true\n})\nexport class GroupFieldComponent extends BaseControlComponent implements OnInit {\n controlResolver = inject(ControlResolver)\n\n override formControl = new FormGroup({})\n}\n","<div [formGroupName]=\"control.control.name\">\n @for (control of control.control.controls; track control.name) {\n <ng-container\n [ngComponentOutlet]=\"controlResolver.resolve(control, parentFormGroup) | async\"\n [ngComponentOutletInjector]=\"control.name | controlInjector: control\">\n </ng-container>\n }\n</div>\n","import { Component } from '@angular/core'\n\n@Component({\n selector: 'eye-icon',\n standalone: true,\n template: `<svg\n width=\"100%\"\n height=\"100%\"\n viewBox=\"0 0 16 10\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M15.4569 4.7975C15.435 4.74813 14.9056 3.57375 13.7287 2.39687C12.1606 0.82875 10.18 0 7.99999 0C5.81999 0 3.83937 0.82875 2.27124 2.39687C1.09437 3.57375 0.562494 4.75 0.543119 4.7975C0.51469 4.86144 0.5 4.93064 0.5 5.00062C0.5 5.0706 0.51469 5.1398 0.543119 5.20375C0.564994 5.25312 1.09437 6.42688 2.27124 7.60375C3.83937 9.17125 5.81999 10 7.99999 10C10.18 10 12.1606 9.17125 13.7287 7.60375C14.9056 6.42688 15.435 5.25312 15.4569 5.20375C15.4853 5.1398 15.5 5.0706 15.5 5.00062C15.5 4.93064 15.4853 4.86144 15.4569 4.7975ZM7.99999 7.5C7.50554 7.5 7.02219 7.35338 6.61107 7.07867C6.19995 6.80397 5.87951 6.41352 5.6903 5.95671C5.50108 5.49989 5.45157 4.99723 5.54803 4.51227C5.64449 4.02732 5.8826 3.58186 6.23223 3.23223C6.58186 2.8826 7.02732 2.6445 7.51227 2.54804C7.99722 2.45157 8.49989 2.50108 8.9567 2.6903C9.41352 2.87952 9.80396 3.19995 10.0787 3.61107C10.3534 4.0222 10.5 4.50555 10.5 5C10.5 5.66304 10.2366 6.29893 9.76776 6.76777C9.29892 7.23661 8.66304 7.5 7.99999 7.5Z\"\n fill=\"#252623\" />\n </svg>`\n})\nexport class EyeIcon {}\n","import { Component } from '@angular/core'\n\n@Component({\n selector: 'eye-off-icon',\n standalone: true,\n template: `<svg\n width=\"100%\"\n height=\"100%\"\n viewBox=\"0 0 16 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M6.04249 1.61686C6.01297 1.58451 5.99246 1.54497 5.98301 1.5022C5.97357 1.45944 5.97553 1.41494 5.9887 1.37317C6.00186 1.33139 6.02577 1.29381 6.05803 1.26419C6.09028 1.23456 6.12976 1.21393 6.17249 1.20436C6.77196 1.06729 7.38506 0.998729 7.99999 0.999981C10.18 0.999981 12.1606 1.82873 13.7287 3.39686C14.9056 4.57373 15.435 5.74811 15.4569 5.79748C15.4853 5.86143 15.5 5.93063 15.5 6.00061C15.5 6.07059 15.4853 6.13979 15.4569 6.20373C15.435 6.25311 14.9056 7.42686 13.7287 8.60373C13.5504 8.78123 13.3673 8.94936 13.1794 9.10811C13.1299 9.15008 13.0661 9.1712 13.0014 9.16701C12.9367 9.16281 12.8761 9.13362 12.8325 9.08561L6.04249 1.61686ZM13.37 11.1637C13.4151 11.2122 13.4501 11.2691 13.473 11.3311C13.496 11.3932 13.5064 11.4592 13.5036 11.5253C13.5008 11.5914 13.485 11.6563 13.4569 11.7162C13.4289 11.7762 13.3893 11.8299 13.3403 11.8744C13.2913 11.9189 13.234 11.9533 13.1717 11.9755C13.1094 11.9977 13.0432 12.0072 12.9772 12.0037C12.9111 12.0001 12.8464 11.9835 12.7868 11.9548C12.7272 11.926 12.6739 11.8857 12.63 11.8362L11.25 10.3206C10.2266 10.7733 9.11907 11.0048 7.99999 11C5.81999 11 3.83937 10.1712 2.27124 8.60373C1.09437 7.42686 0.562494 6.25311 0.543119 6.20373C0.51469 6.13979 0.5 6.07059 0.5 6.00061C0.5 5.93063 0.51469 5.86143 0.543119 5.79748C0.562494 5.74998 1.09437 4.57373 2.27124 3.39686C2.74142 2.92451 3.26591 2.50953 3.83374 2.16061L2.62999 0.836231C2.58491 0.787802 2.54989 0.730907 2.52696 0.668843C2.50402 0.606779 2.49364 0.54078 2.4964 0.474672C2.49916 0.408565 2.51502 0.343662 2.54305 0.283728C2.57108 0.223793 2.61072 0.170017 2.65969 0.125518C2.70865 0.0810184 2.76597 0.0466801 2.8283 0.0244932C2.89063 0.00230626 2.95675 -0.00728797 3.02282 -0.00373355C3.08889 -0.000179118 3.1536 0.0164534 3.21319 0.0451998C3.27279 0.0739463 3.32608 0.114235 3.36999 0.163731L13.37 11.1637ZM9.27687 8.14811L5.98374 4.52311C5.64441 4.98804 5.47591 5.55583 5.50668 6.1306C5.53746 6.70538 5.76562 7.25192 6.15266 7.67797C6.5397 8.10401 7.0619 8.38345 7.63109 8.4691C8.20028 8.55476 8.78159 8.44138 9.27687 8.14811Z\"\n fill=\"#252623\" />\n </svg>`\n})\nexport class EyeOffIcon {}\n","import { Component } from '@angular/core'\nimport { BaseControlComponent, controlProvider, sharedControlDeps } from '../base-control/base-control.component'\nimport { EyeIcon } from '../icons/eye-icon.component'\nimport { EyeOffIcon } from '../icons/eye-off-icon.component'\n\n@Component({\n selector: 'app-input-field',\n imports: [...sharedControlDeps, EyeIcon, EyeOffIcon],\n viewProviders: [controlProvider],\n templateUrl: './input-field.component.html',\n styleUrls: ['./input-field.component.css'],\n standalone: true\n})\nexport class InputFieldComponent extends BaseControlComponent {\n showPassword = false\n\n togglePasswordVisibility(): void {\n this.showPassword = !this.showPassword\n }\n\n get inputType(): string {\n if (this.control.control.type === 'password' && this.showPassword) {\n return 'text'\n }\n return this.control.control.type ?? 'text'\n }\n\n get isPasswordField(): boolean {\n return this.control.control.type === 'password'\n }\n}\n","@if (control.control.label) {\n <label [for]=\"id\">\n {{ control.control.label }}\n </label>\n}\n<div class=\"input-wrapper\">\n <input\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n [placeholder]=\"control.control.placeholder ?? ''\"\n appValidatorMessage\n [type]=\"inputType\"\n [formControlName]=\"control.control.name\"\n [checked]=\"control.control.value\"\n [id]=\"id\"\n [class.has-toggle]=\"isPasswordField\" />\n @if (isPasswordField) {\n <button\n type=\"button\"\n class=\"toggle-password-btn\"\n (click)=\"togglePasswordVisibility()\"\n [attr.aria-label]=\"showPassword ? 'Ocultar contraseña' : 'Mostrar contraseña'\">\n @if (showPassword) {\n <eye-off-icon />\n } @else {\n <eye-icon />\n }\n </button>\n }\n</div>\n","import { Component } from '@angular/core'\nimport { BaseControlComponent, controlProvider, sharedControlDeps } from '../base-control/base-control.component'\n\n@Component({\n selector: 'app-radio-field',\n imports: [...sharedControlDeps],\n viewProviders: [controlProvider],\n templateUrl: './radio-field.component.html',\n standalone: true\n})\nexport class RadioFieldComponent extends BaseControlComponent {}\n","@if (control.control.label) {\n <label for=\"\">\n {{ control.control.label }}\n </label>\n}\n\n<div>\n @for (option of getOptions() | async; track option.value; let i = $index) {\n <div>\n <input\n type=\"radio\"\n [formControlName]=\"control.control.name\"\n [value]=\"option.value\"\n [id]=\"id + i\" />\n <label [for]=\"id + i\">\n {{ option.label }}\n </label>\n </div>\n }\n</div>\n\n<div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n [formControlName]=\"control.control.name\"\n ngDefaultControl></div>\n","/*\n * Public API Surface of ngx-dynamic-forms\n */\n\nexport * from './lib/pipes/control-injector.pipe'\nexport * from './lib/models/forms.model'\nexport * from './lib/services/control-resolver/control-resolver.service'\n\nexport * from './lib/components/base-control/base-control.component'\nexport * from './lib/components/checkbox-field/checkbox-field.component'\nexport * from './lib/components/checkbox-group-field/checkbox-group-field.component'\nexport * from './lib/components/errors/errors.component'\nexport * from './lib/components/group-field/group-field.component'\nexport * from './lib/components/help-text/help-text.component'\nexport * from './lib/components/input-field/input-field.component'\nexport * from './lib/components/radio-field/radio-field.component'\n\nexport * from './lib/directives/helpText/help-text.directive'\nexport * from './lib/directives/validator-array-message/validator-array-message.directive'\nexport * from './lib/directives/validator-message/validator-message.directive'\n\nexport * from './lib/utils/control-data.token'\nexport * from './lib/utils/validation-error-messages.token'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3.ValidatorMessageDirective","i4.HelpTextDirective","i3.HelpTextDirective","i4.ValidatorArrayMessageDirective"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,5 +1,190 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="superlikers-dynamic-forms" />
5
- export * from './public-api';
1
+ import * as i0 from '@angular/core';
2
+ import { Type, PipeTransform, Injector, OnInit, OnDestroy, ElementRef, StaticProvider, InjectionToken } from '@angular/core';
3
+ import * as _angular_forms from '@angular/forms';
4
+ import { FormGroup, Validators, NgControl, NgForm, FormGroupDirective, AbstractControl, FormArray, FormControl, ValidationErrors } from '@angular/forms';
5
+ import * as rxjs from 'rxjs';
6
+ import { Observable, Subscription } from 'rxjs';
7
+ import * as superlikers_dynamic_forms from 'superlikers-dynamic-forms';
8
+ import { CommonModule, AsyncPipe, KeyValue } from '@angular/common';
9
+
10
+ type ControlType = 'input' | 'group' | 'checkbox' | 'checkbox-group' | 'radio' | 'select';
11
+ declare enum ControlTypeValues {
12
+ INPUT = "input",
13
+ GROUP = "group",
14
+ CHECKBOX = "checkbox",
15
+ CHECKBOX_GROUP = "checkbox-group",
16
+ RADIO = "radio",
17
+ SELECT = "select"
18
+ }
19
+ interface Option {
20
+ label: string;
21
+ value: unknown;
22
+ selected?: boolean;
23
+ disabled?: boolean;
24
+ }
25
+ type CustomValidators = object;
26
+ type ValidatorsKeys = keyof Omit<typeof Validators & CustomValidators, 'prototype' | 'compose' | 'composeAsync'>;
27
+ interface Control {
28
+ id: number;
29
+ label?: string;
30
+ name: string;
31
+ controlType: ControlType;
32
+ helpText?: string;
33
+ type?: string;
34
+ value?: unknown;
35
+ placeholder?: string;
36
+ disabled?: (form: FormGroup) => boolean;
37
+ asyncOptions?: (form: FormGroup) => Observable<Option[]>;
38
+ options?: Option[];
39
+ controls?: Control[];
40
+ visible?: (form: FormGroup) => boolean;
41
+ validators?: {
42
+ [key in ValidatorsKeys]?: unknown;
43
+ };
44
+ }
45
+ type ControlMap = {
46
+ [T in Control['controlType']]: () => Promise<Type<unknown>>;
47
+ };
48
+
49
+ declare class ControlInjector implements PipeTransform {
50
+ injector: Injector;
51
+ transform(name: string, control: Control, formGroup?: FormGroup, index?: number): Injector;
52
+ static ɵfac: i0.ɵɵFactoryDeclaration<ControlInjector, never>;
53
+ static ɵpipe: i0.ɵɵPipeDeclaration<ControlInjector, "controlInjector", true>;
54
+ }
55
+
56
+ declare class ControlResolver {
57
+ private lazyControlComponents;
58
+ private loadedControlComponents;
59
+ resolve(control: Control, form: FormGroup): rxjs.Observable<Type<unknown>> | undefined;
60
+ checkVisible(control: Control, form: FormGroup): boolean;
61
+ toggleControlDisability(controls: Control[], form: FormGroup): rxjs.Observable<void>;
62
+ static ɵfac: i0.ɵɵFactoryDeclaration<ControlResolver, never>;
63
+ static ɵprov: i0.ɵɵInjectableDeclaration<ControlResolver>;
64
+ }
65
+
66
+ declare class ValidatorMessageDirective implements OnInit, OnDestroy {
67
+ ngControl: NgControl;
68
+ elementRef: ElementRef<any>;
69
+ private componentRef;
70
+ get form(): NgForm | FormGroupDirective | null;
71
+ private parentContainer;
72
+ private vcr;
73
+ controlSubscription: Subscription;
74
+ ngOnInit(): void;
75
+ ngOnDestroy(): void;
76
+ static ɵfac: i0.ɵɵFactoryDeclaration<ValidatorMessageDirective, never>;
77
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ValidatorMessageDirective, "[appValidatorMessage]", never, {}, {}, never, never, true, never>;
78
+ }
79
+
80
+ declare class HelpTextDirective implements OnInit {
81
+ message: string;
82
+ elementRef: ElementRef<any>;
83
+ private vcr;
84
+ private componentRef;
85
+ ngOnInit(): void;
86
+ static ɵfac: i0.ɵɵFactoryDeclaration<HelpTextDirective, never>;
87
+ static ɵdir: i0.ɵɵDirectiveDeclaration<HelpTextDirective, "[appHelpText]", never, { "message": { "alias": "message"; "required": false; }; }, {}, never, never, true, never>;
88
+ }
89
+
90
+ declare class ValidatorArrayMessageDirective implements OnInit, OnDestroy {
91
+ private controlSubscription;
92
+ private parentContainer;
93
+ private vcr;
94
+ elementRef: ElementRef<any>;
95
+ private componentRef;
96
+ get form(): NgForm | FormGroupDirective | null;
97
+ ngOnInit(): void;
98
+ ngOnDestroy(): void;
99
+ static ɵfac: i0.ɵɵFactoryDeclaration<ValidatorArrayMessageDirective, never>;
100
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ValidatorArrayMessageDirective, "[appValidatorArrayMessage]", never, {}, {}, never, never, true, never>;
101
+ }
102
+
103
+ declare const sharedControlDeps: (typeof CommonModule | typeof ValidatorMessageDirective | typeof HelpTextDirective | typeof ValidatorArrayMessageDirective | typeof AsyncPipe)[];
104
+ declare const controlProvider: StaticProvider;
105
+ declare class BaseControlComponent implements OnInit, OnDestroy {
106
+ hostClass: string;
107
+ control: superlikers_dynamic_forms.ControlData;
108
+ formControl: AbstractControl;
109
+ id: string;
110
+ private parentGroupDir;
111
+ get parentFormGroup(): FormGroup;
112
+ ngOnInit(): void;
113
+ ngOnDestroy(): void;
114
+ initialize(): void;
115
+ destroy(): void;
116
+ resolveValidators({ validators }: Control): _angular_forms.ValidatorFn[];
117
+ getOptions(): rxjs.Observable<superlikers_dynamic_forms.Option[]>;
118
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseControlComponent, never>;
119
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BaseControlComponent, never, never, {}, {}, never, never, true, never>;
120
+ }
121
+
122
+ declare class CheckboxFieldComponent extends BaseControlComponent {
123
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxFieldComponent, never>;
124
+ static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxFieldComponent, "app-checkbox-field", never, {}, {}, never, never, true, never>;
125
+ }
126
+
127
+ declare class CheckboxGroupFieldComponent extends BaseControlComponent {
128
+ formControl: FormArray<FormControl<any>>;
129
+ change(event: Event): void;
130
+ static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxGroupFieldComponent, never>;
131
+ static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxGroupFieldComponent, "app-checkbox-group-field", never, {}, {}, never, never, true, never>;
132
+ }
133
+
134
+ declare class ErrorsComponent {
135
+ errors: ValidationErrors | null | undefined;
136
+ hostClass: string;
137
+ protected errorsMap: {
138
+ [key: string]: (args?: any) => string;
139
+ };
140
+ getError(error: KeyValue<string, any>): string | undefined;
141
+ static ɵfac: i0.ɵɵFactoryDeclaration<ErrorsComponent, never>;
142
+ static ɵcmp: i0.ɵɵComponentDeclaration<ErrorsComponent, "app-errors", never, { "errors": { "alias": "errors"; "required": false; }; }, {}, never, never, true, never>;
143
+ }
144
+
145
+ declare class GroupFieldComponent extends BaseControlComponent implements OnInit {
146
+ controlResolver: ControlResolver;
147
+ formControl: FormGroup<{}>;
148
+ static ɵfac: i0.ɵɵFactoryDeclaration<GroupFieldComponent, never>;
149
+ static ɵcmp: i0.ɵɵComponentDeclaration<GroupFieldComponent, "app-group-field", never, {}, {}, never, never, true, never>;
150
+ }
151
+
152
+ declare class HelpTextComponent {
153
+ message: string;
154
+ static ɵfac: i0.ɵɵFactoryDeclaration<HelpTextComponent, never>;
155
+ static ɵcmp: i0.ɵɵComponentDeclaration<HelpTextComponent, "app-help-text", never, { "message": { "alias": "message"; "required": false; }; }, {}, never, never, true, never>;
156
+ }
157
+
158
+ declare class InputFieldComponent extends BaseControlComponent {
159
+ showPassword: boolean;
160
+ togglePasswordVisibility(): void;
161
+ get inputType(): string;
162
+ get isPasswordField(): boolean;
163
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputFieldComponent, never>;
164
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputFieldComponent, "app-input-field", never, {}, {}, never, never, true, never>;
165
+ }
166
+
167
+ declare class RadioFieldComponent extends BaseControlComponent {
168
+ static ɵfac: i0.ɵɵFactoryDeclaration<RadioFieldComponent, never>;
169
+ static ɵcmp: i0.ɵɵComponentDeclaration<RadioFieldComponent, "app-radio-field", never, {}, {}, never, never, true, never>;
170
+ }
171
+
172
+ interface ControlData {
173
+ control: Control;
174
+ formGroup?: FormGroup;
175
+ index?: number;
176
+ }
177
+ declare const CONTROL_DATA: InjectionToken<ControlData>;
178
+
179
+ declare const ERROR_MESSAGES: {
180
+ [key: string]: (args?: any) => string;
181
+ };
182
+ declare const ERROR_MESSAGES_ES: {
183
+ [key: string]: (args?: any) => string;
184
+ };
185
+ declare const VALIDATION_ERROR_MESSAGES: InjectionToken<{
186
+ [key: string]: (args?: any) => string;
187
+ }>;
188
+
189
+ export { BaseControlComponent, CONTROL_DATA, CheckboxFieldComponent, CheckboxGroupFieldComponent, ControlInjector, ControlResolver, ControlTypeValues, ERROR_MESSAGES, ERROR_MESSAGES_ES, ErrorsComponent, GroupFieldComponent, HelpTextComponent, HelpTextDirective, InputFieldComponent, RadioFieldComponent, VALIDATION_ERROR_MESSAGES, ValidatorArrayMessageDirective, ValidatorMessageDirective, controlProvider, sharedControlDeps };
190
+ export type { Control, ControlData, ControlMap, ControlType, Option };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "superlikers-dynamic-forms",
3
- "version": "0.2.3",
3
+ "version": "0.4.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.2.0",
6
6
  "@angular/core": "^19.2.0"
@@ -1,27 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { Component } from '@angular/core';
3
- import { BaseControlComponent, controlProvider, ValidatorMessageDirective, HelpTextDirective, sharedControlDeps } from './superlikers-dynamic-forms.mjs';
4
- import * as i1 from '@angular/common';
5
- import * as i2 from '@angular/forms';
6
-
7
- class SelectFieldComponent extends BaseControlComponent {
8
- ngOnInit() {
9
- this.initialize();
10
- this.setSelectedOption();
11
- }
12
- setSelectedOption() {
13
- const selectedOption = this.control.control.options?.find(option => option.selected);
14
- if (!selectedOption)
15
- return;
16
- this.formControl.setValue(selectedOption.value);
17
- }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: SelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.0", type: SelectFieldComponent, isStandalone: true, selector: "app-radio-field", usesInheritance: true, ngImport: i0, template: "<label for=\"\">{{ control.control.label }}</label>\n<select\n [formControlName]=\"control.control.name\"\n [id]=\"id\">\n @for (option of getOptions() | async; track option.value; let i = $index) {\n <option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\">\n {{ option.label }}\n </option>\n }\n</select>\n\n<div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n [formControlName]=\"control.control.name\"\n ngDefaultControl></div>\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: i2.ReactiveFormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: ValidatorMessageDirective, selector: "[appValidatorMessage]" }, { kind: "directive", type: HelpTextDirective, selector: "[appHelpText]", inputs: ["message"] }], viewProviders: [controlProvider] }); }
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.0", ngImport: i0, type: SelectFieldComponent, decorators: [{
22
- type: Component,
23
- args: [{ selector: 'app-radio-field', imports: [...sharedControlDeps], viewProviders: [controlProvider], standalone: true, template: "<label for=\"\">{{ control.control.label }}</label>\n<select\n [formControlName]=\"control.control.name\"\n [id]=\"id\">\n @for (option of getOptions() | async; track option.value; let i = $index) {\n <option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\">\n {{ option.label }}\n </option>\n }\n</select>\n\n<div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n [formControlName]=\"control.control.name\"\n ngDefaultControl></div>\n" }]
24
- }] });
25
-
26
- export { SelectFieldComponent };
27
- //# sourceMappingURL=superlikers-dynamic-forms-select-field.component-DaFIx75e.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"superlikers-dynamic-forms-select-field.component-DaFIx75e.mjs","sources":["../../../projects/dynamic-forms/src/lib/components/select-field/select-field.component.ts","../../../projects/dynamic-forms/src/lib/components/select-field/select-field.component.html"],"sourcesContent":["import { Component, OnInit } from '@angular/core'\nimport { BaseControlComponent, controlProvider, sharedControlDeps } from '../base-control/base-control.component'\n\n@Component({\n selector: 'app-radio-field',\n imports: [...sharedControlDeps],\n viewProviders: [controlProvider],\n templateUrl: './select-field.component.html',\n standalone: true\n})\nexport class SelectFieldComponent extends BaseControlComponent implements OnInit {\n override ngOnInit() {\n this.initialize()\n\n this.setSelectedOption()\n }\n\n setSelectedOption() {\n const selectedOption = this.control.control.options?.find(option => option.selected)\n if (!selectedOption) return\n\n this.formControl.setValue(selectedOption.value)\n }\n}\n","<label for=\"\">{{ control.control.label }}</label>\n<select\n [formControlName]=\"control.control.name\"\n [id]=\"id\">\n @for (option of getOptions() | async; track option.value; let i = $index) {\n <option\n [value]=\"option.value\"\n [disabled]=\"option.disabled\">\n {{ option.label }}\n </option>\n }\n</select>\n\n<div\n appHelpText\n [message]=\"control.control.helpText ?? ''\"\n appValidatorMessage\n [formControlName]=\"control.control.name\"\n ngDefaultControl></div>\n"],"names":["i3.ValidatorMessageDirective","i4.HelpTextDirective"],"mappings":";;;;;;AAUM,MAAO,oBAAqB,SAAQ,oBAAoB,CAAA;IACnD,QAAQ,GAAA;QACf,IAAI,CAAC,UAAU,EAAE;QAEjB,IAAI,CAAC,iBAAiB,EAAE;;IAG1B,iBAAiB,GAAA;QACf,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC;AACpF,QAAA,IAAI,CAAC,cAAc;YAAE;QAErB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC;;8GAXtC,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,ECVjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,igBAmBA,EDbiB,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAC,eAAe,CAAC,EAAA,CAAA,CAAA;;2FAIrB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACE,iBAAiB,EAAA,OAAA,EAClB,CAAC,GAAG,iBAAiB,CAAC,iBAChB,CAAC,eAAe,CAAC,EAAA,UAAA,EAEpB,IAAI,EAAA,QAAA,EAAA,igBAAA,EAAA;;;;;"}
@@ -1,26 +0,0 @@
1
- import { OnDestroy, OnInit, StaticProvider } from '@angular/core';
2
- import { AbstractControl, FormGroup } from '@angular/forms';
3
- import { AsyncPipe, CommonModule } from '@angular/common';
4
- import { Control } from '../../models/forms.model';
5
- import { ValidatorMessageDirective } from '../../directives/validator-message/validator-message.directive';
6
- import { HelpTextDirective } from '../../directives/helpText/help-text.directive';
7
- import { ValidatorArrayMessageDirective } from '../../directives/validator-array-message/validator-array-message.directive';
8
- import * as i0 from "@angular/core";
9
- export declare const sharedControlDeps: (typeof AsyncPipe | typeof ValidatorMessageDirective | typeof HelpTextDirective | typeof ValidatorArrayMessageDirective | typeof CommonModule)[];
10
- export declare const controlProvider: StaticProvider;
11
- export declare class BaseControlComponent implements OnInit, OnDestroy {
12
- hostClass: string;
13
- control: import("superlikers-dynamic-forms").ControlData;
14
- formControl: AbstractControl;
15
- id: string;
16
- private parentGroupDir;
17
- get parentFormGroup(): FormGroup;
18
- ngOnInit(): void;
19
- ngOnDestroy(): void;
20
- initialize(): void;
21
- destroy(): void;
22
- resolveValidators({ validators }: Control): import("@angular/forms").ValidatorFn[];
23
- getOptions(): import("rxjs").Observable<import("superlikers-dynamic-forms").Option[]>;
24
- static ɵfac: i0.ɵɵFactoryDeclaration<BaseControlComponent, never>;
25
- static ɵdir: i0.ɵɵDirectiveDeclaration<BaseControlComponent, never, never, {}, {}, never, never, true, never>;
26
- }
@@ -1,6 +0,0 @@
1
- import { BaseControlComponent } from '../base-control/base-control.component';
2
- import * as i0 from "@angular/core";
3
- export declare class CheckboxFieldComponent extends BaseControlComponent {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxFieldComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxFieldComponent, "app-checkbox-field", never, {}, {}, never, never, true, never>;
6
- }
@@ -1,9 +0,0 @@
1
- import { BaseControlComponent } from '../base-control/base-control.component';
2
- import { FormArray, FormControl } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- export declare class CheckboxGroupFieldComponent extends BaseControlComponent {
5
- formControl: FormArray<FormControl<any>>;
6
- change(event: Event): void;
7
- static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxGroupFieldComponent, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxGroupFieldComponent, "app-checkbox-group-field", never, {}, {}, never, never, true, never>;
9
- }
@@ -1,13 +0,0 @@
1
- import { KeyValue } from '@angular/common';
2
- import { ValidationErrors } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- export declare class ErrorsComponent {
5
- errors: ValidationErrors | null | undefined;
6
- hostClass: string;
7
- protected errorsMap: {
8
- [key: string]: (args?: any) => string;
9
- };
10
- getError(error: KeyValue<string, any>): string | undefined;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<ErrorsComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<ErrorsComponent, "app-errors", never, { "errors": { "alias": "errors"; "required": false; }; }, {}, never, never, true, never>;
13
- }
@@ -1,11 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import { BaseControlComponent } from '../base-control/base-control.component';
3
- import { FormGroup } from '@angular/forms';
4
- import { ControlResolver } from '../../services/control-resolver/control-resolver.service';
5
- import * as i0 from "@angular/core";
6
- export declare class GroupFieldComponent extends BaseControlComponent implements OnInit {
7
- controlResolver: ControlResolver;
8
- formControl: FormGroup<{}>;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<GroupFieldComponent, never>;
10
- static ɵcmp: i0.ɵɵComponentDeclaration<GroupFieldComponent, "app-group-field", never, {}, {}, never, never, true, never>;
11
- }
@@ -1,6 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class HelpTextComponent {
3
- message: string;
4
- static ɵfac: i0.ɵɵFactoryDeclaration<HelpTextComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<HelpTextComponent, "app-help-text", never, { "message": { "alias": "message"; "required": false; }; }, {}, never, never, true, never>;
6
- }
@@ -1,6 +0,0 @@
1
- import { BaseControlComponent } from '../base-control/base-control.component';
2
- import * as i0 from "@angular/core";
3
- export declare class InputFieldComponent extends BaseControlComponent {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<InputFieldComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<InputFieldComponent, "app-input-field", never, {}, {}, never, never, true, never>;
6
- }
@@ -1,6 +0,0 @@
1
- import { BaseControlComponent } from '../base-control/base-control.component';
2
- import * as i0 from "@angular/core";
3
- export declare class RadioFieldComponent extends BaseControlComponent {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<RadioFieldComponent, never>;
5
- static ɵcmp: i0.ɵɵComponentDeclaration<RadioFieldComponent, "app-radio-field", never, {}, {}, never, never, true, never>;
6
- }
@@ -1,9 +0,0 @@
1
- import { OnInit } from '@angular/core';
2
- import { BaseControlComponent } from '../base-control/base-control.component';
3
- import * as i0 from "@angular/core";
4
- export declare class SelectFieldComponent extends BaseControlComponent implements OnInit {
5
- ngOnInit(): void;
6
- setSelectedOption(): void;
7
- static ɵfac: i0.ɵɵFactoryDeclaration<SelectFieldComponent, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<SelectFieldComponent, "app-radio-field", never, {}, {}, never, never, true, never>;
9
- }
@@ -1,11 +0,0 @@
1
- import { ElementRef, OnInit } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export declare class HelpTextDirective implements OnInit {
4
- message: string;
5
- elementRef: ElementRef<any>;
6
- private vcr;
7
- private componentRef;
8
- ngOnInit(): void;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<HelpTextDirective, never>;
10
- static ɵdir: i0.ɵɵDirectiveDeclaration<HelpTextDirective, "[appHelpText]", never, { "message": { "alias": "message"; "required": false; }; }, {}, never, never, true, never>;
11
- }
@@ -1,15 +0,0 @@
1
- import { ElementRef, OnDestroy, OnInit } from '@angular/core';
2
- import { FormGroupDirective, NgForm } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- export declare class ValidatorArrayMessageDirective implements OnInit, OnDestroy {
5
- private controlSubscription;
6
- private parentContainer;
7
- private vcr;
8
- elementRef: ElementRef<any>;
9
- private componentRef;
10
- get form(): NgForm | FormGroupDirective | null;
11
- ngOnInit(): void;
12
- ngOnDestroy(): void;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<ValidatorArrayMessageDirective, never>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<ValidatorArrayMessageDirective, "[appValidatorArrayMessage]", never, {}, {}, never, never, true, never>;
15
- }
@@ -1,17 +0,0 @@
1
- import { ElementRef, OnDestroy, OnInit } from '@angular/core';
2
- import { NgControl, NgForm, FormGroupDirective } from '@angular/forms';
3
- import { Subscription } from 'rxjs';
4
- import * as i0 from "@angular/core";
5
- export declare class ValidatorMessageDirective implements OnInit, OnDestroy {
6
- ngControl: NgControl;
7
- elementRef: ElementRef<any>;
8
- private componentRef;
9
- get form(): NgForm | FormGroupDirective | null;
10
- private parentContainer;
11
- private vcr;
12
- controlSubscription: Subscription;
13
- ngOnInit(): void;
14
- ngOnDestroy(): void;
15
- static ɵfac: i0.ɵɵFactoryDeclaration<ValidatorMessageDirective, never>;
16
- static ɵdir: i0.ɵɵDirectiveDeclaration<ValidatorMessageDirective, "[appValidatorMessage]", never, {}, {}, never, never, true, never>;
17
- }
@@ -1,42 +0,0 @@
1
- import { Type } from '@angular/core';
2
- import { FormGroup, Validators } from '@angular/forms';
3
- import { Observable } from 'rxjs';
4
- export type ControlType = 'input' | 'group' | 'checkbox' | 'checkbox-group' | 'radio' | 'select';
5
- export declare enum ControlTypeValues {
6
- INPUT = "input",
7
- GROUP = "group",
8
- CHECKBOX = "checkbox",
9
- CHECKBOX_GROUP = "checkbox-group",
10
- RADIO = "radio",
11
- SELECT = "select"
12
- }
13
- export interface Option {
14
- label: string;
15
- value: unknown;
16
- selected?: boolean;
17
- disabled?: boolean;
18
- }
19
- type CustomValidators = object;
20
- type ValidatorsKeys = keyof Omit<typeof Validators & CustomValidators, 'prototype' | 'compose' | 'composeAsync'>;
21
- export interface Control {
22
- id: number;
23
- label: string;
24
- name: string;
25
- controlType: ControlType;
26
- helpText?: string;
27
- type?: string;
28
- value?: unknown;
29
- placeholder?: string;
30
- disabled?: (form: FormGroup) => boolean;
31
- asyncOptions?: (form: FormGroup) => Observable<Option[]>;
32
- options?: Option[];
33
- controls?: Control[];
34
- visible?: (form: FormGroup) => boolean;
35
- validators?: {
36
- [key in ValidatorsKeys]?: unknown;
37
- };
38
- }
39
- export type ControlMap = {
40
- [T in Control['controlType']]: () => Promise<Type<unknown>>;
41
- };
42
- export {};
@@ -1,10 +0,0 @@
1
- import { Injector, PipeTransform } from '@angular/core';
2
- import { Control } from '../models/forms.model';
3
- import { FormGroup } from '@angular/forms';
4
- import * as i0 from "@angular/core";
5
- export declare class ControlInjector implements PipeTransform {
6
- injector: Injector;
7
- transform(name: string, control: Control, formGroup?: FormGroup, index?: number): Injector;
8
- static ɵfac: i0.ɵɵFactoryDeclaration<ControlInjector, never>;
9
- static ɵpipe: i0.ɵɵPipeDeclaration<ControlInjector, "controlInjector", true>;
10
- }
@@ -1,13 +0,0 @@
1
- import { Type } from '@angular/core';
2
- import { Control } from '../../models/forms.model';
3
- import { FormGroup } from '@angular/forms';
4
- import * as i0 from "@angular/core";
5
- export declare class ControlResolver {
6
- private lazyControlComponents;
7
- private loadedControlComponents;
8
- resolve(control: Control, form: FormGroup): import("rxjs").Observable<Type<unknown>> | undefined;
9
- checkVisible(control: Control, form: FormGroup): boolean;
10
- toggleControlDisability(controls: Control[], form: FormGroup): import("rxjs").Observable<void>;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<ControlResolver, never>;
12
- static ɵprov: i0.ɵɵInjectableDeclaration<ControlResolver>;
13
- }
@@ -1,9 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import { Control } from '../models/forms.model';
3
- import { FormGroup } from '@angular/forms';
4
- export interface ControlData {
5
- control: Control;
6
- formGroup?: FormGroup;
7
- index?: number;
8
- }
9
- export declare const CONTROL_DATA: InjectionToken<ControlData>;
@@ -1,10 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export declare const ERROR_MESSAGES: {
3
- [key: string]: (args?: any) => string;
4
- };
5
- export declare const ERROR_MESSAGES_ES: {
6
- [key: string]: (args?: any) => string;
7
- };
8
- export declare const VALIDATION_ERROR_MESSAGES: InjectionToken<{
9
- [key: string]: (args?: any) => string;
10
- }>;
package/public-api.d.ts DELETED
@@ -1,16 +0,0 @@
1
- export * from './lib/pipes/control-injector.pipe';
2
- export * from './lib/models/forms.model';
3
- export * from './lib/services/control-resolver/control-resolver.service';
4
- export * from './lib/components/base-control/base-control.component';
5
- export * from './lib/components/checkbox-field/checkbox-field.component';
6
- export * from './lib/components/checkbox-group-field/checkbox-group-field.component';
7
- export * from './lib/components/errors/errors.component';
8
- export * from './lib/components/group-field/group-field.component';
9
- export * from './lib/components/help-text/help-text.component';
10
- export * from './lib/components/input-field/input-field.component';
11
- export * from './lib/components/radio-field/radio-field.component';
12
- export * from './lib/directives/helpText/help-text.directive';
13
- export * from './lib/directives/validator-array-message/validator-array-message.directive';
14
- export * from './lib/directives/validator-message/validator-message.directive';
15
- export * from './lib/utils/control-data.token';
16
- export * from './lib/utils/validation-error-messages.token';