@flowgram.ai/form 0.4.6 → 0.4.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 +10 -10
- package/dist/esm/index.js.map +1 -1
- package/dist/index.js +46 -46
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -60,16 +60,16 @@ module.exports = __toCommonJS(src_exports);
|
|
|
60
60
|
|
|
61
61
|
// src/react/field.tsx
|
|
62
62
|
var React2 = __toESM(require("react"));
|
|
63
|
-
var
|
|
63
|
+
var import_lodash_es5 = require("lodash-es");
|
|
64
64
|
var import_utils4 = require("@flowgram.ai/utils");
|
|
65
65
|
var import_reactive = require("@flowgram.ai/reactive");
|
|
66
66
|
|
|
67
67
|
// src/utils/object.ts
|
|
68
|
-
var
|
|
68
|
+
var import_lodash_es = require("lodash-es");
|
|
69
69
|
var isObject = (obj) => obj !== null && typeof obj === "object";
|
|
70
70
|
var isInteger = (obj) => String(Math.floor(Number(obj))) === obj;
|
|
71
71
|
function getIn(obj, key, def, p = 0) {
|
|
72
|
-
const path = (0,
|
|
72
|
+
const path = (0, import_lodash_es.toPath)(key);
|
|
73
73
|
while (obj && p < path.length) {
|
|
74
74
|
obj = obj[path[p++]];
|
|
75
75
|
}
|
|
@@ -79,15 +79,15 @@ function getIn(obj, key, def, p = 0) {
|
|
|
79
79
|
return obj === void 0 ? def : obj;
|
|
80
80
|
}
|
|
81
81
|
function shallowSetIn(obj, path, value) {
|
|
82
|
-
let res = (0,
|
|
82
|
+
let res = (0, import_lodash_es.clone)(obj);
|
|
83
83
|
let resVal = res;
|
|
84
84
|
let i = 0;
|
|
85
|
-
let pathArray = (0,
|
|
85
|
+
let pathArray = (0, import_lodash_es.toPath)(path);
|
|
86
86
|
for (; i < pathArray.length - 1; i++) {
|
|
87
87
|
const currentPath = pathArray[i];
|
|
88
88
|
let currentObj = getIn(obj, pathArray.slice(0, i + 1));
|
|
89
89
|
if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {
|
|
90
|
-
resVal = resVal[currentPath] = (0,
|
|
90
|
+
resVal = resVal[currentPath] = (0, import_lodash_es.clone)(currentObj);
|
|
91
91
|
} else {
|
|
92
92
|
const nextPath = pathArray[i + 1];
|
|
93
93
|
resVal = resVal[currentPath] = isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};
|
|
@@ -119,7 +119,7 @@ function isCheckBoxEvent(e) {
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
// src/utils/glob.ts
|
|
122
|
-
var
|
|
122
|
+
var import_lodash_es2 = require("lodash-es");
|
|
123
123
|
var Glob;
|
|
124
124
|
((Glob2) => {
|
|
125
125
|
Glob2.DIVIDER = ".";
|
|
@@ -183,12 +183,12 @@ var Glob;
|
|
|
183
183
|
if (!obj || typeof obj !== "object") {
|
|
184
184
|
return [];
|
|
185
185
|
}
|
|
186
|
-
return (0,
|
|
186
|
+
return (0, import_lodash_es2.flatten)(
|
|
187
187
|
paths.map((path) => {
|
|
188
|
-
const value = path === "" ? obj : (0,
|
|
189
|
-
if ((0,
|
|
188
|
+
const value = path === "" ? obj : (0, import_lodash_es2.get)(obj, path);
|
|
189
|
+
if ((0, import_lodash_es2.isArray)(value)) {
|
|
190
190
|
return value.map((_, index) => concatPath(path, index));
|
|
191
|
-
} else if ((0,
|
|
191
|
+
} else if ((0, import_lodash_es2.isObject)(value)) {
|
|
192
192
|
return Object.keys(value).map((key) => concatPath(path, key));
|
|
193
193
|
}
|
|
194
194
|
return [];
|
|
@@ -232,7 +232,7 @@ var Glob;
|
|
|
232
232
|
if (!isObject3) return [];
|
|
233
233
|
if (curKey === Glob2.ALL) {
|
|
234
234
|
const parentPath = curPaths.join(Glob2.DIVIDER);
|
|
235
|
-
return (0,
|
|
235
|
+
return (0, import_lodash_es2.flatten)(
|
|
236
236
|
Object.keys(curValue).map((key) => {
|
|
237
237
|
if (nextPaths.length === 0) {
|
|
238
238
|
return concatPath(parentPath, key);
|
|
@@ -275,14 +275,14 @@ var ValidateTrigger = /* @__PURE__ */ ((ValidateTrigger2) => {
|
|
|
275
275
|
})(ValidateTrigger || {});
|
|
276
276
|
|
|
277
277
|
// src/core/utils.ts
|
|
278
|
-
var
|
|
278
|
+
var import_lodash_es4 = require("lodash-es");
|
|
279
279
|
|
|
280
280
|
// src/core/path.ts
|
|
281
|
-
var
|
|
281
|
+
var import_lodash_es3 = require("lodash-es");
|
|
282
282
|
var Path = class _Path {
|
|
283
283
|
constructor(path) {
|
|
284
284
|
this._path = [];
|
|
285
|
-
this._path = (0,
|
|
285
|
+
this._path = (0, import_lodash_es3.toPath)(path);
|
|
286
286
|
}
|
|
287
287
|
get parent() {
|
|
288
288
|
if (this._path.length < 2) {
|
|
@@ -397,7 +397,7 @@ function mergeFeedbacks(origin, source) {
|
|
|
397
397
|
return { ...source };
|
|
398
398
|
}
|
|
399
399
|
const changed = Object.keys(source).some(
|
|
400
|
-
(sourceKey) => !(0,
|
|
400
|
+
(sourceKey) => !(0, import_lodash_es4.isEqual)(origin[sourceKey], source[sourceKey])
|
|
401
401
|
);
|
|
402
402
|
if (changed) {
|
|
403
403
|
return {
|
|
@@ -420,7 +420,7 @@ function shouldValidate(currentTrigger, formTrigger) {
|
|
|
420
420
|
return currentTrigger === formTrigger;
|
|
421
421
|
}
|
|
422
422
|
function getValidByErrors(errors) {
|
|
423
|
-
return errors ? Object.keys(errors).every((name) => (0,
|
|
423
|
+
return errors ? Object.keys(errors).every((name) => (0, import_lodash_es4.isEmpty)(errors[name])) : true;
|
|
424
424
|
}
|
|
425
425
|
var FieldEventUtils;
|
|
426
426
|
((FieldEventUtils2) => {
|
|
@@ -646,7 +646,7 @@ function Field({
|
|
|
646
646
|
if (render) {
|
|
647
647
|
return render({ field, fieldState, formState });
|
|
648
648
|
}
|
|
649
|
-
if ((0,
|
|
649
|
+
if ((0, import_lodash_es5.isFunction)(children)) {
|
|
650
650
|
return children({ field, fieldState, formState });
|
|
651
651
|
}
|
|
652
652
|
return React2.cloneElement(children, { ...field });
|
|
@@ -657,7 +657,7 @@ function Field({
|
|
|
657
657
|
|
|
658
658
|
// src/react/form.tsx
|
|
659
659
|
var import_react3 = __toESM(require("react"));
|
|
660
|
-
var
|
|
660
|
+
var import_lodash_es9 = require("lodash-es");
|
|
661
661
|
|
|
662
662
|
// src/core/to-field-array.ts
|
|
663
663
|
function toFieldArray(model) {
|
|
@@ -695,7 +695,7 @@ function toFieldArray(model) {
|
|
|
695
695
|
}
|
|
696
696
|
|
|
697
697
|
// src/core/form-model.ts
|
|
698
|
-
var
|
|
698
|
+
var import_lodash_es8 = require("lodash-es");
|
|
699
699
|
var import_fast_equals = require("fast-equals");
|
|
700
700
|
var import_utils10 = require("@flowgram.ai/utils");
|
|
701
701
|
var import_reactive3 = require("@flowgram.ai/reactive");
|
|
@@ -749,19 +749,19 @@ function createFieldModelState(initialState) {
|
|
|
749
749
|
}
|
|
750
750
|
|
|
751
751
|
// src/core/store.ts
|
|
752
|
-
var
|
|
752
|
+
var import_lodash_es6 = require("lodash-es");
|
|
753
753
|
var Store = class {
|
|
754
754
|
get values() {
|
|
755
|
-
return (0,
|
|
755
|
+
return (0, import_lodash_es6.clone)(this._values);
|
|
756
756
|
}
|
|
757
757
|
set values(v) {
|
|
758
|
-
this._values = (0,
|
|
758
|
+
this._values = (0, import_lodash_es6.cloneDeep)(v);
|
|
759
759
|
}
|
|
760
760
|
setIn(path, value) {
|
|
761
761
|
this._values = shallowSetIn(this._values || {}, path.toString(), value);
|
|
762
762
|
}
|
|
763
763
|
getIn(path) {
|
|
764
|
-
return (0,
|
|
764
|
+
return (0, import_lodash_es6.get)(this.values, path.value);
|
|
765
765
|
}
|
|
766
766
|
dispose() {
|
|
767
767
|
}
|
|
@@ -769,7 +769,7 @@ var Store = class {
|
|
|
769
769
|
|
|
770
770
|
// src/core/field-model.ts
|
|
771
771
|
var import_nanoid = require("nanoid");
|
|
772
|
-
var
|
|
772
|
+
var import_lodash_es7 = require("lodash-es");
|
|
773
773
|
var import_utils7 = require("@flowgram.ai/utils");
|
|
774
774
|
var import_reactive2 = require("@flowgram.ai/reactive");
|
|
775
775
|
var FieldModel = class {
|
|
@@ -789,8 +789,8 @@ var FieldModel = class {
|
|
|
789
789
|
const { values, prevValues } = payload;
|
|
790
790
|
if (FieldEventUtils.shouldTriggerFieldChangeEvent(payload, this.name)) {
|
|
791
791
|
this.onValueChangeEmitter.fire({
|
|
792
|
-
value: (0,
|
|
793
|
-
prevValue: (0,
|
|
792
|
+
value: (0, import_lodash_es7.get)(values, this.name),
|
|
793
|
+
prevValue: (0, import_lodash_es7.get)(prevValues, this.name),
|
|
794
794
|
formValues: values,
|
|
795
795
|
prevFormValues: prevValues
|
|
796
796
|
});
|
|
@@ -810,8 +810,8 @@ var FieldModel = class {
|
|
|
810
810
|
this._renderCount = n;
|
|
811
811
|
}
|
|
812
812
|
initState() {
|
|
813
|
-
const initialErrors = (0,
|
|
814
|
-
const initialWarnings = (0,
|
|
813
|
+
const initialErrors = (0, import_lodash_es7.get)(this.form.state.errors, this.name);
|
|
814
|
+
const initialWarnings = (0, import_lodash_es7.get)(this.form.state.warnings, this.name);
|
|
815
815
|
if (initialErrors) {
|
|
816
816
|
this.state.errors = {
|
|
817
817
|
[this.name]: initialErrors
|
|
@@ -897,19 +897,19 @@ var FieldModel = class {
|
|
|
897
897
|
bubbleState() {
|
|
898
898
|
const { errors, warnings } = this.state;
|
|
899
899
|
if (this.parent) {
|
|
900
|
-
this.parent.state.isTouched = (0,
|
|
900
|
+
this.parent.state.isTouched = (0, import_lodash_es7.some)(
|
|
901
901
|
this.parent.children.map((c) => c.state.isTouched),
|
|
902
902
|
Boolean
|
|
903
903
|
);
|
|
904
|
-
this.parent.state.invalid = (0,
|
|
904
|
+
this.parent.state.invalid = (0, import_lodash_es7.some)(
|
|
905
905
|
this.parent.children.map((c) => c.state.invalid),
|
|
906
906
|
Boolean
|
|
907
907
|
);
|
|
908
|
-
this.parent.state.isDirty = (0,
|
|
908
|
+
this.parent.state.isDirty = (0, import_lodash_es7.some)(
|
|
909
909
|
this.parent.children.map((c) => c.state.isDirty),
|
|
910
910
|
Boolean
|
|
911
911
|
);
|
|
912
|
-
this.parent.state.isValidating = (0,
|
|
912
|
+
this.parent.state.isValidating = (0, import_lodash_es7.some)(
|
|
913
913
|
this.parent.children.map((c) => c.state.isValidating),
|
|
914
914
|
Boolean
|
|
915
915
|
);
|
|
@@ -918,19 +918,19 @@ var FieldModel = class {
|
|
|
918
918
|
this.parent.bubbleState();
|
|
919
919
|
return;
|
|
920
920
|
}
|
|
921
|
-
this.form.state.isTouched = (0,
|
|
921
|
+
this.form.state.isTouched = (0, import_lodash_es7.some)(
|
|
922
922
|
this.form.fields.map((f) => f.state.isTouched),
|
|
923
923
|
Boolean
|
|
924
924
|
);
|
|
925
|
-
this.form.state.invalid = (0,
|
|
925
|
+
this.form.state.invalid = (0, import_lodash_es7.some)(
|
|
926
926
|
this.form.fields.map((f) => f.state.invalid),
|
|
927
927
|
Boolean
|
|
928
928
|
);
|
|
929
|
-
this.form.state.isDirty = (0,
|
|
929
|
+
this.form.state.isDirty = (0, import_lodash_es7.some)(
|
|
930
930
|
this.form.fields.map((f) => f.state.isDirty),
|
|
931
931
|
Boolean
|
|
932
932
|
);
|
|
933
|
-
this.form.state.isValidating = (0,
|
|
933
|
+
this.form.state.isValidating = (0, import_lodash_es7.some)(
|
|
934
934
|
this.form.fields.map((f) => f.state.isValidating),
|
|
935
935
|
Boolean
|
|
936
936
|
);
|
|
@@ -974,14 +974,14 @@ var FieldModel = class {
|
|
|
974
974
|
this.bubbleState();
|
|
975
975
|
const { errors, warnings } = await this._runAsyncValidate();
|
|
976
976
|
if (errors?.length) {
|
|
977
|
-
this.state.errors = (0,
|
|
977
|
+
this.state.errors = (0, import_lodash_es7.groupBy)(errors, "name");
|
|
978
978
|
this.state.invalid = true;
|
|
979
979
|
} else {
|
|
980
980
|
this.state.errors = { [this.name]: [] };
|
|
981
981
|
this.state.invalid = false;
|
|
982
982
|
}
|
|
983
983
|
if (warnings?.length) {
|
|
984
|
-
this.state.warnings = (0,
|
|
984
|
+
this.state.warnings = (0, import_lodash_es7.groupBy)(warnings, "name");
|
|
985
985
|
} else {
|
|
986
986
|
this.state.warnings = { [this.name]: [] };
|
|
987
987
|
}
|
|
@@ -1000,7 +1000,7 @@ var FieldModel = class {
|
|
|
1000
1000
|
if (!feedbacks?.length) {
|
|
1001
1001
|
return {};
|
|
1002
1002
|
}
|
|
1003
|
-
const groupedFeedbacks = (0,
|
|
1003
|
+
const groupedFeedbacks = (0, import_lodash_es7.groupBy)(feedbacks, "level");
|
|
1004
1004
|
warnings = warnings.concat(groupedFeedbacks["warning" /* Warning */] || []);
|
|
1005
1005
|
errors = errors.concat(groupedFeedbacks["error" /* Error */] || []);
|
|
1006
1006
|
}
|
|
@@ -1464,7 +1464,7 @@ var FormModel = class {
|
|
|
1464
1464
|
return Promise.all(
|
|
1465
1465
|
paths.map(async (path) => {
|
|
1466
1466
|
const result = await validate({
|
|
1467
|
-
value: (0,
|
|
1467
|
+
value: (0, import_lodash_es8.get)(values, path),
|
|
1468
1468
|
formValues: values,
|
|
1469
1469
|
context: this.context,
|
|
1470
1470
|
name: path
|
|
@@ -1496,7 +1496,7 @@ var FormModel = class {
|
|
|
1496
1496
|
const feedbacksArr = await Promise.all(feedbacksArrPromises);
|
|
1497
1497
|
this.state.isValidating = false;
|
|
1498
1498
|
this.onValidateEmitter.fire(this.state);
|
|
1499
|
-
return (0,
|
|
1499
|
+
return (0, import_lodash_es8.flatten)(feedbacksArr).filter(Boolean);
|
|
1500
1500
|
}
|
|
1501
1501
|
alignStateWithFieldMap() {
|
|
1502
1502
|
const keys = Array.from(this.fieldMap.keys());
|
|
@@ -1564,7 +1564,7 @@ function Form(props) {
|
|
|
1564
1564
|
[]
|
|
1565
1565
|
);
|
|
1566
1566
|
const form = (0, import_react3.useMemo)(() => toForm(formModel), [formModel]);
|
|
1567
|
-
return /* @__PURE__ */ import_react3.default.createElement(FormModelContext.Provider, { value: formModel }, children ? (0,
|
|
1567
|
+
return /* @__PURE__ */ import_react3.default.createElement(FormModelContext.Provider, { value: formModel }, children ? (0, import_lodash_es9.isFunction)(children) ? /* @__PURE__ */ import_react3.default.createElement(FormContentRender, { form, render: children }) : import_react3.Children.only(children) : null);
|
|
1568
1568
|
}
|
|
1569
1569
|
|
|
1570
1570
|
// src/react/use-form.ts
|
|
@@ -1596,7 +1596,7 @@ function useWatch(name) {
|
|
|
1596
1596
|
|
|
1597
1597
|
// src/react/field-array.tsx
|
|
1598
1598
|
var React4 = __toESM(require("react"));
|
|
1599
|
-
var
|
|
1599
|
+
var import_lodash_es10 = require("lodash-es");
|
|
1600
1600
|
var import_utils16 = require("@flowgram.ai/utils");
|
|
1601
1601
|
var import_reactive4 = require("@flowgram.ai/reactive");
|
|
1602
1602
|
function FieldArray({
|
|
@@ -1652,10 +1652,10 @@ function FieldArray({
|
|
|
1652
1652
|
};
|
|
1653
1653
|
}, [fieldModel]);
|
|
1654
1654
|
const renderInner = () => {
|
|
1655
|
-
if (render && (0,
|
|
1655
|
+
if (render && (0, import_lodash_es10.isFunction)(render)) {
|
|
1656
1656
|
return render({ field, fieldState, formState });
|
|
1657
1657
|
}
|
|
1658
|
-
if ((0,
|
|
1658
|
+
if ((0, import_lodash_es10.isFunction)(children)) {
|
|
1659
1659
|
return children({ field, fieldState, formState });
|
|
1660
1660
|
}
|
|
1661
1661
|
return /* @__PURE__ */ React4.createElement(React4.Fragment, null, "Invalid Array render");
|