|
@@ -166,7 +166,7 @@ class CheckbuttonGroup {
|
|
|
label?: string;
|
|
|
groupName: string;
|
|
|
firstEnablesRest?;
|
|
|
- meta: CheckbuttonField[];
|
|
|
+ meta: CheckbuttonField[] | { [key: string]: CheckbuttonField };
|
|
|
constructor(groupmeta: any) {
|
|
|
Object.assign(this, groupmeta);
|
|
|
if (!this.label) {
|
|
@@ -174,8 +174,16 @@ class CheckbuttonGroup {
|
|
|
// e.g. supervisorCardNumber --> Supervisor Card Number
|
|
|
this.label = unCamelCase(this.name);
|
|
|
}
|
|
|
- const groupMembers = Array.isArray(groupmeta.meta) ? groupmeta.meta : Object.values(groupmeta.meta);
|
|
|
- this.meta = groupMembers.map(cb => new CheckbuttonField(cb));
|
|
|
+ // Can render as a FormArray or FormGroup depending on input data
|
|
|
+ if (Array.isArray(groupmeta.meta)) {
|
|
|
+ const arrayMembers = groupmeta.meta;
|
|
|
+ this.meta = arrayMembers.map(cb => new CheckbuttonField(cb));
|
|
|
+ } else {
|
|
|
+ const groupMembers = groupmeta.meta;
|
|
|
+ this.meta = Object.entries(groupMembers)
|
|
|
+ .map( ([key, cb]) => [key, new CheckbuttonField(cb as SimpleFieldMetaData)] )
|
|
|
+ .reduce((res, [key, cbf]) => { res[<string>key] = cbf; return res; }, {});
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|