mui-fast-start 0.2.0 → 0.3.1

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.
Files changed (117) hide show
  1. package/README.md +76 -29
  2. package/README_KR.md +176 -127
  3. package/dist/components/Object/Checkbox/ObjCheckIcon.d.ts +4 -0
  4. package/dist/components/Object/Checkbox/ObjCheckIcon.d.ts.map +1 -0
  5. package/dist/components/Object/Checkbox/ObjCheckbox.d.ts +4 -0
  6. package/dist/components/Object/Checkbox/ObjCheckbox.d.ts.map +1 -0
  7. package/dist/components/Object/Select/ObjSelectOne.d.ts +4 -0
  8. package/dist/components/Object/Select/ObjSelectOne.d.ts.map +1 -0
  9. package/dist/components/Object/Select/ObjSelectRecord.d.ts +4 -0
  10. package/dist/components/Object/Select/ObjSelectRecord.d.ts.map +1 -0
  11. package/dist/components/Object/Textfield/ObjNumber.d.ts +7 -0
  12. package/dist/components/Object/Textfield/ObjNumber.d.ts.map +1 -0
  13. package/dist/components/Object/Textfield/ObjText.d.ts +4 -0
  14. package/dist/components/Object/Textfield/ObjText.d.ts.map +1 -0
  15. package/dist/components/Single/Checkbox/SingleCheckIcon.d.ts +3 -1
  16. package/dist/components/Single/Checkbox/SingleCheckIcon.d.ts.map +1 -1
  17. package/dist/components/Single/Checkbox/SingleCheckbox.d.ts +3 -1
  18. package/dist/components/Single/Checkbox/SingleCheckbox.d.ts.map +1 -1
  19. package/dist/components/Single/Select/BaseSingleSelect.d.ts +14 -0
  20. package/dist/components/Single/Select/BaseSingleSelect.d.ts.map +1 -0
  21. package/dist/components/Single/Select/SingleSelectOne.d.ts +5 -0
  22. package/dist/components/Single/Select/SingleSelectOne.d.ts.map +1 -0
  23. package/dist/components/Single/Select/SingleSelectRecord.d.ts +4 -0
  24. package/dist/components/Single/Select/SingleSelectRecord.d.ts.map +1 -0
  25. package/dist/components/Single/TextField/SingleNumber.d.ts +6 -0
  26. package/dist/components/Single/TextField/SingleNumber.d.ts.map +1 -0
  27. package/dist/components/Single/TextField/SingleText.d.ts +3 -1
  28. package/dist/components/Single/TextField/SingleText.d.ts.map +1 -1
  29. package/dist/components/index.d.ts +12 -10
  30. package/dist/components/index.d.ts.map +1 -1
  31. package/dist/hooks/index.d.ts +2 -2
  32. package/dist/hooks/index.d.ts.map +1 -1
  33. package/dist/hooks/splits/useSplitNumberProps.d.ts +7 -0
  34. package/dist/hooks/splits/useSplitNumberProps.d.ts.map +1 -0
  35. package/dist/hooks/splits/useSplitTextProps.d.ts +6 -0
  36. package/dist/hooks/splits/useSplitTextProps.d.ts.map +1 -0
  37. package/dist/hooks/state/useObjToSingle.d.ts +2 -2
  38. package/dist/hooks/state/useObjToSingle.d.ts.map +1 -1
  39. package/dist/index.d.ts +0 -1
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +310 -235
  42. package/dist/styles/FastStartProps.d.ts +29 -0
  43. package/dist/styles/FastStartProps.d.ts.map +1 -0
  44. package/dist/styles/FastStartProvider.d.ts +2 -17
  45. package/dist/styles/FastStartProvider.d.ts.map +1 -1
  46. package/dist/types/props.d.ts +38 -23
  47. package/dist/types/props.d.ts.map +1 -1
  48. package/dist/types/props.internal.d.ts +12 -0
  49. package/dist/types/props.internal.d.ts.map +1 -0
  50. package/dist/types/provider.d.ts +20 -30
  51. package/dist/types/provider.d.ts.map +1 -1
  52. package/dist/utils/object/error.d.ts +3 -2
  53. package/dist/utils/object/error.d.ts.map +1 -1
  54. package/examples/basic/src/main.tsx +26 -33
  55. package/examples/basic/src/pages/ObjPage.tsx +92 -9
  56. package/examples/basic/src/pages/SinglePage.tsx +69 -2
  57. package/examples/basic/tsconfig.app.json +5 -0
  58. package/examples/basic/tsconfig.node.json +5 -0
  59. package/examples/basic/vite.config.ts +1 -1
  60. package/package.json +1 -1
  61. package/src/components/Object/Checkbox/ObjCheckIcon.tsx +29 -0
  62. package/src/components/Object/Checkbox/ObjCheckbox.tsx +31 -0
  63. package/src/components/Object/Select/ObjSelectOne.tsx +34 -0
  64. package/src/components/Object/Select/ObjSelectRecord.tsx +34 -0
  65. package/src/components/Object/Textfield/ObjNumber.tsx +51 -0
  66. package/src/components/Object/Textfield/ObjText.tsx +29 -0
  67. package/src/components/Single/Checkbox/SingleCheckIcon.tsx +7 -5
  68. package/src/components/Single/Checkbox/SingleCheckbox.tsx +7 -5
  69. package/src/components/Single/Select/BaseSingleSelect.tsx +46 -0
  70. package/src/components/Single/Select/SingleSelectOne.tsx +56 -0
  71. package/src/components/Single/Select/SingleSelectRecord.tsx +52 -0
  72. package/src/components/Single/TextField/SingleNumber.tsx +19 -0
  73. package/src/components/Single/TextField/SingleText.tsx +6 -5
  74. package/src/components/index.ts +14 -12
  75. package/src/hooks/index.ts +2 -2
  76. package/src/hooks/splits/{useSplitSingleNumberProps.ts → useSplitNumberProps.ts} +58 -56
  77. package/src/hooks/splits/useSplitTextProps.ts +36 -0
  78. package/src/hooks/state/useObjToSingle.ts +3 -2
  79. package/src/index.ts +0 -1
  80. package/src/styles/FastStartProps.ts +82 -0
  81. package/src/styles/FastStartProvider.tsx +2 -3
  82. package/src/types/props.internal.ts +21 -0
  83. package/src/types/props.ts +47 -33
  84. package/src/types/provider.ts +70 -45
  85. package/src/utils/number/calculate.ts +2 -2
  86. package/src/utils/object/error.ts +5 -4
  87. package/dist/components/Obj/Checkbox/ObjCheckIcon.d.ts +0 -3
  88. package/dist/components/Obj/Checkbox/ObjCheckIcon.d.ts.map +0 -1
  89. package/dist/components/Obj/Checkbox/ObjCheckbox.d.ts +0 -3
  90. package/dist/components/Obj/Checkbox/ObjCheckbox.d.ts.map +0 -1
  91. package/dist/components/Obj/Textfield/ObjFloat.d.ts +0 -3
  92. package/dist/components/Obj/Textfield/ObjFloat.d.ts.map +0 -1
  93. package/dist/components/Obj/Textfield/ObjInteger.d.ts +0 -3
  94. package/dist/components/Obj/Textfield/ObjInteger.d.ts.map +0 -1
  95. package/dist/components/Obj/Textfield/ObjText.d.ts +0 -3
  96. package/dist/components/Obj/Textfield/ObjText.d.ts.map +0 -1
  97. package/dist/components/Single/TextField/SingleFloat.d.ts +0 -3
  98. package/dist/components/Single/TextField/SingleFloat.d.ts.map +0 -1
  99. package/dist/components/Single/TextField/SingleInteger.d.ts +0 -3
  100. package/dist/components/Single/TextField/SingleInteger.d.ts.map +0 -1
  101. package/dist/hooks/splits/useSplitSingleNumberProps.d.ts +0 -6
  102. package/dist/hooks/splits/useSplitSingleNumberProps.d.ts.map +0 -1
  103. package/dist/hooks/splits/useSplitSingleTextProps.d.ts +0 -5
  104. package/dist/hooks/splits/useSplitSingleTextProps.d.ts.map +0 -1
  105. package/dist/styles/createDefaultProps.d.ts +0 -3
  106. package/dist/styles/createDefaultProps.d.ts.map +0 -1
  107. package/mui-fast-start-0.1.5.tgz +0 -0
  108. package/src/components/Obj/Checkbox/ObjCheckIcon.tsx +0 -19
  109. package/src/components/Obj/Checkbox/ObjCheckbox.tsx +0 -19
  110. package/src/components/Obj/Textfield/ObjFloat.tsx +0 -22
  111. package/src/components/Obj/Textfield/ObjInteger.tsx +0 -22
  112. package/src/components/Obj/Textfield/ObjText.tsx +0 -22
  113. package/src/components/Single/TextField/SingleFloat.tsx +0 -12
  114. package/src/components/Single/TextField/SingleInteger.tsx +0 -12
  115. package/src/hooks/splits/useSplitSingleTextProps.ts +0 -36
  116. package/src/styles/createDefaultProps.ts +0 -45
  117. package/src.zip +0 -0
package/dist/index.js CHANGED
@@ -1,278 +1,353 @@
1
- import { createContext, useCallback, useContext, useMemo, useState } from "react";
2
- import { Checkbox, FormControlLabel, IconButton, TextField, ThemeProvider } from "@mui/material";
3
- import { jsx } from "react/jsx-runtime";
4
- var floatCalculate = (e, c, l, u) => {
5
- let d = 0;
6
- if (e == null || isEmpty$1(e)) d = u;
7
- else for (let c of e.split(/(?=[+-])/g)) /^[+-]?\d+\.\d+$/.test(c) ? d += parseFloat(c) : /^[+-]?\d+$/.test(c) && (d += parseInt(c, 10));
8
- return d != null && (l != null && (d = Math.min(l, d)), c != null && (d = Math.min(c, d))), d;
9
- }, integerCalculate = (e, c, l, u) => {
10
- let d = 0;
11
- if (e == null || isEmpty$1(e)) d = u;
12
- else for (let c of e.split(/(?=[+-])/g)) /^[+-]?\d+$/.test(c) && (d += parseInt(c, 10));
13
- return d != null && (l != null && (d = Math.min(l, d)), c != null && (d = Math.min(c, d))), d;
14
- }, processFloat = (e) => {
15
- let c = e.replace(/[^0-9+.-]/g, "").replace(/([+-]){2,}/g, (e, c) => c), l = "", u = "", d = !1;
16
- for (let e = 0; e < c.length; e++) {
17
- let f = c[e];
18
- f >= "0" && f <= "9" ? u += f : f === "." ? d ||= (u === "" && (u = "0"), u += ".", !0) : (f === "+" || f === "-") && (u !== "" && (l += u), l += f, u = "", d = !1);
1
+ import { createContext, useCallback, useContext, useId, useMemo, useState } from "react";
2
+ import { Checkbox, FormControl, FormControlLabel, FormHelperText, IconButton, InputLabel, MenuItem, Select, TextField, ThemeProvider } from "@mui/material";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ var floatCalculate = (n, O, k, A) => {
5
+ let j = 0;
6
+ if (n == null || isEmpty$1(n)) j = A;
7
+ else for (let O of n.split(/(?=[+-])/g)) /^[+-]?\d+\.\d+$/.test(O) ? j += parseFloat(O) : /^[+-]?\d+$/.test(O) && (j += parseInt(O, 10));
8
+ return j != null && (k != null && (j = Math.min(k, j)), O != null && (j = Math.max(O, j))), j;
9
+ }, integerCalculate = (n, O, k, A) => {
10
+ let j = 0;
11
+ if (n == null || isEmpty$1(n)) j = A;
12
+ else for (let O of n.split(/(?=[+-])/g)) /^[+-]?\d+$/.test(O) && (j += parseInt(O, 10));
13
+ return j != null && (k != null && (j = Math.min(k, j)), O != null && (j = Math.max(O, j))), j;
14
+ }, processFloat = (n) => {
15
+ let O = n.replace(/[^0-9+.-]/g, "").replace(/([+-]){2,}/g, (n, O) => O), k = "", A = "", j = !1;
16
+ for (let n = 0; n < O.length; n++) {
17
+ let M = O[n];
18
+ M >= "0" && M <= "9" ? A += M : M === "." ? j ||= (A === "" && (A = "0"), A += ".", !0) : (M === "+" || M === "-") && (A !== "" && (k += A), k += M, A = "", j = !1);
19
19
  }
20
- return l + u;
21
- }, processInteger = (e) => e.replace(/[^0-9+-]/g, "").replace(/\./g, "").replace(/([+-]){2,}/g, (e, c) => c.charAt(0)).replace(/^([+-]{2,})/, (e) => e.charAt(0));
22
- function isEmpty$1(e) {
23
- return e.length === 0 || !e.trim();
20
+ return k + A;
21
+ }, processInteger = (n) => n.replace(/[^0-9+-]/g, "").replace(/\./g, "").replace(/([+-]){2,}/g, (n, O) => O.charAt(0)).replace(/^([+-]{2,})/, (n) => n.charAt(0));
22
+ function isEmpty$1(n) {
23
+ return n.length === 0 || !n.trim();
24
24
  }
25
- function isPlainObject(e) {
26
- return typeof e == "object" && !!e && e.constructor === Object;
25
+ function isPlainObject(n) {
26
+ return typeof n == "object" && !!n && n.constructor === Object;
27
27
  }
28
- function isEmpty(e) {
29
- return Object.keys(e).length === 0;
28
+ function isEmpty(n) {
29
+ return Object.keys(n).length === 0;
30
30
  }
31
- function fastDeepMerge(e, c) {
32
- if (e === c || !isPlainObject(c) || isEmpty(c)) return e;
33
- if (!isPlainObject(e) || isEmpty(e)) return c;
34
- let l = { ...e }, u = [[l, c]];
35
- for (; u.length;) {
36
- let [e, c] = u.pop();
37
- for (let l in c) {
38
- if (!Object.prototype.hasOwnProperty.call(c, l)) continue;
39
- let d = c[l], f = e[l];
40
- if (isPlainObject(f) && isPlainObject(d)) {
41
- let c = { ...f };
42
- e[l] = c, u.push([c, d]);
43
- } else e[l] = d;
31
+ function fastDeepMerge(n, O) {
32
+ if (n === O || !isPlainObject(O) || isEmpty(O)) return n;
33
+ if (!isPlainObject(n) || isEmpty(n)) return O;
34
+ let k = { ...n }, A = [[k, O]];
35
+ for (; A.length;) {
36
+ let [n, O] = A.pop();
37
+ for (let k in O) {
38
+ if (!Object.prototype.hasOwnProperty.call(O, k)) continue;
39
+ let j = O[k], M = n[k];
40
+ if (isPlainObject(M) && isPlainObject(j)) {
41
+ let O = { ...M };
42
+ n[k] = O, A.push([O, j]);
43
+ } else n[k] = j;
44
44
  }
45
45
  }
46
- return l;
46
+ return k;
47
47
  }
48
- const createDefaultProps = (e) => {
49
- let c = {
50
- fullWidth: !0,
51
- autoComplete: "off",
52
- variant: "outlined",
53
- size: "small"
54
- }, l = Object.assign({
55
- inputMode: "decimal",
56
- type: "text",
57
- step: .01,
58
- def: 0
59
- }, c), u = Object.assign({
60
- inputMode: "numeric",
61
- type: "text",
62
- step: 1,
63
- def: 0
64
- }, c);
65
- return fastDeepMerge({
66
- Single: {
67
- Float: { ...l },
68
- Integer: { ...u },
69
- Text: { ...c },
70
- Checkbox: { size: "small" },
71
- CheckIcon: { size: "small" }
48
+ var mfsDefaultProps = {
49
+ Single: {
50
+ MfsFloat: {
51
+ inputMode: "decimal",
52
+ type: "text",
53
+ step: .01,
54
+ def: 0
72
55
  },
73
- Obj: {
74
- Float: { ...l },
75
- Integer: { ...u },
76
- Text: { ...c },
77
- Checkbox: { size: "small" },
78
- CheckIcon: { size: "small" }
56
+ MfsInteger: {
57
+ inputMode: "numeric",
58
+ type: "text",
59
+ step: 1,
60
+ def: 0
79
61
  }
80
- }, e);
81
- };
82
- var FastStartContext = createContext(createDefaultProps()), FastStartProvider = (e) => {
83
- let { defaultProps: c, ...l } = e;
62
+ },
63
+ Object: {
64
+ MfsFloat: {
65
+ inputMode: "decimal",
66
+ type: "text",
67
+ step: .01,
68
+ def: 0
69
+ },
70
+ MfsInteger: {
71
+ inputMode: "numeric",
72
+ type: "text",
73
+ step: 1,
74
+ def: 0
75
+ }
76
+ }
77
+ }, FastStartContext = createContext(((n) => fastDeepMerge({ ...mfsDefaultProps }, n))({})), FastStartProvider = (n) => {
78
+ let { defaultProps: O, ...k } = n;
84
79
  return /* @__PURE__ */ jsx(FastStartContext, {
85
- value: c,
86
- children: /* @__PURE__ */ jsx(ThemeProvider, { ...l })
80
+ value: O,
81
+ children: /* @__PURE__ */ jsx(ThemeProvider, { ...k })
87
82
  });
88
- }, useObjToSingle_default = (e, l, u) => [l?.[e], useCallback((c) => {
89
- u((l) => {
90
- let u = typeof c == "function" ? c(l?.[e]) : c;
91
- return {
92
- ...l,
93
- [e]: u
94
- };
95
- });
96
- }, [e, u])];
97
- const SingleCheckbox = (e) => {
98
- let u = useContext(FastStartContext)?.Single?.Checkbox, { get: d, set: m, label: h, ...g } = fastDeepMerge(u, e), v = useCallback(() => m((e) => !e), [m]);
99
- return h == null ? /* @__PURE__ */ jsx(Checkbox, {
100
- checked: d,
101
- onChange: v,
102
- ...g
83
+ };
84
+ const SingleCheckbox = (n) => {
85
+ let A = useContext(FastStartContext)?.Single?.MfsCheckbox, { get: j, set: M, label: P, ...I } = A == null ? n : Object.assign({ ...A }, n), L = useCallback(() => M((n) => !n), [M]);
86
+ return P == null ? /* @__PURE__ */ jsx(Checkbox, {
87
+ checked: j,
88
+ onChange: L,
89
+ ...I
103
90
  }) : /* @__PURE__ */ jsx(FormControlLabel, {
104
- checked: d,
105
- label: h,
106
- onChange: v,
107
- control: /* @__PURE__ */ jsx(Checkbox, { ...g })
91
+ checked: j,
92
+ label: P,
93
+ onChange: L,
94
+ control: /* @__PURE__ */ jsx(Checkbox, { ...I })
108
95
  });
109
- }, ObjCheckbox = (e) => {
110
- let c = useContext(FastStartContext)?.Obj?.Checkbox, { get: u, set: d, ...f } = fastDeepMerge(c, e), [p, m] = useObjToSingle_default(f.name, u, d);
111
- return /* @__PURE__ */ jsx(SingleCheckbox, {
112
- get: p,
113
- set: m,
114
- ...f
115
- });
116
- }, SingleCheckIcon = (e) => {
117
- let u = useContext(FastStartContext)?.Single?.CheckIcon, { get: d, set: f, on: p, off: h, ...g } = fastDeepMerge(u, e);
96
+ }, SingleCheckIcon = (n) => {
97
+ let A = useContext(FastStartContext)?.Single?.MfsCheckIcon, { get: j, set: M, on: N, off: P, ...F } = A == null ? n : Object.assign({ ...A }, n);
118
98
  return /* @__PURE__ */ jsx(IconButton, {
119
- onClick: useCallback(() => f((e) => !e), [f]),
120
- ...g,
121
- children: d ? p : h
122
- });
123
- }, ObjCheckIcon = (e) => {
124
- let c = useContext(FastStartContext)?.Obj?.CheckIcon, { get: u, set: d, ...f } = fastDeepMerge(c, e), [p, m] = useObjToSingle_default(f.name, u, d);
125
- return /* @__PURE__ */ jsx(SingleCheckIcon, {
126
- get: p,
127
- set: m,
128
- ...f
99
+ onClick: useCallback(() => M((n) => !n), [M]),
100
+ ...F,
101
+ children: j ? N : P
129
102
  });
130
103
  };
131
- var useSplitSingleNumberProps = (e, l, f, p, m = []) => {
132
- let [h, g] = useState(null), { get: _, set: v, errorData: y, minLength: b, maxLength: x, startAdornment: S, endAdornment: C, disappear: w, def: T, min: E, max: D, step: O, ...k } = useMemo(() => fastDeepMerge({ ...e }, l), [e, l]), A = useCallback((e) => p(e, E, D, T), [
133
- p,
134
- E,
135
- D,
136
- T
137
- ]), j = useCallback((e) => {
138
- let { value: c, valueAsNumber: l } = e.currentTarget;
139
- return isNaN(l) ? A(c) : l;
140
- }, [A]), M = useCallback((e) => {
141
- let c = e.currentTarget, l = f(c.value);
142
- return l != c.value && (c.value = l), l;
143
- }, [f]), N = useCallback(() => {
144
- h ?? g(_.toString());
145
- }, [h, _]), P = useCallback((e) => {
146
- let c = A(M(e));
147
- c != null && !isNaN(c) && _ != c && v(c), g(e.currentTarget.value);
148
- }, [
149
- M,
150
- A,
151
- _,
152
- v
153
- ]), F = useCallback((e) => {
154
- let { value: c } = e.currentTarget;
155
- g(null);
156
- let l = A(c);
157
- _ != l && v(l);
158
- }, [
159
- A,
160
- _,
161
- v
162
- ]), I = useCallback((e) => {
163
- if (m.includes(e.key) || O == null) {
164
- e.preventDefault();
165
- return;
166
- }
167
- let c = e.currentTarget;
168
- if (e.key === "ArrowUp") {
169
- e.preventDefault();
170
- let l = j(e);
171
- if (l == null) return;
172
- let u = l + O;
173
- D != null && u > D ? c.value = D.toString() : c.value = digitRound(u, O).toString();
174
- } else if (e.key === "ArrowDown") {
175
- e.preventDefault();
176
- let l = j(e);
177
- if (l == null) return;
178
- let u = l - O;
179
- E != null && u < E ? c.value = E.toString() : c.value = digitRound(u, O).toString();
180
- }
181
- }, [
182
- j,
183
- m,
184
- D,
185
- E,
186
- O
187
- ]), L = useMemo(() => h ?? _, [_, h]), R = useMemo(() => h == null && (!_ || isNaN(_)) ? {} : { shrink: !0 }, [h, _]);
104
+ var useSplitNumberProps = (n, k, A, j, N = []) => {
105
+ let [P, F] = useState(null), { get: I, set: L, err: R, minLength: z, maxLength: B, startAdornment: V, endAdornment: H, def: U, min: W, max: G, step: K, ...q } = n == null ? k : Object.assign({ ...n }, k), J = (n) => j(n, W, G, U), Y = (n) => {
106
+ let { value: O, valueAsNumber: k } = n.currentTarget;
107
+ return isNaN(k) ? J(O) : k;
108
+ }, X = useCallback((n) => {
109
+ let O = n.currentTarget, k = A(O.value);
110
+ return k != O.value && (O.value = k), k;
111
+ }, [A]);
188
112
  return fastDeepMerge({
189
- error: !!y,
190
- helperText: y,
191
- value: L,
192
- onChange: P,
193
- onSelect: N,
194
- onBlur: F,
113
+ error: !!R,
114
+ helperText: R,
115
+ value: P ?? I,
116
+ onChange: (n) => {
117
+ let O = J(X(n));
118
+ O != null && !isNaN(O) && I != O && L(O), F(n.currentTarget.value);
119
+ },
120
+ onSelect: () => {
121
+ P ?? F(I.toString());
122
+ },
123
+ onBlur: (n) => {
124
+ let { value: O } = n.currentTarget;
125
+ F(null);
126
+ let k = J(O);
127
+ I != k && L(k);
128
+ },
195
129
  slotProps: {
196
130
  htmlInput: {
197
- step: O,
198
- min: E,
199
- max: D,
200
- minLength: b,
201
- maxLength: x,
202
- onKeyDown: I
131
+ step: K,
132
+ min: W,
133
+ max: G,
134
+ minLength: z,
135
+ maxLength: B,
136
+ onKeyDown: (n) => {
137
+ if (N.includes(n.key) || K == null) {
138
+ n.preventDefault();
139
+ return;
140
+ }
141
+ let O = n.currentTarget;
142
+ if (n.key === "ArrowUp") {
143
+ n.preventDefault();
144
+ let k = Y(n);
145
+ if (k == null) return;
146
+ let A = k + K;
147
+ G != null && A > G ? O.value = G.toString() : O.value = digitRound(A, K).toString();
148
+ } else if (n.key === "ArrowDown") {
149
+ n.preventDefault();
150
+ let k = Y(n);
151
+ if (k == null) return;
152
+ let A = k - K;
153
+ W != null && A < W ? O.value = W.toString() : O.value = digitRound(A, K).toString();
154
+ }
155
+ }
203
156
  },
204
- inputLabel: R,
157
+ inputLabel: P == null && (!I || isNaN(I)) ? {} : { shrink: !0 },
205
158
  input: {
206
- startAdornment: S,
207
- endAdornment: C
159
+ startAdornment: V,
160
+ endAdornment: H
208
161
  }
209
162
  }
210
- }, k);
211
- }, digitRound = (e, c) => {
212
- if (c = Math.abs(c), c === 0) return e;
213
- let l = -Math.floor(Math.log10(c));
214
- return l > 0 ? Number(Math.round(e * 10 ** l) / 10 ** l) : e;
215
- }, useSplitSingleFloatProps = (e, c) => useSplitSingleNumberProps(e, c, processFloat, floatCalculate), useSplitSingleIntegerProps = (e, c) => useSplitSingleNumberProps(e, c, processInteger, integerCalculate, [
163
+ }, q);
164
+ }, digitRound = (n, O) => {
165
+ if (O = Math.abs(O), O === 0) return n;
166
+ let k = -Math.floor(Math.log10(O));
167
+ return k > 0 ? Number(Math.round(n * 10 ** k) / 10 ** k) : n;
168
+ }, useSplitSingleFloatProps = (n, O) => useSplitNumberProps(n, O, processFloat, floatCalculate), useSplitSingleIntegerProps = (n, O) => useSplitNumberProps(n, O, processInteger, integerCalculate, [
216
169
  ".",
217
170
  "e",
218
171
  "E"
219
- ]), useSplitSingleTextProps_default = (e, l) => {
220
- let { get: u, set: d, errorData: f, minLength: p, maxLength: m, startAdornment: h, endAdornment: g, ..._ } = fastDeepMerge({ ...e }, l), v = useCallback((e) => {
221
- d(e.currentTarget.value);
222
- }, [d]);
172
+ ]), useSplitTextProps_default = (n, O) => {
173
+ let { get: k, set: A, err: j, minLength: M, maxLength: N, startAdornment: P, endAdornment: F, ...I } = n == null ? O : Object.assign({ ...n }, O);
223
174
  return fastDeepMerge({
224
- error: !!f,
225
- helperText: f,
226
- value: u,
227
- onChange: v,
175
+ error: !!j,
176
+ helperText: j,
177
+ value: k,
178
+ onChange: (n) => {
179
+ A(n.currentTarget.value);
180
+ },
228
181
  slotProps: {
229
182
  htmlInput: {
230
- minLength: p,
231
- maxLength: m
183
+ minLength: M,
184
+ maxLength: N
232
185
  },
233
186
  input: {
234
- startAdornment: h,
235
- endAdornment: g
187
+ startAdornment: P,
188
+ endAdornment: F
236
189
  }
237
190
  }
238
- }, _);
191
+ }, I);
192
+ }, useObjToSingle_default = (n, k, A) => [k?.[n], useCallback((O) => {
193
+ A((k) => {
194
+ let A = typeof O == "function" ? O(k?.[n]) : O;
195
+ return {
196
+ ...k,
197
+ [n]: A
198
+ };
199
+ });
200
+ }, [n, A])];
201
+ const SingleFloat = (n) => {
202
+ let O = useContext(FastStartContext)?.Single?.MfsFloat;
203
+ return /* @__PURE__ */ jsx(TextField, { ...useSplitSingleFloatProps(O, n) });
204
+ }, SingleInteger = (n) => {
205
+ let O = useContext(FastStartContext)?.Single?.MfsInteger;
206
+ return /* @__PURE__ */ jsx(TextField, { ...useSplitSingleIntegerProps(O, n) });
207
+ }, SingleText = (n) => {
208
+ let O = useContext(FastStartContext)?.Single?.MfsText;
209
+ return /* @__PURE__ */ jsx(TextField, { ...useSplitTextProps_default(O, n) });
239
210
  };
240
- const SingleFloat = (e) => {
241
- let c = useContext(FastStartContext)?.Single?.Float;
242
- return /* @__PURE__ */ jsx(TextField, { ...useSplitSingleFloatProps(c, e) });
211
+ var BaseSingleSelect_default = (n) => {
212
+ let { emptyItem: O, label: k, selectProps: j } = n, M = useId(), N = !!n.err;
213
+ return /* @__PURE__ */ jsxs(FormControl, {
214
+ error: N,
215
+ fullWidth: j.fullWidth,
216
+ variant: j.variant,
217
+ size: j.size,
218
+ sx: j.sx,
219
+ disabled: j.disabled,
220
+ required: j.required,
221
+ margin: j.margin,
222
+ children: [
223
+ k && /* @__PURE__ */ jsx(InputLabel, {
224
+ id: M,
225
+ children: k
226
+ }),
227
+ /* @__PURE__ */ jsxs(Select, {
228
+ labelId: M,
229
+ error: N,
230
+ label: k,
231
+ value: n.get ?? "",
232
+ onChange: n.onChange,
233
+ ...j,
234
+ children: [O && /* @__PURE__ */ jsx(MenuItem, {
235
+ value: "",
236
+ children: O
237
+ }, ""), n.items]
238
+ }),
239
+ N && /* @__PURE__ */ jsx(FormHelperText, { children: n.err })
240
+ ]
241
+ });
243
242
  };
244
- function errorObjectToString(e, c) {
245
- return e != null && typeof c == "object" ? c[e] : void 0;
243
+ const SingleSelectOne = (n) => {
244
+ let O = useContext(FastStartContext)?.Single?.MfsSelectOne, { get: A, set: M, err: N, label: P, items: F, renderMenuItem: I, emptyItem: L, emptyValue: R, getKey: B, ...V } = O == null ? n : Object.assign({ ...O }, n), H = useMemo(() => B ?? ((n) => n), [B]);
245
+ return /* @__PURE__ */ jsx(BaseSingleSelect_default, {
246
+ label: P,
247
+ items: useMemo(() => I == null ? F.map((n) => {
248
+ let O = H(n);
249
+ return /* @__PURE__ */ jsx(MenuItem, {
250
+ value: O,
251
+ children: O
252
+ }, O);
253
+ }) : F.map(I), [
254
+ H,
255
+ F,
256
+ I
257
+ ]),
258
+ emptyItem: L,
259
+ get: A,
260
+ err: N,
261
+ onChange: (n) => {
262
+ let O = n.target.value;
263
+ M(B == null ? O == "" ? R : O : F.find((n) => H(n) === O));
264
+ },
265
+ selectProps: V
266
+ });
267
+ }, SingleSelectRecord = (n) => {
268
+ let O = useContext(FastStartContext)?.Single?.MfsSelectRecord, { get: A, set: M, err: N, label: P, items: F, renderMenuItem: I, emptyItem: L, emptyValue: R, ...B } = O == null ? n : Object.assign({ ...O }, n);
269
+ return /* @__PURE__ */ jsx(BaseSingleSelect_default, {
270
+ label: P,
271
+ items: useMemo(() => I == null ? Object.entries(F).map(([n, O]) => /* @__PURE__ */ jsx(MenuItem, {
272
+ value: n,
273
+ children: O?.toString()
274
+ }, n)) : Object.entries(F).map(([n, O], k) => I(n, O, k)), [F, I]),
275
+ emptyItem: L,
276
+ get: A,
277
+ err: N,
278
+ onChange: (n) => {
279
+ let O = n.target.value;
280
+ M(O == "" ? R : O);
281
+ },
282
+ selectProps: B
283
+ });
284
+ }, ObjCheckbox = (n) => {
285
+ let O = useContext(FastStartContext)?.Object?.MfsCheckbox, { get: A, set: j, label: M, name: N, ...P } = O == null ? n : Object.assign({ ...O }, n), [F, I] = useObjToSingle_default(N, A, j);
286
+ return /* @__PURE__ */ jsx(SingleCheckbox, {
287
+ get: F,
288
+ set: I,
289
+ label: M,
290
+ name: N?.toString(),
291
+ ...P
292
+ });
293
+ }, ObjCheckIcon = (n) => {
294
+ let O = useContext(FastStartContext)?.Object?.MfsCheckIcon, { get: A, set: j, name: M, ...N } = O == null ? n : Object.assign({ ...O }, n), [P, F] = useObjToSingle_default(M, A, j);
295
+ return /* @__PURE__ */ jsx(SingleCheckIcon, {
296
+ get: P,
297
+ set: F,
298
+ name: M?.toString(),
299
+ ...N
300
+ });
301
+ };
302
+ function errorObjectToString(n, O) {
303
+ return n != null && typeof O == "object" ? O[n] : void 0;
246
304
  }
247
- const ObjFloat = (e) => {
248
- let c = useContext(FastStartContext)?.Obj?.Float, { get: u, set: d, errorData: f, ...p } = fastDeepMerge(c, e), [m, h] = useObjToSingle_default(p.name, u, d);
305
+ const ObjFloat = (n) => {
306
+ let O = useContext(FastStartContext)?.Object?.MfsFloat, { get: A, set: j, err: M, name: N, ...P } = O == null ? n : Object.assign({ ...O }, n), [F, I] = useObjToSingle_default(N, A, j);
249
307
  return /* @__PURE__ */ jsx(SingleFloat, {
250
- get: m,
251
- set: h,
252
- errorData: errorObjectToString(p.name, f),
253
- ...p
308
+ get: F,
309
+ set: I,
310
+ name: N?.toString(),
311
+ err: errorObjectToString(N, M),
312
+ ...P
254
313
  });
255
- }, SingleInteger = (e) => {
256
- let c = useContext(FastStartContext)?.Single?.Integer;
257
- return /* @__PURE__ */ jsx(TextField, { ...useSplitSingleIntegerProps(c, e) });
258
- }, ObjInteger = (e) => {
259
- let c = useContext(FastStartContext)?.Obj?.Integer, { get: u, set: d, errorData: f, ...p } = fastDeepMerge(c, e), [m, h] = useObjToSingle_default(p.name, u, d);
314
+ }, ObjInteger = (n) => {
315
+ let O = useContext(FastStartContext)?.Object?.MfsInteger, { get: A, set: j, err: M, name: N, ...P } = O == null ? n : Object.assign({ ...O }, n), [F, I] = useObjToSingle_default(N, A, j);
260
316
  return /* @__PURE__ */ jsx(SingleInteger, {
261
- get: m,
262
- set: h,
263
- errorData: errorObjectToString(p.name, f),
264
- ...p
317
+ get: F,
318
+ set: I,
319
+ name: N?.toString(),
320
+ err: errorObjectToString(N, M),
321
+ ...P
265
322
  });
266
- }, SingleText = (e) => {
267
- let c = useContext(FastStartContext)?.Single?.Text;
268
- return /* @__PURE__ */ jsx(TextField, { ...useSplitSingleTextProps_default(c, e) });
269
- }, ObjText = (e) => {
270
- let c = useContext(FastStartContext)?.Obj?.Text, { get: u, set: d, errorData: f, ...p } = fastDeepMerge(c, e), [m, h] = useObjToSingle_default(p.name, u, d);
323
+ }, ObjText = (n) => {
324
+ let O = useContext(FastStartContext)?.Object?.MfsText, { get: A, set: j, err: M, name: N, ...P } = O == null ? n : Object.assign({ ...O }, n), [F, I] = useObjToSingle_default(N, A, j);
271
325
  return /* @__PURE__ */ jsx(SingleText, {
272
- get: m,
273
- set: h,
274
- errorData: errorObjectToString(p.name, f),
275
- ...p
326
+ get: F,
327
+ set: I,
328
+ name: N?.toString(),
329
+ err: errorObjectToString(N, M),
330
+ ...P
331
+ });
332
+ }, ObjSelectOne = (n) => {
333
+ let O = useContext(FastStartContext)?.Object?.MfsSelectOne, { get: A, set: j, err: M, name: N, variant: P, ...F } = O == null ? n : Object.assign({ ...O }, n), [I, L] = useObjToSingle_default(N, A, j);
334
+ return /* @__PURE__ */ jsx(SingleSelectOne, {
335
+ get: I,
336
+ set: L,
337
+ name: N?.toString(),
338
+ err: errorObjectToString(N, M),
339
+ variant: P,
340
+ ...F
341
+ });
342
+ }, ObjSelectRecord = (n) => {
343
+ let O = useContext(FastStartContext)?.Single?.MfsSelectRecord, { get: A, set: j, err: M, name: N, variant: P, ...F } = O == null ? n : Object.assign({ ...O }, n), [I, L] = useObjToSingle_default(N, A, j);
344
+ return /* @__PURE__ */ jsx(SingleSelectRecord, {
345
+ get: I,
346
+ set: L,
347
+ name: N?.toString(),
348
+ err: errorObjectToString(N, M),
349
+ variant: P,
350
+ ...F
276
351
  });
277
352
  };
278
- export { FastStartContext, FastStartProvider, ObjCheckIcon, ObjCheckbox, ObjFloat, ObjInteger, ObjText, SingleCheckIcon, SingleCheckbox, SingleFloat, SingleInteger, SingleText, createDefaultProps };
353
+ export { FastStartContext, FastStartProvider, ObjCheckIcon, ObjCheckbox, ObjFloat, ObjInteger, ObjSelectOne, ObjSelectRecord, ObjText, SingleCheckIcon, SingleCheckbox, SingleFloat, SingleInteger, SingleSelectOne, SingleSelectRecord, SingleText };
@@ -0,0 +1,29 @@
1
+ import { MfsObjectCheckboxProps, MfsObjectCheckIconProps, MfsObjectNumberProps, MfsObjectSelectOneProps, MfsObjectSelectRecordProps, MfsObjectTextProps, MfsSingleCheckboxProps, MfsSingleCheckIconProps, MfsSingleNumberProps, MfsSingleSelectOneProps, MfsSingleSelectRecordProps, MfsSingleTextProps } from "../types";
2
+ import type { ThemeProviderProps } from "@mui/material";
3
+ interface FastStartProps {
4
+ Single: Partial<{
5
+ MfsFloat: Partial<MfsSingleNumberProps>;
6
+ MfsInteger: Partial<MfsSingleNumberProps>;
7
+ MfsText: Partial<MfsSingleTextProps>;
8
+ MfsCheckbox: Partial<MfsSingleCheckboxProps>;
9
+ MfsCheckIcon: Partial<MfsSingleCheckIconProps>;
10
+ MfsSelectOne: Partial<MfsSingleSelectOneProps<unknown>>;
11
+ MfsSelectRecord: Partial<MfsSingleSelectRecordProps<Record<string, unknown>>>;
12
+ }>;
13
+ Object: Partial<{
14
+ MfsFloat: Partial<MfsObjectNumberProps<object>>;
15
+ MfsInteger: Partial<MfsObjectNumberProps<object>>;
16
+ MfsText: Partial<MfsObjectTextProps<object>>;
17
+ MfsCheckbox: Partial<MfsObjectCheckboxProps<object>>;
18
+ MfsCheckIcon: Partial<MfsObjectCheckIconProps<object>>;
19
+ MfsSelectOne: Partial<MfsObjectSelectOneProps<object, unknown>>;
20
+ MfsSelectRecord: Partial<MfsObjectSelectRecordProps<object, Record<string, unknown>>>;
21
+ }>;
22
+ }
23
+ declare const createMfsProps: (customProps: Partial<FastStartProps>) => Partial<FastStartProps>;
24
+ interface FastStartProviderProps<Theme> extends ThemeProviderProps<Theme> {
25
+ defaultProps: Partial<FastStartProps>;
26
+ }
27
+ export { createMfsProps };
28
+ export type { FastStartProps, FastStartProviderProps };
29
+ //# sourceMappingURL=FastStartProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FastStartProps.d.ts","sourceRoot":"","sources":["../../src/styles/FastStartProps.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EAAE,uBAAuB,EAAE,0BAA0B,EACzE,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EAAE,0BAA0B,EACnD,kBAAkB,EACrB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AAGtD,UAAU,cAAc;IACpB,MAAM,EAAE,OAAO,CAAC;QACZ,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACxC,UAAU,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC1C,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACrC,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAC7C,YAAY,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC/C,YAAY,EAAE,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,eAAe,EAAE,OAAO,CAAC,0BAA0B,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;KAChF,CAAC,CAAC;IACH,MAAM,EAAE,OAAO,CAAC;QACZ,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;QAChD,UAAU,EAAE,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7C,WAAW,EAAE,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC;QACrD,YAAY,EAAE,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;QACvD,YAAY,EAAE,OAAO,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAChE,eAAe,EAAE,OAAO,CAAC,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;KACxF,CAAC,CAAA;CACL;AAiCD,QAAA,MAAM,cAAc,GAAI,aAAa,OAAO,CAAC,cAAc,CAAC,4BAE3D,CAAA;AAED,UAAU,sBAAsB,CAAC,KAAK,CAAE,SAAQ,kBAAkB,CAAC,KAAK,CAAC;IACrE,YAAY,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;CACzC;AAED,OAAO,EACH,cAAc,EACjB,CAAA;AAED,YAAY,EACR,cAAc,EACd,sBAAsB,EACzB,CAAA"}
@@ -1,21 +1,6 @@
1
1
  import type { DefaultTheme } from "@mui/system";
2
- import { FastStartProviderProps } from "../types";
3
- declare const FastStartContext: import("react").Context<import("..").DeepPartial<{
4
- Single: {
5
- Float: import("..").SingleNumberProps;
6
- Integer: import("..").SingleNumberProps;
7
- Text: import("..").SingleTextProps;
8
- Checkbox: import("..").SingleCheckboxProps;
9
- CheckIcon: import("..").SingleCheckIconProps;
10
- };
11
- Obj: {
12
- Float: import("..").ObjNumberProps<object>;
13
- Integer: import("..").ObjNumberProps<object>;
14
- Text: import("..").ObjTextProps<object>;
15
- Checkbox: import("..").ObjCheckboxProps<object>;
16
- CheckIcon: import("..").ObjCheckIconProps<object>;
17
- };
18
- }>>;
2
+ import { FastStartProps, FastStartProviderProps } from "./FastStartProps.ts";
3
+ declare const FastStartContext: import("react").Context<Partial<FastStartProps>>;
19
4
  declare const FastStartProvider: <T = DefaultTheme>(props: FastStartProviderProps<T>) => import("react/jsx-runtime").JSX.Element;
20
5
  export { FastStartContext, FastStartProvider };
21
6
  //# sourceMappingURL=FastStartProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FastStartProvider.d.ts","sourceRoot":"","sources":["../../src/styles/FastStartProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAwB,sBAAsB,EAAC,MAAM,UAAU,CAAC;AAGvE,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;GAA6D,CAAC;AAEpF,QAAA,MAAM,iBAAiB,GAAI,CAAC,GAAG,YAAY,EAAE,OAAO,sBAAsB,CAAC,CAAC,CAAC,4CAW5E,CAAA;AAED,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACpB,CAAA"}
1
+ {"version":3,"file":"FastStartProvider.d.ts","sourceRoot":"","sources":["../../src/styles/FastStartProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAiB,cAAc,EAAE,sBAAsB,EAAC,MAAM,qBAAqB,CAAC;AAG3F,QAAA,MAAM,gBAAgB,kDAA6D,CAAC;AAEpF,QAAA,MAAM,iBAAiB,GAAI,CAAC,GAAG,YAAY,EAAE,OAAO,sBAAsB,CAAC,CAAC,CAAC,4CAW5E,CAAA;AAED,OAAO,EACH,gBAAgB,EAChB,iBAAiB,EACpB,CAAA"}