@messaia/cdk 13.3.3 → 13.3.5-rc02

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,90 +1,10 @@
1
1
  import { headerMetadataKey } from "../../common/constants/constants";
2
- import { formFieldGroupMetadataKey } from "../constants/constants";
2
+ import { Utils } from "../../common/functions/utils";
3
+ import { formFieldGroupsMetadataKey, formFieldsMetadataKey } from "../constants/constants";
3
4
  import { FormFieldType } from "../enums/form-field-type";
4
5
  import { FormFieldDefinition } from "../models/form-field-definition";
5
- import { FormFieldGroup } from "../models/form-field-group";
6
+ import { FormFieldGroupDefinition } from "../models/form-field-group-definition";
6
7
  import { getFormGroups } from "./functions";
7
- /**
8
- * Property decorator to create form fields
9
- * @param args
10
- * @returns
11
- */
12
- export function FormFieldOld(args) {
13
- return function (target, propertyKey) {
14
- /* Get property name */
15
- var propertyName = args.name || propertyKey;
16
- /* Get property type */
17
- var propertyType = Reflect.getMetadata("design:type", target, propertyKey)?.name;
18
- /* Create table column */
19
- var formField = new FormFieldDefinition(Object.assign(args, {
20
- name: args.name || propertyKey,
21
- header: args.header || Reflect.getMetadata(headerMetadataKey, target, propertyKey) || propertyName,
22
- autocompleteTemplate: args.autocompleteTemplate || ((option) => option[formField.autocompleteText]),
23
- chipTemplate: args.chipTemplate || ((chip) => chip[formField.chipText])
24
- }));
25
- /* Type enum */
26
- if (formField.enumType) {
27
- formField.type || (formField.type = FormFieldType.Enum);
28
- }
29
- /* Type VdSelect */
30
- else if (formField.endpoint) {
31
- formField.type || (formField.type = FormFieldType.VdSelect);
32
- }
33
- /* Type Select */
34
- else if (formField.options) {
35
- formField.type || (formField.type = FormFieldType.Select);
36
- }
37
- /* Type TextArea */
38
- else if (formField.rows) {
39
- formField.type || (formField.type = FormFieldType.TextArea);
40
- }
41
- /* Type File */
42
- else if (formField.filePath) {
43
- formField.type || (formField.type = FormFieldType.File);
44
- }
45
- /* Other types */
46
- else {
47
- switch (propertyType.toLowerCase()) {
48
- case 'number':
49
- formField.type || (formField.type = FormFieldType.Text);
50
- formField.inputType || (formField.inputType = 'number');
51
- break;
52
- case 'date':
53
- formField.type || (formField.type = FormFieldType.Date);
54
- break;
55
- case 'boolean':
56
- formField.type || (formField.type = FormFieldType.Checkbox);
57
- break;
58
- default:
59
- formField.type || (formField.type = FormFieldType.Text);
60
- break;
61
- }
62
- }
63
- /* Get existing table groups */
64
- let formFieldGroups = Reflect.getMetadata(formFieldGroupMetadataKey, target) || [];
65
- /* Get the group */
66
- var group = formFieldGroups.filter(x => x.name?.trim() == formField.groupName?.trim())[0];
67
- /* The group already exists, add the new form field */
68
- if (group) {
69
- group.fields.push(formField);
70
- }
71
- /* Create a new group */
72
- else {
73
- group = new FormFieldGroup({ name: formField.groupName || null, header: formField.groupHeader, fields: [formField] });
74
- formFieldGroups.push(group);
75
- }
76
- /* Sort the fields by row */
77
- group.fields = group.fields?.sort((a, b) => (a.row || 0 > b.row || 0) ? 1 : ((b.row || 0 > a.row || 0) ? -1 : 0)) || [];
78
- /* Group the fields */
79
- group.groups = Object.values((group.fields).reduce(function (r, a) {
80
- r[a.row] = r[a.row] || [];
81
- r[a.row].push(a);
82
- return r;
83
- }, Object.create(null)));
84
- /* Add new table column */
85
- Reflect.defineMetadata(formFieldGroupMetadataKey, formFieldGroups, target);
86
- };
87
- }
88
8
  /**
89
9
  * Property decorator to create form fields
90
10
  * @param args
@@ -142,50 +62,62 @@ export function FormField(args) {
142
62
  }
143
63
  }
144
64
  /* Get old form fields */
145
- const previousFormFields = Reflect.getMetadata(formFieldGroupMetadataKey, target);
65
+ const previousFormFields = Reflect.getMetadata(formFieldsMetadataKey, target);
146
66
  /* Create a copy of the result */
147
67
  let formFields = previousFormFields ? previousFormFields.concat([formField]) : [formField];
148
68
  /* Override the result in the metadata */
149
- Reflect.defineMetadata(formFieldGroupMetadataKey, formFields, target);
69
+ Reflect.defineMetadata(formFieldsMetadataKey, formFields, target);
70
+ /* Group the fields */
71
+ var groups = Array.from(Utils.groupArrayBy(formFields, x => x.groupName))
72
+ .map(([_, value]) => new FormFieldGroupDefinition({
73
+ name: value[0].groupName || null,
74
+ header: value[0].groupHeader,
75
+ fields: value,
76
+ groups: Object.values((value).reduce(function (r, a) {
77
+ r[a.row] = (r[a.row] || []);
78
+ r[a.row].push(a);
79
+ r[a.row].forEach((x, i) => x.index = x.index || i);
80
+ Utils.sortArray(r[a.row], 'index');
81
+ return r;
82
+ }, Object.create(null)))
83
+ }));
84
+ /* Override the result in the metadata */
85
+ Reflect.defineMetadata(formFieldGroupsMetadataKey, groups, target);
150
86
  };
151
87
  }
152
88
  /**
153
89
  * Property decorator to create form fields
154
- * @param args
90
+ * @param type
91
+ * @param header
92
+ * @param init
155
93
  * @returns
156
94
  */
157
- export function FormGroup(type, header, name) {
95
+ export function FormFieldGroup(type, header, init) {
158
96
  return function (target, propertyKey) {
159
- /* Set proprety name as group name, if empty */
160
- name || (name = propertyKey);
97
+ /* Create an instance of the group object */
98
+ var instance = Reflect.construct(type, []);
161
99
  /* Get from groups */
162
- var groups = getFormGroups(Reflect.construct(type, []));
163
- /* Get all fields */
164
- var fields = groups.map(x => x.fields).reduce((a, b) => a.concat(b), []) || [];
165
- /* Get existing table groups */
166
- let formFieldGroups = Reflect.getMetadata(formFieldGroupMetadataKey, target) || [];
167
- /* Get the group */
168
- var group = formFieldGroups.filter(x => x.name?.trim() == name?.trim())[0];
169
- /* The group already exist, add the fields to it */
170
- if (group) {
171
- fields.forEach(x => x.groupName = name);
172
- group.fields.push(...fields);
173
- }
174
- /* Create the new group */
175
- else {
176
- group = new FormFieldGroup({ name: name, header: header, fields: fields });
177
- formFieldGroups.push(group);
178
- }
179
- /* Sort the fields by row */
180
- group.fields = group?.fields?.sort((a, b) => (a.row || 0 > b.row || 0) ? 1 : ((b.row || 0 > a.row || 0) ? -1 : 0)) || [];
181
- /* Group the fields */
182
- group.groups = Object.values((group.fields).reduce(function (r, a) {
183
- r[a.row] = r[a.row] || [];
184
- r[a.row].push(a);
185
- return r;
186
- }, Object.create(null)));
187
- /* Add new table column */
188
- Reflect.defineMetadata(formFieldGroupMetadataKey, formFieldGroups, target);
100
+ var groups = getFormGroups(instance);
101
+ /* Get the fields from the groups */
102
+ groups?.forEach(x => {
103
+ Object.assign(x, {
104
+ name: propertyKey,
105
+ header: header,
106
+ type: type,
107
+ instance: init || instance
108
+ });
109
+ /* Set the name of the group in the fields */
110
+ x.fields.forEach(y => Object.assign(y, {
111
+ groupName: propertyKey,
112
+ groupHeader: header
113
+ }));
114
+ });
115
+ /* Get old form field groups */
116
+ const previousGroups = Reflect.getMetadata(formFieldGroupsMetadataKey, target);
117
+ /* Create a copy of the result */
118
+ let combinedGroups = previousGroups ? previousGroups.concat(groups) : groups;
119
+ /* Override the result in the metadata */
120
+ Reflect.defineMetadata(formFieldGroupsMetadataKey, combinedGroups, target);
189
121
  };
190
122
  }
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm1zL2Z1bmN0aW9ucy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1Qzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxJQUFrQztJQUMzRCxPQUFPLFVBQVUsTUFBVyxFQUFFLFdBQW1CO1FBQzdDLHVCQUF1QjtRQUN2QixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQztRQUU1Qyx1QkFBdUI7UUFDdkIsSUFBSSxZQUFZLEdBQVcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQztRQUV6Rix5QkFBeUI7UUFDekIsSUFBSSxTQUFTLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBdUI7WUFDN0UsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksV0FBVztZQUM5QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsSUFBSSxZQUFZO1lBQ2xHLG9CQUFvQixFQUFFLElB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SSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBNEIsQ0FBQztRQUVwRCwwQkFBMEI7UUFDMUIsT0FBTyxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDL0UsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBoZWFkZXJNZXRhZGF0YUtleSB9IGZyb20gXCIuLi8uLi9jb21tb24vY29uc3RhbnRzL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBmb3JtRmllbGRHcm91cE1ldGFkYXRhS2V5IH0gZnJvbSBcIi4uL2NvbnN0YW50cy9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRm9ybUZpZWxkVHlwZSB9IGZyb20gXCIuLi9lbnVtcy9mb3JtLWZpZWxkLXR5cGVcIjtcclxuaW1wb3J0IHsgRm9ybUZpZWxkRGVmaW5pdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvZm9ybS1maWVsZC1kZWZpbml0aW9uXCI7XHJcbmltcG9ydCB7IEZvcm1GaWVsZEdyb3VwIH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLWZpZWxkLWdyb3VwXCI7XHJcbmltcG9ydCB7IGdldEZvcm1Hcm91cHMgfSBmcm9tIFwiLi9mdW5jdGlvbnNcIjtcclxuXHJcbi8qKlxyXG4gKiBQcm9wZXJ0eSBkZWNvcmF0b3IgdG8gY3JlYXRlIGZvcm0gZmllbGRzXHJcbiAqIEBwYXJhbSBhcmdzIFxyXG4gKiBAcmV0dXJucyBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBGb3JtRmllbGRPbGQoYXJnczogUGFydGlhbDxGb3JtRmllbGREZWZpbml0aW9uPik6IEZ1bmN0aW9uIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpIHtcclxuICAgICAgICAvKiBHZXQgcHJvcGVydHkgbmFtZSAqL1xyXG4gICAgICAgIHZhciBwcm9wZXJ0eU5hbWUgPSBhcmdzLm5hbWUgfHwgcHJvcGVydHlLZXk7XHJcblxyXG4gICAgICAgIC8qIEdldCBwcm9wZXJ0eSB0eXBlICovXHJcbiAgICAgICAgdmFyIHByb3BlcnR5VHlwZTogc3RyaW5nID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIHRhcmdldCwgcHJvcGVydHlLZXkpPy5uYW1lO1xyXG5cclxuICAgICAgICAvKiBDcmVhdGUgdGFibGUgY29sdW1uICovXHJcbiAgICAgICAgdmFyIGZvcm1GaWVsZCA9IG5ldyBGb3JtRmllbGREZWZpbml0aW9uKE9iamVjdC5hc3NpZ24oYXJncywgPEZvcm1GaWVsZERlZmluaXRpb24+e1xyXG4gICAgICAgICAgICBuYW1lOiBhcmdzLm5hbWUgfHwgcHJvcGVydHlLZXksXHJcbiAgICAgICAgICAgIGhlYWRlcjogYXJncy5oZWFkZXIgfHwgUmVmbGVjdC5nZXRNZXRhZGF0YShoZWFkZXJNZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSkgfHwgcHJvcGVydHlOYW1lLFxyXG4gICAgICAgICAgICBhdXRvY29tcGxldGVUZW1wbGF0ZTogYXJncy5hdXRvY29tcGxldGVUZW1wbGF0ZSB8fCAoKG9wdGlvbjogYW55KSA9PiBvcHRpb25bZm9ybUZpZWxkLmF1dG9jb21wbGV0ZVRleHRdKSxcclxuICAgICAgICAgICAgY2hpcFRlbXBsYXRlOiBhcmdzLmNoaXBUZW1wbGF0ZSB8fCAoKGNoaXA6IGFueSkgPT4gY2hpcFtmb3JtRmllbGQuY2hpcFRleHRdKVxyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgLyogVHlwZSBlbnVtICovXHJcbiAgICAgICAgaWYgKGZvcm1GaWVsZC5lbnVtVHlwZSkge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5FbnVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBWZFNlbGVjdCAqL1xyXG4gICAgICAgIGVsc2UgaWYgKGZvcm1GaWVsZC5lbmRwb2ludCkge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5WZFNlbGVjdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFR5cGUgU2VsZWN0ICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLm9wdGlvbnMpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuU2VsZWN0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBUZXh0QXJlYSAqL1xyXG4gICAgICAgIGVsc2UgaWYgKGZvcm1GaWVsZC5yb3dzKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHRBcmVhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBGaWxlICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLmZpbGVQYXRoKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLkZpbGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBPdGhlciB0eXBlcyAqL1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHByb3BlcnR5VHlwZS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLmlucHV0VHlwZSB8fD0gJ251bWJlcic7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuRGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5DaGVja2JveDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIEdldCBleGlzdGluZyB0YWJsZSBncm91cHMgKi9cclxuICAgICAgICBsZXQgZm9ybUZpZWxkR3JvdXBzOiBGb3JtRmllbGRHcm91cFtdID0gUmVmbGVjdC5nZXRNZXRhZGF0YShmb3JtRmllbGRHcm91cE1ldGFkYXRhS2V5LCB0YXJnZXQpIHx8IFtdO1xyXG5cclxuICAgICAgICAvKiBHZXQgdGhlIGdyb3VwICovXHJcbiAgICAgICAgdmFyIGdyb3VwID0gZm9ybUZpZWxkR3JvdXBzLmZpbHRlcih4ID0+IHgubmFtZT8udHJpbSgpID09IGZvcm1GaWVsZC5ncm91cE5hbWU/LnRyaW0oKSlbMF07XHJcblxyXG4gICAgICAgIC8qIFRoZSBncm91cCBhbHJlYWR5IGV4aXN0cywgYWRkIHRoZSBuZXcgZm9ybSBmaWVsZCAqL1xyXG4gICAgICAgIGlmIChncm91cCkge1xyXG4gICAgICAgICAgICBncm91cC5maWVsZHMucHVzaChmb3JtRmllbGQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogQ3JlYXRlIGEgbmV3IGdyb3VwICovXHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwID0gbmV3IEZvcm1GaWVsZEdyb3VwKHsgbmFtZTogZm9ybUZpZWxkLmdyb3VwTmFtZSB8fCBudWxsLCBoZWFkZXI6IGZvcm1GaWVsZC5ncm91cEhlYWRlciwgZmllbGRzOiBbZm9ybUZpZWxkXSB9KTtcclxuICAgICAgICAgICAgZm9ybUZpZWxkR3JvdXBzLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogU29ydCB0aGUgZmllbGRzIGJ5IHJvdyAqL1xyXG4gICAgICAgIGdyb3VwLmZpZWxkcyA9IGdyb3VwLmZpZWxkcz8uc29ydCgoYSwgYikgPT4gKGEucm93IHx8IDAgPiBiLnJvdyB8fCAwKSA/IDEgOiAoKGIucm93IHx8IDAgPiBhLnJvdyB8fCAwKSA/IC0xIDogMCkpIHx8IFtdO1xyXG5cclxuICAgICAgICAvKiBHcm91cCB0aGUgZmllbGRzICovXHJcbiAgICAgICAgZ3JvdXAuZ3JvdXBzID0gT2JqZWN0LnZhbHVlcygoZ3JvdXAuZmllbGRzKS5yZWR1Y2UoZnVuY3Rpb24gKHIsIGEpIHtcclxuICAgICAgICAgICAgclthLnJvd10gPSByW2Eucm93XSB8fCBbXTtcclxuICAgICAgICAgICAgclthLnJvd10ucHVzaChhKTtcclxuICAgICAgICAgICAgcmV0dXJuIHI7XHJcbiAgICAgICAgfSwgT2JqZWN0LmNyZWF0ZShudWxsKSkpIGFzIFtGb3JtRmllbGREZWZpbml0aW9uW11dO1xyXG5cclxuICAgICAgICAvKiBBZGQgbmV3IHRhYmxlIGNvbHVtbiAqL1xyXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoZm9ybUZpZWxkR3JvdXBNZXRhZGF0YUtleSwgZm9ybUZpZWxkR3JvdXBzLCB0YXJnZXQpO1xyXG4gICAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFByb3BlcnR5IGRlY29yYXRvciB0byBjcmVhdGUgZm9ybSBmaWVsZHNcclxuICogQHBhcmFtIGFyZ3MgXHJcbiAqIEByZXR1cm5zIFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1GaWVsZChhcmdzOiBQYXJ0aWFsPEZvcm1GaWVsZERlZmluaXRpb24+KTogRnVuY3Rpb24ge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZykge1xyXG4gICAgICAgIC8qIEdldCBwcm9wZXJ0eSBuYW1lICovXHJcbiAgICAgICAgdmFyIHByb3BlcnR5TmFtZSA9IGFyZ3MubmFtZSB8fCBwcm9wZXJ0eUtleTtcclxuXHJcbiAgICAgICAgLyogR2V0IHByb3BlcnR5IHR5cGUgKi9cclxuICAgICAgICB2YXIgcHJvcGVydHlUeXBlOiBzdHJpbmcgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk/Lm5hbWU7XHJcblxyXG4gICAgICAgIC8qIENyZWF0ZSB0YWJsZSBjb2x1bW4gKi9cclxuICAgICAgICB2YXIgZm9ybUZpZWxkID0gbmV3IEZvcm1GaWVsZERlZmluaXRpb24oT2JqZWN0LmFzc2lnbihhcmdzLCA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XHJcbiAgICAgICAgICAgIG5hbWU6IGFyZ3MubmFtZSB8fCBwcm9wZXJ0eUtleSxcclxuICAgICAgICAgICAgaGVhZGVyOiBhcmdzLmhlYWRlciB8fCBSZWZsZWN0LmdldE1ldGFkYXRhKGhlYWRlck1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KSB8fCBwcm9wZXJ0eU5hbWUsXHJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZVRlbXBsYXRlOiBhcmdzLmF1dG9jb21wbGV0ZVRlbXBsYXRlIHx8ICgob3B0aW9uOiBhbnkpID0+IG9wdGlvbltmb3JtRmllbGQuYXV0b2NvbXBsZXRlVGV4dF0pLFxyXG4gICAgICAgICAgICBjaGlwVGVtcGxhdGU6IGFyZ3MuY2hpcFRlbXBsYXRlIHx8ICgoY2hpcDogYW55KSA9PiBjaGlwW2Zvcm1GaWVsZC5jaGlwVGV4dF0pXHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICAvKiBUeXBlIGVudW0gKi9cclxuICAgICAgICBpZiAoZm9ybUZpZWxkLmVudW1UeXBlKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLkVudW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBUeXBlIFZkU2VsZWN0ICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLmVuZHBvaW50KSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlZkU2VsZWN0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBTZWxlY3QgKi9cclxuICAgICAgICBlbHNlIGlmIChmb3JtRmllbGQub3B0aW9ucykge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5TZWxlY3Q7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBUeXBlIFRleHRBcmVhICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLnJvd3MpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuVGV4dEFyZWE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBUeXBlIEZpbGUgKi9cclxuICAgICAgICBlbHNlIGlmIChmb3JtRmllbGQuZmlsZVBhdGgpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuRmlsZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIE90aGVyIHR5cGVzICovXHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAocHJvcGVydHlUeXBlLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuVGV4dDtcclxuICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQuaW5wdXRUeXBlIHx8PSAnbnVtYmVyJztcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5EYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLkNoZWNrYm94O1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuVGV4dDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogR2V0IG9sZCBmb3JtIGZpZWxkcyAqL1xyXG4gICAgICAgIGNvbnN0IHByZXZpb3VzRm9ybUZpZWxkcyA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybUZpZWxkR3JvdXBNZXRhZGF0YUtleSwgdGFyZ2V0KTtcclxuXHJcbiAgICAgICAgLyogQ3JlYXRlIGEgY29weSBvZiB0aGUgcmVzdWx0ICovXHJcbiAgICAgICAgbGV0IGZvcm1GaWVsZHMgPSBwcmV2aW91c0Zvcm1GaWVsZHMgPyBwcmV2aW91c0Zvcm1GaWVsZHMuY29uY2F0KFtmb3JtRmllbGRdKSA6IFtmb3JtRmllbGRdO1xyXG5cclxuICAgICAgICAvKiBPdmVycmlkZSB0aGUgcmVzdWx0IGluIHRoZSBtZXRhZGF0YSAqL1xyXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoZm9ybUZpZWxkR3JvdXBNZXRhZGF0YUtleSwgZm9ybUZpZWxkcywgdGFyZ2V0KTtcclxuICAgIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcm9wZXJ0eSBkZWNvcmF0b3IgdG8gY3JlYXRlIGZvcm0gZmllbGRzXHJcbiAqIEBwYXJhbSBhcmdzIFxyXG4gKiBAcmV0dXJucyBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBGb3JtR3JvdXA8VD4odHlwZTogVHlwZTxUPiwgaGVhZGVyOiBzdHJpbmcsIG5hbWU/OiBzdHJpbmcpOiBGdW5jdGlvbiB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgLyogU2V0IHByb3ByZXR5IG5hbWUgYXMgZ3JvdXAgbmFtZSwgaWYgZW1wdHkgKi9cclxuICAgICAgICBuYW1lIHx8PSBwcm9wZXJ0eUtleTtcclxuXHJcbiAgICAgICAgLyogR2V0IGZyb20gZ3JvdXBzICovXHJcbiAgICAgICAgdmFyIGdyb3VwcyA9IGdldEZvcm1Hcm91cHMoUmVmbGVjdC5jb25zdHJ1Y3QodHlwZSwgW10pKTtcclxuXHJcbiAgICAgICAgLyogR2V0IGFsbCBmaWVsZHMgKi9cclxuICAgICAgICB2YXIgZmllbGRzID0gZ3JvdXBzLm1hcCh4ID0+IHguZmllbGRzKS5yZWR1Y2UoKGEsIGIpID0+IGEuY29uY2F0KGIpLCBbXSkgfHwgW107XHJcblxyXG4gICAgICAgIC8qIEdldCBleGlzdGluZyB0YWJsZSBncm91cHMgKi9cclxuICAgICAgICBsZXQgZm9ybUZpZWxkR3JvdXBzOiBGb3JtRmllbGRHcm91cFtdID0gUmVmbGVjdC5nZXRNZXRhZGF0YShmb3JtRmllbGRHcm91cE1ldGFkYXRhS2V5LCB0YXJnZXQpIHx8IFtdO1xyXG5cclxuICAgICAgICAvKiBHZXQgdGhlIGdyb3VwICovXHJcbiAgICAgICAgdmFyIGdyb3VwID0gZm9ybUZpZWxkR3JvdXBzLmZpbHRlcih4ID0+IHgubmFtZT8udHJpbSgpID09IG5hbWU/LnRyaW0oKSlbMF07XHJcblxyXG4gICAgICAgIC8qIFRoZSBncm91cCBhbHJlYWR5IGV4aXN0LCBhZGQgdGhlIGZpZWxkcyB0byBpdCAqL1xyXG4gICAgICAgIGlmIChncm91cCkge1xyXG4gICAgICAgICAgICBmaWVsZHMuZm9yRWFjaCh4ID0+IHguZ3JvdXBOYW1lID0gbmFtZSk7XHJcbiAgICAgICAgICAgIGdyb3VwLmZpZWxkcy5wdXNoKC4uLmZpZWxkcyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBDcmVhdGUgdGhlIG5ldyBncm91cCAqL1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBncm91cCA9IG5ldyBGb3JtRmllbGRHcm91cCh7IG5hbWU6IG5hbWUsIGhlYWRlcjogaGVhZGVyLCBmaWVsZHM6IGZpZWxkcyB9KTtcclxuICAgICAgICAgICAgZm9ybUZpZWxkR3JvdXBzLnB1c2goZ3JvdXApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogU29ydCB0aGUgZmllbGRzIGJ5IHJvdyAqL1xyXG4gICAgICAgIGdyb3VwLmZpZWxkcyA9IGdyb3VwPy5maWVsZHM/LnNvcnQoKGEsIGIpID0+IChhLnJvdyB8fCAwID4gYi5yb3cgfHwgMCkgPyAxIDogKChiLnJvdyB8fCAwID4gYS5yb3cgfHwgMCkgPyAtMSA6IDApKSB8fCBbXTtcclxuXHJcbiAgICAgICAgLyogR3JvdXAgdGhlIGZpZWxkcyAqL1xyXG4gICAgICAgIGdyb3VwLmdyb3VwcyA9IE9iamVjdC52YWx1ZXMoKGdyb3VwLmZpZWxkcykucmVkdWNlKGZ1bmN0aW9uIChyLCBhKSB7XHJcbiAgICAgICAgICAgIHJbYS5yb3ddID0gclthLnJvd10gfHwgW107XHJcbiAgICAgICAgICAgIHJbYS5yb3ddLnB1c2goYSk7XHJcbiAgICAgICAgICAgIHJldHVybiByO1xyXG4gICAgICAgIH0sIE9iamVjdC5jcmVhdGUobnVsbCkpKSBhcyBbRm9ybUZpZWxkRGVmaW5pdGlvbltdXTtcclxuXHJcbiAgICAgICAgLyogQWRkIG5ldyB0YWJsZSBjb2x1bW4gKi9cclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKGZvcm1GaWVsZEdyb3VwTWV0YWRhdGFLZXksIGZvcm1GaWVsZEdyb3VwcywgdGFyZ2V0KTtcclxuICAgIH07XHJcbn0iXX0=
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm1zL2Z1bmN0aW9ucy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1Qzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFrQztJQUN4RCxPQUFPLFVBQVUsTUFBVyxFQUFFLFdBQW1CO1FBQzdDLHVCQUF1QjtRQUN2QixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQztRQUU1Qyx1QkFBdUI7UUFDdkIsSUFBSSxZQUFZLEdBQVcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQztRQUV6Rix5QkFBeUI7UUFDekIsSUFBSSxTQUFTLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBdUI7WUFDN0UsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksV0FBVztZQUM5QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsV0FBVyxDQUFDLGlCQUFp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QUUsV0FBbUI7UUFDN0MsNENBQTRDO1FBQzVDLElBQUksUUFBUSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTNDLHFCQUFxQjtRQUNyQixJQUFJLE1BQU0sR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFckMsb0NBQW9DO1FBQ3BDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7Z0JBQ2IsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLE1BQU0sRUFBRSxNQUFNO2dCQUNkLElBQUksRUFBRSxJQUFJO2dCQUNWLFFBQVEsRUFBRSxJQUFJLElBQUksUUFBUTthQUM3QixDQUFDLENBQUM7WUFFSCw2Q0FBNkM7WUFDN0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRTtnQkFDbkMsU0FBUyxFQUFFLFdBQVc7Z0JBQ3RCLFdBQVcsRUFBRSxNQUFNO2FBQ3RCLENBQUMsQ0FBQyxDQUFDO1FBQ1IsQ0FBQyxDQUFDLENBQUM7UUFFSCwrQkFBK0I7UUFDL0IsTUFBTSxjQUFjLEdBQStCLE9BQU8sQ0FBQyxXQUFXLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFM0csaUNBQWlDO1FBQ2pDLElBQUksY0FBYyxHQUErQixjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUV6Ryx5Q0FBeUM7UUFDekMsT0FBTyxDQUFDLGNBQWMsQ0FBQywwQkFBMEIsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDL0UsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBoZWFkZXJNZXRhZGF0YUtleSB9IGZyb20gXCIuLi8uLi9jb21tb24vY29uc3RhbnRzL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBVdGlscyB9IGZyb20gXCIuLi8uLi9jb21tb24vZnVuY3Rpb25zL3V0aWxzXCI7XHJcbmltcG9ydCB7IGZvcm1GaWVsZEdyb3Vwc01ldGFkYXRhS2V5LCBmb3JtRmllbGRzTWV0YWRhdGFLZXkgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGRUeXBlIH0gZnJvbSBcIi4uL2VudW1zL2Zvcm0tZmllbGQtdHlwZVwiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGREZWZpbml0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLWZpZWxkLWRlZmluaXRpb25cIjtcclxuaW1wb3J0IHsgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLWZpZWxkLWdyb3VwLWRlZmluaXRpb25cIjtcclxuaW1wb3J0IHsgZ2V0Rm9ybUdyb3VwcyB9IGZyb20gXCIuL2Z1bmN0aW9uc1wiO1xyXG5cclxuLyoqXHJcbiAqIFByb3BlcnR5IGRlY29yYXRvciB0byBjcmVhdGUgZm9ybSBmaWVsZHNcclxuICogQHBhcmFtIGFyZ3MgXHJcbiAqIEByZXR1cm5zIFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1GaWVsZChhcmdzOiBQYXJ0aWFsPEZvcm1GaWVsZERlZmluaXRpb24+KTogRnVuY3Rpb24ge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZykge1xyXG4gICAgICAgIC8qIEdldCBwcm9wZXJ0eSBuYW1lICovXHJcbiAgICAgICAgdmFyIHByb3BlcnR5TmFtZSA9IGFyZ3MubmFtZSB8fCBwcm9wZXJ0eUtleTtcclxuXHJcbiAgICAgICAgLyogR2V0IHByb3BlcnR5IHR5cGUgKi9cclxuICAgICAgICB2YXIgcHJvcGVydHlUeXBlOiBzdHJpbmcgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk/Lm5hbWU7XHJcblxyXG4gICAgICAgIC8qIENyZWF0ZSB0YWJsZSBjb2x1bW4gKi9cclxuICAgICAgICB2YXIgZm9ybUZpZWxkID0gbmV3IEZvcm1GaWVsZERlZmluaXRpb24oT2JqZWN0LmFzc2lnbihhcmdzLCA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XHJcbiAgICAgICAgICAgIG5hbWU6IGFyZ3MubmFtZSB8fCBwcm9wZXJ0eUtleSxcclxuICAgICAgICAgICAgaGVhZGVyOiBhcmdzLmhlYWRlciB8fCBSZWZsZWN0LmdldE1ldGFkYXRhKGhlYWRlck1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KSB8fCBwcm9wZXJ0eU5hbWUsXHJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZVRlbXBsYXRlOiBhcmdzLmF1dG9jb21wbGV0ZVRlbXBsYXRlIHx8ICgob3B0aW9uOiBhbnkpID0+IG9wdGlvbltmb3JtRmllbGQuYXV0b2NvbXBsZXRlVGV4dF0pLFxyXG4gICAgICAgICAgICBjaGlwVGVtcGxhdGU6IGFyZ3MuY2hpcFRlbXBsYXRlIHx8ICgoY2hpcDogYW55KSA9PiBjaGlwW2Zvcm1GaWVsZC5jaGlwVGV4dF0pXHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICAvKiBUeXBlIGVudW0gKi9cclxuICAgICAgICBpZiAoZm9ybUZpZWxkLmVudW1UeXBlKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLkVudW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBUeXBlIFZkU2VsZWN0ICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLmVuZHBvaW50KSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlZkU2VsZWN0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBTZWxlY3QgKi9cclxuICAgICAgICBlbHNlIGlmIChmb3JtRmllbGQub3B0aW9ucykge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5TZWxlY3Q7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBUeXBlIFRleHRBcmVhICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLnJvd3MpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuVGV4dEFyZWE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBUeXBlIEZpbGUgKi9cclxuICAgICAgICBlbHNlIGlmIChmb3JtRmllbGQuZmlsZVBhdGgpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuRmlsZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIE90aGVyIHR5cGVzICovXHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAocHJvcGVydHlUeXBlLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuVGV4dDtcclxuICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQuaW5wdXRUeXBlIHx8PSAnbnVtYmVyJztcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5EYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLkNoZWNrYm94O1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuVGV4dDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogR2V0IG9sZCBmb3JtIGZpZWxkcyAqL1xyXG4gICAgICAgIGNvbnN0IHByZXZpb3VzRm9ybUZpZWxkczogRm9ybUZpZWxkRGVmaW5pdGlvbltdID0gUmVmbGVjdC5nZXRNZXRhZGF0YShmb3JtRmllbGRzTWV0YWRhdGFLZXksIHRhcmdldCk7XHJcblxyXG4gICAgICAgIC8qIENyZWF0ZSBhIGNvcHkgb2YgdGhlIHJlc3VsdCAqL1xyXG4gICAgICAgIGxldCBmb3JtRmllbGRzOiBGb3JtRmllbGREZWZpbml0aW9uW10gPSBwcmV2aW91c0Zvcm1GaWVsZHMgPyBwcmV2aW91c0Zvcm1GaWVsZHMuY29uY2F0KFtmb3JtRmllbGRdKSA6IFtmb3JtRmllbGRdO1xyXG5cclxuICAgICAgICAvKiBPdmVycmlkZSB0aGUgcmVzdWx0IGluIHRoZSBtZXRhZGF0YSAqL1xyXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoZm9ybUZpZWxkc01ldGFkYXRhS2V5LCBmb3JtRmllbGRzLCB0YXJnZXQpO1xyXG5cclxuICAgICAgICAvKiBHcm91cCB0aGUgZmllbGRzICovXHJcbiAgICAgICAgdmFyIGdyb3VwcyA9IEFycmF5LmZyb20oVXRpbHMuZ3JvdXBBcnJheUJ5KGZvcm1GaWVsZHMsIHggPT4geC5ncm91cE5hbWUpKVxyXG4gICAgICAgICAgICAubWFwKChbXywgdmFsdWVdKSA9PiBuZXcgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uKHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IHZhbHVlWzBdLmdyb3VwTmFtZSB8fCBudWxsLFxyXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB2YWx1ZVswXS5ncm91cEhlYWRlcixcclxuICAgICAgICAgICAgICAgIGZpZWxkczogdmFsdWUsXHJcbiAgICAgICAgICAgICAgICBncm91cHM6IChPYmplY3QudmFsdWVzKCh2YWx1ZSkucmVkdWNlKGZ1bmN0aW9uIChyOiBbRm9ybUZpZWxkRGVmaW5pdGlvbltdXSwgYTogRm9ybUZpZWxkRGVmaW5pdGlvbikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJbYS5yb3ddID0gKHJbYS5yb3ddIHx8IFtdKTtcclxuICAgICAgICAgICAgICAgICAgICByW2Eucm93XS5wdXNoKGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJbYS5yb3ddLmZvckVhY2goKHgsIGkpID0+IHguaW5kZXggPSB4LmluZGV4IHx8IGkpO1xyXG4gICAgICAgICAgICAgICAgICAgIFV0aWxzLnNvcnRBcnJheShyW2Eucm93XSwgJ2luZGV4Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7XHJcbiAgICAgICAgICAgICAgICB9LCBPYmplY3QuY3JlYXRlKG51bGwpKSkgYXMgW0Zvcm1GaWVsZERlZmluaXRpb25bXV0pXHJcbiAgICAgICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgLyogT3ZlcnJpZGUgdGhlIHJlc3VsdCBpbiB0aGUgbWV0YWRhdGEgKi9cclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKGZvcm1GaWVsZEdyb3Vwc01ldGFkYXRhS2V5LCBncm91cHMsIHRhcmdldCk7XHJcbiAgICB9O1xyXG59XHJcblxyXG4vKipcclxuICogUHJvcGVydHkgZGVjb3JhdG9yIHRvIGNyZWF0ZSBmb3JtIGZpZWxkc1xyXG4gKiBAcGFyYW0gdHlwZSBcclxuICogQHBhcmFtIGhlYWRlciBcclxuICogQHBhcmFtIGluaXQgXHJcbiAqIEByZXR1cm5zIFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1GaWVsZEdyb3VwPFQ+KHR5cGU6IFR5cGU8VD4sIGhlYWRlcjogc3RyaW5nLCBpbml0PzogVCk6IEZ1bmN0aW9uIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpIHtcclxuICAgICAgICAvKiBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhlIGdyb3VwIG9iamVjdCAqL1xyXG4gICAgICAgIHZhciBpbnN0YW5jZSA9IFJlZmxlY3QuY29uc3RydWN0KHR5cGUsIFtdKTtcclxuXHJcbiAgICAgICAgLyogR2V0IGZyb20gZ3JvdXBzICovXHJcbiAgICAgICAgdmFyIGdyb3VwcyA9IGdldEZvcm1Hcm91cHMoaW5zdGFuY2UpO1xyXG5cclxuICAgICAgICAvKiBHZXQgdGhlIGZpZWxkcyBmcm9tIHRoZSBncm91cHMgKi9cclxuICAgICAgICBncm91cHM/LmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oeCwge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogcHJvcGVydHlLZXksXHJcbiAgICAgICAgICAgICAgICBoZWFkZXI6IGhlYWRlcixcclxuICAgICAgICAgICAgICAgIHR5cGU6IHR5cGUsXHJcbiAgICAgICAgICAgICAgICBpbnN0YW5jZTogaW5pdCB8fCBpbnN0YW5jZVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIC8qIFNldCB0aGUgbmFtZSBvZiB0aGUgZ3JvdXAgaW4gdGhlIGZpZWxkcyAqL1xyXG4gICAgICAgICAgICB4LmZpZWxkcy5mb3JFYWNoKHkgPT4gT2JqZWN0LmFzc2lnbih5LCB7XHJcbiAgICAgICAgICAgICAgICBncm91cE5hbWU6IHByb3BlcnR5S2V5LFxyXG4gICAgICAgICAgICAgICAgZ3JvdXBIZWFkZXI6IGhlYWRlclxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8qIEdldCBvbGQgZm9ybSBmaWVsZCBncm91cHMgKi9cclxuICAgICAgICBjb25zdCBwcmV2aW91c0dyb3VwczogRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uW10gPSBSZWZsZWN0LmdldE1ldGFkYXRhKGZvcm1GaWVsZEdyb3Vwc01ldGFkYXRhS2V5LCB0YXJnZXQpO1xyXG5cclxuICAgICAgICAvKiBDcmVhdGUgYSBjb3B5IG9mIHRoZSByZXN1bHQgKi9cclxuICAgICAgICBsZXQgY29tYmluZWRHcm91cHM6IEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbltdID0gcHJldmlvdXNHcm91cHMgPyBwcmV2aW91c0dyb3Vwcy5jb25jYXQoZ3JvdXBzKSA6IGdyb3VwcztcclxuXHJcbiAgICAgICAgLyogT3ZlcnJpZGUgdGhlIHJlc3VsdCBpbiB0aGUgbWV0YWRhdGEgKi9cclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKGZvcm1GaWVsZEdyb3Vwc01ldGFkYXRhS2V5LCBjb21iaW5lZEdyb3VwcywgdGFyZ2V0KTtcclxuICAgIH07XHJcbn0iXX0=
@@ -1,33 +1,10 @@
1
- import { Utils } from "../../common/functions/utils";
2
- import { formFieldGroupMetadataKey } from "../constants/constants";
3
- import { FormFieldGroup } from "../models/form-field-group";
4
- /**
5
- * Gets poperties decoarated with @FormField grouped by row
6
- * @param origin
7
- * @returns
8
- * @deprecated
9
- */
10
- export function getFormGroupsOld(origin) {
11
- return Reflect.getMetadata(formFieldGroupMetadataKey, origin);
12
- }
1
+ import { formFieldGroupsMetadataKey } from "../constants/constants";
13
2
  /**
14
3
  * Gets poperties decoarated with @FormField grouped by row
15
4
  * @param origin
16
5
  * @returns
17
6
  */
18
7
  export function getFormGroups(origin) {
19
- const grouped = Utils.groupArrayBy(Reflect.getMetadata(formFieldGroupMetadataKey, origin), x => x.groupName);
20
- return Array.from(grouped).map(([_, value]) => new FormFieldGroup({
21
- name: value[0].groupName || null,
22
- header: value[0].groupHeader,
23
- fields: value,
24
- groups: Object.values((value).reduce(function (r, a) {
25
- r[a.row] = (r[a.row] || []);
26
- r[a.row].push(a);
27
- r[a.row].forEach((x, i) => x.index = x.index || i);
28
- Utils.sortArray(r[a.row], 'index');
29
- return r;
30
- }, Object.create(null)))
31
- }));
8
+ return Reflect.getMetadata(formFieldGroupsMetadataKey, origin);
32
9
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvZnVuY3Rpb25zL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQWM7SUFDM0MsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUF5QixFQUFFLE1BQU0sQ0FBcUIsQ0FBQztBQUN0RixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBYztJQUN4QyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUEwQixFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RJLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxjQUFjLENBQUM7UUFDOUQsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksSUFBSTtRQUNoQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVc7UUFDNUIsTUFBTSxFQUFFLEtBQUs7UUFDYixNQUFNLEVBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQTBCLEVBQUUsQ0FBc0I7WUFDOUYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDbkQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLE9BQU8sQ0FBQyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBNkI7S0FDdkQsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXRpbHMgfSBmcm9tIFwiLi4vLi4vY29tbW9uL2Z1bmN0aW9ucy91dGlsc1wiO1xyXG5pbXBvcnQgeyBmb3JtRmllbGRHcm91cE1ldGFkYXRhS2V5IH0gZnJvbSBcIi4uL2NvbnN0YW50cy9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRm9ybUZpZWxkRGVmaW5pdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvZm9ybS1maWVsZC1kZWZpbml0aW9uXCI7XHJcbmltcG9ydCB7IEZvcm1GaWVsZEdyb3VwIH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLWZpZWxkLWdyb3VwXCI7XHJcblxyXG4vKipcclxuICogR2V0cyBwb3BlcnRpZXMgZGVjb2FyYXRlZCB3aXRoIEBGb3JtRmllbGQgZ3JvdXBlZCBieSByb3dcclxuICogQHBhcmFtIG9yaWdpbiBcclxuICogQHJldHVybnMgXHJcbiAqIEBkZXByZWNhdGVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUdyb3Vwc09sZChvcmlnaW46IG9iamVjdCk6IEZvcm1GaWVsZEdyb3VwW10ge1xyXG4gICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybUZpZWxkR3JvdXBNZXRhZGF0YUtleSwgb3JpZ2luKSBhcyBGb3JtRmllbGRHcm91cFtdO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBwb3BlcnRpZXMgZGVjb2FyYXRlZCB3aXRoIEBGb3JtRmllbGQgZ3JvdXBlZCBieSByb3dcclxuICogQHBhcmFtIG9yaWdpbiBcclxuICogQHJldHVybnMgXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUdyb3VwcyhvcmlnaW46IG9iamVjdCk6IEZvcm1GaWVsZEdyb3VwW10ge1xyXG4gICAgY29uc3QgZ3JvdXBlZCA9IFV0aWxzLmdyb3VwQXJyYXlCeShSZWZsZWN0LmdldE1ldGFkYXRhKGZvcm1GaWVsZEdyb3VwTWV0YWRhdGFLZXksIG9yaWdpbikgYXMgRm9ybUZpZWxkRGVmaW5pdGlvbltdLCB4ID0+IHguZ3JvdXBOYW1lKTtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKGdyb3VwZWQpLm1hcCgoW18sIHZhbHVlXSkgPT4gbmV3IEZvcm1GaWVsZEdyb3VwKHtcclxuICAgICAgICBuYW1lOiB2YWx1ZVswXS5ncm91cE5hbWUgfHwgbnVsbCxcclxuICAgICAgICBoZWFkZXI6IHZhbHVlWzBdLmdyb3VwSGVhZGVyLFxyXG4gICAgICAgIGZpZWxkczogdmFsdWUsXHJcbiAgICAgICAgZ3JvdXBzOiAoT2JqZWN0LnZhbHVlcygodmFsdWUpLnJlZHVjZShmdW5jdGlvbiAocjogW0Zvcm1GaWVsZERlZmluaXRpb25bXV0sIGE6IEZvcm1GaWVsZERlZmluaXRpb24pIHtcclxuICAgICAgICAgICAgclthLnJvd10gPSAoclthLnJvd10gfHwgW10pO1xyXG4gICAgICAgICAgICByW2Eucm93XS5wdXNoKGEpO1xyXG4gICAgICAgICAgICByW2Eucm93XS5mb3JFYWNoKCh4LCBpKSA9PiB4LmluZGV4ID0geC5pbmRleCB8fCBpKTtcclxuICAgICAgICAgICAgVXRpbHMuc29ydEFycmF5KHJbYS5yb3ddLCAnaW5kZXgnKTtcclxuICAgICAgICAgICAgcmV0dXJuIHI7XHJcbiAgICAgICAgfSwgT2JqZWN0LmNyZWF0ZShudWxsKSkpIGFzIFtGb3JtRmllbGREZWZpbml0aW9uW11dKVxyXG4gICAgfSkpO1xyXG59Il19
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvZnVuY3Rpb25zL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUdwRTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFjO0lBQ3hDLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQywwQkFBMEIsRUFBRSxNQUFNLENBQStCLENBQUM7QUFDakcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZvcm1GaWVsZEdyb3Vwc01ldGFkYXRhS2V5IH0gZnJvbSBcIi4uL2NvbnN0YW50cy9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLWZpZWxkLWdyb3VwLWRlZmluaXRpb25cIjtcclxuXHJcbi8qKlxyXG4gKiBHZXRzIHBvcGVydGllcyBkZWNvYXJhdGVkIHdpdGggQEZvcm1GaWVsZCBncm91cGVkIGJ5IHJvd1xyXG4gKiBAcGFyYW0gb3JpZ2luIFxyXG4gKiBAcmV0dXJucyBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtR3JvdXBzKG9yaWdpbjogb2JqZWN0KTogRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uW10ge1xyXG4gICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybUZpZWxkR3JvdXBzTWV0YWRhdGFLZXksIG9yaWdpbikgYXMgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uW107XHJcbn0iXX0=
@@ -0,0 +1,12 @@
1
+ export class FormFieldGroupDefinition {
2
+ /**
3
+ * constructor
4
+ * @param init
5
+ */
6
+ constructor(init) {
7
+ this.name = 'details';
8
+ this.fields = [];
9
+ Object.assign(this, init);
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1ncm91cC1kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvbW9kZWxzL2Zvcm0tZmllbGQtZ3JvdXAtZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sd0JBQXdCO0lBUWpDOzs7T0FHRztJQUNILFlBQW1CLElBQXdDO1FBWHBELFNBQUksR0FBVyxTQUFTLENBQUM7UUFFekIsV0FBTSxHQUEwQixFQUFFLENBQUM7UUFVdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1GaWVsZERlZmluaXRpb24gfSBmcm9tIFwiLi9mb3JtLWZpZWxkLWRlZmluaXRpb25cIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRHcm91cERlZmluaXRpb24ge1xyXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyA9ICdkZXRhaWxzJztcclxuICAgIHB1YmxpYyBoZWFkZXI/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZmllbGRzOiBGb3JtRmllbGREZWZpbml0aW9uW10gPSBbXTtcclxuICAgIHB1YmxpYyBncm91cHM6IFtGb3JtRmllbGREZWZpbml0aW9uW11dO1xyXG4gICAgcHVibGljIHR5cGU/OiBUeXBlPGFueT47XHJcbiAgICBwdWJsaWMgaW5zdGFuY2U/OiBvYmplY3Q7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjb25zdHJ1Y3RvclxyXG4gICAgICogQHBhcmFtIGluaXQgXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihpbml0PzogUGFydGlhbDxGb3JtRmllbGRHcm91cERlZmluaXRpb24+KSB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBpbml0KTtcclxuICAgIH1cclxufSJdfQ==