@scenid/react-formulator 0.1.14 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.babelrc +30 -0
- package/.eslintrc +1 -1
- package/dist/index.cjs.js +195 -196
- package/dist/index.esm.js +128 -153
- package/package.json +10 -2
- package/src/Editable/FormField.jsx +28 -21
- package/src/Editable/FormRepeater.jsx +1 -1
- package/src/FormSectionBlock.jsx +2 -1
- package/src/FormulatorFormSection.jsx +21 -76
- package/src/ReadOnly/FormReadOnlyField.jsx +1 -1
- package/stories/CustomRenderField.jsx +46 -0
- package/stories/Forms.stories.jsx +35 -32
- package/stories/forms/types.schemas.js +18 -8
- package/.firebase/hosting.c3Rvcnlib29rLXN0YXRpYw.cache +0 -38
package/dist/index.esm.js
CHANGED
|
@@ -2,19 +2,42 @@ import * as React from 'react';
|
|
|
2
2
|
import React__default, { useState, useEffect } from 'react';
|
|
3
3
|
import * as PropTypes from 'prop-types';
|
|
4
4
|
import PropTypes__default from 'prop-types';
|
|
5
|
-
import
|
|
5
|
+
import _Input from '@material-ui/core/esm/Input';
|
|
6
|
+
import _Paper from '@material-ui/core/esm/Paper';
|
|
7
|
+
import _Box from '@material-ui/core/esm/Box';
|
|
8
|
+
import _Typography from '@material-ui/core/esm/Typography';
|
|
9
|
+
import { makeStyles, withStyles, darken, lighten, alpha as alpha$1, useTheme, duration, emphasize } from '@material-ui/core/styles';
|
|
10
|
+
import _FormGroup from '@material-ui/core/esm/FormGroup';
|
|
11
|
+
import _FormControl from '@material-ui/core/esm/FormControl';
|
|
12
|
+
import _FormHelperText from '@material-ui/core/esm/FormHelperText';
|
|
13
|
+
import _FormControlLabel from '@material-ui/core/esm/FormControlLabel';
|
|
14
|
+
import _InputAdornment from '@material-ui/core/esm/InputAdornment';
|
|
6
15
|
import cx from 'classnames';
|
|
7
16
|
import { makeStyles as makeStyles$1 } from '@material-ui/styles';
|
|
8
17
|
import AutorenewIcon from '@material-ui/icons/Autorenew';
|
|
9
|
-
import
|
|
18
|
+
import _TextField from '@material-ui/core/esm/TextField';
|
|
19
|
+
import _MenuItem from '@material-ui/core/esm/MenuItem';
|
|
20
|
+
import _Switch from '@material-ui/core/esm/Switch';
|
|
21
|
+
import _Checkbox from '@material-ui/core/esm/Checkbox';
|
|
22
|
+
import _Select from '@material-ui/core/esm/Select';
|
|
23
|
+
import _InputLabel from '@material-ui/core/esm/InputLabel';
|
|
24
|
+
import _Clear from '@material-ui/icons/esm/Clear';
|
|
25
|
+
import _Save from '@material-ui/icons/esm/Save';
|
|
26
|
+
import _Button from '@material-ui/core/esm/Button';
|
|
27
|
+
import _List from '@material-ui/core/esm/List';
|
|
28
|
+
import _ListItem from '@material-ui/core/esm/ListItem';
|
|
29
|
+
import _ListItemSecondaryAction from '@material-ui/core/esm/ListItemSecondaryAction';
|
|
30
|
+
import _IconButton from '@material-ui/core/esm/IconButton';
|
|
31
|
+
import _Delete from '@material-ui/icons/esm/Delete';
|
|
32
|
+
import _ListItemText from '@material-ui/core/esm/ListItemText';
|
|
10
33
|
import { DateTime } from 'luxon';
|
|
11
34
|
import path$3 from 'path';
|
|
12
35
|
import proc from 'process';
|
|
13
36
|
import { fileURLToPath } from 'url';
|
|
14
|
-
import
|
|
15
|
-
import Paper$1 from '@material-ui/core/Paper';
|
|
37
|
+
import Paper from '@material-ui/core/Paper';
|
|
16
38
|
import { createSvgIcon, capitalize, unstable_useId, useControlled, useEventCallback, setRef, useIsFocusVisible, useForkRef, isMuiElement } from '@material-ui/core/utils';
|
|
17
|
-
import IconButton
|
|
39
|
+
import IconButton from '@material-ui/core/IconButton';
|
|
40
|
+
import { Typography } from '@material-ui/core';
|
|
18
41
|
import Popper from '@material-ui/core/Popper';
|
|
19
42
|
import ListSubheader from '@material-ui/core/ListSubheader';
|
|
20
43
|
import Chip from '@material-ui/core/Chip';
|
|
@@ -29010,20 +29033,20 @@ var FormGroupHeader = function FormGroupHeader(_ref) {
|
|
|
29010
29033
|
desc = _ref.desc,
|
|
29011
29034
|
descVariant = _ref.descVariant,
|
|
29012
29035
|
textAlign = _ref.textAlign;
|
|
29013
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29036
|
+
return /*#__PURE__*/React__default.createElement(_Box, {
|
|
29014
29037
|
style: {
|
|
29015
29038
|
width: '100%',
|
|
29016
29039
|
display: 'flex',
|
|
29017
29040
|
flexDirection: 'column'
|
|
29018
29041
|
}
|
|
29019
|
-
}, label && /*#__PURE__*/React__default.createElement(
|
|
29042
|
+
}, label && /*#__PURE__*/React__default.createElement(_Box, {
|
|
29020
29043
|
mb: 2
|
|
29021
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29044
|
+
}, /*#__PURE__*/React__default.createElement(_Typography, {
|
|
29022
29045
|
variant: labelVariant,
|
|
29023
29046
|
align: textAlign
|
|
29024
|
-
}, label)), desc && /*#__PURE__*/React__default.createElement(
|
|
29047
|
+
}, label)), desc && /*#__PURE__*/React__default.createElement(_Box, {
|
|
29025
29048
|
mb: 2
|
|
29026
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29049
|
+
}, /*#__PURE__*/React__default.createElement(_Typography, {
|
|
29027
29050
|
variant: descVariant,
|
|
29028
29051
|
align: textAlign
|
|
29029
29052
|
}, desc)));
|
|
@@ -29049,11 +29072,11 @@ var FormSectionCard = function FormSectionCard(_ref) {
|
|
|
29049
29072
|
descVariant = _ref.descVariant,
|
|
29050
29073
|
textAlign = _ref.textAlign,
|
|
29051
29074
|
children = _ref.children;
|
|
29052
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29075
|
+
return /*#__PURE__*/React__default.createElement(_Box, {
|
|
29053
29076
|
mb: 2
|
|
29054
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29077
|
+
}, /*#__PURE__*/React__default.createElement(_Paper, {
|
|
29055
29078
|
elevation: 0
|
|
29056
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29079
|
+
}, /*#__PURE__*/React__default.createElement(_Box, {
|
|
29057
29080
|
p: 2
|
|
29058
29081
|
}, /*#__PURE__*/React__default.createElement(FormGroupHeader, {
|
|
29059
29082
|
label: label,
|
|
@@ -29091,7 +29114,7 @@ var FormSectionBlock = function FormSectionBlock(_ref) {
|
|
|
29091
29114
|
textAlign = _ref.textAlign,
|
|
29092
29115
|
children = _ref.children;
|
|
29093
29116
|
var styles = useStyles$1();
|
|
29094
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29117
|
+
return /*#__PURE__*/React__default.createElement(_Box, {
|
|
29095
29118
|
className: styles.formSectionBlock
|
|
29096
29119
|
}, /*#__PURE__*/React__default.createElement(FormGroupHeader, {
|
|
29097
29120
|
label: label,
|
|
@@ -29155,10 +29178,10 @@ var FormControlField$1 = function FormControlField(_ref) {
|
|
|
29155
29178
|
onChange: onChange
|
|
29156
29179
|
});
|
|
29157
29180
|
|
|
29158
|
-
var isRender = type === 'render';
|
|
29181
|
+
var isRender = type === '@@render';
|
|
29159
29182
|
|
|
29160
29183
|
if (validating) {
|
|
29161
|
-
finalProps.endAdornment = [/*#__PURE__*/React__default.createElement(
|
|
29184
|
+
finalProps.endAdornment = [/*#__PURE__*/React__default.createElement(_InputAdornment, {
|
|
29162
29185
|
position: "end"
|
|
29163
29186
|
}, /*#__PURE__*/React__default.createElement(AutorenewIcon, null))];
|
|
29164
29187
|
}
|
|
@@ -29166,40 +29189,48 @@ var FormControlField$1 = function FormControlField(_ref) {
|
|
|
29166
29189
|
var control;
|
|
29167
29190
|
|
|
29168
29191
|
if (isRender) {
|
|
29169
|
-
|
|
29170
|
-
|
|
29171
|
-
|
|
29172
|
-
|
|
29173
|
-
|
|
29174
|
-
|
|
29175
|
-
|
|
29176
|
-
|
|
29192
|
+
try {
|
|
29193
|
+
control = /*#__PURE__*/React__default.cloneElement(component, _objectSpread$4(_objectSpread$4({
|
|
29194
|
+
variant: variant
|
|
29195
|
+
}, finalProps), {}, {
|
|
29196
|
+
label: label,
|
|
29197
|
+
hasErrors: hasErrors,
|
|
29198
|
+
errors: errors,
|
|
29199
|
+
dirty: dirty
|
|
29200
|
+
}));
|
|
29201
|
+
} catch (e) {
|
|
29202
|
+
throw new Error("error creating control for field \"".concat(name, "\": ").concat(e.message));
|
|
29203
|
+
}
|
|
29177
29204
|
} else {
|
|
29178
|
-
|
|
29179
|
-
|
|
29180
|
-
|
|
29205
|
+
try {
|
|
29206
|
+
control = /*#__PURE__*/React__default.createElement(component, _objectSpread$4({
|
|
29207
|
+
variant: variant
|
|
29208
|
+
}, finalProps));
|
|
29209
|
+
} catch (e) {
|
|
29210
|
+
throw new Error("error creating control for field \"".concat(name, "\": ").concat(e.message));
|
|
29211
|
+
}
|
|
29181
29212
|
}
|
|
29182
29213
|
|
|
29183
29214
|
var isSwitch = type === 'boolean';
|
|
29184
|
-
var isRepeater = type === 'array'
|
|
29215
|
+
var isRepeater = type === 'array';
|
|
29185
29216
|
|
|
29186
29217
|
if (isRepeater || isRender) {
|
|
29187
29218
|
return control;
|
|
29188
29219
|
}
|
|
29189
29220
|
|
|
29190
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29221
|
+
return /*#__PURE__*/React__default.createElement(_FormControl, {
|
|
29191
29222
|
className: "data-card-field",
|
|
29192
29223
|
error: dirty && hasErrors,
|
|
29193
29224
|
variant: variant,
|
|
29194
29225
|
margin: "dense",
|
|
29195
29226
|
fullWidth: true,
|
|
29196
29227
|
required: required
|
|
29197
|
-
}, isSwitch && /*#__PURE__*/React__default.createElement(
|
|
29228
|
+
}, isSwitch && /*#__PURE__*/React__default.createElement(_FormControlLabel, {
|
|
29198
29229
|
className: cx(_defineProperty({}, styles.error, dirty && hasErrors)),
|
|
29199
29230
|
control: control,
|
|
29200
29231
|
label: label,
|
|
29201
29232
|
labelPlacement: finalProps.labelPlacement || 'end'
|
|
29202
|
-
}), !isSwitch && !isRepeater && !isRender && control, dirty && hasErrors && /*#__PURE__*/React__default.createElement(
|
|
29233
|
+
}), !isSwitch && !isRepeater && !isRender && control, dirty && hasErrors && /*#__PURE__*/React__default.createElement(_FormHelperText, null, errors.map(function (e) {
|
|
29203
29234
|
return e.message;
|
|
29204
29235
|
}).join('. ')));
|
|
29205
29236
|
};
|
|
@@ -29244,7 +29275,7 @@ var FormField = function FormField(_ref2) {
|
|
|
29244
29275
|
});
|
|
29245
29276
|
}
|
|
29246
29277
|
|
|
29247
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29278
|
+
return /*#__PURE__*/React__default.createElement(_FormGroup, null, prepend, /*#__PURE__*/React__default.createElement(FormControlField$1, finalProps), append);
|
|
29248
29279
|
};
|
|
29249
29280
|
|
|
29250
29281
|
FormField.propTypes = {
|
|
@@ -29275,7 +29306,7 @@ var FormField$1 = /*#__PURE__*/React__default.memo(FormField, function (prevProp
|
|
|
29275
29306
|
function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
29276
29307
|
|
|
29277
29308
|
function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
29278
|
-
|
|
29309
|
+
// eslint-disable-next-line react/prop-types, react/jsx-props-no-spreading
|
|
29279
29310
|
var FormText = (function (props) {
|
|
29280
29311
|
var finalProps = _objectSpread$3({}, props);
|
|
29281
29312
|
|
|
@@ -29285,7 +29316,7 @@ var FormText = (function (props) {
|
|
|
29285
29316
|
};
|
|
29286
29317
|
}
|
|
29287
29318
|
|
|
29288
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29319
|
+
return /*#__PURE__*/React__default.createElement(_TextField, finalProps);
|
|
29289
29320
|
});
|
|
29290
29321
|
|
|
29291
29322
|
function _extends() {
|
|
@@ -29326,7 +29357,7 @@ var FormNumber = function FormNumber(_ref) {
|
|
|
29326
29357
|
_onChange = _ref.onChange,
|
|
29327
29358
|
props = _objectWithoutProperties(_ref, _excluded$4);
|
|
29328
29359
|
|
|
29329
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29360
|
+
return /*#__PURE__*/React__default.createElement(_TextField, _extends({
|
|
29330
29361
|
name: name,
|
|
29331
29362
|
type: "number",
|
|
29332
29363
|
value: castToNumber(value, step),
|
|
@@ -29375,14 +29406,14 @@ var FormSelect = function FormSelect(_ref) {
|
|
|
29375
29406
|
var allOptions = [].concat(_toConsumableArray(unselectOption), _toConsumableArray(options.sort(function (l, r) {
|
|
29376
29407
|
return l.label.localeCompare(r.label);
|
|
29377
29408
|
})));
|
|
29378
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29409
|
+
return /*#__PURE__*/React__default.createElement(_TextField, _extends({
|
|
29379
29410
|
select: true,
|
|
29380
29411
|
required: required,
|
|
29381
29412
|
value: value === undefined ? '' : value
|
|
29382
29413
|
}, props), allOptions.map(function (_ref2) {
|
|
29383
29414
|
var itemLabel = _ref2.label,
|
|
29384
29415
|
itemValue = _ref2.value;
|
|
29385
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29416
|
+
return /*#__PURE__*/React__default.createElement(_MenuItem, {
|
|
29386
29417
|
key: itemLabel,
|
|
29387
29418
|
value: itemValue
|
|
29388
29419
|
}, itemLabel);
|
|
@@ -29428,7 +29459,7 @@ var FormBoolean = function FormBoolean(_ref) {
|
|
|
29428
29459
|
};
|
|
29429
29460
|
|
|
29430
29461
|
if (variant === 'checkbox') {
|
|
29431
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29462
|
+
return /*#__PURE__*/React__default.createElement(_Checkbox, {
|
|
29432
29463
|
color: "primary",
|
|
29433
29464
|
name: name,
|
|
29434
29465
|
checked: isChecked$1(value, defaultValue),
|
|
@@ -29436,7 +29467,7 @@ var FormBoolean = function FormBoolean(_ref) {
|
|
|
29436
29467
|
});
|
|
29437
29468
|
}
|
|
29438
29469
|
|
|
29439
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29470
|
+
return /*#__PURE__*/React__default.createElement(_Switch, {
|
|
29440
29471
|
color: "primary",
|
|
29441
29472
|
name: name,
|
|
29442
29473
|
checked: isChecked$1(value, defaultValue),
|
|
@@ -29559,58 +29590,58 @@ var FormRepeater = function FormRepeater(_ref) {
|
|
|
29559
29590
|
});
|
|
29560
29591
|
}
|
|
29561
29592
|
|
|
29562
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29593
|
+
return /*#__PURE__*/React__default.createElement(_Box, null, /*#__PURE__*/React__default.createElement(_List, {
|
|
29563
29594
|
dense: true
|
|
29564
29595
|
}, entries.map(function (entry, index) {
|
|
29565
29596
|
return (
|
|
29566
29597
|
/*#__PURE__*/
|
|
29567
29598
|
// eslint-disable-next-line react/no-array-index-key
|
|
29568
|
-
React__default.createElement(
|
|
29599
|
+
React__default.createElement(_ListItem, {
|
|
29569
29600
|
key: "entry-".concat(index)
|
|
29570
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29601
|
+
}, /*#__PURE__*/React__default.createElement(_ListItemText, {
|
|
29571
29602
|
primary: getValue$1(entry, catalog)
|
|
29572
|
-
}), /*#__PURE__*/React__default.createElement(
|
|
29603
|
+
}), /*#__PURE__*/React__default.createElement(_ListItemSecondaryAction, null, /*#__PURE__*/React__default.createElement(_IconButton, {
|
|
29573
29604
|
edge: "end",
|
|
29574
29605
|
"aria-label": "delete",
|
|
29575
29606
|
size: "small",
|
|
29576
29607
|
onClick: function onClick() {
|
|
29577
29608
|
return handleEntryDel(index);
|
|
29578
29609
|
}
|
|
29579
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29610
|
+
}, /*#__PURE__*/React__default.createElement(_Delete, {
|
|
29580
29611
|
fontSize: "small"
|
|
29581
29612
|
}))))
|
|
29582
29613
|
);
|
|
29583
|
-
})), !inEdit && /*#__PURE__*/React__default.createElement(
|
|
29614
|
+
})), !inEdit && /*#__PURE__*/React__default.createElement(_Box, null, /*#__PURE__*/React__default.createElement(_Button, {
|
|
29584
29615
|
color: "primary",
|
|
29585
29616
|
variant: "outlined",
|
|
29586
29617
|
onClick: function onClick() {
|
|
29587
29618
|
return setInEdit(true);
|
|
29588
29619
|
}
|
|
29589
|
-
}, "Eintrag hinzuf\xFCgen")), inEdit && !catalog && /*#__PURE__*/React__default.createElement(
|
|
29620
|
+
}, "Eintrag hinzuf\xFCgen")), inEdit && !catalog && /*#__PURE__*/React__default.createElement(_Box, {
|
|
29590
29621
|
width: "100%",
|
|
29591
29622
|
display: "flex",
|
|
29592
29623
|
alignItems: "center"
|
|
29593
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29624
|
+
}, /*#__PURE__*/React__default.createElement(_FormControl, {
|
|
29594
29625
|
variant: "filled",
|
|
29595
29626
|
fullWidth: true
|
|
29596
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29627
|
+
}, /*#__PURE__*/React__default.createElement(_TextField, {
|
|
29597
29628
|
label: "Neuer Eintrag",
|
|
29598
29629
|
variant: variant,
|
|
29599
29630
|
value: inputValue,
|
|
29600
29631
|
InputProps: {
|
|
29601
|
-
endAdornment: /*#__PURE__*/React__default.createElement(
|
|
29632
|
+
endAdornment: /*#__PURE__*/React__default.createElement(_InputAdornment, {
|
|
29602
29633
|
position: "end"
|
|
29603
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29634
|
+
}, /*#__PURE__*/React__default.createElement(_Box, {
|
|
29604
29635
|
mr: 1
|
|
29605
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29636
|
+
}, /*#__PURE__*/React__default.createElement(_IconButton, {
|
|
29606
29637
|
size: "small",
|
|
29607
29638
|
onClick: handleEntryAdd
|
|
29608
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29639
|
+
}, /*#__PURE__*/React__default.createElement(_Save, {
|
|
29609
29640
|
fontSize: "small"
|
|
29610
|
-
}))), /*#__PURE__*/React__default.createElement(
|
|
29641
|
+
}))), /*#__PURE__*/React__default.createElement(_IconButton, {
|
|
29611
29642
|
size: "small",
|
|
29612
29643
|
onClick: handleCancelNewEntry
|
|
29613
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29644
|
+
}, /*#__PURE__*/React__default.createElement(_Clear, {
|
|
29614
29645
|
fontSize: "small"
|
|
29615
29646
|
})))
|
|
29616
29647
|
},
|
|
@@ -29621,25 +29652,25 @@ var FormRepeater = function FormRepeater(_ref) {
|
|
|
29621
29652
|
onChange: function onChange(e) {
|
|
29622
29653
|
return setInputValue(e.target.value);
|
|
29623
29654
|
}
|
|
29624
|
-
}))), inEdit && catalog && /*#__PURE__*/React__default.createElement(
|
|
29655
|
+
}))), inEdit && catalog && /*#__PURE__*/React__default.createElement(_Box, {
|
|
29625
29656
|
width: "100%",
|
|
29626
29657
|
display: "flex",
|
|
29627
29658
|
alignItems: "center"
|
|
29628
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29659
|
+
}, /*#__PURE__*/React__default.createElement(_FormControl, {
|
|
29629
29660
|
variant: "filled",
|
|
29630
29661
|
fullWidth: true
|
|
29631
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29662
|
+
}, /*#__PURE__*/React__default.createElement(_InputLabel, null, "Neuer Eintrag"), /*#__PURE__*/React__default.createElement(_Select, {
|
|
29632
29663
|
defaultValue: "please-select",
|
|
29633
29664
|
onChange: function onChange(e) {
|
|
29634
29665
|
return setEntries([].concat(_toConsumableArray(entries), [e.target.value]));
|
|
29635
29666
|
}
|
|
29636
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
29667
|
+
}, /*#__PURE__*/React__default.createElement(_MenuItem, {
|
|
29637
29668
|
value: "please-select",
|
|
29638
29669
|
disabled: true
|
|
29639
29670
|
}, "Eintrag hinzuf\xFCgen"), Object.entries(catalog).sort(function (a, b) {
|
|
29640
29671
|
return a[1].localeCompare(b[1]);
|
|
29641
29672
|
}).map(function (e) {
|
|
29642
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29673
|
+
return /*#__PURE__*/React__default.createElement(_MenuItem, {
|
|
29643
29674
|
key: "option-".concat(e[0]),
|
|
29644
29675
|
value: e[0],
|
|
29645
29676
|
disabled: blockedOptions.includes(e[0])
|
|
@@ -29650,7 +29681,7 @@ var FormRepeater = function FormRepeater(_ref) {
|
|
|
29650
29681
|
FormRepeater.propTypes = {
|
|
29651
29682
|
variant: PropTypes__default.oneOf(['standard', 'filled', 'outlined']),
|
|
29652
29683
|
name: PropTypes__default.string.isRequired,
|
|
29653
|
-
value: PropTypes__default.any
|
|
29684
|
+
value: PropTypes__default.any,
|
|
29654
29685
|
catalog: PropTypes__default.object,
|
|
29655
29686
|
onChange: PropTypes__default.func.isRequired
|
|
29656
29687
|
};
|
|
@@ -29685,13 +29716,13 @@ var FormControlField = function FormControlField(_ref) {
|
|
|
29685
29716
|
}
|
|
29686
29717
|
|
|
29687
29718
|
var control;
|
|
29688
|
-
if (type === 'render') control = /*#__PURE__*/React__default.cloneElement(component, finalProps);else control = /*#__PURE__*/React__default.createElement(component, finalProps);
|
|
29689
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29719
|
+
if (type === '@@render') control = /*#__PURE__*/React__default.cloneElement(component, finalProps);else control = /*#__PURE__*/React__default.createElement(component, finalProps);
|
|
29720
|
+
return /*#__PURE__*/React__default.createElement(_Box, {
|
|
29690
29721
|
width: "100%",
|
|
29691
29722
|
display: "flex",
|
|
29692
29723
|
flexDirection: "column",
|
|
29693
29724
|
mb: 1.5
|
|
29694
|
-
}, label && /*#__PURE__*/React__default.createElement(
|
|
29725
|
+
}, label && /*#__PURE__*/React__default.createElement(_Typography, {
|
|
29695
29726
|
variant: "caption",
|
|
29696
29727
|
color: "textSecondary"
|
|
29697
29728
|
}, label), control);
|
|
@@ -29769,7 +29800,7 @@ var FormReadOnlyText = function FormReadOnlyText(_ref) {
|
|
|
29769
29800
|
finalValue = DateTime.fromISO(value).toLocaleString(DateTime.DATE_MED_WITH_WEEKDAY);
|
|
29770
29801
|
}
|
|
29771
29802
|
|
|
29772
|
-
return /*#__PURE__*/React__default.createElement(
|
|
29803
|
+
return /*#__PURE__*/React__default.createElement(_Typography, {
|
|
29773
29804
|
variant: "body1"
|
|
29774
29805
|
}, finalValue);
|
|
29775
29806
|
};
|
|
@@ -68033,14 +68064,14 @@ var FormReadOnlyBoolean = function FormReadOnlyBoolean(_ref) {
|
|
|
68033
68064
|
defaultValue = _ref.defaultValue;
|
|
68034
68065
|
|
|
68035
68066
|
if (variant === 'checkbox') {
|
|
68036
|
-
return /*#__PURE__*/React__default.createElement(
|
|
68067
|
+
return /*#__PURE__*/React__default.createElement(_Checkbox, {
|
|
68037
68068
|
name: name,
|
|
68038
68069
|
checked: isChecked(value, defaultValue),
|
|
68039
68070
|
disabled: true
|
|
68040
68071
|
});
|
|
68041
68072
|
}
|
|
68042
68073
|
|
|
68043
|
-
return /*#__PURE__*/React__default.createElement(
|
|
68074
|
+
return /*#__PURE__*/React__default.createElement(_Switch, {
|
|
68044
68075
|
name: name,
|
|
68045
68076
|
checked: isChecked(value, defaultValue),
|
|
68046
68077
|
disabled: true
|
|
@@ -68062,15 +68093,15 @@ var getValue = function getValue(value, catalog) {
|
|
|
68062
68093
|
var FormReadOnlyRepeater = function FormReadOnlyRepeater(_ref) {
|
|
68063
68094
|
var value = _ref.value,
|
|
68064
68095
|
catalog = _ref.catalog;
|
|
68065
|
-
return /*#__PURE__*/React__default.createElement(
|
|
68096
|
+
return /*#__PURE__*/React__default.createElement(_Box, null, /*#__PURE__*/React__default.createElement(_List, {
|
|
68066
68097
|
dense: true
|
|
68067
68098
|
}, value && value.map(function (entry, index) {
|
|
68068
68099
|
return (
|
|
68069
68100
|
/*#__PURE__*/
|
|
68070
68101
|
// eslint-disable-next-line react/no-array-index-key
|
|
68071
|
-
React__default.createElement(
|
|
68102
|
+
React__default.createElement(_ListItem, {
|
|
68072
68103
|
key: "entry-".concat(index)
|
|
68073
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
68104
|
+
}, /*#__PURE__*/React__default.createElement(_ListItemText, {
|
|
68074
68105
|
primary: getValue(entry, catalog)
|
|
68075
68106
|
}))
|
|
68076
68107
|
);
|
|
@@ -68338,7 +68369,7 @@ var Alert = /*#__PURE__*/React.forwardRef(function Alert(props, ref) {
|
|
|
68338
68369
|
variant = _props$variant === void 0 ? 'standard' : _props$variant,
|
|
68339
68370
|
other = _objectWithoutProperties(props, ["action", "children", "classes", "className", "closeText", "color", "icon", "iconMapping", "onClose", "role", "severity", "variant"]);
|
|
68340
68371
|
|
|
68341
|
-
return /*#__PURE__*/React.createElement(Paper
|
|
68372
|
+
return /*#__PURE__*/React.createElement(Paper, _extends({
|
|
68342
68373
|
role: role,
|
|
68343
68374
|
square: true,
|
|
68344
68375
|
elevation: 0,
|
|
@@ -68352,7 +68383,7 @@ var Alert = /*#__PURE__*/React.forwardRef(function Alert(props, ref) {
|
|
|
68352
68383
|
className: classes.action
|
|
68353
68384
|
}, action) : null, action == null && onClose ? /*#__PURE__*/React.createElement("div", {
|
|
68354
68385
|
className: classes.action
|
|
68355
|
-
}, /*#__PURE__*/React.createElement(IconButton
|
|
68386
|
+
}, /*#__PURE__*/React.createElement(IconButton, {
|
|
68356
68387
|
size: "small",
|
|
68357
68388
|
"aria-label": closeText,
|
|
68358
68389
|
title: closeText,
|
|
@@ -69902,7 +69933,7 @@ var Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(props, re
|
|
|
69902
69933
|
openText = _props$openText === void 0 ? 'Open' : _props$openText;
|
|
69903
69934
|
props.options;
|
|
69904
69935
|
var _props$PaperComponent = props.PaperComponent,
|
|
69905
|
-
PaperComponent = _props$PaperComponent === void 0 ? Paper
|
|
69936
|
+
PaperComponent = _props$PaperComponent === void 0 ? Paper : _props$PaperComponent,
|
|
69906
69937
|
_props$PopperComponen = props.PopperComponent,
|
|
69907
69938
|
PopperComponentProp = _props$PopperComponen === void 0 ? Popper : _props$PopperComponen,
|
|
69908
69939
|
_props$popupIcon = props.popupIcon,
|
|
@@ -70024,11 +70055,11 @@ var Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(props, re
|
|
|
70024
70055
|
startAdornment: startAdornment,
|
|
70025
70056
|
endAdornment: /*#__PURE__*/React.createElement("div", {
|
|
70026
70057
|
className: classes.endAdornment
|
|
70027
|
-
}, hasClearIcon ? /*#__PURE__*/React.createElement(IconButton
|
|
70058
|
+
}, hasClearIcon ? /*#__PURE__*/React.createElement(IconButton, _extends({}, getClearProps(), {
|
|
70028
70059
|
"aria-label": clearText,
|
|
70029
70060
|
title: clearText,
|
|
70030
70061
|
className: clsx(classes.clearIndicator, dirty && classes.clearIndicatorDirty)
|
|
70031
|
-
}), closeIcon) : null, hasPopupIcon ? /*#__PURE__*/React.createElement(IconButton
|
|
70062
|
+
}), closeIcon) : null, hasPopupIcon ? /*#__PURE__*/React.createElement(IconButton, _extends({}, getPopupIndicatorProps(), {
|
|
70032
70063
|
disabled: disabled,
|
|
70033
70064
|
"aria-label": popupOpen ? closeText : openText,
|
|
70034
70065
|
title: popupOpen ? closeText : openText,
|
|
@@ -75386,11 +75417,11 @@ withStyles(styles, {
|
|
|
75386
75417
|
var HiddenData = function HiddenData(_ref) {
|
|
75387
75418
|
var subject = _ref.subject,
|
|
75388
75419
|
label = _ref.label;
|
|
75389
|
-
return /*#__PURE__*/React__default.createElement(
|
|
75420
|
+
return /*#__PURE__*/React__default.createElement(_Box, {
|
|
75390
75421
|
mb: 2
|
|
75391
75422
|
}, /*#__PURE__*/React__default.createElement(Alert$1, {
|
|
75392
75423
|
severity: "warning"
|
|
75393
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
75424
|
+
}, /*#__PURE__*/React__default.createElement(_Typography, {
|
|
75394
75425
|
variant: "body1"
|
|
75395
75426
|
}, subject ? "".concat(subject, " ") : '', /*#__PURE__*/React__default.createElement("span", {
|
|
75396
75427
|
style: {
|
|
@@ -75432,8 +75463,8 @@ var formComponentMap = {
|
|
|
75432
75463
|
array: FormRepeater
|
|
75433
75464
|
};
|
|
75434
75465
|
var apComponentMap = {
|
|
75435
|
-
"default":
|
|
75436
|
-
string:
|
|
75466
|
+
"default": _Input,
|
|
75467
|
+
string: _Input,
|
|
75437
75468
|
number: FormNumber,
|
|
75438
75469
|
select: FormSelect,
|
|
75439
75470
|
"boolean": FormBoolean
|
|
@@ -75462,19 +75493,10 @@ var FormulatorFormSection = /*#__PURE__*/function (_React$Component) {
|
|
|
75462
75493
|
fieldStates = _this$props.fieldStates,
|
|
75463
75494
|
renderComponentMap = _this$props.renderComponentMap;
|
|
75464
75495
|
var field = fieldEntry,
|
|
75496
|
+
isRender = false,
|
|
75465
75497
|
specialProps = {};
|
|
75466
75498
|
|
|
75467
75499
|
if (Array.isArray(fieldEntry)) {
|
|
75468
|
-
if (fieldEntry[0] === '@@render') {
|
|
75469
|
-
field = fieldEntry[1];
|
|
75470
|
-
return {
|
|
75471
|
-
type: 'render',
|
|
75472
|
-
name: field,
|
|
75473
|
-
component: renderComponentMap[field],
|
|
75474
|
-
componentProps: fieldEntry[2] || {}
|
|
75475
|
-
};
|
|
75476
|
-
}
|
|
75477
|
-
|
|
75478
75500
|
if (fieldEntry[0] === '@@markdown') {
|
|
75479
75501
|
return {
|
|
75480
75502
|
type: 'markdown',
|
|
@@ -75486,9 +75508,16 @@ var FormulatorFormSection = /*#__PURE__*/function (_React$Component) {
|
|
|
75486
75508
|
};
|
|
75487
75509
|
}
|
|
75488
75510
|
|
|
75489
|
-
|
|
75490
|
-
|
|
75491
|
-
|
|
75511
|
+
if (fieldEntry[0] === '@@render') {
|
|
75512
|
+
if (!fieldEntry[1]) throw new Error("render field \"".concat(field, "\" has no name"));
|
|
75513
|
+
field = fieldEntry[1];
|
|
75514
|
+
specialProps = fieldEntry[2] || {};
|
|
75515
|
+
isRender = true;
|
|
75516
|
+
} else {
|
|
75517
|
+
field = fieldEntry[0];
|
|
75518
|
+
if (!fieldEntry[1]) throw new Error("field \"".concat(field, "\" is defined in an array, but has no props definition"));
|
|
75519
|
+
specialProps = fieldEntry[1];
|
|
75520
|
+
}
|
|
75492
75521
|
}
|
|
75493
75522
|
|
|
75494
75523
|
var _specialProps = specialProps,
|
|
@@ -75509,8 +75538,8 @@ var FormulatorFormSection = /*#__PURE__*/function (_React$Component) {
|
|
|
75509
75538
|
type = _schema$properties$fi.type,
|
|
75510
75539
|
defaultValue = _schema$properties$fi["default"];
|
|
75511
75540
|
var mapKey;
|
|
75512
|
-
if (componentMap[field] !== undefined) mapKey = field;else if (typeof type === 'string' && componentMap[type] !== undefined) mapKey = type;else if (Array.isArray(type)) mapKey = 'select';else if (componentMap["default"] !== undefined) mapKey = 'default';else throw new Error("Could not find a Component to render for \"".concat(field, "\""));
|
|
75513
|
-
var mapEntry = componentMap[mapKey];
|
|
75541
|
+
if (isRender) mapKey = '@@render';else if (componentMap[field] !== undefined) mapKey = field;else if (typeof type === 'string' && componentMap[type] !== undefined) mapKey = type;else if (Array.isArray(type)) mapKey = 'select';else if (componentMap["default"] !== undefined) mapKey = 'default';else throw new Error("Could not find a Component to render for \"".concat(field, "\""));
|
|
75542
|
+
var mapEntry = isRender ? renderComponentMap[field] : componentMap[mapKey];
|
|
75514
75543
|
var component = mapEntry,
|
|
75515
75544
|
props = {};
|
|
75516
75545
|
|
|
@@ -75530,8 +75559,9 @@ var FormulatorFormSection = /*#__PURE__*/function (_React$Component) {
|
|
|
75530
75559
|
/* eslint-enable prefer-destructuring */
|
|
75531
75560
|
}
|
|
75532
75561
|
|
|
75562
|
+
if (!component) throw new Error("could not find component for field \"".concat(field, "\""));
|
|
75533
75563
|
return _objectSpread$1(_objectSpread$1({
|
|
75534
|
-
type: mapKey,
|
|
75564
|
+
type: isRender ? '@@render' : mapKey,
|
|
75535
75565
|
name: field,
|
|
75536
75566
|
label: hideLabel !== true && (translations.labels && translations.labels[field] || field),
|
|
75537
75567
|
defaultValue: defaultValue,
|
|
@@ -75587,61 +75617,6 @@ var FormulatorFormSection = /*#__PURE__*/function (_React$Component) {
|
|
|
75587
75617
|
return Array.isArray(fields) && fields.map(function (fieldEntry, fieldIndex) {
|
|
75588
75618
|
if (fieldEntry === false) return false;
|
|
75589
75619
|
|
|
75590
|
-
if (Array.isArray(fieldEntry) && fieldEntry[0] === '@@render') {
|
|
75591
|
-
var cKey = fieldEntry[1];
|
|
75592
|
-
|
|
75593
|
-
var _component = renderComponentMap && renderComponentMap[cKey];
|
|
75594
|
-
|
|
75595
|
-
if (!_component) throw new Error("Could not find Component for render field \"".concat(cKey, "\""));
|
|
75596
|
-
|
|
75597
|
-
var _fieldProps = _this.getFieldProps(fieldEntry);
|
|
75598
|
-
|
|
75599
|
-
var _type = _fieldProps.type,
|
|
75600
|
-
_name = _fieldProps.name,
|
|
75601
|
-
_componentProps = _fieldProps.componentProps,
|
|
75602
|
-
_label = _fieldProps.label,
|
|
75603
|
-
_value = _fieldProps.value,
|
|
75604
|
-
_required = _fieldProps.required,
|
|
75605
|
-
_hasErrors = _fieldProps.hasErrors,
|
|
75606
|
-
_errors = _fieldProps.errors,
|
|
75607
|
-
_validating = _fieldProps.validating,
|
|
75608
|
-
_dirty = _fieldProps.dirty;
|
|
75609
|
-
|
|
75610
|
-
if (readOnly) {
|
|
75611
|
-
if (!_value) return false;
|
|
75612
|
-
|
|
75613
|
-
if (Array.isArray(obscuredFields) && obscuredFields.includes(_name)) {
|
|
75614
|
-
return /*#__PURE__*/React__default.createElement(HiddenData, {
|
|
75615
|
-
subject: "Das Feld",
|
|
75616
|
-
label: _label
|
|
75617
|
-
});
|
|
75618
|
-
}
|
|
75619
|
-
}
|
|
75620
|
-
|
|
75621
|
-
return /*#__PURE__*/React__default.createElement(readOnly ? FormReadOnlyField$1 : FormField$1, {
|
|
75622
|
-
key: "form-render-component-".concat(cKey),
|
|
75623
|
-
variant: inputVariant,
|
|
75624
|
-
name: _name,
|
|
75625
|
-
type: _type,
|
|
75626
|
-
label: _label,
|
|
75627
|
-
value: _value,
|
|
75628
|
-
required: _required,
|
|
75629
|
-
hasErrors: _hasErrors,
|
|
75630
|
-
errors: _errors,
|
|
75631
|
-
validating: _validating,
|
|
75632
|
-
dirty: _dirty,
|
|
75633
|
-
component: _component,
|
|
75634
|
-
componentProps: _componentProps,
|
|
75635
|
-
disabled: disabled,
|
|
75636
|
-
readOnly: readOnly,
|
|
75637
|
-
fields: fields,
|
|
75638
|
-
results: results,
|
|
75639
|
-
data: data,
|
|
75640
|
-
fieldStates: fieldStates,
|
|
75641
|
-
onChange: onChange
|
|
75642
|
-
});
|
|
75643
|
-
}
|
|
75644
|
-
|
|
75645
75620
|
if (typeof fieldEntry !== 'string' && !Array.isArray(fieldEntry)) {
|
|
75646
75621
|
return /*#__PURE__*/React__default.createElement(FormulatorFormSection, {
|
|
75647
75622
|
key: "form-section-".concat(fieldEntry.id),
|
|
@@ -75797,10 +75772,10 @@ var FormulatorFormSection = /*#__PURE__*/function (_React$Component) {
|
|
|
75797
75772
|
|
|
75798
75773
|
return /*#__PURE__*/React__default.createElement(FormSectionBlock, {
|
|
75799
75774
|
key: "form-section-".concat(sectionId),
|
|
75800
|
-
label:
|
|
75801
|
-
labelVariant:
|
|
75802
|
-
desc:
|
|
75803
|
-
descVariant:
|
|
75775
|
+
label: label,
|
|
75776
|
+
labelVariant: labelVariant,
|
|
75777
|
+
desc: desc,
|
|
75778
|
+
descVariant: descVariant,
|
|
75804
75779
|
textAlign: textAlign
|
|
75805
75780
|
}, sectionContent);
|
|
75806
75781
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scenid/react-formulator",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"main": "dist/index.cjs.js",
|
|
5
5
|
"module": "dist/index.esm.js",
|
|
6
6
|
"repository": "https://dennykoch@bitbucket.org/scenid/react-formulator.git",
|
|
@@ -27,9 +27,15 @@
|
|
|
27
27
|
"react-dom": "16.11.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
+
"@babel/cli": "^7.8.4",
|
|
30
31
|
"@babel/core": "^7.17.9",
|
|
32
|
+
"@babel/node": "^7.8.7",
|
|
31
33
|
"@babel/plugin-proposal-export-default-from": "^7.16.7",
|
|
32
34
|
"@babel/plugin-transform-runtime": "^7.17.0",
|
|
35
|
+
"@babel/preset-env": "^7.4.5",
|
|
36
|
+
"@babel/preset-react": "^7.0.0",
|
|
37
|
+
"@babel/register": "^7.0.0",
|
|
38
|
+
"@babel/runtime": "^7.4.5",
|
|
33
39
|
"@material-ui/core": "^4.12.4",
|
|
34
40
|
"@material-ui/icons": "^4.11.3",
|
|
35
41
|
"@material-ui/lab": "^4.0.0-alpha.61",
|
|
@@ -45,9 +51,10 @@
|
|
|
45
51
|
"@storybook/addon-links": "^6.4.22",
|
|
46
52
|
"@storybook/react": "^6.4.22",
|
|
47
53
|
"@storybook/testing-library": "^0.0.11",
|
|
54
|
+
"babel-eslint": "^10.1.0",
|
|
48
55
|
"babel-loader": "^8.2.5",
|
|
56
|
+
"babel-plugin-import": "^1.13.5",
|
|
49
57
|
"classnames": "^2.3.1",
|
|
50
|
-
"luxon": "^2.3.2",
|
|
51
58
|
"cross-env": "^7.0.3",
|
|
52
59
|
"eslint": "^7.11.0",
|
|
53
60
|
"eslint-config-airbnb": "^18.0.1",
|
|
@@ -62,6 +69,7 @@
|
|
|
62
69
|
"eslint-plugin-react-hooks": "^2.3.0",
|
|
63
70
|
"eventemitter3": "^4.0.7",
|
|
64
71
|
"fast-deep-equal": "^3.1.3",
|
|
72
|
+
"luxon": "^2.3.2",
|
|
65
73
|
"micromustache": "^8.0.3",
|
|
66
74
|
"prop-types": "^15.8.1",
|
|
67
75
|
"react": "16.11.0",
|