@rjsf/mui 5.2.0 → 5.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +183 -183
- package/README.md +1 -0
- package/dist/mui.cjs.development.js +414 -397
- 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 +415 -397
- package/dist/mui.esm.js.map +1 -1
- package/dist/mui.umd.development.js +417 -400
- 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 +5 -5
package/dist/mui.esm.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { withTheme } from '@rjsf/core';
|
|
2
|
-
import
|
|
2
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
3
|
import AddIcon from '@mui/icons-material/Add';
|
|
4
4
|
import IconButton from '@mui/material/IconButton';
|
|
5
|
-
import { TranslatableString, getUiOptions, getTemplate, getInputProps, examplesId, ariaDescribedByIds, errorId, helpId, titleId, descriptionId, canExpand, getSubmitButtonOptions, ADDITIONAL_PROPERTY_FLAG, schemaRequiresTrueValue, enumOptionsIsSelected, optionId, enumOptionsSelectValue, enumOptionsDeselectValue, enumOptionsValueForIndex,
|
|
5
|
+
import { TranslatableString, getUiOptions, getTemplate, getInputProps, examplesId, ariaDescribedByIds, errorId, helpId, titleId, descriptionId, canExpand, getSubmitButtonOptions, ADDITIONAL_PROPERTY_FLAG, schemaRequiresTrueValue, enumOptionsIsSelected, optionId, enumOptionsSelectValue, enumOptionsDeselectValue, enumOptionsValueForIndex, enumOptionsIndexForValue, rangeSpec } from '@rjsf/utils';
|
|
6
6
|
import Box from '@mui/material/Box';
|
|
7
7
|
import Grid from '@mui/material/Grid';
|
|
8
8
|
import Paper from '@mui/material/Paper';
|
|
@@ -65,11 +65,12 @@ function AddButton(_ref) {
|
|
|
65
65
|
var registry = _ref.registry,
|
|
66
66
|
props = _objectWithoutPropertiesLoose(_ref, _excluded$4);
|
|
67
67
|
var translateString = registry.translateString;
|
|
68
|
-
return
|
|
68
|
+
return jsx(IconButton, _extends({
|
|
69
69
|
title: translateString(TranslatableString.AddItemButton)
|
|
70
70
|
}, props, {
|
|
71
|
-
color:
|
|
72
|
-
|
|
71
|
+
color: 'primary',
|
|
72
|
+
children: jsx(AddIcon, {})
|
|
73
|
+
}));
|
|
73
74
|
}
|
|
74
75
|
|
|
75
76
|
/** The `ArrayFieldItemTemplate` component is the template used to render an items of an array.
|
|
@@ -97,45 +98,51 @@ function ArrayFieldItemTemplate(props) {
|
|
|
97
98
|
flex: 1,
|
|
98
99
|
paddingLeft: 6,
|
|
99
100
|
paddingRight: 6,
|
|
100
|
-
fontWeight:
|
|
101
|
+
fontWeight: 'bold',
|
|
101
102
|
minWidth: 0
|
|
102
103
|
};
|
|
103
|
-
return
|
|
104
|
+
return jsxs(Grid, {
|
|
104
105
|
container: true,
|
|
105
|
-
alignItems:
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
106
|
+
alignItems: 'center',
|
|
107
|
+
children: [jsx(Grid, {
|
|
108
|
+
item: true,
|
|
109
|
+
xs: true,
|
|
110
|
+
style: {
|
|
111
|
+
overflow: 'auto'
|
|
112
|
+
},
|
|
113
|
+
children: jsx(Box, {
|
|
114
|
+
mb: 2,
|
|
115
|
+
children: jsx(Paper, {
|
|
116
|
+
elevation: 2,
|
|
117
|
+
children: jsx(Box, {
|
|
118
|
+
p: 2,
|
|
119
|
+
children: children
|
|
120
|
+
})
|
|
121
|
+
})
|
|
122
|
+
})
|
|
123
|
+
}), hasToolbar && jsxs(Grid, {
|
|
124
|
+
item: true,
|
|
125
|
+
children: [(hasMoveUp || hasMoveDown) && jsx(MoveUpButton, {
|
|
126
|
+
style: btnStyle,
|
|
127
|
+
disabled: disabled || readonly || !hasMoveUp,
|
|
128
|
+
onClick: onReorderClick(index, index - 1),
|
|
129
|
+
uiSchema: uiSchema,
|
|
130
|
+
registry: registry
|
|
131
|
+
}), (hasMoveUp || hasMoveDown) && jsx(MoveDownButton, {
|
|
132
|
+
style: btnStyle,
|
|
133
|
+
disabled: disabled || readonly || !hasMoveDown,
|
|
134
|
+
onClick: onReorderClick(index, index + 1),
|
|
135
|
+
uiSchema: uiSchema,
|
|
136
|
+
registry: registry
|
|
137
|
+
}), hasRemove && jsx(RemoveButton, {
|
|
138
|
+
style: btnStyle,
|
|
139
|
+
disabled: disabled || readonly,
|
|
140
|
+
onClick: onDropIndexClick(index),
|
|
141
|
+
uiSchema: uiSchema,
|
|
142
|
+
registry: registry
|
|
143
|
+
})]
|
|
144
|
+
})]
|
|
145
|
+
});
|
|
139
146
|
}
|
|
140
147
|
|
|
141
148
|
var _excluded$3 = ["key"];
|
|
@@ -156,55 +163,59 @@ function ArrayFieldTemplate(props) {
|
|
|
156
163
|
schema = props.schema,
|
|
157
164
|
title = props.title;
|
|
158
165
|
var uiOptions = getUiOptions(uiSchema);
|
|
159
|
-
var ArrayFieldDescriptionTemplate = getTemplate(
|
|
160
|
-
var ArrayFieldItemTemplate = getTemplate(
|
|
161
|
-
var ArrayFieldTitleTemplate = getTemplate(
|
|
166
|
+
var ArrayFieldDescriptionTemplate = getTemplate('ArrayFieldDescriptionTemplate', registry, uiOptions);
|
|
167
|
+
var ArrayFieldItemTemplate = getTemplate('ArrayFieldItemTemplate', registry, uiOptions);
|
|
168
|
+
var ArrayFieldTitleTemplate = getTemplate('ArrayFieldTitleTemplate', registry, uiOptions);
|
|
162
169
|
// Button templates are not overridden in the uiSchema
|
|
163
170
|
var AddButton = registry.templates.ButtonTemplates.AddButton;
|
|
164
|
-
return
|
|
165
|
-
elevation: 2
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
171
|
+
return jsx(Paper, {
|
|
172
|
+
elevation: 2,
|
|
173
|
+
children: jsxs(Box, {
|
|
174
|
+
p: 2,
|
|
175
|
+
children: [jsx(ArrayFieldTitleTemplate, {
|
|
176
|
+
idSchema: idSchema,
|
|
177
|
+
title: uiOptions.title || title,
|
|
178
|
+
schema: schema,
|
|
179
|
+
uiSchema: uiSchema,
|
|
180
|
+
required: required,
|
|
181
|
+
registry: registry
|
|
182
|
+
}), jsx(ArrayFieldDescriptionTemplate, {
|
|
183
|
+
idSchema: idSchema,
|
|
184
|
+
description: uiOptions.description || schema.description,
|
|
185
|
+
schema: schema,
|
|
186
|
+
uiSchema: uiSchema,
|
|
187
|
+
registry: registry
|
|
188
|
+
}), jsxs(Grid, {
|
|
189
|
+
container: true,
|
|
190
|
+
children: [items && items.map(function (_ref) {
|
|
191
|
+
var key = _ref.key,
|
|
192
|
+
itemProps = _objectWithoutPropertiesLoose(_ref, _excluded$3);
|
|
193
|
+
return jsx(ArrayFieldItemTemplate, _extends({}, itemProps), key);
|
|
194
|
+
}), canAdd && jsx(Grid, {
|
|
195
|
+
container: true,
|
|
196
|
+
justifyContent: 'flex-end',
|
|
197
|
+
children: jsx(Grid, {
|
|
198
|
+
item: true,
|
|
199
|
+
children: jsx(Box, {
|
|
200
|
+
mt: 2,
|
|
201
|
+
children: jsx(AddButton, {
|
|
202
|
+
className: 'array-item-add',
|
|
203
|
+
onClick: onAddClick,
|
|
204
|
+
disabled: disabled || readonly,
|
|
205
|
+
uiSchema: uiSchema,
|
|
206
|
+
registry: registry
|
|
207
|
+
})
|
|
208
|
+
})
|
|
209
|
+
})
|
|
210
|
+
})]
|
|
211
|
+
}, "array-item-list-" + idSchema.$id)]
|
|
212
|
+
})
|
|
213
|
+
});
|
|
204
214
|
}
|
|
205
215
|
|
|
206
|
-
var _excluded$2 = ["id", "placeholder", "required", "readonly", "disabled", "type", "label", "value", "onChange", "onBlur", "onFocus", "autofocus", "options", "schema", "uiSchema", "rawErrors", "formContext", "registry"],
|
|
216
|
+
var _excluded$2 = ["id", "name", "placeholder", "required", "readonly", "disabled", "type", "label", "value", "onChange", "onChangeOverride", "onBlur", "onFocus", "autofocus", "options", "schema", "uiSchema", "rawErrors", "formContext", "registry", "InputLabelProps"],
|
|
207
217
|
_excluded2$1 = ["step", "min", "max"];
|
|
218
|
+
var TYPES_THAT_SHRINK_LABEL = ['date', 'datetime-local', 'file'];
|
|
208
219
|
/** The `BaseInputTemplate` is the template to use to render the basic `<input>` component for the `core` theme.
|
|
209
220
|
* It is used as the template for rendering many of the <input> based widgets that differ by `type` and callbacks only.
|
|
210
221
|
* It can be customized/overridden for other themes or individual implementations as needed.
|
|
@@ -221,6 +232,7 @@ function BaseInputTemplate(props) {
|
|
|
221
232
|
label = props.label,
|
|
222
233
|
value = props.value,
|
|
223
234
|
onChange = props.onChange,
|
|
235
|
+
onChangeOverride = props.onChangeOverride,
|
|
224
236
|
onBlur = props.onBlur,
|
|
225
237
|
onFocus = props.onFocus,
|
|
226
238
|
autofocus = props.autofocus,
|
|
@@ -230,6 +242,7 @@ function BaseInputTemplate(props) {
|
|
|
230
242
|
_props$rawErrors = props.rawErrors,
|
|
231
243
|
rawErrors = _props$rawErrors === void 0 ? [] : _props$rawErrors,
|
|
232
244
|
registry = props.registry,
|
|
245
|
+
InputLabelProps = props.InputLabelProps,
|
|
233
246
|
textFieldProps = _objectWithoutPropertiesLoose(props, _excluded$2);
|
|
234
247
|
var inputProps = getInputProps(schema, type, options);
|
|
235
248
|
// Now we need to pull out the step, min, max into an inner `inputProps` for material-ui
|
|
@@ -248,7 +261,7 @@ function BaseInputTemplate(props) {
|
|
|
248
261
|
}, rest);
|
|
249
262
|
var _onChange = function _onChange(_ref) {
|
|
250
263
|
var value = _ref.target.value;
|
|
251
|
-
return onChange(value ===
|
|
264
|
+
return onChange(value === '' ? options.emptyValue : value);
|
|
252
265
|
};
|
|
253
266
|
var _onBlur = function _onBlur(_ref2) {
|
|
254
267
|
var value = _ref2.target.value;
|
|
@@ -260,30 +273,36 @@ function BaseInputTemplate(props) {
|
|
|
260
273
|
};
|
|
261
274
|
var schemaUtils = registry.schemaUtils;
|
|
262
275
|
var displayLabel = schemaUtils.getDisplayLabel(schema, uiSchema);
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
276
|
+
var DisplayInputLabelProps = TYPES_THAT_SHRINK_LABEL.includes(type) ? _extends({}, InputLabelProps, {
|
|
277
|
+
shrink: true
|
|
278
|
+
}) : InputLabelProps;
|
|
279
|
+
return jsxs(Fragment, {
|
|
280
|
+
children: [jsx(TextField, _extends({
|
|
281
|
+
id: id,
|
|
282
|
+
name: id,
|
|
283
|
+
placeholder: placeholder,
|
|
284
|
+
label: displayLabel ? label || schema.title : false,
|
|
285
|
+
autoFocus: autofocus,
|
|
286
|
+
required: required,
|
|
287
|
+
disabled: disabled || readonly
|
|
288
|
+
}, otherProps, {
|
|
289
|
+
value: value || value === 0 ? value : '',
|
|
290
|
+
error: rawErrors.length > 0,
|
|
291
|
+
onChange: onChangeOverride || _onChange,
|
|
292
|
+
onBlur: _onBlur,
|
|
293
|
+
onFocus: _onFocus,
|
|
294
|
+
InputLabelProps: DisplayInputLabelProps
|
|
295
|
+
}, textFieldProps, {
|
|
296
|
+
"aria-describedby": ariaDescribedByIds(id, !!schema.examples)
|
|
297
|
+
})), Array.isArray(schema.examples) && jsx("datalist", {
|
|
298
|
+
id: examplesId(id),
|
|
299
|
+
children: schema.examples.concat(schema["default"] && !schema.examples.includes(schema["default"]) ? [schema["default"]] : []).map(function (example) {
|
|
300
|
+
return jsx("option", {
|
|
301
|
+
value: example
|
|
302
|
+
}, example);
|
|
303
|
+
})
|
|
304
|
+
})]
|
|
305
|
+
});
|
|
287
306
|
}
|
|
288
307
|
|
|
289
308
|
/** The `DescriptionField` is the template to use to render the description of a field
|
|
@@ -294,13 +313,14 @@ function DescriptionField(props) {
|
|
|
294
313
|
var id = props.id,
|
|
295
314
|
description = props.description;
|
|
296
315
|
if (description) {
|
|
297
|
-
return
|
|
316
|
+
return jsx(Typography, {
|
|
298
317
|
id: id,
|
|
299
|
-
variant:
|
|
318
|
+
variant: 'subtitle2',
|
|
300
319
|
style: {
|
|
301
|
-
marginTop:
|
|
302
|
-
}
|
|
303
|
-
|
|
320
|
+
marginTop: '5px'
|
|
321
|
+
},
|
|
322
|
+
children: description
|
|
323
|
+
});
|
|
304
324
|
}
|
|
305
325
|
return null;
|
|
306
326
|
}
|
|
@@ -313,24 +333,30 @@ function ErrorList(_ref) {
|
|
|
313
333
|
var errors = _ref.errors,
|
|
314
334
|
registry = _ref.registry;
|
|
315
335
|
var translateString = registry.translateString;
|
|
316
|
-
return
|
|
317
|
-
elevation: 2
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
336
|
+
return jsx(Paper, {
|
|
337
|
+
elevation: 2,
|
|
338
|
+
children: jsxs(Box, {
|
|
339
|
+
mb: 2,
|
|
340
|
+
p: 2,
|
|
341
|
+
children: [jsx(Typography, {
|
|
342
|
+
variant: 'h6',
|
|
343
|
+
children: translateString(TranslatableString.ErrorsLabel)
|
|
344
|
+
}), jsx(List, {
|
|
345
|
+
dense: true,
|
|
346
|
+
children: errors.map(function (error, i) {
|
|
347
|
+
return jsxs(ListItem, {
|
|
348
|
+
children: [jsx(ListItemIcon, {
|
|
349
|
+
children: jsx(ErrorIcon, {
|
|
350
|
+
color: 'error'
|
|
351
|
+
})
|
|
352
|
+
}), jsx(ListItemText, {
|
|
353
|
+
primary: error.stack
|
|
354
|
+
})]
|
|
355
|
+
}, i);
|
|
356
|
+
})
|
|
357
|
+
})]
|
|
358
|
+
})
|
|
359
|
+
});
|
|
334
360
|
}
|
|
335
361
|
|
|
336
362
|
var _excluded$1 = ["icon", "color", "uiSchema", "registry"],
|
|
@@ -339,28 +365,29 @@ function MuiIconButton(props) {
|
|
|
339
365
|
var icon = props.icon,
|
|
340
366
|
color = props.color,
|
|
341
367
|
otherProps = _objectWithoutPropertiesLoose(props, _excluded$1);
|
|
342
|
-
return
|
|
343
|
-
size:
|
|
344
|
-
color: color
|
|
345
|
-
|
|
368
|
+
return jsx(IconButton, _extends({}, otherProps, {
|
|
369
|
+
size: 'small',
|
|
370
|
+
color: color,
|
|
371
|
+
children: icon
|
|
372
|
+
}));
|
|
346
373
|
}
|
|
347
374
|
function MoveDownButton(props) {
|
|
348
375
|
var translateString = props.registry.translateString;
|
|
349
|
-
return
|
|
376
|
+
return jsx(MuiIconButton, _extends({
|
|
350
377
|
title: translateString(TranslatableString.MoveDownButton)
|
|
351
378
|
}, props, {
|
|
352
|
-
icon:
|
|
353
|
-
fontSize:
|
|
379
|
+
icon: jsx(ArrowDownwardIcon, {
|
|
380
|
+
fontSize: 'small'
|
|
354
381
|
})
|
|
355
382
|
}));
|
|
356
383
|
}
|
|
357
384
|
function MoveUpButton(props) {
|
|
358
385
|
var translateString = props.registry.translateString;
|
|
359
|
-
return
|
|
386
|
+
return jsx(MuiIconButton, _extends({
|
|
360
387
|
title: translateString(TranslatableString.MoveUpButton)
|
|
361
388
|
}, props, {
|
|
362
|
-
icon:
|
|
363
|
-
fontSize:
|
|
389
|
+
icon: jsx(ArrowUpwardIcon, {
|
|
390
|
+
fontSize: 'small'
|
|
364
391
|
})
|
|
365
392
|
}));
|
|
366
393
|
}
|
|
@@ -368,12 +395,12 @@ function RemoveButton(props) {
|
|
|
368
395
|
var iconType = props.iconType,
|
|
369
396
|
otherProps = _objectWithoutPropertiesLoose(props, _excluded2);
|
|
370
397
|
var translateString = otherProps.registry.translateString;
|
|
371
|
-
return
|
|
398
|
+
return jsx(MuiIconButton, _extends({
|
|
372
399
|
title: translateString(TranslatableString.RemoveButton)
|
|
373
400
|
}, otherProps, {
|
|
374
|
-
color:
|
|
375
|
-
icon:
|
|
376
|
-
fontSize: iconType ===
|
|
401
|
+
color: 'error',
|
|
402
|
+
icon: jsx(RemoveIcon, {
|
|
403
|
+
fontSize: iconType === 'default' ? undefined : 'small'
|
|
377
404
|
})
|
|
378
405
|
}));
|
|
379
406
|
}
|
|
@@ -390,17 +417,19 @@ function FieldErrorTemplate(props) {
|
|
|
390
417
|
return null;
|
|
391
418
|
}
|
|
392
419
|
var id = errorId(idSchema);
|
|
393
|
-
return
|
|
420
|
+
return jsx(List, {
|
|
394
421
|
dense: true,
|
|
395
|
-
disablePadding: true
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
422
|
+
disablePadding: true,
|
|
423
|
+
children: errors.map(function (error, i) {
|
|
424
|
+
return jsx(ListItem, {
|
|
425
|
+
disableGutters: true,
|
|
426
|
+
children: jsx(FormHelperText, {
|
|
427
|
+
id: id,
|
|
428
|
+
children: error
|
|
429
|
+
})
|
|
430
|
+
}, i);
|
|
431
|
+
})
|
|
432
|
+
});
|
|
404
433
|
}
|
|
405
434
|
|
|
406
435
|
/** The `FieldHelpTemplate` component renders any help desired for a field
|
|
@@ -414,9 +443,10 @@ function FieldHelpTemplate(props) {
|
|
|
414
443
|
return null;
|
|
415
444
|
}
|
|
416
445
|
var id = helpId(idSchema);
|
|
417
|
-
return
|
|
418
|
-
id: id
|
|
419
|
-
|
|
446
|
+
return jsx(FormHelperText, {
|
|
447
|
+
id: id,
|
|
448
|
+
children: help
|
|
449
|
+
});
|
|
420
450
|
}
|
|
421
451
|
|
|
422
452
|
/** The `FieldTemplate` component is the template used by `SchemaField` to render any field. It renders the field
|
|
@@ -446,15 +476,16 @@ function FieldTemplate(props) {
|
|
|
446
476
|
uiSchema = props.uiSchema,
|
|
447
477
|
registry = props.registry;
|
|
448
478
|
var uiOptions = getUiOptions(uiSchema);
|
|
449
|
-
var WrapIfAdditionalTemplate = getTemplate(
|
|
479
|
+
var WrapIfAdditionalTemplate = getTemplate('WrapIfAdditionalTemplate', registry, uiOptions);
|
|
450
480
|
if (hidden) {
|
|
451
|
-
return
|
|
481
|
+
return jsx("div", {
|
|
452
482
|
style: {
|
|
453
|
-
display:
|
|
454
|
-
}
|
|
455
|
-
|
|
483
|
+
display: 'none'
|
|
484
|
+
},
|
|
485
|
+
children: children
|
|
486
|
+
});
|
|
456
487
|
}
|
|
457
|
-
return
|
|
488
|
+
return jsx(WrapIfAdditionalTemplate, {
|
|
458
489
|
classNames: classNames,
|
|
459
490
|
style: style,
|
|
460
491
|
disabled: disabled,
|
|
@@ -466,15 +497,18 @@ function FieldTemplate(props) {
|
|
|
466
497
|
required: required,
|
|
467
498
|
schema: schema,
|
|
468
499
|
uiSchema: uiSchema,
|
|
469
|
-
registry: registry
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
500
|
+
registry: registry,
|
|
501
|
+
children: jsxs(FormControl, {
|
|
502
|
+
fullWidth: true,
|
|
503
|
+
error: rawErrors.length ? true : false,
|
|
504
|
+
required: required,
|
|
505
|
+
children: [children, displayLabel && rawDescription ? jsx(Typography, {
|
|
506
|
+
variant: 'caption',
|
|
507
|
+
color: 'textSecondary',
|
|
508
|
+
children: rawDescription
|
|
509
|
+
}) : null, errors, help]
|
|
510
|
+
})
|
|
511
|
+
});
|
|
478
512
|
}
|
|
479
513
|
|
|
480
514
|
/** The `ObjectFieldTemplate` is the template to use to render all the inner properties of an object along with the
|
|
@@ -497,54 +531,59 @@ function ObjectFieldTemplate(props) {
|
|
|
497
531
|
onAddClick = props.onAddClick,
|
|
498
532
|
registry = props.registry;
|
|
499
533
|
var uiOptions = getUiOptions(uiSchema);
|
|
500
|
-
var TitleFieldTemplate = getTemplate(
|
|
501
|
-
var DescriptionFieldTemplate = getTemplate(
|
|
534
|
+
var TitleFieldTemplate = getTemplate('TitleFieldTemplate', registry, uiOptions);
|
|
535
|
+
var DescriptionFieldTemplate = getTemplate('DescriptionFieldTemplate', registry, uiOptions);
|
|
502
536
|
// Button templates are not overridden in the uiSchema
|
|
503
537
|
var AddButton = registry.templates.ButtonTemplates.AddButton;
|
|
504
|
-
return
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
538
|
+
return jsxs(Fragment, {
|
|
539
|
+
children: [(uiOptions.title || title) && jsx(TitleFieldTemplate, {
|
|
540
|
+
id: titleId(idSchema),
|
|
541
|
+
title: title,
|
|
542
|
+
required: required,
|
|
543
|
+
schema: schema,
|
|
544
|
+
uiSchema: uiSchema,
|
|
545
|
+
registry: registry
|
|
546
|
+
}), (uiOptions.description || description) && jsx(DescriptionFieldTemplate, {
|
|
547
|
+
id: descriptionId(idSchema),
|
|
548
|
+
description: uiOptions.description || description,
|
|
549
|
+
schema: schema,
|
|
550
|
+
uiSchema: uiSchema,
|
|
551
|
+
registry: registry
|
|
552
|
+
}), jsxs(Grid, {
|
|
553
|
+
container: true,
|
|
554
|
+
spacing: 2,
|
|
555
|
+
style: {
|
|
556
|
+
marginTop: '10px'
|
|
557
|
+
},
|
|
558
|
+
children: [properties.map(function (element, index) {
|
|
559
|
+
return (
|
|
560
|
+
// Remove the <Grid> if the inner element is hidden as the <Grid>
|
|
561
|
+
// itself would otherwise still take up space.
|
|
562
|
+
element.hidden ? element.content : jsx(Grid, {
|
|
563
|
+
item: true,
|
|
564
|
+
xs: 12,
|
|
565
|
+
style: {
|
|
566
|
+
marginBottom: '10px'
|
|
567
|
+
},
|
|
568
|
+
children: element.content
|
|
569
|
+
}, index)
|
|
570
|
+
);
|
|
571
|
+
}), canExpand(schema, uiSchema, formData) && jsx(Grid, {
|
|
572
|
+
container: true,
|
|
573
|
+
justifyContent: 'flex-end',
|
|
574
|
+
children: jsx(Grid, {
|
|
575
|
+
item: true,
|
|
576
|
+
children: jsx(AddButton, {
|
|
577
|
+
className: 'object-property-expand',
|
|
578
|
+
onClick: onAddClick(schema),
|
|
579
|
+
disabled: disabled || readonly,
|
|
580
|
+
uiSchema: uiSchema,
|
|
581
|
+
registry: registry
|
|
582
|
+
})
|
|
583
|
+
})
|
|
584
|
+
})]
|
|
585
|
+
})]
|
|
586
|
+
});
|
|
548
587
|
}
|
|
549
588
|
|
|
550
589
|
/** The `SubmitButton` renders a button that represent the `Submit` action on a form
|
|
@@ -559,13 +598,16 @@ function SubmitButton(_ref) {
|
|
|
559
598
|
if (norender) {
|
|
560
599
|
return null;
|
|
561
600
|
}
|
|
562
|
-
return
|
|
563
|
-
marginTop: 3
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
601
|
+
return jsx(Box, {
|
|
602
|
+
marginTop: 3,
|
|
603
|
+
children: jsx(Button, _extends({
|
|
604
|
+
type: 'submit',
|
|
605
|
+
variant: 'contained',
|
|
606
|
+
color: 'primary'
|
|
607
|
+
}, submitButtonProps, {
|
|
608
|
+
children: submitText
|
|
609
|
+
}))
|
|
610
|
+
});
|
|
569
611
|
}
|
|
570
612
|
|
|
571
613
|
/** The `TitleField` is the template to use to render the title of a field
|
|
@@ -575,13 +617,15 @@ function SubmitButton(_ref) {
|
|
|
575
617
|
function TitleField(_ref) {
|
|
576
618
|
var id = _ref.id,
|
|
577
619
|
title = _ref.title;
|
|
578
|
-
return
|
|
620
|
+
return jsxs(Box, {
|
|
579
621
|
id: id,
|
|
580
622
|
mb: 1,
|
|
581
|
-
mt: 1
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
623
|
+
mt: 1,
|
|
624
|
+
children: [jsx(Typography, {
|
|
625
|
+
variant: 'h5',
|
|
626
|
+
children: title
|
|
627
|
+
}), jsx(Divider, {})]
|
|
628
|
+
});
|
|
585
629
|
}
|
|
586
630
|
|
|
587
631
|
/** The `WrapIfAdditional` component is used by the `FieldTemplate` to rename, or remove properties that are
|
|
@@ -613,51 +657,58 @@ function WrapIfAdditionalTemplate(props) {
|
|
|
613
657
|
flex: 1,
|
|
614
658
|
paddingLeft: 6,
|
|
615
659
|
paddingRight: 6,
|
|
616
|
-
fontWeight:
|
|
660
|
+
fontWeight: 'bold'
|
|
617
661
|
};
|
|
618
662
|
if (!additional) {
|
|
619
|
-
return
|
|
663
|
+
return jsx("div", {
|
|
620
664
|
className: classNames,
|
|
621
|
-
style: style
|
|
622
|
-
|
|
665
|
+
style: style,
|
|
666
|
+
children: children
|
|
667
|
+
});
|
|
623
668
|
}
|
|
624
669
|
var handleBlur = function handleBlur(_ref) {
|
|
625
670
|
var target = _ref.target;
|
|
626
671
|
return onKeyChange(target.value);
|
|
627
672
|
};
|
|
628
|
-
return
|
|
673
|
+
return jsxs(Grid, {
|
|
629
674
|
container: true,
|
|
630
|
-
|
|
631
|
-
alignItems: "center",
|
|
675
|
+
alignItems: 'center',
|
|
632
676
|
spacing: 2,
|
|
633
677
|
className: classNames,
|
|
634
|
-
style: style
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
678
|
+
style: style,
|
|
679
|
+
children: [jsx(Grid, {
|
|
680
|
+
item: true,
|
|
681
|
+
xs: true,
|
|
682
|
+
children: jsxs(FormControl, {
|
|
683
|
+
fullWidth: true,
|
|
684
|
+
required: required,
|
|
685
|
+
children: [jsx(InputLabel, {
|
|
686
|
+
children: keyLabel
|
|
687
|
+
}), jsx(Input, {
|
|
688
|
+
defaultValue: label,
|
|
689
|
+
disabled: disabled || readonly,
|
|
690
|
+
id: id + "-key",
|
|
691
|
+
name: id + "-key",
|
|
692
|
+
onBlur: !readonly ? handleBlur : undefined,
|
|
693
|
+
type: 'text'
|
|
694
|
+
})]
|
|
695
|
+
})
|
|
696
|
+
}), jsx(Grid, {
|
|
697
|
+
item: true,
|
|
698
|
+
xs: true,
|
|
699
|
+
children: children
|
|
700
|
+
}), jsx(Grid, {
|
|
701
|
+
item: true,
|
|
702
|
+
children: jsx(RemoveButton, {
|
|
703
|
+
iconType: 'default',
|
|
704
|
+
style: btnStyle,
|
|
705
|
+
disabled: disabled || readonly,
|
|
706
|
+
onClick: onDropPropertyClick(label),
|
|
707
|
+
uiSchema: uiSchema,
|
|
708
|
+
registry: registry
|
|
709
|
+
})
|
|
710
|
+
})]
|
|
711
|
+
}, id + "-key");
|
|
661
712
|
}
|
|
662
713
|
|
|
663
714
|
function generateTemplates() {
|
|
@@ -715,11 +766,11 @@ function CheckboxWidget(props) {
|
|
|
715
766
|
var value = _ref2.target.value;
|
|
716
767
|
return onFocus(id, value);
|
|
717
768
|
};
|
|
718
|
-
return
|
|
719
|
-
control:
|
|
769
|
+
return jsx(FormControlLabel, {
|
|
770
|
+
control: jsx(Checkbox, {
|
|
720
771
|
id: id,
|
|
721
772
|
name: id,
|
|
722
|
-
checked: typeof value ===
|
|
773
|
+
checked: typeof value === 'undefined' ? false : Boolean(value),
|
|
723
774
|
required: required,
|
|
724
775
|
disabled: disabled || readonly,
|
|
725
776
|
autoFocus: autofocus,
|
|
@@ -728,7 +779,7 @@ function CheckboxWidget(props) {
|
|
|
728
779
|
onFocus: _onFocus,
|
|
729
780
|
"aria-describedby": ariaDescribedByIds(id)
|
|
730
781
|
}),
|
|
731
|
-
label: label ||
|
|
782
|
+
label: label || ''
|
|
732
783
|
});
|
|
733
784
|
}
|
|
734
785
|
|
|
@@ -773,73 +824,35 @@ function CheckboxesWidget(_ref) {
|
|
|
773
824
|
var value = _ref4.target.value;
|
|
774
825
|
return onFocus(id, enumOptionsValueForIndex(value, enumOptions, emptyValue));
|
|
775
826
|
};
|
|
776
|
-
return
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
}
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
* the value to undefined when it is falsy during the `onChange` handling.
|
|
806
|
-
*
|
|
807
|
-
* @param props - The `WidgetProps` for this component
|
|
808
|
-
*/
|
|
809
|
-
function DateWidget(props) {
|
|
810
|
-
var options = props.options,
|
|
811
|
-
registry = props.registry;
|
|
812
|
-
var BaseInputTemplate = getTemplate("BaseInputTemplate", registry, options);
|
|
813
|
-
return /*#__PURE__*/React.createElement(BaseInputTemplate, _extends({
|
|
814
|
-
type: "date",
|
|
815
|
-
InputLabelProps: {
|
|
816
|
-
shrink: true
|
|
817
|
-
}
|
|
818
|
-
}, props));
|
|
819
|
-
}
|
|
820
|
-
|
|
821
|
-
/** The `DateTimeWidget` component uses the `BaseInputTemplate` changing the type to `datetime-local` and transforms
|
|
822
|
-
* the value to/from utc using the appropriate utility functions.
|
|
823
|
-
*
|
|
824
|
-
* @param props - The `WidgetProps` for this component
|
|
825
|
-
*/
|
|
826
|
-
function DateTimeWidget(props) {
|
|
827
|
-
var options = props.options,
|
|
828
|
-
registry = props.registry;
|
|
829
|
-
var BaseInputTemplate = getTemplate("BaseInputTemplate", registry, options);
|
|
830
|
-
var value = utcToLocal(props.value);
|
|
831
|
-
var onChange = function onChange(value) {
|
|
832
|
-
props.onChange(localToUTC(value));
|
|
833
|
-
};
|
|
834
|
-
return /*#__PURE__*/React.createElement(BaseInputTemplate, _extends({
|
|
835
|
-
type: "datetime-local",
|
|
836
|
-
InputLabelProps: {
|
|
837
|
-
shrink: true
|
|
838
|
-
}
|
|
839
|
-
}, props, {
|
|
840
|
-
value: value,
|
|
841
|
-
onChange: onChange
|
|
842
|
-
}));
|
|
827
|
+
return jsxs(Fragment, {
|
|
828
|
+
children: [jsx(FormLabel, {
|
|
829
|
+
required: required,
|
|
830
|
+
htmlFor: id,
|
|
831
|
+
children: label || schema.title
|
|
832
|
+
}), jsx(FormGroup, {
|
|
833
|
+
id: id,
|
|
834
|
+
row: !!inline,
|
|
835
|
+
children: Array.isArray(enumOptions) && enumOptions.map(function (option, index) {
|
|
836
|
+
var checked = enumOptionsIsSelected(option.value, checkboxesValues);
|
|
837
|
+
var itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;
|
|
838
|
+
var checkbox = jsx(Checkbox, {
|
|
839
|
+
id: optionId(id, index),
|
|
840
|
+
name: id,
|
|
841
|
+
checked: checked,
|
|
842
|
+
disabled: disabled || itemDisabled || readonly,
|
|
843
|
+
autoFocus: autofocus && index === 0,
|
|
844
|
+
onChange: _onChange(index),
|
|
845
|
+
onBlur: _onBlur,
|
|
846
|
+
onFocus: _onFocus,
|
|
847
|
+
"aria-describedby": ariaDescribedByIds(id)
|
|
848
|
+
});
|
|
849
|
+
return jsx(FormControlLabel, {
|
|
850
|
+
control: checkbox,
|
|
851
|
+
label: option.label
|
|
852
|
+
}, index);
|
|
853
|
+
})
|
|
854
|
+
})]
|
|
855
|
+
});
|
|
843
856
|
}
|
|
844
857
|
|
|
845
858
|
/** The `RadioWidget` is a widget for rendering a radio group.
|
|
@@ -875,33 +888,36 @@ function RadioWidget(_ref) {
|
|
|
875
888
|
};
|
|
876
889
|
var row = options ? options.inline : false;
|
|
877
890
|
var selectedIndex = enumOptionsIndexForValue(value, enumOptions);
|
|
878
|
-
return
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
891
|
+
return jsxs(Fragment, {
|
|
892
|
+
children: [jsx(FormLabel, {
|
|
893
|
+
required: required,
|
|
894
|
+
htmlFor: id,
|
|
895
|
+
children: label || schema.title
|
|
896
|
+
}), jsx(RadioGroup, {
|
|
897
|
+
id: id,
|
|
898
|
+
name: id,
|
|
899
|
+
value: selectedIndex,
|
|
900
|
+
row: row,
|
|
901
|
+
onChange: _onChange,
|
|
902
|
+
onBlur: _onBlur,
|
|
903
|
+
onFocus: _onFocus,
|
|
904
|
+
"aria-describedby": ariaDescribedByIds(id),
|
|
905
|
+
children: Array.isArray(enumOptions) && enumOptions.map(function (option, index) {
|
|
906
|
+
var itemDisabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(option.value) !== -1;
|
|
907
|
+
var radio = jsx(FormControlLabel, {
|
|
908
|
+
control: jsx(Radio, {
|
|
909
|
+
name: id,
|
|
910
|
+
id: optionId(id, index),
|
|
911
|
+
color: 'primary'
|
|
912
|
+
}),
|
|
913
|
+
label: option.label,
|
|
914
|
+
value: String(index),
|
|
915
|
+
disabled: disabled || itemDisabled || readonly
|
|
916
|
+
}, index);
|
|
917
|
+
return radio;
|
|
918
|
+
})
|
|
919
|
+
})]
|
|
920
|
+
});
|
|
905
921
|
}
|
|
906
922
|
|
|
907
923
|
/** The `RangeWidget` component uses the `BaseInputTemplate` changing the type to `range` and wrapping the result
|
|
@@ -938,21 +954,24 @@ function RangeWidget(props) {
|
|
|
938
954
|
var value = _ref2.target.value;
|
|
939
955
|
return onFocus(id, value);
|
|
940
956
|
};
|
|
941
|
-
return
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
957
|
+
return jsxs(Fragment, {
|
|
958
|
+
children: [jsx(FormLabel, {
|
|
959
|
+
required: required,
|
|
960
|
+
htmlFor: id,
|
|
961
|
+
children: label || schema.title
|
|
962
|
+
}), jsx(Slider, _extends({
|
|
963
|
+
disabled: disabled || readonly,
|
|
964
|
+
onChange: _onChange,
|
|
965
|
+
onBlur: _onBlur,
|
|
966
|
+
onFocus: _onFocus,
|
|
967
|
+
valueLabelDisplay: 'auto'
|
|
968
|
+
}, sliderProps, {
|
|
969
|
+
"aria-describedby": ariaDescribedByIds(id)
|
|
970
|
+
}))]
|
|
971
|
+
});
|
|
953
972
|
}
|
|
954
973
|
|
|
955
|
-
var _excluded = ["schema", "id", "options", "label", "required", "disabled", "placeholder", "readonly", "value", "multiple", "autofocus", "onChange", "onBlur", "onFocus", "rawErrors", "registry", "uiSchema", "hideError", "formContext"];
|
|
974
|
+
var _excluded = ["schema", "id", "name", "options", "label", "required", "disabled", "placeholder", "readonly", "value", "multiple", "autofocus", "onChange", "onBlur", "onFocus", "rawErrors", "registry", "uiSchema", "hideError", "formContext"];
|
|
956
975
|
/** The `SelectWidget` is a widget for rendering dropdowns.
|
|
957
976
|
* It is typically used with string properties constrained with enum options.
|
|
958
977
|
*
|
|
@@ -979,9 +998,9 @@ function SelectWidget(_ref) {
|
|
|
979
998
|
var enumOptions = options.enumOptions,
|
|
980
999
|
enumDisabled = options.enumDisabled,
|
|
981
1000
|
optEmptyVal = options.emptyValue;
|
|
982
|
-
multiple = typeof multiple ===
|
|
983
|
-
var emptyValue = multiple ? [] :
|
|
984
|
-
var isEmpty = typeof value ===
|
|
1001
|
+
multiple = typeof multiple === 'undefined' ? false : !!multiple;
|
|
1002
|
+
var emptyValue = multiple ? [] : '';
|
|
1003
|
+
var isEmpty = typeof value === 'undefined' || multiple && value.length < 1 || !multiple && value === emptyValue;
|
|
985
1004
|
var _onChange = function _onChange(_ref2) {
|
|
986
1005
|
var value = _ref2.target.value;
|
|
987
1006
|
return onChange(enumOptionsValueForIndex(value, enumOptions, optEmptyVal));
|
|
@@ -995,7 +1014,7 @@ function SelectWidget(_ref) {
|
|
|
995
1014
|
return onFocus(id, enumOptionsValueForIndex(value, enumOptions, optEmptyVal));
|
|
996
1015
|
};
|
|
997
1016
|
var selectedIndexes = enumOptionsIndexForValue(value, enumOptions, multiple);
|
|
998
|
-
return
|
|
1017
|
+
return jsx(TextField, _extends({
|
|
999
1018
|
id: id,
|
|
1000
1019
|
name: id,
|
|
1001
1020
|
label: label || schema.title,
|
|
@@ -1017,16 +1036,17 @@ function SelectWidget(_ref) {
|
|
|
1017
1036
|
SelectProps: _extends({}, textFieldProps.SelectProps, {
|
|
1018
1037
|
multiple: multiple
|
|
1019
1038
|
}),
|
|
1020
|
-
"aria-describedby": ariaDescribedByIds(id)
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1039
|
+
"aria-describedby": ariaDescribedByIds(id),
|
|
1040
|
+
children: Array.isArray(enumOptions) && enumOptions.map(function (_ref5, i) {
|
|
1041
|
+
var value = _ref5.value,
|
|
1042
|
+
label = _ref5.label;
|
|
1043
|
+
var disabled = Array.isArray(enumDisabled) && enumDisabled.indexOf(value) !== -1;
|
|
1044
|
+
return jsx(MenuItem, {
|
|
1045
|
+
value: String(i),
|
|
1046
|
+
disabled: disabled,
|
|
1047
|
+
children: label
|
|
1048
|
+
}, i);
|
|
1049
|
+
})
|
|
1030
1050
|
}));
|
|
1031
1051
|
}
|
|
1032
1052
|
|
|
@@ -1037,12 +1057,12 @@ function SelectWidget(_ref) {
|
|
|
1037
1057
|
function TextareaWidget(props) {
|
|
1038
1058
|
var options = props.options,
|
|
1039
1059
|
registry = props.registry;
|
|
1040
|
-
var BaseInputTemplate = getTemplate(
|
|
1060
|
+
var BaseInputTemplate = getTemplate('BaseInputTemplate', registry, options);
|
|
1041
1061
|
var rows = 5;
|
|
1042
|
-
if (typeof options.rows ===
|
|
1062
|
+
if (typeof options.rows === 'string' || typeof options.rows === 'number') {
|
|
1043
1063
|
rows = options.rows;
|
|
1044
1064
|
}
|
|
1045
|
-
return
|
|
1065
|
+
return jsx(BaseInputTemplate, _extends({}, props, {
|
|
1046
1066
|
multiline: true,
|
|
1047
1067
|
rows: rows
|
|
1048
1068
|
}));
|
|
@@ -1052,8 +1072,6 @@ function generateWidgets() {
|
|
|
1052
1072
|
return {
|
|
1053
1073
|
CheckboxWidget: CheckboxWidget,
|
|
1054
1074
|
CheckboxesWidget: CheckboxesWidget,
|
|
1055
|
-
DateWidget: DateWidget,
|
|
1056
|
-
DateTimeWidget: DateTimeWidget,
|
|
1057
1075
|
RadioWidget: RadioWidget,
|
|
1058
1076
|
RangeWidget: RangeWidget,
|
|
1059
1077
|
SelectWidget: SelectWidget,
|