@etsoo/materialui 1.3.20 → 1.3.22

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.
@@ -29,6 +29,10 @@ export type HiSelectorProps<T extends object, D extends DataTypes.Keys<T> = IdDe
29
29
  * Label
30
30
  */
31
31
  label?: string;
32
+ /**
33
+ * Labels for each select
34
+ */
35
+ labels?: string[];
32
36
  /**
33
37
  * Label field
34
38
  */
package/lib/HiSelector.js CHANGED
@@ -8,7 +8,7 @@ import { SelectEx } from "./SelectEx";
8
8
  */
9
9
  export function HiSelector(props) {
10
10
  // Destruct
11
- const { breakPoints = { xs: 6, md: 4, lg: 3 }, idField = "id", error, helperText, name, label, labelField = "name", loadData, onChange, onSelectChange, onItemChange, required, search = true, values = [] } = props;
11
+ const { breakPoints = { xs: 6, md: 4, lg: 3 }, idField = "id", error, helperText, name, label, labelField = "name", labels = ["1", "2", "3", "4"], loadData, onChange, onSelectChange, onItemChange, required, search = true, values = [] } = props;
12
12
  const [localValues, setValues] = React.useState(values);
13
13
  const updateValue = (value) => {
14
14
  if (onChange)
@@ -43,11 +43,11 @@ export function HiSelector(props) {
43
43
  React.createElement(FormLabel, { required: required, sx: { fontSize: (theme) => theme.typography.caption } }, label))),
44
44
  React.createElement("input", { type: "hidden", name: name, value: `${currentValue !== null && currentValue !== void 0 ? currentValue : ""}` }),
45
45
  React.createElement(Grid, { item: true, ...breakPoints },
46
- React.createElement(SelectEx, { idField: idField, labelField: labelField, name: "tab1", search: search, fullWidth: true, loadData: () => loadData(), value: values[0], onChange: (event) => doChange(event, 0), onItemChange: doItemChange, required: required, error: error, helperText: helperText })),
46
+ React.createElement(SelectEx, { idField: idField, label: labels[0], labelField: labelField, name: "tab1", search: search, fullWidth: true, loadData: () => loadData(), value: values[0], onChange: (event) => doChange(event, 0), onItemChange: doItemChange, required: required, error: error, helperText: helperText })),
47
47
  localValues[0] != null && (React.createElement(Grid, { item: true, ...breakPoints },
48
- React.createElement(SelectEx, { key: `${localValues[0]}`, idField: idField, labelField: labelField, name: "tab2", search: search, fullWidth: true, loadData: () => loadData(localValues[0]), value: values[1], onChange: (event) => doChange(event, 1), onItemChange: doItemChange }))),
48
+ React.createElement(SelectEx, { key: `${localValues[0]}`, idField: idField, label: labels[1], labelField: labelField, name: "tab2", search: search, fullWidth: true, loadData: () => loadData(localValues[0]), value: values[1], onChange: (event) => doChange(event, 1), onItemChange: doItemChange }))),
49
49
  localValues[1] != null && (React.createElement(Grid, { item: true, ...breakPoints },
50
- React.createElement(SelectEx, { key: `${localValues[1]}`, idField: idField, labelField: labelField, name: "tab3", search: search, fullWidth: true, loadData: () => loadData(localValues[1]), value: values[2], onChange: (event) => doChange(event, 2), onItemChange: doItemChange }))),
50
+ React.createElement(SelectEx, { key: `${localValues[1]}`, idField: idField, label: labels[2], labelField: labelField, name: "tab3", search: search, fullWidth: true, loadData: () => loadData(localValues[1]), value: values[2], onChange: (event) => doChange(event, 2), onItemChange: doItemChange }))),
51
51
  localValues[2] != null && (React.createElement(Grid, { item: true, ...breakPoints },
52
- React.createElement(SelectEx, { key: `${localValues[2]}`, idField: idField, labelField: labelField, name: "tab4", search: search, fullWidth: true, loadData: () => loadData(localValues[2]), value: values[3], onChange: (event) => doChange(event, 3), onItemChange: doItemChange })))));
52
+ React.createElement(SelectEx, { key: `${localValues[2]}`, idField: idField, label: labels[3], labelField: labelField, name: "tab4", search: search, fullWidth: true, loadData: () => loadData(localValues[2]), value: values[3], onChange: (event) => doChange(event, 3), onItemChange: doItemChange })))));
53
53
  }
@@ -29,6 +29,10 @@ export type HiSelectorTLProps<T extends object, D extends DataTypes.Keys<T> = Id
29
29
  * Label
30
30
  */
31
31
  label?: string;
32
+ /**
33
+ * Labels for each select
34
+ */
35
+ labels?: string[];
32
36
  /**
33
37
  * Load data callback
34
38
  */
@@ -8,7 +8,7 @@ import { Tiplist } from "./Tiplist";
8
8
  */
9
9
  export function HiSelectorTL(props) {
10
10
  // Destruct
11
- const { breakPoints = { xs: 6, md: 4, lg: 3 }, idField = "id", error, helperText, name, label = name, loadData, onChange, onItemChange, required, search = false, values = [] } = props;
11
+ const { breakPoints = { xs: 6, md: 4, lg: 3 }, idField = "id", error, helperText, name, label = name, labels = ["1", "2", "3", "4"], loadData, onChange, onItemChange, required, search = false, values = [] } = props;
12
12
  const [localValues, setValues] = React.useState(values);
13
13
  const updateValue = (value) => {
14
14
  if (onChange)
@@ -37,11 +37,11 @@ export function HiSelectorTL(props) {
37
37
  React.createElement(FormLabel, { required: required, sx: { fontSize: (theme) => theme.typography.caption } }, label))),
38
38
  React.createElement("input", { type: "hidden", name: name, value: `${currentValue !== null && currentValue !== void 0 ? currentValue : ""}` }),
39
39
  React.createElement(Grid, { item: true, ...breakPoints },
40
- React.createElement(Tiplist, { idField: idField, label: "1", name: "tab1", search: search, fullWidth: true, idValue: values[0], loadData: (keyword, id, items) => loadData(keyword, id, items), inputRequired: required, inputError: error, inputHelperText: helperText, onChange: (event, value, reason) => doChange(0, event, value, reason) })),
40
+ React.createElement(Tiplist, { idField: idField, label: labels[0], name: "tab1", search: search, fullWidth: true, idValue: values[0], loadData: (keyword, id, items) => loadData(keyword, id, items), inputRequired: required, inputError: error, inputHelperText: helperText, onChange: (event, value, reason) => doChange(0, event, value, reason) })),
41
41
  localValues[0] != null && (React.createElement(Grid, { item: true, ...breakPoints },
42
- React.createElement(Tiplist, { key: `${localValues[0]}`, label: "2", idField: idField, name: "tab2", search: search, fullWidth: true, loadData: (keyword, id, items) => loadData(keyword, id, items, localValues[0]), idValue: values[1], onChange: (event, value, reason) => doChange(1, event, value, reason) }))),
42
+ React.createElement(Tiplist, { key: `${localValues[0]}`, label: labels[1], idField: idField, name: "tab2", search: search, fullWidth: true, loadData: (keyword, id, items) => loadData(keyword, id, items, localValues[0]), idValue: values[1], onChange: (event, value, reason) => doChange(1, event, value, reason) }))),
43
43
  localValues[1] != null && (React.createElement(Grid, { item: true, ...breakPoints },
44
- React.createElement(Tiplist, { key: `${localValues[1]}`, label: "3", idField: idField, name: "tab3", search: search, fullWidth: true, loadData: (keyword, id, items) => loadData(keyword, id, items, localValues[1]), idValue: values[2], onChange: (event, value, reason) => doChange(2, event, value, reason) }))),
44
+ React.createElement(Tiplist, { key: `${localValues[1]}`, label: labels[2], idField: idField, name: "tab3", search: search, fullWidth: true, loadData: (keyword, id, items) => loadData(keyword, id, items, localValues[1]), idValue: values[2], onChange: (event, value, reason) => doChange(2, event, value, reason) }))),
45
45
  localValues[2] != null && (React.createElement(Grid, { item: true, ...breakPoints },
46
- React.createElement(Tiplist, { key: `${localValues[2]}`, label: "4", idField: idField, name: "tab4", search: search, fullWidth: true, loadData: (keyword, id, items) => loadData(keyword, id, items, localValues[2]), idValue: values[3], onChange: (event, value, reason) => doChange(3, event, value, reason) })))));
46
+ React.createElement(Tiplist, { key: `${localValues[2]}`, label: labels[3], idField: idField, name: "tab4", search: search, fullWidth: true, loadData: (keyword, id, items) => loadData(keyword, id, items, localValues[2]), idValue: values[3], onChange: (event, value, reason) => doChange(3, event, value, reason) })))));
47
47
  }
@@ -1,9 +1,22 @@
1
1
  import React from "react";
2
2
  import { InputFieldProps } from "./InputField";
3
+ import { Currency } from "@etsoo/appscript";
3
4
  /**
4
5
  * Number input field properties
5
6
  */
6
7
  export type NumberInputFieldProps = Omit<InputFieldProps, "type" | "inputProps"> & {
8
+ /**
9
+ * Currency
10
+ */
11
+ currency?: string | Currency;
12
+ /**
13
+ * End symbol
14
+ */
15
+ endSymbol?: string;
16
+ /**
17
+ * Start (Currency) symbol
18
+ */
19
+ symbol?: string;
7
20
  /**
8
21
  * Input field style
9
22
  */
@@ -1,17 +1,26 @@
1
1
  import React from "react";
2
2
  import { InputField } from "./InputField";
3
+ import { InputAdornment } from "@mui/material";
4
+ import { NumberUtils } from "@etsoo/shared";
3
5
  /**
4
6
  * Number input field, for controlled only components, please see IntInputField and MoneyInputField
5
7
  * @param props Props
6
8
  * @returns Component
7
9
  */
8
10
  export function NumberInputField(props) {
9
- const { inputStyle, min = 0, step = 1, max = 9999999, ...rest } = props;
11
+ const { currency, inputStyle, min = 0, step = 1, symbol = currency
12
+ ? `${currency} ${NumberUtils.getCurrencySymbol(currency)}`
13
+ : undefined, endSymbol, max = 9999999, InputProps, ...rest } = props;
10
14
  return (React.createElement(InputField, { type: "number", inputProps: {
11
15
  min,
12
16
  step,
13
17
  max,
14
18
  style: inputStyle,
15
19
  inputMode: "numeric"
20
+ }, InputProps: {
21
+ startAdornment: symbol ? (React.createElement(React.Fragment, null,
22
+ React.createElement(InputAdornment, { position: "start" }, symbol))) : undefined,
23
+ endAdornment: endSymbol ? (React.createElement(InputAdornment, { position: "end" }, endSymbol)) : undefined,
24
+ ...InputProps
16
25
  }, ...rest }));
17
26
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etsoo/materialui",
3
- "version": "1.3.20",
3
+ "version": "1.3.22",
4
4
  "description": "TypeScript Material-UI Implementation",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -46,6 +46,11 @@ export type HiSelectorProps<
46
46
  */
47
47
  label?: string;
48
48
 
49
+ /**
50
+ * Labels for each select
51
+ */
52
+ labels?: string[];
53
+
49
54
  /**
50
55
  * Label field
51
56
  */
@@ -106,6 +111,7 @@ export function HiSelector<
106
111
  name,
107
112
  label,
108
113
  labelField = "name" as L,
114
+ labels = ["1", "2", "3", "4"],
109
115
  loadData,
110
116
  onChange,
111
117
  onSelectChange,
@@ -166,6 +172,7 @@ export function HiSelector<
166
172
  <Grid item {...breakPoints}>
167
173
  <SelectEx<T, D, L>
168
174
  idField={idField}
175
+ label={labels[0]}
169
176
  labelField={labelField}
170
177
  name="tab1"
171
178
  search={search}
@@ -184,6 +191,7 @@ export function HiSelector<
184
191
  <SelectEx<T, D, L>
185
192
  key={`${localValues[0]}`}
186
193
  idField={idField}
194
+ label={labels[1]}
187
195
  labelField={labelField}
188
196
  name="tab2"
189
197
  search={search}
@@ -200,6 +208,7 @@ export function HiSelector<
200
208
  <SelectEx<T, D, L>
201
209
  key={`${localValues[1]}`}
202
210
  idField={idField}
211
+ label={labels[2]}
203
212
  labelField={labelField}
204
213
  name="tab3"
205
214
  search={search}
@@ -216,6 +225,7 @@ export function HiSelector<
216
225
  <SelectEx<T, D, L>
217
226
  key={`${localValues[2]}`}
218
227
  idField={idField}
228
+ label={labels[3]}
219
229
  labelField={labelField}
220
230
  name="tab4"
221
231
  search={search}
@@ -46,6 +46,11 @@ export type HiSelectorTLProps<
46
46
  */
47
47
  label?: string;
48
48
 
49
+ /**
50
+ * Labels for each select
51
+ */
52
+ labels?: string[];
53
+
49
54
  /**
50
55
  * Load data callback
51
56
  */
@@ -103,6 +108,7 @@ export function HiSelectorTL<
103
108
  helperText,
104
109
  name,
105
110
  label = name,
111
+ labels = ["1", "2", "3", "4"],
106
112
  loadData,
107
113
  onChange,
108
114
  onItemChange,
@@ -161,7 +167,7 @@ export function HiSelectorTL<
161
167
  <Grid item {...breakPoints}>
162
168
  <Tiplist<T, D>
163
169
  idField={idField}
164
- label="1"
170
+ label={labels[0]}
165
171
  name="tab1"
166
172
  search={search}
167
173
  fullWidth
@@ -177,7 +183,7 @@ export function HiSelectorTL<
177
183
  <Grid item {...breakPoints}>
178
184
  <Tiplist<T, D>
179
185
  key={`${localValues[0]}`}
180
- label="2"
186
+ label={labels[1]}
181
187
  idField={idField}
182
188
  name="tab2"
183
189
  search={search}
@@ -196,7 +202,7 @@ export function HiSelectorTL<
196
202
  <Grid item {...breakPoints}>
197
203
  <Tiplist<T, D>
198
204
  key={`${localValues[1]}`}
199
- label="3"
205
+ label={labels[2]}
200
206
  idField={idField}
201
207
  name="tab3"
202
208
  search={search}
@@ -215,7 +221,7 @@ export function HiSelectorTL<
215
221
  <Grid item {...breakPoints}>
216
222
  <Tiplist<T, D>
217
223
  key={`${localValues[2]}`}
218
- label="4"
224
+ label={labels[3]}
219
225
  idField={idField}
220
226
  name="tab4"
221
227
  search={search}
@@ -1,5 +1,8 @@
1
1
  import React from "react";
2
2
  import { InputField, InputFieldProps } from "./InputField";
3
+ import { Currency } from "@etsoo/appscript";
4
+ import { InputAdornment } from "@mui/material";
5
+ import { NumberUtils } from "@etsoo/shared";
3
6
 
4
7
  /**
5
8
  * Number input field properties
@@ -8,6 +11,21 @@ export type NumberInputFieldProps = Omit<
8
11
  InputFieldProps,
9
12
  "type" | "inputProps"
10
13
  > & {
14
+ /**
15
+ * Currency
16
+ */
17
+ currency?: string | Currency;
18
+
19
+ /**
20
+ * End symbol
21
+ */
22
+ endSymbol?: string;
23
+
24
+ /**
25
+ * Start (Currency) symbol
26
+ */
27
+ symbol?: string;
28
+
11
29
  /**
12
30
  * Input field style
13
31
  */
@@ -35,7 +53,19 @@ export type NumberInputFieldProps = Omit<
35
53
  * @returns Component
36
54
  */
37
55
  export function NumberInputField(props: NumberInputFieldProps) {
38
- const { inputStyle, min = 0, step = 1, max = 9999999, ...rest } = props;
56
+ const {
57
+ currency,
58
+ inputStyle,
59
+ min = 0,
60
+ step = 1,
61
+ symbol = currency
62
+ ? `${currency} ${NumberUtils.getCurrencySymbol(currency)}`
63
+ : undefined,
64
+ endSymbol,
65
+ max = 9999999,
66
+ InputProps,
67
+ ...rest
68
+ } = props;
39
69
 
40
70
  return (
41
71
  <InputField
@@ -47,6 +77,17 @@ export function NumberInputField(props: NumberInputFieldProps) {
47
77
  style: inputStyle,
48
78
  inputMode: "numeric"
49
79
  }}
80
+ InputProps={{
81
+ startAdornment: symbol ? (
82
+ <React.Fragment>
83
+ <InputAdornment position="start">{symbol}</InputAdornment>
84
+ </React.Fragment>
85
+ ) : undefined,
86
+ endAdornment: endSymbol ? (
87
+ <InputAdornment position="end">{endSymbol}</InputAdornment>
88
+ ) : undefined,
89
+ ...InputProps
90
+ }}
50
91
  {...rest}
51
92
  />
52
93
  );