@rjsf/core 5.6.2 → 5.7.0

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.
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react/jsx-runtime'), require('react'), require('@rjsf/utils'), require('lodash-es/get'), require('lodash-es/isEmpty'), require('lodash-es/pick'), require('lodash-es/toPath'), require('lodash-es/cloneDeep'), require('lodash-es/isObject'), require('lodash-es/set'), require('nanoid'), require('lodash-es/isString'), require('lodash-es/omit'), require('markdown-to-jsx'), require('lodash-es/has'), require('lodash-es/unset')) :
3
- typeof define === 'function' && define.amd ? define(['exports', 'react/jsx-runtime', 'react', '@rjsf/utils', 'lodash-es/get', 'lodash-es/isEmpty', 'lodash-es/pick', 'lodash-es/toPath', 'lodash-es/cloneDeep', 'lodash-es/isObject', 'lodash-es/set', 'nanoid', 'lodash-es/isString', 'lodash-es/omit', 'markdown-to-jsx', 'lodash-es/has', 'lodash-es/unset'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.JSONSchemaForm = {}, global.jsxRuntime, global.React, global.utils, global.get, global.isEmpty, global._pick, global._toPath, global.cloneDeep, global.isObject, global.set, global.nanoid, global.isString, global.omit, global.Markdown, global.has, global.unset));
5
- })(this, (function (exports, jsxRuntime, react, utils, get, isEmpty, _pick, _toPath, cloneDeep, isObject, set, nanoid, isString, omit, Markdown, has, unset) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react/jsx-runtime'), require('react'), require('@rjsf/utils'), require('lodash-es/get'), require('lodash-es/isEmpty'), require('lodash-es/pick'), require('lodash-es/toPath'), require('lodash-es/cloneDeep'), require('lodash-es/isObject'), require('lodash-es/set'), require('nanoid'), require('lodash-es/omit'), require('markdown-to-jsx'), require('lodash-es/has'), require('lodash-es/unset')) :
3
+ typeof define === 'function' && define.amd ? define(['exports', 'react/jsx-runtime', 'react', '@rjsf/utils', 'lodash-es/get', 'lodash-es/isEmpty', 'lodash-es/pick', 'lodash-es/toPath', 'lodash-es/cloneDeep', 'lodash-es/isObject', 'lodash-es/set', 'nanoid', 'lodash-es/omit', 'markdown-to-jsx', 'lodash-es/has', 'lodash-es/unset'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.JSONSchemaForm = {}, global.jsxRuntime, global.React, global.utils, global.get, global.isEmpty, global._pick, global._toPath, global.cloneDeep, global.isObject, global.set, global.nanoid, global.omit, global.Markdown, global.has, global.unset));
5
+ })(this, (function (exports, jsxRuntime, react, utils, get, isEmpty, _pick, _toPath, cloneDeep, isObject, set, nanoid, omit, Markdown, has, unset) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -13,7 +13,6 @@
13
13
  var cloneDeep__default = /*#__PURE__*/_interopDefaultLegacy(cloneDeep);
14
14
  var isObject__default = /*#__PURE__*/_interopDefaultLegacy(isObject);
15
15
  var set__default = /*#__PURE__*/_interopDefaultLegacy(set);
16
- var isString__default = /*#__PURE__*/_interopDefaultLegacy(isString);
17
16
  var omit__default = /*#__PURE__*/_interopDefaultLegacy(omit);
18
17
  var Markdown__default = /*#__PURE__*/_interopDefaultLegacy(Markdown);
19
18
  var has__default = /*#__PURE__*/_interopDefaultLegacy(has);
@@ -1139,13 +1138,7 @@
1139
1138
  var _this$props4 = this.props,
1140
1139
  schema = _this$props4.schema,
1141
1140
  schemaUtils = _this$props4.registry.schemaUtils;
1142
- var discriminator;
1143
- var maybeString = get__default["default"](schema, 'discriminator.propertyName', undefined);
1144
- if (isString__default["default"](maybeString)) {
1145
- discriminator = maybeString;
1146
- } else if (maybeString !== undefined) {
1147
- console.warn("Expecting discriminator to be a string, got \"" + typeof maybeString + "\" instead");
1148
- }
1141
+ var discriminator = utils.getDiscriminatorFieldFromSchema(schema);
1149
1142
  var option = schemaUtils.getClosestMatchingOption(formData, options, selectedOption, discriminator);
1150
1143
  if (option > 0) {
1151
1144
  return option;
@@ -3266,28 +3259,29 @@
3266
3259
  options = props.options,
3267
3260
  registry = props.registry;
3268
3261
  var BaseInputTemplate = utils.getTemplate('BaseInputTemplate', registry, options);
3269
- var extractedFilesInfo = react.useMemo(function () {
3270
- return Array.isArray(value) ? extractFileInfo(value) : extractFileInfo([value]);
3271
- }, [value]);
3272
- var _useState = react.useState(extractedFilesInfo),
3262
+ var _useState = react.useState(Array.isArray(value) ? extractFileInfo(value) : extractFileInfo([value])),
3273
3263
  filesInfo = _useState[0],
3274
3264
  setFilesInfo = _useState[1];
3275
3265
  var handleChange = react.useCallback(function (event) {
3276
3266
  if (!event.target.files) {
3277
3267
  return;
3278
3268
  }
3269
+ // Due to variances in themes, dealing with multiple files for the array case now happens one file at a time.
3270
+ // This is because we don't pass `multiple` into the `BaseInputTemplate` anymore. Instead, we deal with the single
3271
+ // file in each event and concatenate them together ourselves
3279
3272
  processFiles(event.target.files).then(function (filesInfoEvent) {
3280
- setFilesInfo(filesInfoEvent);
3281
3273
  var newValue = filesInfoEvent.map(function (fileInfo) {
3282
3274
  return fileInfo.dataURL;
3283
3275
  });
3284
3276
  if (multiple) {
3285
- onChange(newValue);
3277
+ setFilesInfo(filesInfo.concat(filesInfoEvent[0]));
3278
+ onChange(value.concat(newValue[0]));
3286
3279
  } else {
3280
+ setFilesInfo(filesInfoEvent);
3287
3281
  onChange(newValue[0]);
3288
3282
  }
3289
3283
  });
3290
- }, [multiple, onChange]);
3284
+ }, [multiple, value, filesInfo, onChange]);
3291
3285
  return jsxRuntime.jsxs("div", {
3292
3286
  children: [jsxRuntime.jsx(BaseInputTemplate, _extends({}, props, {
3293
3287
  disabled: disabled || readonly,
@@ -3927,9 +3921,10 @@
3927
3921
  var liveValidate = 'liveValidate' in props ? props.liveValidate : this.props.liveValidate;
3928
3922
  var mustValidate = edit && !props.noValidate && liveValidate;
3929
3923
  var rootSchema = schema;
3924
+ var experimental_defaultFormStateBehavior = 'experimental_defaultFormStateBehavior' in props ? props.experimental_defaultFormStateBehavior : this.props.experimental_defaultFormStateBehavior;
3930
3925
  var schemaUtils = state.schemaUtils;
3931
- if (!schemaUtils || schemaUtils.doesSchemaUtilsDiffer(props.validator, rootSchema)) {
3932
- schemaUtils = utils.createSchemaUtils(props.validator, rootSchema);
3926
+ if (!schemaUtils || schemaUtils.doesSchemaUtilsDiffer(props.validator, rootSchema, experimental_defaultFormStateBehavior)) {
3927
+ schemaUtils = utils.createSchemaUtils(props.validator, rootSchema, experimental_defaultFormStateBehavior);
3933
3928
  }
3934
3929
  var formData = schemaUtils.getDefaultFormState(schema, inputFormData);
3935
3930
  var retrievedSchema = schemaUtils.retrieveSchema(schema, formData);