@messaia/cdk 13.3.4 → 13.3.5-rc01
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.
- package/esm2020/lib/base/components/generic-form-base.component.mjs +15 -13
- package/esm2020/lib/forms/components/generic-form/generic-form.component.mjs +1 -1
- package/esm2020/lib/forms/forms.module.mjs +3 -3
- package/esm2020/lib/forms/functions/decorators.mjs +24 -34
- package/esm2020/lib/forms/functions/functions.mjs +10 -4
- package/esm2020/lib/forms/models/form-field-definition.mjs +1 -1
- package/esm2020/lib/forms/models/form-field-group-definition.mjs +12 -0
- package/fesm2015/messaia-cdk.mjs +68 -70
- package/fesm2015/messaia-cdk.mjs.map +1 -1
- package/fesm2020/messaia-cdk.mjs +68 -70
- package/fesm2020/messaia-cdk.mjs.map +1 -1
- package/lib/base/components/generic-form-base.component.d.ts +2 -2
- package/lib/forms/components/generic-form/generic-form.component.d.ts +2 -2
- package/lib/forms/forms.module.d.ts +2 -2
- package/lib/forms/functions/decorators.d.ts +4 -2
- package/lib/forms/functions/functions.d.ts +3 -3
- package/lib/forms/models/form-field-definition.d.ts +2 -0
- package/lib/forms/models/{form-field-group.d.ts → form-field-group-definition.d.ts} +5 -2
- package/package.json +1 -1
- package/esm2020/lib/forms/models/form-field-group.mjs +0 -12
|
@@ -2,7 +2,7 @@ import { headerMetadataKey } from "../../common/constants/constants";
|
|
|
2
2
|
import { formFieldGroupMetadataKey } from "../constants/constants";
|
|
3
3
|
import { FormFieldType } from "../enums/form-field-type";
|
|
4
4
|
import { FormFieldDefinition } from "../models/form-field-definition";
|
|
5
|
-
import {
|
|
5
|
+
import { FormFieldGroupDefinition } from "../models/form-field-group-definition";
|
|
6
6
|
import { getFormGroups } from "./functions";
|
|
7
7
|
/**
|
|
8
8
|
* Property decorator to create form fields
|
|
@@ -70,7 +70,7 @@ export function FormFieldOld(args) {
|
|
|
70
70
|
}
|
|
71
71
|
/* Create a new group */
|
|
72
72
|
else {
|
|
73
|
-
group = new
|
|
73
|
+
group = new FormFieldGroupDefinition({ name: formField.groupName || null, header: formField.groupHeader, fields: [formField] });
|
|
74
74
|
formFieldGroups.push(group);
|
|
75
75
|
}
|
|
76
76
|
/* Sort the fields by row */
|
|
@@ -151,41 +151,31 @@ export function FormField(args) {
|
|
|
151
151
|
}
|
|
152
152
|
/**
|
|
153
153
|
* Property decorator to create form fields
|
|
154
|
-
* @param
|
|
154
|
+
* @param type
|
|
155
|
+
* @param header
|
|
156
|
+
* @param init
|
|
155
157
|
* @returns
|
|
156
158
|
*/
|
|
157
|
-
export function
|
|
159
|
+
export function FormFieldGroup(type, header, init) {
|
|
158
160
|
return function (target, propertyKey) {
|
|
159
|
-
/*
|
|
160
|
-
|
|
161
|
+
/* Create an instance of the group object */
|
|
162
|
+
var instance = Reflect.construct(type, []);
|
|
161
163
|
/* Get from groups */
|
|
162
|
-
var groups = getFormGroups(
|
|
163
|
-
/* Get
|
|
164
|
-
|
|
165
|
-
/* Get
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
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);
|
|
164
|
+
var groups = getFormGroups(instance);
|
|
165
|
+
/* Get old form fields */
|
|
166
|
+
const previousFormFields = Reflect.getMetadata(formFieldGroupMetadataKey, target);
|
|
167
|
+
/* Get the fields from the groups */
|
|
168
|
+
groups?.map(x => x.fields)?.forEach(x => {
|
|
169
|
+
/* Set the name of the group in the fields */
|
|
170
|
+
x.forEach(y => {
|
|
171
|
+
y.groupName = propertyKey;
|
|
172
|
+
y.groupHeader = header;
|
|
173
|
+
y.groupObjectType = type;
|
|
174
|
+
y.groupObjectInstance = init || instance;
|
|
175
|
+
});
|
|
176
|
+
/* Create a copy of the result and override the result in the metadata */
|
|
177
|
+
Reflect.defineMetadata(formFieldGroupMetadataKey, (previousFormFields ? previousFormFields.concat(x) : x), target);
|
|
178
|
+
});
|
|
189
179
|
};
|
|
190
180
|
}
|
|
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=
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm1zL2Z1bmN0aW9ucy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLElBQWtDO0lBQzNELE9BQU8sVUFBVSxNQUFXLEVBQUUsV0FBbUI7UUFDN0MsdUJBQXVCO1FBQ3ZCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDO1FBRTVDLHVCQUF1QjtRQUN2QixJQUFJLFlBQVksR0FBVyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUUsSUFBSSxDQUFDO1FBRXpGLHlCQUF5QjtRQUN6QixJQUFJLFNBQVMsR0FBRyxJQUFJLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUF1QjtZQUM3RSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxXQUFXO1lBQzlCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxJQUFJLFlBQVk7WUFDbEcsb0JBQW9CLEVBQUUs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LENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDdkgsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGhlYWRlck1ldGFkYXRhS2V5IH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9jb25zdGFudHMvY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGZvcm1GaWVsZEdyb3VwTWV0YWRhdGFLZXkgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGRUeXBlIH0gZnJvbSBcIi4uL2VudW1zL2Zvcm0tZmllbGQtdHlwZVwiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGREZWZpbml0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLWZpZWxkLWRlZmluaXRpb25cIjtcclxuaW1wb3J0IHsgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLWZpZWxkLWdyb3VwLWRlZmluaXRpb25cIjtcclxuaW1wb3J0IHsgZ2V0Rm9ybUdyb3VwcyB9IGZyb20gXCIuL2Z1bmN0aW9uc1wiO1xyXG5cclxuLyoqXHJcbiAqIFByb3BlcnR5IGRlY29yYXRvciB0byBjcmVhdGUgZm9ybSBmaWVsZHNcclxuICogQHBhcmFtIGFyZ3MgXHJcbiAqIEByZXR1cm5zIFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1GaWVsZE9sZChhcmdzOiBQYXJ0aWFsPEZvcm1GaWVsZERlZmluaXRpb24+KTogRnVuY3Rpb24ge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZykge1xyXG4gICAgICAgIC8qIEdldCBwcm9wZXJ0eSBuYW1lICovXHJcbiAgICAgICAgdmFyIHByb3BlcnR5TmFtZSA9IGFyZ3MubmFtZSB8fCBwcm9wZXJ0eUtleTtcclxuXHJcbiAgICAgICAgLyogR2V0IHByb3BlcnR5IHR5cGUgKi9cclxuICAgICAgICB2YXIgcHJvcGVydHlUeXBlOiBzdHJpbmcgPSBSZWZsZWN0LmdldE1ldGFkYXRhKFwiZGVzaWduOnR5cGVcIiwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk/Lm5hbWU7XHJcblxyXG4gICAgICAgIC8qIENyZWF0ZSB0YWJsZSBjb2x1bW4gKi9cclxuICAgICAgICB2YXIgZm9ybUZpZWxkID0gbmV3IEZvcm1GaWVsZERlZmluaXRpb24oT2JqZWN0LmFzc2lnbihhcmdzLCA8Rm9ybUZpZWxkRGVmaW5pdGlvbj57XHJcbiAgICAgICAgICAgIG5hbWU6IGFyZ3MubmFtZSB8fCBwcm9wZXJ0eUtleSxcclxuICAgICAgICAgICAgaGVhZGVyOiBhcmdzLmhlYWRlciB8fCBSZWZsZWN0LmdldE1ldGFkYXRhKGhlYWRlck1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KSB8fCBwcm9wZXJ0eU5hbWUsXHJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZVRlbXBsYXRlOiBhcmdzLmF1dG9jb21wbGV0ZVRlbXBsYXRlIHx8ICgob3B0aW9uOiBhbnkpID0+IG9wdGlvbltmb3JtRmllbGQuYXV0b2NvbXBsZXRlVGV4dF0pLFxyXG4gICAgICAgICAgICBjaGlwVGVtcGxhdGU6IGFyZ3MuY2hpcFRlbXBsYXRlIHx8ICgoY2hpcDogYW55KSA9PiBjaGlwW2Zvcm1GaWVsZC5jaGlwVGV4dF0pXHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICAvKiBUeXBlIGVudW0gKi9cclxuICAgICAgICBpZiAoZm9ybUZpZWxkLmVudW1UeXBlKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLkVudW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBUeXBlIFZkU2VsZWN0ICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLmVuZHBvaW50KSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlZkU2VsZWN0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBTZWxlY3QgKi9cclxuICAgICAgICBlbHNlIGlmIChmb3JtRmllbGQub3B0aW9ucykge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5TZWxlY3Q7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBUeXBlIFRleHRBcmVhICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLnJvd3MpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuVGV4dEFyZWE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBUeXBlIEZpbGUgKi9cclxuICAgICAgICBlbHNlIGlmIChmb3JtRmllbGQuZmlsZVBhdGgpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuRmlsZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIE90aGVyIHR5cGVzICovXHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAocHJvcGVydHlUeXBlLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuVGV4dDtcclxuICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQuaW5wdXRUeXBlIHx8PSAnbnVtYmVyJztcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5EYXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLkNoZWNrYm94O1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuVGV4dDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogR2V0IGV4aXN0aW5nIHRhYmxlIGdyb3VwcyAqL1xyXG4gICAgICAgIGxldCBmb3JtRmllbGRHcm91cHM6IEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbltdID0gUmVmbGVjdC5nZXRNZXRhZGF0YShmb3JtRmllbGRHcm91cE1ldGFkYXRhS2V5LCB0YXJnZXQpIHx8IFtdO1xyXG5cclxuICAgICAgICAvKiBHZXQgdGhlIGdyb3VwICovXHJcbiAgICAgICAgdmFyIGdyb3VwID0gZm9ybUZpZWxkR3JvdXBzLmZpbHRlcih4ID0+IHgubmFtZT8udHJpbSgpID09IGZvcm1GaWVsZC5ncm91cE5hbWU/LnRyaW0oKSlbMF07XHJcblxyXG4gICAgICAgIC8qIFRoZSBncm91cCBhbHJlYWR5IGV4aXN0cywgYWRkIHRoZSBuZXcgZm9ybSBmaWVsZCAqL1xyXG4gICAgICAgIGlmIChncm91cCkge1xyXG4gICAgICAgICAgICBncm91cC5maWVsZHMucHVzaChmb3JtRmllbGQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogQ3JlYXRlIGEgbmV3IGdyb3VwICovXHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGdyb3VwID0gbmV3IEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbih7IG5hbWU6IGZvcm1GaWVsZC5ncm91cE5hbWUgfHwgbnVsbCwgaGVhZGVyOiBmb3JtRmllbGQuZ3JvdXBIZWFkZXIsIGZpZWxkczogW2Zvcm1GaWVsZF0gfSk7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZEdyb3Vwcy5wdXNoKGdyb3VwKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFNvcnQgdGhlIGZpZWxkcyBieSByb3cgKi9cclxuICAgICAgICBncm91cC5maWVsZHMgPSBncm91cC5maWVsZHM/LnNvcnQoKGEsIGIpID0+IChhLnJvdyB8fCAwID4gYi5yb3cgfHwgMCkgPyAxIDogKChiLnJvdyB8fCAwID4gYS5yb3cgfHwgMCkgPyAtMSA6IDApKSB8fCBbXTtcclxuXHJcbiAgICAgICAgLyogR3JvdXAgdGhlIGZpZWxkcyAqL1xyXG4gICAgICAgIGdyb3VwLmdyb3VwcyA9IE9iamVjdC52YWx1ZXMoKGdyb3VwLmZpZWxkcykucmVkdWNlKGZ1bmN0aW9uIChyLCBhKSB7XHJcbiAgICAgICAgICAgIHJbYS5yb3ddID0gclthLnJvd10gfHwgW107XHJcbiAgICAgICAgICAgIHJbYS5yb3ddLnB1c2goYSk7XHJcbiAgICAgICAgICAgIHJldHVybiByO1xyXG4gICAgICAgIH0sIE9iamVjdC5jcmVhdGUobnVsbCkpKSBhcyBbRm9ybUZpZWxkRGVmaW5pdGlvbltdXTtcclxuXHJcbiAgICAgICAgLyogQWRkIG5ldyB0YWJsZSBjb2x1bW4gKi9cclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKGZvcm1GaWVsZEdyb3VwTWV0YWRhdGFLZXksIGZvcm1GaWVsZEdyb3VwcywgdGFyZ2V0KTtcclxuICAgIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcm9wZXJ0eSBkZWNvcmF0b3IgdG8gY3JlYXRlIGZvcm0gZmllbGRzXHJcbiAqIEBwYXJhbSBhcmdzIFxyXG4gKiBAcmV0dXJucyBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBGb3JtRmllbGQoYXJnczogUGFydGlhbDxGb3JtRmllbGREZWZpbml0aW9uPik6IEZ1bmN0aW9uIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpIHtcclxuICAgICAgICAvKiBHZXQgcHJvcGVydHkgbmFtZSAqL1xyXG4gICAgICAgIHZhciBwcm9wZXJ0eU5hbWUgPSBhcmdzLm5hbWUgfHwgcHJvcGVydHlLZXk7XHJcblxyXG4gICAgICAgIC8qIEdldCBwcm9wZXJ0eSB0eXBlICovXHJcbiAgICAgICAgdmFyIHByb3BlcnR5VHlwZTogc3RyaW5nID0gUmVmbGVjdC5nZXRNZXRhZGF0YShcImRlc2lnbjp0eXBlXCIsIHRhcmdldCwgcHJvcGVydHlLZXkpPy5uYW1lO1xyXG5cclxuICAgICAgICAvKiBDcmVhdGUgdGFibGUgY29sdW1uICovXHJcbiAgICAgICAgdmFyIGZvcm1GaWVsZCA9IG5ldyBGb3JtRmllbGREZWZpbml0aW9uKE9iamVjdC5hc3NpZ24oYXJncywgPEZvcm1GaWVsZERlZmluaXRpb24+e1xyXG4gICAgICAgICAgICBuYW1lOiBhcmdzLm5hbWUgfHwgcHJvcGVydHlLZXksXHJcbiAgICAgICAgICAgIGhlYWRlcjogYXJncy5oZWFkZXIgfHwgUmVmbGVjdC5nZXRNZXRhZGF0YShoZWFkZXJNZXRhZGF0YUtleSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSkgfHwgcHJvcGVydHlOYW1lLFxyXG4gICAgICAgICAgICBhdXRvY29tcGxldGVUZW1wbGF0ZTogYXJncy5hdXRvY29tcGxldGVUZW1wbGF0ZSB8fCAoKG9wdGlvbjogYW55KSA9PiBvcHRpb25bZm9ybUZpZWxkLmF1dG9jb21wbGV0ZVRleHRdKSxcclxuICAgICAgICAgICAgY2hpcFRlbXBsYXRlOiBhcmdzLmNoaXBUZW1wbGF0ZSB8fCAoKGNoaXA6IGFueSkgPT4gY2hpcFtmb3JtRmllbGQuY2hpcFRleHRdKVxyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgLyogVHlwZSBlbnVtICovXHJcbiAgICAgICAgaWYgKGZvcm1GaWVsZC5lbnVtVHlwZSkge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5FbnVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBWZFNlbGVjdCAqL1xyXG4gICAgICAgIGVsc2UgaWYgKGZvcm1GaWVsZC5lbmRwb2ludCkge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5WZFNlbGVjdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFR5cGUgU2VsZWN0ICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLm9wdGlvbnMpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuU2VsZWN0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBUZXh0QXJlYSAqL1xyXG4gICAgICAgIGVsc2UgaWYgKGZvcm1GaWVsZC5yb3dzKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHRBcmVhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBGaWxlICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLmZpbGVQYXRoKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLkZpbGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBPdGhlciB0eXBlcyAqL1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHByb3BlcnR5VHlwZS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLmlucHV0VHlwZSB8fD0gJ251bWJlcic7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuRGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5DaGVja2JveDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIEdldCBvbGQgZm9ybSBmaWVsZHMgKi9cclxuICAgICAgICBjb25zdCBwcmV2aW91c0Zvcm1GaWVsZHMgPSBSZWZsZWN0LmdldE1ldGFkYXRhKGZvcm1GaWVsZEdyb3VwTWV0YWRhdGFLZXksIHRhcmdldCk7XHJcblxyXG4gICAgICAgIC8qIENyZWF0ZSBhIGNvcHkgb2YgdGhlIHJlc3VsdCAqL1xyXG4gICAgICAgIGxldCBmb3JtRmllbGRzID0gcHJldmlvdXNGb3JtRmllbGRzID8gcHJldmlvdXNGb3JtRmllbGRzLmNvbmNhdChbZm9ybUZpZWxkXSkgOiBbZm9ybUZpZWxkXTtcclxuXHJcbiAgICAgICAgLyogT3ZlcnJpZGUgdGhlIHJlc3VsdCBpbiB0aGUgbWV0YWRhdGEgKi9cclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKGZvcm1GaWVsZEdyb3VwTWV0YWRhdGFLZXksIGZvcm1GaWVsZHMsIHRhcmdldCk7XHJcbiAgICB9O1xyXG59XHJcblxyXG4vKipcclxuICogUHJvcGVydHkgZGVjb3JhdG9yIHRvIGNyZWF0ZSBmb3JtIGZpZWxkc1xyXG4gKiBAcGFyYW0gdHlwZSBcclxuICogQHBhcmFtIGhlYWRlciBcclxuICogQHBhcmFtIGluaXQgXHJcbiAqIEByZXR1cm5zIFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1GaWVsZEdyb3VwPFQ+KHR5cGU6IFR5cGU8VD4sIGhlYWRlcjogc3RyaW5nLCBpbml0PzogVCk6IEZ1bmN0aW9uIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpIHtcclxuICAgICAgICAvKiBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhlIGdyb3VwIG9iamVjdCAqL1xyXG4gICAgICAgIHZhciBpbnN0YW5jZSA9IFJlZmxlY3QuY29uc3RydWN0KHR5cGUsIFtdKTtcclxuXHJcbiAgICAgICAgLyogR2V0IGZyb20gZ3JvdXBzICovXHJcbiAgICAgICAgdmFyIGdyb3VwcyA9IGdldEZvcm1Hcm91cHMoaW5zdGFuY2UpO1xyXG5cclxuICAgICAgICAvKiBHZXQgb2xkIGZvcm0gZmllbGRzICovXHJcbiAgICAgICAgY29uc3QgcHJldmlvdXNGb3JtRmllbGRzID0gUmVmbGVjdC5nZXRNZXRhZGF0YShmb3JtRmllbGRHcm91cE1ldGFkYXRhS2V5LCB0YXJnZXQpO1xyXG5cclxuICAgICAgICAvKiBHZXQgdGhlIGZpZWxkcyBmcm9tIHRoZSBncm91cHMgKi9cclxuICAgICAgICBncm91cHM/Lm1hcCh4ID0+IHguZmllbGRzKT8uZm9yRWFjaCh4ID0+IHtcclxuICAgICAgICAgICAgLyogU2V0IHRoZSBuYW1lIG9mIHRoZSBncm91cCBpbiB0aGUgZmllbGRzICovXHJcbiAgICAgICAgICAgIHguZm9yRWFjaCh5ID0+IHtcclxuICAgICAgICAgICAgICAgIHkuZ3JvdXBOYW1lID0gcHJvcGVydHlLZXk7XHJcbiAgICAgICAgICAgICAgICB5Lmdyb3VwSGVhZGVyID0gaGVhZGVyO1xyXG4gICAgICAgICAgICAgICAgeS5ncm91cE9iamVjdFR5cGUgPSB0eXBlO1xyXG4gICAgICAgICAgICAgICAgeS5ncm91cE9iamVjdEluc3RhbmNlID0gaW5pdCB8fCBpbnN0YW5jZVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIC8qIENyZWF0ZSBhIGNvcHkgb2YgdGhlIHJlc3VsdCBhbmQgb3ZlcnJpZGUgdGhlIHJlc3VsdCBpbiB0aGUgbWV0YWRhdGEgKi9cclxuICAgICAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShmb3JtRmllbGRHcm91cE1ldGFkYXRhS2V5LCAocHJldmlvdXNGb3JtRmllbGRzID8gcHJldmlvdXNGb3JtRmllbGRzLmNvbmNhdCh4KSA6IHgpLCB0YXJnZXQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfTtcclxufSJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Utils } from "../../common/functions/utils";
|
|
2
2
|
import { formFieldGroupMetadataKey } from "../constants/constants";
|
|
3
|
-
import {
|
|
3
|
+
import { FormFieldGroupDefinition } from "../models/form-field-group-definition";
|
|
4
4
|
/**
|
|
5
5
|
* Gets poperties decoarated with @FormField grouped by row
|
|
6
6
|
* @param origin
|
|
@@ -17,17 +17,23 @@ export function getFormGroupsOld(origin) {
|
|
|
17
17
|
*/
|
|
18
18
|
export function getFormGroups(origin) {
|
|
19
19
|
const grouped = Utils.groupArrayBy(Reflect.getMetadata(formFieldGroupMetadataKey, origin), x => x.groupName);
|
|
20
|
-
return Array.from(grouped).map(([_, value]) => new
|
|
20
|
+
return Array.from(grouped).map(([_, value]) => new FormFieldGroupDefinition({
|
|
21
21
|
name: value[0].groupName || null,
|
|
22
22
|
header: value[0].groupHeader,
|
|
23
23
|
fields: value,
|
|
24
|
+
type: value[0].groupObjectType,
|
|
25
|
+
instance: value[0].groupObjectInstance,
|
|
24
26
|
groups: Object.values((value).reduce(function (r, a) {
|
|
25
27
|
r[a.row] = (r[a.row] || []);
|
|
26
28
|
r[a.row].push(a);
|
|
27
|
-
r[a.row].forEach((x, i) =>
|
|
29
|
+
r[a.row].forEach((x, i) => {
|
|
30
|
+
x.index = x.index || i;
|
|
31
|
+
delete x.groupObjectType;
|
|
32
|
+
delete x.groupObjectInstance;
|
|
33
|
+
});
|
|
28
34
|
Utils.sortArray(r[a.row], 'index');
|
|
29
35
|
return r;
|
|
30
36
|
}, Object.create(null)))
|
|
31
37
|
}));
|
|
32
38
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvZnVuY3Rpb25zL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFakY7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBYztJQUMzQyxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUErQixDQUFDO0FBQ2hHLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBSSxNQUFjO0lBQzNDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsRUFBRSxNQUFNLENBQTBCLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEksT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLHdCQUF3QixDQUFDO1FBQ3hFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLElBQUk7UUFDaEMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXO1FBQzVCLE1BQU0sRUFBRSxLQUFLO1FBQ2IsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlO1FBQzlCLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO1FBQ3RDLE1BQU0sRUFBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBMEIsRUFBRSxDQUFzQjtZQUM5RixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDdEIsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztnQkFDdkIsT0FBTyxDQUFDLENBQUMsZUFBZSxDQUFDO2dCQUN6QixPQUFPLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztZQUNILEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNuQyxPQUFPLENBQUMsQ0FBQztRQUNiLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQTZCO0tBQ3ZELENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFV0aWxzIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9mdW5jdGlvbnMvdXRpbHNcIjtcclxuaW1wb3J0IHsgZm9ybUZpZWxkR3JvdXBNZXRhZGF0YUtleSB9IGZyb20gXCIuLi9jb25zdGFudHMvY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEZvcm1GaWVsZERlZmluaXRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL2Zvcm0tZmllbGQtZGVmaW5pdGlvblwiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGRHcm91cERlZmluaXRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL2Zvcm0tZmllbGQtZ3JvdXAtZGVmaW5pdGlvblwiO1xyXG5cclxuLyoqXHJcbiAqIEdldHMgcG9wZXJ0aWVzIGRlY29hcmF0ZWQgd2l0aCBARm9ybUZpZWxkIGdyb3VwZWQgYnkgcm93XHJcbiAqIEBwYXJhbSBvcmlnaW4gXHJcbiAqIEByZXR1cm5zIFxyXG4gKiBAZGVwcmVjYXRlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1Hcm91cHNPbGQob3JpZ2luOiBvYmplY3QpOiBGb3JtRmllbGRHcm91cERlZmluaXRpb25bXSB7XHJcbiAgICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YShmb3JtRmllbGRHcm91cE1ldGFkYXRhS2V5LCBvcmlnaW4pIGFzIEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbltdO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBwb3BlcnRpZXMgZGVjb2FyYXRlZCB3aXRoIEBGb3JtRmllbGQgZ3JvdXBlZCBieSByb3dcclxuICogQHBhcmFtIG9yaWdpbiBcclxuICogQHJldHVybnMgXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUdyb3VwczxUPihvcmlnaW46IG9iamVjdCk6IEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbltdIHtcclxuICAgIGNvbnN0IGdyb3VwZWQgPSBVdGlscy5ncm91cEFycmF5QnkoUmVmbGVjdC5nZXRNZXRhZGF0YShmb3JtRmllbGRHcm91cE1ldGFkYXRhS2V5LCBvcmlnaW4pIGFzIEZvcm1GaWVsZERlZmluaXRpb25bXSwgeCA9PiB4Lmdyb3VwTmFtZSk7XHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbShncm91cGVkKS5tYXAoKFtfLCB2YWx1ZV0pID0+IG5ldyBGb3JtRmllbGRHcm91cERlZmluaXRpb24oe1xyXG4gICAgICAgIG5hbWU6IHZhbHVlWzBdLmdyb3VwTmFtZSB8fCBudWxsLFxyXG4gICAgICAgIGhlYWRlcjogdmFsdWVbMF0uZ3JvdXBIZWFkZXIsXHJcbiAgICAgICAgZmllbGRzOiB2YWx1ZSxcclxuICAgICAgICB0eXBlOiB2YWx1ZVswXS5ncm91cE9iamVjdFR5cGUsXHJcbiAgICAgICAgaW5zdGFuY2U6IHZhbHVlWzBdLmdyb3VwT2JqZWN0SW5zdGFuY2UsXHJcbiAgICAgICAgZ3JvdXBzOiAoT2JqZWN0LnZhbHVlcygodmFsdWUpLnJlZHVjZShmdW5jdGlvbiAocjogW0Zvcm1GaWVsZERlZmluaXRpb25bXV0sIGE6IEZvcm1GaWVsZERlZmluaXRpb24pIHtcclxuICAgICAgICAgICAgclthLnJvd10gPSAoclthLnJvd10gfHwgW10pO1xyXG4gICAgICAgICAgICByW2Eucm93XS5wdXNoKGEpO1xyXG4gICAgICAgICAgICByW2Eucm93XS5mb3JFYWNoKCh4LCBpKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB4LmluZGV4ID0geC5pbmRleCB8fCBpO1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIHguZ3JvdXBPYmplY3RUeXBlO1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIHguZ3JvdXBPYmplY3RJbnN0YW5jZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIFV0aWxzLnNvcnRBcnJheShyW2Eucm93XSwgJ2luZGV4Jyk7XHJcbiAgICAgICAgICAgIHJldHVybiByO1xyXG4gICAgICAgIH0sIE9iamVjdC5jcmVhdGUobnVsbCkpKSBhcyBbRm9ybUZpZWxkRGVmaW5pdGlvbltdXSlcclxuICAgIH0pKTtcclxufSJdfQ==
|
|
@@ -16,4 +16,4 @@ export class FormFieldDefinition {
|
|
|
16
16
|
Object.assign(this, init);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvbW9kZWxzL2Zvcm0tZmllbGQtZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sbUJBQW1CO0lBNkM1Qjs7O09BR0c7SUFDSCxZQUFtQixJQUFtQztRQTdDL0MsZ0JBQVcsR0FBWSxTQUFTLENBQUEsb0JBQW9CLENBQUM7UUFPckQsY0FBUyxHQUFZLE1BQU0sQ0FBQztRQUk1QixnQkFBVyxHQUFjLENBQUMsRUFBTyxFQUFFLEVBQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6RCxnQkFBVyxHQUFZLFFBQVEsQ0FBQztRQUdoQyxhQUFRLEdBQWEsS0FBSyxDQUFDO1FBQzNCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBQzVCLGVBQVUsR0FBWSxNQUFNLENBQUM7UUFRN0IsYUFBUSxHQUFZLE1BQU0sQ0FBQztRQUUzQixxQkFBZ0IsR0FBWSxNQUFNLENBQUM7UUFtQnRDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1ZmZpeEJ1dHRvbiB9IGZyb20gXCIuLi8uLi9jb21tb24vbW9kZWxzL3N1ZmZpeC1idXR0b25cIjtcclxuaW1wb3J0IHsgRm9ybUZpZWxkVHlwZSB9IGZyb20gXCIuLi9lbnVtcy9mb3JtLWZpZWxkLXR5cGVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGREZWZpbml0aW9uIHtcclxuICAgIHB1YmxpYyByb3c6IG51bWJlcjtcclxuICAgIHB1YmxpYyBpbmRleD86IG51bWJlcjtcclxuICAgIHB1YmxpYyBncm91cE5hbWU/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgZ3JvdXBIZWFkZXI/OiBzdHJpbmcgPSAkbG9jYWxpemVgOkBAZGV0YWlsczpEZXRhaWxzYDtcclxuICAgIHB1YmxpYyBncm91cE9iamVjdFR5cGU/OiBhbnk7XHJcbiAgICBwdWJsaWMgZ3JvdXBPYmplY3RJbnN0YW5jZT86IG9iamVjdDtcclxuICAgIHB1YmxpYyBuYW1lPzogc3RyaW5nO1xyXG4gICAgcHVibGljIGhlYWRlcj86IHN0cmluZztcclxuICAgIHB1YmxpYyBoaW50Pzogc3RyaW5nO1xyXG4gICAgcHVibGljIHR5cGU/OiBGb3JtRmllbGRUeXBlO1xyXG4gICAgcHVibGljIGlucHV0VHlwZT86IHN0cmluZyA9ICd0ZXh0JztcclxuICAgIHB1YmxpYyBlbnVtVHlwZT86IGFueTtcclxuICAgIHB1YmxpYyBlbmRwb2ludD86IHN0cmluZztcclxuICAgIHB1YmxpYyBtYXBwZXI/OiBGdW5jdGlvbjtcclxuICAgIHB1YmxpYyBjb21wYXJlV2l0aD86IEZ1bmN0aW9uID0gKG8xOiBhbnksIG8yOiBhbnkpID0+IG8xID09PSBvMjtcclxuICAgIHB1YmxpYyBzZWFyY2hGaWVsZD86IHN0cmluZyA9ICdzZWFyY2gnO1xyXG4gICAgcHVibGljIHByb2plY3Rpb24/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgcGFyYW1zPzogRnVuY3Rpb247XHJcbiAgICBwdWJsaWMgbXVsdGlwbGU/OiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgb3B0aW9uVmFsdWU/OiBzdHJpbmcgPSAnaWQnO1xyXG4gICAgcHVibGljIG9wdGlvblRleHQ/OiBzdHJpbmcgPSAnbmFtZSc7XHJcbiAgICBwdWJsaWMgb3B0aW9uVGVtcGxhdGU/OiBGdW5jdGlvbjtcclxuICAgIHB1YmxpYyB0cmlnZ2VyVGVtcGxhdGU/OiBGdW5jdGlvbjtcclxuICAgIHB1YmxpYyBzZWxlY3Q/OiBGdW5jdGlvbjtcclxuICAgIHB1YmxpYyBpdGVtU2VsZWN0PzogRnVuY3Rpb247XHJcbiAgICBwdWJsaWMgY2hhbmdlPzogRnVuY3Rpb247XHJcbiAgICBwdWJsaWMgaXRlbUNoYW5nZT86IEZ1bmN0aW9uO1xyXG4gICAgcHVibGljIGNsZWFyPzogRnVuY3Rpb247XHJcbiAgICBwdWJsaWMgY2hpcFRleHQ/OiBzdHJpbmcgPSAnbmFtZSc7XHJcbiAgICBwdWJsaWMgY2hpcFRlbXBsYXRlPzogRnVuY3Rpb247XHJcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlVGV4dD86IHN0cmluZyA9ICduYW1lJztcclxuICAgIHB1YmxpYyBhdXRvY29tcGxldGVUZW1wbGF0ZT86IEZ1bmN0aW9uO1xyXG4gICAgcHVibGljIG9wdGlvbnM/OiB7IGlkOiBhbnksIG5hbWU6IHN0cmluZyB9W107XHJcbiAgICBwdWJsaWMgZmlsZVBhdGg/OiBzdHJpbmc7XHJcbiAgICBwdWJsaWMgaXNQdWJsaWNGaWxlPzogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBmaWxlRXh0ZW5zaW9ucz86IHN0cmluZ1tdO1xyXG4gICAgcHVibGljIGZsZXg/OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgcm93cz86IG51bWJlcjtcclxuICAgIHB1YmxpYyBtaW5MZW5ndGg/OiBudW1iZXI7XHJcbiAgICBwdWJsaWMgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gICAgcHVibGljIHJlYWRvbmx5PzogRnVuY3Rpb247XHJcbiAgICBwdWJsaWMgaGlkZT86IEZ1bmN0aW9uO1xyXG4gICAgcHVibGljIHN1ZmZpeEJ1dHRvbnM/OiBTdWZmaXhCdXR0b25bXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGNvbnN0cnVjdG9yXHJcbiAgICAgKiBAcGFyYW0gaW5pdCBcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGluaXQ/OiBQYXJ0aWFsPEZvcm1GaWVsZERlZmluaXRpb24+KSB7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBpbml0KTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -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==
|
package/fesm2015/messaia-cdk.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import { HttpParams, HttpClient, HttpRequest, HttpHeaders, HttpEventType, HttpRe
|
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
6
6
|
import { Directive, Input, Pipe, HostListener, Component, NgModule, Injectable, Injector, ViewEncapsulation, COMPILER_OPTIONS, CompilerFactory, Compiler, ContentChildren, Optional, SkipSelf, NgZone, ElementRef, ViewChildren, ViewChild, forwardRef, ContentChild, EventEmitter, ViewContainerRef, Output, LOCALE_ID, Inject, HostBinding, Self, Attribute, SecurityContext } from '@angular/core';
|
|
7
7
|
import * as i1 from '@angular/forms';
|
|
8
|
-
import { FormControlName, FormControlDirective, FormGroup
|
|
8
|
+
import { FormControlName, FormControlDirective, FormGroup, NG_VALUE_ACCESSOR, FormArray, FormControl, NG_ASYNC_VALIDATORS, NG_VALIDATORS, AbstractControl, FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
9
9
|
import * as i1$2 from '@angular/material/dialog';
|
|
10
10
|
import { MatDialogConfig, MatDialog, MatDialogModule } from '@angular/material/dialog';
|
|
11
11
|
import { MatExpansionPanel } from '@angular/material/expansion';
|
|
@@ -3136,7 +3136,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
|
3136
3136
|
|
|
3137
3137
|
const formFieldGroupMetadataKey = Symbol('vdFormFieldGroup');
|
|
3138
3138
|
|
|
3139
|
-
class
|
|
3139
|
+
class FormFieldGroupDefinition {
|
|
3140
3140
|
/**
|
|
3141
3141
|
* constructor
|
|
3142
3142
|
* @param init
|
|
@@ -3164,14 +3164,20 @@ function getFormGroupsOld(origin) {
|
|
|
3164
3164
|
*/
|
|
3165
3165
|
function getFormGroups(origin) {
|
|
3166
3166
|
const grouped = Utils.groupArrayBy(Reflect.getMetadata(formFieldGroupMetadataKey, origin), x => x.groupName);
|
|
3167
|
-
return Array.from(grouped).map(([_, value]) => new
|
|
3167
|
+
return Array.from(grouped).map(([_, value]) => new FormFieldGroupDefinition({
|
|
3168
3168
|
name: value[0].groupName || null,
|
|
3169
3169
|
header: value[0].groupHeader,
|
|
3170
3170
|
fields: value,
|
|
3171
|
+
type: value[0].groupObjectType,
|
|
3172
|
+
instance: value[0].groupObjectInstance,
|
|
3171
3173
|
groups: Object.values((value).reduce(function (r, a) {
|
|
3172
3174
|
r[a.row] = (r[a.row] || []);
|
|
3173
3175
|
r[a.row].push(a);
|
|
3174
|
-
r[a.row].forEach((x, i) =>
|
|
3176
|
+
r[a.row].forEach((x, i) => {
|
|
3177
|
+
x.index = x.index || i;
|
|
3178
|
+
delete x.groupObjectType;
|
|
3179
|
+
delete x.groupObjectInstance;
|
|
3180
|
+
});
|
|
3175
3181
|
Utils.sortArray(r[a.row], 'index');
|
|
3176
3182
|
return r;
|
|
3177
3183
|
}, Object.create(null)))
|
|
@@ -3478,12 +3484,14 @@ class GenericFormBaseComponent extends BaseComponent {
|
|
|
3478
3484
|
validateForm(form = null) {
|
|
3479
3485
|
var form = form || this.form;
|
|
3480
3486
|
/* Set the form as submitted */
|
|
3481
|
-
if (form && form instanceof FormGroup
|
|
3487
|
+
if (form && form instanceof FormGroup) {
|
|
3482
3488
|
/* Set form as submitted */
|
|
3483
3489
|
form['submitted'] = true;
|
|
3484
3490
|
/* Update value and validity */
|
|
3485
3491
|
form.updateValueAndValidity();
|
|
3486
3492
|
}
|
|
3493
|
+
/* Print some debug information */
|
|
3494
|
+
this.debugForm(form);
|
|
3487
3495
|
}
|
|
3488
3496
|
/**
|
|
3489
3497
|
* Validates the form
|
|
@@ -3491,9 +3499,7 @@ class GenericFormBaseComponent extends BaseComponent {
|
|
|
3491
3499
|
*/
|
|
3492
3500
|
isFormValid(form = null) {
|
|
3493
3501
|
/* Print some debug information */
|
|
3494
|
-
|
|
3495
|
-
this.debugForm(form);
|
|
3496
|
-
}
|
|
3502
|
+
this.debugForm(form);
|
|
3497
3503
|
/* If the form ist not valid.. */
|
|
3498
3504
|
if (!form.valid) {
|
|
3499
3505
|
/* Mark invalid controls as dirtty and touched */
|
|
@@ -3568,15 +3574,17 @@ class GenericFormBaseComponent extends BaseComponent {
|
|
|
3568
3574
|
* @param form
|
|
3569
3575
|
*/
|
|
3570
3576
|
debugForm(form = null) {
|
|
3571
|
-
|
|
3572
|
-
|
|
3573
|
-
|
|
3574
|
-
|
|
3575
|
-
|
|
3576
|
-
|
|
3577
|
-
|
|
3578
|
-
|
|
3579
|
-
|
|
3577
|
+
if (this.debug) {
|
|
3578
|
+
console.log('Form:', form);
|
|
3579
|
+
Object.keys(form.controls).forEach(key => {
|
|
3580
|
+
const controlErrors = form.controls[key].errors;
|
|
3581
|
+
if (controlErrors != null) {
|
|
3582
|
+
Object.keys(controlErrors).forEach(keyError => {
|
|
3583
|
+
console.log('Key control: ' + key + ', keyError: ' + keyError + ', err value: ', controlErrors[keyError]);
|
|
3584
|
+
});
|
|
3585
|
+
}
|
|
3586
|
+
});
|
|
3587
|
+
}
|
|
3580
3588
|
}
|
|
3581
3589
|
/**
|
|
3582
3590
|
* Add toolbar menu items
|
|
@@ -7012,10 +7020,10 @@ function isResetControl(controlName, control, options) {
|
|
|
7012
7020
|
isReset = control instanceof FormControl;
|
|
7013
7021
|
break;
|
|
7014
7022
|
case ResetFormType.ControlsAndFormGroupsOnly:
|
|
7015
|
-
isReset = control instanceof FormControl || control instanceof FormGroup
|
|
7023
|
+
isReset = control instanceof FormControl || control instanceof FormGroup;
|
|
7016
7024
|
break;
|
|
7017
7025
|
case ResetFormType.FormGroupsOnly:
|
|
7018
|
-
isReset = control instanceof FormGroup
|
|
7026
|
+
isReset = control instanceof FormGroup;
|
|
7019
7027
|
break;
|
|
7020
7028
|
case ResetFormType.FormArraysOnly:
|
|
7021
7029
|
isReset = control instanceof FormArray;
|
|
@@ -7056,7 +7064,7 @@ function getNestedOptions(controlName, options) {
|
|
|
7056
7064
|
return undefined;
|
|
7057
7065
|
}
|
|
7058
7066
|
|
|
7059
|
-
class RxFormGroup extends FormGroup
|
|
7067
|
+
class RxFormGroup extends FormGroup {
|
|
7060
7068
|
constructor(model, entityObject, controls, validatorOrOpts, asyncValidator) {
|
|
7061
7069
|
super(controls, validatorOrOpts, asyncValidator);
|
|
7062
7070
|
this.model = model;
|
|
@@ -7123,7 +7131,7 @@ class RxFormGroup extends FormGroup$1 {
|
|
|
7123
7131
|
let isDirty = false;
|
|
7124
7132
|
for (let name in this.value) {
|
|
7125
7133
|
let currentValue = this.modelInstance[name];
|
|
7126
|
-
if (!(this.controls[name] instanceof FormGroup
|
|
7134
|
+
if (!(this.controls[name] instanceof FormGroup || this.controls[name] instanceof FormArray)) {
|
|
7127
7135
|
isDirty = ApplicationUtil.notEqualTo(this.baseObject[name], currentValue);
|
|
7128
7136
|
}
|
|
7129
7137
|
else if (this.controls[name] instanceof RxFormGroup)
|
|
@@ -7142,7 +7150,7 @@ class RxFormGroup extends FormGroup$1 {
|
|
|
7142
7150
|
resetForm(options) {
|
|
7143
7151
|
for (let name in this.controls) {
|
|
7144
7152
|
if (isResetControl(name, this.controls[name], options)) {
|
|
7145
|
-
if (this.controls[name] instanceof FormGroup
|
|
7153
|
+
if (this.controls[name] instanceof FormGroup)
|
|
7146
7154
|
this.controls[name].resetForm(getNestedOptions(name, options));
|
|
7147
7155
|
else if (this.controls[name] instanceof FormArray) {
|
|
7148
7156
|
this.controls[name].resetForm(options && options.value ? options.value[name] : undefined);
|
|
@@ -7158,7 +7166,7 @@ class RxFormGroup extends FormGroup$1 {
|
|
|
7158
7166
|
}
|
|
7159
7167
|
commit() {
|
|
7160
7168
|
for (let name in this.controls) {
|
|
7161
|
-
if (this.controls[name] instanceof FormGroup
|
|
7169
|
+
if (this.controls[name] instanceof FormGroup)
|
|
7162
7170
|
this.controls[name].commit();
|
|
7163
7171
|
else if (this.controls[name] instanceof FormArray) {
|
|
7164
7172
|
this.controls[name].commit();
|
|
@@ -7189,7 +7197,7 @@ class RxFormGroup extends FormGroup$1 {
|
|
|
7189
7197
|
getErrorSummary(onlyMessage) {
|
|
7190
7198
|
let jObject = {};
|
|
7191
7199
|
Object.keys(this.controls).forEach(columnName => {
|
|
7192
|
-
if (this.controls[columnName] instanceof FormGroup
|
|
7200
|
+
if (this.controls[columnName] instanceof FormGroup) {
|
|
7193
7201
|
let error = this.controls[columnName].getErrorSummary(false);
|
|
7194
7202
|
if (Object.keys(error).length > 0)
|
|
7195
7203
|
jObject[columnName] = error;
|
|
@@ -7222,7 +7230,7 @@ class RxFormGroup extends FormGroup$1 {
|
|
|
7222
7230
|
}
|
|
7223
7231
|
valueChangedSync() {
|
|
7224
7232
|
Object.keys(this.controls).forEach(columnName => {
|
|
7225
|
-
if (!(this.controls[columnName] instanceof FormArray || this.controls[columnName] instanceof RxFormArray) && !(this.controls[columnName] instanceof FormGroup
|
|
7233
|
+
if (!(this.controls[columnName] instanceof FormArray || this.controls[columnName] instanceof RxFormArray) && !(this.controls[columnName] instanceof FormGroup || this.controls[columnName] instanceof RxFormGroup) && !(this.entityObject[columnName] instanceof FormControl || this.entityObject[columnName] instanceof RxFormControl) && this.controls[columnName].getControlValue && ApplicationUtil.notEqualTo(this.controls[columnName].getControlValue(), this.entityObject[columnName])) {
|
|
7226
7234
|
this.controls[columnName].setValue(this.entityObject[columnName], { updateChanged: true });
|
|
7227
7235
|
}
|
|
7228
7236
|
else if ((this.controls[columnName] instanceof FormArray || this.controls[columnName] instanceof RxFormArray)) {
|
|
@@ -7237,7 +7245,7 @@ class RxFormGroup extends FormGroup$1 {
|
|
|
7237
7245
|
}
|
|
7238
7246
|
refreshDisable() {
|
|
7239
7247
|
Object.keys(this.controls).forEach(columnName => {
|
|
7240
|
-
if (!(this.controls[columnName] instanceof FormArray || this.controls[columnName] instanceof RxFormArray) && !(this.controls[columnName] instanceof FormGroup
|
|
7248
|
+
if (!(this.controls[columnName] instanceof FormArray || this.controls[columnName] instanceof RxFormArray) && !(this.controls[columnName] instanceof FormGroup || this.controls[columnName] instanceof RxFormGroup)) {
|
|
7241
7249
|
this.controls[columnName].refresh();
|
|
7242
7250
|
}
|
|
7243
7251
|
else if ((this.controls[columnName] instanceof RxFormGroup)) {
|
|
@@ -7247,7 +7255,7 @@ class RxFormGroup extends FormGroup$1 {
|
|
|
7247
7255
|
}
|
|
7248
7256
|
bindErrorMessages() {
|
|
7249
7257
|
Object.keys(this.controls).forEach(columnName => {
|
|
7250
|
-
if (!(this.controls[columnName] instanceof FormArray || this.controls[columnName] instanceof RxFormArray) && !(this.controls[columnName] instanceof FormGroup
|
|
7258
|
+
if (!(this.controls[columnName] instanceof FormArray || this.controls[columnName] instanceof RxFormArray) && !(this.controls[columnName] instanceof FormGroup || this.controls[columnName] instanceof RxFormGroup)) {
|
|
7251
7259
|
this.controls[columnName].bindError();
|
|
7252
7260
|
}
|
|
7253
7261
|
else if ((this.controls[columnName] instanceof RxFormGroup)) {
|
|
@@ -7266,7 +7274,7 @@ class RxFormGroup extends FormGroup$1 {
|
|
|
7266
7274
|
for (let formGroup of formArray.controls)
|
|
7267
7275
|
formGroup.submitted = value;
|
|
7268
7276
|
}
|
|
7269
|
-
else if (this.controls[columnName] instanceof FormGroup
|
|
7277
|
+
else if (this.controls[columnName] instanceof FormGroup) {
|
|
7270
7278
|
this.controls[columnName].submitted = value;
|
|
7271
7279
|
}
|
|
7272
7280
|
else
|
|
@@ -7303,7 +7311,7 @@ class RxFormGroup extends FormGroup$1 {
|
|
|
7303
7311
|
setBackEndErrors(errors) {
|
|
7304
7312
|
Object.keys(errors).forEach(controlName => {
|
|
7305
7313
|
if (this.controls[controlName]) {
|
|
7306
|
-
if (this.controls[controlName] instanceof FormGroup
|
|
7314
|
+
if (this.controls[controlName] instanceof FormGroup)
|
|
7307
7315
|
this.controls[controlName].setBackEndErrors(errors[controlName]);
|
|
7308
7316
|
else
|
|
7309
7317
|
this.controls[controlName].setBackEndErrors(errors[controlName]);
|
|
@@ -7314,7 +7322,7 @@ class RxFormGroup extends FormGroup$1 {
|
|
|
7314
7322
|
let clearErrors = errors ? Object.keys(errors) : Object.keys(this.controls);
|
|
7315
7323
|
clearErrors.forEach(controlName => {
|
|
7316
7324
|
if (this.controls[controlName]) {
|
|
7317
|
-
if (this.controls[controlName] instanceof FormGroup
|
|
7325
|
+
if (this.controls[controlName] instanceof FormGroup)
|
|
7318
7326
|
errors ? this.controls[controlName].clearBackEndErrors(errors[controlName]) : this.controls[controlName].clearBackEndErrors();
|
|
7319
7327
|
else
|
|
7320
7328
|
errors ? this.controls[controlName].clearBackEndErrors(errors[controlName]) : this.controls[controlName].clearBackEndErrors();
|
|
@@ -9504,7 +9512,7 @@ class RxwebFormDirective extends BaseDirective {
|
|
|
9504
9512
|
}
|
|
9505
9513
|
updateValueAndValidity(controls) {
|
|
9506
9514
|
Object.keys(controls).forEach(key => {
|
|
9507
|
-
if (controls[key] instanceof FormGroup
|
|
9515
|
+
if (controls[key] instanceof FormGroup)
|
|
9508
9516
|
this.updateValueAndValidity(controls[key].controls);
|
|
9509
9517
|
else if (controls[key] instanceof FormArray)
|
|
9510
9518
|
this.updateValueAndValidity(controls[key].controls);
|
|
@@ -9541,7 +9549,7 @@ class RxwebFormDirective extends BaseDirective {
|
|
|
9541
9549
|
}
|
|
9542
9550
|
});
|
|
9543
9551
|
}
|
|
9544
|
-
else if (formControl instanceof FormGroup
|
|
9552
|
+
else if (formControl instanceof FormGroup) {
|
|
9545
9553
|
this.expressionProcessor(formControl.controls, `${fieldName}.`);
|
|
9546
9554
|
}
|
|
9547
9555
|
else if (formControl instanceof FormArray) {
|
|
@@ -9558,7 +9566,7 @@ class RxwebFormDirective extends BaseDirective {
|
|
|
9558
9566
|
if (this.validationRule.conditionalValidationProps && this.validationRule.conditionalValidationProps[fieldName]) {
|
|
9559
9567
|
controls[fieldName][CONDITIONAL_VALIDATOR] = conditionalChangeValidator(this.validationRule.conditionalValidationProps[fieldName]);
|
|
9560
9568
|
}
|
|
9561
|
-
else if (controls[fieldName] instanceof FormGroup
|
|
9569
|
+
else if (controls[fieldName] instanceof FormGroup && this.validationRule.conditionalObjectProps) {
|
|
9562
9570
|
var fields = this.validationRule.conditionalObjectProps.filter(t => t.objectPropName == fieldName);
|
|
9563
9571
|
let nestedFormGroup = controls[fieldName];
|
|
9564
9572
|
let propWiseConditionalControls = {};
|
|
@@ -11025,10 +11033,10 @@ class RxFormBuilder extends BaseFormBuilder {
|
|
|
11025
11033
|
}
|
|
11026
11034
|
else if (typeof prop == OBJECT_STRING && !(prop instanceof FormControl || prop instanceof RxFormControl)) {
|
|
11027
11035
|
let formGroup = (prop instanceof FormArray) ? prop.controls[0] : prop;
|
|
11028
|
-
if (!formGroup.model && (prop instanceof FormGroup
|
|
11036
|
+
if (!formGroup.model && (prop instanceof FormGroup || prop instanceof RxFormGroup)) {
|
|
11029
11037
|
formGroup = this.group(formGroup.controls);
|
|
11030
11038
|
}
|
|
11031
|
-
if (prop instanceof FormGroup
|
|
11039
|
+
if (prop instanceof FormGroup || prop instanceof RxFormGroup) {
|
|
11032
11040
|
entityObject[propName] = prop;
|
|
11033
11041
|
defaultContainer.initPropertyObject(propName, OBJECT_PROPERTY, formGroup.model, modelInstance);
|
|
11034
11042
|
}
|
|
@@ -11169,7 +11177,7 @@ class RxFormBuilder extends BaseFormBuilder {
|
|
|
11169
11177
|
break;
|
|
11170
11178
|
case OBJECT_PROPERTY:
|
|
11171
11179
|
let objectValue = entityObject[property.name];
|
|
11172
|
-
if (objectValue && objectValue instanceof Object && !(objectValue instanceof FormGroup
|
|
11180
|
+
if (objectValue && objectValue instanceof Object && !(objectValue instanceof FormGroup || objectValue instanceof RxFormGroup)) {
|
|
11173
11181
|
this.isNestedBinding = this.isNested = true;
|
|
11174
11182
|
if (instanceContainer && instanceContainer.conditionalObjectProps)
|
|
11175
11183
|
this.conditionalObjectProps = instanceContainer.conditionalObjectProps.filter(t => t.objectPropName == property.name);
|
|
@@ -11184,7 +11192,7 @@ class RxFormBuilder extends BaseFormBuilder {
|
|
|
11184
11192
|
this.builderConfigurationConditionalObjectProps = [];
|
|
11185
11193
|
this.isNestedBinding = this.isNested = false;
|
|
11186
11194
|
}
|
|
11187
|
-
else if (objectValue instanceof FormGroup
|
|
11195
|
+
else if (objectValue instanceof FormGroup || objectValue instanceof RxFormGroup)
|
|
11188
11196
|
formGroupObject[property.name] = objectValue;
|
|
11189
11197
|
break;
|
|
11190
11198
|
case ARRAY_PROPERTY:
|
|
@@ -14604,7 +14612,7 @@ function FormFieldOld(args) {
|
|
|
14604
14612
|
}
|
|
14605
14613
|
/* Create a new group */
|
|
14606
14614
|
else {
|
|
14607
|
-
group = new
|
|
14615
|
+
group = new FormFieldGroupDefinition({ name: formField.groupName || null, header: formField.groupHeader, fields: [formField] });
|
|
14608
14616
|
formFieldGroups.push(group);
|
|
14609
14617
|
}
|
|
14610
14618
|
/* Sort the fields by row */
|
|
@@ -14686,42 +14694,32 @@ function FormField(args) {
|
|
|
14686
14694
|
}
|
|
14687
14695
|
/**
|
|
14688
14696
|
* Property decorator to create form fields
|
|
14689
|
-
* @param
|
|
14697
|
+
* @param type
|
|
14698
|
+
* @param header
|
|
14699
|
+
* @param init
|
|
14690
14700
|
* @returns
|
|
14691
14701
|
*/
|
|
14692
|
-
function
|
|
14702
|
+
function FormFieldGroup(type, header, init) {
|
|
14693
14703
|
return function (target, propertyKey) {
|
|
14694
14704
|
var _a;
|
|
14695
|
-
/*
|
|
14696
|
-
|
|
14705
|
+
/* Create an instance of the group object */
|
|
14706
|
+
var instance = Reflect.construct(type, []);
|
|
14697
14707
|
/* Get from groups */
|
|
14698
|
-
var groups = getFormGroups(
|
|
14699
|
-
/* Get
|
|
14700
|
-
|
|
14701
|
-
/* Get
|
|
14702
|
-
|
|
14703
|
-
|
|
14704
|
-
|
|
14705
|
-
|
|
14706
|
-
|
|
14707
|
-
|
|
14708
|
-
|
|
14709
|
-
|
|
14710
|
-
|
|
14711
|
-
|
|
14712
|
-
|
|
14713
|
-
formFieldGroups.push(group);
|
|
14714
|
-
}
|
|
14715
|
-
/* Sort the fields by row */
|
|
14716
|
-
group.fields = ((_a = group === null || group === void 0 ? void 0 : group.fields) === null || _a === void 0 ? void 0 : _a.sort((a, b) => (a.row || 0 > b.row || 0) ? 1 : ((b.row || 0 > a.row || 0) ? -1 : 0))) || [];
|
|
14717
|
-
/* Group the fields */
|
|
14718
|
-
group.groups = Object.values((group.fields).reduce(function (r, a) {
|
|
14719
|
-
r[a.row] = r[a.row] || [];
|
|
14720
|
-
r[a.row].push(a);
|
|
14721
|
-
return r;
|
|
14722
|
-
}, Object.create(null)));
|
|
14723
|
-
/* Add new table column */
|
|
14724
|
-
Reflect.defineMetadata(formFieldGroupMetadataKey, formFieldGroups, target);
|
|
14708
|
+
var groups = getFormGroups(instance);
|
|
14709
|
+
/* Get old form fields */
|
|
14710
|
+
const previousFormFields = Reflect.getMetadata(formFieldGroupMetadataKey, target);
|
|
14711
|
+
/* Get the fields from the groups */
|
|
14712
|
+
(_a = groups === null || groups === void 0 ? void 0 : groups.map(x => x.fields)) === null || _a === void 0 ? void 0 : _a.forEach(x => {
|
|
14713
|
+
/* Set the name of the group in the fields */
|
|
14714
|
+
x.forEach(y => {
|
|
14715
|
+
y.groupName = propertyKey;
|
|
14716
|
+
y.groupHeader = header;
|
|
14717
|
+
y.groupObjectType = type;
|
|
14718
|
+
y.groupObjectInstance = init || instance;
|
|
14719
|
+
});
|
|
14720
|
+
/* Create a copy of the result and override the result in the metadata */
|
|
14721
|
+
Reflect.defineMetadata(formFieldGroupMetadataKey, (previousFormFields ? previousFormFields.concat(x) : x), target);
|
|
14722
|
+
});
|
|
14725
14723
|
};
|
|
14726
14724
|
}
|
|
14727
14725
|
|
|
@@ -16954,5 +16952,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
|
|
|
16954
16952
|
* Generated bundle index. Do not edit.
|
|
16955
16953
|
*/
|
|
16956
16954
|
|
|
16957
|
-
export { AbstractMatFormField, ActionMenuItem, Api, AppSetting, AppStorage, AsyncValidationDirective, AuditEntity, AuditUser, AuthHelper, AuthUser, BaseComponent, BaseDirective, BaseEntity, BaseInterceptor, BaseService, CachingInterceptor, Column, Common, ContextHelper, DataSourceFilterDirective, DataSourcePipe, DisableControlDirective, Display, DynamicBuilder, DynamicComponentCompiler, EnumPipe, EnumService, EqualValidator, ErrorMessageBindingStrategy, FileControlDirective, FileService, FileSizePipe, FilterClearComponent, FilterDateComponent, FilterInputComponent, FilterPipe, FilterSelectComponent, FirstLetterPipe, FormBuilderConfiguration, FormField, FormFieldDefinition, FormFieldGroup,
|
|
16955
|
+
export { AbstractMatFormField, ActionMenuItem, Api, AppSetting, AppStorage, AsyncValidationDirective, AuditEntity, AuditUser, AuthHelper, AuthUser, BaseComponent, BaseDirective, BaseEntity, BaseInterceptor, BaseService, CachingInterceptor, Column, Common, ContextHelper, DataSourceFilterDirective, DataSourcePipe, DisableControlDirective, Display, DynamicBuilder, DynamicComponentCompiler, EnumPipe, EnumService, EqualValidator, ErrorMessageBindingStrategy, FileControlDirective, FileService, FileSizePipe, FilterClearComponent, FilterDateComponent, FilterInputComponent, FilterPipe, FilterSelectComponent, FirstLetterPipe, FormBuilderConfiguration, FormField, FormFieldDefinition, FormFieldGroup, FormFieldGroupDefinition, FormFieldType, GenericFormBaseComponent, GenericFormComponent, GenericListComponent, GenericReactiveFormComponent, GenericService, HtmlControlTemplateDirective, IAbstractControl, ImageFileControlDirective, IpVersion, KeyValue, KeysPipe, LoadingScreenInterceptor, LoadingScreenService, MatFormFieldEditorDirective, MatFormFieldReadonlyDirective, Menu, MenuItem, MenuItemService, MenuResolve, MenuScope, MenuService, MessageType, MonthNamePipe, NativeElementInjectorDirective, NumericValueType, OnlyNumberDirective, OrderPipe, Pagination, PlaceholderPipe, PrintService, RUNTIME_COMPILER_PROVIDERS, ReactiveFormConfig, ReactiveTypedFormsModule, ResetFormType, RxFormArray, RxFormBuilder, RxFormControl, RxFormControlDirective, RxFormGroup, RxReactiveFormsModule, RxwebFormDirective, RxwebValidators, SafeHtmlPipe, Salutation, SaveAction, ServiceLocator, SubMenuResolve, SuffixButton, Table, TableColumn, TableColumnType, TableDataSource, TableDefinition, TableMenuItem, TableStaticDataSource, TimePipe, TitleCase, TruncatePipe, TypedForm, TypedFormBuilder, UniqueValidatorDirective, Utils, ValidationAlphabetLocale, ValueAccessorBase, ValuesPipe, VdAlertDialogComponent, VdAutocompleteOptionDirective, VdBaseModule, VdChipDirective, VdChipsComponent, VdChipsModule, VdCodeDirective, VdCommonModule, VdConfirmDialogComponent, VdCustomDirective, VdDialogActionsDirective, VdDialogComponent, VdDialogContentDirective, VdDialogService, VdDialogTitleDirective, VdDialogsModule, VdDynamicTableComponent, VdEditorDirective, VdFileDirective, VdFileInputComponent, VdFileModule, VdFilterOptionDirective, VdFormToolbarComponent, VdFormToolbarMenuComponent, VdFormsModule, VdGenericFormComponent, VdHttpModule, VdLayoutCardOverComponent, VdLayoutCloseDirective, VdLayoutComponent, VdLayoutFooterComponent, VdLayoutManageListCloseDirective, VdLayoutManageListComponent, VdLayoutManageListOpenDirective, VdLayoutManageListToggleDirective, VdLayoutModule, VdLayoutNavComponent, VdLayoutNavListCloseDirective, VdLayoutNavListComponent, VdLayoutNavListOpenDirective, VdLayoutNavListToggleDirective, VdLayoutOpenDirective, VdLayoutToggleDirective, VdListToolbarComponent, VdListToolbarMenuComponent, VdMediaModule, VdMediaService, VdMediaToggleDirective, VdMenuComponent, VdMenuModule, VdNavigationDrawerComponent, VdNavigationDrawerMenuDirective, VdNavigationDrawerToolbarDirective, VdPromptDialogComponent, VdSearchBoxComponent, VdSearchInputComponent, VdSearchModule, VdSelectComponent, VdSelectModule, VdSelectOptionDirective, VdSelectTriggerDirective, VdTableModule, allOf, allOfAsync, alpha, alphaAsync, alphaNumeric, alphaNumericAsync, and, ascii, async, blacklist, choice, choiceAsync, compare, compose, contains, containsAsync, createCompiler, creditCard, creditCardAsync, cusip, custom, customAsync, dataUri, date, dateAsync, different, digit, disable, elementClass, email, endsWith, endsWithAsync, error, escape, even, extension, extensionAsync, factor, factorAsync, file, fileAsync, fileSize, fileSizeAsync, formFieldGroupMetadataKey, getEndpoint, getFormGroups, getTableDefinition, greaterThan, greaterThanAsync, greaterThanEqualTo, greaterThanEqualToAsync, grid, headerMetadataKey, hexColor, image, imageAsync, json, latLong, latitude, leapYear, lessThan, lessThanAsync, lessThanEqualTo, lessThanEqualToAsync, longitude, lowerCase, ltrim, mac, mask, maxDate, maxDateAsync, maxLength, maxLengthAsync, maxNumber, maxNumberAsync, maxTime, maxTimeAsync, minDate, minDateAsync, minLength, minLengthAsync, minNumber, minNumberAsync, minTime, minTimeAsync, mixinControlValueAccessor, mixinDisabled, model, noneOf, noneOfAsync, not, notEmpty, numeric, numericAsync, odd, oneOf, oneOfAsync, or, password, passwordAsync, pattern, patternAsync, port, prefix, primeNumber, prop, propArray, propObject, range, rangeAsync, required, requiredTrue, rtrim, rule, sanitize, startsWith, startsWithAsync, stripLow, suffix, time, timeAsync, toBoolean, toDate, toDouble, toFloat, toInt, toString, trim, unique, upperCase, url, urlAsync, whitelist };
|
|
16958
16956
|
//# sourceMappingURL=messaia-cdk.mjs.map
|