@scenid/react-formulator 0.1.14 → 0.2.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/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 { Box, Typography, Paper, makeStyles, FormGroup, InputAdornment, FormControl, FormControlLabel, FormHelperText, TextField, MenuItem, Checkbox, Switch, List, ListItem, ListItemText, ListItemSecondaryAction, IconButton, Button, InputLabel, Select, Input } from '@material-ui/core';
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 { Delete, Save, Clear } from '@material-ui/icons';
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 { withStyles, darken, lighten, alpha as alpha$1, useTheme, duration, emphasize } from '@material-ui/core/styles';
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$1 from '@material-ui/core/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(Box, {
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(Box, {
29042
+ }, label && /*#__PURE__*/React__default.createElement(_Box, {
29020
29043
  mb: 2
29021
- }, /*#__PURE__*/React__default.createElement(Typography, {
29044
+ }, /*#__PURE__*/React__default.createElement(_Typography, {
29022
29045
  variant: labelVariant,
29023
29046
  align: textAlign
29024
- }, label)), desc && /*#__PURE__*/React__default.createElement(Box, {
29047
+ }, label)), desc && /*#__PURE__*/React__default.createElement(_Box, {
29025
29048
  mb: 2
29026
- }, /*#__PURE__*/React__default.createElement(Typography, {
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(Box, {
29075
+ return /*#__PURE__*/React__default.createElement(_Box, {
29053
29076
  mb: 2
29054
- }, /*#__PURE__*/React__default.createElement(Paper, {
29077
+ }, /*#__PURE__*/React__default.createElement(_Paper, {
29055
29078
  elevation: 0
29056
- }, /*#__PURE__*/React__default.createElement(Box, {
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(Box, {
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(InputAdornment, {
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
- control = /*#__PURE__*/React__default.cloneElement(component, _objectSpread$4(_objectSpread$4({
29170
- variant: variant
29171
- }, finalProps), {}, {
29172
- label: label,
29173
- hasErrors: hasErrors,
29174
- errors: errors,
29175
- dirty: dirty
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
- control = /*#__PURE__*/React__default.createElement(component, _objectSpread$4({
29179
- variant: variant
29180
- }, finalProps));
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' && !isRender;
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(FormControl, {
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(FormControlLabel, {
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(FormHelperText, null, errors.map(function (e) {
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(FormGroup, null, prepend, /*#__PURE__*/React__default.createElement(FormControlField$1, finalProps), append);
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(TextField, finalProps);
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(TextField, _extends({
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(TextField, _extends({
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(MenuItem, {
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(Checkbox, {
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(Switch, {
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(Box, null, /*#__PURE__*/React__default.createElement(List, {
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(ListItem, {
29599
+ React__default.createElement(_ListItem, {
29569
29600
  key: "entry-".concat(index)
29570
- }, /*#__PURE__*/React__default.createElement(ListItemText, {
29601
+ }, /*#__PURE__*/React__default.createElement(_ListItemText, {
29571
29602
  primary: getValue$1(entry, catalog)
29572
- }), /*#__PURE__*/React__default.createElement(ListItemSecondaryAction, null, /*#__PURE__*/React__default.createElement(IconButton, {
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(Delete, {
29610
+ }, /*#__PURE__*/React__default.createElement(_Delete, {
29580
29611
  fontSize: "small"
29581
29612
  }))))
29582
29613
  );
29583
- })), !inEdit && /*#__PURE__*/React__default.createElement(Box, null, /*#__PURE__*/React__default.createElement(Button, {
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(Box, {
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(FormControl, {
29624
+ }, /*#__PURE__*/React__default.createElement(_FormControl, {
29594
29625
  variant: "filled",
29595
29626
  fullWidth: true
29596
- }, /*#__PURE__*/React__default.createElement(TextField, {
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(InputAdornment, {
29632
+ endAdornment: /*#__PURE__*/React__default.createElement(_InputAdornment, {
29602
29633
  position: "end"
29603
- }, /*#__PURE__*/React__default.createElement(Box, {
29634
+ }, /*#__PURE__*/React__default.createElement(_Box, {
29604
29635
  mr: 1
29605
- }, /*#__PURE__*/React__default.createElement(IconButton, {
29636
+ }, /*#__PURE__*/React__default.createElement(_IconButton, {
29606
29637
  size: "small",
29607
29638
  onClick: handleEntryAdd
29608
- }, /*#__PURE__*/React__default.createElement(Save, {
29639
+ }, /*#__PURE__*/React__default.createElement(_Save, {
29609
29640
  fontSize: "small"
29610
- }))), /*#__PURE__*/React__default.createElement(IconButton, {
29641
+ }))), /*#__PURE__*/React__default.createElement(_IconButton, {
29611
29642
  size: "small",
29612
29643
  onClick: handleCancelNewEntry
29613
- }, /*#__PURE__*/React__default.createElement(Clear, {
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(Box, {
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(FormControl, {
29659
+ }, /*#__PURE__*/React__default.createElement(_FormControl, {
29629
29660
  variant: "filled",
29630
29661
  fullWidth: true
29631
- }, /*#__PURE__*/React__default.createElement(InputLabel, null, "Neuer Eintrag"), /*#__PURE__*/React__default.createElement(Select, {
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(MenuItem, {
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(MenuItem, {
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.isRequired,
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(Box, {
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(Typography, {
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(Typography, {
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(Checkbox, {
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(Switch, {
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(Box, null, /*#__PURE__*/React__default.createElement(List, {
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(ListItem, {
68102
+ React__default.createElement(_ListItem, {
68072
68103
  key: "entry-".concat(index)
68073
- }, /*#__PURE__*/React__default.createElement(ListItemText, {
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$1, _extends({
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$1, {
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$1 : _props$PaperComponent,
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$1, _extends({}, getClearProps(), {
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$1, _extends({}, getPopupIndicatorProps(), {
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(Box, {
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(Typography, {
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": Input,
75436
- string: Input,
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
- field = fieldEntry[0];
75490
- if (!fieldEntry[1]) throw new Error("field \"".concat(field, "\" is defined in an array, but has no props definition"));
75491
- specialProps = fieldEntry[1];
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: groupLabel,
75801
- labelVariant: groupLabelVariant,
75802
- desc: groupDesc,
75803
- descVariant: groupDescVariant,
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.1.14",
3
+ "version": "0.2.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",