feature-form 0.0.35 → 0.0.36

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.
@@ -83,6 +83,28 @@ function createForm(config) {
83
83
  isValidating: featureState.createState(false),
84
84
  isSubmitted: featureState.createState(false),
85
85
  isSubmitting: featureState.createState(false),
86
+ init() {
87
+ for (const field of Object.values(this.fields)) {
88
+ field.listen(
89
+ (_0) => __async(this, [_0], function* ({ source }) {
90
+ if (source === "set") {
91
+ if (field.isSubmitted && field._config.reValidateMode.has(formField.FormFieldReValidateMode.OnChange) || !field.isSubmitted && field._config.validateMode.has(formField.FormFieldValidateMode.OnChange) || field._config.validateMode.has(formField.FormFieldValidateMode.OnTouched) && field.isTouched) {
92
+ yield field.validate();
93
+ }
94
+ }
95
+ }),
96
+ { key: "form_validate" }
97
+ );
98
+ field.status.listen(
99
+ () => __async(this, null, function* () {
100
+ yield form._revalidate(true);
101
+ }),
102
+ { key: "form_revalidate" }
103
+ );
104
+ }
105
+ delete this.init;
106
+ return this;
107
+ },
86
108
  _revalidate(cached = false) {
87
109
  return __async(this, null, function* () {
88
110
  const formFields = Object.values(this.fields);
@@ -98,7 +120,7 @@ function createForm(config) {
98
120
  submit() {
99
121
  return __async(this, arguments, function* (options = {}) {
100
122
  const {
101
- additionalData,
123
+ context,
102
124
  assignToInitial = false,
103
125
  onInvalidSubmit: _onInvalidSubmit,
104
126
  onValidSubmit: _onValidSubmit,
@@ -119,18 +141,18 @@ function createForm(config) {
119
141
  const submitCallbackPromises = [];
120
142
  if (data != null) {
121
143
  for (const callback of this._validSubmitCallbacks) {
122
- submitCallbackPromises.push(callback(data, additionalData));
144
+ submitCallbackPromises.push(callback(data, context));
123
145
  }
124
146
  if (typeof _onValidSubmit === "function") {
125
- submitCallbackPromises.push(_onValidSubmit(data, additionalData));
147
+ submitCallbackPromises.push(_onValidSubmit(data, context));
126
148
  }
127
149
  } else {
128
150
  const errors = this.getErrors();
129
151
  for (const callback of this._invalidSubmitCallbacks) {
130
- submitCallbackPromises.push(callback(errors, additionalData));
152
+ submitCallbackPromises.push(callback(errors, context));
131
153
  }
132
154
  if (typeof _onInvalidSubmit === "function") {
133
- submitCallbackPromises.push(_onInvalidSubmit(errors, additionalData));
155
+ submitCallbackPromises.push(_onInvalidSubmit(errors, context));
134
156
  }
135
157
  }
136
158
  let submitCallbackData = null;
@@ -206,25 +228,7 @@ function createForm(config) {
206
228
  this.isSubmitted.set(false);
207
229
  }
208
230
  };
209
- for (const field of Object.values(form.fields)) {
210
- field.listen(
211
- (_0) => __async(this, [_0], function* ({ source }) {
212
- if (source === "set") {
213
- if (field.isSubmitted && field._config.reValidateMode.has(formField.FormFieldReValidateMode.OnChange) || !field.isSubmitted && field._config.validateMode.has(formField.FormFieldValidateMode.OnChange) || field._config.validateMode.has(formField.FormFieldValidateMode.OnTouched) && field.isTouched) {
214
- yield field.validate();
215
- }
216
- }
217
- }),
218
- { key: "form" }
219
- );
220
- field.status.listen(
221
- () => __async(this, null, function* () {
222
- yield form._revalidate(true);
223
- }),
224
- { key: "form" }
225
- );
226
- }
227
- return form;
231
+ return form.init();
228
232
  }
229
233
 
230
234
  exports.createForm = createForm;
@@ -7,10 +7,10 @@ function createFormFieldValidationContext(formField) {
7
7
  name: formField.key
8
8
  },
9
9
  value: formField.get(),
10
- isValue: (v) => {
10
+ isValue(v) {
11
11
  return true;
12
12
  },
13
- hasError: () => {
13
+ hasError() {
14
14
  var _a;
15
15
  return ((_a = formField.status._nextValue) == null ? void 0 : _a.type) === "INVALID";
16
16
  },
@@ -37,16 +37,7 @@ function createFormField(initialValue, config) {
37
37
  collectErrorMode = "firstError",
38
38
  notifyOnStatusChange = true
39
39
  } = config;
40
- const formFieldState = featureState.createState(initialValue, { deferred: false });
41
- const status = createStatus.createStatus({ type: "UNVALIDATED" });
42
- if (notifyOnStatusChange) {
43
- status.listen(
44
- (data) => {
45
- formFieldState._notify({ additionalData: { source: "status", status: data.value } });
46
- },
47
- { key: "form-field" }
48
- );
49
- }
40
+ const baseState = featureState.createState(initialValue);
50
41
  const formFieldFeature = {
51
42
  _config: {
52
43
  editable,
@@ -54,14 +45,14 @@ function createFormField(initialValue, config) {
54
45
  reValidateMode,
55
46
  collectErrorMode
56
47
  },
57
- _intialValue: utils.deepCopy(formFieldState._v),
48
+ _intialValue: utils.deepCopy(baseState._v),
58
49
  _validator: validator,
59
50
  key,
60
51
  isTouched: false,
61
52
  isSubmitted: false,
62
53
  isSubmitting: false,
63
54
  isValidating: false,
64
- status,
55
+ status: createStatus.createStatus({ type: "UNVALIDATED" }),
65
56
  validate() {
66
57
  return __async(this, null, function* () {
67
58
  const validationContext = createFormFieldValidationContext.createFormFieldValidationContext(this);
@@ -87,16 +78,31 @@ function createFormField(initialValue, config) {
87
78
  this.isTouched = true;
88
79
  },
89
80
  reset() {
90
- this.set(this._intialValue, { additionalData: { source: "reset" } });
81
+ this.set(this._intialValue, { listenerContext: { source: "form-field_reset" } });
91
82
  this.isTouched = false;
92
83
  this.isSubmitted = false;
93
84
  this.isSubmitting = false;
94
85
  this.status.set({ type: "UNVALIDATED" });
95
86
  }
96
87
  };
97
- const _formField = Object.assign(formFieldState, formFieldFeature);
98
- _formField._features.push("form-field");
99
- return _formField;
88
+ const formField$1 = Object.assign(baseState, formFieldFeature, {
89
+ init({ notifyOnStatusChange: notifyOnStatusChange2 }) {
90
+ if (notifyOnStatusChange2) {
91
+ this.status.listen(
92
+ (data) => {
93
+ baseState._notify({
94
+ listenerContext: { source: "form-field_status-change", status: data.value }
95
+ });
96
+ },
97
+ { key: "form-field_status-change" }
98
+ );
99
+ }
100
+ delete this.init;
101
+ return this;
102
+ }
103
+ });
104
+ formField$1._features.push("form-field");
105
+ return formField$1.init({ notifyOnStatusChange });
100
106
  }
101
107
 
102
108
  exports.createFormField = createFormField;
@@ -3,7 +3,7 @@
3
3
  var featureState = require('feature-state');
4
4
 
5
5
  function createStatus(initialValue) {
6
- const formFieldStatusState = featureState.createState(initialValue, { deferred: false });
6
+ const baseState = featureState.createState(initialValue);
7
7
  const formFieldStatusFeature = {
8
8
  _nextValue: void 0,
9
9
  registerNextError(error) {
@@ -15,12 +15,9 @@ function createStatus(initialValue) {
15
15
  }
16
16
  }
17
17
  };
18
- const _formFieldStatus = Object.assign(
19
- formFieldStatusState,
20
- formFieldStatusFeature
21
- );
22
- _formFieldStatus._features.push("form-field-status");
23
- return _formFieldStatus;
18
+ const formFieldStatus = Object.assign(baseState, formFieldStatusFeature);
19
+ formFieldStatus._features.push("form-field-status");
20
+ return formFieldStatus;
24
21
  }
25
22
 
26
23
  exports.createStatus = createStatus;
@@ -81,6 +81,28 @@ function createForm(config) {
81
81
  isValidating: createState(false),
82
82
  isSubmitted: createState(false),
83
83
  isSubmitting: createState(false),
84
+ init() {
85
+ for (const field of Object.values(this.fields)) {
86
+ field.listen(
87
+ (_0) => __async(this, [_0], function* ({ source }) {
88
+ if (source === "set") {
89
+ if (field.isSubmitted && field._config.reValidateMode.has(FormFieldReValidateMode.OnChange) || !field.isSubmitted && field._config.validateMode.has(FormFieldValidateMode.OnChange) || field._config.validateMode.has(FormFieldValidateMode.OnTouched) && field.isTouched) {
90
+ yield field.validate();
91
+ }
92
+ }
93
+ }),
94
+ { key: "form_validate" }
95
+ );
96
+ field.status.listen(
97
+ () => __async(this, null, function* () {
98
+ yield form._revalidate(true);
99
+ }),
100
+ { key: "form_revalidate" }
101
+ );
102
+ }
103
+ delete this.init;
104
+ return this;
105
+ },
84
106
  _revalidate(cached = false) {
85
107
  return __async(this, null, function* () {
86
108
  const formFields = Object.values(this.fields);
@@ -96,7 +118,7 @@ function createForm(config) {
96
118
  submit() {
97
119
  return __async(this, arguments, function* (options = {}) {
98
120
  const {
99
- additionalData,
121
+ context,
100
122
  assignToInitial = false,
101
123
  onInvalidSubmit: _onInvalidSubmit,
102
124
  onValidSubmit: _onValidSubmit,
@@ -117,18 +139,18 @@ function createForm(config) {
117
139
  const submitCallbackPromises = [];
118
140
  if (data != null) {
119
141
  for (const callback of this._validSubmitCallbacks) {
120
- submitCallbackPromises.push(callback(data, additionalData));
142
+ submitCallbackPromises.push(callback(data, context));
121
143
  }
122
144
  if (typeof _onValidSubmit === "function") {
123
- submitCallbackPromises.push(_onValidSubmit(data, additionalData));
145
+ submitCallbackPromises.push(_onValidSubmit(data, context));
124
146
  }
125
147
  } else {
126
148
  const errors = this.getErrors();
127
149
  for (const callback of this._invalidSubmitCallbacks) {
128
- submitCallbackPromises.push(callback(errors, additionalData));
150
+ submitCallbackPromises.push(callback(errors, context));
129
151
  }
130
152
  if (typeof _onInvalidSubmit === "function") {
131
- submitCallbackPromises.push(_onInvalidSubmit(errors, additionalData));
153
+ submitCallbackPromises.push(_onInvalidSubmit(errors, context));
132
154
  }
133
155
  }
134
156
  let submitCallbackData = null;
@@ -204,25 +226,7 @@ function createForm(config) {
204
226
  this.isSubmitted.set(false);
205
227
  }
206
228
  };
207
- for (const field of Object.values(form.fields)) {
208
- field.listen(
209
- (_0) => __async(this, [_0], function* ({ source }) {
210
- if (source === "set") {
211
- if (field.isSubmitted && field._config.reValidateMode.has(FormFieldReValidateMode.OnChange) || !field.isSubmitted && field._config.validateMode.has(FormFieldValidateMode.OnChange) || field._config.validateMode.has(FormFieldValidateMode.OnTouched) && field.isTouched) {
212
- yield field.validate();
213
- }
214
- }
215
- }),
216
- { key: "form" }
217
- );
218
- field.status.listen(
219
- () => __async(this, null, function* () {
220
- yield form._revalidate(true);
221
- }),
222
- { key: "form" }
223
- );
224
- }
225
- return form;
229
+ return form.init();
226
230
  }
227
231
 
228
232
  export { createForm };
@@ -5,10 +5,10 @@ function createFormFieldValidationContext(formField) {
5
5
  name: formField.key
6
6
  },
7
7
  value: formField.get(),
8
- isValue: (v) => {
8
+ isValue(v) {
9
9
  return true;
10
10
  },
11
- hasError: () => {
11
+ hasError() {
12
12
  var _a;
13
13
  return ((_a = formField.status._nextValue) == null ? void 0 : _a.type) === "INVALID";
14
14
  },
@@ -35,16 +35,7 @@ function createFormField(initialValue, config) {
35
35
  collectErrorMode = "firstError",
36
36
  notifyOnStatusChange = true
37
37
  } = config;
38
- const formFieldState = createState(initialValue, { deferred: false });
39
- const status = createStatus({ type: "UNVALIDATED" });
40
- if (notifyOnStatusChange) {
41
- status.listen(
42
- (data) => {
43
- formFieldState._notify({ additionalData: { source: "status", status: data.value } });
44
- },
45
- { key: "form-field" }
46
- );
47
- }
38
+ const baseState = createState(initialValue);
48
39
  const formFieldFeature = {
49
40
  _config: {
50
41
  editable,
@@ -52,14 +43,14 @@ function createFormField(initialValue, config) {
52
43
  reValidateMode,
53
44
  collectErrorMode
54
45
  },
55
- _intialValue: deepCopy(formFieldState._v),
46
+ _intialValue: deepCopy(baseState._v),
56
47
  _validator: validator,
57
48
  key,
58
49
  isTouched: false,
59
50
  isSubmitted: false,
60
51
  isSubmitting: false,
61
52
  isValidating: false,
62
- status,
53
+ status: createStatus({ type: "UNVALIDATED" }),
63
54
  validate() {
64
55
  return __async(this, null, function* () {
65
56
  const validationContext = createFormFieldValidationContext(this);
@@ -85,16 +76,31 @@ function createFormField(initialValue, config) {
85
76
  this.isTouched = true;
86
77
  },
87
78
  reset() {
88
- this.set(this._intialValue, { additionalData: { source: "reset" } });
79
+ this.set(this._intialValue, { listenerContext: { source: "form-field_reset" } });
89
80
  this.isTouched = false;
90
81
  this.isSubmitted = false;
91
82
  this.isSubmitting = false;
92
83
  this.status.set({ type: "UNVALIDATED" });
93
84
  }
94
85
  };
95
- const _formField = Object.assign(formFieldState, formFieldFeature);
96
- _formField._features.push("form-field");
97
- return _formField;
86
+ const formField = Object.assign(baseState, formFieldFeature, {
87
+ init({ notifyOnStatusChange: notifyOnStatusChange2 }) {
88
+ if (notifyOnStatusChange2) {
89
+ this.status.listen(
90
+ (data) => {
91
+ baseState._notify({
92
+ listenerContext: { source: "form-field_status-change", status: data.value }
93
+ });
94
+ },
95
+ { key: "form-field_status-change" }
96
+ );
97
+ }
98
+ delete this.init;
99
+ return this;
100
+ }
101
+ });
102
+ formField._features.push("form-field");
103
+ return formField.init({ notifyOnStatusChange });
98
104
  }
99
105
 
100
106
  export { createFormField };
@@ -1,7 +1,7 @@
1
1
  import { createState } from 'feature-state';
2
2
 
3
3
  function createStatus(initialValue) {
4
- const formFieldStatusState = createState(initialValue, { deferred: false });
4
+ const baseState = createState(initialValue);
5
5
  const formFieldStatusFeature = {
6
6
  _nextValue: void 0,
7
7
  registerNextError(error) {
@@ -13,12 +13,9 @@ function createStatus(initialValue) {
13
13
  }
14
14
  }
15
15
  };
16
- const _formFieldStatus = Object.assign(
17
- formFieldStatusState,
18
- formFieldStatusFeature
19
- );
20
- _formFieldStatus._features.push("form-field-status");
21
- return _formFieldStatus;
16
+ const formFieldStatus = Object.assign(baseState, formFieldStatusFeature);
17
+ formFieldStatus._features.push("form-field-status");
18
+ return formFieldStatus;
22
19
  }
23
20
 
24
21
  export { createStatus };
@@ -1 +1 @@
1
- {"version":3,"file":"create-form.d.ts","sourceRoot":"","sources":["../../src/create-form.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EACN,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,SAAS,EAEd,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EAGxB,KAAK,sBAAsB,EAE3B,KAAK,oBAAoB,EACzB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,UAAU,CAAC,SAAS,SAAS,SAAS,EACrD,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC,GAClC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CAwNtB;AAED,MAAM,WAAW,iBAAiB,CAAC,SAAS,SAAS,SAAS,CAAE,SAAQ,OAAO,CAAC,WAAW,CAAC;IAC3F;;OAEG;IACH,MAAM,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC/C;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAClD;;OAEG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC,uBAAuB,CAAC,CAAC;IACtD;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,eAAe,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACpD,aAAa,CAAC,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,2BAA2B,CAAC,SAAS,SAAS,SAAS,IAAI;KACrE,GAAG,IAAI,MAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CACpE,CAAC;AAEF,MAAM,WAAW,0BAA0B,CAAC,MAAM,CAAE,SAAQ,OAAO,CAAC,qBAAqB,CAAC;IACzF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;CACxC"}
1
+ {"version":3,"file":"create-form.d.ts","sourceRoot":"","sources":["../../src/create-form.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EACN,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,KAAK,EACV,KAAK,WAAW,EAChB,KAAK,SAAS,EAEd,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EAGxB,KAAK,sBAAsB,EAE3B,KAAK,oBAAoB,EACzB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,UAAU,CAAC,SAAS,SAAS,SAAS,EACrD,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC,GAClC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC,CA6NtB;AAED,MAAM,WAAW,iBAAiB,CAAC,SAAS,SAAS,SAAS,CAAE,SAAQ,OAAO,CAAC,WAAW,CAAC;IAC3F;;OAEG;IACH,MAAM,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC/C;;OAEG;IACH,YAAY,CAAC,EAAE,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAClD;;OAEG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC,uBAAuB,CAAC,CAAC;IACtD;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,eAAe,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IACpD,aAAa,CAAC,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,2BAA2B,CAAC,SAAS,SAAS,SAAS,IAAI;KACrE,GAAG,IAAI,MAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CACpE,CAAC;AAEF,MAAM,WAAW,0BAA0B,CAAC,MAAM,CAAE,SAAQ,OAAO,CAAC,qBAAqB,CAAC;IACzF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;CACxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-form-field.d.ts","sourceRoot":"","sources":["../../../src/form-field/create-form-field.ts"],"names":[],"mappings":"AAGA,OAAO,EAGN,KAAK,UAAU,EACf,KAAK,qBAAqB,EAE1B,KAAK,mBAAmB,EACxB,MAAM,UAAU,CAAC;AAIlB,wBAAgB,eAAe,CAAC,MAAM,EACrC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,GACpC,UAAU,CAAC,MAAM,CAAC,CAsFpB;AAED,MAAM,WAAW,sBAAsB,CAAC,MAAM,CAAE,SAAQ,OAAO,CAAC,qBAAqB,CAAC;IACrF,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACxC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAC/B"}
1
+ {"version":3,"file":"create-form-field.d.ts","sourceRoot":"","sources":["../../../src/form-field/create-form-field.ts"],"names":[],"mappings":"AAIA,OAAO,EAGN,KAAK,UAAU,EACf,KAAK,qBAAqB,EAE1B,KAAK,mBAAmB,EACxB,MAAM,UAAU,CAAC;AAIlB,wBAAgB,eAAe,CAAC,MAAM,EACrC,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,MAAM,EAAE,sBAAsB,CAAC,MAAM,CAAC,GACpC,UAAU,CAAC,MAAM,CAAC,CA4FpB;AAED,MAAM,WAAW,sBAAsB,CAAC,MAAM,CAAE,SAAQ,OAAO,CAAC,qBAAqB,CAAC;IACrF,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACxC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAC/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-status.d.ts","sourceRoot":"","sources":["../../../src/form-field/create-status.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,MAAM,UAAU,CAAC;AAElB,wBAAgB,YAAY,CAAC,YAAY,EAAE,qBAAqB,GAAG,gBAAgB,CAsBlF"}
1
+ {"version":3,"file":"create-status.d.ts","sourceRoot":"","sources":["../../../src/form-field/create-status.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,MAAM,UAAU,CAAC;AAElB,wBAAgB,YAAY,CAAC,YAAY,EAAE,qBAAqB,GAAG,gBAAgB,CAmBlF"}
@@ -27,15 +27,15 @@ export interface TSubmitOptions<GFormData extends TFormData, GFeatures extends T
27
27
  onValidSubmit?: TValidSubmitCallback<GFormData>;
28
28
  onInvalidSubmit?: TInvalidSubmitCallback<GFormData>;
29
29
  postSubmitCallback?: TPostSubmitCallback<GFormData, GFeatures>;
30
- additionalData?: TAdditionalSubmitCallbackData;
30
+ context?: TSubmitContext;
31
31
  assignToInitial?: boolean;
32
32
  }
33
- export type TValidSubmitCallback<GFormData extends TFormData> = (formData: Readonly<GFormData>, additionalData?: TAdditionalSubmitCallbackData) => TSubmitCallbackResponse;
34
- export type TInvalidSubmitCallback<GFormData extends TFormData> = (errors: TInvalidFormFieldErrors<GFormData>, additionalData?: TAdditionalSubmitCallbackData) => TSubmitCallbackResponse;
33
+ export type TValidSubmitCallback<GFormData extends TFormData> = (formData: Readonly<GFormData>, context?: TSubmitContext) => TSubmitCallbackResponse;
34
+ export type TInvalidSubmitCallback<GFormData extends TFormData> = (errors: TInvalidFormFieldErrors<GFormData>, context?: TSubmitContext) => TSubmitCallbackResponse;
35
35
  export type TSubmitCallbackResponse = Promise<void | TSubmitData> | void | TSubmitData;
36
36
  export type TSubmitData = Record<string, unknown>;
37
37
  export type TPostSubmitCallback<GFormData extends TFormData, GFeatures extends TFeatureDefinition[]> = (form: TForm<GFormData, GFeatures>, submitData: TSubmitData) => void;
38
- export interface TAdditionalSubmitCallbackData {
38
+ export interface TSubmitContext {
39
39
  [key: string]: unknown;
40
40
  event?: unknown;
41
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/types/form.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/types/form.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "feature-form",
3
- "version": "0.0.35",
3
+ "version": "0.0.36",
4
4
  "private": false,
5
5
  "description": "Straightforward, typesafe, and feature-based form library for ReactJs",
6
6
  "keywords": [],
@@ -23,14 +23,14 @@
23
23
  "README.md"
24
24
  ],
25
25
  "dependencies": {
26
- "@blgc/types": "0.0.9",
27
- "@blgc/utils": "0.0.31",
28
- "validation-adapter": "0.0.16",
29
- "feature-state": "0.0.40"
26
+ "@blgc/types": "0.0.13",
27
+ "@blgc/utils": "0.0.34",
28
+ "feature-state": "0.0.43",
29
+ "validation-adapter": "0.0.17"
30
30
  },
31
31
  "devDependencies": {
32
- "@types/node": "^22.10.2",
33
- "@blgc/config": "0.0.28"
32
+ "@types/node": "^22.13.5",
33
+ "@blgc/config": "0.0.30"
34
34
  },
35
35
  "size-limit": [
36
36
  {
@@ -40,7 +40,7 @@
40
40
  "scripts": {
41
41
  "build": "shx rm -rf dist && chmod +x ../../scripts/cli.sh && ../../scripts/cli.sh bundle",
42
42
  "build:prod": "pnpm build -t prod",
43
- "clean": "shx rm -rf dist && shx rm -rf node_modules && shx rm -rf .turbo",
43
+ "clean": "shx rm -rf dist && shx rm -rf .turbo && shx rm -rf node_modules",
44
44
  "install:clean": "pnpm run clean && pnpm install",
45
45
  "lint": "eslint . --fix",
46
46
  "publish:patch": "pnpm build:prod && pnpm version patch && pnpm publish --no-git-checks --access=public",