@3kles/kles-material-dynamicforms 14.9.4 → 14.9.6

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.
@@ -1,6 +1,8 @@
1
1
  import { FormArray, FormControl, FormGroup } from "@angular/forms";
2
2
  import { KlesFormControl } from "./default.control";
3
3
  import { v4 as uuidv4 } from 'uuid';
4
+ import { componentMapper } from "../decorators/component.decorator";
5
+ import { klesFieldControlFactory } from "../factories/field.factory";
4
6
  export class KlesFormArray extends KlesFormControl {
5
7
  create() {
6
8
  const array = new FormArray([], {
@@ -15,7 +17,16 @@ export class KlesFormArray extends KlesFormControl {
15
17
  group.addControl('_id', new FormControl(uuidv4()));
16
18
  this.field.collections.forEach(subfield => {
17
19
  const data = val[subfield.name] || null;
18
- const control = new KlesFormControl({ ...subfield, ...(data && { value: data }) }).create();
20
+ // const control = new KlesFormControl({ ...subfield, ...(data && { value: data }) }).create();
21
+ let control;
22
+ if (subfield.type) {
23
+ control = componentMapper.find(c => c.type === subfield.type)?.factory({ ...subfield, ...(data && { value: data }) })
24
+ || klesFieldControlFactory({ ...subfield, ...(data && { value: data }) });
25
+ }
26
+ else {
27
+ control = componentMapper.find(c => c.component === subfield.component)?.factory({ ...subfield, ...(data && { value: data }) })
28
+ || klesFieldControlFactory({ ...subfield, ...(data && { value: data }) });
29
+ }
19
30
  group.addControl(subfield.name, control);
20
31
  });
21
32
  array.push(group);
@@ -25,7 +36,16 @@ export class KlesFormArray extends KlesFormControl {
25
36
  else {
26
37
  const group = new FormGroup({});
27
38
  this.field.collections.forEach(subfield => {
28
- const control = new KlesFormControl({ ...subfield }).create();
39
+ // const control = new KlesFormControl({ ...subfield }).create();
40
+ let control;
41
+ if (subfield.type) {
42
+ control = componentMapper.find(c => c.type === subfield.type)?.factory({ ...subfield })
43
+ || klesFieldControlFactory({ ...subfield });
44
+ }
45
+ else {
46
+ control = componentMapper.find(c => c.component === subfield.component)?.factory({ ...subfield })
47
+ || klesFieldControlFactory({ ...subfield });
48
+ }
29
49
  group.addControl(subfield.name, control);
30
50
  });
31
51
  array.push(group);
@@ -36,4 +56,4 @@ export class KlesFormArray extends KlesFormControl {
36
56
  return array;
37
57
  }
38
58
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9saWIvY29udHJvbHMvYXJyYXkuY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBDLE1BQU0sT0FBTyxhQUFjLFNBQVEsZUFBZTtJQUV2QyxNQUFNO1FBQ1QsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxFQUFFO1lBQzVCLFVBQVUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztZQUM5RCxlQUFlLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1lBQzdFLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxRQUFRO1NBQzVDLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3JELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUNqRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzNCLE1BQU0sS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNoQyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDdEMsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7d0JBQ3hDLE1BQU0sT0FBTyxHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsR0FBRyxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQzt3QkFDNUYsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUM3QyxDQUFDLENBQUMsQ0FBQztvQkFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQzthQUNOO1NBQ0o7YUFBTTtZQUNILE1BQU0sS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxlQUFlLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzlELEtBQUssQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM3QyxDQUFDLENBQUMsQ0FBQztZQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDckI7UUFHRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ3JCLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNuQjtRQUdELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBLbGVzRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi9kZWZhdWx0LmNvbnRyb2xcIjtcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuXG5leHBvcnQgY2xhc3MgS2xlc0Zvcm1BcnJheSBleHRlbmRzIEtsZXNGb3JtQ29udHJvbCB7XG5cbiAgICBwdWJsaWMgY3JlYXRlKCk6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4ge1xuICAgICAgICBjb25zdCBhcnJheSA9IG5ldyBGb3JtQXJyYXkoW10sIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IHRoaXMuYmluZFZhbGlkYXRpb25zKHRoaXMuZmllbGQudmFsaWRhdGlvbnMgfHwgW10pLFxuICAgICAgICAgICAgYXN5bmNWYWxpZGF0b3JzOiB0aGlzLmJpbmRBc3luY1ZhbGlkYXRpb25zKHRoaXMuZmllbGQuYXN5bmNWYWxpZGF0aW9ucyB8fCBbXSksXG4gICAgICAgICAgICB1cGRhdGVPbjogdGhpcy5maWVsZC51cGRhdGVPbiB8fCAnY2hhbmdlJ1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5maWVsZC52YWx1ZSAmJiBBcnJheS5pc0FycmF5KHRoaXMuZmllbGQudmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZC5jb2xsZWN0aW9ucyAmJiBBcnJheS5pc0FycmF5KHRoaXMuZmllbGQuY29sbGVjdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC52YWx1ZS5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLmFkZENvbnRyb2woJ19pZCcsIG5ldyBGb3JtQ29udHJvbCh1dWlkdjQoKSkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbGxlY3Rpb25zLmZvckVhY2goc3ViZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHZhbFtzdWJmaWVsZC5uYW1lXSB8fCBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IG5ldyBLbGVzRm9ybUNvbnRyb2woeyAuLi5zdWJmaWVsZCwgLi4uKGRhdGEgJiYgeyB2YWx1ZTogZGF0YSB9KSB9KS5jcmVhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwLmFkZENvbnRyb2woc3ViZmllbGQubmFtZSwgY29udHJvbCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBhcnJheS5wdXNoKGdyb3VwKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLmNvbGxlY3Rpb25zLmZvckVhY2goc3ViZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBuZXcgS2xlc0Zvcm1Db250cm9sKHsgLi4uc3ViZmllbGQgfSkuY3JlYXRlKCk7XG4gICAgICAgICAgICAgICAgZ3JvdXAuYWRkQ29udHJvbChzdWJmaWVsZC5uYW1lLCBjb250cm9sKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYXJyYXkucHVzaChncm91cCk7XG4gICAgICAgIH1cblxuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBhcnJheS5kaXNhYmxlKCk7XG4gICAgICAgIH1cblxuXG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG59XG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9saWIvY29udHJvbHMvYXJyYXkuY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVyRSxNQUFNLE9BQU8sYUFBYyxTQUFRLGVBQWU7SUFFdkMsTUFBTTtRQUNULE1BQU0sS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsRUFBRTtZQUM1QixVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7WUFDOUQsZUFBZSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztZQUM3RSxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksUUFBUTtTQUM1QyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNyRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtB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Q0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNyQjtRQUdELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDckIsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ25CO1FBR0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEtsZXNGb3JtQ29udHJvbCB9IGZyb20gXCIuL2RlZmF1bHQuY29udHJvbFwiO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBjb21wb25lbnRNYXBwZXIgfSBmcm9tIFwiLi4vZGVjb3JhdG9ycy9jb21wb25lbnQuZGVjb3JhdG9yXCI7XG5pbXBvcnQgeyBrbGVzRmllbGRDb250cm9sRmFjdG9yeSB9IGZyb20gXCIuLi9mYWN0b3JpZXMvZmllbGQuZmFjdG9yeVwiO1xuXG5leHBvcnQgY2xhc3MgS2xlc0Zvcm1BcnJheSBleHRlbmRzIEtsZXNGb3JtQ29udHJvbCB7XG5cbiAgICBwdWJsaWMgY3JlYXRlKCk6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4ge1xuICAgICAgICBjb25zdCBhcnJheSA9IG5ldyBGb3JtQXJyYXkoW10sIHtcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IHRoaXMuYmluZFZhbGlkYXRpb25zKHRoaXMuZmllbGQudmFsaWRhdGlvbnMgfHwgW10pLFxuICAgICAgICAgICAgYXN5bmNWYWxpZGF0b3JzOiB0aGlzLmJpbmRBc3luY1ZhbGlkYXRpb25zKHRoaXMuZmllbGQuYXN5bmNWYWxpZGF0aW9ucyB8fCBbXSksXG4gICAgICAgICAgICB1cGRhdGVPbjogdGhpcy5maWVsZC51cGRhdGVPbiB8fCAnY2hhbmdlJ1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5maWVsZC52YWx1ZSAmJiBBcnJheS5pc0FycmF5KHRoaXMuZmllbGQudmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5maWVsZC5jb2xsZWN0aW9ucyAmJiBBcnJheS5pc0FycmF5KHRoaXMuZmllbGQuY29sbGVjdGlvbnMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWVsZC52YWx1ZS5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICAgICAgICAgICAgICAgIGdyb3VwLmFkZENvbnRyb2woJ19pZCcsIG5ldyBGb3JtQ29udHJvbCh1dWlkdjQoKSkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbGxlY3Rpb25zLmZvckVhY2goc3ViZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHZhbFtzdWJmaWVsZC5uYW1lXSB8fCBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgY29udHJvbCA9IG5ldyBLbGVzRm9ybUNvbnRyb2woeyAuLi5zdWJmaWVsZCwgLi4uKGRhdGEgJiYgeyB2YWx1ZTogZGF0YSB9KSB9KS5jcmVhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb250cm9sO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YmZpZWxkLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sID0gY29tcG9uZW50TWFwcGVyLmZpbmQoYyA9PiBjLnR5cGUgPT09IHN1YmZpZWxkLnR5cGUpPy5mYWN0b3J5KHsgLi4uc3ViZmllbGQsIC4uLihkYXRhICYmIHsgdmFsdWU6IGRhdGEgfSkgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwga2xlc0ZpZWxkQ29udHJvbEZhY3RvcnkoeyAuLi5zdWJmaWVsZCwgLi4uKGRhdGEgJiYgeyB2YWx1ZTogZGF0YSB9KSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbCA9IGNvbXBvbmVudE1hcHBlci5maW5kKGMgPT4gYy5jb21wb25lbnQgPT09IHN1YmZpZWxkLmNvbXBvbmVudCk/LmZhY3RvcnkoeyAuLi5zdWJmaWVsZCwgLi4uKGRhdGEgJiYgeyB2YWx1ZTogZGF0YSB9KSB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBrbGVzRmllbGRDb250cm9sRmFjdG9yeSh7IC4uLnN1YmZpZWxkLCAuLi4oZGF0YSAmJiB7IHZhbHVlOiBkYXRhIH0pIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAuYWRkQ29udHJvbChzdWJmaWVsZC5uYW1lLCBjb250cm9sKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGFycmF5LnB1c2goZ3JvdXApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZ3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICAgICAgICAgIHRoaXMuZmllbGQuY29sbGVjdGlvbnMuZm9yRWFjaChzdWJmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgY29udHJvbCA9IG5ldyBLbGVzRm9ybUNvbnRyb2woeyAuLi5zdWJmaWVsZCB9KS5jcmVhdGUoKTtcbiAgICAgICAgICAgICAgICBsZXQgY29udHJvbDtcbiAgICAgICAgICAgICAgICBpZiAoc3ViZmllbGQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjb250cm9sID0gY29tcG9uZW50TWFwcGVyLmZpbmQoYyA9PiBjLnR5cGUgPT09IHN1YmZpZWxkLnR5cGUpPy5mYWN0b3J5KHsgLi4uc3ViZmllbGQgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IGtsZXNGaWVsZENvbnRyb2xGYWN0b3J5KHsgLi4uc3ViZmllbGQgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbCA9IGNvbXBvbmVudE1hcHBlci5maW5kKGMgPT4gYy5jb21wb25lbnQgPT09IHN1YmZpZWxkLmNvbXBvbmVudCk/LmZhY3RvcnkoeyAuLi5zdWJmaWVsZCB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfHwga2xlc0ZpZWxkQ29udHJvbEZhY3RvcnkoeyAuLi5zdWJmaWVsZCB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZ3JvdXAuYWRkQ29udHJvbChzdWJmaWVsZC5uYW1lLCBjb250cm9sKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYXJyYXkucHVzaChncm91cCk7XG4gICAgICAgIH1cblxuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBhcnJheS5kaXNhYmxlKCk7XG4gICAgICAgIH1cblxuXG4gICAgICAgIHJldHVybiBhcnJheTtcbiAgICB9XG59XG4iXX0=
@@ -1,18 +1,29 @@
1
1
  import { UntypedFormGroup } from "@angular/forms";
2
2
  import { KlesFormControl } from "./default.control";
3
+ import { componentMapper } from "../decorators/component.decorator";
4
+ import { klesFieldControlFactory } from "../factories/field.factory";
3
5
  export class KlesFormGroup extends KlesFormControl {
4
6
  create() {
5
7
  const subGroup = new UntypedFormGroup({});
6
8
  if (this.field.collections && Array.isArray(this.field.collections)) {
7
9
  this.field.collections.forEach(subfield => {
8
- const control = new KlesFormControl(subfield).create();
10
+ let control;
11
+ if (subfield.type) {
12
+ control = componentMapper.find(c => c.type === subfield.type)?.factory({ ...subfield, value: subfield.value || this.field.value?.[subfield.name] })
13
+ || klesFieldControlFactory({ ...subfield, value: subfield.value || this.field.value?.[subfield.name] });
14
+ }
15
+ else {
16
+ control = componentMapper.find(c => c.component === subfield.component)?.factory({ ...subfield, value: subfield.value || this.field.value?.[subfield.name] })
17
+ || klesFieldControlFactory({ ...subfield, value: subfield.value || this.field.value?.[subfield.name] });
18
+ }
9
19
  subGroup.addControl(subfield.name, control);
10
20
  });
11
21
  }
12
22
  if (this.field.disabled) {
13
23
  subGroup.disable();
14
24
  }
25
+ console.log('subGroup', subGroup);
15
26
  return subGroup;
16
27
  }
17
28
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9saWIvY29udHJvbHMvZ3JvdXAuY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQThCLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXBELE1BQU0sT0FBTyxhQUFjLFNBQVEsZUFBZTtJQUV2QyxNQUFNO1FBQ1QsTUFBTSxRQUFRLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNqRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN2RCxRQUFRLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDaEQsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUVELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDckIsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ3RCO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEtsZXNGb3JtQ29udHJvbCB9IGZyb20gXCIuL2RlZmF1bHQuY29udHJvbFwiO1xuXG5leHBvcnQgY2xhc3MgS2xlc0Zvcm1Hcm91cCBleHRlbmRzIEtsZXNGb3JtQ29udHJvbCB7XG5cbiAgICBwdWJsaWMgY3JlYXRlKCk6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT4ge1xuICAgICAgICBjb25zdCBzdWJHcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQuY29sbGVjdGlvbnMgJiYgQXJyYXkuaXNBcnJheSh0aGlzLmZpZWxkLmNvbGxlY3Rpb25zKSkge1xuICAgICAgICAgICAgdGhpcy5maWVsZC5jb2xsZWN0aW9ucy5mb3JFYWNoKHN1YmZpZWxkID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gbmV3IEtsZXNGb3JtQ29udHJvbChzdWJmaWVsZCkuY3JlYXRlKCk7XG4gICAgICAgICAgICAgICAgc3ViR3JvdXAuYWRkQ29udHJvbChzdWJmaWVsZC5uYW1lLCBjb250cm9sKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZmllbGQuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHN1Ykdyb3VwLmRpc2FibGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdWJHcm91cDtcbiAgICB9XG59XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29udHJvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9saWIvY29udHJvbHMvZ3JvdXAuY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQThCLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVyRSxNQUFNLE9BQU8sYUFBYyxTQUFRLGVBQWU7SUFFdkMsTUFBTTtRQUNULE1BQU0sUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFMUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDakUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUN0QyxJQUFJLE9BQU8sQ0FBQztnQkFDWixJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUU7b0JBQ2YsT0FBTyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDOzJCQUM1SSx1QkFBdUIsQ0FBQyxFQUFFLEdBQUcsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDL0c7cUJBQU07b0JBQ0gsT0FBTyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDOzJCQUN0Six1QkFBdUIsQ0FBQyxFQUFFLEdBQUcsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDL0c7Z0JBRUQsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ3JCLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN0QjtRQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1FBRWpDLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBLbGVzRm9ybUNvbnRyb2wgfSBmcm9tIFwiLi9kZWZhdWx0LmNvbnRyb2xcIjtcbmltcG9ydCB7IGNvbXBvbmVudE1hcHBlciB9IGZyb20gXCIuLi9kZWNvcmF0b3JzL2NvbXBvbmVudC5kZWNvcmF0b3JcIjtcbmltcG9ydCB7IGtsZXNGaWVsZENvbnRyb2xGYWN0b3J5IH0gZnJvbSBcIi4uL2ZhY3Rvcmllcy9maWVsZC5mYWN0b3J5XCI7XG5cbmV4cG9ydCBjbGFzcyBLbGVzRm9ybUdyb3VwIGV4dGVuZHMgS2xlc0Zvcm1Db250cm9sIHtcblxuICAgIHB1YmxpYyBjcmVhdGUoKTogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PiB7XG4gICAgICAgIGNvbnN0IHN1Ykdyb3VwID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLmNvbGxlY3Rpb25zICYmIEFycmF5LmlzQXJyYXkodGhpcy5maWVsZC5jb2xsZWN0aW9ucykpIHtcbiAgICAgICAgICAgIHRoaXMuZmllbGQuY29sbGVjdGlvbnMuZm9yRWFjaChzdWJmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGNvbnRyb2w7XG4gICAgICAgICAgICAgICAgaWYgKHN1YmZpZWxkLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbCA9IGNvbXBvbmVudE1hcHBlci5maW5kKGMgPT4gYy50eXBlID09PSBzdWJmaWVsZC50eXBlKT8uZmFjdG9yeSh7IC4uLnN1YmZpZWxkLCB2YWx1ZTogc3ViZmllbGQudmFsdWUgfHwgdGhpcy5maWVsZC52YWx1ZT8uW3N1YmZpZWxkLm5hbWVdIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB8fCBrbGVzRmllbGRDb250cm9sRmFjdG9yeSh7IC4uLnN1YmZpZWxkLCB2YWx1ZTogc3ViZmllbGQudmFsdWUgfHwgdGhpcy5maWVsZC52YWx1ZT8uW3N1YmZpZWxkLm5hbWVdIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wgPSBjb21wb25lbnRNYXBwZXIuZmluZChjID0+IGMuY29tcG9uZW50ID09PSBzdWJmaWVsZC5jb21wb25lbnQpPy5mYWN0b3J5KHsgLi4uc3ViZmllbGQsIHZhbHVlOiBzdWJmaWVsZC52YWx1ZSB8fCB0aGlzLmZpZWxkLnZhbHVlPy5bc3ViZmllbGQubmFtZV0gfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IGtsZXNGaWVsZENvbnRyb2xGYWN0b3J5KHsgLi4uc3ViZmllbGQsIHZhbHVlOiBzdWJmaWVsZC52YWx1ZSB8fCB0aGlzLmZpZWxkLnZhbHVlPy5bc3ViZmllbGQubmFtZV0gfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3ViR3JvdXAuYWRkQ29udHJvbChzdWJmaWVsZC5uYW1lLCBjb250cm9sKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZmllbGQuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHN1Ykdyb3VwLmRpc2FibGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKCdzdWJHcm91cCcsIHN1Ykdyb3VwKVxuXG4gICAgICAgIHJldHVybiBzdWJHcm91cDtcbiAgICB9XG59XG4iXX0=
@@ -2188,13 +2188,23 @@ class KlesFormGroup extends KlesFormControl {
2188
2188
  const subGroup = new UntypedFormGroup({});
2189
2189
  if (this.field.collections && Array.isArray(this.field.collections)) {
2190
2190
  this.field.collections.forEach(subfield => {
2191
- const control = new KlesFormControl(subfield).create();
2191
+ var _a, _b, _c, _d, _e, _f;
2192
+ let control;
2193
+ if (subfield.type) {
2194
+ control = ((_a = componentMapper.find(c => c.type === subfield.type)) === null || _a === void 0 ? void 0 : _a.factory(Object.assign(Object.assign({}, subfield), { value: subfield.value || ((_b = this.field.value) === null || _b === void 0 ? void 0 : _b[subfield.name]) })))
2195
+ || klesFieldControlFactory(Object.assign(Object.assign({}, subfield), { value: subfield.value || ((_c = this.field.value) === null || _c === void 0 ? void 0 : _c[subfield.name]) }));
2196
+ }
2197
+ else {
2198
+ control = ((_d = componentMapper.find(c => c.component === subfield.component)) === null || _d === void 0 ? void 0 : _d.factory(Object.assign(Object.assign({}, subfield), { value: subfield.value || ((_e = this.field.value) === null || _e === void 0 ? void 0 : _e[subfield.name]) })))
2199
+ || klesFieldControlFactory(Object.assign(Object.assign({}, subfield), { value: subfield.value || ((_f = this.field.value) === null || _f === void 0 ? void 0 : _f[subfield.name]) }));
2200
+ }
2192
2201
  subGroup.addControl(subfield.name, control);
2193
2202
  });
2194
2203
  }
2195
2204
  if (this.field.disabled) {
2196
2205
  subGroup.disable();
2197
2206
  }
2207
+ console.log('subGroup', subGroup);
2198
2208
  return subGroup;
2199
2209
  }
2200
2210
  }
@@ -2964,8 +2974,18 @@ class KlesFormArray extends KlesFormControl {
2964
2974
  const group = new FormGroup({});
2965
2975
  group.addControl('_id', new FormControl(v4()));
2966
2976
  this.field.collections.forEach(subfield => {
2977
+ var _a, _b;
2967
2978
  const data = val[subfield.name] || null;
2968
- const control = new KlesFormControl(Object.assign(Object.assign({}, subfield), (data && { value: data }))).create();
2979
+ // const control = new KlesFormControl({ ...subfield, ...(data && { value: data }) }).create();
2980
+ let control;
2981
+ if (subfield.type) {
2982
+ control = ((_a = componentMapper.find(c => c.type === subfield.type)) === null || _a === void 0 ? void 0 : _a.factory(Object.assign(Object.assign({}, subfield), (data && { value: data }))))
2983
+ || klesFieldControlFactory(Object.assign(Object.assign({}, subfield), (data && { value: data })));
2984
+ }
2985
+ else {
2986
+ control = ((_b = componentMapper.find(c => c.component === subfield.component)) === null || _b === void 0 ? void 0 : _b.factory(Object.assign(Object.assign({}, subfield), (data && { value: data }))))
2987
+ || klesFieldControlFactory(Object.assign(Object.assign({}, subfield), (data && { value: data })));
2988
+ }
2969
2989
  group.addControl(subfield.name, control);
2970
2990
  });
2971
2991
  array.push(group);
@@ -2975,7 +2995,17 @@ class KlesFormArray extends KlesFormControl {
2975
2995
  else {
2976
2996
  const group = new FormGroup({});
2977
2997
  this.field.collections.forEach(subfield => {
2978
- const control = new KlesFormControl(Object.assign({}, subfield)).create();
2998
+ var _a, _b;
2999
+ // const control = new KlesFormControl({ ...subfield }).create();
3000
+ let control;
3001
+ if (subfield.type) {
3002
+ control = ((_a = componentMapper.find(c => c.type === subfield.type)) === null || _a === void 0 ? void 0 : _a.factory(Object.assign({}, subfield)))
3003
+ || klesFieldControlFactory(Object.assign({}, subfield));
3004
+ }
3005
+ else {
3006
+ control = ((_b = componentMapper.find(c => c.component === subfield.component)) === null || _b === void 0 ? void 0 : _b.factory(Object.assign({}, subfield)))
3007
+ || klesFieldControlFactory(Object.assign({}, subfield));
3008
+ }
2979
3009
  group.addControl(subfield.name, control);
2980
3010
  });
2981
3011
  array.push(group);