@activecollab/components 2.0.92 → 2.0.94

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 (41) hide show
  1. package/dist/cjs/components/EditableCurrency/EditableCurrency.js +8 -5
  2. package/dist/cjs/components/EditableCurrency/EditableCurrency.js.map +1 -1
  3. package/dist/cjs/components/Input/InputNumber.js +5 -2
  4. package/dist/cjs/components/Input/InputNumber.js.map +1 -1
  5. package/dist/cjs/hooks/useInputNumber.js +10 -8
  6. package/dist/cjs/hooks/useInputNumber.js.map +1 -1
  7. package/dist/cjs/utils/currencyUtils.js +50 -8
  8. package/dist/cjs/utils/currencyUtils.js.map +1 -1
  9. package/dist/cjs/utils/currencyUtils.test.js +272 -19
  10. package/dist/cjs/utils/currencyUtils.test.js.map +1 -1
  11. package/dist/cjs/utils/index.js +8 -1
  12. package/dist/cjs/utils/index.js.map +1 -1
  13. package/dist/cjs/utils/types.js.map +1 -1
  14. package/dist/esm/components/EditableCurrency/EditableCurrency.d.ts.map +1 -1
  15. package/dist/esm/components/EditableCurrency/EditableCurrency.js +6 -4
  16. package/dist/esm/components/EditableCurrency/EditableCurrency.js.map +1 -1
  17. package/dist/esm/components/Input/InputNumber.d.ts.map +1 -1
  18. package/dist/esm/components/Input/InputNumber.js +3 -1
  19. package/dist/esm/components/Input/InputNumber.js.map +1 -1
  20. package/dist/esm/hooks/useInputNumber.d.ts +3 -2
  21. package/dist/esm/hooks/useInputNumber.d.ts.map +1 -1
  22. package/dist/esm/hooks/useInputNumber.js +9 -8
  23. package/dist/esm/hooks/useInputNumber.js.map +1 -1
  24. package/dist/esm/utils/currencyUtils.d.ts +4 -3
  25. package/dist/esm/utils/currencyUtils.d.ts.map +1 -1
  26. package/dist/esm/utils/currencyUtils.js +65 -7
  27. package/dist/esm/utils/currencyUtils.js.map +1 -1
  28. package/dist/esm/utils/currencyUtils.test.js +277 -20
  29. package/dist/esm/utils/currencyUtils.test.js.map +1 -1
  30. package/dist/esm/utils/index.d.ts +1 -1
  31. package/dist/esm/utils/index.d.ts.map +1 -1
  32. package/dist/esm/utils/index.js +1 -1
  33. package/dist/esm/utils/index.js.map +1 -1
  34. package/dist/esm/utils/types.d.ts +8 -0
  35. package/dist/esm/utils/types.d.ts.map +1 -1
  36. package/dist/esm/utils/types.js.map +1 -1
  37. package/dist/index.js +73 -22
  38. package/dist/index.js.map +1 -1
  39. package/dist/index.min.js +1 -1
  40. package/dist/index.min.js.map +1 -1
  41. package/package.json +1 -1
@@ -2,43 +2,296 @@
2
2
 
3
3
  var _currencyUtils = require("./currencyUtils");
4
4
  describe("format currency with thousandseparator set to ',' and decimalSeparator to '.'", function () {
5
- it.each([["", ""], ["10", "10"], ["1000", "1K"], ["1000.00", "1K"], ["1200.50", "1.2K"], ["1,200.00", "1.2K"], ["2,240.00", "2.2K"], ["22,240.00", "22.2K"], ["50,000,000.00", "50M"], ["-50,000.00", "-50K"], ["-1,200", "-1.2K"], ["-90,000,000.00", "-90M"]])("should format currency", function (value, expected) {
6
- expect((0, _currencyUtils.formatNumber)(value, ",")).toEqual(expected);
5
+ // please try to leave unformatted - ignore works for this block only
6
+ // prettier-ignore
7
+ it.each([[{
8
+ value: ""
9
+ }, ""], [{
10
+ value: "10"
11
+ }, "10"], [{
12
+ value: "1000"
13
+ }, "1K"], [{
14
+ value: "1000.00"
15
+ }, "1K"], [{
16
+ value: "1200.50"
17
+ }, "1.2K"], [{
18
+ value: "1,200.00"
19
+ }, "1.2K"], [{
20
+ value: "2,240.00"
21
+ }, "2.2K"], [{
22
+ value: "22,240.00"
23
+ }, "22.2K"], [{
24
+ value: "50,000,000.00"
25
+ }, "50M"], [{
26
+ value: "-50,000.00"
27
+ }, "-50K"], [{
28
+ value: "-1,200"
29
+ }, "-1.2K"], [{
30
+ value: "-90,000,000.00"
31
+ }, "-90M"], [{
32
+ value: "900.25"
33
+ }, "900.25"], [{
34
+ value: 900.25,
35
+ thousandSeparator: ".",
36
+ decimalSeparator: ","
37
+ }, "900,25"], [{
38
+ value: "900,25",
39
+ thousandSeparator: ".",
40
+ decimalSeparator: ","
41
+ }, "900,25"], [{
42
+ value: 900.255556,
43
+ thousandSeparator: ".",
44
+ decimalSeparator: ","
45
+ }, "900,25"], [{
46
+ value: "900,255556",
47
+ thousandSeparator: ".",
48
+ decimalSeparator: ","
49
+ }, "900,25"], [{
50
+ value: 900.255556,
51
+ thousandSeparator: ".",
52
+ decimalSeparator: ",",
53
+ trimDecimals: false,
54
+ decimalSpaces: 6
55
+ }, "900,255556"], [{
56
+ value: "900,255556",
57
+ thousandSeparator: ".",
58
+ decimalSeparator: ",",
59
+ trimDecimals: false
60
+ }, "900,25"], [{
61
+ value: 900.25,
62
+ thousandSeparator: ".",
63
+ decimalSeparator: ",",
64
+ trimDecimals: false,
65
+ decimalSpaces: 3
66
+ }, "900,250"], [{
67
+ value: 900.25,
68
+ thousandSeparator: ".",
69
+ decimalSeparator: ",",
70
+ trimDecimals: false,
71
+ decimalSpaces: 3,
72
+ format: "long"
73
+ }, "900,250"], [{
74
+ value: 1150.6666667,
75
+ thousandSeparator: ",",
76
+ decimalSeparator: ".",
77
+ trimDecimals: true,
78
+ decimalSpaces: 2,
79
+ format: "long"
80
+ }, "1,150.66"], [{
81
+ value: "1150.6666667",
82
+ thousandSeparator: ",",
83
+ decimalSeparator: ".",
84
+ trimDecimals: true,
85
+ decimalSpaces: 2,
86
+ format: "long"
87
+ }, "1,150.66"], [{
88
+ value: 1150.6666667,
89
+ thousandSeparator: ",",
90
+ decimalSeparator: ".",
91
+ trimDecimals: true,
92
+ decimalSpaces: 2,
93
+ format: "short"
94
+ }, "1.2K"], [{
95
+ value: "1150.6666667",
96
+ thousandSeparator: ",",
97
+ decimalSeparator: ".",
98
+ trimDecimals: true,
99
+ decimalSpaces: 2,
100
+ format: "short"
101
+ }, "1.2K"], [{
102
+ value: 1150.0,
103
+ thousandSeparator: ",",
104
+ decimalSeparator: ".",
105
+ trimDecimals: true,
106
+ decimalSpaces: 2,
107
+ format: "short"
108
+ }, "1.1K"], [{
109
+ value: "1150.00000",
110
+ thousandSeparator: ",",
111
+ decimalSeparator: ".",
112
+ trimDecimals: true,
113
+ decimalSpaces: 2,
114
+ format: "short"
115
+ }, "1.1K"], [{
116
+ value: 1150.6,
117
+ thousandSeparator: ",",
118
+ decimalSeparator: ".",
119
+ trimDecimals: true,
120
+ decimalSpaces: 2,
121
+ format: "long"
122
+ }, "1,150.6"], [{
123
+ value: "1150.60",
124
+ thousandSeparator: ",",
125
+ decimalSeparator: ".",
126
+ trimDecimals: true,
127
+ decimalSpaces: 2,
128
+ format: "long"
129
+ }, "1,150.6"], [{
130
+ value: 1150.0,
131
+ thousandSeparator: ",",
132
+ decimalSeparator: ".",
133
+ trimDecimals: true,
134
+ decimalSpaces: 2,
135
+ format: "long"
136
+ }, "1,150"], [{
137
+ value: "1150.00",
138
+ thousandSeparator: ",",
139
+ decimalSeparator: ".",
140
+ trimDecimals: true,
141
+ decimalSpaces: 2,
142
+ format: "long"
143
+ }, "1,150"], [{
144
+ value: 110.155557,
145
+ thousandSeparator: ",",
146
+ decimalSeparator: ".",
147
+ trimDecimals: true,
148
+ decimalSpaces: 2,
149
+ format: "long"
150
+ }, "110.15"], [{
151
+ value: "110.155557",
152
+ thousandSeparator: ",",
153
+ decimalSeparator: ".",
154
+ trimDecimals: true,
155
+ decimalSpaces: 2,
156
+ format: "long"
157
+ }, "110.15"], [{
158
+ value: 110.155557,
159
+ thousandSeparator: ",",
160
+ decimalSeparator: ".",
161
+ trimDecimals: true,
162
+ decimalSpaces: 2,
163
+ format: "short"
164
+ }, "110.15"], [{
165
+ value: "110.155557",
166
+ thousandSeparator: ",",
167
+ decimalSeparator: ".",
168
+ trimDecimals: true,
169
+ decimalSpaces: 2,
170
+ format: "short"
171
+ }, "110.15"], [{
172
+ value: 1501000.155557,
173
+ thousandSeparator: ",",
174
+ decimalSeparator: ".",
175
+ trimDecimals: true,
176
+ decimalSpaces: 2,
177
+ format: "long"
178
+ }, "1,501,000.15"], [{
179
+ value: "1501000.155557",
180
+ thousandSeparator: ",",
181
+ decimalSeparator: ".",
182
+ trimDecimals: true,
183
+ decimalSpaces: 2,
184
+ format: "long"
185
+ }, "1,501,000.15"], [{
186
+ value: 1501000.155557,
187
+ thousandSeparator: ",",
188
+ decimalSeparator: ".",
189
+ trimDecimals: true,
190
+ decimalSpaces: 2,
191
+ format: "short"
192
+ }, "1.5M"], [{
193
+ value: "1501000.155557",
194
+ thousandSeparator: ",",
195
+ decimalSeparator: ".",
196
+ trimDecimals: true,
197
+ decimalSpaces: 2,
198
+ format: "short"
199
+ }, "1.5M"]])("should format currency advanced", function (params, expected) {
200
+ var value = params.value,
201
+ thousandSeparator = params.thousandSeparator,
202
+ decimalSeparator = params.decimalSeparator,
203
+ trimDecimals = params.trimDecimals,
204
+ decimalSpaces = params.decimalSpaces,
205
+ format = params.format;
206
+ expect((0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalSpaces, format)).toEqual(expected);
7
207
  });
8
- });
9
- describe("format currency with thousandseparator set to '.' and decimalSeparator to ','", function () {
10
- it.each([["", ""], ["10", "10"], ["1000", "1K"], ["1000,00", "1K"], ["1200,50", "1.2K"], ["1.200,00", "1.2K"], ["2.240,00", "2.2K"], ["22.240,00", "22.2K"], ["50.000.000,00", "50M"], ["-50.000,00", "-50K"], ["-1.200", "-1.2K"], ["-90.000.000,00", "-90M"]])("should format currency", function (value, expected) {
11
- expect((0, _currencyUtils.formatNumber)(value, ".")).toEqual(expected);
208
+
209
+ //fixedDecimalSpaces
210
+ it.each([[{
211
+ number: 123.456789,
212
+ decimalSpaces: 3
213
+ }, 123.456], [{
214
+ number: 123.3,
215
+ decimalSpaces: 2
216
+ }, 123.3], [{
217
+ number: 123.3,
218
+ decimalSpaces: 0
219
+ }, 123]])("should handle fixedDecimalSpaces", function (params, expected) {
220
+ expect((0, _currencyUtils.fixedDecimalSpaces)(params.number, params.decimalSpaces)).toBe(expected);
12
221
  });
13
- });
14
- describe("numberWithSeparator", function () {
15
- test("should format number with thousand separator", function () {
16
- var result = (0, _currencyUtils.numberWithSeparator)(1000, ",");
17
- expect(result).toBe("1,000");
222
+
223
+ //numberWithSeparator
224
+ it("should format number with thousand separator", function () {
225
+ var result = (0, _currencyUtils.numberWithSeparator)(1000.0.toFixed(3), ",", ".");
226
+ expect(result).toBe("1,000.000");
18
227
  });
19
- test("should format string number with thousand separator", function () {
228
+ it("should format string number with thousand separator", function () {
20
229
  var result = (0, _currencyUtils.numberWithSeparator)("1000", ",");
21
230
  expect(result).toBe("1,000");
22
231
  });
23
- test("should format decimal number with thousand separator and keep decimal part", function () {
232
+ it("should format decimal number with thousand separator and keep decimal part", function () {
24
233
  var result = (0, _currencyUtils.numberWithSeparator)(12345.67, ",");
25
234
  expect(result).toBe("12,345.67");
26
235
  });
27
- test("should not format when format is set to false", function () {
28
- var result = (0, _currencyUtils.numberWithSeparator)(1000, ",", false);
236
+ it("should not format when format is set to false", function () {
237
+ var result = (0, _currencyUtils.numberWithSeparator)(1000, ",", ".", false);
29
238
  expect(result).toBe(1000);
30
239
  });
31
- test("should handle zero with thousand separator", function () {
240
+ it("should handle zero with thousand separator", function () {
32
241
  var result = (0, _currencyUtils.numberWithSeparator)(0, ",");
33
242
  expect(result).toBe("0");
34
243
  });
35
- test("should handle negative number with thousand separator", function () {
244
+ it("should handle negative number with thousand separator", function () {
36
245
  var result = (0, _currencyUtils.numberWithSeparator)(-123456789, ",");
37
246
  expect(result).toBe("-123,456,789");
38
247
  });
39
- test("should not format", function () {
40
- var result = (0, _currencyUtils.numberWithSeparator)(123456789, ",", false);
248
+ it("should not format", function () {
249
+ var result = (0, _currencyUtils.numberWithSeparator)(123456789, ",", ".", false);
41
250
  expect(result).toBe(123456789);
42
251
  });
252
+
253
+ //getNumberFromString
254
+ it.each([[{
255
+ number: "1.000.000,256",
256
+ thousandSeparator: ".",
257
+ decimalSeparator: ","
258
+ }, 1000000.256], [{
259
+ number: 1000000.256,
260
+ thousandSeparator: ".",
261
+ decimalSeparator: ","
262
+ }, 1000000.256], [{
263
+ number: "1,000,000.256",
264
+ thousandSeparator: ",",
265
+ decimalSeparator: "."
266
+ }, 1000000.256], [{
267
+ number: ",256",
268
+ thousandSeparator: ".",
269
+ decimalSeparator: ","
270
+ }, 0.256], [{
271
+ number: "1562",
272
+ thousandSeparator: ".",
273
+ decimalSeparator: ","
274
+ }, 1562], [{
275
+ number: "1,2,3.4",
276
+ thousandSeparator: ".",
277
+ decimalSeparator: ","
278
+ }, 0], [{
279
+ number: "1562",
280
+ thousandSeparator: ",",
281
+ decimalSeparator: "."
282
+ }, 1562], [{
283
+ number: "-1.562,25",
284
+ thousandSeparator: ".",
285
+ decimalSeparator: ","
286
+ }, -1562.25], [{
287
+ number: "-1 562.25",
288
+ thousandSeparator: " ",
289
+ decimalSeparator: "."
290
+ }, -1562.25]])("should handle getNumberFromString", function (params, expected) {
291
+ var number = params.number,
292
+ thousandSeparator = params.thousandSeparator,
293
+ decimalSeparator = params.decimalSeparator;
294
+ expect((0, _currencyUtils.getNumberFromString)(number, thousandSeparator, decimalSeparator)).toBe(expected);
295
+ });
43
296
  });
44
297
  //# sourceMappingURL=currencyUtils.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"currencyUtils.test.js","names":["_currencyUtils","require","describe","it","each","value","expected","expect","formatNumber","toEqual","test","result","numberWithSeparator","toBe"],"sources":["../../../src/utils/currencyUtils.test.ts"],"sourcesContent":["import { formatNumber, numberWithSeparator } from \"./currencyUtils\";\n\ndescribe(\"format currency with thousandseparator set to ',' and decimalSeparator to '.'\", () => {\n it.each([\n [\"\", \"\"],\n [\"10\", \"10\"],\n [\"1000\", \"1K\"],\n [\"1000.00\", \"1K\"],\n [\"1200.50\", \"1.2K\"],\n [\"1,200.00\", \"1.2K\"],\n [\"2,240.00\", \"2.2K\"],\n [\"22,240.00\", \"22.2K\"],\n [\"50,000,000.00\", \"50M\"],\n [\"-50,000.00\", \"-50K\"],\n [\"-1,200\", \"-1.2K\"],\n [\"-90,000,000.00\", \"-90M\"],\n ])(\"should format currency\", (value, expected) => {\n expect(formatNumber(value, \",\")).toEqual(expected);\n });\n});\n\ndescribe(\"format currency with thousandseparator set to '.' and decimalSeparator to ','\", () => {\n it.each([\n [\"\", \"\"],\n [\"10\", \"10\"],\n [\"1000\", \"1K\"],\n [\"1000,00\", \"1K\"],\n [\"1200,50\", \"1.2K\"],\n [\"1.200,00\", \"1.2K\"],\n [\"2.240,00\", \"2.2K\"],\n [\"22.240,00\", \"22.2K\"],\n [\"50.000.000,00\", \"50M\"],\n [\"-50.000,00\", \"-50K\"],\n [\"-1.200\", \"-1.2K\"],\n [\"-90.000.000,00\", \"-90M\"],\n ])(\"should format currency\", (value, expected) => {\n expect(formatNumber(value, \".\")).toEqual(expected);\n });\n});\n\ndescribe(\"numberWithSeparator\", () => {\n test(\"should format number with thousand separator\", () => {\n const result = numberWithSeparator(1000, \",\");\n expect(result).toBe(\"1,000\");\n });\n\n test(\"should format string number with thousand separator\", () => {\n const result = numberWithSeparator(\"1000\", \",\");\n expect(result).toBe(\"1,000\");\n });\n\n test(\"should format decimal number with thousand separator and keep decimal part\", () => {\n const result = numberWithSeparator(12345.67, \",\");\n expect(result).toBe(\"12,345.67\");\n });\n\n test(\"should not format when format is set to false\", () => {\n const result = numberWithSeparator(1000, \",\", false);\n expect(result).toBe(1000);\n });\n\n test(\"should handle zero with thousand separator\", () => {\n const result = numberWithSeparator(0, \",\");\n expect(result).toBe(\"0\");\n });\n\n test(\"should handle negative number with thousand separator\", () => {\n const result = numberWithSeparator(-123456789, \",\");\n expect(result).toBe(\"-123,456,789\");\n });\n\n test(\"should not format\", () => {\n const result = numberWithSeparator(123456789, \",\", false);\n expect(result).toBe(123456789);\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"currencyUtils.test.js","names":["_currencyUtils","require","describe","it","each","value","thousandSeparator","decimalSeparator","trimDecimals","decimalSpaces","format","params","expected","expect","formatNumber","toEqual","number","fixedDecimalSpaces","toBe","result","numberWithSeparator","toFixed","getNumberFromString"],"sources":["../../../src/utils/currencyUtils.test.ts"],"sourcesContent":["import {\n formatNumber,\n getNumberFromString,\n numberWithSeparator,\n fixedDecimalSpaces,\n} from \"./currencyUtils\";\nimport { FormatNumberArgs } from \"./types\";\n\ndescribe(\"format currency with thousandseparator set to ',' and decimalSeparator to '.'\", () => {\n // please try to leave unformatted - ignore works for this block only\n // prettier-ignore\n it.each<[FormatNumberArgs, string]>([\n [{ value: \"\" }, \"\"],\n [{ value: \"10\" }, \"10\"],\n [{ value: \"1000\" }, \"1K\"],\n [{ value: \"1000.00\" }, \"1K\"],\n [{ value: \"1200.50\" }, \"1.2K\"],\n [{ value: \"1,200.00\" }, \"1.2K\"],\n [{ value: \"2,240.00\" }, \"2.2K\"],\n [{ value: \"22,240.00\" }, \"22.2K\"],\n [{ value: \"50,000,000.00\" }, \"50M\"],\n [{ value: \"-50,000.00\" }, \"-50K\"],\n [{ value: \"-1,200\" }, \"-1.2K\"],\n [{ value: \"-90,000,000.00\" }, \"-90M\"],\n [{ value: \"900.25\" }, \"900.25\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: \"900,25\", thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 900.255556, thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: \"900,255556\", thousandSeparator: \".\", decimalSeparator: \",\" }, \"900,25\"],\n [{ value: 900.255556, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 6 }, \"900,255556\"],\n [{ value: \"900,255556\", thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false }, \"900,25\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 3 }, \"900,250\"],\n [{ value: 900.25, thousandSeparator: \".\", decimalSeparator: \",\", trimDecimals: false, decimalSpaces: 3, format: \"long\" }, \"900,250\" ],\n [{ value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.66\" ],\n [{ value: \"1150.6666667\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.66\" ],\n [{ value: 1150.6666667, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.2K\" ],\n [{ value: \"1150.6666667\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.2K\" ],\n [{ value: 1150.0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.1K\" ],\n [{ value: \"1150.00000\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.1K\" ],\n [{ value: 1150.6, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.6\" ],\n [{ value: \"1150.60\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150.6\"],\n [{ value: 1150.0, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150\" ],\n [{ value: \"1150.00\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,150\"],\n [{ value: 110.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"110.15\" ],\n [{ value: \"110.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"110.15\" ],\n [{ value: 110.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"110.15\" ],\n [{ value: \"110.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"110.15\" ],\n [{ value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,501,000.15\" ],\n [{ value: \"1501000.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"long\" }, \"1,501,000.15\" ],\n [{ value: 1501000.155557, thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.5M\"],\n [{ value: \"1501000.155557\", thousandSeparator: \",\", decimalSeparator: \".\", trimDecimals: true, decimalSpaces: 2, format: \"short\" }, \"1.5M\" ],\n ])(\"should format currency advanced\", (params, expected) => {\n const {\n value,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n format,\n } = params;\n\n expect(\n formatNumber(\n value,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n format\n )\n ).toEqual(expected);\n });\n\n //fixedDecimalSpaces\n it.each<[{ number: number; decimalSpaces: number }, number]>([\n [{ number: 123.456789, decimalSpaces: 3 }, 123.456],\n [{ number: 123.3, decimalSpaces: 2 }, 123.3],\n [{ number: 123.3, decimalSpaces: 0 }, 123],\n ])(\"should handle fixedDecimalSpaces\", (params, expected) => {\n expect(fixedDecimalSpaces(params.number, params.decimalSpaces)).toBe(\n expected\n );\n });\n\n //numberWithSeparator\n it(\"should format number with thousand separator\", () => {\n const result = numberWithSeparator((1000.0).toFixed(3), \",\", \".\");\n expect(result).toBe(\"1,000.000\");\n });\n\n it(\"should format string number with thousand separator\", () => {\n const result = numberWithSeparator(\"1000\", \",\");\n expect(result).toBe(\"1,000\");\n });\n\n it(\"should format decimal number with thousand separator and keep decimal part\", () => {\n const result = numberWithSeparator(12345.67, \",\");\n expect(result).toBe(\"12,345.67\");\n });\n\n it(\"should not format when format is set to false\", () => {\n const result = numberWithSeparator(1000, \",\", \".\", false);\n expect(result).toBe(1000);\n });\n\n it(\"should handle zero with thousand separator\", () => {\n const result = numberWithSeparator(0, \",\");\n expect(result).toBe(\"0\");\n });\n\n it(\"should handle negative number with thousand separator\", () => {\n const result = numberWithSeparator(-123456789, \",\");\n expect(result).toBe(\"-123,456,789\");\n });\n\n it(\"should not format\", () => {\n const result = numberWithSeparator(123456789, \",\", \".\", false);\n expect(result).toBe(123456789);\n });\n\n //getNumberFromString\n it.each([\n [\n {\n number: \"1.000.000,256\",\n thousandSeparator: \".\",\n decimalSeparator: \",\",\n },\n 1000000.256,\n ],\n [\n { number: 1000000.256, thousandSeparator: \".\", decimalSeparator: \",\" },\n 1000000.256,\n ],\n [\n {\n number: \"1,000,000.256\",\n thousandSeparator: \",\",\n decimalSeparator: \".\",\n },\n 1000000.256,\n ],\n [{ number: \",256\", thousandSeparator: \".\", decimalSeparator: \",\" }, 0.256],\n [{ number: \"1562\", thousandSeparator: \".\", decimalSeparator: \",\" }, 1562],\n [{ number: \"1,2,3.4\", thousandSeparator: \".\", decimalSeparator: \",\" }, 0],\n [{ number: \"1562\", thousandSeparator: \",\", decimalSeparator: \".\" }, 1562],\n [\n { number: \"-1.562,25\", thousandSeparator: \".\", decimalSeparator: \",\" },\n -1562.25,\n ],\n [\n { number: \"-1 562.25\", thousandSeparator: \" \", decimalSeparator: \".\" },\n -1562.25,\n ],\n ])(\"should handle getNumberFromString\", (params, expected) => {\n const { number, thousandSeparator, decimalSeparator } = params;\n\n expect(\n getNumberFromString(number, thousandSeparator, decimalSeparator)\n ).toBe(expected);\n });\n});\n"],"mappings":"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"}
@@ -8,7 +8,8 @@ var _exportNames = {
8
8
  useResizeObserver: true,
9
9
  decimalToHours: true,
10
10
  formatNumber: true,
11
- numberWithSeparator: true
11
+ numberWithSeparator: true,
12
+ getNumberFromString: true
12
13
  };
13
14
  Object.defineProperty(exports, "decimalToHours", {
14
15
  enumerable: true,
@@ -22,6 +23,12 @@ Object.defineProperty(exports, "formatNumber", {
22
23
  return _currencyUtils.formatNumber;
23
24
  }
24
25
  });
26
+ Object.defineProperty(exports, "getNumberFromString", {
27
+ enumerable: true,
28
+ get: function get() {
29
+ return _currencyUtils.getNumberFromString;
30
+ }
31
+ });
25
32
  Object.defineProperty(exports, "numberWithSeparator", {
26
33
  enumerable: true,
27
34
  get: function get() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_layers","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_colors","_validation","_useForkRef","_interopRequireDefault","_useResizeObserver","_timeUtils","_currencyUtils","obj","__esModule","default"],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export * from \"./layers\";\nexport * from \"./colors\";\nexport * from \"./validation\";\nexport { default as useForkRef } from \"./useForkRef\";\nexport { default as useResizeObserver } from \"./useResizeObserver\";\nexport { decimalToHours } from \"./timeUtils\";\nexport { formatNumber, numberWithSeparator } from \"./currencyUtils\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAb,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,OAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,OAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,OAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,OAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,WAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,WAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,WAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,WAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,WAAA,GAAAC,sBAAA,CAAAhB,OAAA;AACA,IAAAiB,kBAAA,GAAAD,sBAAA,CAAAhB,OAAA;AACA,IAAAkB,UAAA,GAAAlB,OAAA;AACA,IAAAmB,cAAA,GAAAnB,OAAA;AAAoE,SAAAgB,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA"}
1
+ {"version":3,"file":"index.js","names":["_layers","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_colors","_validation","_useForkRef","_interopRequireDefault","_useResizeObserver","_timeUtils","_currencyUtils","obj","__esModule","default"],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export * from \"./layers\";\nexport * from \"./colors\";\nexport * from \"./validation\";\nexport { default as useForkRef } from \"./useForkRef\";\nexport { default as useResizeObserver } from \"./useResizeObserver\";\nexport { decimalToHours } from \"./timeUtils\";\nexport {\n formatNumber,\n numberWithSeparator,\n getNumberFromString,\n} from \"./currencyUtils\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAb,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,OAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,OAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,OAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,OAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,WAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,WAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,WAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,WAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,WAAA,GAAAC,sBAAA,CAAAhB,OAAA;AACA,IAAAiB,kBAAA,GAAAD,sBAAA,CAAAhB,OAAA;AACA,IAAAkB,UAAA,GAAAlB,OAAA;AACA,IAAAmB,cAAA,GAAAnB,OAAA;AAIyB,SAAAgB,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/utils/types.ts"],"sourcesContent":["import React from \"react\";\n\n// Source: https://github.com/emotion-js/emotion/blob/master/packages/styled-base/types/helper.d.ts\n// A more precise version of just React.ComponentPropsWithoutRef on its own\nexport type PropsOf<\n C extends keyof JSX.IntrinsicElements | React.JSXElementConstructor<unknown>\n> = JSX.LibraryManagedAttributes<C, React.ComponentPropsWithoutRef<C>>;\n\ntype AsProp<C extends React.ElementType> = {\n /**\n * An override of the default HTML tag.\n * Can also be another React component.\n */\n as?: C;\n};\n\n/**\n * Allows for extending a set of props (`ExtendedProps`) by an overriding set of props\n * (`OverrideProps`), ensuring that any duplicates are overridden by the overriding\n * set of props.\n */\nexport type ExtendableProps<\n ExtendedProps = Record<string, unknown>,\n OverrideProps = Record<string, unknown>\n> = OverrideProps & Omit<ExtendedProps, keyof OverrideProps>;\n\n/**\n * Allows for inheriting the props from the specified element type so that\n * props like children, className & style work, as well as element-specific\n * attributes like aria roles. The component (`C`) must be passed in.\n */\nexport type InheritableElementProps<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = ExtendableProps<PropsOf<C>, Props>;\n\n/**\n * A more sophisticated version of `InheritableElementProps` where\n * the passed in `as` prop will determine which props can be included\n */\nexport type PolymorphicComponentProps<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = InheritableElementProps<C, Props & AsProp<C>>;\n\n/**\n * Utility type to extract the `ref` prop from a polymorphic component\n */\nexport type PolymorphicRef<C extends React.ElementType> =\n React.ComponentPropsWithRef<C>[\"ref\"];\n/**\n * A wrapper of `PolymorphicComponentProps` that also includes the `ref`\n * prop for the polymorphic component\n */\nexport type PolymorphicComponentPropsWithRef<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = PolymorphicComponentProps<C, Props> & { ref?: PolymorphicRef<C> };\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/utils/types.ts"],"sourcesContent":["import React from \"react\";\n\n// Source: https://github.com/emotion-js/emotion/blob/master/packages/styled-base/types/helper.d.ts\n// A more precise version of just React.ComponentPropsWithoutRef on its own\nexport type PropsOf<\n C extends keyof JSX.IntrinsicElements | React.JSXElementConstructor<unknown>\n> = JSX.LibraryManagedAttributes<C, React.ComponentPropsWithoutRef<C>>;\n\ntype AsProp<C extends React.ElementType> = {\n /**\n * An override of the default HTML tag.\n * Can also be another React component.\n */\n as?: C;\n};\n\n/**\n * Allows for extending a set of props (`ExtendedProps`) by an overriding set of props\n * (`OverrideProps`), ensuring that any duplicates are overridden by the overriding\n * set of props.\n */\nexport type ExtendableProps<\n ExtendedProps = Record<string, unknown>,\n OverrideProps = Record<string, unknown>\n> = OverrideProps & Omit<ExtendedProps, keyof OverrideProps>;\n\n/**\n * Allows for inheriting the props from the specified element type so that\n * props like children, className & style work, as well as element-specific\n * attributes like aria roles. The component (`C`) must be passed in.\n */\nexport type InheritableElementProps<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = ExtendableProps<PropsOf<C>, Props>;\n\n/**\n * A more sophisticated version of `InheritableElementProps` where\n * the passed in `as` prop will determine which props can be included\n */\nexport type PolymorphicComponentProps<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = InheritableElementProps<C, Props & AsProp<C>>;\n\n/**\n * Utility type to extract the `ref` prop from a polymorphic component\n */\nexport type PolymorphicRef<C extends React.ElementType> =\n React.ComponentPropsWithRef<C>[\"ref\"];\n/**\n * A wrapper of `PolymorphicComponentProps` that also includes the `ref`\n * prop for the polymorphic component\n */\nexport type PolymorphicComponentPropsWithRef<\n C extends React.ElementType,\n Props = Record<string, unknown>\n> = PolymorphicComponentProps<C, Props> & { ref?: PolymorphicRef<C> };\n\nexport interface FormatNumberArgs {\n value: string | number;\n thousandSeparator?: \",\" | \".\" | \" \";\n decimalSeparator?: \",\" | \".\";\n trimDecimals?: boolean;\n decimalSpaces?: number;\n format?: \"long\" | \"short\";\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"EditableCurrency.d.ts","sourceRoot":"","sources":["../../../../src/components/EditableCurrency/EditableCurrency.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAmB,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAG/E,MAAM,WAAW,qBACf,SAAQ,wBAAwB,EAC9B,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,8FAqF5B,CAAC"}
1
+ {"version":3,"file":"EditableCurrency.d.ts","sourceRoot":"","sources":["../../../../src/components/EditableCurrency/EditableCurrency.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAmB,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAG/E,MAAM,WAAW,qBACf,SAAQ,wBAAwB,EAC9B,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,8FAgG5B,CAAC"}
@@ -20,6 +20,7 @@ export const EditableCurrency = /*#__PURE__*/React.forwardRef((_ref, ref) => {
20
20
  onEnterKeyPress: externalEnterKeyPress,
21
21
  onClick: externalOnClick,
22
22
  onChange: externalOnChange,
23
+ trimDecimals = true,
23
24
  ...rest
24
25
  } = _ref;
25
26
  const inputRef = useRef(null);
@@ -39,7 +40,8 @@ export const EditableCurrency = /*#__PURE__*/React.forwardRef((_ref, ref) => {
39
40
  onCancel,
40
41
  onChange: externalOnChange,
41
42
  onEnterKeyPress: externalEnterKeyPress,
42
- onClick: externalOnClick
43
+ onClick: externalOnClick,
44
+ trimDecimals
43
45
  }, inputRef);
44
46
  const {
45
47
  value,
@@ -53,10 +55,10 @@ export const EditableCurrency = /*#__PURE__*/React.forwardRef((_ref, ref) => {
53
55
  unformattedValue
54
56
  } = inputProps;
55
57
  const formattedValue = useMemo(() => {
56
- return focused ? value : numberWithSeparator(value != null ? value : "", thousandSeparator);
57
- }, [focused, value, thousandSeparator]);
58
+ return focused ? value : numberWithSeparator(value != null ? value : "", thousandSeparator, decimalSeparator);
59
+ }, [focused, value, thousandSeparator, decimalSeparator]);
58
60
  return /*#__PURE__*/React.createElement(Tooltip, {
59
- title: unformattedValue,
61
+ title: numberWithSeparator(unformattedValue != null ? unformattedValue : "", thousandSeparator, decimalSeparator),
60
62
  disable: focused
61
63
  }, /*#__PURE__*/React.createElement(EditableContent, {
62
64
  disabled: disabled,
@@ -1 +1 @@
1
- {"version":3,"file":"EditableCurrency.js","names":["React","useMemo","useRef","useInputNumber","numberWithSeparator","useForkRef","EditableContent","Tooltip","EditableCurrency","forwardRef","_ref","ref","decimalLength","decimalSeparator","disableAbbreviation","disabled","disableMacros","step","thousandSeparator","value","defaultValue","onSave","onCancel","className","allowEmptyValue","onEnterKeyPress","externalEnterKeyPress","onClick","externalOnClick","onChange","externalOnChange","rest","inputRef","handleRef","inputProps","onBlur","onKeyDown","onDoubleClick","onFocus","focused","unformattedValue","formattedValue","createElement","title","disable","displayName"],"sources":["../../../../src/components/EditableCurrency/EditableCurrency.tsx"],"sourcesContent":["import React, { useMemo, useRef } from \"react\";\n\nimport { IInputNumber, useInputNumber } from \"../../hooks\";\nimport { numberWithSeparator, useForkRef } from \"../../utils\";\nimport { EditableContent, EditableContentInterface } from \"../EditableContent\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport interface EditableCurrencyProps\n extends EditableContentInterface,\n Omit<IInputNumber, \"limit\"> {\n className?: string;\n}\n\nexport const EditableCurrency = React.forwardRef<\n HTMLDivElement,\n EditableCurrencyProps\n>(\n (\n {\n decimalLength = 2,\n decimalSeparator = \".\",\n disableAbbreviation = false,\n disabled,\n disableMacros = false,\n step = 1,\n thousandSeparator = \",\",\n value: defaultValue,\n onSave,\n onCancel,\n className,\n allowEmptyValue,\n onEnterKeyPress: externalEnterKeyPress,\n onClick: externalOnClick,\n onChange: externalOnChange,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const { inputProps } = useInputNumber(\n {\n decimalLength,\n decimalSeparator,\n disableAbbreviation,\n disableMacros,\n step,\n thousandSeparator,\n value: defaultValue,\n onSave,\n allowEmptyValue,\n onCancel,\n onChange: externalOnChange,\n onEnterKeyPress: externalEnterKeyPress,\n onClick: externalOnClick,\n },\n inputRef\n );\n\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n focused,\n unformattedValue,\n } = inputProps;\n\n const formattedValue = useMemo(() => {\n return focused\n ? value\n : numberWithSeparator(value ?? \"\", thousandSeparator);\n }, [focused, value, thousandSeparator]);\n\n return (\n <Tooltip title={unformattedValue as string} disable={focused}>\n <EditableContent\n disabled={disabled}\n ref={handleRef}\n className={className}\n inputProps={{\n value: formattedValue,\n onBlur: onBlur,\n onChange: onChange,\n onKeyDown: onKeyDown,\n onClick: onClick,\n onFocus: onFocus,\n onDoubleClick: onDoubleClick,\n ...rest,\n }}\n />\n </Tooltip>\n );\n }\n);\n\nEditableCurrency.displayName = \"EditableCurrency\";\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAE9C,SAAuBC,cAAc,QAAQ,aAAa;AAC1D,SAASC,mBAAmB,EAAEC,UAAU,QAAQ,aAAa;AAC7D,SAASC,eAAe,QAAkC,oBAAoB;AAC9E,SAASC,OAAO,QAAQ,YAAY;AAQpC,OAAO,MAAMC,gBAAgB,gBAAGR,KAAK,CAACS,UAAU,CAI9C,CAAAC,IAAA,EAmBEC,GAAG,KACA;EAAA,IAnBH;IACEC,aAAa,GAAG,CAAC;IACjBC,gBAAgB,GAAG,GAAG;IACtBC,mBAAmB,GAAG,KAAK;IAC3BC,QAAQ;IACRC,aAAa,GAAG,KAAK;IACrBC,IAAI,GAAG,CAAC;IACRC,iBAAiB,GAAG,GAAG;IACvBC,KAAK,EAAEC,YAAY;IACnBC,MAAM;IACNC,QAAQ;IACRC,SAAS;IACTC,eAAe;IACfC,eAAe,EAAEC,qBAAqB;IACtCC,OAAO,EAAEC,eAAe;IACxBC,QAAQ,EAAEC,gBAAgB;IAC1B,GAAGC;EACL,CAAC,GAAArB,IAAA;EAGD,MAAMsB,QAAQ,GAAG9B,MAAM,CAAmB,IAAI,CAAC;EAC/C,MAAM+B,SAAS,GAAG5B,UAAU,CAACM,GAAG,EAAEqB,QAAQ,CAAC;EAE3C,MAAM;IAAEE;EAAW,CAAC,GAAG/B,cAAc,CACnC;IACES,aAAa;IACbC,gBAAgB;IAChBC,mBAAmB;IACnBE,aAAa;IACbC,IAAI;IACJC,iBAAiB;IACjBC,KAAK,EAAEC,YAAY;IACnBC,MAAM;IACNG,eAAe;IACfF,QAAQ;IACRO,QAAQ,EAAEC,gBAAgB;IAC1BL,eAAe,EAAEC,qBAAqB;IACtCC,OAAO,EAAEC;EACX,CAAC,EACDI,QACF,CAAC;EAED,MAAM;IACJb,KAAK;IACLgB,MAAM;IACNC,SAAS;IACTP,QAAQ;IACRF,OAAO;IACPU,aAAa;IACbC,OAAO;IACPC,OAAO;IACPC;EACF,CAAC,GAAGN,UAAU;EAEd,MAAMO,cAAc,GAAGxC,OAAO,CAAC,MAAM;IACnC,OAAOsC,OAAO,GACVpB,KAAK,GACLf,mBAAmB,CAACe,KAAK,WAALA,KAAK,GAAI,EAAE,EAAED,iBAAiB,CAAC;EACzD,CAAC,EAAE,CAACqB,OAAO,EAAEpB,KAAK,EAAED,iBAAiB,CAAC,CAAC;EAEvC,oBACElB,KAAA,CAAA0C,aAAA,CAACnC,OAAO;IAACoC,KAAK,EAAEH,gBAA2B;IAACI,OAAO,EAAEL;EAAQ,gBAC3DvC,KAAA,CAAA0C,aAAA,CAACpC,eAAe;IACdS,QAAQ,EAAEA,QAAS;IACnBJ,GAAG,EAAEsB,SAAU;IACfV,SAAS,EAAEA,SAAU;IACrBW,UAAU,EAAE;MACVf,KAAK,EAAEsB,cAAc;MACrBN,MAAM,EAAEA,MAAM;MACdN,QAAQ,EAAEA,QAAQ;MAClBO,SAAS,EAAEA,SAAS;MACpBT,OAAO,EAAEA,OAAO;MAChBW,OAAO,EAAEA,OAAO;MAChBD,aAAa,EAAEA,aAAa;MAC5B,GAAGN;IACL;EAAE,CACH,CACM,CAAC;AAEd,CACF,CAAC;AAEDvB,gBAAgB,CAACqC,WAAW,GAAG,kBAAkB"}
1
+ {"version":3,"file":"EditableCurrency.js","names":["React","useMemo","useRef","useInputNumber","numberWithSeparator","useForkRef","EditableContent","Tooltip","EditableCurrency","forwardRef","_ref","ref","decimalLength","decimalSeparator","disableAbbreviation","disabled","disableMacros","step","thousandSeparator","value","defaultValue","onSave","onCancel","className","allowEmptyValue","onEnterKeyPress","externalEnterKeyPress","onClick","externalOnClick","onChange","externalOnChange","trimDecimals","rest","inputRef","handleRef","inputProps","onBlur","onKeyDown","onDoubleClick","onFocus","focused","unformattedValue","formattedValue","createElement","title","disable","displayName"],"sources":["../../../../src/components/EditableCurrency/EditableCurrency.tsx"],"sourcesContent":["import React, { useMemo, useRef } from \"react\";\n\nimport { IInputNumber, useInputNumber } from \"../../hooks\";\nimport { numberWithSeparator, useForkRef } from \"../../utils\";\nimport { EditableContent, EditableContentInterface } from \"../EditableContent\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport interface EditableCurrencyProps\n extends EditableContentInterface,\n Omit<IInputNumber, \"limit\"> {\n className?: string;\n}\n\nexport const EditableCurrency = React.forwardRef<\n HTMLDivElement,\n EditableCurrencyProps\n>(\n (\n {\n decimalLength = 2,\n decimalSeparator = \".\",\n disableAbbreviation = false,\n disabled,\n disableMacros = false,\n step = 1,\n thousandSeparator = \",\",\n value: defaultValue,\n onSave,\n onCancel,\n className,\n allowEmptyValue,\n onEnterKeyPress: externalEnterKeyPress,\n onClick: externalOnClick,\n onChange: externalOnChange,\n trimDecimals = true,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const { inputProps } = useInputNumber(\n {\n decimalLength,\n decimalSeparator,\n disableAbbreviation,\n disableMacros,\n step,\n thousandSeparator,\n value: defaultValue,\n onSave,\n allowEmptyValue,\n onCancel,\n onChange: externalOnChange,\n onEnterKeyPress: externalEnterKeyPress,\n onClick: externalOnClick,\n trimDecimals,\n },\n inputRef\n );\n\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n focused,\n unformattedValue,\n } = inputProps;\n\n const formattedValue = useMemo(() => {\n return focused\n ? value\n : numberWithSeparator(value ?? \"\", thousandSeparator, decimalSeparator);\n }, [focused, value, thousandSeparator, decimalSeparator]);\n\n return (\n <Tooltip\n title={\n numberWithSeparator(\n unformattedValue ?? \"\",\n thousandSeparator,\n decimalSeparator\n ) as string\n }\n disable={focused}\n >\n <EditableContent\n disabled={disabled}\n ref={handleRef}\n className={className}\n inputProps={{\n value: formattedValue,\n onBlur: onBlur,\n onChange: onChange,\n onKeyDown: onKeyDown,\n onClick: onClick,\n onFocus: onFocus,\n onDoubleClick: onDoubleClick,\n ...rest,\n }}\n />\n </Tooltip>\n );\n }\n);\n\nEditableCurrency.displayName = \"EditableCurrency\";\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAE9C,SAAuBC,cAAc,QAAQ,aAAa;AAC1D,SAASC,mBAAmB,EAAEC,UAAU,QAAQ,aAAa;AAC7D,SAASC,eAAe,QAAkC,oBAAoB;AAC9E,SAASC,OAAO,QAAQ,YAAY;AAQpC,OAAO,MAAMC,gBAAgB,gBAAGR,KAAK,CAACS,UAAU,CAI9C,CAAAC,IAAA,EAoBEC,GAAG,KACA;EAAA,IApBH;IACEC,aAAa,GAAG,CAAC;IACjBC,gBAAgB,GAAG,GAAG;IACtBC,mBAAmB,GAAG,KAAK;IAC3BC,QAAQ;IACRC,aAAa,GAAG,KAAK;IACrBC,IAAI,GAAG,CAAC;IACRC,iBAAiB,GAAG,GAAG;IACvBC,KAAK,EAAEC,YAAY;IACnBC,MAAM;IACNC,QAAQ;IACRC,SAAS;IACTC,eAAe;IACfC,eAAe,EAAEC,qBAAqB;IACtCC,OAAO,EAAEC,eAAe;IACxBC,QAAQ,EAAEC,gBAAgB;IAC1BC,YAAY,GAAG,IAAI;IACnB,GAAGC;EACL,CAAC,GAAAtB,IAAA;EAGD,MAAMuB,QAAQ,GAAG/B,MAAM,CAAmB,IAAI,CAAC;EAC/C,MAAMgC,SAAS,GAAG7B,UAAU,CAACM,GAAG,EAAEsB,QAAQ,CAAC;EAE3C,MAAM;IAAEE;EAAW,CAAC,GAAGhC,cAAc,CACnC;IACES,aAAa;IACbC,gBAAgB;IAChBC,mBAAmB;IACnBE,aAAa;IACbC,IAAI;IACJC,iBAAiB;IACjBC,KAAK,EAAEC,YAAY;IACnBC,MAAM;IACNG,eAAe;IACfF,QAAQ;IACRO,QAAQ,EAAEC,gBAAgB;IAC1BL,eAAe,EAAEC,qBAAqB;IACtCC,OAAO,EAAEC,eAAe;IACxBG;EACF,CAAC,EACDE,QACF,CAAC;EAED,MAAM;IACJd,KAAK;IACLiB,MAAM;IACNC,SAAS;IACTR,QAAQ;IACRF,OAAO;IACPW,aAAa;IACbC,OAAO;IACPC,OAAO;IACPC;EACF,CAAC,GAAGN,UAAU;EAEd,MAAMO,cAAc,GAAGzC,OAAO,CAAC,MAAM;IACnC,OAAOuC,OAAO,GACVrB,KAAK,GACLf,mBAAmB,CAACe,KAAK,WAALA,KAAK,GAAI,EAAE,EAAED,iBAAiB,EAAEL,gBAAgB,CAAC;EAC3E,CAAC,EAAE,CAAC2B,OAAO,EAAErB,KAAK,EAAED,iBAAiB,EAAEL,gBAAgB,CAAC,CAAC;EAEzD,oBACEb,KAAA,CAAA2C,aAAA,CAACpC,OAAO;IACNqC,KAAK,EACHxC,mBAAmB,CACjBqC,gBAAgB,WAAhBA,gBAAgB,GAAI,EAAE,EACtBvB,iBAAiB,EACjBL,gBACF,CACD;IACDgC,OAAO,EAAEL;EAAQ,gBAEjBxC,KAAA,CAAA2C,aAAA,CAACrC,eAAe;IACdS,QAAQ,EAAEA,QAAS;IACnBJ,GAAG,EAAEuB,SAAU;IACfX,SAAS,EAAEA,SAAU;IACrBY,UAAU,EAAE;MACVhB,KAAK,EAAEuB,cAAc;MACrBN,MAAM,EAAEA,MAAM;MACdP,QAAQ,EAAEA,QAAQ;MAClBQ,SAAS,EAAEA,SAAS;MACpBV,OAAO,EAAEA,OAAO;MAChBY,OAAO,EAAEA,OAAO;MAChBD,aAAa,EAAEA,aAAa;MAC5B,GAAGN;IACL;EAAE,CACH,CACM,CAAC;AAEd,CACF,CAAC;AAEDxB,gBAAgB,CAACsC,WAAW,GAAG,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"InputNumber.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/InputNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAElD,OAAO,EAAS,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAC;AAG3D,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC,EACrD,YAAY;CAAG;AAEnB,eAAO,MAAM,WAAW,2FA6EvB,CAAC"}
1
+ {"version":3,"file":"InputNumber.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/InputNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAElD,OAAO,EAAS,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAC;AAG3D,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC,EACrD,YAAY;CAAG;AAEnB,eAAO,MAAM,WAAW,2FA+EvB,CAAC"}
@@ -22,6 +22,7 @@ export const InputNumber = /*#__PURE__*/forwardRef((_ref, ref) => {
22
22
  onClick: externalOnClick,
23
23
  limit,
24
24
  placeholder,
25
+ trimDecimals = true,
25
26
  ...rest
26
27
  } = _ref;
27
28
  const inputRef = useRef(null);
@@ -42,7 +43,8 @@ export const InputNumber = /*#__PURE__*/forwardRef((_ref, ref) => {
42
43
  onCancel,
43
44
  onSave,
44
45
  allowEmptyValue,
45
- limit
46
+ limit,
47
+ trimDecimals
46
48
  }, inputRef);
47
49
  const {
48
50
  value,
@@ -1 +1 @@
1
- {"version":3,"file":"InputNumber.js","names":["React","forwardRef","useRef","Input","useInputNumber","useForkRef","InputNumber","_ref","ref","decimalLength","decimalSeparator","disableAbbreviation","disabled","disableMacros","invalid","step","thousandSeparator","value","defaultValue","onCancel","onSave","onEnterKeyPress","externalEnterKeyPress","allowEmptyValue","onChange","externalOnChange","onClick","externalOnClick","limit","placeholder","rest","inputRef","handleRef","inputProps","onBlur","onKeyDown","onDoubleClick","onFocus","createElement","_extends","type","displayName"],"sources":["../../../../src/components/Input/InputNumber.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from \"react\";\n\nimport { Input, InputProps } from \"./Input\";\nimport { IInputNumber, useInputNumber } from \"../../hooks\";\nimport { useForkRef } from \"../../utils\";\n\nexport interface InputNumberProps\n extends Omit<InputProps, \"value\" | \"onChange\" | \"step\">,\n IInputNumber {}\n\nexport const InputNumber = forwardRef<HTMLInputElement, InputNumberProps>(\n (\n {\n decimalLength = 2,\n decimalSeparator = \".\",\n disableAbbreviation = false,\n disabled,\n disableMacros = false,\n invalid,\n step = 1,\n thousandSeparator = \",\",\n value: defaultValue,\n onCancel,\n onSave,\n onEnterKeyPress: externalEnterKeyPress,\n allowEmptyValue,\n onChange: externalOnChange,\n onClick: externalOnClick,\n limit,\n placeholder,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const { inputProps } = useInputNumber(\n {\n decimalLength,\n decimalSeparator,\n disableAbbreviation,\n disableMacros,\n step,\n thousandSeparator,\n onEnterKeyPress: externalEnterKeyPress,\n onChange: externalOnChange,\n onClick: externalOnClick,\n value: defaultValue,\n onCancel,\n onSave,\n allowEmptyValue,\n limit,\n },\n inputRef\n );\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n } = inputProps;\n\n return (\n <Input\n {...rest}\n ref={handleRef}\n placeholder={placeholder}\n value={value}\n type=\"text\"\n disabled={disabled}\n invalid={invalid}\n onChange={onChange}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onFocus={onFocus}\n aria-placeholder={placeholder}\n aria-disabled={disabled}\n aria-invalid={invalid}\n />\n );\n }\n);\n\nInputNumber.displayName = \"InputNumber\";\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AAEjD,SAASC,KAAK,QAAoB,SAAS;AAC3C,SAAuBC,cAAc,QAAQ,aAAa;AAC1D,SAASC,UAAU,QAAQ,aAAa;AAMxC,OAAO,MAAMC,WAAW,gBAAGL,UAAU,CACnC,CAAAM,IAAA,EAqBEC,GAAG,KACA;EAAA,IArBH;IACEC,aAAa,GAAG,CAAC;IACjBC,gBAAgB,GAAG,GAAG;IACtBC,mBAAmB,GAAG,KAAK;IAC3BC,QAAQ;IACRC,aAAa,GAAG,KAAK;IACrBC,OAAO;IACPC,IAAI,GAAG,CAAC;IACRC,iBAAiB,GAAG,GAAG;IACvBC,KAAK,EAAEC,YAAY;IACnBC,QAAQ;IACRC,MAAM;IACNC,eAAe,EAAEC,qBAAqB;IACtCC,eAAe;IACfC,QAAQ,EAAEC,gBAAgB;IAC1BC,OAAO,EAAEC,eAAe;IACxBC,KAAK;IACLC,WAAW;IACX,GAAGC;EACL,CAAC,GAAAvB,IAAA;EAGD,MAAMwB,QAAQ,GAAG7B,MAAM,CAA0B,IAAI,CAAC;EACtD,MAAM8B,SAAS,GAAG3B,UAAU,CAACG,GAAG,EAAEuB,QAAQ,CAAC;EAE3C,MAAM;IAAEE;EAAW,CAAC,GAAG7B,cAAc,CACnC;IACEK,aAAa;IACbC,gBAAgB;IAChBC,mBAAmB;IACnBE,aAAa;IACbE,IAAI;IACJC,iBAAiB;IACjBK,eAAe,EAAEC,qBAAqB;IACtCE,QAAQ,EAAEC,gBAAgB;IAC1BC,OAAO,EAAEC,eAAe;IACxBV,KAAK,EAAEC,YAAY;IACnBC,QAAQ;IACRC,MAAM;IACNG,eAAe;IACfK;EACF,CAAC,EACDG,QACF,CAAC;EACD,MAAM;IACJd,KAAK;IACLiB,MAAM;IACNC,SAAS;IACTX,QAAQ;IACRE,OAAO;IACPU,aAAa;IACbC;EACF,CAAC,GAAGJ,UAAU;EAEd,oBACEjC,KAAA,CAAAsC,aAAA,CAACnC,KAAK,EAAAoC,QAAA,KACAT,IAAI;IACRtB,GAAG,EAAEwB,SAAU;IACfH,WAAW,EAAEA,WAAY;IACzBZ,KAAK,EAAEA,KAAM;IACbuB,IAAI,EAAC,MAAM;IACX5B,QAAQ,EAAEA,QAAS;IACnBE,OAAO,EAAEA,OAAQ;IACjBU,QAAQ,EAAEA,QAAS;IACnBU,MAAM,EAAEA,MAAO;IACfC,SAAS,EAAEA,SAAU;IACrBT,OAAO,EAAEA,OAAQ;IACjBU,aAAa,EAAEA,aAAc;IAC7BC,OAAO,EAAEA,OAAQ;IACjB,oBAAkBR,WAAY;IAC9B,iBAAejB,QAAS;IACxB,gBAAcE;EAAQ,EACvB,CAAC;AAEN,CACF,CAAC;AAEDR,WAAW,CAACmC,WAAW,GAAG,aAAa"}
1
+ {"version":3,"file":"InputNumber.js","names":["React","forwardRef","useRef","Input","useInputNumber","useForkRef","InputNumber","_ref","ref","decimalLength","decimalSeparator","disableAbbreviation","disabled","disableMacros","invalid","step","thousandSeparator","value","defaultValue","onCancel","onSave","onEnterKeyPress","externalEnterKeyPress","allowEmptyValue","onChange","externalOnChange","onClick","externalOnClick","limit","placeholder","trimDecimals","rest","inputRef","handleRef","inputProps","onBlur","onKeyDown","onDoubleClick","onFocus","createElement","_extends","type","displayName"],"sources":["../../../../src/components/Input/InputNumber.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from \"react\";\n\nimport { Input, InputProps } from \"./Input\";\nimport { IInputNumber, useInputNumber } from \"../../hooks\";\nimport { useForkRef } from \"../../utils\";\n\nexport interface InputNumberProps\n extends Omit<InputProps, \"value\" | \"onChange\" | \"step\">,\n IInputNumber {}\n\nexport const InputNumber = forwardRef<HTMLInputElement, InputNumberProps>(\n (\n {\n decimalLength = 2,\n decimalSeparator = \".\",\n disableAbbreviation = false,\n disabled,\n disableMacros = false,\n invalid,\n step = 1,\n thousandSeparator = \",\",\n value: defaultValue,\n onCancel,\n onSave,\n onEnterKeyPress: externalEnterKeyPress,\n allowEmptyValue,\n onChange: externalOnChange,\n onClick: externalOnClick,\n limit,\n placeholder,\n trimDecimals = true,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const { inputProps } = useInputNumber(\n {\n decimalLength,\n decimalSeparator,\n disableAbbreviation,\n disableMacros,\n step,\n thousandSeparator,\n onEnterKeyPress: externalEnterKeyPress,\n onChange: externalOnChange,\n onClick: externalOnClick,\n value: defaultValue,\n onCancel,\n onSave,\n allowEmptyValue,\n limit,\n trimDecimals,\n },\n inputRef\n );\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n } = inputProps;\n\n return (\n <Input\n {...rest}\n ref={handleRef}\n placeholder={placeholder}\n value={value}\n type=\"text\"\n disabled={disabled}\n invalid={invalid}\n onChange={onChange}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onFocus={onFocus}\n aria-placeholder={placeholder}\n aria-disabled={disabled}\n aria-invalid={invalid}\n />\n );\n }\n);\n\nInputNumber.displayName = \"InputNumber\";\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AAEjD,SAASC,KAAK,QAAoB,SAAS;AAC3C,SAAuBC,cAAc,QAAQ,aAAa;AAC1D,SAASC,UAAU,QAAQ,aAAa;AAMxC,OAAO,MAAMC,WAAW,gBAAGL,UAAU,CACnC,CAAAM,IAAA,EAsBEC,GAAG,KACA;EAAA,IAtBH;IACEC,aAAa,GAAG,CAAC;IACjBC,gBAAgB,GAAG,GAAG;IACtBC,mBAAmB,GAAG,KAAK;IAC3BC,QAAQ;IACRC,aAAa,GAAG,KAAK;IACrBC,OAAO;IACPC,IAAI,GAAG,CAAC;IACRC,iBAAiB,GAAG,GAAG;IACvBC,KAAK,EAAEC,YAAY;IACnBC,QAAQ;IACRC,MAAM;IACNC,eAAe,EAAEC,qBAAqB;IACtCC,eAAe;IACfC,QAAQ,EAAEC,gBAAgB;IAC1BC,OAAO,EAAEC,eAAe;IACxBC,KAAK;IACLC,WAAW;IACXC,YAAY,GAAG,IAAI;IACnB,GAAGC;EACL,CAAC,GAAAxB,IAAA;EAGD,MAAMyB,QAAQ,GAAG9B,MAAM,CAA0B,IAAI,CAAC;EACtD,MAAM+B,SAAS,GAAG5B,UAAU,CAACG,GAAG,EAAEwB,QAAQ,CAAC;EAE3C,MAAM;IAAEE;EAAW,CAAC,GAAG9B,cAAc,CACnC;IACEK,aAAa;IACbC,gBAAgB;IAChBC,mBAAmB;IACnBE,aAAa;IACbE,IAAI;IACJC,iBAAiB;IACjBK,eAAe,EAAEC,qBAAqB;IACtCE,QAAQ,EAAEC,gBAAgB;IAC1BC,OAAO,EAAEC,eAAe;IACxBV,KAAK,EAAEC,YAAY;IACnBC,QAAQ;IACRC,MAAM;IACNG,eAAe;IACfK,KAAK;IACLE;EACF,CAAC,EACDE,QACF,CAAC;EACD,MAAM;IACJf,KAAK;IACLkB,MAAM;IACNC,SAAS;IACTZ,QAAQ;IACRE,OAAO;IACPW,aAAa;IACbC;EACF,CAAC,GAAGJ,UAAU;EAEd,oBACElC,KAAA,CAAAuC,aAAA,CAACpC,KAAK,EAAAqC,QAAA,KACAT,IAAI;IACRvB,GAAG,EAAEyB,SAAU;IACfJ,WAAW,EAAEA,WAAY;IACzBZ,KAAK,EAAEA,KAAM;IACbwB,IAAI,EAAC,MAAM;IACX7B,QAAQ,EAAEA,QAAS;IACnBE,OAAO,EAAEA,OAAQ;IACjBU,QAAQ,EAAEA,QAAS;IACnBW,MAAM,EAAEA,MAAO;IACfC,SAAS,EAAEA,SAAU;IACrBV,OAAO,EAAEA,OAAQ;IACjBW,aAAa,EAAEA,aAAc;IAC7BC,OAAO,EAAEA,OAAQ;IACjB,oBAAkBT,WAAY;IAC9B,iBAAejB,QAAS;IACxB,gBAAcE;EAAQ,EACvB,CAAC;AAEN,CACF,CAAC;AAEDR,WAAW,CAACoC,WAAW,GAAG,aAAa"}
@@ -1,11 +1,12 @@
1
1
  import { MouseEvent, RefObject } from "react";
2
- export type Separators = "." | ",";
2
+ export type Separators = "." | "," | " ";
3
3
  export interface IInputNumber {
4
4
  decimalLength?: number;
5
5
  decimalSeparator?: Separators;
6
6
  disableAbbreviation?: boolean;
7
7
  disableMacros?: boolean;
8
8
  thousandSeparator?: Separators;
9
+ trimDecimals?: boolean;
9
10
  onSave?: (e: Event) => void;
10
11
  value?: string | number;
11
12
  step?: number;
@@ -17,7 +18,7 @@ export interface IInputNumber {
17
18
  onCancel?: (e: Event) => void;
18
19
  validation?: (value: string, disableMacros: boolean, decimalSeparator: string, decimalLength: number, limit?: number) => boolean;
19
20
  }
20
- export declare const useInputNumber: ({ decimalSeparator, thousandSeparator, disableAbbreviation, disableMacros, decimalLength, value, onChange, onSave, onEnterKeyPress, onClick, onCancel, allowEmptyValue, step, limit, validation, }: IInputNumber, inputRef: RefObject<HTMLInputElement | null>) => {
21
+ export declare const useInputNumber: ({ decimalSeparator, thousandSeparator, disableAbbreviation, disableMacros, decimalLength, value, onChange, onSave, onEnterKeyPress, onClick, onCancel, allowEmptyValue, step, trimDecimals, limit, validation, }: IInputNumber, inputRef: RefObject<HTMLInputElement | null>) => {
21
22
  inputProps: {
22
23
  value: string | number;
23
24
  onBlur: (e: any) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useInputNumber.d.ts","sourceRoot":"","sources":["../../../src/hooks/useInputNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAGV,SAAS,EAGV,MAAM,OAAO,CAAC;AASf,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AAEnC,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,CACX,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,OAAO,EACtB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM,KACX,OAAO,CAAC;CACd;AAED,eAAO,MAAM,cAAc,uMAiBtB,YAAY,YACL,UAAU,gBAAgB,GAAG,IAAI,CAAC;;;;;;;;;;;;;;CAqQ7C,CAAC"}
1
+ {"version":3,"file":"useInputNumber.d.ts","sourceRoot":"","sources":["../../../src/hooks/useInputNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EAGV,SAAS,EAGV,MAAM,OAAO,CAAC;AASf,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEzC,MAAM,WAAW,YAAY;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACxD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9B,UAAU,CAAC,EAAE,CACX,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,OAAO,EACtB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM,KACX,OAAO,CAAC;CACd;AAED,eAAO,MAAM,cAAc,qNAkBtB,YAAY,YACL,UAAU,gBAAgB,GAAG,IAAI,CAAC;;;;;;;;;;;;;;CA8S7C,CAAC"}
@@ -16,20 +16,21 @@ export const useInputNumber = (_ref, inputRef) => {
16
16
  onCancel,
17
17
  allowEmptyValue,
18
18
  step = 1,
19
+ trimDecimals = true,
19
20
  limit,
20
21
  validation = validateNumberInput
21
22
  } = _ref;
22
- const [currentValue, setCurrentValue] = useState(() => disableAbbreviation ? value : formatNumber(value, thousandSeparator));
23
- const [prevValue, setPrevValue] = useState(() => disableAbbreviation ? value : formatNumber(value, thousandSeparator));
23
+ const [currentValue, setCurrentValue] = useState(() => disableAbbreviation ? value : formatNumber(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength));
24
+ const [prevValue, setPrevValue] = useState(() => disableAbbreviation ? value : formatNumber(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength));
24
25
  const [unformattedValue, setUnformattedValue] = useState(() => value);
25
26
  useEffect(() => {
26
27
  if (value !== prevValue) {
27
- setCurrentValue(disableAbbreviation ? value : formatNumber(value, thousandSeparator));
28
- setPrevValue(disableAbbreviation ? value : formatNumber(value, thousandSeparator));
28
+ setCurrentValue(disableAbbreviation ? value : formatNumber(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength));
29
+ setPrevValue(disableAbbreviation ? value : formatNumber(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength));
29
30
  setUnformattedValue(value);
30
31
  }
31
32
  // eslint-disable-next-line react-hooks/exhaustive-deps
32
- }, [disableAbbreviation, thousandSeparator, value]);
33
+ }, [disableAbbreviation, thousandSeparator, decimalSeparator, decimalLength, trimDecimals, value]);
33
34
  const [focused, setFocused] = useState(false);
34
35
  const escapeRef = useRef(false);
35
36
  const handleBlur = useCallback(e => {
@@ -38,7 +39,7 @@ export const useInputNumber = (_ref, inputRef) => {
38
39
  setUnformattedValue(prevValue);
39
40
  } else {
40
41
  if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {
41
- const _value = disableAbbreviation ? currentValue : formatNumber(currentValue, thousandSeparator);
42
+ const _value = disableAbbreviation ? currentValue : formatNumber(currentValue, thousandSeparator, decimalSeparator, trimDecimals, decimalLength);
42
43
  setPrevValue(_value);
43
44
  setUnformattedValue(currentValue);
44
45
  setCurrentValue(_value);
@@ -58,7 +59,7 @@ export const useInputNumber = (_ref, inputRef) => {
58
59
  }
59
60
  }
60
61
  setFocused(false);
61
- }, [allowEmptyValue, disableAbbreviation, onCancel, onSave, prevValue, thousandSeparator, currentValue]);
62
+ }, [prevValue, disableAbbreviation, currentValue, thousandSeparator, decimalSeparator, decimalLength, trimDecimals, onSave, allowEmptyValue, onCancel]);
62
63
  const updateValue = useCallback(type => {
63
64
  const value = String(unformattedValue);
64
65
  let decimalPart = "";
@@ -81,7 +82,7 @@ export const useInputNumber = (_ref, inputRef) => {
81
82
  if (value.includes(decimalSeparator)) {
82
83
  increasedValue = parseFloat(increasedValue.toFixed(decimalLength));
83
84
  }
84
- const joinedValue = numberWithSeparator(increasedValue, thousandSeparator, value.includes(thousandSeparator));
85
+ const joinedValue = numberWithSeparator(increasedValue, thousandSeparator, decimalSeparator, value.includes(thousandSeparator));
85
86
  setUnformattedValue(decimalPart ? joinedValue + decimalPart : joinedValue);
86
87
  setCurrentValue(decimalPart ? joinedValue + decimalPart : joinedValue);
87
88
  }, [decimalLength, decimalSeparator, step, thousandSeparator, unformattedValue]);