@evoke-platform/ui-components 1.0.0-dev.140 → 1.0.0-dev.141
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/published/components/custom/FormField/AddressFieldComponent/addressFieldComponent.js
CHANGED
@@ -3,8 +3,9 @@ import { Button, List, ListItem, Popper, TextField, Typography } from '../../../
|
|
3
3
|
import { Box } from '../../../layout';
|
4
4
|
import InputMask from 'react-input-mask';
|
5
5
|
import { CancelOutlined } from '../../../../icons';
|
6
|
+
import { ClickAwayListener } from '@mui/material';
|
6
7
|
const AddressFieldComponent = (props) => {
|
7
|
-
const { property, defaultValue, error, errorMessage, onBlur, readOnly, required, size, placeholder, mask, isMultiLineText, rows, inputMaskPlaceholderChar, queryAddresses } = props;
|
8
|
+
const { property, defaultValue, error, errorMessage, onBlur, readOnly, required, size, placeholder, mask, isMultiLineText, rows, inputMaskPlaceholderChar, queryAddresses, } = props;
|
8
9
|
const [value, setValue] = useState(defaultValue !== null && defaultValue !== void 0 ? defaultValue : '');
|
9
10
|
// const [inputValue, setInputValue] = useState<string>('');
|
10
11
|
const [selectOptions, setSelectOptions] = useState([]);
|
@@ -19,22 +20,31 @@ const AddressFieldComponent = (props) => {
|
|
19
20
|
setAnchorEl(e.currentTarget);
|
20
21
|
const inputValue = e.target.value;
|
21
22
|
setValue(inputValue);
|
22
|
-
queryAddresses &&
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
23
|
+
queryAddresses &&
|
24
|
+
queryAddresses(value).then((addresses) => {
|
25
|
+
setSelectOptions(addresses
|
26
|
+
.filter((address) => address.address.line1)
|
27
|
+
.map((address) => {
|
28
|
+
let label = '', sublabel = '';
|
29
|
+
if (address.address.line1)
|
30
|
+
label = label.concat(address.address.line1);
|
31
|
+
if (address.address.city)
|
32
|
+
sublabel = sublabel.concat(`${address.address.city}`);
|
33
|
+
if (address.address.county)
|
34
|
+
sublabel = sublabel
|
35
|
+
? sublabel.concat(`, ${address.address.county}`)
|
36
|
+
: address.address.county;
|
37
|
+
if (address.address.state)
|
38
|
+
sublabel = sublabel
|
39
|
+
? sublabel.concat(`, ${address.address.state}`)
|
40
|
+
: address.address.state;
|
41
|
+
if (address.address.zipCode)
|
42
|
+
sublabel = sublabel
|
43
|
+
? sublabel.concat(` ${address.address.zipCode}`)
|
44
|
+
: address.address.zipCode;
|
45
|
+
return { label, sublabel, value: address.address };
|
46
|
+
}));
|
47
|
+
});
|
38
48
|
props.onChange(id, inputValue, property, undefined, true);
|
39
49
|
};
|
40
50
|
const handleClick = (option) => {
|
@@ -46,10 +56,10 @@ const AddressFieldComponent = (props) => {
|
|
46
56
|
setAnchorEl(null);
|
47
57
|
};
|
48
58
|
return (React.createElement(Box, null,
|
49
|
-
!mask ? React.createElement(TextField, { id: id, "aria-describedby": popperId, onChange: !readOnly ? handleChange : undefined, error: error, errorMessage: errorMessage, value: value, fullWidth: true, onBlur: onBlur, size: size !== null && size !== void 0 ? size : 'medium', placeholder: placeholder, InputProps: {
|
59
|
+
!mask ? (React.createElement(TextField, { id: id, "aria-describedby": popperId, onChange: !readOnly ? handleChange : undefined, error: error, errorMessage: errorMessage, value: value, fullWidth: true, onBlur: onBlur, size: size !== null && size !== void 0 ? size : 'medium', placeholder: placeholder, InputProps: {
|
50
60
|
type: 'search',
|
51
|
-
autoComplete: 'off'
|
52
|
-
}, required: required, readOnly: readOnly, multiline: property.type === 'string' && !readOnly && isMultiLineText, rows: isMultiLineText ? (rows ? rows : 3) : undefined }) : React.createElement(InputMask, { mask: mask, maskChar: inputMaskPlaceholderChar !== null && inputMaskPlaceholderChar !== void 0 ? inputMaskPlaceholderChar : '_', value: value, onChange: !readOnly ? handleChange : undefined, onBlur: onBlur, alwaysShowMask: true }, () => (React.createElement(TextField, { id: id, sx: readOnly
|
61
|
+
autoComplete: 'off',
|
62
|
+
}, required: required, readOnly: readOnly, multiline: property.type === 'string' && !readOnly && isMultiLineText, rows: isMultiLineText ? (rows ? rows : 3) : undefined })) : (React.createElement(InputMask, { mask: mask, maskChar: inputMaskPlaceholderChar !== null && inputMaskPlaceholderChar !== void 0 ? inputMaskPlaceholderChar : '_', value: value, onChange: !readOnly ? handleChange : undefined, onBlur: onBlur, alwaysShowMask: true }, () => (React.createElement(TextField, { id: id, sx: readOnly
|
53
63
|
? {
|
54
64
|
'& .MuiOutlinedInput-notchedOutline': {
|
55
65
|
border: 'none',
|
@@ -59,23 +69,24 @@ const AddressFieldComponent = (props) => {
|
|
59
69
|
backgroundColor: '#f4f6f8',
|
60
70
|
},
|
61
71
|
}
|
62
|
-
: undefined, required: required, error: error, errorMessage: errorMessage, InputProps: { readOnly: readOnly }, fullWidth: true, size: size !== null && size !== void 0 ? size : 'medium', type: 'text', multiline: property.type === 'string' && !readOnly && isMultiLineText, rows: isMultiLineText ? (rows ? rows : 3) : undefined, value: value }))),
|
63
|
-
!readOnly && React.createElement(
|
64
|
-
React.createElement(
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
React.createElement(Box, { sx: {
|
73
|
-
flexGrow: 1,
|
72
|
+
: undefined, required: required, error: error, errorMessage: errorMessage, InputProps: { readOnly: readOnly }, fullWidth: true, size: size !== null && size !== void 0 ? size : 'medium', type: 'text', multiline: property.type === 'string' && !readOnly && isMultiLineText, rows: isMultiLineText ? (rows ? rows : 3) : undefined, value: value })))),
|
73
|
+
!readOnly && (React.createElement(ClickAwayListener, { onClickAway: handleClose },
|
74
|
+
React.createElement(Popper, { id: popperId, open: open, anchorEl: anchorEl, placement: "bottom-start", sx: { margin: '0 0 0 35px', background: 'white', zIndex: 2000 } },
|
75
|
+
React.createElement(List, null,
|
76
|
+
selectOptions.map((option) => {
|
77
|
+
return (React.createElement(ListItem, { onClick: () => handleClick(option), sx: {
|
78
|
+
'&:hover': {
|
79
|
+
cursor: 'pointer',
|
80
|
+
backgroundColor: 'rgba(0, 0, 0, 0.04)',
|
81
|
+
},
|
74
82
|
} },
|
75
|
-
React.createElement(
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
83
|
+
React.createElement(Box, { sx: {
|
84
|
+
flexGrow: 1,
|
85
|
+
} },
|
86
|
+
React.createElement(Typography, null, option.label),
|
87
|
+
React.createElement(Typography, { sx: { color: '#586069' } }, option.sublabel))));
|
88
|
+
}),
|
89
|
+
React.createElement(ListItem, { sx: { justifyContent: 'center' } },
|
90
|
+
React.createElement(Button, { fullWidth: true, size: "small", color: "primary", variant: "outlined", startIcon: React.createElement(CancelOutlined, null), onClick: () => handleClose() }, "Close"))))))));
|
80
91
|
};
|
81
92
|
export default AddressFieldComponent;
|