@rjsf/core 5.14.2 → 5.14.3

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 (93) hide show
  1. package/dist/core.umd.js +20 -11
  2. package/dist/index.esm.js +20 -11
  3. package/dist/index.esm.js.map +2 -2
  4. package/dist/index.js +20 -11
  5. package/dist/index.js.map +2 -2
  6. package/lib/components/Form.d.ts +3 -1
  7. package/lib/components/Form.js +30 -18
  8. package/lib/components/Form.js.map +1 -1
  9. package/lib/components/fields/ArrayField.js +10 -8
  10. package/lib/components/fields/ArrayField.js.map +1 -1
  11. package/lib/components/fields/BooleanField.js +7 -5
  12. package/lib/components/fields/BooleanField.js.map +1 -1
  13. package/lib/components/fields/MultiSchemaField.js +2 -3
  14. package/lib/components/fields/MultiSchemaField.js.map +1 -1
  15. package/lib/components/fields/NumberField.js +1 -1
  16. package/lib/components/fields/NumberField.js.map +1 -1
  17. package/lib/components/fields/ObjectField.js +16 -8
  18. package/lib/components/fields/ObjectField.js.map +1 -1
  19. package/lib/components/fields/SchemaField.js +4 -5
  20. package/lib/components/fields/SchemaField.js.map +1 -1
  21. package/lib/components/fields/StringField.js +2 -3
  22. package/lib/components/fields/StringField.js.map +1 -1
  23. package/lib/components/templates/ArrayFieldItemTemplate.js +2 -2
  24. package/lib/components/templates/ArrayFieldItemTemplate.js.map +1 -1
  25. package/lib/components/templates/ArrayFieldTemplate.js +2 -6
  26. package/lib/components/templates/ArrayFieldTemplate.js.map +1 -1
  27. package/lib/components/templates/BaseInputTemplate.js +8 -6
  28. package/lib/components/templates/BaseInputTemplate.js.map +1 -1
  29. package/lib/components/templates/ButtonTemplates/AddButton.js +1 -1
  30. package/lib/components/templates/ButtonTemplates/AddButton.js.map +1 -1
  31. package/lib/components/templates/ButtonTemplates/IconButton.js +6 -7
  32. package/lib/components/templates/ButtonTemplates/IconButton.js.map +1 -1
  33. package/lib/components/templates/ButtonTemplates/SubmitButton.js +1 -1
  34. package/lib/components/templates/ButtonTemplates/SubmitButton.js.map +1 -1
  35. package/lib/components/templates/DescriptionField.js +2 -2
  36. package/lib/components/templates/DescriptionField.js.map +1 -1
  37. package/lib/components/templates/ErrorList.js +3 -3
  38. package/lib/components/templates/ErrorList.js.map +1 -1
  39. package/lib/components/templates/FieldErrorTemplate.js +3 -3
  40. package/lib/components/templates/FieldErrorTemplate.js.map +1 -1
  41. package/lib/components/templates/FieldHelpTemplate.js +2 -2
  42. package/lib/components/templates/FieldHelpTemplate.js.map +1 -1
  43. package/lib/components/templates/FieldTemplate/FieldTemplate.js +2 -2
  44. package/lib/components/templates/FieldTemplate/FieldTemplate.js.map +1 -1
  45. package/lib/components/templates/FieldTemplate/Label.js +1 -1
  46. package/lib/components/templates/FieldTemplate/Label.js.map +1 -1
  47. package/lib/components/templates/ObjectFieldTemplate.js +1 -1
  48. package/lib/components/templates/ObjectFieldTemplate.js.map +1 -1
  49. package/lib/components/templates/TitleField.js +1 -1
  50. package/lib/components/templates/TitleField.js.map +1 -1
  51. package/lib/components/templates/UnsupportedField.js +1 -1
  52. package/lib/components/templates/UnsupportedField.js.map +1 -1
  53. package/lib/components/templates/WrapIfAdditionalTemplate.js +2 -2
  54. package/lib/components/templates/WrapIfAdditionalTemplate.js.map +1 -1
  55. package/lib/components/widgets/AltDateTimeWidget.js +2 -4
  56. package/lib/components/widgets/AltDateTimeWidget.js.map +1 -1
  57. package/lib/components/widgets/AltDateWidget.js +2 -2
  58. package/lib/components/widgets/AltDateWidget.js.map +1 -1
  59. package/lib/components/widgets/CheckboxWidget.js +1 -1
  60. package/lib/components/widgets/CheckboxWidget.js.map +1 -1
  61. package/lib/components/widgets/CheckboxesWidget.js +3 -3
  62. package/lib/components/widgets/CheckboxesWidget.js.map +1 -1
  63. package/lib/components/widgets/ColorWidget.js +1 -1
  64. package/lib/components/widgets/ColorWidget.js.map +1 -1
  65. package/lib/components/widgets/DateTimeWidget.js +1 -1
  66. package/lib/components/widgets/DateTimeWidget.js.map +1 -1
  67. package/lib/components/widgets/DateWidget.js +1 -1
  68. package/lib/components/widgets/DateWidget.js.map +1 -1
  69. package/lib/components/widgets/EmailWidget.js +1 -1
  70. package/lib/components/widgets/EmailWidget.js.map +1 -1
  71. package/lib/components/widgets/FileWidget.js +4 -4
  72. package/lib/components/widgets/FileWidget.js.map +1 -1
  73. package/lib/components/widgets/PasswordWidget.js +1 -1
  74. package/lib/components/widgets/PasswordWidget.js.map +1 -1
  75. package/lib/components/widgets/RadioWidget.js +3 -3
  76. package/lib/components/widgets/RadioWidget.js.map +1 -1
  77. package/lib/components/widgets/RangeWidget.js +1 -1
  78. package/lib/components/widgets/RangeWidget.js.map +1 -1
  79. package/lib/components/widgets/SelectWidget.js +3 -3
  80. package/lib/components/widgets/SelectWidget.js.map +1 -1
  81. package/lib/components/widgets/TextWidget.js +1 -1
  82. package/lib/components/widgets/TextWidget.js.map +1 -1
  83. package/lib/components/widgets/TimeWidget.js +1 -1
  84. package/lib/components/widgets/TimeWidget.js.map +1 -1
  85. package/lib/components/widgets/URLWidget.js +1 -1
  86. package/lib/components/widgets/URLWidget.js.map +1 -1
  87. package/lib/components/widgets/UpDownWidget.js +1 -1
  88. package/lib/components/widgets/UpDownWidget.js.map +1 -1
  89. package/lib/tsconfig.tsbuildinfo +1 -1
  90. package/lib/withTheme.js +13 -8
  91. package/lib/withTheme.js.map +1 -1
  92. package/package.json +6 -6
  93. package/src/components/Form.tsx +23 -10
package/dist/index.js CHANGED
@@ -3246,17 +3246,18 @@ var Form = class extends import_react17.Component {
3246
3246
  */
3247
3247
  this.onChange = (formData, newErrorSchema, id) => {
3248
3248
  const { extraErrors, omitExtraData, liveOmit, noValidate, liveValidate, onChange } = this.props;
3249
- const { schemaUtils, schema } = this.state;
3249
+ const { schemaUtils, schema, retrievedSchema } = this.state;
3250
3250
  if ((0, import_utils39.isObject)(formData) || Array.isArray(formData)) {
3251
- const newState = this.getStateFromProps(this.props, formData);
3251
+ const newState = this.getStateFromProps(this.props, formData, retrievedSchema);
3252
3252
  formData = newState.formData;
3253
3253
  }
3254
3254
  const mustValidate = !noValidate && liveValidate;
3255
3255
  let state = { formData, schema };
3256
3256
  let newFormData = formData;
3257
+ let _retrievedSchema;
3257
3258
  if (omitExtraData === true && liveOmit === true) {
3258
- const retrievedSchema = schemaUtils.retrieveSchema(schema, formData);
3259
- const pathSchema = schemaUtils.toPathSchema(retrievedSchema, "", formData);
3259
+ _retrievedSchema = schemaUtils.retrieveSchema(schema, formData);
3260
+ const pathSchema = schemaUtils.toPathSchema(_retrievedSchema, "", formData);
3260
3261
  const fieldNames = this.getFieldNames(pathSchema, formData);
3261
3262
  newFormData = this.getUsedFormData(formData, fieldNames);
3262
3263
  state = {
@@ -3264,7 +3265,7 @@ var Form = class extends import_react17.Component {
3264
3265
  };
3265
3266
  }
3266
3267
  if (mustValidate) {
3267
- const schemaValidation = this.validate(newFormData);
3268
+ const schemaValidation = this.validate(newFormData, schema, schemaUtils, retrievedSchema);
3268
3269
  let errors = schemaValidation.errors;
3269
3270
  let errorSchema = schemaValidation.errorSchema;
3270
3271
  const schemaValidationErrors = errors;
@@ -3289,6 +3290,9 @@ var Form = class extends import_react17.Component {
3289
3290
  errors: (0, import_utils39.toErrorList)(errorSchema)
3290
3291
  };
3291
3292
  }
3293
+ if (_retrievedSchema) {
3294
+ state.retrievedSchema = _retrievedSchema;
3295
+ }
3292
3296
  this.setState(state, () => onChange && onChange({ ...this.state, ...state }, id));
3293
3297
  };
3294
3298
  /**
@@ -3405,7 +3409,11 @@ var Form = class extends import_react17.Component {
3405
3409
  */
3406
3410
  getSnapshotBeforeUpdate(prevProps, prevState) {
3407
3411
  if (!(0, import_utils39.deepEquals)(this.props, prevProps)) {
3408
- const nextState = this.getStateFromProps(this.props, this.props.formData);
3412
+ const nextState = this.getStateFromProps(
3413
+ this.props,
3414
+ this.props.formData,
3415
+ prevProps.schema !== this.props.schema ? void 0 : this.state.retrievedSchema
3416
+ );
3409
3417
  const shouldUpdate = !(0, import_utils39.deepEquals)(nextState, prevState);
3410
3418
  return { nextState, shouldUpdate };
3411
3419
  }
@@ -3443,7 +3451,7 @@ var Form = class extends import_react17.Component {
3443
3451
  * @param inputFormData - The new or current data for the `Form`
3444
3452
  * @returns - The new state for the `Form`
3445
3453
  */
3446
- getStateFromProps(props, inputFormData) {
3454
+ getStateFromProps(props, inputFormData, retrievedSchema) {
3447
3455
  const state = this.state || {};
3448
3456
  const schema = "schema" in props ? props.schema : this.props.schema;
3449
3457
  const uiSchema = ("uiSchema" in props ? props.uiSchema : this.props.uiSchema) || {};
@@ -3457,7 +3465,7 @@ var Form = class extends import_react17.Component {
3457
3465
  schemaUtils = (0, import_utils39.createSchemaUtils)(props.validator, rootSchema, experimental_defaultFormStateBehavior);
3458
3466
  }
3459
3467
  const formData = schemaUtils.getDefaultFormState(schema, inputFormData);
3460
- const retrievedSchema = schemaUtils.retrieveSchema(schema, formData);
3468
+ const _retrievedSchema = retrievedSchema ?? schemaUtils.retrieveSchema(schema, formData);
3461
3469
  const getCurrentErrors = () => {
3462
3470
  if (props.noValidate) {
3463
3471
  return { errors: [], errorSchema: {} };
@@ -3477,7 +3485,7 @@ var Form = class extends import_react17.Component {
3477
3485
  let schemaValidationErrors = state.schemaValidationErrors;
3478
3486
  let schemaValidationErrorSchema = state.schemaValidationErrorSchema;
3479
3487
  if (mustValidate) {
3480
- const schemaValidation = this.validate(formData, schema, schemaUtils, retrievedSchema);
3488
+ const schemaValidation = this.validate(formData, schema, schemaUtils, _retrievedSchema);
3481
3489
  errors = schemaValidation.errors;
3482
3490
  errorSchema = schemaValidation.errorSchema;
3483
3491
  schemaValidationErrors = errors;
@@ -3493,7 +3501,7 @@ var Form = class extends import_react17.Component {
3493
3501
  errors = merged.errors;
3494
3502
  }
3495
3503
  const idSchema = schemaUtils.toIdSchema(
3496
- retrievedSchema,
3504
+ _retrievedSchema,
3497
3505
  uiSchema["ui:rootFieldId"],
3498
3506
  formData,
3499
3507
  props.idPrefix,
@@ -3509,7 +3517,8 @@ var Form = class extends import_react17.Component {
3509
3517
  errors,
3510
3518
  errorSchema,
3511
3519
  schemaValidationErrors,
3512
- schemaValidationErrorSchema
3520
+ schemaValidationErrorSchema,
3521
+ retrievedSchema: _retrievedSchema
3513
3522
  };
3514
3523
  return nextState;
3515
3524
  }