@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.
@@ -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: any;
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 useDebounce(event, callback, events) {
1007
+ function useEvent(event, callback, events) {
1008
1008
  React.useEffect(function () {
1009
- callback && events.set(event, callLast(callback, 100));
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
- useDebounce("onChange", funcs.onChange, events.current);
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
- if (isEqual__default['default'](noop$1.get(submission, "data"), args[0].data)) {
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
  }