@react-typed-forms/schemas 10.0.1 → 10.0.3
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/lib/index.js +25 -13
- package/lib/index.js.map +1 -1
- package/lib/util.d.ts +2 -4
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -210,27 +210,31 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
|
|
210
210
|
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
211
211
|
}
|
|
212
212
|
|
|
213
|
-
function applyDefaultValues(v, fields) {
|
|
213
|
+
function applyDefaultValues(v, fields, doneSet) {
|
|
214
|
+
var _doneSet;
|
|
214
215
|
if (!v) return defaultValueForFields(fields);
|
|
216
|
+
if (doneSet && doneSet.has(v)) return v;
|
|
217
|
+
(_doneSet = doneSet) != null ? _doneSet : doneSet = new Set();
|
|
218
|
+
doneSet.add(v);
|
|
215
219
|
var applyValue = fields.filter(function (x) {
|
|
216
220
|
return isCompoundField(x) || !(x.field in v);
|
|
217
221
|
});
|
|
218
222
|
if (!applyValue.length) return v;
|
|
219
223
|
var out = _extends({}, v);
|
|
220
224
|
applyValue.forEach(function (x) {
|
|
221
|
-
out[x.field] = x.field in v ? applyDefaultForField(v[x.field], x, fields) : defaultValueForField(x);
|
|
225
|
+
out[x.field] = x.field in v ? applyDefaultForField(v[x.field], x, fields, false, doneSet) : defaultValueForField(x);
|
|
222
226
|
});
|
|
223
227
|
return out;
|
|
224
228
|
}
|
|
225
|
-
function applyDefaultForField(v, field, parent, notElement) {
|
|
229
|
+
function applyDefaultForField(v, field, parent, notElement, doneSet) {
|
|
226
230
|
if (field.collection && !notElement) {
|
|
227
231
|
return (v != null ? v : []).map(function (x) {
|
|
228
|
-
return applyDefaultForField(x, field, parent, true);
|
|
232
|
+
return applyDefaultForField(x, field, parent, true, doneSet);
|
|
229
233
|
});
|
|
230
234
|
}
|
|
231
235
|
if (isCompoundField(field)) {
|
|
232
236
|
if (!v && !field.required) return v;
|
|
233
|
-
return applyDefaultValues(v, field.treeChildren ? parent : field.children);
|
|
237
|
+
return applyDefaultValues(v, field.treeChildren ? parent : field.children, doneSet);
|
|
234
238
|
}
|
|
235
239
|
return defaultValueForField(field);
|
|
236
240
|
}
|
|
@@ -1106,14 +1110,22 @@ function useValidationHook(definition, field) {
|
|
|
1106
1110
|
var lv = x;
|
|
1107
1111
|
core.useControlEffect(function () {
|
|
1108
1112
|
core.trackControlChange(control, core.ControlChange.Validate);
|
|
1109
|
-
return field ? schemaInterface.controlLength(field, control) : 0;
|
|
1110
|
-
}, function (
|
|
1113
|
+
return [field ? schemaInterface.controlLength(field, control) : 0, hidden];
|
|
1114
|
+
}, function (_ref) {
|
|
1115
|
+
var len = _ref[0],
|
|
1116
|
+
hidden = _ref[1];
|
|
1117
|
+
if (hidden) {
|
|
1118
|
+
control.setError("length", undefined);
|
|
1119
|
+
return;
|
|
1120
|
+
}
|
|
1111
1121
|
if (lv.min != null && len < lv.min) {
|
|
1112
1122
|
if (field != null && field.collection) {
|
|
1113
1123
|
control.setValue(function (v) {
|
|
1114
|
-
return
|
|
1115
|
-
length: lv.min -
|
|
1116
|
-
}))
|
|
1124
|
+
return Array.isArray(v) ? v.concat(Array.from({
|
|
1125
|
+
length: lv.min - v.length
|
|
1126
|
+
})) : Array.from({
|
|
1127
|
+
length: lv.min
|
|
1128
|
+
});
|
|
1117
1129
|
});
|
|
1118
1130
|
} else {
|
|
1119
1131
|
control.setError("length", "Length must be at least " + lv.min);
|
|
@@ -1135,9 +1147,9 @@ function useJsonataValidator(control, context, expr, hidden, i) {
|
|
|
1135
1147
|
var errorMsg = useJsonataExpression(expr.expression, context);
|
|
1136
1148
|
core.useControlEffect(function () {
|
|
1137
1149
|
return [hidden, errorMsg.value];
|
|
1138
|
-
}, function (
|
|
1139
|
-
var hidden =
|
|
1140
|
-
msg =
|
|
1150
|
+
}, function (_ref2) {
|
|
1151
|
+
var hidden = _ref2[0],
|
|
1152
|
+
msg = _ref2[1];
|
|
1141
1153
|
return control.setError("jsonata" + i, !hidden ? msg : null);
|
|
1142
1154
|
}, true);
|
|
1143
1155
|
}
|