@tsed/react-formio 1.13.3 → 1.13.4
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/components/form/form.stories.d.ts +25 -0
- package/dist/components/form/useForm.hook.d.ts +5 -1
- package/dist/index.js +33 -9
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +41 -17
- package/dist/index.modern.js.map +1 -1
- package/package.json +4 -4
- package/src/components/form/form.stories.tsx +58 -1
- package/src/components/form/useForm.hook.ts +37 -8
|
@@ -6417,3 +6417,28 @@ export declare const ReadOnly: {
|
|
|
6417
6417
|
};
|
|
6418
6418
|
};
|
|
6419
6419
|
};
|
|
6420
|
+
export declare const OnChange: {
|
|
6421
|
+
(args: any): JSX.Element;
|
|
6422
|
+
args: {
|
|
6423
|
+
form: {
|
|
6424
|
+
type: string;
|
|
6425
|
+
display: string;
|
|
6426
|
+
tags: never[];
|
|
6427
|
+
components: {
|
|
6428
|
+
label: string;
|
|
6429
|
+
widget: {
|
|
6430
|
+
type: string;
|
|
6431
|
+
};
|
|
6432
|
+
errorLabel: string;
|
|
6433
|
+
key: string;
|
|
6434
|
+
inputType: string;
|
|
6435
|
+
type: string;
|
|
6436
|
+
id: string;
|
|
6437
|
+
defaultValue: string;
|
|
6438
|
+
validate: {
|
|
6439
|
+
required: boolean;
|
|
6440
|
+
};
|
|
6441
|
+
}[];
|
|
6442
|
+
};
|
|
6443
|
+
};
|
|
6444
|
+
};
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
import { ExtendedComponentSchema, Form } from "formiojs";
|
|
3
3
|
import { FormOptions, FormSchema, Submission } from "../../interfaces";
|
|
4
4
|
export interface ChangedSubmission<T = any> extends Submission<T> {
|
|
5
|
-
changed:
|
|
5
|
+
changed: {
|
|
6
|
+
component: ExtendedComponentSchema;
|
|
7
|
+
instance: Form;
|
|
8
|
+
value: any;
|
|
9
|
+
} & Record<string, any>;
|
|
6
10
|
isValid: boolean;
|
|
7
11
|
}
|
|
8
12
|
export interface FormPageChangeProps<Data = any> {
|
package/dist/index.js
CHANGED
|
@@ -9,7 +9,6 @@ var Choices = require('choices.js');
|
|
|
9
9
|
var PropTypes = require('prop-types');
|
|
10
10
|
var reactTable = require('react-table');
|
|
11
11
|
var AllComponents = require('formiojs/components');
|
|
12
|
-
var noop$1 = require('lodash');
|
|
13
12
|
var cloneDeep = require('lodash/cloneDeep');
|
|
14
13
|
var isEqual = require('lodash/isEqual');
|
|
15
14
|
var FormioUtils = require('formiojs/utils');
|
|
@@ -18,6 +17,7 @@ var FormioFormBuilder = require('formiojs/FormBuilder');
|
|
|
18
17
|
var Tooltip = require('tooltip.js');
|
|
19
18
|
var uniq = require('lodash/uniq');
|
|
20
19
|
var camelCase = require('lodash/camelCase');
|
|
20
|
+
var noop$1 = require('lodash');
|
|
21
21
|
var ReactDOM = require('react-dom');
|
|
22
22
|
var reduxUtils = require('@tsed/redux-utils');
|
|
23
23
|
var get = require('lodash/get');
|
|
@@ -33,7 +33,6 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
|
33
33
|
var Choices__default = /*#__PURE__*/_interopDefaultLegacy(Choices);
|
|
34
34
|
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
35
35
|
var AllComponents__default = /*#__PURE__*/_interopDefaultLegacy(AllComponents);
|
|
36
|
-
var noop__default$1 = /*#__PURE__*/_interopDefaultLegacy(noop$1);
|
|
37
36
|
var cloneDeep__default = /*#__PURE__*/_interopDefaultLegacy(cloneDeep);
|
|
38
37
|
var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
|
|
39
38
|
var FormioUtils__default = /*#__PURE__*/_interopDefaultLegacy(FormioUtils);
|
|
@@ -42,6 +41,7 @@ var FormioFormBuilder__default = /*#__PURE__*/_interopDefaultLegacy(FormioFormBu
|
|
|
42
41
|
var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
|
|
43
42
|
var uniq__default = /*#__PURE__*/_interopDefaultLegacy(uniq);
|
|
44
43
|
var camelCase__default = /*#__PURE__*/_interopDefaultLegacy(camelCase);
|
|
44
|
+
var noop__default$1 = /*#__PURE__*/_interopDefaultLegacy(noop$1);
|
|
45
45
|
var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
|
46
46
|
var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
|
|
47
47
|
|
|
@@ -1004,9 +1004,14 @@ function _catch(body, recover) {
|
|
|
1004
1004
|
return result;
|
|
1005
1005
|
}
|
|
1006
1006
|
|
|
1007
|
-
function
|
|
1007
|
+
function useEvent(event, callback, events) {
|
|
1008
1008
|
React.useEffect(function () {
|
|
1009
|
-
|
|
1009
|
+
if (callback) {
|
|
1010
|
+
// if (event === "onChange") {
|
|
1011
|
+
// callback = callLast(callback, 200);
|
|
1012
|
+
// }
|
|
1013
|
+
events.set(event, callback);
|
|
1014
|
+
}
|
|
1010
1015
|
}, [callback, event, events]);
|
|
1011
1016
|
}
|
|
1012
1017
|
|
|
@@ -1024,7 +1029,24 @@ function useEvents(funcs) {
|
|
|
1024
1029
|
}
|
|
1025
1030
|
};
|
|
1026
1031
|
|
|
1027
|
-
|
|
1032
|
+
useEvent("onBlur", funcs["onBlur"], events.current);
|
|
1033
|
+
useEvent("onPrevPage", funcs["onPrevPage"], events.current);
|
|
1034
|
+
useEvent("onNextPage", funcs["onNextPage"], events.current);
|
|
1035
|
+
useEvent("onCancel", funcs["onCancel"], events.current);
|
|
1036
|
+
useEvent("onChange", funcs["onChange"], events.current);
|
|
1037
|
+
useEvent("onCustomEvent", funcs["onCustomEvent"], events.current);
|
|
1038
|
+
useEvent("onComponentChange", funcs["onComponentChange"], events.current);
|
|
1039
|
+
useEvent("onSubmit", funcs["onSubmit"], events.current);
|
|
1040
|
+
useEvent("onAsyncSubmit", funcs["onAsyncSubmit"], events.current);
|
|
1041
|
+
useEvent("onSubmitDone", funcs["onSubmitDone"], events.current);
|
|
1042
|
+
useEvent("onFormLoad", funcs["onFormLoad"], events.current);
|
|
1043
|
+
useEvent("onError", funcs["onError"], events.current);
|
|
1044
|
+
useEvent("onRender", funcs["onRender"], events.current);
|
|
1045
|
+
useEvent("onAttach", funcs["onAttach"], events.current);
|
|
1046
|
+
useEvent("onBuild", funcs["onBuild"], events.current);
|
|
1047
|
+
useEvent("onFocus", funcs["onFocus"], events.current);
|
|
1048
|
+
useEvent("onBlur", funcs["onBlur"], events.current);
|
|
1049
|
+
useEvent("onInitialized", funcs["onInitialized"], events.current);
|
|
1028
1050
|
return {
|
|
1029
1051
|
events: events,
|
|
1030
1052
|
emit: emit,
|
|
@@ -1093,10 +1115,8 @@ function useForm(props) {
|
|
|
1093
1115
|
if (event.startsWith("formio.")) {
|
|
1094
1116
|
var eventName = "on" + event.charAt(7).toUpperCase() + event.slice(8);
|
|
1095
1117
|
|
|
1096
|
-
if (eventName === "onChange") {
|
|
1097
|
-
|
|
1098
|
-
return;
|
|
1099
|
-
}
|
|
1118
|
+
if (eventName === "onChange" && !args[0].changed) {
|
|
1119
|
+
return;
|
|
1100
1120
|
}
|
|
1101
1121
|
|
|
1102
1122
|
emit.apply(void 0, [eventName].concat(args, [instance.current]));
|
|
@@ -1119,6 +1139,10 @@ function useForm(props) {
|
|
|
1119
1139
|
React.useEffect(function () {
|
|
1120
1140
|
if (instance.current) {
|
|
1121
1141
|
instance.current.ready.then(function (formio) {
|
|
1142
|
+
if (isEqual__default['default'](formio.submission.data, submission == null ? void 0 : submission.data)) {
|
|
1143
|
+
return;
|
|
1144
|
+
}
|
|
1145
|
+
|
|
1122
1146
|
submission && (formio.submission = cloneDeep__default['default'](submission));
|
|
1123
1147
|
});
|
|
1124
1148
|
}
|