@rjsf/chakra-ui 5.0.0-beta.10 → 5.0.0-beta.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.
package/README.md CHANGED
@@ -65,6 +65,7 @@ Exports `chakra-ui` theme, fields and widgets for `react-jsonschema-form`.
65
65
  ### Prerequisites
66
66
 
67
67
  - `@chakra-ui/react >= 1.7.0`
68
+ - `chakra-react-select >= 3.3.8`
68
69
  - `react >= 17.0.0`
69
70
  - `framer-motion >= 5.0.0`
70
71
  - `@rjsf/core >= 2.0.0`
@@ -151,12 +151,14 @@ var ArrayFieldTemplate = function ArrayFieldTemplate(props) {
151
151
  return React__default["default"].createElement(react.Box, null, React__default["default"].createElement(ArrayFieldTitleTemplate, {
152
152
  idSchema: idSchema,
153
153
  title: uiOptions.title || title,
154
+ schema: schema,
154
155
  uiSchema: uiSchema,
155
156
  required: required,
156
157
  registry: registry
157
- }), (uiOptions.description || schema.description) && React__default["default"].createElement(ArrayFieldDescriptionTemplate, {
158
+ }), React__default["default"].createElement(ArrayFieldDescriptionTemplate, {
158
159
  idSchema: idSchema,
159
160
  description: uiOptions.description || schema.description,
161
+ schema: schema,
160
162
  uiSchema: uiSchema,
161
163
  registry: registry
162
164
  }), React__default["default"].createElement(react.Grid, {
@@ -461,11 +463,14 @@ var ObjectFieldTemplate = function ObjectFieldTemplate(props) {
461
463
  id: idSchema.$id + "-title",
462
464
  title: uiOptions.title || title,
463
465
  required: required,
466
+ schema: schema,
464
467
  uiSchema: uiSchema,
465
468
  registry: registry
466
469
  }), (uiOptions.description || description) && React__default["default"].createElement(DescriptionFieldTemplate, {
467
470
  id: idSchema.$id + "-description",
468
471
  description: uiOptions.description || description,
472
+ schema: schema,
473
+ uiSchema: uiSchema,
469
474
  registry: registry
470
475
  }), React__default["default"].createElement(react.Grid, {
471
476
  gap: description ? 2 : 6,
@@ -1044,10 +1049,7 @@ var SelectWidget = function SelectWidget(props) {
1044
1049
  enumDisabled = options.enumDisabled;
1045
1050
  var chakraProps = getChakra({
1046
1051
  uiSchema: uiSchema
1047
- }); // TODO: Default emptyValue should be string when multi select is implemented
1048
- // const emptyValue = multiple ? [] : "";
1049
-
1050
- var emptyValue = "";
1052
+ });
1051
1053
 
1052
1054
  var _onMultiChange = function _onMultiChange(e) {
1053
1055
  return onChange(utils.processSelectValue(schema, e.map(function (v) {
@@ -1055,21 +1057,37 @@ var SelectWidget = function SelectWidget(props) {
1055
1057
  }), options));
1056
1058
  };
1057
1059
 
1058
- var _onChange = function _onChange(_ref) {
1059
- var value = _ref.target.value;
1060
- return onChange(utils.processSelectValue(schema, value, options));
1060
+ var _onChange = function _onChange(e) {
1061
+ return onChange(utils.processSelectValue(schema, e.value, options));
1061
1062
  };
1062
1063
 
1063
- var _onBlur = function _onBlur(_ref2) {
1064
- var value = _ref2.target.value;
1064
+ var _onBlur = function _onBlur(_ref) {
1065
+ var value = _ref.target.value;
1065
1066
  return onBlur(id, utils.processSelectValue(schema, value, options));
1066
1067
  };
1067
1068
 
1068
- var _onFocus = function _onFocus(_ref3) {
1069
- var value = _ref3.target.value;
1069
+ var _onFocus = function _onFocus(_ref2) {
1070
+ var value = _ref2.target.value;
1070
1071
  return onFocus(id, utils.processSelectValue(schema, value, options));
1071
1072
  };
1072
1073
 
1074
+ var _valueLabelMap = {};
1075
+ enumOptions.map(function (option) {
1076
+ var value = option.value,
1077
+ label = option.label;
1078
+ _valueLabelMap[value] = label;
1079
+ option["isDisabled"] = enumDisabled && enumDisabled.indexOf(value) != -1;
1080
+ });
1081
+ var isMultiple = typeof multiple !== "undefined" && Boolean(enumOptions);
1082
+ var formValue = isMultiple ? (value || []).map(function (v) {
1083
+ return {
1084
+ label: _valueLabelMap[v] || v,
1085
+ value: v
1086
+ };
1087
+ }) : {
1088
+ label: _valueLabelMap[value] || value || "",
1089
+ value: value || ""
1090
+ };
1073
1091
  return React__default["default"].createElement(react.FormControl, _extends({
1074
1092
  mb: 1
1075
1093
  }, chakraProps, {
@@ -1078,40 +1096,20 @@ var SelectWidget = function SelectWidget(props) {
1078
1096
  isReadOnly: readonly,
1079
1097
  isInvalid: rawErrors && rawErrors.length > 0
1080
1098
  }), (label || schema.title) && React__default["default"].createElement(react.FormLabel, {
1081
- htmlFor: typeof multiple !== "undefined" && enumOptions ? undefined : id
1082
- }, label || schema.title), typeof multiple !== "undefined" && enumOptions ? React__default["default"].createElement(chakraReactSelect.Select, {
1099
+ htmlFor: isMultiple ? undefined : id
1100
+ }, label || schema.title), React__default["default"].createElement(chakraReactSelect.Select, {
1083
1101
  inputId: id,
1084
1102
  name: id,
1085
- isMulti: true,
1103
+ isMulti: isMultiple,
1086
1104
  options: enumOptions,
1087
1105
  placeholder: placeholder,
1088
1106
  closeMenuOnSelect: false,
1089
- onChange: _onMultiChange,
1090
- value: value.map(function (v) {
1091
- return {
1092
- label: v,
1093
- value: v
1094
- };
1095
- })
1096
- }) : React__default["default"].createElement(react.Select, {
1097
- id: id,
1098
- name: id,
1099
- placeholder: placeholder !== "" ? placeholder : " ",
1100
- value: typeof value === "undefined" ? emptyValue : value.toString(),
1101
- autoFocus: autofocus,
1102
1107
  onBlur: _onBlur,
1103
- onChange: _onChange,
1104
- onFocus: _onFocus
1105
- }, enumOptions.map(function (_ref4, i) {
1106
- var value = _ref4.value,
1107
- label = _ref4.label;
1108
- var disabled = enumDisabled && enumDisabled.indexOf(value) != -1;
1109
- return React__default["default"].createElement("option", {
1110
- key: i,
1111
- value: value,
1112
- disabled: disabled
1113
- }, label);
1114
- })));
1108
+ onChange: isMultiple ? _onMultiChange : _onChange,
1109
+ onFocus: _onFocus,
1110
+ autoFocus: autofocus,
1111
+ value: formValue
1112
+ }));
1115
1113
  };
1116
1114
 
1117
1115
  var TextareaWidget = function TextareaWidget(_ref) {