@evoke-platform/ui-components 1.6.0-dev.7 → 1.6.0-dev.9

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.
@@ -45,7 +45,7 @@ const AddressFieldComponent = (props) => {
45
45
  setAnchorEl(null);
46
46
  };
47
47
  return (React.createElement(Box, null,
48
- !mask ? (React.createElement(TextField, { id: id, inputRef: textFieldRef, onChange: !readOnly ? handleChange : undefined, error: error, errorMessage: errorMessage, value: value, fullWidth: true, onBlur: onBlur, size: size ?? 'medium', placeholder: placeholder, InputProps: {
48
+ !mask ? (React.createElement(TextField, { id: id, inputRef: textFieldRef, onChange: !readOnly ? handleChange : undefined, error: error, errorMessage: errorMessage, value: value, fullWidth: true, onBlur: onBlur, size: size ?? 'medium', placeholder: readOnly ? undefined : placeholder, InputProps: {
49
49
  type: 'search',
50
50
  autoComplete: 'off',
51
51
  }, required: required, readOnly: readOnly, multiline: property.type === 'string' && !readOnly && isMultiLineText, rows: isMultiLineText ? (rows ? rows : 3) : undefined, ...(additionalProps ?? {}) })) : (React.createElement(InputMask, { mask: mask, maskChar: inputMaskPlaceholderChar ?? '_', value: value, onChange: !readOnly ? handleChange : undefined, onBlur: onBlur, alwaysShowMask: true }, (() => (React.createElement(TextField, { id: id, inputRef: textFieldRef, sx: readOnly
@@ -56,12 +56,12 @@ const BooleanSelect = (props) => {
56
56
  return readOnlyComponent();
57
57
  }
58
58
  return displayOption === 'dropdown' ? (React.createElement(Autocomplete, { renderInput: (params) => (React.createElement(TextField, { ...params, error: error, errorMessage: errorMessage, onBlur: onBlur, fullWidth: true, sx: { background: 'white' }, placeholder: placeholder, size: size ?? 'medium' })), value: booleanOptions.find((opt) => opt.value === value) ?? '', onChange: (e, selectedValue) => handleChange(selectedValue.value), isOptionEqualToValue: (option, val) => option?.value === val?.value, options: booleanOptions, disableClearable: true, sx: { background: 'white', borderRadius: '8px' }, ...(additionalProps ?? {}), sortBy: "NONE", required: strictlyTrue })) : (React.createElement(FormControl, { required: strictlyTrue, error: error, fullWidth: true },
59
- React.createElement(FormControlLabel, { labelPlacement: "end", label: labelComponent(), control: displayOption === 'switch' ? (React.createElement(Switch, { id: id, "aria-required": strictlyTrue, "aria-invalid": error, size: size ?? 'medium', name: property.id, checked: value, onChange: (e) => handleChange(e.target.checked), sx: {
59
+ React.createElement(FormControlLabel, { labelPlacement: "end", label: labelComponent(), sx: { marginLeft: '-8px' }, control: displayOption === 'switch' ? (React.createElement(Switch, { id: id, "aria-required": strictlyTrue, "aria-invalid": error, size: size ?? 'medium', name: property.id, checked: value, onChange: (e) => handleChange(e.target.checked), sx: {
60
60
  alignSelf: 'start',
61
- } })) : (React.createElement(Checkbox, { id: id, "aria-required": strictlyTrue, "aria-invalid": error, size: size ?? 'medium', checked: value, name: property.id, onChange: (e) => handleChange(e.target.checked), sx: {
61
+ }, ...(additionalProps ?? {}) })) : (React.createElement(Checkbox, { id: id, "aria-required": strictlyTrue, "aria-invalid": error, size: size ?? 'medium', checked: value, name: property.id, onChange: (e) => handleChange(e.target.checked), sx: {
62
62
  alignSelf: 'start',
63
63
  padding: '4px 9px 9px 9px',
64
- } })) }),
64
+ }, ...(additionalProps ?? {}) })) }),
65
65
  error && errorMessage?.length && React.createElement(FormHelperText, { sx: { marginX: 0 } }, errorMessage),
66
66
  descriptionComponent()));
67
67
  };
@@ -1,4 +1,5 @@
1
1
  import { DateTimeFormatter } from '@js-joda/core';
2
+ import { omit } from 'lodash';
2
3
  import React, { useEffect, useState } from 'react';
3
4
  import { InvalidDate, LocalDate, nativeJs } from '../../../../util';
4
5
  import { DatePicker, LocalizationProvider, TextField } from '../../../core';
@@ -36,6 +37,11 @@ const DatePickerSelect = (props) => {
36
37
  onChange && onChange(property.id, date, property);
37
38
  };
38
39
  return readOnly ? (React.createElement(InputFieldComponent, { ...{ ...props, defaultValue: asMonthDayYearFormat(value) } })) : (React.createElement(LocalizationProvider, null,
39
- React.createElement(DatePicker, { value: value, onChange: handleChange, inputFormat: "MM/dd/yyyy", renderInput: (params) => (React.createElement(TextField, { ...params, id: id, error: error, errorMessage: errorMessage, onBlur: onBlur, fullWidth: true, required: required, sx: { background: 'white', borderRadius: '8px' }, size: size ?? 'medium', ...(additionalProps ?? {}) })) })));
40
+ React.createElement(DatePicker, { value: value, onChange: handleChange, inputFormat: "MM/dd/yyyy", renderInput: (params) => (React.createElement(TextField, { ...params, id: id, error: error, errorMessage: errorMessage, onBlur: onBlur, fullWidth: true, required: required, sx: { background: 'white', borderRadius: '8px' }, size: size ?? 'medium',
41
+ // merges MUI inputProps with additionalProps.inputProps in a way that still shows the value
42
+ inputProps: {
43
+ ...params.inputProps,
44
+ ...(additionalProps?.inputProps ?? {}),
45
+ }, ...omit(additionalProps, ['inputProps']) })) })));
40
46
  };
41
47
  export default DatePickerSelect;
@@ -1,4 +1,5 @@
1
1
  import { LocalDate, LocalDateTime, LocalTime, nativeJs } from '@js-joda/core';
2
+ import { omit } from 'lodash';
2
3
  import React, { useEffect, useState } from 'react';
3
4
  import { InvalidDate } from '../../../../util';
4
5
  import { DateTimePicker, LocalizationProvider, TextField } from '../../../core';
@@ -43,6 +44,11 @@ const DateTimePickerSelect = (props) => {
43
44
  props.onChange && props.onChange(property.id, date, property);
44
45
  };
45
46
  return readOnly ? (React.createElement(InputFieldComponent, { ...{ ...props, defaultValue: formatDateTime(value) } })) : (React.createElement(LocalizationProvider, null,
46
- React.createElement(DateTimePicker, { value: value, onChange: handleChange, renderInput: (params) => (React.createElement(TextField, { ...params, id: id, error: error, errorMessage: errorMessage, onBlur: onBlur, fullWidth: true, required: required, sx: { background: 'white', borderRadius: '8px' }, size: size ?? 'medium', ...(additionalProps ?? {}) })) })));
47
+ React.createElement(DateTimePicker, { value: value, onChange: handleChange, renderInput: (params) => (React.createElement(TextField, { ...params, id: id, error: error, errorMessage: errorMessage, onBlur: onBlur, fullWidth: true, required: required, sx: { background: 'white', borderRadius: '8px' }, size: size ?? 'medium',
48
+ // merges MUI inputProps with additionalProps.inputProps in a way that still shows the value
49
+ inputProps: {
50
+ ...params.inputProps,
51
+ ...(additionalProps?.inputProps ?? {}),
52
+ }, ...omit(additionalProps, ['inputProps']) })) })));
47
53
  };
48
54
  export default DateTimePickerSelect;
@@ -36,9 +36,12 @@ const InputFieldComponent = (props) => {
36
36
  setInputValue(selectValue);
37
37
  };
38
38
  const InputProps = property.type === 'number'
39
- ? { inputComponent: NumericFormat, inputProps: { min, max, readOnly } }
39
+ ? {
40
+ inputComponent: NumericFormat,
41
+ inputProps: { min, max, readOnly, ...(additionalProps?.inputProps ?? {}) },
42
+ }
40
43
  : property.type === 'integer'
41
- ? { inputProps: { min, max } }
44
+ ? { inputProps: { min, max, ...(additionalProps?.inputProps ?? {}) } }
42
45
  : null;
43
46
  return property.enum && !readOnly ? (React.createElement(Autocomplete, { id: id,
44
47
  // note: this is different between widgets and builder
@@ -62,7 +65,7 @@ const InputFieldComponent = (props) => {
62
65
  backgroundColor: '#f4f6f8',
63
66
  },
64
67
  }),
65
- }, error: error, errorMessage: errorMessage, value: value, onChange: !readOnly ? handleChange : undefined, InputProps: { ...InputProps, readOnly: readOnly }, required: required, fullWidth: true, onBlur: onBlur, placeholder: placeholder, size: size ?? 'medium', type: property.type === 'integer' ? 'number' : 'text', multiline: property.type === 'string' && !readOnly && isMultiLineText, rows: isMultiLineText ? (rows ? rows : 3) : undefined, ...(additionalProps ?? {}) })) : (React.createElement(InputMask, { mask: mask, maskChar: inputMaskPlaceholderChar ?? '_', value: value, onChange: !readOnly ? handleChange : undefined, onBlur: onBlur, alwaysShowMask: true }, (() => (React.createElement(TextField, { id: id, sx: readOnly
68
+ }, error: error, errorMessage: errorMessage, value: value, onChange: !readOnly ? handleChange : undefined, InputProps: { ...InputProps, readOnly: readOnly }, required: required, fullWidth: true, onBlur: onBlur, placeholder: readOnly ? undefined : placeholder, size: size ?? 'medium', type: property.type === 'integer' ? 'number' : 'text', multiline: property.type === 'string' && !readOnly && isMultiLineText, rows: isMultiLineText ? (rows ? rows : 3) : undefined, ...(additionalProps ?? {}) })) : (React.createElement(InputMask, { mask: mask, maskChar: inputMaskPlaceholderChar ?? '_', value: value, onChange: !readOnly ? handleChange : undefined, onBlur: onBlur, alwaysShowMask: true }, (() => (React.createElement(TextField, { id: id, sx: readOnly
66
69
  ? {
67
70
  '& .MuiOutlinedInput-notchedOutline': {
68
71
  border: 'none',
@@ -1,9 +1,11 @@
1
1
  import { LocalDateTime } from '@js-joda/core';
2
2
  import { TimePicker } from '@mui/x-date-pickers';
3
- import { isUndefined, padStart } from 'lodash';
3
+ import { isUndefined, omit, padStart } from 'lodash';
4
+ import { DateTime } from 'luxon';
4
5
  import React, { useEffect, useState } from 'react';
5
6
  import { InvalidDate } from '../../../../util';
6
7
  import { LocalizationProvider, TextField } from '../../../core';
8
+ import InputFieldComponent from '../InputFieldComponent/InputFieldComponent';
7
9
  const TimePickerSelect = (props) => {
8
10
  const { id, property, defaultValue, error, errorMessage, readOnly, required, size, onBlur, placeholder, additionalProps, } = props;
9
11
  const values = defaultValue ? defaultValue.split(':') : undefined;
@@ -39,7 +41,15 @@ const TimePickerSelect = (props) => {
39
41
  props.onChange && props.onChange(property.id, date, property);
40
42
  }
41
43
  };
42
- return (React.createElement(LocalizationProvider, null,
43
- React.createElement(TimePicker, { value: value, onChange: handleChange, renderInput: (params) => (React.createElement(TextField, { ...params, id: id, error: error, errorMessage: errorMessage, onBlur: onBlur, fullWidth: true, required: required, sx: { background: 'white', borderRadius: '8px' }, size: size ?? 'medium', placeholder: placeholder, readOnly: readOnly, ...(additionalProps ?? {}) })), readOnly: readOnly })));
44
+ return readOnly ? (React.createElement(InputFieldComponent, { ...{
45
+ ...props,
46
+ defaultValue: value instanceof LocalDateTime ? DateTime.fromISO(value.toString()).toFormat('hh:mm a') : '',
47
+ } })) : (React.createElement(LocalizationProvider, null,
48
+ React.createElement(TimePicker, { value: value, onChange: handleChange, renderInput: (params) => (React.createElement(TextField, { ...params, id: id, error: error, errorMessage: errorMessage, onBlur: onBlur, fullWidth: true, required: required, sx: { background: 'white', borderRadius: '8px' }, size: size ?? 'medium', placeholder: placeholder,
49
+ // merges MUI inputProps with additionalProps.inputProps in a way that still shows the value
50
+ inputProps: {
51
+ ...params.inputProps,
52
+ ...(additionalProps?.inputProps ?? {}),
53
+ }, ...omit(additionalProps, ['inputProps']) })), readOnly: readOnly })));
44
54
  };
45
55
  export default TimePickerSelect;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evoke-platform/ui-components",
3
- "version": "1.6.0-dev.7",
3
+ "version": "1.6.0-dev.9",
4
4
  "description": "",
5
5
  "main": "dist/published/index.js",
6
6
  "module": "dist/published/index.js",