@flowgram.ai/form 0.1.6 → 0.1.7
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/dist/esm/index.js +47 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.mts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +54 -9
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/esm/index.js
CHANGED
|
@@ -46,6 +46,16 @@ function shallowSetIn(obj, path, value) {
|
|
|
46
46
|
}
|
|
47
47
|
return res;
|
|
48
48
|
}
|
|
49
|
+
function keepValidKeys(obj, validKeys) {
|
|
50
|
+
const validKeysSet = new Set(validKeys);
|
|
51
|
+
const newObj = {};
|
|
52
|
+
Object.keys(obj).forEach((key) => {
|
|
53
|
+
if (validKeysSet.has(key)) {
|
|
54
|
+
newObj[key] = obj[key];
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return newObj;
|
|
58
|
+
}
|
|
49
59
|
|
|
50
60
|
// src/utils/dom.ts
|
|
51
61
|
function isReactChangeEvent(e) {
|
|
@@ -463,6 +473,9 @@ function toForm(model) {
|
|
|
463
473
|
get values() {
|
|
464
474
|
return model.values;
|
|
465
475
|
},
|
|
476
|
+
set values(v) {
|
|
477
|
+
model.values = v;
|
|
478
|
+
},
|
|
466
479
|
state: toFormState(model.state),
|
|
467
480
|
getValueIn: (name) => model.getValueIn(name),
|
|
468
481
|
setValueIn: (name, value) => model.setValueIn(name, value)
|
|
@@ -563,7 +576,8 @@ function Field({
|
|
|
563
576
|
if (fieldModel.renderCount > 1) {
|
|
564
577
|
fieldModel.renderCount = fieldModel.renderCount - 1;
|
|
565
578
|
} else {
|
|
566
|
-
fieldModel.
|
|
579
|
+
const newFieldModel = formModel.getField(fieldModel.name);
|
|
580
|
+
if (newFieldModel === fieldModel) fieldModel.dispose();
|
|
567
581
|
}
|
|
568
582
|
};
|
|
569
583
|
}, [fieldModel]);
|
|
@@ -679,6 +693,9 @@ var Store = class {
|
|
|
679
693
|
get values() {
|
|
680
694
|
return this._values;
|
|
681
695
|
}
|
|
696
|
+
set values(v) {
|
|
697
|
+
this._values = v;
|
|
698
|
+
}
|
|
682
699
|
setInitialValues(values) {
|
|
683
700
|
this._values = values;
|
|
684
701
|
}
|
|
@@ -1080,6 +1097,7 @@ var FieldArrayModel = class extends FieldModel {
|
|
|
1080
1097
|
f.dispose();
|
|
1081
1098
|
});
|
|
1082
1099
|
this.form.fieldMap = newFieldMap;
|
|
1100
|
+
this.form.alignStateWithFieldMap();
|
|
1083
1101
|
}
|
|
1084
1102
|
swap(from, to) {
|
|
1085
1103
|
if (!this.value) {
|
|
@@ -1155,6 +1173,15 @@ var FormModel = class {
|
|
|
1155
1173
|
get values() {
|
|
1156
1174
|
return cloneDeep(this.store.values) || cloneDeep(this.initialValues);
|
|
1157
1175
|
}
|
|
1176
|
+
set values(v) {
|
|
1177
|
+
const prevValues = this.values;
|
|
1178
|
+
this.store.values = v;
|
|
1179
|
+
this.fireOnFormValuesChange({
|
|
1180
|
+
values: this.values,
|
|
1181
|
+
prevValues,
|
|
1182
|
+
name: ""
|
|
1183
|
+
});
|
|
1184
|
+
}
|
|
1158
1185
|
get validationTrigger() {
|
|
1159
1186
|
return this._options.validateTrigger;
|
|
1160
1187
|
}
|
|
@@ -1317,6 +1344,23 @@ var FormModel = class {
|
|
|
1317
1344
|
this.onValidateEmitter.fire(this.state);
|
|
1318
1345
|
return flatten2(feedbacksArr).filter(Boolean);
|
|
1319
1346
|
}
|
|
1347
|
+
alignStateWithFieldMap() {
|
|
1348
|
+
const keys = Array.from(this.fieldMap.keys());
|
|
1349
|
+
if (this.state.errors) {
|
|
1350
|
+
this.state.errors = keepValidKeys(this.state.errors, keys);
|
|
1351
|
+
}
|
|
1352
|
+
if (this.state.warnings) {
|
|
1353
|
+
this.state.warnings = keepValidKeys(this.state.warnings, keys);
|
|
1354
|
+
}
|
|
1355
|
+
this.fieldMap.forEach((f) => {
|
|
1356
|
+
if (f.state.errors) {
|
|
1357
|
+
f.state.errors = keepValidKeys(f.state.errors, keys);
|
|
1358
|
+
}
|
|
1359
|
+
if (f.state.warnings) {
|
|
1360
|
+
f.state.warnings = keepValidKeys(f.state.warnings, keys);
|
|
1361
|
+
}
|
|
1362
|
+
});
|
|
1363
|
+
}
|
|
1320
1364
|
dispose() {
|
|
1321
1365
|
this.fieldMap.forEach((f) => f.dispose());
|
|
1322
1366
|
this.store.dispose();
|
|
@@ -1442,7 +1486,8 @@ function FieldArray({
|
|
|
1442
1486
|
if (fieldModel.renderCount > 1) {
|
|
1443
1487
|
fieldModel.renderCount = fieldModel.renderCount - 1;
|
|
1444
1488
|
} else {
|
|
1445
|
-
fieldModel.
|
|
1489
|
+
const newFieldModel = formModel.getField(fieldModel.name);
|
|
1490
|
+
if (newFieldModel === fieldModel) fieldModel.dispose();
|
|
1446
1491
|
}
|
|
1447
1492
|
};
|
|
1448
1493
|
}, [fieldModel]);
|