@rjsf/core 6.0.0-beta.9 → 6.0.1

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.
Files changed (160) hide show
  1. package/README.md +2 -0
  2. package/dist/core.umd.js +2042 -1987
  3. package/dist/index.cjs +4909 -0
  4. package/dist/index.cjs.map +7 -0
  5. package/dist/index.esm.js +2509 -2389
  6. package/dist/index.esm.js.map +4 -4
  7. package/lib/components/Form.d.ts +137 -34
  8. package/lib/components/Form.d.ts.map +1 -1
  9. package/lib/components/Form.js +318 -173
  10. package/lib/components/fields/ArrayField.d.ts +2 -187
  11. package/lib/components/fields/ArrayField.d.ts.map +1 -1
  12. package/lib/components/fields/ArrayField.js +526 -492
  13. package/lib/components/fields/BooleanField.d.ts.map +1 -1
  14. package/lib/components/fields/BooleanField.js +8 -3
  15. package/lib/components/fields/FallbackField.d.ts +7 -0
  16. package/lib/components/fields/FallbackField.d.ts.map +1 -0
  17. package/lib/components/fields/FallbackField.js +72 -0
  18. package/lib/components/fields/LayoutGridField.d.ts +109 -186
  19. package/lib/components/fields/LayoutGridField.d.ts.map +1 -1
  20. package/lib/components/fields/LayoutGridField.js +426 -426
  21. package/lib/components/fields/LayoutHeaderField.d.ts +1 -1
  22. package/lib/components/fields/LayoutHeaderField.js +3 -3
  23. package/lib/components/fields/LayoutMultiSchemaField.d.ts.map +1 -1
  24. package/lib/components/fields/LayoutMultiSchemaField.js +6 -6
  25. package/lib/components/fields/MultiSchemaField.d.ts.map +1 -1
  26. package/lib/components/fields/MultiSchemaField.js +16 -10
  27. package/lib/components/fields/NullField.js +3 -3
  28. package/lib/components/fields/NumberField.d.ts.map +1 -1
  29. package/lib/components/fields/NumberField.js +3 -3
  30. package/lib/components/fields/ObjectField.d.ts +2 -68
  31. package/lib/components/fields/ObjectField.d.ts.map +1 -1
  32. package/lib/components/fields/ObjectField.js +163 -163
  33. package/lib/components/fields/OptionalDataControlsField.d.ts +8 -0
  34. package/lib/components/fields/OptionalDataControlsField.d.ts.map +1 -0
  35. package/lib/components/fields/OptionalDataControlsField.js +43 -0
  36. package/lib/components/fields/SchemaField.d.ts.map +1 -1
  37. package/lib/components/fields/SchemaField.js +52 -30
  38. package/lib/components/fields/StringField.d.ts.map +1 -1
  39. package/lib/components/fields/StringField.js +8 -3
  40. package/lib/components/fields/index.d.ts.map +1 -1
  41. package/lib/components/fields/index.js +4 -0
  42. package/lib/components/templates/ArrayFieldDescriptionTemplate.d.ts +1 -1
  43. package/lib/components/templates/ArrayFieldDescriptionTemplate.js +3 -3
  44. package/lib/components/templates/ArrayFieldItemButtonsTemplate.d.ts +3 -3
  45. package/lib/components/templates/ArrayFieldItemButtonsTemplate.d.ts.map +1 -1
  46. package/lib/components/templates/ArrayFieldItemButtonsTemplate.js +3 -8
  47. package/lib/components/templates/ArrayFieldItemTemplate.d.ts +3 -3
  48. package/lib/components/templates/ArrayFieldItemTemplate.d.ts.map +1 -1
  49. package/lib/components/templates/ArrayFieldItemTemplate.js +1 -1
  50. package/lib/components/templates/ArrayFieldTemplate.d.ts +1 -1
  51. package/lib/components/templates/ArrayFieldTemplate.d.ts.map +1 -1
  52. package/lib/components/templates/ArrayFieldTemplate.js +4 -5
  53. package/lib/components/templates/ArrayFieldTitleTemplate.d.ts +1 -1
  54. package/lib/components/templates/ArrayFieldTitleTemplate.d.ts.map +1 -1
  55. package/lib/components/templates/ArrayFieldTitleTemplate.js +3 -3
  56. package/lib/components/templates/BaseInputTemplate.js +2 -2
  57. package/lib/components/templates/ButtonTemplates/AddButton.d.ts +1 -1
  58. package/lib/components/templates/ButtonTemplates/AddButton.d.ts.map +1 -1
  59. package/lib/components/templates/ButtonTemplates/AddButton.js +2 -2
  60. package/lib/components/templates/FallbackFieldTemplate.d.ts +7 -0
  61. package/lib/components/templates/FallbackFieldTemplate.d.ts.map +1 -0
  62. package/lib/components/templates/FallbackFieldTemplate.js +12 -0
  63. package/lib/components/templates/FieldErrorTemplate.js +2 -2
  64. package/lib/components/templates/FieldHelpTemplate.js +2 -2
  65. package/lib/components/templates/MultiSchemaFieldTemplate.d.ts +8 -0
  66. package/lib/components/templates/MultiSchemaFieldTemplate.d.ts.map +1 -0
  67. package/lib/components/templates/MultiSchemaFieldTemplate.js +10 -0
  68. package/lib/components/templates/ObjectFieldTemplate.d.ts.map +1 -1
  69. package/lib/components/templates/ObjectFieldTemplate.js +3 -2
  70. package/lib/components/templates/OptionalDataControlsTemplate.d.ts +11 -0
  71. package/lib/components/templates/OptionalDataControlsTemplate.d.ts.map +1 -0
  72. package/lib/components/templates/OptionalDataControlsTemplate.js +20 -0
  73. package/lib/components/templates/TitleField.d.ts.map +1 -1
  74. package/lib/components/templates/TitleField.js +2 -2
  75. package/lib/components/templates/UnsupportedField.js +3 -3
  76. package/lib/components/templates/WrapIfAdditionalTemplate.js +2 -2
  77. package/lib/components/templates/index.d.ts.map +1 -1
  78. package/lib/components/templates/index.js +6 -0
  79. package/lib/components/widgets/AltDateWidget.d.ts +1 -1
  80. package/lib/components/widgets/AltDateWidget.d.ts.map +1 -1
  81. package/lib/components/widgets/AltDateWidget.js +5 -46
  82. package/lib/components/widgets/CheckboxWidget.d.ts +1 -1
  83. package/lib/components/widgets/CheckboxWidget.d.ts.map +1 -1
  84. package/lib/components/widgets/CheckboxWidget.js +2 -2
  85. package/lib/components/widgets/CheckboxesWidget.d.ts +1 -1
  86. package/lib/components/widgets/CheckboxesWidget.d.ts.map +1 -1
  87. package/lib/components/widgets/CheckboxesWidget.js +4 -4
  88. package/lib/components/widgets/FileWidget.d.ts.map +1 -1
  89. package/lib/components/widgets/FileWidget.js +7 -87
  90. package/lib/components/widgets/HiddenWidget.d.ts +1 -1
  91. package/lib/components/widgets/HiddenWidget.d.ts.map +1 -1
  92. package/lib/components/widgets/HiddenWidget.js +2 -2
  93. package/lib/components/widgets/RadioWidget.d.ts +1 -1
  94. package/lib/components/widgets/RadioWidget.d.ts.map +1 -1
  95. package/lib/components/widgets/RadioWidget.js +2 -2
  96. package/lib/components/widgets/RatingWidget.d.ts +1 -1
  97. package/lib/components/widgets/RatingWidget.d.ts.map +1 -1
  98. package/lib/components/widgets/RatingWidget.js +2 -2
  99. package/lib/components/widgets/SelectWidget.d.ts +1 -1
  100. package/lib/components/widgets/SelectWidget.d.ts.map +1 -1
  101. package/lib/components/widgets/SelectWidget.js +2 -2
  102. package/lib/components/widgets/TextareaWidget.d.ts +1 -1
  103. package/lib/components/widgets/TextareaWidget.d.ts.map +1 -1
  104. package/lib/components/widgets/TextareaWidget.js +2 -2
  105. package/lib/getDefaultRegistry.d.ts.map +1 -1
  106. package/lib/getDefaultRegistry.js +6 -1
  107. package/lib/getTestRegistry.d.ts +5 -0
  108. package/lib/getTestRegistry.d.ts.map +1 -0
  109. package/lib/getTestRegistry.js +23 -0
  110. package/lib/index.d.ts +2 -1
  111. package/lib/index.d.ts.map +1 -1
  112. package/lib/index.js +2 -1
  113. package/lib/tsconfig.tsbuildinfo +1 -1
  114. package/package.json +35 -20
  115. package/src/components/Form.tsx +468 -206
  116. package/src/components/fields/ArrayField.tsx +871 -723
  117. package/src/components/fields/BooleanField.tsx +14 -5
  118. package/src/components/fields/FallbackField.tsx +157 -0
  119. package/src/components/fields/LayoutGridField.tsx +626 -603
  120. package/src/components/fields/LayoutHeaderField.tsx +3 -3
  121. package/src/components/fields/LayoutMultiSchemaField.tsx +9 -10
  122. package/src/components/fields/MultiSchemaField.tsx +57 -36
  123. package/src/components/fields/NullField.tsx +3 -3
  124. package/src/components/fields/NumberField.tsx +11 -3
  125. package/src/components/fields/ObjectField.tsx +308 -239
  126. package/src/components/fields/OptionalDataControlsField.tsx +84 -0
  127. package/src/components/fields/SchemaField.tsx +75 -94
  128. package/src/components/fields/StringField.tsx +14 -5
  129. package/src/components/fields/index.ts +4 -0
  130. package/src/components/templates/ArrayFieldDescriptionTemplate.tsx +3 -3
  131. package/src/components/templates/ArrayFieldItemButtonsTemplate.tsx +16 -21
  132. package/src/components/templates/ArrayFieldItemTemplate.tsx +3 -3
  133. package/src/components/templates/ArrayFieldTemplate.tsx +11 -18
  134. package/src/components/templates/ArrayFieldTitleTemplate.tsx +4 -3
  135. package/src/components/templates/BaseInputTemplate.tsx +5 -5
  136. package/src/components/templates/ButtonTemplates/AddButton.tsx +2 -0
  137. package/src/components/templates/FallbackFieldTemplate.tsx +28 -0
  138. package/src/components/templates/FieldErrorTemplate.tsx +2 -2
  139. package/src/components/templates/FieldHelpTemplate.tsx +2 -2
  140. package/src/components/templates/MultiSchemaFieldTemplate.tsx +20 -0
  141. package/src/components/templates/ObjectFieldTemplate.tsx +12 -7
  142. package/src/components/templates/OptionalDataControlsTemplate.tsx +43 -0
  143. package/src/components/templates/TitleField.tsx +6 -1
  144. package/src/components/templates/UnsupportedField.tsx +3 -3
  145. package/src/components/templates/WrapIfAdditionalTemplate.tsx +5 -5
  146. package/src/components/templates/index.ts +6 -0
  147. package/src/components/widgets/AltDateWidget.tsx +8 -126
  148. package/src/components/widgets/CheckboxWidget.tsx +4 -3
  149. package/src/components/widgets/CheckboxesWidget.tsx +5 -4
  150. package/src/components/widgets/FileWidget.tsx +11 -102
  151. package/src/components/widgets/HiddenWidget.tsx +2 -1
  152. package/src/components/widgets/RadioWidget.tsx +3 -2
  153. package/src/components/widgets/RatingWidget.tsx +2 -1
  154. package/src/components/widgets/SelectWidget.tsx +3 -2
  155. package/src/components/widgets/TextareaWidget.tsx +3 -2
  156. package/src/getDefaultRegistry.ts +14 -1
  157. package/src/getTestRegistry.tsx +38 -0
  158. package/src/index.ts +2 -1
  159. package/dist/index.js +0 -4834
  160. package/dist/index.js.map +0 -7
@@ -1,5 +1,5 @@
1
1
  import { Component, ElementType, FormEvent, ReactNode, Ref, RefObject } from 'react';
2
- import { CustomValidator, ErrorSchema, ErrorTransformer, FormContextType, IdSchema, PathSchema, StrictRJSFSchema, Registry, RegistryFieldsType, RegistryWidgetsType, RJSFSchema, RJSFValidationError, SchemaUtilsType, TemplatesType, UiSchema, ValidationData, ValidatorType, Experimental_DefaultFormStateBehavior, Experimental_CustomMergeAllOf } from '@rjsf/utils';
2
+ import { CustomValidator, ErrorSchema, ErrorSchemaBuilder, ErrorTransformer, FieldPathId, FieldPathList, FormContextType, PathSchema, StrictRJSFSchema, Registry, RegistryFieldsType, RegistryWidgetsType, RJSFSchema, RJSFValidationError, SchemaUtilsType, TemplatesType, UiSchema, ValidationData, ValidatorType, Experimental_DefaultFormStateBehavior, Experimental_CustomMergeAllOf, NameGeneratorFunction } from '@rjsf/utils';
3
3
  /** The properties that are passed to the `Form` */
4
4
  export interface FormProps<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any> {
5
5
  /** The JSON schema object for the form */
@@ -10,8 +10,14 @@ export interface FormProps<T = any, S extends StrictRJSFSchema = RJSFSchema, F e
10
10
  children?: ReactNode;
11
11
  /** The uiSchema for the form */
12
12
  uiSchema?: UiSchema<T, S, F>;
13
- /** The data for the form, used to prefill a form with existing data */
13
+ /** The data for the form, used to load a "controlled" form with its current data. If you want an "uncontrolled" form
14
+ * with initial data, then use `initialFormData` instead.
15
+ */
14
16
  formData?: T;
17
+ /** The initial data for the form, used to fill an "uncontrolled" form with existing data on the initial render and
18
+ * when `reset()` is called programmatically.
19
+ */
20
+ initialFormData?: T;
15
21
  /** You can provide a `formContext` object to the form, which is passed down to all fields and widgets. Useful for
16
22
  * implementing context aware fields and widgets.
17
23
  *
@@ -110,14 +116,28 @@ export interface FormProps<T = any, S extends StrictRJSFSchema = RJSFSchema, F e
110
116
  * @deprecated - In a future release, this switch may be replaced by making `validator` prop optional
111
117
  */
112
118
  noValidate?: boolean;
113
- /** If set to true, the form will perform validation and show any validation errors whenever the form data is changed,
114
- * rather than just on submit
119
+ /** Flag that describes when live validation will be performed. Live validation means that the form will perform
120
+ * validation and show any validation errors whenever the form data is updated, rather than just on submit.
121
+ *
122
+ * If no value (or `false`) is provided, then live validation will not happen. If `true` or `onChange` is provided for
123
+ * the flag, then live validation will be performed after processing of all pending changes has completed. If `onBlur`
124
+ * is provided, then live validation will be performed when a field that was updated is blurred (as a performance
125
+ * optimization).
126
+ *
127
+ * @deprecated - In a future major release, the `boolean` options for this flag will be removed
115
128
  */
116
- liveValidate?: boolean;
117
- /** If `omitExtraData` and `liveOmit` are both set to true, then extra form data values that are not in any form field
118
- * will be removed whenever `onChange` is called. Set to `false` by default
129
+ liveValidate?: boolean | 'onChange' | 'onBlur';
130
+ /** Flag that describes when live omit will be performed. Live omit happens only when `omitExtraData` is also set to
131
+ * to `true` and the form's data is updated by the user.
132
+ *
133
+ * If no value (or `false`) is provided, then live omit will not happen. If `true` or `onChange` is provided for
134
+ * the flag, then live omit will be performed after processing of all pending changes has completed. If `onBlur`
135
+ * is provided, then live omit will be performed when a field that was updated is blurred (as a performance
136
+ * optimization).
137
+ *
138
+ * @deprecated - In a future major release, the `boolean` options for this flag will be removed
119
139
  */
120
- liveOmit?: boolean;
140
+ liveOmit?: boolean | 'onChange' | 'onBlur';
121
141
  /** If set to true, then extra form data values that are not in any form field will be removed whenever `onSubmit` is
122
142
  * called. Set to `false` by default.
123
143
  */
@@ -139,11 +159,29 @@ export interface FormProps<T = any, S extends StrictRJSFSchema = RJSFSchema, F e
139
159
  * to put the second parameter before the first in its translation.
140
160
  */
141
161
  translateString?: Registry['translateString'];
162
+ /** Optional function to generate custom HTML `name` attributes for form fields.
163
+ */
164
+ nameGenerator?: NameGeneratorFunction;
165
+ /** Optional flag that, when set to true, will cause the `FallbackField` to render a type selector for unsupported
166
+ * fields instead of the default UnsupportedField error UI.
167
+ */
168
+ useFallbackUiForUnsupportedType?: boolean;
142
169
  /** Optional configuration object with flags, if provided, allows users to override default form state behavior
143
170
  * Currently only affecting minItems on array fields and handling of setting defaults based on the value of
144
171
  * `emptyObjectFields`
145
172
  */
146
173
  experimental_defaultFormStateBehavior?: Experimental_DefaultFormStateBehavior;
174
+ /**
175
+ * Controls the component update strategy used by the Form's `shouldComponentUpdate` lifecycle method.
176
+ *
177
+ * - `'customDeep'`: Uses RJSF's custom deep equality checks via the `deepEquals` utility function,
178
+ * which treats all functions as equivalent and provides optimized performance for form data comparisons.
179
+ * - `'shallow'`: Uses shallow comparison of props and state (only compares direct properties). This matches React's PureComponent behavior.
180
+ * - `'always'`: Always rerenders when called. This matches React's Component behavior.
181
+ *
182
+ * @default 'customDeep'
183
+ */
184
+ experimental_componentUpdateStrategy?: 'customDeep' | 'shallow' | 'always';
147
185
  /** Optional function that allows for custom merging of `allOf` schemas
148
186
  */
149
187
  experimental_customMergeAllOf?: Experimental_CustomMergeAllOf<S>;
@@ -173,10 +211,10 @@ export interface FormState<T = any, S extends StrictRJSFSchema = RJSFSchema, F e
173
211
  schema: S;
174
212
  /** The uiSchema for the form */
175
213
  uiSchema: UiSchema<T, S, F>;
176
- /** The `IdSchema` for the form, computed from the `schema`, the `rootFieldId`, the `formData` and the `idPrefix` and
214
+ /** The `FieldPathId` for the form, computed from the `schema`, the `rootFieldId`, the `idPrefix` and
177
215
  * `idSeparator` props.
178
216
  */
179
- idSchema: IdSchema<T>;
217
+ fieldPathId: FieldPathId;
180
218
  /** The schemaUtils implementation used by the `Form`, created from the `validator` and the `schema` */
181
219
  schemaUtils: SchemaUtilsType<T, S, F>;
182
220
  /** The current data for the form, computed from the `formData` prop and the changes made by the user */
@@ -193,22 +231,43 @@ export interface FormState<T = any, S extends StrictRJSFSchema = RJSFSchema, F e
193
231
  * `extraErrors`
194
232
  */
195
233
  schemaValidationErrorSchema: ErrorSchema<T>;
234
+ /** A container used to handle custom errors provided via `onChange` */
235
+ customErrors?: ErrorSchemaBuilder<T>;
196
236
  /** @description result of schemaUtils.retrieveSchema(schema, formData). This a memoized value to avoid re calculate at internal functions (getStateFromProps, onChange) */
197
237
  retrievedSchema: S;
238
+ /** Flag indicating whether the initial form defaults have been generated */
239
+ initialDefaultsGenerated: boolean;
240
+ /** The registry (re)computed only when props changed */
241
+ registry: Registry<T, S, F>;
198
242
  }
199
243
  /** The event data passed when changes have been made to the form, includes everything from the `FormState` except
200
244
  * the schema validation errors. An additional `status` is added when returned from `onSubmit`
201
245
  */
202
- export interface IChangeEvent<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any> extends Omit<FormState<T, S, F>, 'schemaValidationErrors' | 'schemaValidationErrorSchema'> {
246
+ export interface IChangeEvent<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any> extends Pick<FormState<T, S, F>, 'schema' | 'uiSchema' | 'fieldPathId' | 'schemaUtils' | 'formData' | 'edit' | 'errors' | 'errorSchema'> {
203
247
  /** The status of the form when submitted */
204
248
  status?: 'submitted';
205
249
  }
250
+ /** The definition of a pending change that will be processed in the `onChange` handler
251
+ */
252
+ interface PendingChange<T> {
253
+ /** The path into the formData/errorSchema at which the `newValue`/`newErrorSchema` will be set */
254
+ path: FieldPathList;
255
+ /** The new value to set into the formData */
256
+ newValue?: T;
257
+ /** The new errors to be set into the errorSchema, if any */
258
+ newErrorSchema?: ErrorSchema<T>;
259
+ /** The optional id of the field for which the change is being made */
260
+ id?: string;
261
+ }
206
262
  /** The `Form` component renders the outer form and all the fields defined in the `schema` */
207
263
  export default class Form<T = any, S extends StrictRJSFSchema = RJSFSchema, F extends FormContextType = any> extends Component<FormProps<T, S, F>, FormState<T, S, F>> {
208
264
  /** The ref used to hold the `form` element, this needs to be `any` because `tagName` or `_internalFormWrapper` can
209
265
  * provide any possible type here
210
266
  */
211
267
  formElement: RefObject<any>;
268
+ /** The list of pending changes
269
+ */
270
+ pendingChanges: PendingChange<T>[];
212
271
  /** Constructs the `Form` from the `props`. Will setup the initial state from the props. It will also call the
213
272
  * `onChange` handler if the initially provided `formData` is modified to add missing default values as part of the
214
273
  * state construction.
@@ -267,9 +326,10 @@ export default class Form<T = any, S extends StrictRJSFSchema = RJSFSchema, F ex
267
326
  * @param retrievedSchema - An expanded schema, if not provided, it will be retrieved from the `schema` and `formData`.
268
327
  * @param isSchemaChanged - A flag indicating whether the schema has changed.
269
328
  * @param formDataChangedFields - The changed fields of `formData`
329
+ * @param skipLiveValidate - Optional flag, if true, means that we are not running live validation
270
330
  * @returns - The new state for the `Form`
271
331
  */
272
- getStateFromProps(props: FormProps<T, S, F>, inputFormData?: T, retrievedSchema?: S, isSchemaChanged?: boolean, formDataChangedFields?: string[]): FormState<T, S, F>;
332
+ getStateFromProps(props: FormProps<T, S, F>, inputFormData?: T, retrievedSchema?: S, isSchemaChanged?: boolean, formDataChangedFields?: string[], skipLiveValidate?: boolean): FormState<T, S, F>;
273
333
  /** React lifecycle method that is used to determine whether component should be updated.
274
334
  *
275
335
  * @param nextProps - The next version of the props
@@ -277,21 +337,41 @@ export default class Form<T = any, S extends StrictRJSFSchema = RJSFSchema, F ex
277
337
  * @returns - True if the component should be updated, false otherwise
278
338
  */
279
339
  shouldComponentUpdate(nextProps: FormProps<T, S, F>, nextState: FormState<T, S, F>): boolean;
280
- /** Gets the previously raised customValidate errors.
281
- *
282
- * @returns the previous customValidate errors
283
- */
284
- private getPreviousCustomValidateErrors;
285
340
  /** Validates the `formData` against the `schema` using the `altSchemaUtils` (if provided otherwise it uses the
286
341
  * `schemaUtils` in the state), returning the results.
287
342
  *
288
343
  * @param formData - The new form data to validate
289
344
  * @param schema - The schema used to validate against
290
- * @param altSchemaUtils - The alternate schemaUtils to use for validation
345
+ * @param [altSchemaUtils] - The alternate schemaUtils to use for validation
346
+ * @param [retrievedSchema] - An optionally retrieved schema for per
291
347
  */
292
348
  validate(formData: T | undefined, schema?: S, altSchemaUtils?: SchemaUtilsType<T, S, F>, retrievedSchema?: S): ValidationData<T>;
293
349
  /** Renders any errors contained in the `state` in using the `ErrorList`, if not disabled by `showErrorList`. */
294
350
  renderErrors(registry: Registry<T, S, F>): import("react/jsx-runtime").JSX.Element | null;
351
+ /** Merges any `extraErrors` or `customErrors` into the given `schemaValidation` object, returning the result
352
+ *
353
+ * @param schemaValidation - The `ValidationData` object into which additional errors are merged
354
+ * @param [extraErrors] - The extra errors from the props
355
+ * @param [customErrors] - The customErrors from custom components
356
+ * @return - The `extraErrors` and `customErrors` merged into the `schemaValidation`
357
+ * @private
358
+ */
359
+ private mergeErrors;
360
+ /** Performs live validation and then updates and returns the errors and error schemas by potentially merging in
361
+ * `extraErrors` and `customErrors`.
362
+ *
363
+ * @param rootSchema - The `rootSchema` from the state
364
+ * @param schemaUtils - The `SchemaUtilsType` from the state
365
+ * @param originalErrorSchema - The original `ErrorSchema` from the state
366
+ * @param [formData] - The new form data to validate
367
+ * @param [extraErrors] - The extra errors from the props
368
+ * @param [customErrors] - The customErrors from custom components
369
+ * @param [retrievedSchema] - An expanded schema, if not provided, it will be retrieved from the `schema` and `formData`
370
+ * @param [mergeIntoOriginalErrorSchema=false] - Optional flag indicating whether we merge into original schema
371
+ * @returns - An object containing `errorSchema`, `errors`, `schemaValidationErrors` and `schemaValidationErrorSchema`
372
+ * @private
373
+ */
374
+ private liveValidate;
295
375
  /** Returns the `formData` with only the elements specified in the `fields` list
296
376
  *
297
377
  * @param formData - The data for the `Form`
@@ -310,19 +390,33 @@ export default class Form<T = any, S extends StrictRJSFSchema = RJSFSchema, F ex
310
390
  * @returns The `formData` after omitting extra data
311
391
  */
312
392
  omitExtraData: (formData?: T) => T | undefined;
313
- private filterErrorsBasedOnSchema;
314
- /** Function to handle changes made to a field in the `Form`. This handler receives an entirely new copy of the
315
- * `formData` along with a new `ErrorSchema`. It will first update the `formData` with any missing default fields and
316
- * then, if `omitExtraData` and `liveOmit` are turned on, the `formData` will be filtered to remove any extra data not
317
- * in a form field. Then, the resulting formData will be validated if required. The state will be updated with the new
318
- * updated (potentially filtered) `formData`, any errors that resulted from validation. Finally the `onChange`
319
- * callback will be called if specified with the updated state.
320
- *
321
- * @param formData - The new form data from a change to a field
322
- * @param newErrorSchema - The new `ErrorSchema` based on the field change
323
- * @param id - The id of the field that caused the change
324
- */
325
- onChange: (formData: T | undefined, newErrorSchema?: ErrorSchema<T>, id?: string) => void;
393
+ /** Allows a user to set a value for the provided `fieldPath`, which must be either a dotted path to the field OR a
394
+ * `FieldPathList`. To set the root element, used either `''` or `[]` for the path. Passing undefined will clear the
395
+ * value in the field.
396
+ *
397
+ * @param fieldPath - Either a dotted path to the field or the `FieldPathList` to the field
398
+ * @param [newValue] - The new value for the field
399
+ */
400
+ setFieldValue: (fieldPath: string | FieldPathList, newValue?: T) => void;
401
+ /** Pushes the given change information into the `pendingChanges` array and then calls `processPendingChanges()` if
402
+ * the array only contains a single pending change.
403
+ *
404
+ * @param newValue - The new form data from a change to a field
405
+ * @param path - The path to the change into which to set the formData
406
+ * @param [newErrorSchema] - The new `ErrorSchema` based on the field change
407
+ * @param [id] - The id of the field that caused the change
408
+ */
409
+ onChange: (newValue: T | undefined, path: FieldPathList, newErrorSchema?: ErrorSchema<T>, id?: string) => void;
410
+ /** Function to handle changes made to a field in the `Form`. This handler gets the first change from the
411
+ * `pendingChanges` list, containing the `newValue` for the `formData` and the `path` at which the `newValue` is to be
412
+ * updated, along with a new, optional `ErrorSchema` for that same `path` and potentially the `id` of the field being
413
+ * changed. It will first update the `formData` with any missing default fields and then, if `omitExtraData` and
414
+ * `liveOmit` are turned on, the `formData` will be filtered to remove any extra data not in a form field. Then, the
415
+ * resulting `formData` will be validated if required. The state will be updated with the new updated (potentially
416
+ * filtered) `formData`, any errors that resulted from validation. Finally the `onChange` callback will be called, if
417
+ * specified, with the updated state and the `processPendingChange()` function is called again.
418
+ */
419
+ processPendingChange(): void;
326
420
  /**
327
421
  * If the retrievedSchema has changed the new retrievedSchema is returned.
328
422
  * Otherwise, the old retrievedSchema is returned to persist reference.
@@ -341,7 +435,8 @@ export default class Form<T = any, S extends StrictRJSFSchema = RJSFSchema, F ex
341
435
  */
342
436
  reset: () => void;
343
437
  /** Callback function to handle when a field on the form is blurred. Calls the `onBlur` callback for the `Form` if it
344
- * was provided.
438
+ * was provided. Also runs any live validation and/or live omit operations if the flags indicate they should happen
439
+ * during `onBlur`.
345
440
  *
346
441
  * @param id - The unique `id` of the field that was blurred
347
442
  * @param data - The data associated with the field that was blurred
@@ -363,8 +458,15 @@ export default class Form<T = any, S extends StrictRJSFSchema = RJSFSchema, F ex
363
458
  * @param event - The submit HTML form event
364
459
  */
365
460
  onSubmit: (event: FormEvent<any>) => void;
366
- /** Returns the registry for the form */
367
- getRegistry(): Registry<T, S, F>;
461
+ /** Extracts the `GlobalFormOptions` from the given Form `props`
462
+ *
463
+ * @param props - The form props to extract the global form options from
464
+ * @returns - The `GlobalFormOptions` from the props
465
+ * @private
466
+ */
467
+ private getGlobalFormOptions;
468
+ /** Computed the registry for the form using the given `props`, `schema` and `schemaUtils` */
469
+ getRegistry(props: FormProps<T, S, F>, schema: S, schemaUtils: SchemaUtilsType<T, S, F>): Registry<T, S, F>;
368
470
  /** Provides a function that can be used to programmatically submit the `Form` */
369
471
  submit: () => void;
370
472
  /** Attempts to focus on the field associated with the `error`. Uses the `property` field to compute path of the error
@@ -393,4 +495,5 @@ export default class Form<T = any, S extends StrictRJSFSchema = RJSFSchema, F ex
393
495
  */
394
496
  render(): import("react/jsx-runtime").JSX.Element;
395
497
  }
498
+ export {};
396
499
  //# sourceMappingURL=Form.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../src/components/Form.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../src/components/Form.tsx"],"names":[],"mappings":"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"}