linear-react-components-ui 1.1.26-beta.22 → 1.1.26-beta.24

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 (116) hide show
  1. package/lib/assets/styles/datepicker2.css +1 -1
  2. package/lib/assets/styles/radiofield.css +1 -1
  3. package/lib/assets/styles/selectfield.css +1 -1
  4. package/lib/assets/styles/textfield.css +1 -1
  5. package/lib/buttons/DefaultButton.js +1 -1
  6. package/lib/calendar/base/index.js +2 -2
  7. package/lib/dialog/base/Content.d.ts +1 -1
  8. package/lib/dialog/base/Content.js +8 -7
  9. package/lib/dialog/base/Content.js.map +1 -1
  10. package/lib/dialog/form/index.js +23 -23
  11. package/lib/dialog/form/index.js.map +1 -1
  12. package/lib/dialog/types.d.ts +2 -1
  13. package/lib/dialog/wizard/index.js +4 -4
  14. package/lib/form/Field.js.map +1 -1
  15. package/lib/form/FieldArray.js +18 -18
  16. package/lib/form/FieldArray.js.map +1 -1
  17. package/lib/form/FieldNumber.js +42 -39
  18. package/lib/form/FieldNumber.js.map +1 -1
  19. package/lib/form/FieldPeriod.js +27 -27
  20. package/lib/form/FieldPeriod.js.map +1 -1
  21. package/lib/form/helpers.d.ts +5 -1
  22. package/lib/form/helpers.js.map +1 -1
  23. package/lib/form/withFormSecurity.js +3 -3
  24. package/lib/form2/useForm/index.js +95 -87
  25. package/lib/form2/useForm/index.js.map +1 -1
  26. package/lib/icons/index.js +1 -1
  27. package/lib/inputs/base/InputTextBase.js +1 -1
  28. package/lib/inputs/date/index.js +1 -1
  29. package/lib/inputs/number/Currency.d.ts +1 -1
  30. package/lib/inputs/number/Currency.js +79 -18
  31. package/lib/inputs/number/Currency.js.map +1 -1
  32. package/lib/inputs/number/Decimal.d.ts +2 -2
  33. package/lib/inputs/number/Decimal.js +78 -8
  34. package/lib/inputs/number/Decimal.js.map +1 -1
  35. package/lib/inputs/number/format_number.js +11 -5
  36. package/lib/inputs/number/format_number.js.map +1 -1
  37. package/lib/inputs/number/index.d.ts +1 -1
  38. package/lib/inputs/number/index.js +75 -31
  39. package/lib/inputs/number/index.js.map +1 -1
  40. package/lib/inputs/number/types.d.ts +9 -0
  41. package/lib/inputs/period/PeriodList.js +3 -3
  42. package/lib/inputs2/checkboxfield/base.js +1 -1
  43. package/lib/inputs2/date/datefield/base.js +1 -1
  44. package/lib/inputs2/date/datefield/types.d.ts +2 -2
  45. package/lib/inputs2/date/dateperiodfield/base.js +1 -1
  46. package/lib/inputs2/date/dateperiodfield/types.d.ts +2 -2
  47. package/lib/inputs2/filefield/index.js.map +1 -1
  48. package/lib/inputs2/index.d.ts +3 -2
  49. package/lib/inputs2/index.js +11 -8
  50. package/lib/inputs2/index.js.map +1 -1
  51. package/lib/inputs2/mask/Cnpj.d.ts +6 -3
  52. package/lib/inputs2/mask/Cnpj.js +107 -43
  53. package/lib/inputs2/mask/Cnpj.js.map +1 -1
  54. package/lib/inputs2/mask/Cpf.d.ts +6 -3
  55. package/lib/inputs2/mask/Cpf.js +87 -37
  56. package/lib/inputs2/mask/Cpf.js.map +1 -1
  57. package/lib/inputs2/mask/Phone.d.ts +5 -3
  58. package/lib/inputs2/mask/Phone.js +19 -18
  59. package/lib/inputs2/mask/Phone.js.map +1 -1
  60. package/lib/inputs2/mask/ZipCode.d.ts +6 -2
  61. package/lib/inputs2/mask/ZipCode.js +18 -16
  62. package/lib/inputs2/mask/ZipCode.js.map +1 -1
  63. package/lib/inputs2/mask/index.d.ts +6 -0
  64. package/lib/inputs2/mask/index.js +113 -0
  65. package/lib/inputs2/mask/index.js.map +1 -0
  66. package/lib/inputs2/mask/types.d.ts +16 -0
  67. package/lib/inputs2/numberfield/currency.d.ts +2 -1
  68. package/lib/inputs2/numberfield/currency.js +93 -75
  69. package/lib/inputs2/numberfield/currency.js.map +1 -1
  70. package/lib/inputs2/numberfield/decimal.d.ts +2 -1
  71. package/lib/inputs2/numberfield/decimal.js +87 -68
  72. package/lib/inputs2/numberfield/decimal.js.map +1 -1
  73. package/lib/inputs2/numberfield/helpers.js +10 -10
  74. package/lib/inputs2/numberfield/helpers.js.map +1 -1
  75. package/lib/inputs2/numberfield/index.d.ts +3 -2
  76. package/lib/inputs2/numberfield/index.js +26 -25
  77. package/lib/inputs2/numberfield/index.js.map +1 -1
  78. package/lib/inputs2/radiofield/base.js +76 -80
  79. package/lib/inputs2/radiofield/base.js.map +1 -1
  80. package/lib/inputs2/radiofield/index.js.map +1 -1
  81. package/lib/inputs2/selectfield/base.d.ts +1 -2
  82. package/lib/inputs2/selectfield/base.js +300 -300
  83. package/lib/inputs2/selectfield/base.js.map +1 -1
  84. package/lib/inputs2/selectfield/context.d.ts +1 -1
  85. package/lib/inputs2/selectfield/context.js.map +1 -1
  86. package/lib/inputs2/selectfield/index.d.ts +2 -1
  87. package/lib/inputs2/selectfield/index.js +20 -18
  88. package/lib/inputs2/selectfield/index.js.map +1 -1
  89. package/lib/inputs2/selectfield/listbox.d.ts +1 -0
  90. package/lib/inputs2/selectfield/listbox.js +34 -33
  91. package/lib/inputs2/selectfield/listbox.js.map +1 -1
  92. package/lib/inputs2/selectfield/selections.d.ts +1 -1
  93. package/lib/inputs2/selectfield/selections.js +11 -11
  94. package/lib/inputs2/selectfield/selections.js.map +1 -1
  95. package/lib/inputs2/selectfield/simple.d.ts +9 -0
  96. package/lib/inputs2/selectfield/simple.js +24 -0
  97. package/lib/inputs2/selectfield/simple.js.map +1 -0
  98. package/lib/inputs2/selectfield/triggers.js +15 -15
  99. package/lib/inputs2/selectfield/triggers.js.map +1 -1
  100. package/lib/inputs2/selectfield/types.d.ts +1 -0
  101. package/lib/inputs2/selectfield/types.js.map +1 -1
  102. package/lib/inputs2/textareafield/base.js +1 -1
  103. package/lib/inputs2/textfield/base.js +1 -1
  104. package/lib/labels/DefaultLabel.js +1 -1
  105. package/lib/list/Item.js +1 -1
  106. package/lib/menus/sidenav/MenuLink.js +1 -1
  107. package/lib/menus/sidenav/NavMenuItem.js +1 -1
  108. package/lib/permissionValidations.js +1 -2
  109. package/lib/textContent/index.js +1 -1
  110. package/package.json +6 -1
  111. package/lib/inputs/number/BaseNumber.d.ts +0 -3
  112. package/lib/inputs/number/BaseNumber.js +0 -60
  113. package/lib/inputs/number/BaseNumber.js.map +0 -1
  114. package/lib/inputs2/mask/BaseMask.d.ts +0 -13
  115. package/lib/inputs2/mask/BaseMask.js +0 -79
  116. package/lib/inputs2/mask/BaseMask.js.map +0 -1
@@ -1,6 +1,7 @@
1
- import { jsx as O } from "react/jsx-runtime";
2
- import { c as P } from "../../_virtual/compiler-runtime.js";
3
- import g from "../../_virtual/lodash.js";
1
+ import { jsx as W } from "react/jsx-runtime";
2
+ import { c as X } from "../../_virtual/compiler-runtime.js";
3
+ import { forwardRef as Y, useRef as tt, useEffect as et } from "react";
4
+ import i from "../../_virtual/lodash.js";
4
5
  import "../../node_modules/imask/esm/index.js";
5
6
  import "../../node_modules/imask/esm/controls/input.js";
6
7
  import "../../node_modules/imask/esm/masked/factory.js";
@@ -10,94 +11,112 @@ import "../../node_modules/imask/esm/controls/html-mask-element.js";
10
11
  import "../../node_modules/imask/esm/controls/html-contenteditable-mask-element.js";
11
12
  import "../../node_modules/imask/esm/controls/input-history.js";
12
13
  import "../../node_modules/react-imask/esm/input.js";
13
- import Q from "../../node_modules/react-imask/esm/hook.js";
14
+ import ot from "../../node_modules/react-imask/esm/hook.js";
14
15
  import "../../node_modules/react-imask/esm/mixin.js";
15
- import { forwardRef as U, useRef as W, useEffect as X } from "react";
16
- import { Input as Y } from "../textfield/index.js";
16
+ import { Input as it } from "../textfield/index.js";
17
17
  import "../textareafield/index.js";
18
18
  import "./index.js";
19
19
  import "../date/datefield/index.js";
20
20
  import "../radiofield/index.js";
21
21
  import "../selectfield/index.js";
22
22
  import "../colorfield/index.js";
23
+ import "../mask/index.js";
23
24
  import "../checkboxfield/index.js";
24
25
  import "../date/dateperiodfield/index.js";
25
26
  import "../filefield/index.js";
26
- import { mergeRefs as tt } from "../../form2/helpers.js";
27
- const et = U((e, V) => {
28
- const t = P.c(41);
29
- let o, l, a, n, r, m, s, u, c, d, v, f, p;
27
+ import "../slot/index.js";
28
+ import { mergeRefs as lt } from "../../form2/helpers.js";
29
+ const at = Y((e, b) => {
30
+ const t = X.c(50);
31
+ let a, u, c, d, f, v, p, g, N, x, F, h, R, k;
30
32
  t[0] !== e ? ({
31
- min: l,
32
- max: a,
33
- to: m,
34
- from: s,
35
- enum: u,
36
- onChange: c,
37
- allowNegative: d,
38
- textAlign: v,
39
- children: f,
40
- scale: p,
41
- normalizeZeros: n,
42
- padFractionalZeros: r,
43
- ...o
44
- } = e, t[0] = e, t[1] = o, t[2] = l, t[3] = a, t[4] = n, t[5] = r, t[6] = m, t[7] = s, t[8] = u, t[9] = c, t[10] = d, t[11] = v, t[12] = f, t[13] = p) : (o = t[1], l = t[2], a = t[3], n = t[4], r = t[5], m = t[6], s = t[7], u = t[8], c = t[9], d = t[10], v = t[11], f = t[12], p = t[13]);
45
- const B = l === void 0 ? void 0 : l, _ = a === void 0 ? void 0 : a, S = m === void 0 ? void 0 : m, I = s === void 0 ? void 0 : s, T = u === void 0 ? void 0 : u, Z = c === void 0 ? null : c, H = d === void 0 ? !0 : d, b = v === void 0 ? "right" : v, w = f === void 0 ? null : f, y = p === void 0 ? 2 : p, A = n === void 0 ? !1 : n, C = r === void 0 ? !0 : r, L = W(null), E = g.isNil(B) ? H ? void 0 : 0 : B;
46
- let x;
47
- t[14] === Symbol.for("react.memo_cache_sentinel") ? (x = ["."], t[14] = x) : x = t[14];
48
- let h;
49
- t[15] !== I || t[16] !== T || t[17] !== _ || t[18] !== A || t[19] !== C || t[20] !== y || t[21] !== E || t[22] !== S ? (h = {
33
+ min: u,
34
+ max: c,
35
+ to: p,
36
+ from: g,
37
+ enum: N,
38
+ onChange: x,
39
+ onBlur: F,
40
+ allowNegative: h,
41
+ textAlign: R,
42
+ children: k,
43
+ scale: d,
44
+ normalizeZeros: f,
45
+ padFractionalZeros: v,
46
+ ...a
47
+ } = e, t[0] = e, t[1] = a, t[2] = u, t[3] = c, t[4] = d, t[5] = f, t[6] = v, t[7] = p, t[8] = g, t[9] = N, t[10] = x, t[11] = F, t[12] = h, t[13] = R, t[14] = k) : (a = t[1], u = t[2], c = t[3], d = t[4], f = t[5], v = t[6], p = t[7], g = t[8], N = t[9], x = t[10], F = t[11], h = t[12], R = t[13], k = t[14]);
48
+ const o = u === void 0 ? void 0 : u, w = c === void 0 ? void 0 : c, y = p === void 0 ? void 0 : p, A = g === void 0 ? void 0 : g, E = N === void 0 ? void 0 : N, n = x === void 0 ? null : x, M = F === void 0 ? null : F, Q = h === void 0 ? !0 : h, z = R === void 0 ? "right" : R, D = k === void 0 ? null : k, j = d === void 0 ? 2 : d, q = f === void 0 ? !1 : f, L = v === void 0 ? !0 : v, K = tt(null), $ = i.isNil(o) ? Q ? void 0 : 0 : o;
49
+ let V;
50
+ t[15] === Symbol.for("react.memo_cache_sentinel") ? (V = ["."], t[15] = V) : V = t[15];
51
+ let S;
52
+ t[16] !== A || t[17] !== E || t[18] !== w || t[19] !== q || t[20] !== L || t[21] !== j || t[22] !== $ || t[23] !== y ? (S = {
50
53
  mask: Number,
51
54
  unmask: !0,
52
- min: E,
53
- enum: T,
55
+ min: $,
56
+ enum: E,
54
57
  radix: ",",
55
- mapToRadix: x,
58
+ mapToRadix: V,
56
59
  thousandsSeparator: ".",
57
- max: _,
58
- to: S,
59
- from: I,
60
- scale: y,
61
- normalizeZeros: A,
62
- padFractionalZeros: C
63
- }, t[15] = I, t[16] = T, t[17] = _, t[18] = A, t[19] = C, t[20] = y, t[21] = E, t[22] = S, t[23] = h) : h = t[23];
64
- let F;
65
- t[24] !== Z || t[25] !== e.name ? (F = {
66
- ref: L,
67
- onAccept: (q, J, $) => {
68
- const G = parseFloat(J.unmaskedValue), K = g.isNaN(G) ? 0 : G;
69
- Z?.({
70
- ...$,
60
+ max: w,
61
+ to: y,
62
+ from: A,
63
+ scale: j,
64
+ normalizeZeros: q,
65
+ padFractionalZeros: L
66
+ }, t[16] = A, t[17] = E, t[18] = w, t[19] = q, t[20] = L, t[21] = j, t[22] = $, t[23] = y, t[24] = S) : S = t[24];
67
+ let B;
68
+ t[25] !== n || t[26] !== e.name ? (B = {
69
+ ref: K,
70
+ onAccept: (l, _, O) => {
71
+ const P = parseFloat(_.unmaskedValue), U = i.isNaN(P) ? 0 : P;
72
+ n?.({
73
+ ...O,
71
74
  target: {
72
- ...$?.target,
75
+ ...O?.target,
73
76
  name: e?.name,
74
- value: K
77
+ value: U
75
78
  }
76
79
  });
77
80
  }
78
- }, t[24] = Z, t[25] = e.name, t[26] = F) : F = t[26];
81
+ }, t[25] = n, t[26] = e.name, t[27] = B) : B = t[27];
79
82
  const {
80
- value: M,
81
- setValue: z,
82
- unmaskedValue: D
83
- } = Q(h, F);
84
- let N;
85
- t[27] !== e.value || t[28] !== z || t[29] !== D ? (N = () => {
86
- const q = g.toString(e?.value);
87
- !g.isNil(e?.value) && !g.isEqual(parseFloat(q), parseFloat(D)) && z(parseFloat(q).toLocaleString("pt-BR"));
88
- }, t[27] = e.value, t[28] = z, t[29] = D, t[30] = N) : N = t[30];
89
- const j = e?.value;
90
- let R;
91
- t[31] !== j ? (R = [j], t[31] = j, t[32] = R) : R = t[32], X(N, R);
92
- let i;
93
- t[33] !== V ? (i = tt(V, L), t[33] = V, t[34] = i) : i = t[34];
94
- let k;
95
- return t[35] !== w || t[36] !== M || t[37] !== o || t[38] !== i || t[39] !== b ? (k = /* @__PURE__ */ O(Y, { ...o, ref: i, type: "text", inputMode: "numeric", value: M, textAlign: b, onChange: ot, children: w }), t[35] = w, t[36] = M, t[37] = o, t[38] = i, t[39] = b, t[40] = k) : k = t[40], k;
83
+ value: G,
84
+ setValue: r,
85
+ unmaskedValue: m
86
+ } = ot(S, B);
87
+ let T;
88
+ t[28] !== o || t[29] !== M || t[30] !== n || t[31] !== e.name || t[32] !== r || t[33] !== m ? (T = (l) => {
89
+ if (!i.isNil(o)) {
90
+ const _ = parseFloat(m);
91
+ (i.isNaN(_) || _ < o) && (r(i.toString(o)), n?.({
92
+ ...l,
93
+ target: {
94
+ ...l?.target,
95
+ name: e?.name,
96
+ value: o
97
+ }
98
+ }));
99
+ }
100
+ M?.(l);
101
+ }, t[28] = o, t[29] = M, t[30] = n, t[31] = e.name, t[32] = r, t[33] = m, t[34] = T) : T = t[34];
102
+ const H = T;
103
+ let C;
104
+ t[35] !== e.value || t[36] !== r || t[37] !== m ? (C = () => {
105
+ const l = i.toString(e?.value);
106
+ !i.isNil(e?.value) && !i.isEqual(parseFloat(l), parseFloat(m)) && r(parseFloat(l).toLocaleString("pt-BR"));
107
+ }, t[35] = e.value, t[36] = r, t[37] = m, t[38] = C) : C = t[38];
108
+ const J = e?.value;
109
+ let I;
110
+ t[39] !== J ? (I = [J], t[39] = J, t[40] = I) : I = t[40], et(C, I);
111
+ let s;
112
+ t[41] !== b ? (s = lt(b, K), t[41] = b, t[42] = s) : s = t[42];
113
+ let Z;
114
+ return t[43] !== D || t[44] !== H || t[45] !== G || t[46] !== a || t[47] !== s || t[48] !== z ? (Z = /* @__PURE__ */ W(it, { ...a, ref: s, type: "text", inputMode: "decimal", value: G, textAlign: z, onBlur: H, onChange: nt, children: D }), t[43] = D, t[44] = H, t[45] = G, t[46] = a, t[47] = s, t[48] = z, t[49] = Z) : Z = t[49], Z;
96
115
  });
97
- et.displayName = "DecimalFieldInput";
98
- function ot() {
116
+ at.displayName = "DecimalFieldInput";
117
+ function nt() {
99
118
  }
100
119
  export {
101
- et as Decimal
120
+ at as Decimal
102
121
  };
103
122
  //# sourceMappingURL=decimal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decimal.js","sources":["../../../src/lib/inputs2/numberfield/decimal.tsx"],"sourcesContent":["import _ from 'lodash';\nimport { useIMask } from 'react-imask';\nimport { ChangeEvent, forwardRef, useEffect, useRef } from 'react';\nimport { TextField } from '..';\nimport { mergeRefs } from '../../form2/helpers';\nimport type { DecimalFieldInputProps } from './types';\n\nconst Decimal = forwardRef<HTMLInputElement, DecimalFieldInputProps>((props, ref) => {\n const {\n min = undefined, max = undefined, to = undefined, from = undefined, enum: interval = undefined,\n onChange = null, allowNegative = true, textAlign = 'right', children = null, scale = 2, \n normalizeZeros = false, padFractionalZeros = true, ...rest\n } = props;\n const numberInputRef = useRef<HTMLInputElement | null>(null);\n\n const { value: maskedValue, setValue: setMaskedValue, unmaskedValue } = useIMask({\n mask: Number,\n unmask: true,\n min: !_.isNil(min) ? min : (allowNegative ? undefined : 0),\n enum: interval,\n radix: ',',\n mapToRadix: ['.'],\n thousandsSeparator: '.',\n max,\n to,\n from,\n scale,\n normalizeZeros,\n padFractionalZeros,\n }, {\n ref: numberInputRef,\n onAccept: (__, options, event) => {\n const parsedValueToFloat = parseFloat(options.unmaskedValue);\n const valueToReturn = !_.isNaN(parsedValueToFloat) ? parsedValueToFloat : 0;\n onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: valueToReturn as unknown,\n },\n } as ChangeEvent<HTMLInputElement>);\n },\n });\n\n useEffect(() => {\n const valueToString = _.toString(props?.value);\n if (!_.isNil(props?.value) && \n !_.isEqual(parseFloat(valueToString), parseFloat(unmaskedValue))) {\n setMaskedValue(parseFloat(valueToString).toLocaleString('pt-BR'));\n }\n }, [props?.value]);\n\n return (\n <TextField.Input\n {...rest}\n ref={mergeRefs(ref, numberInputRef)}\n type=\"text\"\n inputMode=\"numeric\"\n value={maskedValue}\n textAlign={textAlign}\n onChange={() => { }}>\n {children}\n </TextField.Input>\n );\n});\n\nDecimal.displayName = 'DecimalFieldInput';\n\nexport { Decimal };\n"],"names":["Decimal","forwardRef","props","ref","$","_c","rest","t0","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","min","max","to","from","enum","onChange","allowNegative","textAlign","children","scale","normalizeZeros","padFractionalZeros","undefined","interval","numberInputRef","useRef","t12","_","isNil","t13","Symbol","for","t14","mask","Number","unmask","radix","mapToRadix","thousandsSeparator","t15","name","onAccept","__","options","event","parsedValueToFloat","parseFloat","unmaskedValue","valueToReturn","isNaN","target","value","maskedValue","setValue","setMaskedValue","useIMask","t16","valueToString","toString","isEqual","toLocaleString","t17","t18","useEffect","t19","mergeRefs","t20","TextField.Input","_temp","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"decimal.js","sources":["../../../src/lib/inputs2/numberfield/decimal.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useEffect, useRef, ChangeEvent} from 'react';\nimport _ from 'lodash';\nimport { useIMask } from 'react-imask';\nimport { TextField } from '..';\nimport { mergeRefs } from '../../form2/helpers';\nimport type { DecimalFieldInputProps } from './types';\n\nconst Decimal = forwardRef<HTMLInputElement, DecimalFieldInputProps>((props, ref) => {\n const {\n min = undefined, max = undefined, to = undefined, from = undefined, enum: interval = undefined,\n onChange = null, onBlur = null, allowNegative = true, textAlign = 'right', children = null, \n scale = 2, normalizeZeros = false, padFractionalZeros = true, ...rest\n } = props;\n const numberInputRef = useRef<HTMLInputElement | null>(null);\n\n const { value: maskedValue, setValue: setMaskedValue, unmaskedValue } = useIMask({\n mask: Number,\n unmask: true,\n min: !_.isNil(min) ? min : (allowNegative ? undefined : 0),\n enum: interval,\n radix: ',',\n mapToRadix: ['.'],\n thousandsSeparator: '.',\n max,\n to,\n from,\n scale,\n normalizeZeros,\n padFractionalZeros,\n }, {\n ref: numberInputRef,\n onAccept: (__, options, event) => {\n const parsedValueToFloat = parseFloat(options.unmaskedValue);\n const valueToReturn = !_.isNaN(parsedValueToFloat) ? parsedValueToFloat : 0;\n onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: valueToReturn as unknown,\n },\n } as ChangeEvent<HTMLInputElement>);\n },\n });\n\n /**\n * Função sobrescrevendo o evento onBlur para tratar o valor mínimo ao sair do campo, \n * garantindo que o valor não seja menor que o mínimo definido.\n */\n const handleBlur = useCallback((event: React.FocusEvent<HTMLInputElement>) => {\n if (!_.isNil(min)) {\n const parsedCurrentValueToFloat = parseFloat(unmaskedValue) as number;\n if (_.isNaN(parsedCurrentValueToFloat) || parsedCurrentValueToFloat < min) {\n setMaskedValue(_.toString(min));\n onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: min as any,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n }\n }\n onBlur?.(event);\n }, [min, unmaskedValue, onChange, onBlur, setMaskedValue, props.name]);\n\n useEffect(() => {\n const valueToString = _.toString(props?.value);\n if (!_.isNil(props?.value) && \n !_.isEqual(parseFloat(valueToString), parseFloat(unmaskedValue))) {\n setMaskedValue(parseFloat(valueToString).toLocaleString('pt-BR'));\n }\n }, [props?.value]);\n\n return (\n <TextField.Input\n {...rest}\n ref={mergeRefs(ref, numberInputRef)}\n type=\"text\"\n inputMode=\"decimal\"\n value={maskedValue}\n textAlign={textAlign}\n onBlur={handleBlur}\n onChange={() => { }}>\n {children}\n </TextField.Input>\n );\n});\n\nDecimal.displayName = 'DecimalFieldInput';\n\nexport { Decimal };\n"],"names":["Decimal","forwardRef","props","ref","$","_c","rest","t0","t1","t10","t11","t12","t2","t3","t4","t5","t6","t7","t8","t9","min","max","to","from","enum","onChange","onBlur","allowNegative","textAlign","children","scale","normalizeZeros","padFractionalZeros","undefined","interval","numberInputRef","useRef","t13","_","isNil","t14","Symbol","for","t15","mask","Number","unmask","radix","mapToRadix","thousandsSeparator","t16","name","onAccept","__","options","event","parsedValueToFloat","parseFloat","unmaskedValue","valueToReturn","isNaN","target","value","maskedValue","setValue","setMaskedValue","useIMask","t17","event_0","parsedCurrentValueToFloat","toString","handleBlur","t18","valueToString","isEqual","toLocaleString","t19","t20","useEffect","t21","mergeRefs","t22","_temp","displayName"],"mappings":"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"}
@@ -1,19 +1,19 @@
1
- const o = (e, n) => {
2
- if (!e || e === "") return n ? "" : 0;
3
- const r = e.replace(/[^\d-]/g, "");
4
- if (n)
5
- return r;
1
+ const u = (r, t) => {
2
+ if (!r || r === "") return t ? "" : 0;
3
+ const e = r.replace(/[^\d-]/g, "");
4
+ if (t)
5
+ return e;
6
6
  const {
7
- MAX_SAFE_INTEGER: c
7
+ MAX_SAFE_INTEGER: n
8
8
  } = Number;
9
9
  try {
10
- const t = BigInt(r);
11
- return t > BigInt(c) || t < BigInt(-c) ? r : Number(r);
10
+ const c = BigInt(e);
11
+ return c > BigInt(n) || c < BigInt(-n) ? e : Number(e);
12
12
  } catch {
13
- return r;
13
+ return e;
14
14
  }
15
15
  };
16
16
  export {
17
- o as convertToSafeNumber
17
+ u as convertToSafeNumber
18
18
  };
19
19
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../src/lib/inputs2/numberfield/helpers.ts"],"sourcesContent":["/**\n * Converte um valor string para um número seguro ou retorna como string limpa.\n * \n * Esta função sanitiza a entrada removendo todos os caracteres não-dígitos exceto hífens,\n * e então converte para número se estiver dentro do intervalo seguro de inteiros do JavaScript.\n * Se o valor exceder o intervalo seguro ou a conversão falhar, retorna a string limpa.\n * \n * @param stringValue - A string de entrada a ser convertida. Pode conter qualquer caractere.\n * @param returnAsString - Se true, retorna a string limpa sem tentar conversão para número. Se false, \n * tenta converter para número dentro dos limites seguros de inteiros.\n * \n * @returns {number | string} Retorna:\n * - String vazia ('') ou 0 se a entrada estiver vazia/nula (baseado na prop \"returnAsString\")\n * - String limpa se \"returnAsString\" for true\n * - Número se a conversão for bem-sucedida e dentro do intervalo seguro de inteiros\n * - String limpa se o número exceder o intervalo seguro ou a conversão falhar\n * \n * @example\n * ```typescript\n * convertToSafeNumber(\"123abc\", false); // Retorna: 123\n * convertToSafeNumber(\"123abc\", true); // Retorna: \"123\"\n * convertToSafeNumber(\"-456def\", false); // Retorna: -456\n * convertToSafeNumber(\"999999999999999999999\", false); // Retorna: \"999999999999999999999\" (excede intervalo seguro)\n * convertToSafeNumber(\"\", false); // Retorna: 0\n * convertToSafeNumber(\"\", true); // Retorna: \"\"\n * ```\n */\nexport const convertToSafeNumber = (\n stringValue: string, returnAsString: boolean,\n): number | string => {\n if (!stringValue || stringValue === '') return returnAsString ? '' : 0;\n const cleanValue = stringValue.replace(/[^\\d-]/g, '');\n\n if (returnAsString) {\n return cleanValue;\n }\n const { MAX_SAFE_INTEGER } = Number;\n try {\n const numValue = BigInt(cleanValue);\n \n if (numValue > BigInt(MAX_SAFE_INTEGER) || numValue < BigInt(-MAX_SAFE_INTEGER)) {\n return cleanValue;\n }\n return Number(cleanValue);\n } catch (error) {\n return cleanValue;\n }\n};\n"],"names":["convertToSafeNumber","stringValue","returnAsString","cleanValue","replace","MAX_SAFE_INTEGER","Number","numValue","BigInt"],"mappings":"AA2BO,MAAMA,IAAsBA,CACjCC,GAAqBC,MACD;AACpB,MAAI,CAACD,KAAeA,MAAgB,GAAI,QAAOC,IAAiB,KAAK;AACrE,QAAMC,IAAaF,EAAYG,QAAQ,WAAW,EAAE;AAEpD,MAAIF;AACF,WAAOC;AAET,QAAM;AAAA,IAAEE,kBAAAA;AAAAA,EAAAA,IAAqBC;AAC7B,MAAI;AACF,UAAMC,IAAWC,OAAOL,CAAU;AAElC,WAAII,IAAWC,OAAOH,CAAgB,KAAKE,IAAWC,OAAO,CAACH,CAAgB,IACrEF,IAEFG,OAAOH,CAAU;AAAA,EAC1B,QAAgB;AACd,WAAOA;AAAAA,EACT;AACF;"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../src/lib/inputs2/numberfield/helpers.ts"],"sourcesContent":["/**\n * Converte um valor string para um número seguro ou retorna como string limpa.\n * \n * Esta função sanitiza a entrada removendo todos os caracteres não-dígitos exceto hífens,\n * e então converte para número se estiver dentro do intervalo seguro de inteiros do JavaScript.\n * Se o valor exceder o intervalo seguro ou a conversão falhar, retorna a string limpa.\n * \n * @param stringValue - A string de entrada a ser convertida. Pode conter qualquer caractere.\n * @param returnAsString - Se true, retorna a string limpa sem tentar conversão para número. Se false, \n * tenta converter para número dentro dos limites seguros de inteiros.\n * \n * @returns {number | string} Retorna:\n * - String vazia ('') ou 0 se a entrada estiver vazia/nula (baseado na prop \"returnAsString\")\n * - String limpa se \"returnAsString\" for true\n * - Número se a conversão for bem-sucedida e dentro do intervalo seguro de inteiros\n * - String limpa se o número exceder o intervalo seguro ou a conversão falhar\n * \n * @example\n * ```typescript\n * convertToSafeNumber(\"123abc\", false); // Retorna: 123\n * convertToSafeNumber(\"123abc\", true); // Retorna: \"123\"\n * convertToSafeNumber(\"-456def\", false); // Retorna: -456\n * convertToSafeNumber(\"999999999999999999999\", false); // Retorna: \"999999999999999999999\" (excede intervalo seguro)\n * convertToSafeNumber(\"\", false); // Retorna: 0\n * convertToSafeNumber(\"\", true); // Retorna: \"\"\n * ```\n */\nexport const convertToSafeNumber = (\n stringValue: string, returnAsString: boolean,\n): number | string => {\n if (!stringValue || stringValue === '') return returnAsString ? '' : 0;\n const cleanValue = stringValue.replace(/[^\\d-]/g, '');\n\n if (returnAsString) {\n return cleanValue;\n }\n const { MAX_SAFE_INTEGER } = Number;\n try {\n const numValue = BigInt(cleanValue);\n \n if (numValue > BigInt(MAX_SAFE_INTEGER) || numValue < BigInt(-MAX_SAFE_INTEGER)) {\n return cleanValue;\n }\n return Number(cleanValue);\n } catch {\n return cleanValue;\n }\n};\n"],"names":["convertToSafeNumber","stringValue","returnAsString","cleanValue","replace","MAX_SAFE_INTEGER","Number","numValue","BigInt"],"mappings":"AA2BO,MAAMA,IAAsBA,CACjCC,GAAqBC,MACD;AACpB,MAAI,CAACD,KAAeA,MAAgB,GAAI,QAAOC,IAAiB,KAAK;AACrE,QAAMC,IAAaF,EAAYG,QAAQ,WAAW,EAAE;AAEpD,MAAIF;AACF,WAAOC;AAET,QAAM;AAAA,IAAEE,kBAAAA;AAAAA,EAAAA,IAAqBC;AAC7B,MAAI;AACF,UAAMC,IAAWC,OAAOL,CAAU;AAElC,WAAII,IAAWC,OAAOH,CAAgB,KAAKE,IAAWC,OAAO,CAACH,CAAgB,IACrEF,IAEFG,OAAOH,CAAU;AAAA,EAC1B,QAAQ;AACN,WAAOA;AAAAA,EACT;AACF;"}
@@ -1,7 +1,8 @@
1
- import { LeftSlot, RightSlot } from '../slot';
1
+ import { default as React } from 'react';
2
2
  import { Decimal } from './decimal';
3
3
  import { Currency } from './currency';
4
+ import { LeftSlot, RightSlot } from '../slot';
4
5
  import { NumberFieldInputProps, DecimalFieldInputProps, CurrencyFieldInputProps } from './types';
5
- declare const Input: import('react').ForwardRefExoticComponent<NumberFieldInputProps & import('react').RefAttributes<HTMLInputElement>>;
6
+ declare const Input: React.ForwardRefExoticComponent<NumberFieldInputProps & React.RefAttributes<HTMLInputElement>>;
6
7
  export { Input, Decimal, Currency, LeftSlot, RightSlot };
7
8
  export type { NumberFieldInputProps, DecimalFieldInputProps, CurrencyFieldInputProps, };
@@ -1,6 +1,7 @@
1
1
  import { jsx as K } from "react/jsx-runtime";
2
2
  import { c as O } from "../../_virtual/compiler-runtime.js";
3
- import o from "../../_virtual/lodash.js";
3
+ import { forwardRef as P, useRef as Q, useEffect as W } from "react";
4
+ import i from "../../_virtual/lodash.js";
4
5
  import "../../node_modules/imask/esm/index.js";
5
6
  import "../../node_modules/imask/esm/controls/input.js";
6
7
  import "../../node_modules/imask/esm/masked/factory.js";
@@ -10,41 +11,41 @@ import "../../node_modules/imask/esm/controls/html-mask-element.js";
10
11
  import "../../node_modules/imask/esm/controls/html-contenteditable-mask-element.js";
11
12
  import "../../node_modules/imask/esm/controls/input-history.js";
12
13
  import "../../node_modules/react-imask/esm/input.js";
13
- import P from "../../node_modules/react-imask/esm/hook.js";
14
+ import X from "../../node_modules/react-imask/esm/hook.js";
14
15
  import "../../node_modules/react-imask/esm/mixin.js";
15
- import { forwardRef as Q, useRef as W, useEffect as X } from "react";
16
+ import { Decimal as yt } from "./decimal.js";
17
+ import { Currency as qt } from "./currency.js";
18
+ import { convertToSafeNumber as G } from "./helpers.js";
16
19
  import { Input as Y } from "../textfield/index.js";
17
20
  import "../textareafield/index.js";
18
21
  import "../date/datefield/index.js";
19
22
  import "../radiofield/index.js";
20
23
  import "../selectfield/index.js";
21
24
  import "../colorfield/index.js";
25
+ import "../mask/index.js";
22
26
  import "../checkboxfield/index.js";
23
27
  import "../date/dateperiodfield/index.js";
24
28
  import "../filefield/index.js";
29
+ import { LeftSlot as $t, RightSlot as jt } from "../slot/index.js";
25
30
  import { mergeRefs as Z } from "../../form2/helpers.js";
26
- import { LeftSlot as wt, RightSlot as yt } from "../slot/index.js";
27
- import { Decimal as qt } from "./decimal.js";
28
- import { Currency as $t } from "./currency.js";
29
- import { convertToSafeNumber as G } from "./helpers.js";
30
- const tt = Q((e, C) => {
31
+ const tt = P((e, C) => {
31
32
  const t = O.c(46);
32
- let n, f, c, d, v, g, p, x, N, h, S, V;
33
+ let n, f, c, d, v, g, p, N, x, h, S, V;
33
34
  t[0] !== e ? ({
34
35
  min: f,
35
36
  max: c,
36
37
  to: v,
37
38
  from: g,
38
39
  enum: p,
39
- onChange: x,
40
- onBlur: N,
40
+ onChange: N,
41
+ onBlur: x,
41
42
  allowNegative: h,
42
43
  returnAsString: S,
43
44
  textAlign: V,
44
45
  children: d,
45
46
  ...n
46
- } = e, t[0] = e, t[1] = n, t[2] = f, t[3] = c, t[4] = d, t[5] = v, t[6] = g, t[7] = p, t[8] = x, t[9] = N, t[10] = h, t[11] = S, t[12] = V) : (n = t[1], f = t[2], c = t[3], d = t[4], v = t[5], g = t[6], p = t[7], x = t[8], N = t[9], h = t[10], S = t[11], V = t[12]);
47
- const i = f === void 0 ? void 0 : f, E = c === void 0 ? void 0 : c, w = v === void 0 ? void 0 : v, y = g === void 0 ? void 0 : g, M = p === void 0 ? void 0 : p, m = x === void 0 ? null : x, q = N === void 0 ? null : N, H = h === void 0 ? !0 : h, r = S === void 0 ? !1 : S, _ = V === void 0 ? "right" : V, $ = d === void 0 ? null : d, U = W(null), j = H ? void 0 : 0;
47
+ } = e, t[0] = e, t[1] = n, t[2] = f, t[3] = c, t[4] = d, t[5] = v, t[6] = g, t[7] = p, t[8] = N, t[9] = x, t[10] = h, t[11] = S, t[12] = V) : (n = t[1], f = t[2], c = t[3], d = t[4], v = t[5], g = t[6], p = t[7], N = t[8], x = t[9], h = t[10], S = t[11], V = t[12]);
48
+ const o = f === void 0 ? void 0 : f, E = c === void 0 ? void 0 : c, w = v === void 0 ? void 0 : v, y = g === void 0 ? void 0 : g, M = p === void 0 ? void 0 : p, m = N === void 0 ? null : N, q = x === void 0 ? null : x, H = h === void 0 ? !0 : h, r = S === void 0 ? !1 : S, _ = V === void 0 ? "right" : V, $ = d === void 0 ? null : d, U = Q(null), j = i.isNil(o) ? H ? void 0 : 0 : o;
48
49
  let k;
49
50
  t[13] !== y || t[14] !== M || t[15] !== E || t[16] !== j || t[17] !== w ? (k = {
50
51
  mask: Number,
@@ -74,31 +75,31 @@ const tt = Q((e, C) => {
74
75
  value: D,
75
76
  setValue: a,
76
77
  unmaskedValue: u
77
- } = P(k, I);
78
+ } = X(k, I);
78
79
  let R;
79
- t[23] !== i || t[24] !== q || t[25] !== m || t[26] !== e.name || t[27] !== r || t[28] !== a || t[29] !== u ? (R = (l) => {
80
- if (!o.isNil(i)) {
80
+ t[23] !== o || t[24] !== q || t[25] !== m || t[26] !== e.name || t[27] !== r || t[28] !== a || t[29] !== u ? (R = (l) => {
81
+ if (!i.isNil(o)) {
81
82
  const T = G(u, !1);
82
- (o.isNaN(T) || T < i) && (a(o.toString(i)), m?.({
83
+ (i.isNaN(T) || T < o) && (a(i.toString(o)), m?.({
83
84
  ...l,
84
85
  target: {
85
86
  ...l?.target,
86
87
  name: e?.name,
87
- value: r ? o.toString(i) : i
88
+ value: r ? i.toString(o) : o
88
89
  }
89
90
  }));
90
91
  }
91
92
  q?.(l);
92
- }, t[23] = i, t[24] = q, t[25] = m, t[26] = e.name, t[27] = r, t[28] = a, t[29] = u, t[30] = R) : R = t[30];
93
+ }, t[23] = o, t[24] = q, t[25] = m, t[26] = e.name, t[27] = r, t[28] = a, t[29] = u, t[30] = R) : R = t[30];
93
94
  const F = R;
94
95
  let b;
95
96
  t[31] !== e.value || t[32] !== a || t[33] !== u ? (b = () => {
96
97
  const l = Number(u || "0");
97
- !o.isNil(e?.value) && (!o.isEqual(e?.value, l) || o.isEqual(e?.value, 0)) && a(o.toString(e?.value));
98
+ !i.isNil(e?.value) && (!i.isEqual(e?.value, l) || i.isEqual(e?.value, 0)) && a(i.toString(e?.value));
98
99
  }, t[31] = e.value, t[32] = a, t[33] = u, t[34] = b) : b = t[34];
99
100
  const L = e?.value;
100
101
  let A;
101
- t[35] !== L ? (A = [L], t[35] = L, t[36] = A) : A = t[36], X(b, A);
102
+ t[35] !== L ? (A = [L], t[35] = L, t[36] = A) : A = t[36], W(b, A);
102
103
  let s;
103
104
  t[37] !== C ? (s = Z(C, U), t[37] = C, t[38] = s) : s = t[38];
104
105
  let B;
@@ -108,10 +109,10 @@ tt.displayName = "NumberFieldInput";
108
109
  function et() {
109
110
  }
110
111
  export {
111
- $t as Currency,
112
- qt as Decimal,
112
+ qt as Currency,
113
+ yt as Decimal,
113
114
  tt as Input,
114
- wt as LeftSlot,
115
- yt as RightSlot
115
+ $t as LeftSlot,
116
+ jt as RightSlot
116
117
  };
117
118
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/lib/inputs2/numberfield/index.tsx"],"sourcesContent":["import _ from 'lodash';\nimport { useIMask } from 'react-imask';\nimport { ChangeEvent, forwardRef, useEffect, useRef } from 'react';\nimport { TextField } from '..';\nimport { mergeRefs } from '../../form2/helpers';\nimport { LeftSlot, RightSlot } from '../slot';\nimport { Decimal } from './decimal';\nimport { Currency } from './currency';\nimport { convertToSafeNumber } from './helpers';\nimport type { NumberFieldInputProps, DecimalFieldInputProps, CurrencyFieldInputProps } from './types';\n\nconst Input = forwardRef<HTMLInputElement, NumberFieldInputProps>((props, ref) => {\n const {\n min = undefined, max = undefined, to = undefined, from = undefined, enum: interval = undefined,\n onChange = null, onBlur = null, allowNegative = true, returnAsString = false, textAlign = 'right', \n children = null, ...rest\n } = props;\n const numberInputRef = useRef<HTMLInputElement | null>(null);\n\n const { value: maskedValue, setValue: setMaskedValue, unmaskedValue } = useIMask({\n mask: Number,\n scale: 0,\n enum: interval,\n min: allowNegative ? undefined : 0,\n max,\n to,\n from,\n }, {\n ref: numberInputRef,\n onAccept: (value, __, event) => {\n const parsedValue = convertToSafeNumber(value, returnAsString);\n onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: parsedValue as any,\n },\n } as ChangeEvent<HTMLInputElement>);\n },\n });\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (!_.isNil(min)) {\n const currentValue = convertToSafeNumber(unmaskedValue, false) as number;\n if (_.isNaN(currentValue) || currentValue < min) {\n setMaskedValue(_.toString(min));\n onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: (returnAsString ? _.toString(min) : min) as any,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n }\n }\n onBlur?.(event);\n };\n\n useEffect(() => {\n const floatUnmaskedValue = Number(unmaskedValue || '0');\n if (!_.isNil(props?.value) && (!_.isEqual(props?.value,\n floatUnmaskedValue) || _.isEqual(props?.value, 0))) {\n setMaskedValue(_.toString(props?.value));\n }\n }, [props?.value]);\n\n return (\n <TextField.Input\n {...rest}\n ref={mergeRefs(ref, numberInputRef)}\n type=\"text\"\n inputMode=\"numeric\"\n value={maskedValue}\n textAlign={textAlign}\n onBlur={handleBlur}\n onChange={() => { }}>\n {children}\n </TextField.Input>\n );\n});\n\nInput.displayName = 'NumberFieldInput';\n\nexport { Input, Decimal, Currency, LeftSlot, RightSlot };\nexport type { \n NumberFieldInputProps, \n DecimalFieldInputProps, \n CurrencyFieldInputProps, \n};\n"],"names":["Input","forwardRef","props","ref","$","_c","rest","t0","t1","t10","t2","t3","t4","t5","t6","t7","t8","t9","min","max","to","from","enum","onChange","onBlur","allowNegative","returnAsString","textAlign","children","undefined","interval","numberInputRef","useRef","t11","t12","mask","Number","scale","t13","name","onAccept","value","__","event","parsedValue","convertToSafeNumber","target","maskedValue","setValue","setMaskedValue","unmaskedValue","useIMask","t14","event_0","_","isNil","currentValue","isNaN","toString","handleBlur","t15","floatUnmaskedValue","isEqual","t16","t17","useEffect","t18","mergeRefs","t19","_temp","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/lib/inputs2/numberfield/index.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useEffect, useRef, type ChangeEvent } from 'react';\nimport _ from 'lodash';\nimport { useIMask } from 'react-imask';\nimport { Decimal } from './decimal';\nimport { Currency } from './currency';\nimport { convertToSafeNumber } from './helpers';\nimport { TextField } from '..';\nimport { LeftSlot, RightSlot } from '../slot';\nimport { mergeRefs } from '../../form2/helpers';\nimport type { NumberFieldInputProps, DecimalFieldInputProps, CurrencyFieldInputProps } from './types';\n\nconst Input = forwardRef<HTMLInputElement, NumberFieldInputProps>((props, ref) => {\n const {\n min = undefined, max = undefined, to = undefined, from = undefined, enum: interval = undefined,\n onChange = null, onBlur = null, allowNegative = true, returnAsString = false, textAlign = 'right', \n children = null, ...rest\n } = props;\n const numberInputRef = useRef<HTMLInputElement | null>(null);\n\n const { value: maskedValue, setValue: setMaskedValue, unmaskedValue } = useIMask({\n mask: Number,\n scale: 0,\n enum: interval,\n min: !_.isNil(min) ? min : (allowNegative ? undefined : 0),\n max,\n to,\n from,\n }, {\n ref: numberInputRef,\n onAccept: (value, __, event) => {\n const parsedValue = convertToSafeNumber(value, returnAsString);\n onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: parsedValue as any,\n },\n } as ChangeEvent<HTMLInputElement>);\n },\n });\n\n /**\n * Função sobrescrevendo o evento onBlur para tratar o valor mínimo ao sair do campo, \n * garantindo que o valor não seja menor que o mínimo definido.\n */\n const handleBlur = useCallback((event: React.FocusEvent<HTMLInputElement>) => {\n if (!_.isNil(min)) {\n const currentValue = convertToSafeNumber(unmaskedValue, false) as number;\n if (_.isNaN(currentValue) || currentValue < min) {\n setMaskedValue(_.toString(min));\n onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: (returnAsString ? _.toString(min) : min) as any,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n }\n }\n onBlur?.(event);\n }, [min, unmaskedValue, onChange, onBlur, setMaskedValue, props.name, returnAsString]);\n\n useEffect(() => {\n const floatUnmaskedValue = Number(unmaskedValue || '0');\n if (!_.isNil(props?.value) && (!_.isEqual(props?.value,\n floatUnmaskedValue) || _.isEqual(props?.value, 0))) {\n setMaskedValue(_.toString(props?.value));\n }\n }, [props?.value]);\n\n return (\n <TextField.Input\n {...rest}\n ref={mergeRefs(ref, numberInputRef)}\n type=\"text\"\n inputMode=\"numeric\"\n value={maskedValue}\n textAlign={textAlign}\n onBlur={handleBlur}\n onChange={() => { }}>\n {children}\n </TextField.Input>\n );\n});\n\nInput.displayName = 'NumberFieldInput';\n\nexport { Input, Decimal, Currency, LeftSlot, RightSlot };\nexport type { \n NumberFieldInputProps, \n DecimalFieldInputProps, \n CurrencyFieldInputProps, \n};\n"],"names":["Input","forwardRef","props","ref","$","_c","rest","t0","t1","t10","t2","t3","t4","t5","t6","t7","t8","t9","min","max","to","from","enum","onChange","onBlur","allowNegative","returnAsString","textAlign","children","undefined","interval","numberInputRef","useRef","t11","_","isNil","t12","mask","Number","scale","t13","name","onAccept","value","__","event","parsedValue","convertToSafeNumber","target","maskedValue","setValue","setMaskedValue","unmaskedValue","useIMask","t14","event_0","currentValue","isNaN","toString","handleBlur","t15","floatUnmaskedValue","isEqual","t16","t17","useEffect","t18","mergeRefs","t19","_temp","displayName"],"mappings":"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"}