@rjsf/mui 5.0.0-beta.2 → 5.0.0-beta.20
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 +6 -4
- package/dist/index.d.ts +17 -6
- package/dist/mui.cjs.development.js +722 -669
- package/dist/mui.cjs.development.js.map +1 -1
- package/dist/mui.cjs.production.min.js +1 -1
- package/dist/mui.cjs.production.min.js.map +1 -1
- package/dist/mui.esm.js +717 -668
- package/dist/mui.esm.js.map +1 -1
- package/dist/mui.umd.development.js +723 -670
- package/dist/mui.umd.development.js.map +1 -1
- package/dist/mui.umd.production.min.js +1 -1
- package/dist/mui.umd.production.min.js.map +1 -1
- package/package.json +18 -18
- package/dist/AddButton/AddButton.d.ts +0 -4
- package/dist/AddButton/index.d.ts +0 -2
- package/dist/ArrayFieldItemTemplate/ArrayFieldItemTemplate.d.ts +0 -3
- package/dist/ArrayFieldItemTemplate/index.d.ts +0 -2
- package/dist/ArrayFieldTemplate/ArrayFieldTemplate.d.ts +0 -3
- package/dist/ArrayFieldTemplate/index.d.ts +0 -2
- package/dist/BaseInputTemplate/BaseInputTemplate.d.ts +0 -3
- package/dist/BaseInputTemplate/index.d.ts +0 -2
- package/dist/CheckboxWidget/CheckboxWidget.d.ts +0 -3
- package/dist/CheckboxWidget/index.d.ts +0 -2
- package/dist/CheckboxesWidget/CheckboxesWidget.d.ts +0 -3
- package/dist/CheckboxesWidget/index.d.ts +0 -2
- package/dist/DateTimeWidget/DateTimeWidget.d.ts +0 -3
- package/dist/DateTimeWidget/index.d.ts +0 -2
- package/dist/DateWidget/DateWidget.d.ts +0 -3
- package/dist/DateWidget/index.d.ts +0 -2
- package/dist/DescriptionField/DescriptionField.d.ts +0 -3
- package/dist/DescriptionField/index.d.ts +0 -2
- package/dist/ErrorList/ErrorList.d.ts +0 -3
- package/dist/ErrorList/index.d.ts +0 -2
- package/dist/FieldTemplate/FieldTemplate.d.ts +0 -3
- package/dist/FieldTemplate/WrapIfAdditional.d.ts +0 -7
- package/dist/FieldTemplate/index.d.ts +0 -2
- package/dist/IconButton/IconButton.d.ts +0 -5
- package/dist/IconButton/index.d.ts +0 -2
- package/dist/MuiForm/MuiForm.d.ts +0 -4
- package/dist/MuiForm/index.d.ts +0 -2
- package/dist/ObjectFieldTemplate/ObjectFieldTemplate.d.ts +0 -3
- package/dist/ObjectFieldTemplate/index.d.ts +0 -2
- package/dist/RadioWidget/RadioWidget.d.ts +0 -3
- package/dist/RadioWidget/index.d.ts +0 -2
- package/dist/RangeWidget/RangeWidget.d.ts +0 -3
- package/dist/RangeWidget/index.d.ts +0 -2
- package/dist/SelectWidget/SelectWidget.d.ts +0 -3
- package/dist/SelectWidget/index.d.ts +0 -2
- package/dist/SubmitButton/SubmitButton.d.ts +0 -4
- package/dist/SubmitButton/index.d.ts +0 -2
- package/dist/Templates/Templates.d.ts +0 -20
- package/dist/Templates/index.d.ts +0 -2
- package/dist/TextareaWidget/TextareaWidget.d.ts +0 -3
- package/dist/TextareaWidget/index.d.ts +0 -2
- package/dist/Theme/Theme.d.ts +0 -3
- package/dist/Theme/index.d.ts +0 -2
- package/dist/TitleField/TitleField.d.ts +0 -3
- package/dist/TitleField/index.d.ts +0 -2
- package/dist/Widgets/Widgets.d.ts +0 -11
- package/dist/Widgets/index.d.ts +0 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@rjsf/core'), require('react'), require('@mui/icons-material/Add'), require('@mui/material/IconButton'), require('@mui/material/Box'), require('@mui/material/Grid'), require('@mui/material/Paper'), require('@rjsf/utils'), require('@mui/material/TextField'), require('@mui/material/Typography'), require('@mui/icons-material/Error'), require('@mui/material/List'), require('@mui/material/ListItem'), require('@mui/material/ListItemIcon'), require('@mui/material/ListItemText'), require('@mui/icons-material/ArrowDownward'), require('@mui/icons-material/ArrowUpward'), require('@mui/icons-material/Remove'), require('@mui/material/
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', '@rjsf/core', 'react', '@mui/icons-material/Add', '@mui/material/IconButton', '@mui/material/Box', '@mui/material/Grid', '@mui/material/Paper', '@rjsf/utils', '@mui/material/TextField', '@mui/material/Typography', '@mui/icons-material/Error', '@mui/material/List', '@mui/material/ListItem', '@mui/material/ListItemIcon', '@mui/material/ListItemText', '@mui/icons-material/ArrowDownward', '@mui/icons-material/ArrowUpward', '@mui/icons-material/Remove', '@mui/material/
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["@rjsf/mui"] = {}, global.core, global.React, global.AddIcon, global.IconButton, global.Box, global.Grid, global.Paper, global.utils, global.TextField, global.Typography, global.ErrorIcon, global.List, global.ListItem, global.ListItemIcon, global.ListItemText, global.ArrowDownwardIcon, global.ArrowUpwardIcon, global.RemoveIcon, global.
|
|
5
|
-
})(this, (function (exports, core, React, AddIcon, IconButton, Box, Grid, Paper, utils, TextField, Typography, ErrorIcon, List, ListItem, ListItemIcon, ListItemText, ArrowDownwardIcon, ArrowUpwardIcon, RemoveIcon,
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@rjsf/core'), require('react'), require('@mui/icons-material/Add'), require('@mui/material/IconButton'), require('@mui/material/Box'), require('@mui/material/Grid'), require('@mui/material/Paper'), require('@rjsf/utils'), require('@mui/material/TextField'), require('@mui/material/Typography'), require('@mui/icons-material/Error'), require('@mui/material/List'), require('@mui/material/ListItem'), require('@mui/material/ListItemIcon'), require('@mui/material/ListItemText'), require('@mui/icons-material/ArrowDownward'), require('@mui/icons-material/ArrowUpward'), require('@mui/icons-material/Remove'), require('@mui/material/FormHelperText'), require('@mui/material/FormControl'), require('@mui/material/Button'), require('@mui/material/Divider'), require('@mui/material/InputLabel'), require('@mui/material/OutlinedInput'), require('@mui/material/Checkbox'), require('@mui/material/FormControlLabel'), require('@mui/material/FormGroup'), require('@mui/material/FormLabel'), require('@mui/material/Radio'), require('@mui/material/RadioGroup'), require('@mui/material/Slider'), require('@mui/material/MenuItem')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', '@rjsf/core', 'react', '@mui/icons-material/Add', '@mui/material/IconButton', '@mui/material/Box', '@mui/material/Grid', '@mui/material/Paper', '@rjsf/utils', '@mui/material/TextField', '@mui/material/Typography', '@mui/icons-material/Error', '@mui/material/List', '@mui/material/ListItem', '@mui/material/ListItemIcon', '@mui/material/ListItemText', '@mui/icons-material/ArrowDownward', '@mui/icons-material/ArrowUpward', '@mui/icons-material/Remove', '@mui/material/FormHelperText', '@mui/material/FormControl', '@mui/material/Button', '@mui/material/Divider', '@mui/material/InputLabel', '@mui/material/OutlinedInput', '@mui/material/Checkbox', '@mui/material/FormControlLabel', '@mui/material/FormGroup', '@mui/material/FormLabel', '@mui/material/Radio', '@mui/material/RadioGroup', '@mui/material/Slider', '@mui/material/MenuItem'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["@rjsf/mui"] = {}, global.core, global.React, global.AddIcon, global.IconButton, global.Box, global.Grid, global.Paper, global.utils, global.TextField, global.Typography, global.ErrorIcon, global.List, global.ListItem, global.ListItemIcon, global.ListItemText, global.ArrowDownwardIcon, global.ArrowUpwardIcon, global.RemoveIcon, global.FormHelperText, global.FormControl, global.Button, global.Divider, global.InputLabel, global.Input, global.Checkbox, global.FormControlLabel, global.FormGroup, global.FormLabel, global.Radio, global.RadioGroup, global.Slider, global.MenuItem));
|
|
5
|
+
})(this, (function (exports, core, React, AddIcon, IconButton, Box, Grid, Paper, utils, TextField, Typography, ErrorIcon, List, ListItem, ListItemIcon, ListItemText, ArrowDownwardIcon, ArrowUpwardIcon, RemoveIcon, FormHelperText, FormControl, Button, Divider, InputLabel, Input, Checkbox, FormControlLabel, FormGroup, FormLabel, Radio, RadioGroup, Slider, MenuItem) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -22,12 +22,12 @@
|
|
|
22
22
|
var ArrowDownwardIcon__default = /*#__PURE__*/_interopDefaultLegacy(ArrowDownwardIcon);
|
|
23
23
|
var ArrowUpwardIcon__default = /*#__PURE__*/_interopDefaultLegacy(ArrowUpwardIcon);
|
|
24
24
|
var RemoveIcon__default = /*#__PURE__*/_interopDefaultLegacy(RemoveIcon);
|
|
25
|
-
var FormControl__default = /*#__PURE__*/_interopDefaultLegacy(FormControl);
|
|
26
25
|
var FormHelperText__default = /*#__PURE__*/_interopDefaultLegacy(FormHelperText);
|
|
27
|
-
var
|
|
28
|
-
var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
|
|
26
|
+
var FormControl__default = /*#__PURE__*/_interopDefaultLegacy(FormControl);
|
|
29
27
|
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
|
30
28
|
var Divider__default = /*#__PURE__*/_interopDefaultLegacy(Divider);
|
|
29
|
+
var InputLabel__default = /*#__PURE__*/_interopDefaultLegacy(InputLabel);
|
|
30
|
+
var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
|
|
31
31
|
var Checkbox__default = /*#__PURE__*/_interopDefaultLegacy(Checkbox);
|
|
32
32
|
var FormControlLabel__default = /*#__PURE__*/_interopDefaultLegacy(FormControlLabel);
|
|
33
33
|
var FormGroup__default = /*#__PURE__*/_interopDefaultLegacy(FormGroup);
|
|
@@ -37,34 +37,67 @@
|
|
|
37
37
|
var Slider__default = /*#__PURE__*/_interopDefaultLegacy(Slider);
|
|
38
38
|
var MenuItem__default = /*#__PURE__*/_interopDefaultLegacy(MenuItem);
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
function _extends() {
|
|
41
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
42
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
43
|
+
var source = arguments[i];
|
|
44
|
+
for (var key in source) {
|
|
45
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
46
|
+
target[key] = source[key];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return target;
|
|
51
|
+
};
|
|
52
|
+
return _extends.apply(this, arguments);
|
|
53
|
+
}
|
|
54
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
55
|
+
if (source == null) return {};
|
|
56
|
+
var target = {};
|
|
57
|
+
var sourceKeys = Object.keys(source);
|
|
58
|
+
var key, i;
|
|
59
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
60
|
+
key = sourceKeys[i];
|
|
61
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
62
|
+
target[key] = source[key];
|
|
63
|
+
}
|
|
64
|
+
return target;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
var _excluded$4 = ["uiSchema", "registry"];
|
|
68
|
+
/** The `AddButton` renders a button that represent the `Add` action on a form
|
|
69
|
+
*/
|
|
70
|
+
function AddButton(_ref) {
|
|
71
|
+
var props = _objectWithoutPropertiesLoose(_ref, _excluded$4);
|
|
72
|
+
return /*#__PURE__*/React__default["default"].createElement(IconButton__default["default"], _extends({
|
|
73
|
+
title: "Add Item"
|
|
74
|
+
}, props, {
|
|
44
75
|
color: "primary"
|
|
45
|
-
}, /*#__PURE__*/React__default["default"].createElement(AddIcon__default["default"], null));
|
|
46
|
-
}
|
|
76
|
+
}), /*#__PURE__*/React__default["default"].createElement(AddIcon__default["default"], null));
|
|
77
|
+
}
|
|
47
78
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
79
|
+
/** The `ArrayFieldItemTemplate` component is the template used to render an items of an array.
|
|
80
|
+
*
|
|
81
|
+
* @param props - The `ArrayFieldTemplateItemType` props for the component
|
|
82
|
+
*/
|
|
83
|
+
function ArrayFieldItemTemplate(props) {
|
|
84
|
+
var children = props.children,
|
|
85
|
+
disabled = props.disabled,
|
|
86
|
+
hasToolbar = props.hasToolbar,
|
|
87
|
+
hasMoveDown = props.hasMoveDown,
|
|
88
|
+
hasMoveUp = props.hasMoveUp,
|
|
89
|
+
hasRemove = props.hasRemove,
|
|
90
|
+
index = props.index,
|
|
91
|
+
onDropIndexClick = props.onDropIndexClick,
|
|
92
|
+
onReorderClick = props.onReorderClick,
|
|
93
|
+
readonly = props.readonly,
|
|
94
|
+
uiSchema = props.uiSchema,
|
|
95
|
+
registry = props.registry;
|
|
96
|
+
var _registry$templates$B = registry.templates.ButtonTemplates,
|
|
97
|
+
MoveDownButton = _registry$templates$B.MoveDownButton,
|
|
98
|
+
MoveUpButton = _registry$templates$B.MoveUpButton,
|
|
99
|
+
RemoveButton = _registry$templates$B.RemoveButton;
|
|
100
|
+
var btnStyle = {
|
|
68
101
|
flex: 1,
|
|
69
102
|
paddingLeft: 6,
|
|
70
103
|
paddingRight: 6,
|
|
@@ -91,42 +124,47 @@
|
|
|
91
124
|
}, (hasMoveUp || hasMoveDown) && /*#__PURE__*/React__default["default"].createElement(MoveUpButton, {
|
|
92
125
|
style: btnStyle,
|
|
93
126
|
disabled: disabled || readonly || !hasMoveUp,
|
|
94
|
-
onClick: onReorderClick(index, index - 1)
|
|
127
|
+
onClick: onReorderClick(index, index - 1),
|
|
128
|
+
uiSchema: uiSchema,
|
|
129
|
+
registry: registry
|
|
95
130
|
}), (hasMoveUp || hasMoveDown) && /*#__PURE__*/React__default["default"].createElement(MoveDownButton, {
|
|
96
131
|
style: btnStyle,
|
|
97
132
|
disabled: disabled || readonly || !hasMoveDown,
|
|
98
|
-
onClick: onReorderClick(index, index + 1)
|
|
133
|
+
onClick: onReorderClick(index, index + 1),
|
|
134
|
+
uiSchema: uiSchema,
|
|
135
|
+
registry: registry
|
|
99
136
|
}), hasRemove && /*#__PURE__*/React__default["default"].createElement(RemoveButton, {
|
|
100
137
|
style: btnStyle,
|
|
101
138
|
disabled: disabled || readonly,
|
|
102
|
-
onClick: onDropIndexClick(index)
|
|
139
|
+
onClick: onDropIndexClick(index),
|
|
140
|
+
uiSchema: uiSchema,
|
|
141
|
+
registry: registry
|
|
103
142
|
})));
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
const ArrayFieldTemplate = props => {
|
|
107
|
-
const {
|
|
108
|
-
canAdd,
|
|
109
|
-
disabled,
|
|
110
|
-
idSchema,
|
|
111
|
-
uiSchema,
|
|
112
|
-
items,
|
|
113
|
-
onAddClick,
|
|
114
|
-
readonly,
|
|
115
|
-
registry,
|
|
116
|
-
required,
|
|
117
|
-
schema,
|
|
118
|
-
title
|
|
119
|
-
} = props;
|
|
120
|
-
const uiOptions = utils.getUiOptions(uiSchema);
|
|
121
|
-
const ArrayFieldDescriptionTemplate = utils.getTemplate("ArrayFieldDescriptionTemplate", registry, uiOptions);
|
|
122
|
-
const ArrayFieldItemTemplate = utils.getTemplate("ArrayFieldItemTemplate", registry, uiOptions);
|
|
123
|
-
const ArrayFieldTitleTemplate = utils.getTemplate("ArrayFieldTitleTemplate", registry, uiOptions); // Button templates are not overridden in the uiSchema
|
|
143
|
+
}
|
|
124
144
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
145
|
+
var _excluded$3 = ["key"];
|
|
146
|
+
/** The `ArrayFieldTemplate` component is the template used to render all items in an array.
|
|
147
|
+
*
|
|
148
|
+
* @param props - The `ArrayFieldTemplateItemType` props for the component
|
|
149
|
+
*/
|
|
150
|
+
function ArrayFieldTemplate(props) {
|
|
151
|
+
var canAdd = props.canAdd,
|
|
152
|
+
disabled = props.disabled,
|
|
153
|
+
idSchema = props.idSchema,
|
|
154
|
+
uiSchema = props.uiSchema,
|
|
155
|
+
items = props.items,
|
|
156
|
+
onAddClick = props.onAddClick,
|
|
157
|
+
readonly = props.readonly,
|
|
158
|
+
registry = props.registry,
|
|
159
|
+
required = props.required,
|
|
160
|
+
schema = props.schema,
|
|
161
|
+
title = props.title;
|
|
162
|
+
var uiOptions = utils.getUiOptions(uiSchema);
|
|
163
|
+
var ArrayFieldDescriptionTemplate = utils.getTemplate("ArrayFieldDescriptionTemplate", registry, uiOptions);
|
|
164
|
+
var ArrayFieldItemTemplate = utils.getTemplate("ArrayFieldItemTemplate", registry, uiOptions);
|
|
165
|
+
var ArrayFieldTitleTemplate = utils.getTemplate("ArrayFieldTitleTemplate", registry, uiOptions);
|
|
166
|
+
// Button templates are not overridden in the uiSchema
|
|
167
|
+
var AddButton = registry.templates.ButtonTemplates.AddButton;
|
|
130
168
|
return /*#__PURE__*/React__default["default"].createElement(Paper__default["default"], {
|
|
131
169
|
elevation: 2
|
|
132
170
|
}, /*#__PURE__*/React__default["default"].createElement(Box__default["default"], {
|
|
@@ -134,26 +172,25 @@
|
|
|
134
172
|
}, /*#__PURE__*/React__default["default"].createElement(ArrayFieldTitleTemplate, {
|
|
135
173
|
idSchema: idSchema,
|
|
136
174
|
title: uiOptions.title || title,
|
|
175
|
+
schema: schema,
|
|
137
176
|
uiSchema: uiSchema,
|
|
138
177
|
required: required,
|
|
139
178
|
registry: registry
|
|
140
|
-
}),
|
|
179
|
+
}), /*#__PURE__*/React__default["default"].createElement(ArrayFieldDescriptionTemplate, {
|
|
141
180
|
idSchema: idSchema,
|
|
142
181
|
description: uiOptions.description || schema.description,
|
|
182
|
+
schema: schema,
|
|
143
183
|
uiSchema: uiSchema,
|
|
144
184
|
registry: registry
|
|
145
185
|
}), /*#__PURE__*/React__default["default"].createElement(Grid__default["default"], {
|
|
146
186
|
container: true,
|
|
147
187
|
key: "array-item-list-" + idSchema.$id
|
|
148
|
-
}, items && items.map(_ref
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
key: key,
|
|
155
|
-
...itemProps
|
|
156
|
-
});
|
|
188
|
+
}, items && items.map(function (_ref) {
|
|
189
|
+
var key = _ref.key,
|
|
190
|
+
itemProps = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
191
|
+
return /*#__PURE__*/React__default["default"].createElement(ArrayFieldItemTemplate, _extends({
|
|
192
|
+
key: key
|
|
193
|
+
}, itemProps));
|
|
157
194
|
}), canAdd && /*#__PURE__*/React__default["default"].createElement(Grid__default["default"], {
|
|
158
195
|
container: true,
|
|
159
196
|
justifyContent: "flex-end"
|
|
@@ -164,103 +201,102 @@
|
|
|
164
201
|
}, /*#__PURE__*/React__default["default"].createElement(AddButton, {
|
|
165
202
|
className: "array-item-add",
|
|
166
203
|
onClick: onAddClick,
|
|
167
|
-
disabled: disabled || readonly
|
|
204
|
+
disabled: disabled || readonly,
|
|
205
|
+
uiSchema: uiSchema,
|
|
206
|
+
registry: registry
|
|
168
207
|
})))))));
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
const BaseInputTemplate = _ref => {
|
|
172
|
-
let {
|
|
173
|
-
id,
|
|
174
|
-
placeholder,
|
|
175
|
-
required,
|
|
176
|
-
readonly,
|
|
177
|
-
disabled,
|
|
178
|
-
type,
|
|
179
|
-
label,
|
|
180
|
-
value,
|
|
181
|
-
onChange,
|
|
182
|
-
onBlur,
|
|
183
|
-
onFocus,
|
|
184
|
-
autofocus,
|
|
185
|
-
options,
|
|
186
|
-
schema,
|
|
187
|
-
uiSchema,
|
|
188
|
-
rawErrors = [],
|
|
189
|
-
formContext,
|
|
190
|
-
registry,
|
|
191
|
-
...textFieldProps
|
|
192
|
-
} = _ref;
|
|
193
|
-
const inputProps = utils.getInputProps(schema, type, options); // Now we need to pull out the step, min, max into an inner `inputProps` for material-ui
|
|
194
|
-
|
|
195
|
-
const {
|
|
196
|
-
step,
|
|
197
|
-
min,
|
|
198
|
-
max,
|
|
199
|
-
...rest
|
|
200
|
-
} = inputProps;
|
|
201
|
-
const otherProps = {
|
|
202
|
-
inputProps: {
|
|
203
|
-
step,
|
|
204
|
-
min,
|
|
205
|
-
max
|
|
206
|
-
},
|
|
207
|
-
...rest
|
|
208
|
-
};
|
|
208
|
+
}
|
|
209
209
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
210
|
+
var _excluded$2 = ["id", "placeholder", "required", "readonly", "disabled", "type", "label", "value", "onChange", "onBlur", "onFocus", "autofocus", "options", "schema", "uiSchema", "rawErrors", "formContext", "registry"],
|
|
211
|
+
_excluded2$1 = ["step", "min", "max"];
|
|
212
|
+
/** The `BaseInputTemplate` is the template to use to render the basic `<input>` component for the `core` theme.
|
|
213
|
+
* It is used as the template for rendering many of the <input> based widgets that differ by `type` and callbacks only.
|
|
214
|
+
* It can be customized/overridden for other themes or individual implementations as needed.
|
|
215
|
+
*
|
|
216
|
+
* @param props - The `WidgetProps` for this template
|
|
217
|
+
*/
|
|
218
|
+
function BaseInputTemplate(props) {
|
|
219
|
+
var id = props.id,
|
|
220
|
+
placeholder = props.placeholder,
|
|
221
|
+
required = props.required,
|
|
222
|
+
readonly = props.readonly,
|
|
223
|
+
disabled = props.disabled,
|
|
224
|
+
type = props.type,
|
|
225
|
+
label = props.label,
|
|
226
|
+
value = props.value,
|
|
227
|
+
onChange = props.onChange,
|
|
228
|
+
onBlur = props.onBlur,
|
|
229
|
+
onFocus = props.onFocus,
|
|
230
|
+
autofocus = props.autofocus,
|
|
231
|
+
options = props.options,
|
|
232
|
+
schema = props.schema,
|
|
233
|
+
uiSchema = props.uiSchema,
|
|
234
|
+
_props$rawErrors = props.rawErrors,
|
|
235
|
+
rawErrors = _props$rawErrors === void 0 ? [] : _props$rawErrors,
|
|
236
|
+
registry = props.registry,
|
|
237
|
+
textFieldProps = _objectWithoutPropertiesLoose(props, _excluded$2);
|
|
238
|
+
var inputProps = utils.getInputProps(schema, type, options);
|
|
239
|
+
// Now we need to pull out the step, min, max into an inner `inputProps` for material-ui
|
|
240
|
+
var step = inputProps.step,
|
|
241
|
+
min = inputProps.min,
|
|
242
|
+
max = inputProps.max,
|
|
243
|
+
rest = _objectWithoutPropertiesLoose(inputProps, _excluded2$1);
|
|
244
|
+
var otherProps = _extends({
|
|
245
|
+
inputProps: _extends({
|
|
246
|
+
step: step,
|
|
247
|
+
min: min,
|
|
248
|
+
max: max
|
|
249
|
+
}, schema.examples ? {
|
|
250
|
+
list: utils.examplesId(id)
|
|
251
|
+
} : undefined)
|
|
252
|
+
}, rest);
|
|
253
|
+
var _onChange = function _onChange(_ref) {
|
|
254
|
+
var value = _ref.target.value;
|
|
216
255
|
return onChange(value === "" ? options.emptyValue : value);
|
|
217
256
|
};
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
let {
|
|
221
|
-
target: {
|
|
222
|
-
value
|
|
223
|
-
}
|
|
224
|
-
} = _ref3;
|
|
257
|
+
var _onBlur = function _onBlur(_ref2) {
|
|
258
|
+
var value = _ref2.target.value;
|
|
225
259
|
return onBlur(id, value);
|
|
226
260
|
};
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
let {
|
|
230
|
-
target: {
|
|
231
|
-
value
|
|
232
|
-
}
|
|
233
|
-
} = _ref4;
|
|
261
|
+
var _onFocus = function _onFocus(_ref3) {
|
|
262
|
+
var value = _ref3.target.value;
|
|
234
263
|
return onFocus(id, value);
|
|
235
264
|
};
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
} = registry;
|
|
240
|
-
const displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema);
|
|
241
|
-
return /*#__PURE__*/React__default["default"].createElement(TextField__default["default"], {
|
|
265
|
+
var schemaUtils = registry.schemaUtils;
|
|
266
|
+
var displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema);
|
|
267
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(TextField__default["default"], _extends({
|
|
242
268
|
id: id,
|
|
269
|
+
name: id,
|
|
243
270
|
placeholder: placeholder,
|
|
244
271
|
label: displayLabel ? label || schema.title : false,
|
|
245
272
|
autoFocus: autofocus,
|
|
246
273
|
required: required,
|
|
247
|
-
disabled: disabled || readonly
|
|
248
|
-
|
|
274
|
+
disabled: disabled || readonly
|
|
275
|
+
}, otherProps, {
|
|
249
276
|
value: value || value === 0 ? value : "",
|
|
250
277
|
error: rawErrors.length > 0,
|
|
251
278
|
onChange: _onChange,
|
|
252
279
|
onBlur: _onBlur,
|
|
253
|
-
onFocus: _onFocus
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
280
|
+
onFocus: _onFocus
|
|
281
|
+
}, textFieldProps, {
|
|
282
|
+
"aria-describedby": utils.ariaDescribedByIds(id, !!schema.examples)
|
|
283
|
+
})), Array.isArray(schema.examples) && /*#__PURE__*/React__default["default"].createElement("datalist", {
|
|
284
|
+
id: utils.examplesId(id)
|
|
285
|
+
}, schema.examples.concat(schema["default"] && !schema.examples.includes(schema["default"]) ? [schema["default"]] : []).map(function (example) {
|
|
286
|
+
return /*#__PURE__*/React__default["default"].createElement("option", {
|
|
287
|
+
key: example,
|
|
288
|
+
value: example
|
|
289
|
+
});
|
|
290
|
+
})));
|
|
291
|
+
}
|
|
263
292
|
|
|
293
|
+
/** The `DescriptionField` is the template to use to render the description of a field
|
|
294
|
+
*
|
|
295
|
+
* @param props - The `DescriptionFieldProps` for this component
|
|
296
|
+
*/
|
|
297
|
+
function DescriptionField(props) {
|
|
298
|
+
var id = props.id,
|
|
299
|
+
description = props.description;
|
|
264
300
|
if (description) {
|
|
265
301
|
return /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
|
|
266
302
|
id: id,
|
|
@@ -270,14 +306,15 @@
|
|
|
270
306
|
}
|
|
271
307
|
}, description);
|
|
272
308
|
}
|
|
273
|
-
|
|
274
309
|
return null;
|
|
275
|
-
}
|
|
310
|
+
}
|
|
276
311
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
312
|
+
/** The `ErrorList` component is the template that renders the all the errors associated with the fields in the `Form`
|
|
313
|
+
*
|
|
314
|
+
* @param props - The `ErrorListProps` for this component
|
|
315
|
+
*/
|
|
316
|
+
function ErrorList(_ref) {
|
|
317
|
+
var errors = _ref.errors;
|
|
281
318
|
return /*#__PURE__*/React__default["default"].createElement(Paper__default["default"], {
|
|
282
319
|
elevation: 2
|
|
283
320
|
}, /*#__PURE__*/React__default["default"].createElement(Box__default["default"], {
|
|
@@ -287,7 +324,7 @@
|
|
|
287
324
|
variant: "h6"
|
|
288
325
|
}, "Errors"), /*#__PURE__*/React__default["default"].createElement(List__default["default"], {
|
|
289
326
|
dense: true
|
|
290
|
-
}, errors.map((error, i)
|
|
327
|
+
}, errors.map(function (error, i) {
|
|
291
328
|
return /*#__PURE__*/React__default["default"].createElement(ListItem__default["default"], {
|
|
292
329
|
key: i
|
|
293
330
|
}, /*#__PURE__*/React__default["default"].createElement(ListItemIcon__default["default"], null, /*#__PURE__*/React__default["default"].createElement(ErrorIcon__default["default"], {
|
|
@@ -296,144 +333,119 @@
|
|
|
296
333
|
primary: error.stack
|
|
297
334
|
}));
|
|
298
335
|
}))));
|
|
299
|
-
}
|
|
336
|
+
}
|
|
300
337
|
|
|
338
|
+
var _excluded$1 = ["icon", "color", "uiSchema", "registry"],
|
|
339
|
+
_excluded2 = ["iconType"];
|
|
301
340
|
function MuiIconButton(props) {
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
} = props;
|
|
307
|
-
return /*#__PURE__*/React__default["default"].createElement(IconButton__default["default"], { ...otherProps,
|
|
341
|
+
var icon = props.icon,
|
|
342
|
+
color = props.color,
|
|
343
|
+
otherProps = _objectWithoutPropertiesLoose(props, _excluded$1);
|
|
344
|
+
return /*#__PURE__*/React__default["default"].createElement(IconButton__default["default"], _extends({}, otherProps, {
|
|
308
345
|
size: "small",
|
|
309
346
|
color: color
|
|
310
|
-
}, icon);
|
|
347
|
+
}), icon);
|
|
311
348
|
}
|
|
312
349
|
function MoveDownButton(props) {
|
|
313
|
-
return /*#__PURE__*/React__default["default"].createElement(MuiIconButton, {
|
|
314
|
-
title: "Move down"
|
|
315
|
-
|
|
350
|
+
return /*#__PURE__*/React__default["default"].createElement(MuiIconButton, _extends({
|
|
351
|
+
title: "Move down"
|
|
352
|
+
}, props, {
|
|
316
353
|
icon: /*#__PURE__*/React__default["default"].createElement(ArrowDownwardIcon__default["default"], {
|
|
317
354
|
fontSize: "small"
|
|
318
355
|
})
|
|
319
|
-
});
|
|
356
|
+
}));
|
|
320
357
|
}
|
|
321
358
|
function MoveUpButton(props) {
|
|
322
|
-
return /*#__PURE__*/React__default["default"].createElement(MuiIconButton, {
|
|
323
|
-
title: "Move up"
|
|
324
|
-
|
|
359
|
+
return /*#__PURE__*/React__default["default"].createElement(MuiIconButton, _extends({
|
|
360
|
+
title: "Move up"
|
|
361
|
+
}, props, {
|
|
325
362
|
icon: /*#__PURE__*/React__default["default"].createElement(ArrowUpwardIcon__default["default"], {
|
|
326
363
|
fontSize: "small"
|
|
327
364
|
})
|
|
328
|
-
});
|
|
365
|
+
}));
|
|
329
366
|
}
|
|
330
367
|
function RemoveButton(props) {
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
title: "Remove",
|
|
337
|
-
...otherProps,
|
|
368
|
+
var iconType = props.iconType,
|
|
369
|
+
otherProps = _objectWithoutPropertiesLoose(props, _excluded2);
|
|
370
|
+
return /*#__PURE__*/React__default["default"].createElement(MuiIconButton, _extends({
|
|
371
|
+
title: "Remove"
|
|
372
|
+
}, otherProps, {
|
|
338
373
|
color: "error",
|
|
339
374
|
icon: /*#__PURE__*/React__default["default"].createElement(RemoveIcon__default["default"], {
|
|
340
375
|
fontSize: iconType === "default" ? undefined : "small"
|
|
341
376
|
})
|
|
342
|
-
});
|
|
377
|
+
}));
|
|
343
378
|
}
|
|
344
379
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
required,
|
|
356
|
-
schema,
|
|
357
|
-
registry
|
|
358
|
-
} = _ref;
|
|
359
|
-
const {
|
|
360
|
-
RemoveButton
|
|
361
|
-
} = registry.templates.ButtonTemplates;
|
|
362
|
-
const keyLabel = label + " Key"; // i18n ?
|
|
363
|
-
|
|
364
|
-
const additional = (utils.ADDITIONAL_PROPERTY_FLAG in schema);
|
|
365
|
-
const btnStyle = {
|
|
366
|
-
flex: 1,
|
|
367
|
-
paddingLeft: 6,
|
|
368
|
-
paddingRight: 6,
|
|
369
|
-
fontWeight: "bold"
|
|
370
|
-
};
|
|
371
|
-
|
|
372
|
-
if (!additional) {
|
|
373
|
-
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
374
|
-
className: classNames
|
|
375
|
-
}, children);
|
|
380
|
+
/** The `FieldErrorTemplate` component renders the errors local to the particular field
|
|
381
|
+
*
|
|
382
|
+
* @param props - The `FieldErrorProps` for the errors being rendered
|
|
383
|
+
*/
|
|
384
|
+
function FieldErrorTemplate(props) {
|
|
385
|
+
var _props$errors = props.errors,
|
|
386
|
+
errors = _props$errors === void 0 ? [] : _props$errors,
|
|
387
|
+
idSchema = props.idSchema;
|
|
388
|
+
if (errors.length === 0) {
|
|
389
|
+
return null;
|
|
376
390
|
}
|
|
391
|
+
var id = utils.errorId(idSchema);
|
|
392
|
+
return /*#__PURE__*/React__default["default"].createElement(List__default["default"], {
|
|
393
|
+
dense: true,
|
|
394
|
+
disablePadding: true
|
|
395
|
+
}, errors.map(function (error, i) {
|
|
396
|
+
return /*#__PURE__*/React__default["default"].createElement(ListItem__default["default"], {
|
|
397
|
+
key: i,
|
|
398
|
+
disableGutters: true
|
|
399
|
+
}, /*#__PURE__*/React__default["default"].createElement(FormHelperText__default["default"], {
|
|
400
|
+
id: id
|
|
401
|
+
}, error));
|
|
402
|
+
}));
|
|
403
|
+
}
|
|
377
404
|
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
},
|
|
392
|
-
|
|
393
|
-
xs: true
|
|
394
|
-
}, /*#__PURE__*/React__default["default"].createElement(FormControl__default["default"], {
|
|
395
|
-
fullWidth: true,
|
|
396
|
-
required: required
|
|
397
|
-
}, /*#__PURE__*/React__default["default"].createElement(InputLabel__default["default"], null, keyLabel), /*#__PURE__*/React__default["default"].createElement(Input__default["default"], {
|
|
398
|
-
defaultValue: label,
|
|
399
|
-
disabled: disabled || readonly,
|
|
400
|
-
id: id + "-key",
|
|
401
|
-
name: id + "-key",
|
|
402
|
-
onBlur: !readonly ? handleBlur : undefined,
|
|
403
|
-
type: "text"
|
|
404
|
-
}))), /*#__PURE__*/React__default["default"].createElement(Grid__default["default"], {
|
|
405
|
-
item: true,
|
|
406
|
-
xs: true
|
|
407
|
-
}, children), /*#__PURE__*/React__default["default"].createElement(Grid__default["default"], {
|
|
408
|
-
item: true
|
|
409
|
-
}, /*#__PURE__*/React__default["default"].createElement(RemoveButton, {
|
|
410
|
-
iconType: "default",
|
|
411
|
-
style: btnStyle,
|
|
412
|
-
disabled: disabled || readonly,
|
|
413
|
-
onClick: onDropPropertyClick(label)
|
|
414
|
-
})));
|
|
415
|
-
};
|
|
416
|
-
|
|
417
|
-
const FieldTemplate = _ref => {
|
|
418
|
-
let {
|
|
419
|
-
id,
|
|
420
|
-
children,
|
|
421
|
-
classNames,
|
|
422
|
-
disabled,
|
|
423
|
-
displayLabel,
|
|
424
|
-
hidden,
|
|
425
|
-
label,
|
|
426
|
-
onDropPropertyClick,
|
|
427
|
-
onKeyChange,
|
|
428
|
-
readonly,
|
|
429
|
-
required,
|
|
430
|
-
rawErrors = [],
|
|
431
|
-
rawHelp,
|
|
432
|
-
rawDescription,
|
|
433
|
-
schema,
|
|
434
|
-
registry
|
|
435
|
-
} = _ref;
|
|
405
|
+
/** The `FieldHelpTemplate` component renders any help desired for a field
|
|
406
|
+
*
|
|
407
|
+
* @param props - The `FieldHelpProps` to be rendered
|
|
408
|
+
*/
|
|
409
|
+
function FieldHelpTemplate(props) {
|
|
410
|
+
var idSchema = props.idSchema,
|
|
411
|
+
help = props.help;
|
|
412
|
+
if (!help) {
|
|
413
|
+
return null;
|
|
414
|
+
}
|
|
415
|
+
var id = utils.helpId(idSchema);
|
|
416
|
+
return /*#__PURE__*/React__default["default"].createElement(FormHelperText__default["default"], {
|
|
417
|
+
id: id
|
|
418
|
+
}, help);
|
|
419
|
+
}
|
|
436
420
|
|
|
421
|
+
/** The `FieldTemplate` component is the template used by `SchemaField` to render any field. It renders the field
|
|
422
|
+
* content, (label, description, children, errors and help) inside of a `WrapIfAdditional` component.
|
|
423
|
+
*
|
|
424
|
+
* @param props - The `FieldTemplateProps` for this component
|
|
425
|
+
*/
|
|
426
|
+
function FieldTemplate(props) {
|
|
427
|
+
var id = props.id,
|
|
428
|
+
children = props.children,
|
|
429
|
+
classNames = props.classNames,
|
|
430
|
+
style = props.style,
|
|
431
|
+
disabled = props.disabled,
|
|
432
|
+
displayLabel = props.displayLabel,
|
|
433
|
+
hidden = props.hidden,
|
|
434
|
+
label = props.label,
|
|
435
|
+
onDropPropertyClick = props.onDropPropertyClick,
|
|
436
|
+
onKeyChange = props.onKeyChange,
|
|
437
|
+
readonly = props.readonly,
|
|
438
|
+
required = props.required,
|
|
439
|
+
_props$rawErrors = props.rawErrors,
|
|
440
|
+
rawErrors = _props$rawErrors === void 0 ? [] : _props$rawErrors,
|
|
441
|
+
errors = props.errors,
|
|
442
|
+
help = props.help,
|
|
443
|
+
rawDescription = props.rawDescription,
|
|
444
|
+
schema = props.schema,
|
|
445
|
+
uiSchema = props.uiSchema,
|
|
446
|
+
registry = props.registry;
|
|
447
|
+
var uiOptions = utils.getUiOptions(uiSchema);
|
|
448
|
+
var WrapIfAdditionalTemplate = utils.getTemplate("WrapIfAdditionalTemplate", registry, uiOptions);
|
|
437
449
|
if (hidden) {
|
|
438
450
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
439
451
|
style: {
|
|
@@ -441,9 +453,9 @@
|
|
|
441
453
|
}
|
|
442
454
|
}, children);
|
|
443
455
|
}
|
|
444
|
-
|
|
445
|
-
return /*#__PURE__*/React__default["default"].createElement(WrapIfAdditional, {
|
|
456
|
+
return /*#__PURE__*/React__default["default"].createElement(WrapIfAdditionalTemplate, {
|
|
446
457
|
classNames: classNames,
|
|
458
|
+
style: style,
|
|
447
459
|
disabled: disabled,
|
|
448
460
|
id: id,
|
|
449
461
|
label: label,
|
|
@@ -452,6 +464,7 @@
|
|
|
452
464
|
readonly: readonly,
|
|
453
465
|
required: required,
|
|
454
466
|
schema: schema,
|
|
467
|
+
uiSchema: uiSchema,
|
|
455
468
|
registry: registry
|
|
456
469
|
}, /*#__PURE__*/React__default["default"].createElement(FormControl__default["default"], {
|
|
457
470
|
fullWidth: true,
|
|
@@ -460,54 +473,45 @@
|
|
|
460
473
|
}, children, displayLabel && rawDescription ? /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
|
|
461
474
|
variant: "caption",
|
|
462
475
|
color: "textSecondary"
|
|
463
|
-
}, rawDescription) : null,
|
|
464
|
-
|
|
465
|
-
disablePadding: true
|
|
466
|
-
}, rawErrors.map((error, i) => {
|
|
467
|
-
return /*#__PURE__*/React__default["default"].createElement(ListItem__default["default"], {
|
|
468
|
-
key: i,
|
|
469
|
-
disableGutters: true
|
|
470
|
-
}, /*#__PURE__*/React__default["default"].createElement(FormHelperText__default["default"], {
|
|
471
|
-
id: id
|
|
472
|
-
}, error));
|
|
473
|
-
})), rawHelp && /*#__PURE__*/React__default["default"].createElement(FormHelperText__default["default"], {
|
|
474
|
-
id: id
|
|
475
|
-
}, rawHelp)));
|
|
476
|
-
};
|
|
477
|
-
|
|
478
|
-
const ObjectFieldTemplate = _ref => {
|
|
479
|
-
let {
|
|
480
|
-
description,
|
|
481
|
-
title,
|
|
482
|
-
properties,
|
|
483
|
-
required,
|
|
484
|
-
disabled,
|
|
485
|
-
readonly,
|
|
486
|
-
uiSchema,
|
|
487
|
-
idSchema,
|
|
488
|
-
schema,
|
|
489
|
-
formData,
|
|
490
|
-
onAddClick,
|
|
491
|
-
registry
|
|
492
|
-
} = _ref;
|
|
493
|
-
const uiOptions = utils.getUiOptions(uiSchema);
|
|
494
|
-
const TitleFieldTemplate = utils.getTemplate("TitleFieldTemplate", registry, uiOptions);
|
|
495
|
-
const DescriptionFieldTemplate = utils.getTemplate("DescriptionFieldTemplate", registry, uiOptions); // Button templates are not overridden in the uiSchema
|
|
476
|
+
}, rawDescription) : null, errors, help));
|
|
477
|
+
}
|
|
496
478
|
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
479
|
+
/** The `ObjectFieldTemplate` is the template to use to render all the inner properties of an object along with the
|
|
480
|
+
* title and description if available. If the object is expandable, then an `AddButton` is also rendered after all
|
|
481
|
+
* the properties.
|
|
482
|
+
*
|
|
483
|
+
* @param props - The `ObjectFieldTemplateProps` for this component
|
|
484
|
+
*/
|
|
485
|
+
function ObjectFieldTemplate(props) {
|
|
486
|
+
var description = props.description,
|
|
487
|
+
title = props.title,
|
|
488
|
+
properties = props.properties,
|
|
489
|
+
required = props.required,
|
|
490
|
+
disabled = props.disabled,
|
|
491
|
+
readonly = props.readonly,
|
|
492
|
+
uiSchema = props.uiSchema,
|
|
493
|
+
idSchema = props.idSchema,
|
|
494
|
+
schema = props.schema,
|
|
495
|
+
formData = props.formData,
|
|
496
|
+
onAddClick = props.onAddClick,
|
|
497
|
+
registry = props.registry;
|
|
498
|
+
var uiOptions = utils.getUiOptions(uiSchema);
|
|
499
|
+
var TitleFieldTemplate = utils.getTemplate("TitleFieldTemplate", registry, uiOptions);
|
|
500
|
+
var DescriptionFieldTemplate = utils.getTemplate("DescriptionFieldTemplate", registry, uiOptions);
|
|
501
|
+
// Button templates are not overridden in the uiSchema
|
|
502
|
+
var AddButton = registry.templates.ButtonTemplates.AddButton;
|
|
502
503
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, (uiOptions.title || title) && /*#__PURE__*/React__default["default"].createElement(TitleFieldTemplate, {
|
|
503
|
-
id: idSchema
|
|
504
|
+
id: utils.titleId(idSchema),
|
|
504
505
|
title: title,
|
|
505
506
|
required: required,
|
|
507
|
+
schema: schema,
|
|
506
508
|
uiSchema: uiSchema,
|
|
507
509
|
registry: registry
|
|
508
510
|
}), (uiOptions.description || description) && /*#__PURE__*/React__default["default"].createElement(DescriptionFieldTemplate, {
|
|
509
|
-
id: idSchema
|
|
511
|
+
id: utils.descriptionId(idSchema),
|
|
510
512
|
description: uiOptions.description || description,
|
|
513
|
+
schema: schema,
|
|
514
|
+
uiSchema: uiSchema,
|
|
511
515
|
registry: registry
|
|
512
516
|
}), /*#__PURE__*/React__default["default"].createElement(Grid__default["default"], {
|
|
513
517
|
container: true,
|
|
@@ -515,16 +519,20 @@
|
|
|
515
519
|
style: {
|
|
516
520
|
marginTop: "10px"
|
|
517
521
|
}
|
|
518
|
-
}, properties.map((element, index)
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
522
|
+
}, properties.map(function (element, index) {
|
|
523
|
+
return (
|
|
524
|
+
// Remove the <Grid> if the inner element is hidden as the <Grid>
|
|
525
|
+
// itself would otherwise still take up space.
|
|
526
|
+
element.hidden ? element.content : /*#__PURE__*/React__default["default"].createElement(Grid__default["default"], {
|
|
527
|
+
item: true,
|
|
528
|
+
xs: 12,
|
|
529
|
+
key: index,
|
|
530
|
+
style: {
|
|
531
|
+
marginBottom: "10px"
|
|
532
|
+
}
|
|
533
|
+
}, element.content)
|
|
534
|
+
);
|
|
535
|
+
}), utils.canExpand(schema, uiSchema, formData) && /*#__PURE__*/React__default["default"].createElement(Grid__default["default"], {
|
|
528
536
|
container: true,
|
|
529
537
|
justifyContent: "flex-end"
|
|
530
538
|
}, /*#__PURE__*/React__default["default"].createElement(Grid__default["default"], {
|
|
@@ -532,36 +540,40 @@
|
|
|
532
540
|
}, /*#__PURE__*/React__default["default"].createElement(AddButton, {
|
|
533
541
|
className: "object-property-expand",
|
|
534
542
|
onClick: onAddClick(schema),
|
|
535
|
-
disabled: disabled || readonly
|
|
543
|
+
disabled: disabled || readonly,
|
|
544
|
+
uiSchema: uiSchema,
|
|
545
|
+
registry: registry
|
|
536
546
|
})))));
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
const SubmitButton = props => {
|
|
540
|
-
const {
|
|
541
|
-
submitText,
|
|
542
|
-
norender,
|
|
543
|
-
props: submitButtonProps
|
|
544
|
-
} = utils.getSubmitButtonOptions(props.uiSchema);
|
|
547
|
+
}
|
|
545
548
|
|
|
549
|
+
/** The `SubmitButton` renders a button that represent the `Submit` action on a form
|
|
550
|
+
*/
|
|
551
|
+
function SubmitButton(_ref) {
|
|
552
|
+
var uiSchema = _ref.uiSchema;
|
|
553
|
+
var _getSubmitButtonOptio = utils.getSubmitButtonOptions(uiSchema),
|
|
554
|
+
submitText = _getSubmitButtonOptio.submitText,
|
|
555
|
+
norender = _getSubmitButtonOptio.norender,
|
|
556
|
+
_getSubmitButtonOptio2 = _getSubmitButtonOptio.props,
|
|
557
|
+
submitButtonProps = _getSubmitButtonOptio2 === void 0 ? {} : _getSubmitButtonOptio2;
|
|
546
558
|
if (norender) {
|
|
547
559
|
return null;
|
|
548
560
|
}
|
|
549
|
-
|
|
550
561
|
return /*#__PURE__*/React__default["default"].createElement(Box__default["default"], {
|
|
551
562
|
marginTop: 3
|
|
552
|
-
}, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
|
|
563
|
+
}, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], _extends({
|
|
553
564
|
type: "submit",
|
|
554
565
|
variant: "contained",
|
|
555
|
-
color: "primary"
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
};
|
|
566
|
+
color: "primary"
|
|
567
|
+
}, submitButtonProps), submitText));
|
|
568
|
+
}
|
|
559
569
|
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
570
|
+
/** The `TitleField` is the template to use to render the title of a field
|
|
571
|
+
*
|
|
572
|
+
* @param props - The `TitleFieldProps` for this component
|
|
573
|
+
*/
|
|
574
|
+
function TitleField(_ref) {
|
|
575
|
+
var id = _ref.id,
|
|
576
|
+
title = _ref.title;
|
|
565
577
|
return /*#__PURE__*/React__default["default"].createElement(Box__default["default"], {
|
|
566
578
|
id: id,
|
|
567
579
|
mb: 1,
|
|
@@ -569,460 +581,501 @@
|
|
|
569
581
|
}, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
|
|
570
582
|
variant: "h5"
|
|
571
583
|
}, title), /*#__PURE__*/React__default["default"].createElement(Divider__default["default"], null));
|
|
572
|
-
}
|
|
584
|
+
}
|
|
573
585
|
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
586
|
+
/** The `WrapIfAdditional` component is used by the `FieldTemplate` to rename, or remove properties that are
|
|
587
|
+
* part of an `additionalProperties` part of a schema.
|
|
588
|
+
*
|
|
589
|
+
* @param props - The `WrapIfAdditionalProps` for this component
|
|
590
|
+
*/
|
|
591
|
+
function WrapIfAdditionalTemplate(props) {
|
|
592
|
+
var children = props.children,
|
|
593
|
+
classNames = props.classNames,
|
|
594
|
+
style = props.style,
|
|
595
|
+
disabled = props.disabled,
|
|
596
|
+
id = props.id,
|
|
597
|
+
label = props.label,
|
|
598
|
+
onDropPropertyClick = props.onDropPropertyClick,
|
|
599
|
+
onKeyChange = props.onKeyChange,
|
|
600
|
+
readonly = props.readonly,
|
|
601
|
+
required = props.required,
|
|
602
|
+
schema = props.schema,
|
|
603
|
+
uiSchema = props.uiSchema,
|
|
604
|
+
registry = props.registry;
|
|
605
|
+
// Button templates are not overridden in the uiSchema
|
|
606
|
+
var RemoveButton = registry.templates.ButtonTemplates.RemoveButton;
|
|
607
|
+
var keyLabel = label + " Key"; // i18n ?
|
|
608
|
+
var additional = (utils.ADDITIONAL_PROPERTY_FLAG in schema);
|
|
609
|
+
var btnStyle = {
|
|
610
|
+
flex: 1,
|
|
611
|
+
paddingLeft: 6,
|
|
612
|
+
paddingRight: 6,
|
|
613
|
+
fontWeight: "bold"
|
|
614
|
+
};
|
|
615
|
+
if (!additional) {
|
|
616
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
617
|
+
className: classNames,
|
|
618
|
+
style: style
|
|
619
|
+
}, children);
|
|
620
|
+
}
|
|
621
|
+
var handleBlur = function handleBlur(_ref) {
|
|
622
|
+
var target = _ref.target;
|
|
623
|
+
return onKeyChange(target.value);
|
|
624
|
+
};
|
|
625
|
+
return /*#__PURE__*/React__default["default"].createElement(Grid__default["default"], {
|
|
626
|
+
container: true,
|
|
627
|
+
key: id + "-key",
|
|
628
|
+
alignItems: "center",
|
|
629
|
+
spacing: 2,
|
|
630
|
+
className: classNames,
|
|
631
|
+
style: style
|
|
632
|
+
}, /*#__PURE__*/React__default["default"].createElement(Grid__default["default"], {
|
|
633
|
+
item: true,
|
|
634
|
+
xs: true
|
|
635
|
+
}, /*#__PURE__*/React__default["default"].createElement(FormControl__default["default"], {
|
|
636
|
+
fullWidth: true,
|
|
637
|
+
required: required
|
|
638
|
+
}, /*#__PURE__*/React__default["default"].createElement(InputLabel__default["default"], null, keyLabel), /*#__PURE__*/React__default["default"].createElement(Input__default["default"], {
|
|
639
|
+
defaultValue: label,
|
|
640
|
+
disabled: disabled || readonly,
|
|
641
|
+
id: id + "-key",
|
|
642
|
+
name: id + "-key",
|
|
643
|
+
onBlur: !readonly ? handleBlur : undefined,
|
|
644
|
+
type: "text"
|
|
645
|
+
}))), /*#__PURE__*/React__default["default"].createElement(Grid__default["default"], {
|
|
646
|
+
item: true,
|
|
647
|
+
xs: true
|
|
648
|
+
}, children), /*#__PURE__*/React__default["default"].createElement(Grid__default["default"], {
|
|
649
|
+
item: true
|
|
650
|
+
}, /*#__PURE__*/React__default["default"].createElement(RemoveButton, {
|
|
651
|
+
iconType: "default",
|
|
652
|
+
style: btnStyle,
|
|
653
|
+
disabled: disabled || readonly,
|
|
654
|
+
onClick: onDropPropertyClick(label),
|
|
655
|
+
uiSchema: uiSchema,
|
|
656
|
+
registry: registry
|
|
657
|
+
})));
|
|
658
|
+
}
|
|
591
659
|
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
660
|
+
function generateTemplates() {
|
|
661
|
+
return {
|
|
662
|
+
ArrayFieldItemTemplate: ArrayFieldItemTemplate,
|
|
663
|
+
ArrayFieldTemplate: ArrayFieldTemplate,
|
|
664
|
+
BaseInputTemplate: BaseInputTemplate,
|
|
665
|
+
ButtonTemplates: {
|
|
666
|
+
AddButton: AddButton,
|
|
667
|
+
MoveDownButton: MoveDownButton,
|
|
668
|
+
MoveUpButton: MoveUpButton,
|
|
669
|
+
RemoveButton: RemoveButton,
|
|
670
|
+
SubmitButton: SubmitButton
|
|
671
|
+
},
|
|
672
|
+
DescriptionFieldTemplate: DescriptionField,
|
|
673
|
+
ErrorListTemplate: ErrorList,
|
|
674
|
+
FieldErrorTemplate: FieldErrorTemplate,
|
|
675
|
+
FieldHelpTemplate: FieldHelpTemplate,
|
|
676
|
+
FieldTemplate: FieldTemplate,
|
|
677
|
+
ObjectFieldTemplate: ObjectFieldTemplate,
|
|
678
|
+
TitleFieldTemplate: TitleField,
|
|
679
|
+
WrapIfAdditionalTemplate: WrapIfAdditionalTemplate
|
|
680
|
+
};
|
|
681
|
+
}
|
|
682
|
+
var Templates = /*#__PURE__*/generateTemplates();
|
|
683
|
+
|
|
684
|
+
/** The `CheckBoxWidget` is a widget for rendering boolean properties.
|
|
685
|
+
* It is typically used to represent a boolean.
|
|
686
|
+
*
|
|
687
|
+
* @param props - The `WidgetProps` for this component
|
|
688
|
+
*/
|
|
689
|
+
function CheckboxWidget(props) {
|
|
690
|
+
var schema = props.schema,
|
|
691
|
+
id = props.id,
|
|
692
|
+
value = props.value,
|
|
693
|
+
disabled = props.disabled,
|
|
694
|
+
readonly = props.readonly,
|
|
695
|
+
label = props.label,
|
|
696
|
+
autofocus = props.autofocus,
|
|
697
|
+
onChange = props.onChange,
|
|
698
|
+
onBlur = props.onBlur,
|
|
699
|
+
onFocus = props.onFocus;
|
|
700
|
+
// Because an unchecked checkbox will cause html5 validation to fail, only add
|
|
605
701
|
// the "required" attribute if the field value must be "true", due to the
|
|
606
702
|
// "const" or "enum" keywords
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
let {
|
|
614
|
-
target: {
|
|
615
|
-
value
|
|
616
|
-
}
|
|
617
|
-
} = _ref;
|
|
703
|
+
var required = utils.schemaRequiresTrueValue(schema);
|
|
704
|
+
var _onChange = function _onChange(_, checked) {
|
|
705
|
+
return onChange(checked);
|
|
706
|
+
};
|
|
707
|
+
var _onBlur = function _onBlur(_ref) {
|
|
708
|
+
var value = _ref.target.value;
|
|
618
709
|
return onBlur(id, value);
|
|
619
710
|
};
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
let {
|
|
623
|
-
target: {
|
|
624
|
-
value
|
|
625
|
-
}
|
|
626
|
-
} = _ref2;
|
|
711
|
+
var _onFocus = function _onFocus(_ref2) {
|
|
712
|
+
var value = _ref2.target.value;
|
|
627
713
|
return onFocus(id, value);
|
|
628
714
|
};
|
|
629
|
-
|
|
630
715
|
return /*#__PURE__*/React__default["default"].createElement(FormControlLabel__default["default"], {
|
|
631
716
|
control: /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
|
|
632
717
|
id: id,
|
|
718
|
+
name: id,
|
|
633
719
|
checked: typeof value === "undefined" ? false : Boolean(value),
|
|
634
720
|
required: required,
|
|
635
721
|
disabled: disabled || readonly,
|
|
636
722
|
autoFocus: autofocus,
|
|
637
723
|
onChange: _onChange,
|
|
638
724
|
onBlur: _onBlur,
|
|
639
|
-
onFocus: _onFocus
|
|
725
|
+
onFocus: _onFocus,
|
|
726
|
+
"aria-describedby": utils.ariaDescribedByIds(id)
|
|
640
727
|
}),
|
|
641
728
|
label: label || ""
|
|
642
729
|
});
|
|
643
|
-
}
|
|
644
|
-
|
|
645
|
-
const selectValue = (value, selected, all) => {
|
|
646
|
-
const at = all.indexOf(value);
|
|
647
|
-
const updated = selected.slice(0, at).concat(value, selected.slice(at)); // As inserting values at predefined index positions doesn't work with empty
|
|
648
|
-
// arrays, we need to reorder the updated selection to match the initial order
|
|
649
|
-
|
|
650
|
-
return updated.sort((a, b) => all.indexOf(a) > all.indexOf(b));
|
|
651
|
-
};
|
|
652
|
-
|
|
653
|
-
const deselectValue = (value, selected) => {
|
|
654
|
-
return selected.filter(v => v !== value);
|
|
655
|
-
};
|
|
656
|
-
|
|
657
|
-
const CheckboxesWidget = _ref => {
|
|
658
|
-
let {
|
|
659
|
-
schema,
|
|
660
|
-
label,
|
|
661
|
-
id,
|
|
662
|
-
disabled,
|
|
663
|
-
options,
|
|
664
|
-
value,
|
|
665
|
-
autofocus,
|
|
666
|
-
readonly,
|
|
667
|
-
required,
|
|
668
|
-
onChange,
|
|
669
|
-
onBlur,
|
|
670
|
-
onFocus
|
|
671
|
-
} = _ref;
|
|
672
|
-
const {
|
|
673
|
-
enumOptions,
|
|
674
|
-
enumDisabled,
|
|
675
|
-
inline
|
|
676
|
-
} = options;
|
|
730
|
+
}
|
|
677
731
|
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
732
|
+
/** The `CheckboxesWidget` is a widget for rendering checkbox groups.
|
|
733
|
+
* It is typically used to represent an array of enums.
|
|
734
|
+
*
|
|
735
|
+
* @param props - The `WidgetProps` for this component
|
|
736
|
+
*/
|
|
737
|
+
function CheckboxesWidget(_ref) {
|
|
738
|
+
var schema = _ref.schema,
|
|
739
|
+
label = _ref.label,
|
|
740
|
+
id = _ref.id,
|
|
741
|
+
disabled = _ref.disabled,
|
|
742
|
+
options = _ref.options,
|
|
743
|
+
value = _ref.value,
|
|
744
|
+
autofocus = _ref.autofocus,
|
|
745
|
+
readonly = _ref.readonly,
|
|
746
|
+
required = _ref.required,
|
|
747
|
+
onChange = _ref.onChange,
|
|
748
|
+
onBlur = _ref.onBlur,
|
|
749
|
+
onFocus = _ref.onFocus;
|
|
750
|
+
var enumOptions = options.enumOptions,
|
|
751
|
+
enumDisabled = options.enumDisabled,
|
|
752
|
+
inline = options.inline;
|
|
753
|
+
var checkboxesValues = Array.isArray(value) ? value : [value];
|
|
754
|
+
var _onChange = function _onChange(option) {
|
|
755
|
+
return function (_ref2) {
|
|
756
|
+
var checked = _ref2.target.checked;
|
|
757
|
+
if (checked) {
|
|
758
|
+
onChange(utils.enumOptionsSelectValue(option.value, checkboxesValues, enumOptions));
|
|
759
|
+
} else {
|
|
760
|
+
onChange(utils.enumOptionsDeselectValue(option.value, checkboxesValues));
|
|
682
761
|
}
|
|
683
|
-
}
|
|
684
|
-
const all = enumOptions.map(_ref3 => {
|
|
685
|
-
let {
|
|
686
|
-
value
|
|
687
|
-
} = _ref3;
|
|
688
|
-
return value;
|
|
689
|
-
});
|
|
690
|
-
|
|
691
|
-
if (checked) {
|
|
692
|
-
onChange(selectValue(option.value, value, all));
|
|
693
|
-
} else {
|
|
694
|
-
onChange(deselectValue(option.value, value));
|
|
695
|
-
}
|
|
762
|
+
};
|
|
696
763
|
};
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
let {
|
|
700
|
-
target: {
|
|
701
|
-
value
|
|
702
|
-
}
|
|
703
|
-
} = _ref4;
|
|
764
|
+
var _onBlur = function _onBlur(_ref3) {
|
|
765
|
+
var value = _ref3.target.value;
|
|
704
766
|
return onBlur(id, value);
|
|
705
767
|
};
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
let {
|
|
709
|
-
target: {
|
|
710
|
-
value
|
|
711
|
-
}
|
|
712
|
-
} = _ref5;
|
|
768
|
+
var _onFocus = function _onFocus(_ref4) {
|
|
769
|
+
var value = _ref4.target.value;
|
|
713
770
|
return onFocus(id, value);
|
|
714
771
|
};
|
|
715
|
-
|
|
716
772
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(FormLabel__default["default"], {
|
|
717
773
|
required: required,
|
|
718
774
|
htmlFor: id
|
|
719
775
|
}, label || schema.title), /*#__PURE__*/React__default["default"].createElement(FormGroup__default["default"], {
|
|
720
776
|
id: id,
|
|
721
777
|
row: !!inline
|
|
722
|
-
}, enumOptions.map((option, index)
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
id: id
|
|
778
|
+
}, Array.isArray(enumOptions) && enumOptions.map(function (option, index) {
|
|
779
|
+
var checked = checkboxesValues.includes(option.value);
|
|
780
|
+
var itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;
|
|
781
|
+
var checkbox = /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
|
|
782
|
+
id: utils.optionId(id, option),
|
|
783
|
+
name: id,
|
|
727
784
|
checked: checked,
|
|
728
785
|
disabled: disabled || itemDisabled || readonly,
|
|
729
786
|
autoFocus: autofocus && index === 0,
|
|
730
787
|
onChange: _onChange(option),
|
|
731
788
|
onBlur: _onBlur,
|
|
732
|
-
onFocus: _onFocus
|
|
789
|
+
onFocus: _onFocus,
|
|
790
|
+
"aria-describedby": utils.ariaDescribedByIds(id)
|
|
733
791
|
});
|
|
734
792
|
return /*#__PURE__*/React__default["default"].createElement(FormControlLabel__default["default"], {
|
|
735
793
|
control: checkbox,
|
|
736
|
-
key:
|
|
794
|
+
key: option.value,
|
|
737
795
|
label: option.label
|
|
738
796
|
});
|
|
739
797
|
})));
|
|
740
|
-
}
|
|
798
|
+
}
|
|
741
799
|
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
800
|
+
/** The `DateWidget` component uses the `BaseInputTemplate` changing the type to `date` and transforms
|
|
801
|
+
* the value to undefined when it is falsy during the `onChange` handling.
|
|
802
|
+
*
|
|
803
|
+
* @param props - The `WidgetProps` for this component
|
|
804
|
+
*/
|
|
805
|
+
function DateWidget(props) {
|
|
806
|
+
var options = props.options,
|
|
807
|
+
registry = props.registry;
|
|
808
|
+
var BaseInputTemplate = utils.getTemplate("BaseInputTemplate", registry, options);
|
|
809
|
+
return /*#__PURE__*/React__default["default"].createElement(BaseInputTemplate, _extends({
|
|
749
810
|
type: "date",
|
|
750
811
|
InputLabelProps: {
|
|
751
812
|
shrink: true
|
|
752
|
-
}
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
};
|
|
756
|
-
|
|
757
|
-
const DateTimeWidget = props => {
|
|
758
|
-
const {
|
|
759
|
-
options,
|
|
760
|
-
registry
|
|
761
|
-
} = props;
|
|
762
|
-
const BaseInputTemplate = utils.getTemplate("BaseInputTemplate", registry, options);
|
|
763
|
-
const value = utils.utcToLocal(props.value);
|
|
813
|
+
}
|
|
814
|
+
}, props));
|
|
815
|
+
}
|
|
764
816
|
|
|
765
|
-
|
|
817
|
+
/** The `DateTimeWidget` component uses the `BaseInputTemplate` changing the type to `datetime-local` and transforms
|
|
818
|
+
* the value to/from utc using the appropriate utility functions.
|
|
819
|
+
*
|
|
820
|
+
* @param props - The `WidgetProps` for this component
|
|
821
|
+
*/
|
|
822
|
+
function DateTimeWidget(props) {
|
|
823
|
+
var options = props.options,
|
|
824
|
+
registry = props.registry;
|
|
825
|
+
var BaseInputTemplate = utils.getTemplate("BaseInputTemplate", registry, options);
|
|
826
|
+
var value = utils.utcToLocal(props.value);
|
|
827
|
+
var onChange = function onChange(value) {
|
|
766
828
|
props.onChange(utils.localToUTC(value));
|
|
767
829
|
};
|
|
768
|
-
|
|
769
|
-
return /*#__PURE__*/React__default["default"].createElement(BaseInputTemplate, {
|
|
830
|
+
return /*#__PURE__*/React__default["default"].createElement(BaseInputTemplate, _extends({
|
|
770
831
|
type: "datetime-local",
|
|
771
832
|
InputLabelProps: {
|
|
772
833
|
shrink: true
|
|
773
|
-
}
|
|
774
|
-
|
|
834
|
+
}
|
|
835
|
+
}, props, {
|
|
775
836
|
value: value,
|
|
776
837
|
onChange: onChange
|
|
777
|
-
});
|
|
778
|
-
}
|
|
779
|
-
|
|
780
|
-
const RadioWidget = _ref => {
|
|
781
|
-
let {
|
|
782
|
-
id,
|
|
783
|
-
schema,
|
|
784
|
-
options,
|
|
785
|
-
value,
|
|
786
|
-
required,
|
|
787
|
-
disabled,
|
|
788
|
-
readonly,
|
|
789
|
-
label,
|
|
790
|
-
onChange,
|
|
791
|
-
onBlur,
|
|
792
|
-
onFocus
|
|
793
|
-
} = _ref;
|
|
794
|
-
const {
|
|
795
|
-
enumOptions,
|
|
796
|
-
enumDisabled
|
|
797
|
-
} = options;
|
|
798
|
-
|
|
799
|
-
const _onChange = (_, value) => onChange(schema.type == "boolean" ? value !== "false" : value);
|
|
838
|
+
}));
|
|
839
|
+
}
|
|
800
840
|
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
841
|
+
/** The `RadioWidget` is a widget for rendering a radio group.
|
|
842
|
+
* It is typically used with a string property constrained with enum options.
|
|
843
|
+
*
|
|
844
|
+
* @param props - The `WidgetProps` for this component
|
|
845
|
+
*/
|
|
846
|
+
function RadioWidget(_ref) {
|
|
847
|
+
var id = _ref.id,
|
|
848
|
+
schema = _ref.schema,
|
|
849
|
+
options = _ref.options,
|
|
850
|
+
value = _ref.value,
|
|
851
|
+
required = _ref.required,
|
|
852
|
+
disabled = _ref.disabled,
|
|
853
|
+
readonly = _ref.readonly,
|
|
854
|
+
label = _ref.label,
|
|
855
|
+
onChange = _ref.onChange,
|
|
856
|
+
onBlur = _ref.onBlur,
|
|
857
|
+
onFocus = _ref.onFocus;
|
|
858
|
+
var enumOptions = options.enumOptions,
|
|
859
|
+
enumDisabled = options.enumDisabled;
|
|
860
|
+
var _onChange = function _onChange(_, value) {
|
|
861
|
+
return onChange(schema.type == "boolean" ? value !== "false" : value);
|
|
862
|
+
};
|
|
863
|
+
var _onBlur = function _onBlur(_ref2) {
|
|
864
|
+
var value = _ref2.target.value;
|
|
807
865
|
return onBlur(id, value);
|
|
808
866
|
};
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
let {
|
|
812
|
-
target: {
|
|
813
|
-
value
|
|
814
|
-
}
|
|
815
|
-
} = _ref3;
|
|
867
|
+
var _onFocus = function _onFocus(_ref3) {
|
|
868
|
+
var value = _ref3.target.value;
|
|
816
869
|
return onFocus(id, value);
|
|
817
870
|
};
|
|
818
|
-
|
|
819
|
-
const row = options ? options.inline : false;
|
|
871
|
+
var row = options ? options.inline : false;
|
|
820
872
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(FormLabel__default["default"], {
|
|
821
873
|
required: required,
|
|
822
874
|
htmlFor: id
|
|
823
875
|
}, label || schema.title), /*#__PURE__*/React__default["default"].createElement(RadioGroup__default["default"], {
|
|
824
876
|
id: id,
|
|
877
|
+
name: id,
|
|
825
878
|
value: "" + value,
|
|
826
879
|
row: row,
|
|
827
880
|
onChange: _onChange,
|
|
828
881
|
onBlur: _onBlur,
|
|
829
|
-
onFocus: _onFocus
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
882
|
+
onFocus: _onFocus,
|
|
883
|
+
"aria-describedby": utils.ariaDescribedByIds(id)
|
|
884
|
+
}, Array.isArray(enumOptions) && enumOptions.map(function (option) {
|
|
885
|
+
var itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;
|
|
886
|
+
var radio = /*#__PURE__*/React__default["default"].createElement(FormControlLabel__default["default"], {
|
|
833
887
|
control: /*#__PURE__*/React__default["default"].createElement(Radio__default["default"], {
|
|
834
|
-
name: id
|
|
835
|
-
|
|
836
|
-
|
|
888
|
+
name: id,
|
|
889
|
+
id: utils.optionId(id, option),
|
|
890
|
+
color: "primary"
|
|
837
891
|
}),
|
|
838
892
|
label: "" + option.label,
|
|
839
893
|
value: "" + option.value,
|
|
840
|
-
key:
|
|
894
|
+
key: option.value,
|
|
841
895
|
disabled: disabled || itemDisabled || readonly
|
|
842
896
|
});
|
|
843
897
|
return radio;
|
|
844
898
|
})));
|
|
845
|
-
}
|
|
846
|
-
|
|
847
|
-
const RangeWidget = _ref => {
|
|
848
|
-
let {
|
|
849
|
-
value,
|
|
850
|
-
readonly,
|
|
851
|
-
disabled,
|
|
852
|
-
onBlur,
|
|
853
|
-
onFocus,
|
|
854
|
-
options,
|
|
855
|
-
schema,
|
|
856
|
-
onChange,
|
|
857
|
-
required,
|
|
858
|
-
label,
|
|
859
|
-
id
|
|
860
|
-
} = _ref;
|
|
861
|
-
const sliderProps = {
|
|
862
|
-
value,
|
|
863
|
-
label,
|
|
864
|
-
id,
|
|
865
|
-
...utils.rangeSpec(schema)
|
|
866
|
-
};
|
|
899
|
+
}
|
|
867
900
|
|
|
868
|
-
|
|
869
|
-
|
|
901
|
+
/** The `RangeWidget` component uses the `BaseInputTemplate` changing the type to `range` and wrapping the result
|
|
902
|
+
* in a div, with the value along side it.
|
|
903
|
+
*
|
|
904
|
+
* @param props - The `WidgetProps` for this component
|
|
905
|
+
*/
|
|
906
|
+
function RangeWidget(props) {
|
|
907
|
+
var value = props.value,
|
|
908
|
+
readonly = props.readonly,
|
|
909
|
+
disabled = props.disabled,
|
|
910
|
+
onBlur = props.onBlur,
|
|
911
|
+
onFocus = props.onFocus,
|
|
912
|
+
options = props.options,
|
|
913
|
+
schema = props.schema,
|
|
914
|
+
onChange = props.onChange,
|
|
915
|
+
required = props.required,
|
|
916
|
+
label = props.label,
|
|
917
|
+
id = props.id;
|
|
918
|
+
var sliderProps = _extends({
|
|
919
|
+
value: value,
|
|
920
|
+
label: label,
|
|
921
|
+
id: id,
|
|
922
|
+
name: id
|
|
923
|
+
}, utils.rangeSpec(schema));
|
|
924
|
+
var _onChange = function _onChange(_, value) {
|
|
925
|
+
onChange(value ? value : options.emptyValue);
|
|
870
926
|
};
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
let {
|
|
874
|
-
target: {
|
|
875
|
-
value
|
|
876
|
-
}
|
|
877
|
-
} = _ref2;
|
|
927
|
+
var _onBlur = function _onBlur(_ref) {
|
|
928
|
+
var value = _ref.target.value;
|
|
878
929
|
return onBlur(id, value);
|
|
879
930
|
};
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
let {
|
|
883
|
-
target: {
|
|
884
|
-
value
|
|
885
|
-
}
|
|
886
|
-
} = _ref3;
|
|
931
|
+
var _onFocus = function _onFocus(_ref2) {
|
|
932
|
+
var value = _ref2.target.value;
|
|
887
933
|
return onFocus(id, value);
|
|
888
934
|
};
|
|
889
|
-
|
|
890
935
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(FormLabel__default["default"], {
|
|
891
936
|
required: required,
|
|
892
|
-
|
|
893
|
-
}, label), /*#__PURE__*/React__default["default"].createElement(Slider__default["default"], {
|
|
937
|
+
htmlFor: id
|
|
938
|
+
}, label || schema.title), /*#__PURE__*/React__default["default"].createElement(Slider__default["default"], _extends({
|
|
894
939
|
disabled: disabled || readonly,
|
|
895
940
|
onChange: _onChange,
|
|
896
941
|
onBlur: _onBlur,
|
|
897
942
|
onFocus: _onFocus,
|
|
898
|
-
valueLabelDisplay: "auto"
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
const SelectWidget = _ref => {
|
|
904
|
-
let {
|
|
905
|
-
schema,
|
|
906
|
-
id,
|
|
907
|
-
options,
|
|
908
|
-
label,
|
|
909
|
-
required,
|
|
910
|
-
disabled,
|
|
911
|
-
readonly,
|
|
912
|
-
value,
|
|
913
|
-
multiple,
|
|
914
|
-
autofocus,
|
|
915
|
-
onChange,
|
|
916
|
-
onBlur,
|
|
917
|
-
onFocus,
|
|
918
|
-
rawErrors = []
|
|
919
|
-
} = _ref;
|
|
920
|
-
const {
|
|
921
|
-
enumOptions,
|
|
922
|
-
enumDisabled
|
|
923
|
-
} = options;
|
|
924
|
-
const emptyValue = multiple ? [] : "";
|
|
943
|
+
valueLabelDisplay: "auto"
|
|
944
|
+
}, sliderProps, {
|
|
945
|
+
"aria-describedby": utils.ariaDescribedByIds(id)
|
|
946
|
+
})));
|
|
947
|
+
}
|
|
925
948
|
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
949
|
+
var _excluded = ["schema", "id", "options", "label", "required", "disabled", "placeholder", "readonly", "value", "multiple", "autofocus", "onChange", "onBlur", "onFocus", "rawErrors", "registry", "uiSchema", "hideError", "formContext"];
|
|
950
|
+
/** The `SelectWidget` is a widget for rendering dropdowns.
|
|
951
|
+
* It is typically used with string properties constrained with enum options.
|
|
952
|
+
*
|
|
953
|
+
* @param props - The `WidgetProps` for this component
|
|
954
|
+
*/
|
|
955
|
+
function SelectWidget(_ref) {
|
|
956
|
+
var schema = _ref.schema,
|
|
957
|
+
id = _ref.id,
|
|
958
|
+
options = _ref.options,
|
|
959
|
+
label = _ref.label,
|
|
960
|
+
required = _ref.required,
|
|
961
|
+
disabled = _ref.disabled,
|
|
962
|
+
placeholder = _ref.placeholder,
|
|
963
|
+
readonly = _ref.readonly,
|
|
964
|
+
value = _ref.value,
|
|
965
|
+
multiple = _ref.multiple,
|
|
966
|
+
autofocus = _ref.autofocus,
|
|
967
|
+
onChange = _ref.onChange,
|
|
968
|
+
onBlur = _ref.onBlur,
|
|
969
|
+
onFocus = _ref.onFocus,
|
|
970
|
+
_ref$rawErrors = _ref.rawErrors,
|
|
971
|
+
rawErrors = _ref$rawErrors === void 0 ? [] : _ref$rawErrors,
|
|
972
|
+
textFieldProps = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
973
|
+
var enumOptions = options.enumOptions,
|
|
974
|
+
enumDisabled = options.enumDisabled;
|
|
975
|
+
multiple = typeof multiple === "undefined" ? false : !!multiple;
|
|
976
|
+
var emptyValue = multiple ? [] : "";
|
|
977
|
+
var isEmpty = typeof value === "undefined" || multiple && value.length < 1 || !multiple && value === emptyValue;
|
|
978
|
+
var _onChange = function _onChange(_ref2) {
|
|
979
|
+
var value = _ref2.target.value;
|
|
932
980
|
return onChange(utils.processSelectValue(schema, value, options));
|
|
933
981
|
};
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
let {
|
|
937
|
-
target: {
|
|
938
|
-
value
|
|
939
|
-
}
|
|
940
|
-
} = _ref3;
|
|
982
|
+
var _onBlur = function _onBlur(_ref3) {
|
|
983
|
+
var value = _ref3.target.value;
|
|
941
984
|
return onBlur(id, utils.processSelectValue(schema, value, options));
|
|
942
985
|
};
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
let {
|
|
946
|
-
target: {
|
|
947
|
-
value
|
|
948
|
-
}
|
|
949
|
-
} = _ref4;
|
|
986
|
+
var _onFocus = function _onFocus(_ref4) {
|
|
987
|
+
var value = _ref4.target.value;
|
|
950
988
|
return onFocus(id, utils.processSelectValue(schema, value, options));
|
|
951
989
|
};
|
|
952
|
-
|
|
953
|
-
return /*#__PURE__*/React__default["default"].createElement(TextField__default["default"], {
|
|
990
|
+
return /*#__PURE__*/React__default["default"].createElement(TextField__default["default"], _extends({
|
|
954
991
|
id: id,
|
|
992
|
+
name: id,
|
|
955
993
|
label: label || schema.title,
|
|
956
|
-
|
|
957
|
-
value: typeof value === "undefined" ? emptyValue : value,
|
|
994
|
+
value: isEmpty ? emptyValue : value,
|
|
958
995
|
required: required,
|
|
959
996
|
disabled: disabled || readonly,
|
|
960
997
|
autoFocus: autofocus,
|
|
998
|
+
placeholder: placeholder,
|
|
961
999
|
error: rawErrors.length > 0,
|
|
962
1000
|
onChange: _onChange,
|
|
963
1001
|
onBlur: _onBlur,
|
|
964
|
-
onFocus: _onFocus
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
}
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
1002
|
+
onFocus: _onFocus
|
|
1003
|
+
}, textFieldProps, {
|
|
1004
|
+
select // Apply this and the following props after the potential overrides defined in textFieldProps
|
|
1005
|
+
: true,
|
|
1006
|
+
InputLabelProps: _extends({}, textFieldProps.InputLabelProps, {
|
|
1007
|
+
shrink: !isEmpty
|
|
1008
|
+
}),
|
|
1009
|
+
SelectProps: _extends({}, textFieldProps.SelectProps, {
|
|
1010
|
+
multiple: multiple
|
|
1011
|
+
}),
|
|
1012
|
+
"aria-describedby": utils.ariaDescribedByIds(id)
|
|
1013
|
+
}), enumOptions.map(function (_ref5, i) {
|
|
1014
|
+
var value = _ref5.value,
|
|
1015
|
+
label = _ref5.label;
|
|
1016
|
+
var disabled = enumDisabled && enumDisabled.indexOf(value) != -1;
|
|
977
1017
|
return /*#__PURE__*/React__default["default"].createElement(MenuItem__default["default"], {
|
|
978
1018
|
key: i,
|
|
979
1019
|
value: value,
|
|
980
1020
|
disabled: disabled
|
|
981
1021
|
}, label);
|
|
982
1022
|
}));
|
|
983
|
-
}
|
|
984
|
-
|
|
985
|
-
const TextareaWidget = props => {
|
|
986
|
-
const {
|
|
987
|
-
options,
|
|
988
|
-
registry
|
|
989
|
-
} = props;
|
|
990
|
-
const BaseInputTemplate = utils.getTemplate("BaseInputTemplate", registry, options);
|
|
991
|
-
let rows = 5;
|
|
1023
|
+
}
|
|
992
1024
|
|
|
1025
|
+
/** The `TextareaWidget` is a widget for rendering input fields as textarea.
|
|
1026
|
+
*
|
|
1027
|
+
* @param props - The `WidgetProps` for this component
|
|
1028
|
+
*/
|
|
1029
|
+
function TextareaWidget(props) {
|
|
1030
|
+
var options = props.options,
|
|
1031
|
+
registry = props.registry;
|
|
1032
|
+
var BaseInputTemplate = utils.getTemplate("BaseInputTemplate", registry, options);
|
|
1033
|
+
var rows = 5;
|
|
993
1034
|
if (typeof options.rows === "string" || typeof options.rows === "number") {
|
|
994
1035
|
rows = options.rows;
|
|
995
1036
|
}
|
|
996
|
-
|
|
997
|
-
return /*#__PURE__*/React__default["default"].createElement(BaseInputTemplate, { ...props,
|
|
1037
|
+
return /*#__PURE__*/React__default["default"].createElement(BaseInputTemplate, _extends({}, props, {
|
|
998
1038
|
multiline: true,
|
|
999
1039
|
rows: rows
|
|
1000
|
-
});
|
|
1001
|
-
}
|
|
1040
|
+
}));
|
|
1041
|
+
}
|
|
1002
1042
|
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1043
|
+
function generateWidgets() {
|
|
1044
|
+
return {
|
|
1045
|
+
CheckboxWidget: CheckboxWidget,
|
|
1046
|
+
CheckboxesWidget: CheckboxesWidget,
|
|
1047
|
+
DateWidget: DateWidget,
|
|
1048
|
+
DateTimeWidget: DateTimeWidget,
|
|
1049
|
+
RadioWidget: RadioWidget,
|
|
1050
|
+
RangeWidget: RangeWidget,
|
|
1051
|
+
SelectWidget: SelectWidget,
|
|
1052
|
+
TextareaWidget: TextareaWidget
|
|
1053
|
+
};
|
|
1054
|
+
}
|
|
1055
|
+
var Widgets = /*#__PURE__*/generateWidgets();
|
|
1013
1056
|
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1057
|
+
function generateTheme() {
|
|
1058
|
+
return {
|
|
1059
|
+
templates: generateTemplates(),
|
|
1060
|
+
widgets: generateWidgets()
|
|
1061
|
+
};
|
|
1062
|
+
}
|
|
1063
|
+
var Theme = /*#__PURE__*/generateTheme();
|
|
1018
1064
|
|
|
1019
|
-
|
|
1065
|
+
function generateForm() {
|
|
1066
|
+
return core.withTheme(generateTheme());
|
|
1067
|
+
}
|
|
1068
|
+
var MuiForm = /*#__PURE__*/generateForm();
|
|
1020
1069
|
|
|
1021
1070
|
exports.Form = MuiForm;
|
|
1022
1071
|
exports.Templates = Templates;
|
|
1023
1072
|
exports.Theme = Theme;
|
|
1024
1073
|
exports.Widgets = Widgets;
|
|
1025
1074
|
exports["default"] = MuiForm;
|
|
1075
|
+
exports.generateForm = generateForm;
|
|
1076
|
+
exports.generateTemplates = generateTemplates;
|
|
1077
|
+
exports.generateTheme = generateTheme;
|
|
1078
|
+
exports.generateWidgets = generateWidgets;
|
|
1026
1079
|
|
|
1027
1080
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
1028
1081
|
|