@jsonforms/material-renderers 3.0.0-beta.4 → 3.0.0-rc.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/docs/assets/js/search.json +1 -1
- package/docs/globals.html +167 -40
- package/docs/index.html +15 -0
- package/docs/interfaces/categorizationstate.html +1 -1
- package/docs/interfaces/categorizationstepperstate.html +1 -1
- package/docs/interfaces/inputref.html +168 -0
- package/docs/interfaces/materialcategorizationlayoutrendererprops.html +49 -4
- package/docs/interfaces/materialcategorizationstepperlayoutrendererprops.html +46 -1
- package/docs/interfaces/materiallabelablelayoutrendererprops.html +328 -0
- package/docs/interfaces/materiallayoutrendererprops.html +5 -0
- package/docs/interfaces/withoptionlabel.html +3 -3
- package/lib/additional/MaterialLabelRenderer.d.ts +3 -3
- package/lib/cells/MaterialEnumCell.d.ts +2 -1
- package/lib/cells/MaterialOneOfEnumCell.d.ts +2 -1
- package/lib/controls/MaterialEnumControl.d.ts +2 -1
- package/lib/controls/MaterialOneOfEnumControl.d.ts +2 -1
- package/lib/controls/index.d.ts +2 -2
- package/lib/jsonforms-react-material.cjs.js +143 -65
- package/lib/jsonforms-react-material.cjs.js.map +1 -1
- package/lib/jsonforms-react-material.esm.js +137 -57
- package/lib/jsonforms-react-material.esm.js.map +1 -1
- package/lib/layouts/MaterialCategorizationLayout.d.ts +4 -3
- package/lib/layouts/MaterialCategorizationStepperLayout.d.ts +4 -3
- package/lib/layouts/MaterialGroupLayout.d.ts +2 -2
- package/lib/layouts/MaterialHorizontalLayout.d.ts +1 -1
- package/lib/layouts/MaterialVerticalLayout.d.ts +1 -1
- package/lib/mui-controls/MuiAutocomplete.d.ts +2 -2
- package/lib/mui-controls/MuiSelect.d.ts +2 -1
- package/lib/util/datejs.d.ts +17 -1
- package/lib/util/i18nDefaults.d.ts +3 -0
- package/lib/util/index.d.ts +1 -0
- package/lib/util/layout.d.ts +3 -0
- package/package.json +9 -9
- package/src/additional/MaterialLabelRenderer.tsx +5 -7
- package/src/additional/MaterialListWithDetailRenderer.tsx +4 -0
- package/src/cells/MaterialEnumCell.tsx +4 -3
- package/src/cells/MaterialOneOfEnumCell.tsx +3 -3
- package/src/controls/MaterialDateControl.tsx +30 -12
- package/src/controls/MaterialDateTimeControl.tsx +32 -13
- package/src/controls/MaterialEnumControl.tsx +12 -5
- package/src/controls/MaterialOneOfEnumControl.tsx +13 -5
- package/src/controls/MaterialRadioGroup.tsx +1 -1
- package/src/controls/MaterialTimeControl.tsx +31 -13
- package/src/layouts/MaterialCategorizationLayout.tsx +18 -9
- package/src/layouts/MaterialCategorizationStepperLayout.tsx +19 -12
- package/src/layouts/MaterialGroupLayout.tsx +6 -5
- package/src/mui-controls/MuiAutocomplete.tsx +81 -37
- package/src/mui-controls/MuiInputText.tsx +4 -1
- package/src/mui-controls/MuiSelect.tsx +10 -5
- package/src/util/datejs.tsx +73 -0
- package/src/util/i18nDefaults.ts +3 -0
- package/src/util/index.ts +1 -0
- package/src/util/layout.tsx +4 -0
- package/stats.html +1 -1
- package/test/renderers/MaterialArrayLayout.test.tsx +4 -4
- package/test/renderers/MaterialCategorizationLayout.test.tsx +17 -7
- package/test/renderers/MaterialCategorizationStepperLayout.test.tsx +21 -11
- package/test/renderers/MaterialDateControl.test.tsx +27 -0
- package/test/renderers/MaterialDateTimeControl.test.tsx +29 -2
- package/test/renderers/MaterialGroupLayout.test.tsx +4 -1
- package/test/renderers/MaterialInputControl.test.tsx +4 -0
- package/test/renderers/MaterialLabelRenderer.test.tsx +2 -1
- package/test/renderers/MaterialTimeControl.test.tsx +28 -1
- package/test/renderers/util.ts +5 -0
- package/src/util/datejs.ts +0 -32
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { createDefaultValue, Resolve, encode, Paths, formatErrorMessage, errorsAt, rankWith, isObjectControl, findUISchema, Generate, isAllOfControl, findMatchingUISchema, createCombinatorRenderInfos, isAnyOfControl, isOneOfControl, getAjv, and, uiTypeIs, schemaMatches, hasType, schemaSubPathMatches, or, isObjectArrayControl, isPrimitiveArrayControl, isObjectArray, computeLabel, composePaths, isBooleanControl, optionIs, isDescriptionHidden, showAsRequired, isEnumControl, isDateControl, isTimeControl, isDateTimeControl, isRangeControl, isIntegerControl, isNumberControl, isStringControl, isOneOfEnumControl, withIncreasedRank, isVisible, update, moveUp, moveDown, getFirstPrimitiveProp, createId, removeId, isObjectArrayWithNesting, isNumberFormatControl, categorizationHasCategory } from '@jsonforms/core';
|
|
2
|
-
import React, { useMemo, Fragment, useState, useCallback, useEffect } from 'react';
|
|
3
|
-
import { DispatchCell, useJsonForms, withJsonFormsArrayLayoutProps, withJsonFormsDetailProps, JsonFormsDispatch, withJsonFormsAllOfProps, withJsonFormsAnyOfProps, withJsonFormsOneOfProps, withJsonFormsMultiEnumProps,
|
|
1
|
+
import { createDefaultValue, Resolve, encode, Paths, formatErrorMessage, errorsAt, rankWith, isObjectControl, findUISchema, Generate, isAllOfControl, findMatchingUISchema, createCombinatorRenderInfos, isAnyOfControl, isOneOfControl, getAjv, and, uiTypeIs, schemaMatches, hasType, schemaSubPathMatches, or, isObjectArrayControl, isPrimitiveArrayControl, isObjectArray, computeLabel, composePaths, isBooleanControl, optionIs, isDescriptionHidden, showAsRequired, isEnumControl, isDateControl, isTimeControl, isDateTimeControl, isRangeControl, isIntegerControl, isNumberControl, isStringControl, isOneOfEnumControl, withIncreasedRank, isVisible, deriveLabelForUISchemaElement, update, moveUp, moveDown, getFirstPrimitiveProp, createId, removeId, isObjectArrayWithNesting, isNumberFormatControl, categorizationHasCategory } from '@jsonforms/core';
|
|
2
|
+
import React, { useMemo, Fragment, useState, useCallback, useRef, useEffect } from 'react';
|
|
3
|
+
import { DispatchCell, useJsonForms, withJsonFormsArrayLayoutProps, withJsonFormsDetailProps, JsonFormsDispatch, withJsonFormsAllOfProps, withJsonFormsAnyOfProps, withJsonFormsOneOfProps, withJsonFormsMultiEnumProps, withJsonFormsLabelProps, withJsonFormsMasterListItemProps, withJsonFormsControlProps, withJsonFormsEnumProps, withTranslateProps, Control, withJsonFormsOneOfEnumProps, withJsonFormsLayoutProps, withJsonFormsContext, withJsonFormsCellProps, withJsonFormsEnumCellProps, withJsonFormsOneOfEnumCellProps } from '@jsonforms/react';
|
|
4
4
|
import isEmpty from 'lodash/isEmpty';
|
|
5
5
|
import union from 'lodash/union';
|
|
6
6
|
import startCase from 'lodash/startCase';
|
|
7
7
|
import range from 'lodash/range';
|
|
8
|
-
import { TableCell, styled as styled$1, Badge, Tooltip, TableRow, Grid, Typography, Hidden, IconButton, FormHelperText, Table, TableHead, TableBody, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button, Tabs, Tab, Checkbox, Select, MenuItem, Input, useTheme, InputAdornment, FormControl, FormGroup, FormControlLabel, Toolbar, ListItem, ListItemAvatar, Avatar, ListItemText, ListItemSecondaryAction, List, Switch, InputLabel, Autocomplete,
|
|
8
|
+
import { TableCell, styled as styled$1, Badge, Tooltip, TableRow, Grid, Typography, Hidden, IconButton, FormHelperText, Table, TableHead, TableBody, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button, Tabs, Tab, Checkbox, TextField, Select, MenuItem, Input, useTheme, InputAdornment, FormControl, FormGroup, FormControlLabel, Toolbar, ListItem, ListItemAvatar, Avatar, ListItemText, ListItemSecondaryAction, List, Switch, InputLabel, Autocomplete, FormLabel, Slider, RadioGroup, Radio, Card, CardHeader, CardContent, AppBar, Accordion, AccordionSummary, AccordionDetails, Stepper, Step, StepButton } from '@mui/material';
|
|
9
9
|
import DeleteIcon from '@mui/icons-material/Delete';
|
|
10
10
|
import ArrowDownward from '@mui/icons-material/ArrowDownward';
|
|
11
11
|
import ArrowUpward from '@mui/icons-material/ArrowUpward';
|
|
@@ -19,8 +19,8 @@ import customParsing from 'dayjs/plugin/customParseFormat';
|
|
|
19
19
|
import debounce from 'lodash/debounce';
|
|
20
20
|
import Close from '@mui/icons-material/Close';
|
|
21
21
|
import map from 'lodash/map';
|
|
22
|
-
import { LocalizationProvider, DatePicker, DateTimePicker, TimePicker } from '@mui/
|
|
23
|
-
import AdapterDayjs from '@mui/
|
|
22
|
+
import { LocalizationProvider, DatePicker, DateTimePicker, TimePicker } from '@mui/x-date-pickers';
|
|
23
|
+
import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';
|
|
24
24
|
import get from 'lodash/get';
|
|
25
25
|
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
|
26
26
|
import Input$1 from '@mui/material/Input';
|
|
@@ -327,20 +327,14 @@ const MuiCheckbox = React.memo((props) => {
|
|
|
327
327
|
return (React.createElement(Checkbox, { checked: checked, onChange: (_ev, isChecked) => handleChange(path, isChecked), className: className, id: id, disabled: !enabled, inputProps: inputProps }));
|
|
328
328
|
});
|
|
329
329
|
|
|
330
|
-
const MuiSelect = React.memo((props) => {
|
|
331
|
-
const { data, className, id, enabled, uischema, path, handleChange, options, config } = props;
|
|
332
|
-
const appliedUiSchemaOptions = merge({}, config, uischema.options);
|
|
333
|
-
return (React.createElement(Select, { className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, value: data !== undefined ? data : '', onChange: ev => handleChange(path, ev.target.value), fullWidth: true, variant: 'standard' }, [React.createElement(MenuItem, { value: '', key: 'empty' })].concat(options.map(optionValue => (React.createElement(MenuItem, { value: optionValue.value, key: optionValue.value }, optionValue.label))))));
|
|
334
|
-
});
|
|
335
|
-
|
|
336
330
|
dayjs.extend(customParsing);
|
|
337
|
-
const createOnChangeHandler = (path, handleChange, saveFormat) => (time) => {
|
|
331
|
+
const createOnChangeHandler = (path, handleChange, saveFormat) => (time, textInputValue) => {
|
|
338
332
|
if (!time) {
|
|
339
333
|
handleChange(path, undefined);
|
|
340
334
|
return;
|
|
341
335
|
}
|
|
342
336
|
const result = dayjs(time).format(saveFormat);
|
|
343
|
-
handleChange(path, result === 'Invalid Date' ?
|
|
337
|
+
handleChange(path, result === 'Invalid Date' ? textInputValue : result);
|
|
344
338
|
};
|
|
345
339
|
const getData = (data, saveFormat) => {
|
|
346
340
|
if (!data) {
|
|
@@ -352,6 +346,22 @@ const getData = (data, saveFormat) => {
|
|
|
352
346
|
}
|
|
353
347
|
return dayjsData;
|
|
354
348
|
};
|
|
349
|
+
const ResettableTextField = ({ rawValue, dayjsValueIsValid, valueInInputFormat, focused, inputProps, ...props }) => {
|
|
350
|
+
const value = useRef({ lastInput: inputProps?.value, toShow: inputProps?.value });
|
|
351
|
+
if (!focused) {
|
|
352
|
+
if (!dayjsValueIsValid) {
|
|
353
|
+
value.current.toShow = typeof rawValue === 'string' || rawValue === null || rawValue === undefined ? rawValue : JSON.stringify(rawValue);
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
value.current.toShow = valueInInputFormat;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
if (focused && inputProps?.value !== value.current.lastInput) {
|
|
360
|
+
value.current.lastInput = inputProps?.value;
|
|
361
|
+
value.current.toShow = inputProps?.value;
|
|
362
|
+
}
|
|
363
|
+
return React.createElement(TextField, Object.assign({}, props, { inputProps: { ...inputProps, value: value.current.toShow || '' } }));
|
|
364
|
+
};
|
|
355
365
|
|
|
356
366
|
const renderLayoutElements = (elements, schema, path, enabled, renderers, cells) => {
|
|
357
367
|
return elements.map((child, index) => (React.createElement(Grid, { item: true, key: `${path}-${index}`, xs: true },
|
|
@@ -373,8 +383,8 @@ const withAjvProps = (Component) => (props) => {
|
|
|
373
383
|
return (React.createElement(Component, Object.assign({}, props, { ajv: ajv })));
|
|
374
384
|
};
|
|
375
385
|
|
|
376
|
-
const eventToValue$
|
|
377
|
-
const useDebouncedChange = (handleChange, defaultValue, data, path, eventToValueFunction = eventToValue$
|
|
386
|
+
const eventToValue$3 = (ev) => ev.target.value;
|
|
387
|
+
const useDebouncedChange = (handleChange, defaultValue, data, path, eventToValueFunction = eventToValue$3, timeout = 300) => {
|
|
378
388
|
const [input, setInput] = useState(data ?? defaultValue);
|
|
379
389
|
useEffect(() => {
|
|
380
390
|
setInput(data ?? defaultValue);
|
|
@@ -396,23 +406,35 @@ const useFocus = () => {
|
|
|
396
406
|
return [focused, onFocus, onBlur];
|
|
397
407
|
};
|
|
398
408
|
|
|
409
|
+
const i18nDefaults = {
|
|
410
|
+
'enum.none': 'None'
|
|
411
|
+
};
|
|
412
|
+
|
|
413
|
+
const MuiSelect = React.memo((props) => {
|
|
414
|
+
const { data, className, id, enabled, schema, uischema, path, handleChange, options, config, t } = props;
|
|
415
|
+
const appliedUiSchemaOptions = merge({}, config, uischema.options);
|
|
416
|
+
const noneOptionLabel = useMemo(() => t('enum.none', i18nDefaults['enum.none'], { schema, uischema, path }), [t, schema, uischema, path]);
|
|
417
|
+
return (React.createElement(Select, { className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, value: data !== undefined ? data : '', onChange: ev => handleChange(path, ev.target.value || undefined), fullWidth: true, variant: 'standard' }, [React.createElement(MenuItem, { value: '', key: 'jsonforms.enum.none' },
|
|
418
|
+
React.createElement("em", null, noneOptionLabel))].concat(options.map(optionValue => (React.createElement(MenuItem, { value: optionValue.value, key: optionValue.value }, optionValue.label))))));
|
|
419
|
+
});
|
|
420
|
+
|
|
399
421
|
const toNumber$1 = (value) => value === '' ? undefined : parseInt(value, 10);
|
|
400
|
-
const eventToValue$
|
|
422
|
+
const eventToValue$2 = (ev) => toNumber$1(ev.target.value);
|
|
401
423
|
const MuiInputInteger = React.memo((props) => {
|
|
402
424
|
const { data, className, id, enabled, uischema, path, handleChange, config } = props;
|
|
403
425
|
const inputProps = { step: '1' };
|
|
404
426
|
const appliedUiSchemaOptions = merge({}, config, uischema.options);
|
|
405
|
-
const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path, eventToValue$
|
|
427
|
+
const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path, eventToValue$2);
|
|
406
428
|
return (React.createElement(Input, { type: 'number', value: inputValue, onChange: onChange, className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, inputProps: inputProps, fullWidth: true }));
|
|
407
429
|
});
|
|
408
430
|
|
|
409
431
|
const toNumber = (value) => value === '' ? undefined : parseFloat(value);
|
|
410
|
-
const eventToValue = (ev) => toNumber(ev.target.value);
|
|
432
|
+
const eventToValue$1 = (ev) => toNumber(ev.target.value);
|
|
411
433
|
const MuiInputNumber = React.memo((props) => {
|
|
412
434
|
const { data, className, id, enabled, uischema, path, handleChange, config } = props;
|
|
413
435
|
const inputProps = { step: '0.1' };
|
|
414
436
|
const appliedUiSchemaOptions = merge({}, config, uischema.options);
|
|
415
|
-
const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path, eventToValue);
|
|
437
|
+
const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path, eventToValue$1);
|
|
416
438
|
return (React.createElement(Input, { type: 'number', value: inputValue, onChange: onChange, className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, inputProps: inputProps, fullWidth: true }));
|
|
417
439
|
});
|
|
418
440
|
|
|
@@ -433,6 +455,7 @@ const MuiInputNumberFormat = React.memo((props) => {
|
|
|
433
455
|
return (React.createElement(Input, { type: 'text', value: inputValue, onChange: onChange, className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, multiline: appliedUiSchemaOptions.multi, fullWidth: !appliedUiSchemaOptions.trim || maxLength === undefined, inputProps: inputProps, error: !isValid }));
|
|
434
456
|
});
|
|
435
457
|
|
|
458
|
+
const eventToValue = (ev) => ev.target.value === '' ? undefined : ev.target.value;
|
|
436
459
|
const MuiInputText = React.memo((props) => {
|
|
437
460
|
const [showAdornment, setShowAdornment] = useState(false);
|
|
438
461
|
const { data, config, className, id, enabled, uischema, isValid, path, handleChange, schema, muiInputProps, inputComponent } = props;
|
|
@@ -449,7 +472,7 @@ const MuiInputText = React.memo((props) => {
|
|
|
449
472
|
if (appliedUiSchemaOptions.trim && maxLength !== undefined) {
|
|
450
473
|
inputProps.size = maxLength;
|
|
451
474
|
}
|
|
452
|
-
const [inputText, onChange, onClear] = useDebouncedChange(handleChange, '', data, path);
|
|
475
|
+
const [inputText, onChange, onClear] = useDebouncedChange(handleChange, '', data, path, eventToValue);
|
|
453
476
|
const onPointerEnter = () => setShowAdornment(true);
|
|
454
477
|
const onPointerLeave = () => setShowAdornment(false);
|
|
455
478
|
const theme = useTheme();
|
|
@@ -503,12 +526,11 @@ var MaterialEnumArrayRenderer$1 = withJsonFormsMultiEnumProps(MaterialEnumArrayR
|
|
|
503
526
|
const materialArrayControlTester = rankWith(3, or(isObjectArrayControl, isPrimitiveArrayControl));
|
|
504
527
|
|
|
505
528
|
const materialLabelRendererTester = rankWith(1, uiTypeIs('Label'));
|
|
506
|
-
const MaterialLabelRenderer = ({
|
|
507
|
-
const labelElement = uischema;
|
|
529
|
+
const MaterialLabelRenderer = ({ text, visible }) => {
|
|
508
530
|
return (React.createElement(Hidden, { xsUp: !visible },
|
|
509
|
-
React.createElement(Typography, { variant: 'h6' },
|
|
531
|
+
React.createElement(Typography, { variant: 'h6' }, text)));
|
|
510
532
|
};
|
|
511
|
-
var MaterialLabelRenderer$1 =
|
|
533
|
+
var MaterialLabelRenderer$1 = withJsonFormsLabelProps(MaterialLabelRenderer);
|
|
512
534
|
|
|
513
535
|
const ArrayLayoutToolbar = React.memo(({ label, errors, addItem, path, createDefault }) => {
|
|
514
536
|
return (React.createElement(Toolbar, { disableGutters: true },
|
|
@@ -552,6 +574,9 @@ const MaterialListWithDetailRenderer = ({ uischemas, schema, uischema, path, err
|
|
|
552
574
|
const handleCreateDefaultValue = useCallback(() => createDefaultValue(schema), [createDefaultValue]);
|
|
553
575
|
const foundUISchema = useMemo(() => findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema, rootSchema), [uischemas, schema, uischema.scope, path, uischema, rootSchema]);
|
|
554
576
|
const appliedUiSchemaOptions = merge({}, config, uischema.options);
|
|
577
|
+
React.useEffect(() => {
|
|
578
|
+
setSelectedIndex(undefined);
|
|
579
|
+
}, [schema]);
|
|
555
580
|
return (React.createElement(Hidden, { xsUp: !visible },
|
|
556
581
|
React.createElement(ArrayLayoutToolbar, { label: computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), errors: errors, path: path, addItem: addItem, createDefault: handleCreateDefaultValue }),
|
|
557
582
|
React.createElement(Grid, { container: true, direction: 'row', spacing: 2 },
|
|
@@ -606,24 +631,40 @@ const MaterialInputControl = (props) => {
|
|
|
606
631
|
};
|
|
607
632
|
|
|
608
633
|
const MuiAutocomplete = (props) => {
|
|
609
|
-
const { data, className, id, enabled, uischema, path, handleChange, options, config, getOptionLabel, renderOption, filterOptions } = props;
|
|
634
|
+
const { description, errors, visible, required, label, data, className, id, enabled, uischema, path, handleChange, options, config, getOptionLabel, renderOption, filterOptions, isValid } = props;
|
|
610
635
|
const appliedUiSchemaOptions = merge({}, config, uischema.options);
|
|
611
636
|
const [inputValue, setInputValue] = React.useState(data ?? '');
|
|
637
|
+
const [focused, onFocus, onBlur] = useFocus();
|
|
612
638
|
const findOption = options.find(o => o.value === data) ?? null;
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
639
|
+
const showDescription = !isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
|
|
640
|
+
const firstFormHelperText = showDescription
|
|
641
|
+
? description
|
|
642
|
+
: !isValid
|
|
643
|
+
? errors
|
|
644
|
+
: null;
|
|
645
|
+
const secondFormHelperText = showDescription && !isValid ? errors : null;
|
|
646
|
+
return (React.createElement(Hidden, { xsUp: !visible },
|
|
647
|
+
React.createElement(Autocomplete, { className: className, id: id, disabled: !enabled, value: findOption, onChange: (_event, newValue) => {
|
|
648
|
+
handleChange(path, newValue?.value);
|
|
649
|
+
}, inputValue: inputValue, onInputChange: (_event, newInputValue) => {
|
|
650
|
+
setInputValue(newInputValue);
|
|
651
|
+
}, autoHighlight: true, autoSelect: true, autoComplete: true, fullWidth: true, options: options, getOptionLabel: getOptionLabel || (option => option?.label), freeSolo: false, renderInput: params => {
|
|
652
|
+
return (React.createElement(TextField, Object.assign({ label: label, variant: 'standard', type: 'text', inputProps: params.inputProps, inputRef: params.InputProps.ref, autoFocus: appliedUiSchemaOptions.focus, disabled: !enabled }, params, { id: id + '-input', required: required && !appliedUiSchemaOptions.hideRequiredAsterisk, error: !isValid, fullWidth: !appliedUiSchemaOptions.trim, InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, focused: focused })));
|
|
653
|
+
}, renderOption: renderOption, filterOptions: filterOptions }),
|
|
654
|
+
React.createElement(FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
|
|
655
|
+
React.createElement(FormHelperText, { error: !isValid }, secondFormHelperText)));
|
|
618
656
|
};
|
|
619
657
|
|
|
620
658
|
const MaterialEnumControl = (props) => {
|
|
621
|
-
const { config, uischema } = props;
|
|
659
|
+
const { config, uischema, errors } = props;
|
|
622
660
|
const appliedUiSchemaOptions = merge({}, config, uischema.options);
|
|
623
|
-
|
|
661
|
+
const isValid = errors.length === 0;
|
|
662
|
+
return (appliedUiSchemaOptions.autocomplete === false ?
|
|
663
|
+
React.createElement(MaterialInputControl, Object.assign({}, props, { input: MuiSelect })) :
|
|
664
|
+
React.createElement(MuiAutocomplete, Object.assign({}, props, { isValid: isValid })));
|
|
624
665
|
};
|
|
625
666
|
const materialEnumControlTester = rankWith(2, isEnumControl);
|
|
626
|
-
var MaterialEnumControl$1 = withJsonFormsEnumProps(MaterialEnumControl);
|
|
667
|
+
var MaterialEnumControl$1 = withJsonFormsEnumProps(withTranslateProps(React.memo(MaterialEnumControl)), false);
|
|
627
668
|
|
|
628
669
|
const MaterialNativeControl = (props) => {
|
|
629
670
|
const [focused, onFocus, onBlur] = useFocus();
|
|
@@ -647,6 +688,7 @@ const MaterialDateControl = (props) => {
|
|
|
647
688
|
const showDescription = !isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
|
|
648
689
|
const format = appliedUiSchemaOptions.dateFormat ?? 'YYYY-MM-DD';
|
|
649
690
|
const saveFormat = appliedUiSchemaOptions.dateSaveFormat ?? 'YYYY-MM-DD';
|
|
691
|
+
const views = appliedUiSchemaOptions.views ?? ['year', 'day'];
|
|
650
692
|
const firstFormHelperText = showDescription
|
|
651
693
|
? description
|
|
652
694
|
: !isValid
|
|
@@ -654,9 +696,18 @@ const MaterialDateControl = (props) => {
|
|
|
654
696
|
: null;
|
|
655
697
|
const secondFormHelperText = showDescription && !isValid ? errors : null;
|
|
656
698
|
const onChange = useMemo(() => createOnChangeHandler(path, handleChange, saveFormat), [path, handleChange, saveFormat]);
|
|
699
|
+
const value = getData(data, saveFormat);
|
|
700
|
+
const valueInInputFormat = value ? value.format(format) : '';
|
|
657
701
|
return (React.createElement(Hidden, { xsUp: !visible },
|
|
658
702
|
React.createElement(LocalizationProvider, { dateAdapter: AdapterDayjs },
|
|
659
|
-
React.createElement(DatePicker, { label: label, value:
|
|
703
|
+
React.createElement(DatePicker, { label: label, value: value, onChange: onChange, inputFormat: format, disableMaskedInput: true, views: views, disabled: !enabled, componentsProps: {
|
|
704
|
+
actionBar: {
|
|
705
|
+
actions: (variant) => (variant === 'desktop' ? [] : ['clear', 'cancel', 'accept'])
|
|
706
|
+
}
|
|
707
|
+
}, renderInput: params => (React.createElement(ResettableTextField, Object.assign({}, params, { rawValue: data, dayjsValueIsValid: value !== null, valueInInputFormat: valueInInputFormat, focused: focused, id: id + '-input', required: required && !appliedUiSchemaOptions.hideRequiredAsterisk, autoFocus: appliedUiSchemaOptions.focus, error: !isValid, fullWidth: !appliedUiSchemaOptions.trim, inputProps: {
|
|
708
|
+
...params.inputProps,
|
|
709
|
+
type: 'text',
|
|
710
|
+
}, InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))) }),
|
|
660
711
|
React.createElement(FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
|
|
661
712
|
React.createElement(FormHelperText, { error: !isValid }, secondFormHelperText))));
|
|
662
713
|
};
|
|
@@ -671,6 +722,7 @@ const MaterialDateTimeControl = (props) => {
|
|
|
671
722
|
const showDescription = !isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
|
|
672
723
|
const format = appliedUiSchemaOptions.dateTimeFormat ?? 'YYYY-MM-DD HH:mm';
|
|
673
724
|
const saveFormat = appliedUiSchemaOptions.dateTimeSaveFormat ?? undefined;
|
|
725
|
+
const views = appliedUiSchemaOptions.views ?? ['year', 'day', 'hours', 'minutes'];
|
|
674
726
|
const firstFormHelperText = showDescription
|
|
675
727
|
? description
|
|
676
728
|
: !isValid
|
|
@@ -678,9 +730,18 @@ const MaterialDateTimeControl = (props) => {
|
|
|
678
730
|
: null;
|
|
679
731
|
const secondFormHelperText = showDescription && !isValid ? errors : null;
|
|
680
732
|
const onChange = useMemo(() => createOnChangeHandler(path, handleChange, saveFormat), [path, handleChange, saveFormat]);
|
|
733
|
+
const value = getData(data, saveFormat);
|
|
734
|
+
const valueInInputFormat = value ? value.format(format) : '';
|
|
681
735
|
return (React.createElement(Hidden, { xsUp: !visible },
|
|
682
736
|
React.createElement(LocalizationProvider, { dateAdapter: AdapterDayjs },
|
|
683
|
-
React.createElement(DateTimePicker, { label: label, value:
|
|
737
|
+
React.createElement(DateTimePicker, { label: label, value: value, onChange: onChange, inputFormat: format, disableMaskedInput: true, ampm: !!appliedUiSchemaOptions.ampm, views: views, disabled: !enabled, componentsProps: {
|
|
738
|
+
actionBar: {
|
|
739
|
+
actions: (variant) => (variant === 'desktop' ? [] : ['clear', 'cancel', 'accept'])
|
|
740
|
+
}
|
|
741
|
+
}, renderInput: params => (React.createElement(ResettableTextField, Object.assign({}, params, { rawValue: data, dayjsValueIsValid: value !== null, valueInInputFormat: valueInInputFormat, focused: focused, id: id + '-input', required: required && !appliedUiSchemaOptions.hideRequiredAsterisk, autoFocus: appliedUiSchemaOptions.focus, error: !isValid, fullWidth: !appliedUiSchemaOptions.trim, inputProps: {
|
|
742
|
+
...params.inputProps,
|
|
743
|
+
type: 'text',
|
|
744
|
+
}, InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))) }),
|
|
684
745
|
React.createElement(FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
|
|
685
746
|
React.createElement(FormHelperText, { error: !isValid }, secondFormHelperText))));
|
|
686
747
|
};
|
|
@@ -695,6 +756,7 @@ const MaterialTimeControl = (props) => {
|
|
|
695
756
|
const showDescription = !isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
|
|
696
757
|
const format = appliedUiSchemaOptions.timeFormat ?? 'HH:mm';
|
|
697
758
|
const saveFormat = appliedUiSchemaOptions.timeSaveFormat ?? 'HH:mm:ss';
|
|
759
|
+
const views = appliedUiSchemaOptions.views ?? ['hours', 'minutes'];
|
|
698
760
|
const firstFormHelperText = showDescription
|
|
699
761
|
? description
|
|
700
762
|
: !isValid
|
|
@@ -702,9 +764,18 @@ const MaterialTimeControl = (props) => {
|
|
|
702
764
|
: null;
|
|
703
765
|
const secondFormHelperText = showDescription && !isValid ? errors : null;
|
|
704
766
|
const onChange = useMemo(() => createOnChangeHandler(path, handleChange, saveFormat), [path, handleChange, saveFormat]);
|
|
767
|
+
const value = getData(data, saveFormat);
|
|
768
|
+
const valueInInputFormat = value ? value.format(format) : '';
|
|
705
769
|
return (React.createElement(Hidden, { xsUp: !visible },
|
|
706
770
|
React.createElement(LocalizationProvider, { dateAdapter: AdapterDayjs },
|
|
707
|
-
React.createElement(TimePicker, { label: label, value:
|
|
771
|
+
React.createElement(TimePicker, { label: label, value: value, onChange: onChange, inputFormat: format, disableMaskedInput: true, ampm: !!appliedUiSchemaOptions.ampm, views: views, disabled: !enabled, componentsProps: {
|
|
772
|
+
actionBar: {
|
|
773
|
+
actions: (variant) => (variant === 'desktop' ? [] : ['clear', 'cancel', 'accept'])
|
|
774
|
+
}
|
|
775
|
+
}, renderInput: params => (React.createElement(ResettableTextField, Object.assign({}, params, { rawValue: data, dayjsValueIsValid: value !== null, valueInInputFormat: valueInInputFormat, focused: focused, id: id + '-input', required: required && !appliedUiSchemaOptions.hideRequiredAsterisk, autoFocus: appliedUiSchemaOptions.focus, error: !isValid, fullWidth: !appliedUiSchemaOptions.trim, inputProps: {
|
|
776
|
+
...params.inputProps,
|
|
777
|
+
type: 'text'
|
|
778
|
+
}, InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))) }),
|
|
708
779
|
React.createElement(FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
|
|
709
780
|
React.createElement(FormHelperText, { error: !isValid }, secondFormHelperText))));
|
|
710
781
|
};
|
|
@@ -756,7 +827,7 @@ const MaterialRadioGroup = (props) => {
|
|
|
756
827
|
return (React.createElement(Hidden, { xsUp: !visible },
|
|
757
828
|
React.createElement(FormControl, { component: 'fieldset', fullWidth: !appliedUiSchemaOptions.trim, onFocus: onFocus, onBlur: onBlur },
|
|
758
829
|
React.createElement(FormLabel, { htmlFor: id, error: !isValid, component: 'legend', required: showAsRequired(required, appliedUiSchemaOptions.hideRequiredAsterisk) }, label),
|
|
759
|
-
React.createElement(RadioGroup, { value: props.data, onChange: onChange, row: true }, options.map(option => (React.createElement(FormControlLabel, { value: option.value, key: option.label, control: React.createElement(Radio, { checked: data === option.value }), label: option.label, disabled: !enabled })))),
|
|
830
|
+
React.createElement(RadioGroup, { value: props.data ?? '', onChange: onChange, row: true }, options.map(option => (React.createElement(FormControlLabel, { value: option.value, key: option.label, control: React.createElement(Radio, { checked: data === option.value }), label: option.label, disabled: !enabled })))),
|
|
760
831
|
React.createElement(FormHelperText, { error: !isValid }, !isValid ? errors : showDescription ? description : null))));
|
|
761
832
|
};
|
|
762
833
|
|
|
@@ -818,12 +889,15 @@ const materialAnyOfStringOrEnumControlTester = rankWith(5, simpleAnyOf);
|
|
|
818
889
|
var MaterialAnyOfStringOrEnumControl$1 = withJsonFormsControlProps(MaterialAnyOfStringOrEnumControl);
|
|
819
890
|
|
|
820
891
|
const MaterialOneOfEnumControl = (props) => {
|
|
821
|
-
const { config, uischema } = props;
|
|
892
|
+
const { config, uischema, errors } = props;
|
|
822
893
|
const appliedUiSchemaOptions = merge({}, config, uischema.options);
|
|
823
|
-
|
|
894
|
+
const isValid = errors.length === 0;
|
|
895
|
+
return (appliedUiSchemaOptions.autocomplete === false ?
|
|
896
|
+
React.createElement(MaterialInputControl, Object.assign({}, props, { input: MuiSelect })) :
|
|
897
|
+
React.createElement(MuiAutocomplete, Object.assign({}, props, { isValid: isValid })));
|
|
824
898
|
};
|
|
825
899
|
const materialOneOfEnumControlTester = rankWith(5, isOneOfEnumControl);
|
|
826
|
-
var MaterialOneOfEnumControl$1 = withJsonFormsOneOfEnumProps(MaterialOneOfEnumControl);
|
|
900
|
+
var MaterialOneOfEnumControl$1 = withJsonFormsOneOfEnumProps(withTranslateProps(React.memo(MaterialOneOfEnumControl)), false);
|
|
827
901
|
|
|
828
902
|
const MaterialOneOfRadioGroupControl = (props) => {
|
|
829
903
|
return React.createElement(MaterialRadioGroup, Object.assign({}, props));
|
|
@@ -851,17 +925,17 @@ const Unwrapped = {
|
|
|
851
925
|
|
|
852
926
|
const groupTester = rankWith(1, uiTypeIs('Group'));
|
|
853
927
|
const style = { marginBottom: '10px' };
|
|
854
|
-
const GroupComponent = React.memo(({ visible, enabled, uischema, ...props }) => {
|
|
928
|
+
const GroupComponent = React.memo(({ visible, enabled, uischema, label, ...props }) => {
|
|
855
929
|
const groupLayout = uischema;
|
|
856
930
|
return (React.createElement(Hidden, { xsUp: !visible },
|
|
857
931
|
React.createElement(Card, { style: style },
|
|
858
|
-
!isEmpty(
|
|
932
|
+
!isEmpty(label) && (React.createElement(CardHeader, { title: label })),
|
|
859
933
|
React.createElement(CardContent, null,
|
|
860
934
|
React.createElement(MaterialLayoutRenderer, Object.assign({}, props, { visible: visible, enabled: enabled, elements: groupLayout.elements }))))));
|
|
861
935
|
});
|
|
862
|
-
const MaterializedGroupLayoutRenderer = ({ uischema, schema, path, visible, enabled, renderers, cells, direction }) => {
|
|
936
|
+
const MaterializedGroupLayoutRenderer = ({ uischema, schema, path, visible, enabled, renderers, cells, direction, label }) => {
|
|
863
937
|
const groupLayout = uischema;
|
|
864
|
-
return (React.createElement(GroupComponent, { elements: groupLayout.elements, schema: schema, path: path, direction: direction, visible: visible, enabled: enabled, uischema: uischema, renderers: renderers, cells: cells }));
|
|
938
|
+
return (React.createElement(GroupComponent, { elements: groupLayout.elements, schema: schema, path: path, direction: direction, visible: visible, enabled: enabled, uischema: uischema, renderers: renderers, cells: cells, label: label }));
|
|
865
939
|
};
|
|
866
940
|
var MaterialGroupLayout = withJsonFormsLayoutProps(MaterializedGroupLayoutRenderer);
|
|
867
941
|
const materialGroupTester = withIncreasedRank(1, groupTester);
|
|
@@ -903,10 +977,10 @@ const isSingleLevelCategorization = and(uiTypeIs('Categorization'), (uischema) =
|
|
|
903
977
|
});
|
|
904
978
|
const materialCategorizationTester = rankWith(1, isSingleLevelCategorization);
|
|
905
979
|
const MaterialCategorizationLayoutRenderer = (props) => {
|
|
906
|
-
const { data, path, renderers, cells, schema, uischema, visible, enabled, selected, onChange, ajv } = props;
|
|
980
|
+
const { data, path, renderers, cells, schema, uischema, visible, enabled, selected, onChange, ajv, t } = props;
|
|
907
981
|
const categorization = uischema;
|
|
908
982
|
const [activeCategory, setActiveCategory] = useState(selected ?? 0);
|
|
909
|
-
const categories = categorization.elements.filter((category) => isVisible(category, data, undefined, ajv));
|
|
983
|
+
const categories = useMemo(() => categorization.elements.filter((category) => isVisible(category, data, undefined, ajv)), [categorization, data, ajv]);
|
|
910
984
|
const childProps = {
|
|
911
985
|
elements: categories[activeCategory].elements,
|
|
912
986
|
schema,
|
|
@@ -923,13 +997,16 @@ const MaterialCategorizationLayoutRenderer = (props) => {
|
|
|
923
997
|
}
|
|
924
998
|
setActiveCategory(value);
|
|
925
999
|
};
|
|
1000
|
+
const tabLabels = useMemo(() => {
|
|
1001
|
+
return categories.map((e) => deriveLabelForUISchemaElement(e, t));
|
|
1002
|
+
}, [categories, t]);
|
|
926
1003
|
return (React.createElement(Hidden, { xsUp: !visible },
|
|
927
1004
|
React.createElement(AppBar, { position: 'static' },
|
|
928
|
-
React.createElement(Tabs, { value: activeCategory, onChange: onTabChange, textColor: 'inherit', indicatorColor: 'secondary', variant: 'scrollable' }, categories.map((
|
|
1005
|
+
React.createElement(Tabs, { value: activeCategory, onChange: onTabChange, textColor: 'inherit', indicatorColor: 'secondary', variant: 'scrollable' }, categories.map((_, idx) => (React.createElement(Tab, { key: idx, label: tabLabels[idx] }))))),
|
|
929
1006
|
React.createElement("div", { style: { marginTop: '0.5em' } },
|
|
930
1007
|
React.createElement(MaterialLayoutRenderer, Object.assign({}, childProps)))));
|
|
931
1008
|
};
|
|
932
|
-
var MaterialCategorizationLayout = withJsonFormsLayoutProps(
|
|
1009
|
+
var MaterialCategorizationLayout = withAjvProps(withTranslateProps(withJsonFormsLayoutProps(MaterialCategorizationLayoutRenderer)));
|
|
933
1010
|
|
|
934
1011
|
const iconStyle = { float: 'right' };
|
|
935
1012
|
const ExpandPanelRendererComponent = (props) => {
|
|
@@ -1058,7 +1135,7 @@ var MaterialDateCell$1 = withJsonFormsCellProps(MaterialDateCell);
|
|
|
1058
1135
|
|
|
1059
1136
|
const MaterialEnumCell = (props) => (React.createElement(MuiSelect, Object.assign({}, props)));
|
|
1060
1137
|
const materialEnumCellTester = rankWith(2, isEnumControl);
|
|
1061
|
-
var MaterialEnumCell$1 = withJsonFormsEnumCellProps(MaterialEnumCell);
|
|
1138
|
+
var MaterialEnumCell$1 = withJsonFormsEnumCellProps(withTranslateProps(React.memo(MaterialEnumCell)), false);
|
|
1062
1139
|
|
|
1063
1140
|
const MaterialIntegerCell = (props) => (React.createElement(MuiInputInteger, Object.assign({}, props)));
|
|
1064
1141
|
const materialIntegerCellTester = rankWith(2, isIntegerControl);
|
|
@@ -1074,7 +1151,7 @@ var MaterialNumberFormatCell$1 = withJsonFormsCellProps(MaterialNumberFormatCell
|
|
|
1074
1151
|
|
|
1075
1152
|
const MaterialOneOfEnumCell = (props) => (React.createElement(MuiSelect, Object.assign({}, props)));
|
|
1076
1153
|
const materialOneOfEnumCellTester = rankWith(2, isOneOfEnumControl);
|
|
1077
|
-
var MaterialOneOfEnumCell$1 = withJsonFormsOneOfEnumCellProps(MaterialOneOfEnumCell);
|
|
1154
|
+
var MaterialOneOfEnumCell$1 = withJsonFormsOneOfEnumCellProps(withTranslateProps(React.memo(MaterialOneOfEnumCell)), false);
|
|
1078
1155
|
|
|
1079
1156
|
const MaterialTextCell = (props) => (React.createElement(MuiInputText, Object.assign({}, props)));
|
|
1080
1157
|
const materialTextCellTester = rankWith(1, isStringControl);
|
|
@@ -1103,7 +1180,7 @@ const MaterialCategorizationStepperLayoutRenderer = (props) => {
|
|
|
1103
1180
|
const handleStep = (step) => {
|
|
1104
1181
|
setActiveCategory(step);
|
|
1105
1182
|
};
|
|
1106
|
-
const { data, path, renderers, schema, uischema, visible, cells, config, ajv } = props;
|
|
1183
|
+
const { data, path, renderers, schema, uischema, visible, cells, config, ajv, t } = props;
|
|
1107
1184
|
const categorization = uischema;
|
|
1108
1185
|
const appliedUiSchemaOptions = merge({}, config, uischema.options);
|
|
1109
1186
|
const buttonWrapperStyle = {
|
|
@@ -1117,7 +1194,7 @@ const MaterialCategorizationStepperLayoutRenderer = (props) => {
|
|
|
1117
1194
|
const buttonStyle = {
|
|
1118
1195
|
marginRight: '1em'
|
|
1119
1196
|
};
|
|
1120
|
-
const categories = categorization.elements.filter((category) => isVisible(category, data, undefined, ajv));
|
|
1197
|
+
const categories = useMemo(() => categorization.elements.filter((category) => isVisible(category, data, undefined, ajv)), [categorization, data, ajv]);
|
|
1121
1198
|
const childProps = {
|
|
1122
1199
|
elements: categories[activeCategory].elements,
|
|
1123
1200
|
schema,
|
|
@@ -1127,16 +1204,19 @@ const MaterialCategorizationStepperLayoutRenderer = (props) => {
|
|
|
1127
1204
|
renderers,
|
|
1128
1205
|
cells
|
|
1129
1206
|
};
|
|
1207
|
+
const tabLabels = useMemo(() => {
|
|
1208
|
+
return categories.map((e) => deriveLabelForUISchemaElement(e, t));
|
|
1209
|
+
}, [categories, t]);
|
|
1130
1210
|
return (React.createElement(Hidden, { xsUp: !visible },
|
|
1131
|
-
React.createElement(Stepper, { activeStep: activeCategory, nonLinear: true }, categories.map((
|
|
1132
|
-
React.createElement(StepButton, { onClick: () => handleStep(idx) },
|
|
1211
|
+
React.createElement(Stepper, { activeStep: activeCategory, nonLinear: true }, categories.map((_, idx) => (React.createElement(Step, { key: tabLabels[idx] },
|
|
1212
|
+
React.createElement(StepButton, { onClick: () => handleStep(idx) }, tabLabels[idx]))))),
|
|
1133
1213
|
React.createElement("div", null,
|
|
1134
1214
|
React.createElement(MaterialLayoutRenderer, Object.assign({}, childProps))),
|
|
1135
1215
|
!!appliedUiSchemaOptions.showNavButtons ? (React.createElement("div", { style: buttonWrapperStyle },
|
|
1136
1216
|
React.createElement(Button, { style: buttonNextStyle, variant: "contained", color: "primary", disabled: activeCategory >= categories.length - 1, onClick: () => handleStep(activeCategory + 1) }, "Next"),
|
|
1137
1217
|
React.createElement(Button, { style: buttonStyle, color: "secondary", variant: "contained", disabled: activeCategory <= 0, onClick: () => handleStep(activeCategory - 1) }, "Previous"))) : (React.createElement(React.Fragment, null))));
|
|
1138
1218
|
};
|
|
1139
|
-
var MaterialCategorizationStepperLayout = withJsonFormsLayoutProps(
|
|
1219
|
+
var MaterialCategorizationStepperLayout = withAjvProps(withTranslateProps(withJsonFormsLayoutProps(MaterialCategorizationStepperLayoutRenderer)));
|
|
1140
1220
|
|
|
1141
1221
|
const materialRenderers = [
|
|
1142
1222
|
{
|
|
@@ -1209,5 +1289,5 @@ const materialCells = [
|
|
|
1209
1289
|
{ tester: materialTimeCellTester, cell: MaterialTimeCell$1 }
|
|
1210
1290
|
];
|
|
1211
1291
|
|
|
1212
|
-
export { CustomizableCells as Customizable, MaterialAllOfRenderer$1 as MaterialAllOfRenderer, MaterialAnyOfRenderer$1 as MaterialAnyOfRenderer, MaterialAnyOfStringOrEnumControl$1 as MaterialAnyOfStringOrEnumControl, MaterialArrayControlRenderer$1 as MaterialArrayControlRenderer, MaterialArrayLayout, MaterialBooleanCell$1 as MaterialBooleanCell, MaterialBooleanControl$1 as MaterialBooleanControl, MaterialBooleanToggleCell$1 as MaterialBooleanToggleCell, MaterialBooleanToggleControl$1 as MaterialBooleanToggleControl, MaterialCategorizationLayout, MaterialDateCell$1 as MaterialDateCell, MaterialDateControl$1 as MaterialDateControl, MaterialDateTimeControl$1 as MaterialDateTimeControl, MaterialEnumArrayRenderer$1 as MaterialEnumArrayRenderer, MaterialEnumCell$1 as MaterialEnumCell, MaterialEnumControl$1 as MaterialEnumControl, MaterialGroupLayout, MaterialHorizontalLayout, MaterialInputControl, MaterialIntegerCell$1 as MaterialIntegerCell, MaterialIntegerControl$1 as MaterialIntegerControl, MaterialLayoutRenderer, MaterialNativeControl$1 as MaterialNativeControl, MaterialNumberCell$1 as MaterialNumberCell, MaterialNumberControl$1 as MaterialNumberControl, MaterialNumberFormatCell$1 as MaterialNumberFormatCell, MaterialObjectRenderer$1 as MaterialObjectRenderer, MaterialOneOfEnumCell$1 as MaterialOneOfEnumCell, MaterialOneOfEnumControl$1 as MaterialOneOfEnumControl, MaterialOneOfRadioGroupControl$1 as MaterialOneOfRadioGroupControl, MaterialOneOfRenderer$1 as MaterialOneOfRenderer, MaterialRadioGroupControl$1 as MaterialRadioGroupControl, MaterialSliderControl$1 as MaterialSliderControl, MaterialTextCell$1 as MaterialTextCell, MaterialTextControl$1 as MaterialTextControl, MaterialTimeCell$1 as MaterialTimeCell, MaterialTimeControl$1 as MaterialTimeControl, MaterialVerticalLayout, MuiCheckbox, MuiInputInteger, MuiInputNumber, MuiInputNumberFormat, MuiInputText, MuiInputTime, MuiSelect, Unwrapped, createOnChangeHandler, getData, materialAllOfControlTester, materialAnyOfControlTester, materialAnyOfStringOrEnumControlTester, materialArrayControlTester, materialArrayLayoutTester, materialBooleanCellTester, materialBooleanControlTester, materialBooleanToggleCellTester, materialBooleanToggleControlTester, materialCategorizationTester, materialCells, materialDateCellTester, materialDateControlTester, materialDateTimeControlTester, materialEnumArrayRendererTester, materialEnumCellTester, materialEnumControlTester, materialGroupTester, materialHorizontalLayoutTester, materialIntegerCellTester, materialIntegerControlTester, materialNativeControlTester, materialNumberCellTester, materialNumberControlTester, materialNumberFormatCellTester, materialObjectControlTester, materialOneOfControlTester, materialOneOfEnumCellTester, materialOneOfEnumControlTester, materialOneOfRadioGroupControlTester, materialRadioGroupControlTester, materialRenderers, materialSliderControlTester, materialTextCellTester, materialTextControlTester, materialTimeCellTester, materialTimeControlTester, materialVerticalLayoutTester, renderLayoutElements, useDebouncedChange, useFocus, withAjvProps };
|
|
1292
|
+
export { CustomizableCells as Customizable, MaterialAllOfRenderer$1 as MaterialAllOfRenderer, MaterialAnyOfRenderer$1 as MaterialAnyOfRenderer, MaterialAnyOfStringOrEnumControl$1 as MaterialAnyOfStringOrEnumControl, MaterialArrayControlRenderer$1 as MaterialArrayControlRenderer, MaterialArrayLayout, MaterialBooleanCell$1 as MaterialBooleanCell, MaterialBooleanControl$1 as MaterialBooleanControl, MaterialBooleanToggleCell$1 as MaterialBooleanToggleCell, MaterialBooleanToggleControl$1 as MaterialBooleanToggleControl, MaterialCategorizationLayout, MaterialDateCell$1 as MaterialDateCell, MaterialDateControl$1 as MaterialDateControl, MaterialDateTimeControl$1 as MaterialDateTimeControl, MaterialEnumArrayRenderer$1 as MaterialEnumArrayRenderer, MaterialEnumCell$1 as MaterialEnumCell, MaterialEnumControl$1 as MaterialEnumControl, MaterialGroupLayout, MaterialHorizontalLayout, MaterialInputControl, MaterialIntegerCell$1 as MaterialIntegerCell, MaterialIntegerControl$1 as MaterialIntegerControl, MaterialLayoutRenderer, MaterialNativeControl$1 as MaterialNativeControl, MaterialNumberCell$1 as MaterialNumberCell, MaterialNumberControl$1 as MaterialNumberControl, MaterialNumberFormatCell$1 as MaterialNumberFormatCell, MaterialObjectRenderer$1 as MaterialObjectRenderer, MaterialOneOfEnumCell$1 as MaterialOneOfEnumCell, MaterialOneOfEnumControl$1 as MaterialOneOfEnumControl, MaterialOneOfRadioGroupControl$1 as MaterialOneOfRadioGroupControl, MaterialOneOfRenderer$1 as MaterialOneOfRenderer, MaterialRadioGroupControl$1 as MaterialRadioGroupControl, MaterialSliderControl$1 as MaterialSliderControl, MaterialTextCell$1 as MaterialTextCell, MaterialTextControl$1 as MaterialTextControl, MaterialTimeCell$1 as MaterialTimeCell, MaterialTimeControl$1 as MaterialTimeControl, MaterialVerticalLayout, MuiCheckbox, MuiInputInteger, MuiInputNumber, MuiInputNumberFormat, MuiInputText, MuiInputTime, MuiSelect, ResettableTextField, Unwrapped, createOnChangeHandler, getData, i18nDefaults, materialAllOfControlTester, materialAnyOfControlTester, materialAnyOfStringOrEnumControlTester, materialArrayControlTester, materialArrayLayoutTester, materialBooleanCellTester, materialBooleanControlTester, materialBooleanToggleCellTester, materialBooleanToggleControlTester, materialCategorizationTester, materialCells, materialDateCellTester, materialDateControlTester, materialDateTimeControlTester, materialEnumArrayRendererTester, materialEnumCellTester, materialEnumControlTester, materialGroupTester, materialHorizontalLayoutTester, materialIntegerCellTester, materialIntegerControlTester, materialNativeControlTester, materialNumberCellTester, materialNumberControlTester, materialNumberFormatCellTester, materialObjectControlTester, materialOneOfControlTester, materialOneOfEnumCellTester, materialOneOfEnumControlTester, materialOneOfRadioGroupControlTester, materialRadioGroupControlTester, materialRenderers, materialSliderControlTester, materialTextCellTester, materialTextControlTester, materialTimeCellTester, materialTimeControlTester, materialVerticalLayoutTester, renderLayoutElements, useDebouncedChange, useFocus, withAjvProps };
|
|
1213
1293
|
//# sourceMappingURL=jsonforms-react-material.esm.js.map
|