@scenid/react-formulator 2.0.0 → 2.1.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.cjs.js CHANGED
@@ -29673,6 +29673,107 @@ function _extends() {
29673
29673
  return _extends.apply(this, arguments);
29674
29674
  }
29675
29675
 
29676
+ var FormDateRange = function FormDateRange(_ref) {
29677
+ var type = _ref.type,
29678
+ name = _ref.name,
29679
+ label = _ref.label,
29680
+ variant = _ref.variant,
29681
+ value = _ref.value,
29682
+ defaultValue = _ref.defaultValue,
29683
+ required = _ref.required,
29684
+ loading = _ref.loading,
29685
+ disabled = _ref.disabled,
29686
+ onChange = _ref.onChange;
29687
+
29688
+ var changeHandler = function changeHandler(newValue) {
29689
+ if (onChange) {
29690
+ onChange({
29691
+ target: {
29692
+ name: name,
29693
+ value: newValue
29694
+ }
29695
+ });
29696
+ }
29697
+ };
29698
+
29699
+ var handleStartChange = function handleStartChange(e) {
29700
+ var newValue = structuredClone(value || {});
29701
+ newValue.start = e.target.value;
29702
+ changeHandler(newValue);
29703
+ };
29704
+
29705
+ var handleEndChange = function handleEndChange(e) {
29706
+ var newValue = structuredClone(value || {});
29707
+ newValue.end = e.target.value;
29708
+ changeHandler(newValue);
29709
+ };
29710
+
29711
+ return /*#__PURE__*/React__default["default"].createElement(material.Stack, null, /*#__PURE__*/React__default["default"].createElement(material.Typography, {
29712
+ mb: 1
29713
+ }, label), /*#__PURE__*/React__default["default"].createElement(material.Stack, {
29714
+ direction: "row",
29715
+ sx: {
29716
+ flex: '1 1 auto',
29717
+ width: '100%'
29718
+ }
29719
+ }, /*#__PURE__*/React__default["default"].createElement(material.TextField, {
29720
+ sx: {
29721
+ flex: '1 1 auto'
29722
+ },
29723
+ type: type,
29724
+ name: "".concat(name, ".start"),
29725
+ label: "von",
29726
+ variant: variant,
29727
+ InputLabelProps: {
29728
+ shrink: true
29729
+ },
29730
+ value: (value === null || value === void 0 ? void 0 : value.start) || (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.start) || '',
29731
+ max: (value === null || value === void 0 ? void 0 : value.end) || (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.end) || '',
29732
+ required: required,
29733
+ disabled: disabled || loading,
29734
+ onChange: handleStartChange
29735
+ }), /*#__PURE__*/React__default["default"].createElement(material.Box, {
29736
+ sx: {
29737
+ display: 'flex',
29738
+ justifyContent: 'center',
29739
+ alignItems: 'center',
29740
+ ml: 2,
29741
+ mr: 2
29742
+ }
29743
+ }, /*#__PURE__*/React__default["default"].createElement(material.Typography, {
29744
+ color: "GrayText"
29745
+ }, "\u2013")), /*#__PURE__*/React__default["default"].createElement(material.TextField, {
29746
+ sx: {
29747
+ flex: '1 1 auto'
29748
+ },
29749
+ type: type,
29750
+ name: "".concat(name, ".end"),
29751
+ label: "bis",
29752
+ variant: variant,
29753
+ InputLabelProps: {
29754
+ shrink: true
29755
+ },
29756
+ value: (value === null || value === void 0 ? void 0 : value.end) || (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.end) || '',
29757
+ min: (value === null || value === void 0 ? void 0 : value.start) || (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.start) || '',
29758
+ required: required,
29759
+ disabled: disabled || loading,
29760
+ onChange: handleEndChange
29761
+ })));
29762
+ };
29763
+
29764
+ FormDateRange.propTypes = {
29765
+ type: PropTypes__default["default"].string,
29766
+ name: PropTypes__default["default"].string,
29767
+ label: PropTypes__default["default"].string,
29768
+ variant: PropTypes__default["default"].string,
29769
+ value: PropTypes__default["default"].object,
29770
+ defaultValue: PropTypes__default["default"].string,
29771
+ required: PropTypes__default["default"].bool,
29772
+ loading: PropTypes__default["default"].bool,
29773
+ disabled: PropTypes__default["default"].bool,
29774
+ onChange: PropTypes__default["default"].func
29775
+ };
29776
+
29676
29777
  var FormText = function FormText(_ref) {
29677
29778
  var type = _ref.type,
29678
29779
  name = _ref.name,
@@ -29682,6 +29783,7 @@ var FormText = function FormText(_ref) {
29682
29783
  defaultValue = _ref.defaultValue,
29683
29784
  multiline = _ref.multiline,
29684
29785
  minRows = _ref.minRows,
29786
+ range = _ref.range,
29685
29787
  required = _ref.required,
29686
29788
  loading = _ref.loading,
29687
29789
  disabled = _ref.disabled,
@@ -29694,6 +29796,19 @@ var FormText = function FormText(_ref) {
29694
29796
  };
29695
29797
  }
29696
29798
 
29799
+ if (range) {
29800
+ return /*#__PURE__*/React__default["default"].createElement(FormDateRange, {
29801
+ type: type,
29802
+ name: name,
29803
+ label: label,
29804
+ variant: variant,
29805
+ value: value || defaultValue || '',
29806
+ required: required,
29807
+ disabled: disabled || loading,
29808
+ onChange: onChange || function () {}
29809
+ });
29810
+ }
29811
+
29697
29812
  return /*#__PURE__*/React__default["default"].createElement(material.TextField, _extends({
29698
29813
  type: type,
29699
29814
  name: name,
@@ -29702,6 +29817,7 @@ var FormText = function FormText(_ref) {
29702
29817
  value: value || defaultValue || '',
29703
29818
  multiline: multiline,
29704
29819
  minRows: minRows,
29820
+ range: range,
29705
29821
  required: required,
29706
29822
  disabled: disabled || loading,
29707
29823
  onChange: onChange || function () {} // eslint-disable-next-line react/jsx-props-no-spreading
@@ -29718,6 +29834,7 @@ FormText.propTypes = {
29718
29834
  defaultValue: PropTypes__default["default"].string,
29719
29835
  multiline: PropTypes__default["default"].bool,
29720
29836
  minRows: PropTypes__default["default"].number,
29837
+ range: PropTypes__default["default"].bool,
29721
29838
  required: PropTypes__default["default"].bool,
29722
29839
  loading: PropTypes__default["default"].bool,
29723
29840
  disabled: PropTypes__default["default"].bool,
@@ -36771,21 +36888,30 @@ function friendlyDateTime(dateTimeish) {
36771
36888
  }
36772
36889
  }
36773
36890
 
36891
+ var formatDate = function formatDate(value, renderFormat) {
36892
+ var formatter = DateTime.DATETIME_FULL;
36893
+
36894
+ if (renderFormat) {
36895
+ if (typeof renderFormat === 'string') formatter = DateTime[renderFormat];else formatter = renderFormat;
36896
+ }
36897
+
36898
+ return DateTime.fromISO(value).toLocaleString(formatter);
36899
+ };
36900
+
36774
36901
  var FormReadOnlyText = function FormReadOnlyText(_ref) {
36775
36902
  var value = _ref.value,
36776
36903
  type = _ref.type,
36777
36904
  renderFormat = _ref.renderFormat,
36905
+ range = _ref.range,
36778
36906
  multiline = _ref.multiline;
36779
36907
  var finalValue = value;
36780
36908
 
36781
36909
  if (type === 'date' || type === 'datetime-local') {
36782
- var formatter = DateTime.DATETIME_FULL;
36783
-
36784
- if (renderFormat) {
36785
- if (typeof renderFormat === 'string') formatter = DateTime[renderFormat];else formatter = renderFormat;
36910
+ if (range) {
36911
+ finalValue = "".concat(formatDate((value === null || value === void 0 ? void 0 : value.start) || '', renderFormat), " - ").concat(formatDate((value === null || value === void 0 ? void 0 : value.end) || '', renderFormat));
36912
+ } else {
36913
+ finalValue = formatDate(value, renderFormat);
36786
36914
  }
36787
-
36788
- finalValue = DateTime.fromISO(value).toLocaleString(formatter);
36789
36915
  }
36790
36916
 
36791
36917
  return /*#__PURE__*/React__default["default"].createElement(material.Typography, {
@@ -36799,6 +36925,7 @@ var FormReadOnlyText = function FormReadOnlyText(_ref) {
36799
36925
  FormReadOnlyText.propTypes = {
36800
36926
  value: PropTypes__default["default"].oneOfType([PropTypes__default["default"].number, PropTypes__default["default"].string]),
36801
36927
  type: PropTypes__default["default"].string,
36928
+ range: PropTypes__default["default"].bool,
36802
36929
  renderFormat: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].object]),
36803
36930
  multiline: PropTypes__default["default"].bool
36804
36931
  };
package/dist/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import React, { useCallback, useState, useEffect, useRef, cloneElement } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { Box, Typography, Paper, FormGroup, InputAdornment, FormControl, FormControlLabel, FormHelperText, TextField, CircularProgress, MenuItem, Checkbox, Switch, List, ListItem, ListItemText, ListItemSecondaryAction, IconButton, Button, ClickAwayListener, Alert, Input } from '@mui/material';
3
+ import { Box, Typography, Paper, FormGroup, InputAdornment, FormControl, FormControlLabel, FormHelperText, Stack, TextField, CircularProgress, MenuItem, Checkbox, Switch, List, ListItem, ListItemText, ListItemSecondaryAction, IconButton, Button, ClickAwayListener, Alert, Input } from '@mui/material';
4
4
  import makeStyles from '@mui/styles/makeStyles';
5
5
  import cx from 'classnames';
6
6
  import { makeStyles as makeStyles$1, useTheme } from '@mui/styles';
@@ -29659,6 +29659,107 @@ function _extends() {
29659
29659
  return _extends.apply(this, arguments);
29660
29660
  }
29661
29661
 
29662
+ var FormDateRange = function FormDateRange(_ref) {
29663
+ var type = _ref.type,
29664
+ name = _ref.name,
29665
+ label = _ref.label,
29666
+ variant = _ref.variant,
29667
+ value = _ref.value,
29668
+ defaultValue = _ref.defaultValue,
29669
+ required = _ref.required,
29670
+ loading = _ref.loading,
29671
+ disabled = _ref.disabled,
29672
+ onChange = _ref.onChange;
29673
+
29674
+ var changeHandler = function changeHandler(newValue) {
29675
+ if (onChange) {
29676
+ onChange({
29677
+ target: {
29678
+ name: name,
29679
+ value: newValue
29680
+ }
29681
+ });
29682
+ }
29683
+ };
29684
+
29685
+ var handleStartChange = function handleStartChange(e) {
29686
+ var newValue = structuredClone(value || {});
29687
+ newValue.start = e.target.value;
29688
+ changeHandler(newValue);
29689
+ };
29690
+
29691
+ var handleEndChange = function handleEndChange(e) {
29692
+ var newValue = structuredClone(value || {});
29693
+ newValue.end = e.target.value;
29694
+ changeHandler(newValue);
29695
+ };
29696
+
29697
+ return /*#__PURE__*/React.createElement(Stack, null, /*#__PURE__*/React.createElement(Typography, {
29698
+ mb: 1
29699
+ }, label), /*#__PURE__*/React.createElement(Stack, {
29700
+ direction: "row",
29701
+ sx: {
29702
+ flex: '1 1 auto',
29703
+ width: '100%'
29704
+ }
29705
+ }, /*#__PURE__*/React.createElement(TextField, {
29706
+ sx: {
29707
+ flex: '1 1 auto'
29708
+ },
29709
+ type: type,
29710
+ name: "".concat(name, ".start"),
29711
+ label: "von",
29712
+ variant: variant,
29713
+ InputLabelProps: {
29714
+ shrink: true
29715
+ },
29716
+ value: (value === null || value === void 0 ? void 0 : value.start) || (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.start) || '',
29717
+ max: (value === null || value === void 0 ? void 0 : value.end) || (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.end) || '',
29718
+ required: required,
29719
+ disabled: disabled || loading,
29720
+ onChange: handleStartChange
29721
+ }), /*#__PURE__*/React.createElement(Box, {
29722
+ sx: {
29723
+ display: 'flex',
29724
+ justifyContent: 'center',
29725
+ alignItems: 'center',
29726
+ ml: 2,
29727
+ mr: 2
29728
+ }
29729
+ }, /*#__PURE__*/React.createElement(Typography, {
29730
+ color: "GrayText"
29731
+ }, "\u2013")), /*#__PURE__*/React.createElement(TextField, {
29732
+ sx: {
29733
+ flex: '1 1 auto'
29734
+ },
29735
+ type: type,
29736
+ name: "".concat(name, ".end"),
29737
+ label: "bis",
29738
+ variant: variant,
29739
+ InputLabelProps: {
29740
+ shrink: true
29741
+ },
29742
+ value: (value === null || value === void 0 ? void 0 : value.end) || (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.end) || '',
29743
+ min: (value === null || value === void 0 ? void 0 : value.start) || (defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.start) || '',
29744
+ required: required,
29745
+ disabled: disabled || loading,
29746
+ onChange: handleEndChange
29747
+ })));
29748
+ };
29749
+
29750
+ FormDateRange.propTypes = {
29751
+ type: PropTypes.string,
29752
+ name: PropTypes.string,
29753
+ label: PropTypes.string,
29754
+ variant: PropTypes.string,
29755
+ value: PropTypes.object,
29756
+ defaultValue: PropTypes.string,
29757
+ required: PropTypes.bool,
29758
+ loading: PropTypes.bool,
29759
+ disabled: PropTypes.bool,
29760
+ onChange: PropTypes.func
29761
+ };
29762
+
29662
29763
  var FormText = function FormText(_ref) {
29663
29764
  var type = _ref.type,
29664
29765
  name = _ref.name,
@@ -29668,6 +29769,7 @@ var FormText = function FormText(_ref) {
29668
29769
  defaultValue = _ref.defaultValue,
29669
29770
  multiline = _ref.multiline,
29670
29771
  minRows = _ref.minRows,
29772
+ range = _ref.range,
29671
29773
  required = _ref.required,
29672
29774
  loading = _ref.loading,
29673
29775
  disabled = _ref.disabled,
@@ -29680,6 +29782,19 @@ var FormText = function FormText(_ref) {
29680
29782
  };
29681
29783
  }
29682
29784
 
29785
+ if (range) {
29786
+ return /*#__PURE__*/React.createElement(FormDateRange, {
29787
+ type: type,
29788
+ name: name,
29789
+ label: label,
29790
+ variant: variant,
29791
+ value: value || defaultValue || '',
29792
+ required: required,
29793
+ disabled: disabled || loading,
29794
+ onChange: onChange || function () {}
29795
+ });
29796
+ }
29797
+
29683
29798
  return /*#__PURE__*/React.createElement(TextField, _extends({
29684
29799
  type: type,
29685
29800
  name: name,
@@ -29688,6 +29803,7 @@ var FormText = function FormText(_ref) {
29688
29803
  value: value || defaultValue || '',
29689
29804
  multiline: multiline,
29690
29805
  minRows: minRows,
29806
+ range: range,
29691
29807
  required: required,
29692
29808
  disabled: disabled || loading,
29693
29809
  onChange: onChange || function () {} // eslint-disable-next-line react/jsx-props-no-spreading
@@ -29704,6 +29820,7 @@ FormText.propTypes = {
29704
29820
  defaultValue: PropTypes.string,
29705
29821
  multiline: PropTypes.bool,
29706
29822
  minRows: PropTypes.number,
29823
+ range: PropTypes.bool,
29707
29824
  required: PropTypes.bool,
29708
29825
  loading: PropTypes.bool,
29709
29826
  disabled: PropTypes.bool,
@@ -36757,21 +36874,30 @@ function friendlyDateTime(dateTimeish) {
36757
36874
  }
36758
36875
  }
36759
36876
 
36877
+ var formatDate = function formatDate(value, renderFormat) {
36878
+ var formatter = DateTime.DATETIME_FULL;
36879
+
36880
+ if (renderFormat) {
36881
+ if (typeof renderFormat === 'string') formatter = DateTime[renderFormat];else formatter = renderFormat;
36882
+ }
36883
+
36884
+ return DateTime.fromISO(value).toLocaleString(formatter);
36885
+ };
36886
+
36760
36887
  var FormReadOnlyText = function FormReadOnlyText(_ref) {
36761
36888
  var value = _ref.value,
36762
36889
  type = _ref.type,
36763
36890
  renderFormat = _ref.renderFormat,
36891
+ range = _ref.range,
36764
36892
  multiline = _ref.multiline;
36765
36893
  var finalValue = value;
36766
36894
 
36767
36895
  if (type === 'date' || type === 'datetime-local') {
36768
- var formatter = DateTime.DATETIME_FULL;
36769
-
36770
- if (renderFormat) {
36771
- if (typeof renderFormat === 'string') formatter = DateTime[renderFormat];else formatter = renderFormat;
36896
+ if (range) {
36897
+ finalValue = "".concat(formatDate((value === null || value === void 0 ? void 0 : value.start) || '', renderFormat), " - ").concat(formatDate((value === null || value === void 0 ? void 0 : value.end) || '', renderFormat));
36898
+ } else {
36899
+ finalValue = formatDate(value, renderFormat);
36772
36900
  }
36773
-
36774
- finalValue = DateTime.fromISO(value).toLocaleString(formatter);
36775
36901
  }
36776
36902
 
36777
36903
  return /*#__PURE__*/React.createElement(Typography, {
@@ -36785,6 +36911,7 @@ var FormReadOnlyText = function FormReadOnlyText(_ref) {
36785
36911
  FormReadOnlyText.propTypes = {
36786
36912
  value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
36787
36913
  type: PropTypes.string,
36914
+ range: PropTypes.bool,
36788
36915
  renderFormat: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
36789
36916
  multiline: PropTypes.bool
36790
36917
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scenid/react-formulator",
3
- "version": "2.0.0",
3
+ "version": "2.1.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",