@tanstack/form-core 0.0.8 → 0.0.11

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.
@@ -12,6 +12,7 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
+ var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
15
16
  var store = require('@tanstack/store');
16
17
  var utils = require('./utils.js');
17
18
 
@@ -37,14 +38,24 @@ function getDefaultFormState(defaultState) {
37
38
 
38
39
  class FormApi {
39
40
  // // This carries the context for nested fields
41
+ // Do not use __state directly, as it is not reactive.
42
+ // Please use form.useStore() utility to subscribe to state
40
43
  constructor(_opts) {
41
44
  var _opts$defaultValues, _opts$defaultState;
42
45
 
43
- this.options = {};
44
- this.fieldInfo = {};
45
- this.validationMeta = {};
46
+ _rollupPluginBabelHelpers.defineProperty(this, "options", {});
46
47
 
47
- this.update = options => {
48
+ _rollupPluginBabelHelpers.defineProperty(this, "store", void 0);
49
+
50
+ _rollupPluginBabelHelpers.defineProperty(this, "state", void 0);
51
+
52
+ _rollupPluginBabelHelpers.defineProperty(this, "fieldInfo", {});
53
+
54
+ _rollupPluginBabelHelpers.defineProperty(this, "fieldName", void 0);
55
+
56
+ _rollupPluginBabelHelpers.defineProperty(this, "validationMeta", {});
57
+
58
+ _rollupPluginBabelHelpers.defineProperty(this, "update", options => {
48
59
  if (!options) return;
49
60
  this.store.batch(() => {
50
61
  if (options.defaultState && options.defaultState !== this.options.defaultState) {
@@ -54,17 +65,15 @@ class FormApi {
54
65
  }
55
66
 
56
67
  if (options.defaultValues !== this.options.defaultValues) {
57
- this.store.setState(prev => ({ ...prev,
58
- values: options.defaultValues
59
- }));
68
+ this.store.setState(() => getDefaultFormState(options.defaultValues));
60
69
  }
61
70
  });
62
71
  this.options = options;
63
- };
72
+ });
64
73
 
65
- this.reset = () => this.store.setState(() => getDefaultFormState(this.options.defaultValues));
74
+ _rollupPluginBabelHelpers.defineProperty(this, "reset", () => this.store.setState(() => getDefaultFormState(this.options.defaultValues)));
66
75
 
67
- this.validateAllFields = async () => {
76
+ _rollupPluginBabelHelpers.defineProperty(this, "validateAllFields", async cause => {
68
77
  const fieldValidationPromises = [];
69
78
  this.store.batch(() => {
70
79
  void Object.values(this.fieldInfo).forEach(field => {
@@ -76,71 +85,15 @@ class FormApi {
76
85
  isTouched: true
77
86
  })); // Validate the field
78
87
 
79
- if (instance.options.validate) {
80
- fieldValidationPromises.push(instance.validate());
81
- }
88
+ fieldValidationPromises.push(Promise.resolve().then(() => instance.validate(cause)));
82
89
  }
83
90
  });
84
91
  });
85
92
  });
86
93
  return Promise.all(fieldValidationPromises);
87
- };
88
-
89
- this.validateForm = async () => {
90
- const {
91
- validate
92
- } = this.options;
93
-
94
- if (!validate) {
95
- return;
96
- } // Use the formValidationCount for all field instances to
97
- // track freshness of the validation
98
-
99
-
100
- this.store.setState(prev => ({ ...prev,
101
- isValidating: true,
102
- formValidationCount: prev.formValidationCount + 1
103
- }));
104
- const formValidationCount = this.state.formValidationCount;
105
-
106
- const checkLatest = () => formValidationCount === this.state.formValidationCount;
107
-
108
- if (!this.validationMeta.validationPromise) {
109
- this.validationMeta.validationPromise = new Promise((resolve, reject) => {
110
- this.validationMeta.validationResolve = resolve;
111
- this.validationMeta.validationReject = reject;
112
- });
113
- }
114
-
115
- const doValidation = async () => {
116
- try {
117
- const error = await validate(this.state.values, this);
118
-
119
- if (checkLatest()) {
120
- var _this$validationMeta$, _this$validationMeta;
121
-
122
- this.store.setState(prev => ({ ...prev,
123
- isValidating: false,
124
- error: error ? typeof error === 'string' ? error : 'Invalid Form Values' : null
125
- }));
126
- (_this$validationMeta$ = (_this$validationMeta = this.validationMeta).validationResolve) == null ? void 0 : _this$validationMeta$.call(_this$validationMeta, error);
127
- }
128
- } catch (err) {
129
- if (checkLatest()) {
130
- var _this$validationMeta$2, _this$validationMeta2;
131
-
132
- (_this$validationMeta$2 = (_this$validationMeta2 = this.validationMeta).validationReject) == null ? void 0 : _this$validationMeta$2.call(_this$validationMeta2, err);
133
- }
134
- } finally {
135
- delete this.validationMeta.validationPromise;
136
- }
137
- };
138
-
139
- doValidation();
140
- return this.validationMeta.validationPromise;
141
- };
94
+ });
142
95
 
143
- this.handleSubmit = async e => {
96
+ _rollupPluginBabelHelpers.defineProperty(this, "handleSubmit", async e => {
144
97
  e.preventDefault();
145
98
  e.stopPropagation(); // Check to see that the form and all fields have been touched
146
99
  // If they have not, touch them all and run validation
@@ -166,32 +119,31 @@ class FormApi {
166
119
  }; // Validate all fields
167
120
 
168
121
 
169
- await this.validateAllFields(); // Fields are invalid, do not submit
122
+ await this.validateAllFields('submit'); // Fields are invalid, do not submit
170
123
 
171
124
  if (!this.state.isFieldsValid) {
172
- var _this$options$onInval, _this$options;
125
+ var _this$options$onSubmi, _this$options;
173
126
 
174
127
  done();
175
- (_this$options$onInval = (_this$options = this.options).onInvalidSubmit) == null ? void 0 : _this$options$onInval.call(_this$options, this.state.values, this);
128
+ (_this$options$onSubmi = (_this$options = this.options).onSubmitInvalid) == null ? void 0 : _this$options$onSubmi.call(_this$options, this.state.values, this);
176
129
  return;
177
130
  } // Run validation for the form
131
+ // await this.validateForm()
178
132
 
179
133
 
180
- await this.validateForm();
181
-
182
134
  if (!this.state.isValid) {
183
- var _this$options$onInval2, _this$options2;
135
+ var _this$options$onSubmi2, _this$options2;
184
136
 
185
137
  done();
186
- (_this$options$onInval2 = (_this$options2 = this.options).onInvalidSubmit) == null ? void 0 : _this$options$onInval2.call(_this$options2, this.state.values, this);
138
+ (_this$options$onSubmi2 = (_this$options2 = this.options).onSubmitInvalid) == null ? void 0 : _this$options$onSubmi2.call(_this$options2, this.state.values, this);
187
139
  return;
188
140
  }
189
141
 
190
142
  try {
191
- var _this$options$onSubmi, _this$options3;
143
+ var _this$options$onSubmi3, _this$options3;
192
144
 
193
145
  // Run the submit code
194
- await ((_this$options$onSubmi = (_this$options3 = this.options).onSubmit) == null ? void 0 : _this$options$onSubmi.call(_this$options3, this.state.values, this));
146
+ await ((_this$options$onSubmi3 = (_this$options3 = this.options).onSubmit) == null ? void 0 : _this$options$onSubmi3.call(_this$options3, this.state.values, this));
195
147
  this.store.batch(() => {
196
148
  this.store.setState(prev => ({ ...prev,
197
149
  isSubmitted: true
@@ -202,23 +154,23 @@ class FormApi {
202
154
  done();
203
155
  throw err;
204
156
  }
205
- };
157
+ });
206
158
 
207
- this.getFieldValue = field => utils.getBy(this.state.values, field);
159
+ _rollupPluginBabelHelpers.defineProperty(this, "getFieldValue", field => utils.getBy(this.state.values, field));
208
160
 
209
- this.getFieldMeta = field => {
161
+ _rollupPluginBabelHelpers.defineProperty(this, "getFieldMeta", field => {
210
162
  return this.state.fieldMeta[field];
211
- };
163
+ });
212
164
 
213
- this.getFieldInfo = field => {
165
+ _rollupPluginBabelHelpers.defineProperty(this, "getFieldInfo", field => {
214
166
  var _this$fieldInfo;
215
167
 
216
168
  return (_this$fieldInfo = this.fieldInfo)[field] || (_this$fieldInfo[field] = {
217
169
  instances: {}
218
170
  });
219
- };
171
+ });
220
172
 
221
- this.setFieldMeta = (field, updater) => {
173
+ _rollupPluginBabelHelpers.defineProperty(this, "setFieldMeta", (field, updater) => {
222
174
  this.store.setState(prev => {
223
175
  return { ...prev,
224
176
  fieldMeta: { ...prev.fieldMeta,
@@ -226,86 +178,76 @@ class FormApi {
226
178
  }
227
179
  };
228
180
  });
229
- };
230
-
231
- this.setFieldValue = (field, updater, opts) => {
232
- var _opts$touch;
181
+ });
233
182
 
234
- const touch = (_opts$touch = opts == null ? void 0 : opts.touch) != null ? _opts$touch : true;
183
+ _rollupPluginBabelHelpers.defineProperty(this, "setFieldValue", (field, updater, opts) => {
184
+ const touch = opts == null ? void 0 : opts.touch;
235
185
  this.store.batch(() => {
236
- this.store.setState(prev => {
237
- return { ...prev,
238
- values: utils.setBy(prev.values, field, updater)
239
- };
240
- });
241
-
242
186
  if (touch) {
243
187
  this.setFieldMeta(field, prev => ({ ...prev,
244
188
  isTouched: true
245
189
  }));
246
190
  }
191
+
192
+ this.store.setState(prev => {
193
+ return { ...prev,
194
+ values: utils.setBy(prev.values, field, updater)
195
+ };
196
+ });
247
197
  });
248
- };
198
+ });
249
199
 
250
- this.pushFieldValue = (field, value, opts) => {
200
+ _rollupPluginBabelHelpers.defineProperty(this, "pushFieldValue", (field, value, opts) => {
251
201
  return this.setFieldValue(field, prev => [...(Array.isArray(prev) ? prev : []), value], opts);
252
- };
202
+ });
253
203
 
254
- this.insertFieldValue = (field, index, value, opts) => {
204
+ _rollupPluginBabelHelpers.defineProperty(this, "insertFieldValue", (field, index, value, opts) => {
255
205
  this.setFieldValue(field, prev => {
256
- // invariant( // TODO: bring in invariant
257
- // Array.isArray(prev),
258
- // `Cannot insert a field value into a non-array field. Check that this field's existing value is an array: ${field}.`
259
- // )
260
206
  return prev.map((d, i) => i === index ? value : d);
261
207
  }, opts);
262
- };
208
+ });
263
209
 
264
- this.removeFieldValue = (field, index, opts) => {
210
+ _rollupPluginBabelHelpers.defineProperty(this, "removeFieldValue", (field, index, opts) => {
265
211
  this.setFieldValue(field, prev => {
266
- // invariant( // TODO: bring in invariant
267
- // Array.isArray(prev),
268
- // `Cannot insert a field value into a non-array field. Check that this field's existing value is an array: ${field}.`
269
- // )
270
212
  return prev.filter((_d, i) => i !== index);
271
213
  }, opts);
272
- };
214
+ });
273
215
 
274
- this.swapFieldValues = (field, index1, index2) => {
216
+ _rollupPluginBabelHelpers.defineProperty(this, "swapFieldValues", (field, index1, index2) => {
275
217
  this.setFieldValue(field, prev => {
276
218
  const prev1 = prev[index1];
277
219
  const prev2 = prev[index2];
278
220
  return utils.setBy(utils.setBy(prev, [index1], prev2), [index2], prev1);
279
221
  });
280
- };
222
+ });
281
223
 
282
224
  this.store = new store.Store(getDefaultFormState({ ...(_opts == null ? void 0 : _opts.defaultState),
283
225
  values: (_opts$defaultValues = _opts == null ? void 0 : _opts.defaultValues) != null ? _opts$defaultValues : _opts == null ? void 0 : (_opts$defaultState = _opts.defaultState) == null ? void 0 : _opts$defaultState.values,
284
- isFormValid: !(_opts != null && _opts.validate)
226
+ isFormValid: true
285
227
  }), {
286
- onUpdate: next => {
287
- // Computed state
288
- const fieldMetaValues = Object.values(next.fieldMeta);
228
+ onUpdate: () => {
229
+ let {
230
+ state
231
+ } = this.store; // Computed state
232
+
233
+ const fieldMetaValues = Object.values(state.fieldMeta);
289
234
  const isFieldsValidating = fieldMetaValues.some(field => field == null ? void 0 : field.isValidating);
290
235
  const isFieldsValid = !fieldMetaValues.some(field => field == null ? void 0 : field.error);
291
236
  const isTouched = fieldMetaValues.some(field => field == null ? void 0 : field.isTouched);
292
- const isValidating = isFieldsValidating || next.isFormValidating;
293
- const isFormValid = !next.formError;
237
+ const isValidating = isFieldsValidating || state.isFormValidating;
238
+ const isFormValid = !state.formError;
294
239
  const isValid = isFieldsValid && isFormValid;
295
- const canSubmit = next.submissionAttempts === 0 && !isTouched || !isValidating && !next.isSubmitting && isValid;
296
- next = { ...next,
240
+ const canSubmit = state.submissionAttempts === 0 && !isTouched || !isValidating && !state.isSubmitting && isValid;
241
+ state = { ...state,
297
242
  isFieldsValidating,
298
243
  isFieldsValid,
299
244
  isFormValid,
300
245
  isValid,
301
246
  canSubmit,
302
247
  isTouched
303
- }; // Create a shortcut for the state
304
- // Write it back to the store
305
-
306
- this.store.state = next;
307
- this.state = next;
308
- console.log(this.state);
248
+ };
249
+ this.store.state = state;
250
+ this.state = state;
309
251
  }
310
252
  });
311
253
  this.state = this.store.state;
@@ -1 +1 @@
1
- {"version":3,"file":"FormApi.js","sources":["../../src/FormApi.ts"],"sourcesContent":["import { Store } from '@tanstack/store'\n//\nimport type { DeepKeys, DeepValue, Updater } from './utils'\nimport { functionalUpdate, getBy, setBy } from './utils'\nimport type { FieldApi, FieldMeta, ValidationCause } from './FieldApi'\n\nexport interface Register {\n // FormSubmitEvent\n}\n\nexport type FormSubmitEvent = Register extends {\n FormSubmitEvent: infer E\n}\n ? E\n : Event\n\nexport type FormOptions<TData> = {\n defaultValues?: TData\n defaultState?: Partial<FormState<TData>>\n onSubmit?: (values: TData, formApi: FormApi<TData>) => void\n onInvalidSubmit?: (values: TData, formApi: FormApi<TData>) => void\n validate?: (values: TData, formApi: FormApi<TData>) => Promise<any>\n defaultValidatePristine?: boolean\n defaultValidateOn?: ValidationCause\n defaultValidateAsyncOn?: ValidationCause\n defaultValidateAsyncDebounceMs?: number\n}\n\nexport type FieldInfo<TFormData> = {\n instances: Record<string, FieldApi<any, TFormData>>\n} & ValidationMeta\n\nexport type ValidationMeta = {\n validationCount?: number\n validationAsyncCount?: number\n validationPromise?: Promise<ValidationError>\n validationResolve?: (error: ValidationError) => void\n validationReject?: (error: unknown) => void\n}\n\nexport type ValidationError = undefined | false | null | string\n\nexport type FormState<TData> = {\n values: TData\n // Form Validation\n isFormValidating: boolean\n formValidationCount: number\n isFormValid: boolean\n formError?: ValidationError\n // Fields\n fieldMeta: Record<DeepKeys<TData>, FieldMeta>\n isFieldsValidating: boolean\n isFieldsValid: boolean\n isSubmitting: boolean\n // General\n isTouched: boolean\n isSubmitted: boolean\n isValidating: boolean\n isValid: boolean\n canSubmit: boolean\n submissionAttempts: number\n}\n\nfunction getDefaultFormState<TData>(\n defaultState: Partial<FormState<TData>>,\n): FormState<TData> {\n return {\n values: {} as any,\n fieldMeta: {} as any,\n canSubmit: true,\n isFieldsValid: false,\n isFieldsValidating: false,\n isFormValid: false,\n isFormValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isTouched: false,\n isValid: false,\n isValidating: false,\n submissionAttempts: 0,\n formValidationCount: 0,\n ...defaultState,\n }\n}\n\nexport class FormApi<TFormData> {\n // // This carries the context for nested fields\n options: FormOptions<TFormData> = {}\n store!: Store<FormState<TFormData>>\n // Do not use __state directly, as it is not reactive.\n // Please use form.useStore() utility to subscribe to state\n state!: FormState<TFormData>\n fieldInfo: Record<DeepKeys<TFormData>, FieldInfo<TFormData>> = {} as any\n fieldName?: string\n validationMeta: ValidationMeta = {}\n\n constructor(opts?: FormOptions<TFormData>) {\n this.store = new Store<FormState<TFormData>>(\n getDefaultFormState({\n ...opts?.defaultState,\n values: opts?.defaultValues ?? opts?.defaultState?.values,\n isFormValid: !opts?.validate,\n }),\n {\n onUpdate: (next) => {\n // Computed state\n const fieldMetaValues = Object.values(next.fieldMeta) as (\n | FieldMeta\n | undefined\n )[]\n\n const isFieldsValidating = fieldMetaValues.some(\n (field) => field?.isValidating,\n )\n\n const isFieldsValid = !fieldMetaValues.some((field) => field?.error)\n\n const isTouched = fieldMetaValues.some((field) => field?.isTouched)\n\n const isValidating = isFieldsValidating || next.isFormValidating\n const isFormValid = !next.formError\n const isValid = isFieldsValid && isFormValid\n const canSubmit =\n (next.submissionAttempts === 0 && !isTouched) ||\n (!isValidating && !next.isSubmitting && isValid)\n\n next = {\n ...next,\n isFieldsValidating,\n isFieldsValid,\n isFormValid,\n isValid,\n canSubmit,\n isTouched,\n }\n\n // Create a shortcut for the state\n // Write it back to the store\n this.store.state = next\n this.state = next\n console.log(this.state)\n },\n },\n )\n\n this.state = this.store.state\n\n this.update(opts || {})\n }\n\n update = (options?: FormOptions<TFormData>) => {\n if (!options) return\n\n this.store.batch(() => {\n if (\n options.defaultState &&\n options.defaultState !== this.options.defaultState\n ) {\n this.store.setState((prev) => ({\n ...prev,\n ...options.defaultState,\n }))\n }\n\n if (options.defaultValues !== this.options.defaultValues) {\n this.store.setState((prev) => ({\n ...prev,\n values: options.defaultValues as TFormData,\n }))\n }\n })\n\n this.options = options\n }\n\n reset = () =>\n this.store.setState(() => getDefaultFormState(this.options.defaultValues!))\n\n validateAllFields = async () => {\n const fieldValidationPromises: Promise<ValidationError>[] = [] as any\n\n this.store.batch(() => {\n void (Object.values(this.fieldInfo) as FieldInfo<any>[]).forEach(\n (field) => {\n Object.values(field.instances).forEach((instance) => {\n // If any fields are not touched\n if (!instance.state.meta.isTouched) {\n // Mark them as touched\n instance.setMeta((prev) => ({ ...prev, isTouched: true }))\n // Validate the field\n if (instance.options.validate) {\n fieldValidationPromises.push(instance.validate())\n }\n }\n })\n },\n )\n })\n\n return Promise.all(fieldValidationPromises)\n }\n\n validateForm = async () => {\n const { validate } = this.options\n\n if (!validate) {\n return\n }\n\n // Use the formValidationCount for all field instances to\n // track freshness of the validation\n this.store.setState((prev) => ({\n ...prev,\n isValidating: true,\n formValidationCount: prev.formValidationCount + 1,\n }))\n\n const formValidationCount = this.state.formValidationCount\n\n const checkLatest = () =>\n formValidationCount === this.state.formValidationCount\n\n if (!this.validationMeta.validationPromise) {\n this.validationMeta.validationPromise = new Promise((resolve, reject) => {\n this.validationMeta.validationResolve = resolve\n this.validationMeta.validationReject = reject\n })\n }\n\n const doValidation = async () => {\n try {\n const error = await validate(this.state.values, this)\n\n if (checkLatest()) {\n this.store.setState((prev) => ({\n ...prev,\n isValidating: false,\n error: error\n ? typeof error === 'string'\n ? error\n : 'Invalid Form Values'\n : null,\n }))\n\n this.validationMeta.validationResolve?.(error)\n }\n } catch (err) {\n if (checkLatest()) {\n this.validationMeta.validationReject?.(err)\n }\n } finally {\n delete this.validationMeta.validationPromise\n }\n }\n\n doValidation()\n\n return this.validationMeta.validationPromise\n }\n\n handleSubmit = async (e: FormSubmitEvent) => {\n e.preventDefault()\n e.stopPropagation()\n\n // Check to see that the form and all fields have been touched\n // If they have not, touch them all and run validation\n // Run form validation\n // Submit the form\n\n this.store.setState((old) => ({\n ...old,\n // Submittion attempts mark the form as not submitted\n isSubmitted: false,\n // Count submission attempts\n submissionAttempts: old.submissionAttempts + 1,\n }))\n\n // Don't let invalid forms submit\n if (!this.state.canSubmit) return\n\n this.store.setState((d) => ({ ...d, isSubmitting: true }))\n\n const done = () => {\n this.store.setState((prev) => ({ ...prev, isSubmitting: false }))\n }\n\n // Validate all fields\n await this.validateAllFields()\n\n // Fields are invalid, do not submit\n if (!this.state.isFieldsValid) {\n done()\n this.options.onInvalidSubmit?.(this.state.values, this)\n return\n }\n\n // Run validation for the form\n await this.validateForm()\n\n if (!this.state.isValid) {\n done()\n this.options.onInvalidSubmit?.(this.state.values, this)\n return\n }\n\n try {\n // Run the submit code\n await this.options.onSubmit?.(this.state.values, this)\n\n this.store.batch(() => {\n this.store.setState((prev) => ({ ...prev, isSubmitted: true }))\n done()\n })\n } catch (err) {\n done()\n throw err\n }\n }\n\n getFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n ): DeepValue<TFormData, TField> => getBy(this.state.values, field)\n\n getFieldMeta = <TField extends DeepKeys<TFormData>>(\n field: TField,\n ): FieldMeta => {\n return this.state.fieldMeta[field]\n }\n\n getFieldInfo = <TField extends DeepKeys<TFormData>>(field: TField) => {\n return (this.fieldInfo[field] ||= {\n instances: {},\n })\n }\n\n setFieldMeta = <TField extends DeepKeys<TFormData>>(\n field: TField,\n updater: Updater<FieldMeta>,\n ) => {\n this.store.setState((prev) => {\n return {\n ...prev,\n fieldMeta: {\n ...prev.fieldMeta,\n [field]: functionalUpdate(updater, prev.fieldMeta[field]),\n },\n }\n })\n }\n\n setFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n updater: Updater<DeepValue<TFormData, TField>>,\n opts?: { touch?: boolean },\n ) => {\n const touch = opts?.touch ?? true\n\n this.store.batch(() => {\n this.store.setState((prev) => {\n return {\n ...prev,\n values: setBy(prev.values, field, updater),\n }\n })\n\n if (touch) {\n this.setFieldMeta(field, (prev) => ({\n ...prev,\n isTouched: true,\n }))\n }\n })\n }\n\n pushFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n value: DeepValue<TFormData, TField>,\n opts?: { touch?: boolean },\n ) => {\n return this.setFieldValue(\n field,\n (prev) => [...(Array.isArray(prev) ? prev : []), value] as any,\n opts,\n )\n }\n\n insertFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n index: number,\n value: DeepValue<TFormData, TField>,\n opts?: { touch?: boolean },\n ) => {\n this.setFieldValue(\n field,\n (prev) => {\n // invariant( // TODO: bring in invariant\n // Array.isArray(prev),\n // `Cannot insert a field value into a non-array field. Check that this field's existing value is an array: ${field}.`\n // )\n return (prev as DeepValue<TFormData, TField>[]).map((d, i) =>\n i === index ? value : d,\n ) as any\n },\n opts,\n )\n }\n\n removeFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n index: number,\n opts?: { touch?: boolean },\n ) => {\n this.setFieldValue(\n field,\n (prev) => {\n // invariant( // TODO: bring in invariant\n // Array.isArray(prev),\n // `Cannot insert a field value into a non-array field. Check that this field's existing value is an array: ${field}.`\n // )\n return (prev as DeepValue<TFormData, TField>[]).filter(\n (_d, i) => i !== index,\n ) as any\n },\n opts,\n )\n }\n\n swapFieldValues = <TField extends DeepKeys<TFormData>>(\n field: TField,\n index1: number,\n index2: number,\n ) => {\n this.setFieldValue(field, (prev: any) => {\n const prev1 = prev[index1]!\n const prev2 = prev[index2]!\n return setBy(setBy(prev, [index1], prev2), [index2], prev1)\n })\n }\n}\n"],"names":["getDefaultFormState","defaultState","values","fieldMeta","canSubmit","isFieldsValid","isFieldsValidating","isFormValid","isFormValidating","isSubmitted","isSubmitting","isTouched","isValid","isValidating","submissionAttempts","formValidationCount","FormApi","constructor","opts","options","fieldInfo","validationMeta","update","store","batch","setState","prev","defaultValues","reset","validateAllFields","fieldValidationPromises","Object","forEach","field","instances","instance","state","meta","setMeta","validate","push","Promise","all","validateForm","checkLatest","validationPromise","resolve","reject","validationResolve","validationReject","doValidation","error","err","handleSubmit","e","preventDefault","stopPropagation","old","d","done","onInvalidSubmit","onSubmit","getFieldValue","getBy","getFieldMeta","getFieldInfo","setFieldMeta","updater","functionalUpdate","setFieldValue","touch","setBy","pushFieldValue","value","Array","isArray","insertFieldValue","index","map","i","removeFieldValue","filter","_d","swapFieldValues","index1","index2","prev1","prev2","Store","onUpdate","next","fieldMetaValues","some","formError","console","log"],"mappings":"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"}
1
+ {"version":3,"file":"FormApi.js","sources":["../../src/FormApi.ts"],"sourcesContent":["import { Store } from '@tanstack/store'\n//\nimport type { DeepKeys, DeepValue, Updater } from './utils'\nimport { functionalUpdate, getBy, setBy } from './utils'\nimport type { FieldApi, FieldMeta, ValidationCause } from './FieldApi'\n\nexport interface Register {\n // FormSubmitEvent\n}\n\nexport type FormSubmitEvent = Register extends {\n FormSubmitEvent: infer E\n}\n ? E\n : Event\n\nexport type FormOptions<TData> = {\n defaultValues?: TData\n defaultState?: Partial<FormState<TData>>\n asyncDebounceMs?: number\n onMount?: (values: TData, formApi: FormApi<TData>) => ValidationError\n onMountAsync?: (\n values: TData,\n formApi: FormApi<TData>,\n ) => ValidationError | Promise<ValidationError>\n onMountAsyncDebounceMs?: number\n onChange?: (values: TData, formApi: FormApi<TData>) => ValidationError\n onChangeAsync?: (\n values: TData,\n formApi: FormApi<TData>,\n ) => ValidationError | Promise<ValidationError>\n onChangeAsyncDebounceMs?: number\n onBlur?: (values: TData, formApi: FormApi<TData>) => ValidationError\n onBlurAsync?: (\n values: TData,\n formApi: FormApi<TData>,\n ) => ValidationError | Promise<ValidationError>\n onBlurAsyncDebounceMs?: number\n onSubmit?: (values: TData, formApi: FormApi<TData>) => any | Promise<any>\n onSubmitInvalid?: (values: TData, formApi: FormApi<TData>) => void\n}\n\nexport type FieldInfo<TFormData> = {\n instances: Record<string, FieldApi<any, TFormData>>\n} & ValidationMeta\n\nexport type ValidationMeta = {\n validationCount?: number\n validationAsyncCount?: number\n validationPromise?: Promise<ValidationError>\n validationResolve?: (error: ValidationError) => void\n validationReject?: (error: unknown) => void\n}\n\nexport type ValidationError = undefined | false | null | string\n\nexport type FormState<TData> = {\n values: TData\n // Form Validation\n isFormValidating: boolean\n formValidationCount: number\n isFormValid: boolean\n formError?: ValidationError\n // Fields\n fieldMeta: Record<DeepKeys<TData>, FieldMeta>\n isFieldsValidating: boolean\n isFieldsValid: boolean\n isSubmitting: boolean\n // General\n isTouched: boolean\n isSubmitted: boolean\n isValidating: boolean\n isValid: boolean\n canSubmit: boolean\n submissionAttempts: number\n}\n\nfunction getDefaultFormState<TData>(\n defaultState: Partial<FormState<TData>>,\n): FormState<TData> {\n return {\n values: {} as any,\n fieldMeta: {} as any,\n canSubmit: true,\n isFieldsValid: false,\n isFieldsValidating: false,\n isFormValid: false,\n isFormValidating: false,\n isSubmitted: false,\n isSubmitting: false,\n isTouched: false,\n isValid: false,\n isValidating: false,\n submissionAttempts: 0,\n formValidationCount: 0,\n ...defaultState,\n }\n}\n\nexport class FormApi<TFormData> {\n // // This carries the context for nested fields\n options: FormOptions<TFormData> = {}\n store!: Store<FormState<TFormData>>\n // Do not use __state directly, as it is not reactive.\n // Please use form.useStore() utility to subscribe to state\n state!: FormState<TFormData>\n fieldInfo: Record<DeepKeys<TFormData>, FieldInfo<TFormData>> = {} as any\n fieldName?: string\n validationMeta: ValidationMeta = {}\n\n constructor(opts?: FormOptions<TFormData>) {\n this.store = new Store<FormState<TFormData>>(\n getDefaultFormState({\n ...opts?.defaultState,\n values: opts?.defaultValues ?? opts?.defaultState?.values,\n isFormValid: true,\n }),\n {\n onUpdate: () => {\n let { state } = this.store\n // Computed state\n const fieldMetaValues = Object.values(state.fieldMeta) as (\n | FieldMeta\n | undefined\n )[]\n\n const isFieldsValidating = fieldMetaValues.some(\n (field) => field?.isValidating,\n )\n\n const isFieldsValid = !fieldMetaValues.some((field) => field?.error)\n\n const isTouched = fieldMetaValues.some((field) => field?.isTouched)\n\n const isValidating = isFieldsValidating || state.isFormValidating\n const isFormValid = !state.formError\n const isValid = isFieldsValid && isFormValid\n const canSubmit =\n (state.submissionAttempts === 0 && !isTouched) ||\n (!isValidating && !state.isSubmitting && isValid)\n\n state = {\n ...state,\n isFieldsValidating,\n isFieldsValid,\n isFormValid,\n isValid,\n canSubmit,\n isTouched,\n }\n\n this.store.state = state\n this.state = state\n },\n },\n )\n\n this.state = this.store.state\n\n this.update(opts || {})\n }\n\n update = (options?: FormOptions<TFormData>) => {\n if (!options) return\n\n this.store.batch(() => {\n if (\n options.defaultState &&\n options.defaultState !== this.options.defaultState\n ) {\n this.store.setState((prev) => ({\n ...prev,\n ...options.defaultState,\n }))\n }\n\n if (options.defaultValues !== this.options.defaultValues) {\n this.store.setState(() => getDefaultFormState(options.defaultValues!))\n }\n })\n\n this.options = options\n }\n\n reset = () =>\n this.store.setState(() => getDefaultFormState(this.options.defaultValues!))\n\n validateAllFields = async (cause: ValidationCause) => {\n const fieldValidationPromises: Promise<ValidationError>[] = [] as any\n\n this.store.batch(() => {\n void (Object.values(this.fieldInfo) as FieldInfo<any>[]).forEach(\n (field) => {\n Object.values(field.instances).forEach((instance) => {\n // If any fields are not touched\n if (!instance.state.meta.isTouched) {\n // Mark them as touched\n instance.setMeta((prev) => ({ ...prev, isTouched: true }))\n // Validate the field\n fieldValidationPromises.push(\n Promise.resolve().then(() => instance.validate(cause)),\n )\n }\n })\n },\n )\n })\n\n return Promise.all(fieldValidationPromises)\n }\n\n // validateForm = async () => {}\n\n handleSubmit = async (e: FormSubmitEvent) => {\n e.preventDefault()\n e.stopPropagation()\n\n // Check to see that the form and all fields have been touched\n // If they have not, touch them all and run validation\n // Run form validation\n // Submit the form\n\n this.store.setState((old) => ({\n ...old,\n // Submittion attempts mark the form as not submitted\n isSubmitted: false,\n // Count submission attempts\n submissionAttempts: old.submissionAttempts + 1,\n }))\n\n // Don't let invalid forms submit\n if (!this.state.canSubmit) return\n\n this.store.setState((d) => ({ ...d, isSubmitting: true }))\n\n const done = () => {\n this.store.setState((prev) => ({ ...prev, isSubmitting: false }))\n }\n\n // Validate all fields\n await this.validateAllFields('submit')\n\n // Fields are invalid, do not submit\n if (!this.state.isFieldsValid) {\n done()\n this.options.onSubmitInvalid?.(this.state.values, this)\n return\n }\n\n // Run validation for the form\n // await this.validateForm()\n\n if (!this.state.isValid) {\n done()\n this.options.onSubmitInvalid?.(this.state.values, this)\n return\n }\n\n try {\n // Run the submit code\n await this.options.onSubmit?.(this.state.values, this)\n\n this.store.batch(() => {\n this.store.setState((prev) => ({ ...prev, isSubmitted: true }))\n done()\n })\n } catch (err) {\n done()\n throw err\n }\n }\n\n getFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n ): DeepValue<TFormData, TField> => getBy(this.state.values, field)\n\n getFieldMeta = <TField extends DeepKeys<TFormData>>(\n field: TField,\n ): FieldMeta => {\n return this.state.fieldMeta[field]\n }\n\n getFieldInfo = <TField extends DeepKeys<TFormData>>(field: TField) => {\n return (this.fieldInfo[field] ||= {\n instances: {},\n })\n }\n\n setFieldMeta = <TField extends DeepKeys<TFormData>>(\n field: TField,\n updater: Updater<FieldMeta>,\n ) => {\n this.store.setState((prev) => {\n return {\n ...prev,\n fieldMeta: {\n ...prev.fieldMeta,\n [field]: functionalUpdate(updater, prev.fieldMeta[field]),\n },\n }\n })\n }\n\n setFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n updater: Updater<DeepValue<TFormData, TField>>,\n opts?: { touch?: boolean },\n ) => {\n const touch = opts?.touch\n\n this.store.batch(() => {\n if (touch) {\n this.setFieldMeta(field, (prev) => ({\n ...prev,\n isTouched: true,\n }))\n }\n\n this.store.setState((prev) => {\n return {\n ...prev,\n values: setBy(prev.values, field, updater),\n }\n })\n })\n }\n\n pushFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n value: DeepValue<TFormData, TField>,\n opts?: { touch?: boolean },\n ) => {\n return this.setFieldValue(\n field,\n (prev) => [...(Array.isArray(prev) ? prev : []), value] as any,\n opts,\n )\n }\n\n insertFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n index: number,\n value: DeepValue<TFormData, TField>,\n opts?: { touch?: boolean },\n ) => {\n this.setFieldValue(\n field,\n (prev) => {\n return (prev as DeepValue<TFormData, TField>[]).map((d, i) =>\n i === index ? value : d,\n ) as any\n },\n opts,\n )\n }\n\n removeFieldValue = <TField extends DeepKeys<TFormData>>(\n field: TField,\n index: number,\n opts?: { touch?: boolean },\n ) => {\n this.setFieldValue(\n field,\n (prev) => {\n return (prev as DeepValue<TFormData, TField>[]).filter(\n (_d, i) => i !== index,\n ) as any\n },\n opts,\n )\n }\n\n swapFieldValues = <TField extends DeepKeys<TFormData>>(\n field: TField,\n index1: number,\n index2: number,\n ) => {\n this.setFieldValue(field, (prev: any) => {\n const prev1 = prev[index1]!\n const prev2 = prev[index2]!\n return setBy(setBy(prev, [index1], prev2), [index2], prev1)\n })\n }\n}\n"],"names":["getDefaultFormState","defaultState","values","fieldMeta","canSubmit","isFieldsValid","isFieldsValidating","isFormValid","isFormValidating","isSubmitted","isSubmitting","isTouched","isValid","isValidating","submissionAttempts","formValidationCount","FormApi","constructor","opts","_defineProperty","options","store","batch","setState","prev","defaultValues","cause","fieldValidationPromises","Object","fieldInfo","forEach","field","instances","instance","state","meta","setMeta","push","Promise","resolve","then","validate","all","e","preventDefault","stopPropagation","old","d","done","validateAllFields","onSubmitInvalid","onSubmit","err","getBy","updater","functionalUpdate","touch","setFieldMeta","setBy","value","setFieldValue","Array","isArray","index","map","i","filter","_d","index1","index2","prev1","prev2","Store","onUpdate","fieldMetaValues","some","error","formError","update"],"mappings":"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"}
@@ -12,20 +12,81 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var id = 0;
15
+ function _defineProperty(obj, key, value) {
16
+ if (key in obj) {
17
+ Object.defineProperty(obj, key, {
18
+ value: value,
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true
22
+ });
23
+ } else {
24
+ obj[key] = value;
25
+ }
26
+
27
+ return obj;
28
+ }
29
+
30
+ function _classPrivateFieldGet(receiver, privateMap) {
31
+ var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get");
32
+
33
+ return _classApplyDescriptorGet(receiver, descriptor);
34
+ }
35
+
36
+ function _classPrivateFieldSet(receiver, privateMap, value) {
37
+ var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set");
38
+
39
+ _classApplyDescriptorSet(receiver, descriptor, value);
40
+
41
+ return value;
42
+ }
43
+
44
+ function _classExtractFieldDescriptor(receiver, privateMap, action) {
45
+ if (!privateMap.has(receiver)) {
46
+ throw new TypeError("attempted to " + action + " private field on non-instance");
47
+ }
48
+
49
+ return privateMap.get(receiver);
50
+ }
16
51
 
17
- function _classPrivateFieldLooseKey(name) {
18
- return "__private_" + id++ + "_" + name;
52
+ function _classApplyDescriptorGet(receiver, descriptor) {
53
+ if (descriptor.get) {
54
+ return descriptor.get.call(receiver);
55
+ }
56
+
57
+ return descriptor.value;
19
58
  }
20
59
 
21
- function _classPrivateFieldLooseBase(receiver, privateKey) {
22
- if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
23
- throw new TypeError("attempted to use private field on non-instance");
60
+ function _classApplyDescriptorSet(receiver, descriptor, value) {
61
+ if (descriptor.set) {
62
+ descriptor.set.call(receiver, value);
63
+ } else {
64
+ if (!descriptor.writable) {
65
+ throw new TypeError("attempted to set read only private field");
66
+ }
67
+
68
+ descriptor.value = value;
24
69
  }
70
+ }
71
+
72
+ function _checkPrivateRedeclaration(obj, privateCollection) {
73
+ if (privateCollection.has(obj)) {
74
+ throw new TypeError("Cannot initialize the same private elements twice on an object");
75
+ }
76
+ }
77
+
78
+ function _classPrivateFieldInitSpec(obj, privateMap, value) {
79
+ _checkPrivateRedeclaration(obj, privateMap);
25
80
 
26
- return receiver;
81
+ privateMap.set(obj, value);
27
82
  }
28
83
 
29
- exports.classPrivateFieldLooseBase = _classPrivateFieldLooseBase;
30
- exports.classPrivateFieldLooseKey = _classPrivateFieldLooseKey;
84
+ exports.checkPrivateRedeclaration = _checkPrivateRedeclaration;
85
+ exports.classApplyDescriptorGet = _classApplyDescriptorGet;
86
+ exports.classApplyDescriptorSet = _classApplyDescriptorSet;
87
+ exports.classExtractFieldDescriptor = _classExtractFieldDescriptor;
88
+ exports.classPrivateFieldGet = _classPrivateFieldGet;
89
+ exports.classPrivateFieldInitSpec = _classPrivateFieldInitSpec;
90
+ exports.classPrivateFieldSet = _classPrivateFieldSet;
91
+ exports.defineProperty = _defineProperty;
31
92
  //# sourceMappingURL=_rollupPluginBabelHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_rollupPluginBabelHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"_rollupPluginBabelHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}