linear-react-components-ui 2.0.0-beta.4 → 2.0.0-beta.5

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 (89) hide show
  1. package/lib/inputs/date/helpers.js +11 -22
  2. package/lib/inputs/date/helpers.js.map +1 -1
  3. package/lib/inputs/mask/BaseMask.js +55 -65
  4. package/lib/inputs/mask/BaseMask.js.map +1 -1
  5. package/lib/inputs/number/Currency.js +35 -45
  6. package/lib/inputs/number/Currency.js.map +1 -1
  7. package/lib/inputs/number/Decimal.js +38 -48
  8. package/lib/inputs/number/Decimal.js.map +1 -1
  9. package/lib/inputs/number/index.js +38 -48
  10. package/lib/inputs/number/index.js.map +1 -1
  11. package/lib/inputs2/date/datefield/base.js +60 -70
  12. package/lib/inputs2/date/datefield/base.js.map +1 -1
  13. package/lib/inputs2/date/dateperiodfield/base.js +79 -89
  14. package/lib/inputs2/date/dateperiodfield/base.js.map +1 -1
  15. package/lib/inputs2/mask/Cnpj.js +58 -68
  16. package/lib/inputs2/mask/Cnpj.js.map +1 -1
  17. package/lib/inputs2/mask/Cpf.js +38 -48
  18. package/lib/inputs2/mask/Cpf.js.map +1 -1
  19. package/lib/inputs2/mask/index.js +50 -60
  20. package/lib/inputs2/mask/index.js.map +1 -1
  21. package/lib/inputs2/numberfield/currency.js +51 -61
  22. package/lib/inputs2/numberfield/currency.js.map +1 -1
  23. package/lib/inputs2/numberfield/decimal.js +25 -35
  24. package/lib/inputs2/numberfield/decimal.js.map +1 -1
  25. package/lib/inputs2/numberfield/index.js +46 -56
  26. package/lib/inputs2/numberfield/index.js.map +1 -1
  27. package/package.json +9 -6
  28. package/lib/node_modules/imask/esm/controls/html-contenteditable-mask-element.js +0 -35
  29. package/lib/node_modules/imask/esm/controls/html-contenteditable-mask-element.js.map +0 -1
  30. package/lib/node_modules/imask/esm/controls/html-input-mask-element.js +0 -32
  31. package/lib/node_modules/imask/esm/controls/html-input-mask-element.js.map +0 -1
  32. package/lib/node_modules/imask/esm/controls/html-mask-element.js +0 -49
  33. package/lib/node_modules/imask/esm/controls/html-mask-element.js.map +0 -1
  34. package/lib/node_modules/imask/esm/controls/input-history.js +0 -31
  35. package/lib/node_modules/imask/esm/controls/input-history.js.map +0 -1
  36. package/lib/node_modules/imask/esm/controls/input.js +0 -223
  37. package/lib/node_modules/imask/esm/controls/input.js.map +0 -1
  38. package/lib/node_modules/imask/esm/controls/mask-element.js +0 -44
  39. package/lib/node_modules/imask/esm/controls/mask-element.js.map +0 -1
  40. package/lib/node_modules/imask/esm/core/action-details.js +0 -52
  41. package/lib/node_modules/imask/esm/core/action-details.js.map +0 -1
  42. package/lib/node_modules/imask/esm/core/change-details.js +0 -37
  43. package/lib/node_modules/imask/esm/core/change-details.js.map +0 -1
  44. package/lib/node_modules/imask/esm/core/continuous-tail-details.js +0 -43
  45. package/lib/node_modules/imask/esm/core/continuous-tail-details.js.map +0 -1
  46. package/lib/node_modules/imask/esm/core/holder.js +0 -7
  47. package/lib/node_modules/imask/esm/core/holder.js.map +0 -1
  48. package/lib/node_modules/imask/esm/core/utils.js +0 -68
  49. package/lib/node_modules/imask/esm/core/utils.js.map +0 -1
  50. package/lib/node_modules/imask/esm/index.js +0 -51
  51. package/lib/node_modules/imask/esm/index.js.map +0 -1
  52. package/lib/node_modules/imask/esm/masked/base.js +0 -253
  53. package/lib/node_modules/imask/esm/masked/base.js.map +0 -1
  54. package/lib/node_modules/imask/esm/masked/date.js +0 -118
  55. package/lib/node_modules/imask/esm/masked/date.js.map +0 -1
  56. package/lib/node_modules/imask/esm/masked/dynamic.js +0 -223
  57. package/lib/node_modules/imask/esm/masked/dynamic.js.map +0 -1
  58. package/lib/node_modules/imask/esm/masked/enum.js +0 -70
  59. package/lib/node_modules/imask/esm/masked/enum.js.map +0 -1
  60. package/lib/node_modules/imask/esm/masked/factory.js +0 -47
  61. package/lib/node_modules/imask/esm/masked/factory.js.map +0 -1
  62. package/lib/node_modules/imask/esm/masked/function.js +0 -24
  63. package/lib/node_modules/imask/esm/masked/function.js.map +0 -1
  64. package/lib/node_modules/imask/esm/masked/number.js +0 -213
  65. package/lib/node_modules/imask/esm/masked/number.js.map +0 -1
  66. package/lib/node_modules/imask/esm/masked/pattern/chunk-tail-details.js +0 -104
  67. package/lib/node_modules/imask/esm/masked/pattern/chunk-tail-details.js.map +0 -1
  68. package/lib/node_modules/imask/esm/masked/pattern/cursor.js +0 -101
  69. package/lib/node_modules/imask/esm/masked/pattern/cursor.js.map +0 -1
  70. package/lib/node_modules/imask/esm/masked/pattern/fixed-definition.js +0 -103
  71. package/lib/node_modules/imask/esm/masked/pattern/fixed-definition.js.map +0 -1
  72. package/lib/node_modules/imask/esm/masked/pattern/input-definition.js +0 -134
  73. package/lib/node_modules/imask/esm/masked/pattern/input-definition.js.map +0 -1
  74. package/lib/node_modules/imask/esm/masked/pattern.js +0 -323
  75. package/lib/node_modules/imask/esm/masked/pattern.js.map +0 -1
  76. package/lib/node_modules/imask/esm/masked/pipe.js +0 -24
  77. package/lib/node_modules/imask/esm/masked/pipe.js.map +0 -1
  78. package/lib/node_modules/imask/esm/masked/range.js +0 -79
  79. package/lib/node_modules/imask/esm/masked/range.js.map +0 -1
  80. package/lib/node_modules/imask/esm/masked/regexp.js +0 -22
  81. package/lib/node_modules/imask/esm/masked/regexp.js.map +0 -1
  82. package/lib/node_modules/imask/esm/masked/repeat.js +0 -105
  83. package/lib/node_modules/imask/esm/masked/repeat.js.map +0 -1
  84. package/lib/node_modules/react-imask/esm/hook.js +0 -76
  85. package/lib/node_modules/react-imask/esm/hook.js.map +0 -1
  86. package/lib/node_modules/react-imask/esm/input.js +0 -24
  87. package/lib/node_modules/react-imask/esm/input.js.map +0 -1
  88. package/lib/node_modules/react-imask/esm/mixin.js +0 -132
  89. package/lib/node_modules/react-imask/esm/mixin.js.map +0 -1
@@ -1,20 +1,9 @@
1
1
  import t from "../../node_modules/moment/dist/moment.js";
2
- import "../../node_modules/imask/esm/index.js";
3
- import "../../node_modules/imask/esm/controls/input.js";
4
- import m from "../../node_modules/imask/esm/core/holder.js";
5
- import "../../node_modules/imask/esm/masked/factory.js";
6
- import "../../node_modules/imask/esm/controls/mask-element.js";
7
- import "../../node_modules/imask/esm/controls/html-input-mask-element.js";
8
- import "../../node_modules/imask/esm/controls/html-mask-element.js";
9
- import "../../node_modules/imask/esm/controls/html-contenteditable-mask-element.js";
10
- import "../../node_modules/imask/esm/controls/input-history.js";
11
- import "../../node_modules/react-imask/esm/input.js";
12
- import "react";
13
- import "../../node_modules/react-imask/esm/mixin.js";
14
- const r = "DD/MM/YYYY", g = "DD/MM/YYYY HH:mm", a = "YYYY-MM-DD", d = "YYYY-MM-DD HH.mm", A = (M) => {
15
- let o = M;
16
- return t(o, r, !0).isValid() && (o = t(o, r).format(r)), typeof o == "string" ? t(o, a) : o;
17
- }, E = {
2
+ import { IMask as m } from "react-imask";
3
+ const M = "DD/MM/YYYY", r = "DD/MM/YYYY HH:mm", e = "YYYY-MM-DD", n = "YYYY-MM-DD HH.mm", k = (a) => {
4
+ let o = a;
5
+ return t(o, M, !0).isValid() && (o = t(o, M).format(M)), typeof o == "string" ? t(o, e) : o;
6
+ }, D = {
18
7
  DD: {
19
8
  mask: m.MaskedRange,
20
9
  from: 1,
@@ -42,11 +31,11 @@ const r = "DD/MM/YYYY", g = "DD/MM/YYYY HH:mm", a = "YYYY-MM-DD", d = "YYYY-MM-D
42
31
  }
43
32
  };
44
33
  export {
45
- a as EN_US_FORMAT,
46
- d as EN_US_FORMAT_DATETIME,
47
- r as PT_BR_FORMAT,
48
- g as PT_BR_FORMAT_DATETIME,
49
- E as blocksDateTimeFormat,
50
- A as getMomentValue
34
+ e as EN_US_FORMAT,
35
+ n as EN_US_FORMAT_DATETIME,
36
+ M as PT_BR_FORMAT,
37
+ r as PT_BR_FORMAT_DATETIME,
38
+ D as blocksDateTimeFormat,
39
+ k as getMomentValue
51
40
  };
52
41
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../src/lib/inputs/date/helpers.ts"],"sourcesContent":["import moment from 'moment';\nimport { IMask } from 'react-imask';\n\nconst PT_BR_FORMAT = 'DD/MM/YYYY';\nconst PT_BR_FORMAT_DATETIME = 'DD/MM/YYYY HH:mm';\nconst EN_US_FORMAT = 'YYYY-MM-DD';\nconst EN_US_FORMAT_DATETIME = 'YYYY-MM-DD HH.mm';\n\nconst getMomentValue = (value: string) => {\n let newValue = value;\n if (moment(newValue, PT_BR_FORMAT, true).isValid()) {\n newValue = moment(newValue, PT_BR_FORMAT).format(PT_BR_FORMAT);\n }\n\n return (typeof newValue === 'string' ? moment(newValue, EN_US_FORMAT) : newValue);\n};\n\nconst blocksDateTimeFormat = {\n DD: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n YYYY: {\n mask: IMask.MaskedRange,\n from: 1900,\n to: 2999,\n },\n HH: {\n mask: IMask.MaskedRange,\n from: 0,\n to: 23,\n },\n mm: {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n};\n\nexport {\n getMomentValue,\n blocksDateTimeFormat,\n PT_BR_FORMAT,\n PT_BR_FORMAT_DATETIME,\n EN_US_FORMAT,\n EN_US_FORMAT_DATETIME,\n};\n"],"names":["PT_BR_FORMAT","PT_BR_FORMAT_DATETIME","EN_US_FORMAT","EN_US_FORMAT_DATETIME","getMomentValue","value","newValue","moment","isValid","format","blocksDateTimeFormat","DD","mask","IMask","MaskedRange","from","to","MM","YYYY","HH","mm"],"mappings":";;;;;;;;;;;;;AAGA,MAAMA,IAAe,cACfC,IAAwB,oBACxBC,IAAe,cACfC,IAAwB,oBAExBC,IAAiBA,CAACC,MAAkB;AACxC,MAAIC,IAAWD;AACf,SAAIE,EAAOD,GAAUN,GAAc,EAAI,EAAEQ,cACvCF,IAAWC,EAAOD,GAAUN,CAAY,EAAES,OAAOT,CAAY,IAGvD,OAAOM,KAAa,WAAWC,EAAOD,GAAUJ,CAAY,IAAII;AAC1E,GAEMI,IAAuB;AAAA,EAC3BC,IAAI;AAAA,IACFC,MAAMC,EAAMC;AAAAA,IACZC,MAAM;AAAA,IACNC,IAAI;AAAA,EAAA;AAAA,EAENC,IAAI;AAAA,IACFL,MAAMC,EAAMC;AAAAA,IACZC,MAAM;AAAA,IACNC,IAAI;AAAA,EAAA;AAAA,EAENE,MAAM;AAAA,IACJN,MAAMC,EAAMC;AAAAA,IACZC,MAAM;AAAA,IACNC,IAAI;AAAA,EAAA;AAAA,EAENG,IAAI;AAAA,IACFP,MAAMC,EAAMC;AAAAA,IACZC,MAAM;AAAA,IACNC,IAAI;AAAA,EAAA;AAAA,EAENI,IAAI;AAAA,IACFR,MAAMC,EAAMC;AAAAA,IACZC,MAAM;AAAA,IACNC,IAAI;AAAA,EAAA;AAER;"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../src/lib/inputs/date/helpers.ts"],"sourcesContent":["import moment from 'moment';\nimport { IMask } from 'react-imask';\n\nconst PT_BR_FORMAT = 'DD/MM/YYYY';\nconst PT_BR_FORMAT_DATETIME = 'DD/MM/YYYY HH:mm';\nconst EN_US_FORMAT = 'YYYY-MM-DD';\nconst EN_US_FORMAT_DATETIME = 'YYYY-MM-DD HH.mm';\n\nconst getMomentValue = (value: string) => {\n let newValue = value;\n if (moment(newValue, PT_BR_FORMAT, true).isValid()) {\n newValue = moment(newValue, PT_BR_FORMAT).format(PT_BR_FORMAT);\n }\n\n return (typeof newValue === 'string' ? moment(newValue, EN_US_FORMAT) : newValue);\n};\n\nconst blocksDateTimeFormat = {\n DD: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 31,\n },\n MM: {\n mask: IMask.MaskedRange,\n from: 1,\n to: 12,\n },\n YYYY: {\n mask: IMask.MaskedRange,\n from: 1900,\n to: 2999,\n },\n HH: {\n mask: IMask.MaskedRange,\n from: 0,\n to: 23,\n },\n mm: {\n mask: IMask.MaskedRange,\n from: 0,\n to: 59,\n },\n};\n\nexport {\n getMomentValue,\n blocksDateTimeFormat,\n PT_BR_FORMAT,\n PT_BR_FORMAT_DATETIME,\n EN_US_FORMAT,\n EN_US_FORMAT_DATETIME,\n};\n"],"names":["PT_BR_FORMAT","PT_BR_FORMAT_DATETIME","EN_US_FORMAT","EN_US_FORMAT_DATETIME","getMomentValue","value","newValue","moment","isValid","format","blocksDateTimeFormat","DD","mask","IMask","MaskedRange","from","to","MM","YYYY","HH","mm"],"mappings":";;AAGA,MAAMA,IAAe,cACfC,IAAwB,oBACxBC,IAAe,cACfC,IAAwB,oBAExBC,IAAiBA,CAACC,MAAkB;AACxC,MAAIC,IAAWD;AACf,SAAIE,EAAOD,GAAUN,GAAc,EAAI,EAAEQ,cACvCF,IAAWC,EAAOD,GAAUN,CAAY,EAAES,OAAOT,CAAY,IAGvD,OAAOM,KAAa,WAAWC,EAAOD,GAAUJ,CAAY,IAAII;AAC1E,GAEMI,IAAuB;AAAA,EAC3BC,IAAI;AAAA,IACFC,MAAMC,EAAMC;AAAAA,IACZC,MAAM;AAAA,IACNC,IAAI;AAAA,EAAA;AAAA,EAENC,IAAI;AAAA,IACFL,MAAMC,EAAMC;AAAAA,IACZC,MAAM;AAAA,IACNC,IAAI;AAAA,EAAA;AAAA,EAENE,MAAM;AAAA,IACJN,MAAMC,EAAMC;AAAAA,IACZC,MAAM;AAAA,IACNC,IAAI;AAAA,EAAA;AAAA,EAENG,IAAI;AAAA,IACFP,MAAMC,EAAMC;AAAAA,IACZC,MAAM;AAAA,IACNC,IAAI;AAAA,EAAA;AAAA,EAENI,IAAI;AAAA,IACFR,MAAMC,EAAMC;AAAAA,IACZC,MAAM;AAAA,IACNC,IAAI;AAAA,EAAA;AAER;"}
@@ -1,105 +1,95 @@
1
- import { jsx as S } from "react/jsx-runtime";
2
- import { useEffect as h } from "react";
3
- import "../../node_modules/imask/esm/index.js";
4
- import "../../node_modules/imask/esm/controls/input.js";
5
- import "../../node_modules/imask/esm/masked/factory.js";
6
- import "../../node_modules/imask/esm/controls/mask-element.js";
7
- import "../../node_modules/imask/esm/controls/html-input-mask-element.js";
8
- import "../../node_modules/imask/esm/controls/html-mask-element.js";
9
- import "../../node_modules/imask/esm/controls/html-contenteditable-mask-element.js";
10
- import "../../node_modules/imask/esm/controls/input-history.js";
11
- import "../../node_modules/react-imask/esm/input.js";
12
- import B from "../../node_modules/react-imask/esm/hook.js";
13
- import "../../node_modules/react-imask/esm/mixin.js";
14
- import M from "../base/InputTextBase.js";
1
+ import { jsx as h } from "react/jsx-runtime";
2
+ import { useEffect as B } from "react";
3
+ import { useIMask as M } from "react-imask";
4
+ import w from "../base/InputTextBase.js";
15
5
  import { numberToEnUS as b, formatOnlyNumbers as g } from "../number/format_number.js";
16
- import { actionsOnPermissionDenied as w, OPTIONS_ON_DENIED as s } from "../../permissionValidations.js";
17
- import { getMaskOptions as F } from "./helpers.js";
18
- const k = (e, u) => {
6
+ import { actionsOnPermissionDenied as F, OPTIONS_ON_DENIED as i } from "../../permissionValidations.js";
7
+ import { getMaskOptions as I } from "./helpers.js";
8
+ const k = (e, r) => {
19
9
  if (e.returnFormattedValueOnBlur || e.returnFormattedValueOnKeyDown) {
20
10
  const {
21
- name: o
22
- } = u.target, a = e.defaultValue || "";
11
+ name: u
12
+ } = r.target, a = e.defaultValue || "";
23
13
  return {
24
- ...u,
14
+ ...r,
25
15
  target: {
26
16
  value: String(b(a)),
27
- name: o
17
+ name: u
28
18
  }
29
19
  };
30
20
  }
31
- return u;
32
- }, I = (e, u, o) => e.isNumeric ? {} : {
21
+ return r;
22
+ }, K = (e, r, u) => e.isNumeric ? {} : {
33
23
  onBlur: (a) => {
34
- if (o.unmaskedValue.trim().length && e.autoCompleteMask) {
35
- const n = o.unmaskedValue, r = o.mask.toString().replace(/\D+/g, "").length;
36
- if (r > n.length)
24
+ if (u.unmaskedValue.trim().length && e.autoCompleteMask) {
25
+ const n = u.unmaskedValue, o = u.mask.toString().replace(/\D+/g, "").length;
26
+ if (o > n.length)
37
27
  switch (e.autoCompleteMask) {
38
28
  case "left":
39
- u(n.padStart(r, "0"));
29
+ r(n.padStart(o, "0"));
40
30
  break;
41
31
  case "right":
42
- u(n.padEnd(r, "0"));
32
+ r(n.padEnd(o, "0"));
43
33
  break;
44
34
  default:
45
- u(n);
35
+ r(n);
46
36
  break;
47
37
  }
48
38
  }
49
39
  if (e.onBlur) {
50
40
  const {
51
41
  value: n
52
- } = a.target, r = g(n), i = {
42
+ } = a.target, o = g(n), s = {
53
43
  ...a,
54
44
  target: {
55
45
  ...a.target,
56
- value: r
46
+ value: o
57
47
  }
58
- }, l = k(e, i);
59
- e.onBlur(l);
48
+ }, m = k(e, s);
49
+ e.onBlur(m);
60
50
  }
61
51
  },
62
52
  onKeyDown: (a) => {
63
53
  if (e.onKeyDown) {
64
54
  const {
65
55
  value: n
66
- } = a.target, r = g(n), i = {
56
+ } = a.target, o = g(n), s = {
67
57
  ...a,
68
58
  target: {
69
- value: r
59
+ value: o
70
60
  }
71
- }, l = k(e, i);
72
- e.onKeyDown(l);
61
+ }, m = k(e, s);
62
+ e.onKeyDown(m);
73
63
  }
74
64
  }
75
- }, K = [s.disabled, s.unvisible, s.readOnly, s.hideContent], Z = ({
65
+ }, x = [i.disabled, i.unvisible, i.readOnly, i.hideContent], _ = ({
76
66
  value: e,
77
- defaultValue: u,
78
- inputRef: o,
67
+ defaultValue: r,
68
+ inputRef: u,
79
69
  onChange: a,
80
70
  onComplete: n,
81
- permissionAttr: r,
82
- mask: i,
83
- isDateTimeField: l,
71
+ permissionAttr: o,
72
+ mask: s,
73
+ isDateTimeField: m,
84
74
  ...d
85
75
  }) => {
86
- const v = w(K, r), {
76
+ const v = F(x, o), {
87
77
  disabled: y,
88
- readOnly: p
89
- } = v, f = y || p, O = F({
90
- mask: i,
91
- isDateTimeField: l,
78
+ readOnly: O
79
+ } = v, f = y || O, D = I({
80
+ mask: s,
81
+ isDateTimeField: m,
92
82
  ...d
93
83
  }), {
94
- ref: D,
84
+ ref: E,
95
85
  setValue: V,
96
- setUnmaskedValue: E,
97
- maskRef: N
98
- } = B({
99
- ...O
86
+ setUnmaskedValue: N,
87
+ maskRef: S
88
+ } = M({
89
+ ...D
100
90
  }, {
101
- defaultValue: u,
102
- onAccept: (m, t) => {
91
+ defaultValue: r,
92
+ onAccept: (l, t) => {
103
93
  if (!f && a) {
104
94
  const c = {
105
95
  target: {
@@ -112,7 +102,7 @@ const k = (e, u) => {
112
102
  a(c);
113
103
  }
114
104
  },
115
- onComplete: (m, t) => {
105
+ onComplete: (l, t) => {
116
106
  if (!f && n) {
117
107
  const c = {
118
108
  target: {
@@ -126,19 +116,19 @@ const k = (e, u) => {
126
116
  }
127
117
  }
128
118
  });
129
- return h(() => {
130
- if (i === Number || typeof e == "number") {
119
+ return B(() => {
120
+ if (s === Number || typeof e == "number") {
131
121
  const t = b(String(e));
132
- Number.isNaN(t) || E(String(t));
122
+ Number.isNaN(t) || N(String(t));
133
123
  return;
134
124
  }
135
- const m = e ? String(e) : "";
136
- V(m);
137
- }, [e]), /* @__PURE__ */ S(M, { inputRef: (m) => {
138
- D.current = m, o && (typeof o == "object" ? o.current = m : o(m));
139
- }, permissionAttr: r, ...d, ...I(d, V, N.current) });
125
+ const l = e ? String(e) : "";
126
+ V(l);
127
+ }, [e]), /* @__PURE__ */ h(w, { inputRef: (l) => {
128
+ E.current = l, u && (typeof u == "object" ? u.current = l : u(l));
129
+ }, permissionAttr: o, ...d, ...K(d, V, S.current) });
140
130
  };
141
131
  export {
142
- Z as default
132
+ _ as default
143
133
  };
144
134
  //# sourceMappingURL=BaseMask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseMask.js","sources":["../../../src/lib/inputs/mask/BaseMask.tsx"],"sourcesContent":["import { Dispatch, KeyboardEvent, useEffect } from 'react';\nimport { useIMask } from 'react-imask';\nimport InputTextBase from '../base/InputTextBase';\nimport { IBaseMaskProps } from './types';\nimport { CustomInputEvent } from '../base/types';\nimport { numberToEnUS, formatOnlyNumbers } from '../number/format_number';\nimport { OPTIONS_ON_DENIED, actionsOnPermissionDenied } from '../../permissionValidations';\nimport { getMaskOptions } from './helpers';\n\nconst returnEventFormattedValue = (\n props: IBaseMaskProps,\n event: CustomInputEvent,\n) => {\n if (props.returnFormattedValueOnBlur || props.returnFormattedValueOnKeyDown) {\n // Retornando um objeto com a mesma estrutura do Proxy original\n // para recuperacao do valor da mascara sem formatacao.\n // O retorno poderá ser modificado conforme necessidade, desde que seja\n // mantido o path até a propriedade value e name.\n const { name } = event.target;\n const value = props.defaultValue || '';\n return { ...event, target: { value: String(numberToEnUS(value)), name } } as CustomInputEvent;\n }\n return event;\n};\n\nconst getEventProps = (props: IBaseMaskProps, setValue: Dispatch<string>, maskRef: any) => {\n if (props.isNumeric) return {};\n return {\n onBlur: (e: CustomInputEvent) => {\n if (maskRef.unmaskedValue.trim().length && props.autoCompleteMask) {\n const currentValue = maskRef.unmaskedValue;\n const sizeMask = maskRef.mask.toString().replace(/\\D+/g, '').length;\n if (sizeMask > currentValue.length) {\n switch (props.autoCompleteMask) {\n case 'left':\n setValue(currentValue.padStart(sizeMask, '0'));\n break;\n case 'right':\n setValue(currentValue.padEnd(sizeMask, '0'));\n break;\n default:\n setValue(currentValue);\n break;\n }\n }\n }\n if (props.onBlur) {\n const { value } = e.target;\n const formatedValue = formatOnlyNumbers(value);\n const eventWithFormatedValue = { ...e, target: { ...e.target, value: formatedValue } };\n const formattedEvent =\n returnEventFormattedValue(props, eventWithFormatedValue);\n props.onBlur(formattedEvent);\n }\n },\n onKeyDown: (e: CustomInputEvent | KeyboardEvent<Element>) => {\n if (props.onKeyDown) {\n const { value } = e.target as { value: string };\n const formatedValue = formatOnlyNumbers(value);\n const eventWithFormatedValue = { ...e, target: { value: formatedValue } };\n const formattedEvent =\n returnEventFormattedValue(props, eventWithFormatedValue as CustomInputEvent);\n props.onKeyDown(formattedEvent);\n }\n },\n };\n};\n\nconst options = [\n OPTIONS_ON_DENIED.disabled,\n OPTIONS_ON_DENIED.unvisible,\n OPTIONS_ON_DENIED.readOnly,\n OPTIONS_ON_DENIED.hideContent,\n];\n\nconst BaseMask = ({\n value: valueProp,\n defaultValue,\n inputRef,\n onChange,\n onComplete,\n permissionAttr,\n mask,\n isDateTimeField,\n ...rest\n}: IBaseMaskProps) => {\n const onDenied = actionsOnPermissionDenied(options, permissionAttr);\n const { disabled, readOnly } = onDenied;\n const disableCallbacks = disabled || readOnly;\n const maskOptions = getMaskOptions({ mask, isDateTimeField, ...rest });\n const { ref, setValue, setUnmaskedValue, maskRef } = useIMask({\n ...maskOptions,\n }, {\n defaultValue,\n onAccept: (_, r) => {\n if (!disableCallbacks && onChange) {\n const event: CustomInputEvent = {\n target: {\n name: r.el.input.name,\n value: r.unmaskedValue,\n maskedValue: r.value,\n typedValue: r.typedValue,\n },\n };\n onChange(event);\n }\n },\n onComplete: (_, r) => {\n if (!disableCallbacks && onComplete) {\n const event: CustomInputEvent = {\n target: {\n name: r.el.input.name,\n value: r.unmaskedValue,\n maskedValue: r.value,\n typedValue: r.typedValue,\n },\n };\n onComplete(event);\n }\n },\n });\n\n useEffect(() => {\n if (mask === Number || typeof valueProp === 'number') {\n const updatedUnmaskedValue = numberToEnUS(String(valueProp));\n if (!Number.isNaN(updatedUnmaskedValue)) setUnmaskedValue(String(updatedUnmaskedValue));\n return;\n }\n\n const updatedValue = valueProp ? String(valueProp) : '';\n setValue(updatedValue);\n }, [valueProp]);\n\n return (\n <InputTextBase\n inputRef={(r) => {\n ref.current = r;\n if (inputRef) {\n if (typeof inputRef === 'object') inputRef.current = r;\n else inputRef(r);\n }\n }}\n permissionAttr={permissionAttr}\n {...rest}\n {...getEventProps(rest, setValue, maskRef.current)} />\n );\n};\n\nexport default BaseMask;\n"],"names":["returnEventFormattedValue","props","event","returnFormattedValueOnBlur","returnFormattedValueOnKeyDown","name","target","value","defaultValue","String","numberToEnUS","getEventProps","setValue","maskRef","isNumeric","onBlur","e","unmaskedValue","trim","length","autoCompleteMask","currentValue","sizeMask","mask","toString","replace","padStart","padEnd","formatedValue","formatOnlyNumbers","eventWithFormatedValue","formattedEvent","onKeyDown","options","OPTIONS_ON_DENIED","disabled","unvisible","readOnly","hideContent","BaseMask","valueProp","inputRef","onChange","onComplete","permissionAttr","isDateTimeField","rest","onDenied","actionsOnPermissionDenied","disableCallbacks","maskOptions","getMaskOptions","ref","setUnmaskedValue","useIMask","onAccept","_","r","el","input","maskedValue","typedValue","useEffect","Number","updatedUnmaskedValue","isNaN","updatedValue","jsx","InputTextBase","current"],"mappings":"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"}
1
+ {"version":3,"file":"BaseMask.js","sources":["../../../src/lib/inputs/mask/BaseMask.tsx"],"sourcesContent":["import { Dispatch, KeyboardEvent, useEffect } from 'react';\nimport { useIMask } from 'react-imask';\nimport InputTextBase from '../base/InputTextBase';\nimport { IBaseMaskProps } from './types';\nimport { CustomInputEvent } from '../base/types';\nimport { numberToEnUS, formatOnlyNumbers } from '../number/format_number';\nimport { OPTIONS_ON_DENIED, actionsOnPermissionDenied } from '../../permissionValidations';\nimport { getMaskOptions } from './helpers';\n\nconst returnEventFormattedValue = (\n props: IBaseMaskProps,\n event: CustomInputEvent,\n) => {\n if (props.returnFormattedValueOnBlur || props.returnFormattedValueOnKeyDown) {\n // Retornando um objeto com a mesma estrutura do Proxy original\n // para recuperacao do valor da mascara sem formatacao.\n // O retorno poderá ser modificado conforme necessidade, desde que seja\n // mantido o path até a propriedade value e name.\n const { name } = event.target;\n const value = props.defaultValue || '';\n return { ...event, target: { value: String(numberToEnUS(value)), name } } as CustomInputEvent;\n }\n return event;\n};\n\nconst getEventProps = (props: IBaseMaskProps, setValue: Dispatch<string>, maskRef: any) => {\n if (props.isNumeric) return {};\n return {\n onBlur: (e: CustomInputEvent) => {\n if (maskRef.unmaskedValue.trim().length && props.autoCompleteMask) {\n const currentValue = maskRef.unmaskedValue;\n const sizeMask = maskRef.mask.toString().replace(/\\D+/g, '').length;\n if (sizeMask > currentValue.length) {\n switch (props.autoCompleteMask) {\n case 'left':\n setValue(currentValue.padStart(sizeMask, '0'));\n break;\n case 'right':\n setValue(currentValue.padEnd(sizeMask, '0'));\n break;\n default:\n setValue(currentValue);\n break;\n }\n }\n }\n if (props.onBlur) {\n const { value } = e.target;\n const formatedValue = formatOnlyNumbers(value);\n const eventWithFormatedValue = { ...e, target: { ...e.target, value: formatedValue } };\n const formattedEvent =\n returnEventFormattedValue(props, eventWithFormatedValue);\n props.onBlur(formattedEvent);\n }\n },\n onKeyDown: (e: CustomInputEvent | KeyboardEvent<Element>) => {\n if (props.onKeyDown) {\n const { value } = e.target as { value: string };\n const formatedValue = formatOnlyNumbers(value);\n const eventWithFormatedValue = { ...e, target: { value: formatedValue } };\n const formattedEvent =\n returnEventFormattedValue(props, eventWithFormatedValue as CustomInputEvent);\n props.onKeyDown(formattedEvent);\n }\n },\n };\n};\n\nconst options = [\n OPTIONS_ON_DENIED.disabled,\n OPTIONS_ON_DENIED.unvisible,\n OPTIONS_ON_DENIED.readOnly,\n OPTIONS_ON_DENIED.hideContent,\n];\n\nconst BaseMask = ({\n value: valueProp,\n defaultValue,\n inputRef,\n onChange,\n onComplete,\n permissionAttr,\n mask,\n isDateTimeField,\n ...rest\n}: IBaseMaskProps) => {\n const onDenied = actionsOnPermissionDenied(options, permissionAttr);\n const { disabled, readOnly } = onDenied;\n const disableCallbacks = disabled || readOnly;\n const maskOptions = getMaskOptions({ mask, isDateTimeField, ...rest });\n const { ref, setValue, setUnmaskedValue, maskRef } = useIMask({\n ...maskOptions,\n }, {\n defaultValue,\n onAccept: (_, r) => {\n if (!disableCallbacks && onChange) {\n const event: CustomInputEvent = {\n target: {\n name: r.el.input.name,\n value: r.unmaskedValue,\n maskedValue: r.value,\n typedValue: r.typedValue,\n },\n };\n onChange(event);\n }\n },\n onComplete: (_, r) => {\n if (!disableCallbacks && onComplete) {\n const event: CustomInputEvent = {\n target: {\n name: r.el.input.name,\n value: r.unmaskedValue,\n maskedValue: r.value,\n typedValue: r.typedValue,\n },\n };\n onComplete(event);\n }\n },\n });\n\n useEffect(() => {\n if (mask === Number || typeof valueProp === 'number') {\n const updatedUnmaskedValue = numberToEnUS(String(valueProp));\n if (!Number.isNaN(updatedUnmaskedValue)) setUnmaskedValue(String(updatedUnmaskedValue));\n return;\n }\n\n const updatedValue = valueProp ? String(valueProp) : '';\n setValue(updatedValue);\n }, [valueProp]);\n\n return (\n <InputTextBase\n inputRef={(r) => {\n ref.current = r;\n if (inputRef) {\n if (typeof inputRef === 'object') inputRef.current = r;\n else inputRef(r);\n }\n }}\n permissionAttr={permissionAttr}\n {...rest}\n {...getEventProps(rest, setValue, maskRef.current)} />\n );\n};\n\nexport default BaseMask;\n"],"names":["returnEventFormattedValue","props","event","returnFormattedValueOnBlur","returnFormattedValueOnKeyDown","name","target","value","defaultValue","String","numberToEnUS","getEventProps","setValue","maskRef","isNumeric","onBlur","e","unmaskedValue","trim","length","autoCompleteMask","currentValue","sizeMask","mask","toString","replace","padStart","padEnd","formatedValue","formatOnlyNumbers","eventWithFormatedValue","formattedEvent","onKeyDown","options","OPTIONS_ON_DENIED","disabled","unvisible","readOnly","hideContent","BaseMask","valueProp","inputRef","onChange","onComplete","permissionAttr","isDateTimeField","rest","onDenied","actionsOnPermissionDenied","disableCallbacks","maskOptions","getMaskOptions","ref","setUnmaskedValue","useIMask","onAccept","_","r","el","input","maskedValue","typedValue","useEffect","Number","updatedUnmaskedValue","isNaN","updatedValue","jsx","InputTextBase","current"],"mappings":"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"}
@@ -1,84 +1,74 @@
1
- import { jsx as u } from "react/jsx-runtime";
1
+ import { jsx as m } from "react/jsx-runtime";
2
2
  import { useRef as C, useEffect as F } from "react";
3
- import a from "../../_virtual/lodash.js";
4
- import "../../node_modules/imask/esm/index.js";
5
- import "../../node_modules/imask/esm/controls/input.js";
6
- import "../../node_modules/imask/esm/masked/factory.js";
7
- import "../../node_modules/imask/esm/controls/mask-element.js";
8
- import "../../node_modules/imask/esm/controls/html-input-mask-element.js";
9
- import "../../node_modules/imask/esm/controls/html-mask-element.js";
10
- import "../../node_modules/imask/esm/controls/html-contenteditable-mask-element.js";
11
- import "../../node_modules/imask/esm/controls/input-history.js";
12
- import "../../node_modules/react-imask/esm/input.js";
13
- import B from "../../node_modules/react-imask/esm/hook.js";
14
- import "../../node_modules/react-imask/esm/mixin.js";
3
+ import t from "../../_virtual/lodash.js";
4
+ import { useIMask as B } from "react-imask";
15
5
  import { numberToEnUS as E } from "./format_number.js";
16
6
  import T from "../base/InputTextBase.js";
17
7
  import { mergeRefs as A } from "../../form2/helpers.js";
18
- const O = (e) => {
8
+ const P = (e) => {
19
9
  const {
20
10
  inputRef: s = void 0,
21
11
  textAlign: c = "left",
22
12
  themePopover: f = "light",
23
13
  popoverAlign: d = "left",
24
14
  min: r = void 0,
25
- max: p = void 0,
26
- allowNegative: g = !1,
27
- scale: v = 2,
28
- normalizeZeros: y = !0,
29
- padFractionalZeros: N = !1,
30
- unmask: h = !0,
15
+ max: g = void 0,
16
+ allowNegative: v = !1,
17
+ scale: y = 2,
18
+ normalizeZeros: N = !0,
19
+ padFractionalZeros: h = !1,
20
+ unmask: p = !0,
31
21
  currencySymbol: x = "R$",
32
22
  displayCurrencySymbol: k = !0
33
- } = e, i = C(null), R = k ? /* @__PURE__ */ u("span", { className: "currency-symbol", children: x }) : [], {
23
+ } = e, n = C(null), R = k ? /* @__PURE__ */ m("span", { className: "currency-symbol", children: x }) : [], {
34
24
  value: S,
35
- setValue: l,
36
- unmaskedValue: n
25
+ setValue: o,
26
+ unmaskedValue: u
37
27
  } = B({
38
28
  mask: Number,
39
- unmask: h,
40
- scale: v,
41
- normalizeZeros: y,
42
- padFractionalZeros: N,
43
- max: p,
44
- min: a.isNil(r) ? g ? void 0 : 0 : r,
29
+ unmask: p,
30
+ scale: y,
31
+ normalizeZeros: N,
32
+ padFractionalZeros: h,
33
+ max: g,
34
+ min: t.isNil(r) ? v ? void 0 : 0 : r,
45
35
  radix: ",",
46
36
  mapToRadix: ["."],
47
37
  thousandsSeparator: "."
48
38
  }, {
49
- ref: i,
50
- onAccept: (t, o, m) => {
51
- const b = E(o.unmaskedValue);
39
+ ref: n,
40
+ onAccept: (a, l, i) => {
41
+ const b = E(l.unmaskedValue);
52
42
  e?.onChange?.({
53
- ...m,
43
+ ...i,
54
44
  target: {
55
- ...m?.target,
45
+ ...i?.target,
56
46
  name: e?.name,
57
47
  value: b
58
48
  }
59
49
  });
60
50
  }
61
- }), V = (t) => {
62
- if (!a.isNil(r)) {
63
- const o = parseFloat(n);
64
- (a.isNaN(o) || o < r) && (l(a.toString(r)), e?.onChange?.({
65
- ...t,
51
+ }), V = (a) => {
52
+ if (!t.isNil(r)) {
53
+ const l = parseFloat(u);
54
+ (t.isNaN(l) || l < r) && (o(t.toString(r)), e?.onChange?.({
55
+ ...a,
66
56
  target: {
67
- ...t?.target,
57
+ ...a?.target,
68
58
  name: e?.name,
69
59
  value: r
70
60
  }
71
61
  }));
72
62
  }
73
- e?.onBlur?.(t);
63
+ e?.onBlur?.(a);
74
64
  };
75
65
  return F(() => {
76
- const t = a.toString(e?.value);
77
- !a.isNil(e?.value) && !a.isEqual(parseFloat(t), parseFloat(n)) && l(t);
78
- }, [e?.value]), /* @__PURE__ */ u(T, { ...e, inputRef: A(i, s), type: "text", onChange: () => {
66
+ const a = t.toString(e?.value);
67
+ !t.isNil(e?.value) && !t.isEqual(parseFloat(a), parseFloat(u)) && o(a);
68
+ }, [e?.value]), /* @__PURE__ */ m(T, { ...e, inputRef: A(n, s), type: "text", onChange: () => {
79
69
  }, leftElements: R, onBlur: V, value: S, textAlign: c, themePopover: f, popoverAlign: d });
80
70
  };
81
71
  export {
82
- O as default
72
+ P as default
83
73
  };
84
74
  //# sourceMappingURL=Currency.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Currency.js","sources":["../../../src/lib/inputs/number/Currency.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport _ from 'lodash';\nimport { useIMask } from 'react-imask';\nimport { ICurrencyProps } from './types';\nimport { numberToEnUS } from './format_number';\nimport InputTextBase from '../base/InputTextBase';\nimport { mergeRefs } from '../../form2/helpers';\nimport type { CustomInputEvent } from '../base/types';\n\nconst CurrencyField = (props: ICurrencyProps) => {\n const {\n inputRef = undefined, textAlign = 'left', themePopover = 'light', popoverAlign = 'left',\n min = undefined, max = undefined, allowNegative = false, scale = 2, normalizeZeros = true,\n padFractionalZeros = false, unmask = true, currencySymbol = 'R$', displayCurrencySymbol = true,\n } = props;\n const currencyNumberInputRef = useRef<HTMLInputElement | null>(null);\n const leftElements = displayCurrencySymbol ?\n <span className=\"currency-symbol\">{currencySymbol}</span>\n : [];\n\n const { value: maskedValue, setValue: setMaskedValue, unmaskedValue } = useIMask({\n mask: Number,\n unmask,\n scale,\n normalizeZeros,\n padFractionalZeros,\n max,\n min: !_.isNil(min) ? min : (allowNegative ? undefined : 0),\n radix: ',',\n mapToRadix: ['.'],\n thousandsSeparator: '.',\n }, {\n ref: currencyNumberInputRef,\n onAccept: (__, options, event) => {\n const parsedValue = numberToEnUS(options.unmaskedValue);\n props?.onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: parsedValue as any,\n },\n } as React.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 = (event: CustomInputEvent) => {\n if (!_.isNil(min)) {\n const currentValue = parseFloat(unmaskedValue) as number;\n if (_.isNaN(currentValue) || currentValue < min) {\n setMaskedValue(_.toString(min));\n props?.onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: min as any,\n },\n } as CustomInputEvent);\n }\n }\n props?.onBlur?.(event);\n };\n\n useEffect(() => {\n const valueToString = _.toString(props?.value);\n if (!_.isNil(props?.value) && !_.isEqual(\n parseFloat(valueToString), parseFloat(unmaskedValue),\n )) {\n setMaskedValue(valueToString);\n }\n }, [props?.value]);\n\n return (\n <InputTextBase\n {...props}\n inputRef={mergeRefs(currencyNumberInputRef, inputRef) as any}\n type=\"text\"\n onChange={() => { }}\n leftElements={leftElements}\n onBlur={handleBlur}\n value={maskedValue}\n textAlign={textAlign}\n themePopover={themePopover}\n popoverAlign={popoverAlign} />\n );\n};\n\nexport default CurrencyField;\n"],"names":["CurrencyField","props","inputRef","undefined","textAlign","themePopover","popoverAlign","min","max","allowNegative","scale","normalizeZeros","padFractionalZeros","unmask","currencySymbol","displayCurrencySymbol","currencyNumberInputRef","useRef","leftElements","jsx","value","maskedValue","setValue","setMaskedValue","unmaskedValue","useIMask","mask","Number","_","isNil","radix","mapToRadix","thousandsSeparator","ref","onAccept","__","options","event","parsedValue","numberToEnUS","onChange","target","name","handleBlur","currentValue","parseFloat","isNaN","toString","onBlur","useEffect","valueToString","isEqual","InputTextBase","mergeRefs"],"mappings":";;;;;;;;;;;;;;;;;AASA,MAAMA,IAAgBA,CAACC,MAA0B;AAC/C,QAAM;AAAA,IACJC,UAAAA,IAAWC;AAAAA,IAAWC,WAAAA,IAAY;AAAA,IAAQC,cAAAA,IAAe;AAAA,IAASC,cAAAA,IAAe;AAAA,IACjFC,KAAAA,IAAMJ;AAAAA,IAAWK,KAAAA,IAAML;AAAAA,IAAWM,eAAAA,IAAgB;AAAA,IAAOC,OAAAA,IAAQ;AAAA,IAAGC,gBAAAA,IAAiB;AAAA,IACrFC,oBAAAA,IAAqB;AAAA,IAAOC,QAAAA,IAAS;AAAA,IAAMC,gBAAAA,IAAiB;AAAA,IAAMC,uBAAAA,IAAwB;AAAA,EAAA,IACxFd,GACEe,IAAyBC,EAAgC,IAAI,GAC7DC,IAAeH,IACnB,gBAAAI,EAAC,QAAA,EAAK,WAAU,mBAAmBL,UAAAA,EAAAA,CAAe,IAChD,CAAA,GAEE;AAAA,IAAEM,OAAOC;AAAAA,IAAaC,UAAUC;AAAAA,IAAgBC,eAAAA;AAAAA,EAAAA,IAAkBC,EAAS;AAAA,IAC/EC,MAAMC;AAAAA,IACNd,QAAAA;AAAAA,IACAH,OAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,oBAAAA;AAAAA,IACAJ,KAAAA;AAAAA,IACAD,KAAMqB,EAAEC,MAAMtB,CAAG,IAAWE,IAAgBN,SAAY,IAAnCI;AAAAA,IACrBuB,OAAO;AAAA,IACPC,YAAY,CAAC,GAAG;AAAA,IAChBC,oBAAoB;AAAA,EAAA,GACnB;AAAA,IACDC,KAAKjB;AAAAA,IACLkB,UAAUA,CAACC,GAAIC,GAASC,MAAU;AAChC,YAAMC,IAAcC,EAAaH,EAAQZ,aAAa;AACtDvB,MAAAA,GAAOuC,WAAW;AAAA,QAChB,GAAGH;AAAAA,QACHI,QAAQ;AAAA,UACN,GAAGJ,GAAOI;AAAAA,UACVC,MAAMzC,GAAOyC;AAAAA,UACbtB,OAAOkB;AAAAA,QAAAA;AAAAA,MACT,CACsC;AAAA,IAC1C;AAAA,EAAA,CACD,GAMKK,IAAaA,CAACN,MAA4B;AAC9C,QAAI,CAACT,EAAEC,MAAMtB,CAAG,GAAG;AACjB,YAAMqC,IAAeC,WAAWrB,CAAa;AAC7C,OAAII,EAAEkB,MAAMF,CAAY,KAAKA,IAAerC,OAC1CgB,EAAeK,EAAEmB,SAASxC,CAAG,CAAC,GAC9BN,GAAOuC,WAAW;AAAA,QAChB,GAAGH;AAAAA,QACHI,QAAQ;AAAA,UACN,GAAGJ,GAAOI;AAAAA,UACVC,MAAMzC,GAAOyC;AAAAA,UACbtB,OAAOb;AAAAA,QAAAA;AAAAA,MACT,CACmB;AAAA,IAEzB;AACAN,IAAAA,GAAO+C,SAASX,CAAK;AAAA,EACvB;AAEAY,SAAAA,EAAU,MAAM;AACd,UAAMC,IAAgBtB,EAAEmB,SAAS9C,GAAOmB,KAAK;AAC7C,IAAI,CAACQ,EAAEC,MAAM5B,GAAOmB,KAAK,KAAK,CAACQ,EAAEuB,QAC/BN,WAAWK,CAAa,GAAGL,WAAWrB,CAAa,CACrD,KACED,EAAe2B,CAAa;AAAA,EAEhC,GAAG,CAACjD,GAAOmB,KAAK,CAAC,GAGf,gBAAAD,EAACiC,GAAA,EACC,GAAInD,GACJ,UAAUoD,EAAUrC,GAAwBd,CAAQ,GACpD,MAAK,QACL,UAAU,MAAM;AAAA,EAAE,GAClB,cAAAgB,GACA,QAAQyB,GACR,OAAOtB,GACP,WAAAjB,GACA,cAAAC,GACA,cAAAC,GAA2B;AAEjC;"}
1
+ {"version":3,"file":"Currency.js","sources":["../../../src/lib/inputs/number/Currency.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport _ from 'lodash';\nimport { useIMask } from 'react-imask';\nimport { ICurrencyProps } from './types';\nimport { numberToEnUS } from './format_number';\nimport InputTextBase from '../base/InputTextBase';\nimport { mergeRefs } from '../../form2/helpers';\nimport type { CustomInputEvent } from '../base/types';\n\nconst CurrencyField = (props: ICurrencyProps) => {\n const {\n inputRef = undefined, textAlign = 'left', themePopover = 'light', popoverAlign = 'left',\n min = undefined, max = undefined, allowNegative = false, scale = 2, normalizeZeros = true,\n padFractionalZeros = false, unmask = true, currencySymbol = 'R$', displayCurrencySymbol = true,\n } = props;\n const currencyNumberInputRef = useRef<HTMLInputElement | null>(null);\n const leftElements = displayCurrencySymbol ?\n <span className=\"currency-symbol\">{currencySymbol}</span>\n : [];\n\n const { value: maskedValue, setValue: setMaskedValue, unmaskedValue } = useIMask({\n mask: Number,\n unmask,\n scale,\n normalizeZeros,\n padFractionalZeros,\n max,\n min: !_.isNil(min) ? min : (allowNegative ? undefined : 0),\n radix: ',',\n mapToRadix: ['.'],\n thousandsSeparator: '.',\n }, {\n ref: currencyNumberInputRef,\n onAccept: (__, options, event) => {\n const parsedValue = numberToEnUS(options.unmaskedValue);\n props?.onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: parsedValue as any,\n },\n } as React.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 = (event: CustomInputEvent) => {\n if (!_.isNil(min)) {\n const currentValue = parseFloat(unmaskedValue) as number;\n if (_.isNaN(currentValue) || currentValue < min) {\n setMaskedValue(_.toString(min));\n props?.onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: min as any,\n },\n } as CustomInputEvent);\n }\n }\n props?.onBlur?.(event);\n };\n\n useEffect(() => {\n const valueToString = _.toString(props?.value);\n if (!_.isNil(props?.value) && !_.isEqual(\n parseFloat(valueToString), parseFloat(unmaskedValue),\n )) {\n setMaskedValue(valueToString);\n }\n }, [props?.value]);\n\n return (\n <InputTextBase\n {...props}\n inputRef={mergeRefs(currencyNumberInputRef, inputRef) as any}\n type=\"text\"\n onChange={() => { }}\n leftElements={leftElements}\n onBlur={handleBlur}\n value={maskedValue}\n textAlign={textAlign}\n themePopover={themePopover}\n popoverAlign={popoverAlign} />\n );\n};\n\nexport default CurrencyField;\n"],"names":["CurrencyField","props","inputRef","undefined","textAlign","themePopover","popoverAlign","min","max","allowNegative","scale","normalizeZeros","padFractionalZeros","unmask","currencySymbol","displayCurrencySymbol","currencyNumberInputRef","useRef","leftElements","jsx","value","maskedValue","setValue","setMaskedValue","unmaskedValue","useIMask","mask","Number","_","isNil","radix","mapToRadix","thousandsSeparator","ref","onAccept","__","options","event","parsedValue","numberToEnUS","onChange","target","name","handleBlur","currentValue","parseFloat","isNaN","toString","onBlur","useEffect","valueToString","isEqual","InputTextBase","mergeRefs"],"mappings":";;;;;;;AASA,MAAMA,IAAgBA,CAACC,MAA0B;AAC/C,QAAM;AAAA,IACJC,UAAAA,IAAWC;AAAAA,IAAWC,WAAAA,IAAY;AAAA,IAAQC,cAAAA,IAAe;AAAA,IAASC,cAAAA,IAAe;AAAA,IACjFC,KAAAA,IAAMJ;AAAAA,IAAWK,KAAAA,IAAML;AAAAA,IAAWM,eAAAA,IAAgB;AAAA,IAAOC,OAAAA,IAAQ;AAAA,IAAGC,gBAAAA,IAAiB;AAAA,IACrFC,oBAAAA,IAAqB;AAAA,IAAOC,QAAAA,IAAS;AAAA,IAAMC,gBAAAA,IAAiB;AAAA,IAAMC,uBAAAA,IAAwB;AAAA,EAAA,IACxFd,GACEe,IAAyBC,EAAgC,IAAI,GAC7DC,IAAeH,IACnB,gBAAAI,EAAC,QAAA,EAAK,WAAU,mBAAmBL,UAAAA,EAAAA,CAAe,IAChD,CAAA,GAEE;AAAA,IAAEM,OAAOC;AAAAA,IAAaC,UAAUC;AAAAA,IAAgBC,eAAAA;AAAAA,EAAAA,IAAkBC,EAAS;AAAA,IAC/EC,MAAMC;AAAAA,IACNd,QAAAA;AAAAA,IACAH,OAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,oBAAAA;AAAAA,IACAJ,KAAAA;AAAAA,IACAD,KAAMqB,EAAEC,MAAMtB,CAAG,IAAWE,IAAgBN,SAAY,IAAnCI;AAAAA,IACrBuB,OAAO;AAAA,IACPC,YAAY,CAAC,GAAG;AAAA,IAChBC,oBAAoB;AAAA,EAAA,GACnB;AAAA,IACDC,KAAKjB;AAAAA,IACLkB,UAAUA,CAACC,GAAIC,GAASC,MAAU;AAChC,YAAMC,IAAcC,EAAaH,EAAQZ,aAAa;AACtDvB,MAAAA,GAAOuC,WAAW;AAAA,QAChB,GAAGH;AAAAA,QACHI,QAAQ;AAAA,UACN,GAAGJ,GAAOI;AAAAA,UACVC,MAAMzC,GAAOyC;AAAAA,UACbtB,OAAOkB;AAAAA,QAAAA;AAAAA,MACT,CACsC;AAAA,IAC1C;AAAA,EAAA,CACD,GAMKK,IAAaA,CAACN,MAA4B;AAC9C,QAAI,CAACT,EAAEC,MAAMtB,CAAG,GAAG;AACjB,YAAMqC,IAAeC,WAAWrB,CAAa;AAC7C,OAAII,EAAEkB,MAAMF,CAAY,KAAKA,IAAerC,OAC1CgB,EAAeK,EAAEmB,SAASxC,CAAG,CAAC,GAC9BN,GAAOuC,WAAW;AAAA,QAChB,GAAGH;AAAAA,QACHI,QAAQ;AAAA,UACN,GAAGJ,GAAOI;AAAAA,UACVC,MAAMzC,GAAOyC;AAAAA,UACbtB,OAAOb;AAAAA,QAAAA;AAAAA,MACT,CACmB;AAAA,IAEzB;AACAN,IAAAA,GAAO+C,SAASX,CAAK;AAAA,EACvB;AAEAY,SAAAA,EAAU,MAAM;AACd,UAAMC,IAAgBtB,EAAEmB,SAAS9C,GAAOmB,KAAK;AAC7C,IAAI,CAACQ,EAAEC,MAAM5B,GAAOmB,KAAK,KAAK,CAACQ,EAAEuB,QAC/BN,WAAWK,CAAa,GAAGL,WAAWrB,CAAa,CACrD,KACED,EAAe2B,CAAa;AAAA,EAEhC,GAAG,CAACjD,GAAOmB,KAAK,CAAC,GAGf,gBAAAD,EAACiC,GAAA,EACC,GAAInD,GACJ,UAAUoD,EAAUrC,GAAwBd,CAAQ,GACpD,MAAK,QACL,UAAU,MAAM;AAAA,EAAE,GAClB,cAAAgB,GACA,QAAQyB,GACR,OAAOtB,GACP,WAAAjB,GACA,cAAAC,GACA,cAAAC,GAA2B;AAEjC;"}
@@ -1,82 +1,72 @@
1
1
  import { jsx as R } from "react/jsx-runtime";
2
- import a from "../../_virtual/lodash.js";
2
+ import t from "../../_virtual/lodash.js";
3
3
  import { useRef as F, useEffect as S } from "react";
4
- import "../../node_modules/imask/esm/index.js";
5
- import "../../node_modules/imask/esm/controls/input.js";
6
- import "../../node_modules/imask/esm/masked/factory.js";
7
- import "../../node_modules/imask/esm/controls/mask-element.js";
8
- import "../../node_modules/imask/esm/controls/html-input-mask-element.js";
9
- import "../../node_modules/imask/esm/controls/html-mask-element.js";
10
- import "../../node_modules/imask/esm/controls/html-contenteditable-mask-element.js";
11
- import "../../node_modules/imask/esm/controls/input-history.js";
12
- import "../../node_modules/react-imask/esm/input.js";
13
- import B from "../../node_modules/react-imask/esm/hook.js";
14
- import "../../node_modules/react-imask/esm/mixin.js";
4
+ import { useIMask as B } from "react-imask";
15
5
  import { numberToEnUS as T } from "./format_number.js";
16
6
  import b from "../base/InputTextBase.js";
17
7
  import { mergeRefs as A } from "../../form2/helpers.js";
18
- const K = (e) => {
8
+ const w = (e) => {
19
9
  const {
20
- textAlign: u = "left",
10
+ textAlign: m = "left",
21
11
  themePopover: s = "light",
22
12
  popoverAlign: f = "left",
23
- min: o = void 0,
13
+ min: l = void 0,
24
14
  max: d = void 0,
25
15
  allowNegative: c = !1,
26
- scale: p = 2,
27
- normalizeZeros: g = !0,
28
- padFractionalZeros: v = !0,
29
- unmask: x = !0,
30
- inputRef: N = void 0
31
- } = e, i = F(null), {
32
- value: h,
33
- setValue: m,
34
- unmaskedValue: l
16
+ scale: g = 2,
17
+ normalizeZeros: v = !0,
18
+ padFractionalZeros: x = !0,
19
+ unmask: N = !0,
20
+ inputRef: h = void 0
21
+ } = e, n = F(null), {
22
+ value: k,
23
+ setValue: r,
24
+ unmaskedValue: i
35
25
  } = B({
36
26
  mask: Number,
37
- unmask: x,
38
- scale: p,
39
- normalizeZeros: g,
40
- padFractionalZeros: v,
27
+ unmask: N,
28
+ scale: g,
29
+ normalizeZeros: v,
30
+ padFractionalZeros: x,
41
31
  max: d,
42
- min: a.isNil(o) ? c ? void 0 : 0 : o,
32
+ min: t.isNil(l) ? c ? void 0 : 0 : l,
43
33
  radix: ",",
44
34
  mapToRadix: ["."],
45
35
  thousandsSeparator: "."
46
36
  }, {
47
- ref: i,
48
- onAccept: (t, r, n) => {
49
- const V = T(r.unmaskedValue);
37
+ ref: n,
38
+ onAccept: (a, o, u) => {
39
+ const p = T(o.unmaskedValue);
50
40
  e?.onChange?.({
51
- ...n,
41
+ ...u,
52
42
  target: {
53
- ...n?.target,
43
+ ...u?.target,
54
44
  name: e?.name,
55
- value: V
45
+ value: p
56
46
  }
57
47
  });
58
48
  }
59
- }), k = (t) => {
60
- if (!a.isNil(o)) {
61
- const r = parseFloat(l);
62
- (a.isNaN(r) || r < o) && (m(a.toString(o)), e?.onChange?.({
63
- ...t,
49
+ }), V = (a) => {
50
+ if (!t.isNil(l)) {
51
+ const o = parseFloat(i);
52
+ (t.isNaN(o) || o < l) && (r(t.toString(l)), e?.onChange?.({
53
+ ...a,
64
54
  target: {
65
- ...t?.target,
55
+ ...a?.target,
66
56
  name: e?.name,
67
- value: o
57
+ value: l
68
58
  }
69
59
  }));
70
60
  }
71
- e?.onBlur?.(t);
61
+ e?.onBlur?.(a);
72
62
  };
73
63
  return S(() => {
74
- const t = a.toString(e?.value);
75
- !a.isNil(e?.value) && !a.isEqual(parseFloat(t), parseFloat(l)) && m(t);
76
- }, [e?.value]), /* @__PURE__ */ R(b, { ...e, inputRef: A(i, N), type: "text", onChange: () => {
77
- }, onBlur: k, value: h, textAlign: u, themePopover: s, popoverAlign: f });
64
+ const a = t.toString(e?.value);
65
+ !t.isNil(e?.value) && !t.isEqual(parseFloat(a), parseFloat(i)) && r(a);
66
+ }, [e?.value]), /* @__PURE__ */ R(b, { ...e, inputRef: A(n, h), type: "text", onChange: () => {
67
+ }, onBlur: V, value: k, textAlign: m, themePopover: s, popoverAlign: f });
78
68
  };
79
69
  export {
80
- K as default
70
+ w as default
81
71
  };
82
72
  //# sourceMappingURL=Decimal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Decimal.js","sources":["../../../src/lib/inputs/number/Decimal.tsx"],"sourcesContent":["import _ from 'lodash';\nimport React, { useEffect, useRef } from 'react';\nimport { useIMask } from 'react-imask';\nimport { IDecimalProps } from './types';\nimport { numberToEnUS } from './format_number';\nimport InputTextBase from '../base/InputTextBase';\nimport type { CustomInputEvent } from '../base/types';\nimport { mergeRefs } from '../../form2/helpers';\n\nconst DecimalField = (props: IDecimalProps) => {\n const {\n textAlign = 'left', themePopover = 'light', popoverAlign = 'left', min = undefined,\n max = undefined, allowNegative = false, scale = 2, normalizeZeros = true,\n padFractionalZeros = true, unmask = true, inputRef = undefined,\n } = props;\n const decimalNumberInputRef = useRef<HTMLInputElement | null>(null);\n\n const { value: maskedValue, setValue: setMaskedValue, unmaskedValue } = useIMask({\n mask: Number,\n unmask,\n scale,\n normalizeZeros,\n padFractionalZeros,\n max,\n min: !_.isNil(min) ? min : (allowNegative ? undefined : 0),\n radix: ',',\n mapToRadix: ['.'],\n thousandsSeparator: '.',\n }, {\n ref: decimalNumberInputRef,\n onAccept: (__, options, event) => {\n const parsedValue = numberToEnUS(options.unmaskedValue);\n props?.onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: parsedValue as any,\n },\n } as React.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 = (event: CustomInputEvent) => {\n if (!_.isNil(min)) {\n const currentValue = parseFloat(unmaskedValue) as number;\n if (_.isNaN(currentValue) || currentValue < min) {\n setMaskedValue(_.toString(min));\n props?.onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: min as any,\n },\n } as CustomInputEvent);\n }\n }\n props?.onBlur?.(event);\n };\n\n useEffect(() => {\n const valueToString = _.toString(props?.value);\n if (!_.isNil(props?.value) && !_.isEqual(\n parseFloat(valueToString), parseFloat(unmaskedValue),\n )) {\n setMaskedValue(valueToString);\n }\n }, [props?.value]);\n\n return (\n <InputTextBase\n {...props}\n inputRef={mergeRefs(decimalNumberInputRef, inputRef) as any}\n type=\"text\"\n onChange={() => { }}\n onBlur={handleBlur}\n value={maskedValue}\n textAlign={textAlign}\n themePopover={themePopover}\n popoverAlign={popoverAlign} />\n );\n};\n\nexport default DecimalField;\n"],"names":["DecimalField","props","textAlign","themePopover","popoverAlign","min","undefined","max","allowNegative","scale","normalizeZeros","padFractionalZeros","unmask","inputRef","decimalNumberInputRef","useRef","value","maskedValue","setValue","setMaskedValue","unmaskedValue","useIMask","mask","Number","_","isNil","radix","mapToRadix","thousandsSeparator","ref","onAccept","__","options","event","parsedValue","numberToEnUS","onChange","target","name","handleBlur","currentValue","parseFloat","isNaN","toString","onBlur","useEffect","valueToString","isEqual","jsx","InputTextBase","mergeRefs"],"mappings":";;;;;;;;;;;;;;;;;AASA,MAAMA,IAAeA,CAACC,MAAyB;AAC7C,QAAM;AAAA,IACJC,WAAAA,IAAY;AAAA,IAAQC,cAAAA,IAAe;AAAA,IAASC,cAAAA,IAAe;AAAA,IAAQC,KAAAA,IAAMC;AAAAA,IACzEC,KAAAA,IAAMD;AAAAA,IAAWE,eAAAA,IAAgB;AAAA,IAAOC,OAAAA,IAAQ;AAAA,IAAGC,gBAAAA,IAAiB;AAAA,IACpEC,oBAAAA,IAAqB;AAAA,IAAMC,QAAAA,IAAS;AAAA,IAAMC,UAAAA,IAAWP;AAAAA,EAAAA,IACnDL,GACEa,IAAwBC,EAAgC,IAAI,GAE5D;AAAA,IAAEC,OAAOC;AAAAA,IAAaC,UAAUC;AAAAA,IAAgBC,eAAAA;AAAAA,EAAAA,IAAkBC,EAAS;AAAA,IAC/EC,MAAMC;AAAAA,IACNX,QAAAA;AAAAA,IACAH,OAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,oBAAAA;AAAAA,IACAJ,KAAAA;AAAAA,IACAF,KAAMmB,EAAEC,MAAMpB,CAAG,IAAWG,IAAgBF,SAAY,IAAnCD;AAAAA,IACrBqB,OAAO;AAAA,IACPC,YAAY,CAAC,GAAG;AAAA,IAChBC,oBAAoB;AAAA,EAAA,GACnB;AAAA,IACDC,KAAKf;AAAAA,IACLgB,UAAUA,CAACC,GAAIC,GAASC,MAAU;AAChC,YAAMC,IAAcC,EAAaH,EAAQZ,aAAa;AACtDnB,MAAAA,GAAOmC,WAAW;AAAA,QAChB,GAAGH;AAAAA,QACHI,QAAQ;AAAA,UACN,GAAGJ,GAAOI;AAAAA,UACVC,MAAMrC,GAAOqC;AAAAA,UACbtB,OAAOkB;AAAAA,QAAAA;AAAAA,MACT,CACsC;AAAA,IAC1C;AAAA,EAAA,CACD,GAMKK,IAAaA,CAACN,MAA4B;AAC9C,QAAI,CAACT,EAAEC,MAAMpB,CAAG,GAAG;AACjB,YAAMmC,IAAeC,WAAWrB,CAAa;AAC7C,OAAII,EAAEkB,MAAMF,CAAY,KAAKA,IAAenC,OAC1Cc,EAAeK,EAAEmB,SAAStC,CAAG,CAAC,GAC9BJ,GAAOmC,WAAW;AAAA,QAChB,GAAGH;AAAAA,QACHI,QAAQ;AAAA,UACN,GAAGJ,GAAOI;AAAAA,UACVC,MAAMrC,GAAOqC;AAAAA,UACbtB,OAAOX;AAAAA,QAAAA;AAAAA,MACT,CACmB;AAAA,IAEzB;AACAJ,IAAAA,GAAO2C,SAASX,CAAK;AAAA,EACvB;AAEAY,SAAAA,EAAU,MAAM;AACd,UAAMC,IAAgBtB,EAAEmB,SAAS1C,GAAOe,KAAK;AAC7C,IAAI,CAACQ,EAAEC,MAAMxB,GAAOe,KAAK,KAAK,CAACQ,EAAEuB,QAC/BN,WAAWK,CAAa,GAAGL,WAAWrB,CAAa,CACrD,KACED,EAAe2B,CAAa;AAAA,EAEhC,GAAG,CAAC7C,GAAOe,KAAK,CAAC,GAGf,gBAAAgC,EAACC,GAAA,EACC,GAAIhD,GACJ,UAAUiD,EAAUpC,GAAuBD,CAAQ,GACnD,MAAK,QACL,UAAU,MAAM;AAAA,EAAE,GAClB,QAAQ0B,GACR,OAAOtB,GACP,WAAAf,GACA,cAAAC,GACA,cAAAC,GAA2B;AAEjC;"}
1
+ {"version":3,"file":"Decimal.js","sources":["../../../src/lib/inputs/number/Decimal.tsx"],"sourcesContent":["import _ from 'lodash';\nimport React, { useEffect, useRef } from 'react';\nimport { useIMask } from 'react-imask';\nimport { IDecimalProps } from './types';\nimport { numberToEnUS } from './format_number';\nimport InputTextBase from '../base/InputTextBase';\nimport type { CustomInputEvent } from '../base/types';\nimport { mergeRefs } from '../../form2/helpers';\n\nconst DecimalField = (props: IDecimalProps) => {\n const {\n textAlign = 'left', themePopover = 'light', popoverAlign = 'left', min = undefined,\n max = undefined, allowNegative = false, scale = 2, normalizeZeros = true,\n padFractionalZeros = true, unmask = true, inputRef = undefined,\n } = props;\n const decimalNumberInputRef = useRef<HTMLInputElement | null>(null);\n\n const { value: maskedValue, setValue: setMaskedValue, unmaskedValue } = useIMask({\n mask: Number,\n unmask,\n scale,\n normalizeZeros,\n padFractionalZeros,\n max,\n min: !_.isNil(min) ? min : (allowNegative ? undefined : 0),\n radix: ',',\n mapToRadix: ['.'],\n thousandsSeparator: '.',\n }, {\n ref: decimalNumberInputRef,\n onAccept: (__, options, event) => {\n const parsedValue = numberToEnUS(options.unmaskedValue);\n props?.onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: parsedValue as any,\n },\n } as React.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 = (event: CustomInputEvent) => {\n if (!_.isNil(min)) {\n const currentValue = parseFloat(unmaskedValue) as number;\n if (_.isNaN(currentValue) || currentValue < min) {\n setMaskedValue(_.toString(min));\n props?.onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: min as any,\n },\n } as CustomInputEvent);\n }\n }\n props?.onBlur?.(event);\n };\n\n useEffect(() => {\n const valueToString = _.toString(props?.value);\n if (!_.isNil(props?.value) && !_.isEqual(\n parseFloat(valueToString), parseFloat(unmaskedValue),\n )) {\n setMaskedValue(valueToString);\n }\n }, [props?.value]);\n\n return (\n <InputTextBase\n {...props}\n inputRef={mergeRefs(decimalNumberInputRef, inputRef) as any}\n type=\"text\"\n onChange={() => { }}\n onBlur={handleBlur}\n value={maskedValue}\n textAlign={textAlign}\n themePopover={themePopover}\n popoverAlign={popoverAlign} />\n );\n};\n\nexport default DecimalField;\n"],"names":["DecimalField","props","textAlign","themePopover","popoverAlign","min","undefined","max","allowNegative","scale","normalizeZeros","padFractionalZeros","unmask","inputRef","decimalNumberInputRef","useRef","value","maskedValue","setValue","setMaskedValue","unmaskedValue","useIMask","mask","Number","_","isNil","radix","mapToRadix","thousandsSeparator","ref","onAccept","__","options","event","parsedValue","numberToEnUS","onChange","target","name","handleBlur","currentValue","parseFloat","isNaN","toString","onBlur","useEffect","valueToString","isEqual","jsx","InputTextBase","mergeRefs"],"mappings":";;;;;;;AASA,MAAMA,IAAeA,CAACC,MAAyB;AAC7C,QAAM;AAAA,IACJC,WAAAA,IAAY;AAAA,IAAQC,cAAAA,IAAe;AAAA,IAASC,cAAAA,IAAe;AAAA,IAAQC,KAAAA,IAAMC;AAAAA,IACzEC,KAAAA,IAAMD;AAAAA,IAAWE,eAAAA,IAAgB;AAAA,IAAOC,OAAAA,IAAQ;AAAA,IAAGC,gBAAAA,IAAiB;AAAA,IACpEC,oBAAAA,IAAqB;AAAA,IAAMC,QAAAA,IAAS;AAAA,IAAMC,UAAAA,IAAWP;AAAAA,EAAAA,IACnDL,GACEa,IAAwBC,EAAgC,IAAI,GAE5D;AAAA,IAAEC,OAAOC;AAAAA,IAAaC,UAAUC;AAAAA,IAAgBC,eAAAA;AAAAA,EAAAA,IAAkBC,EAAS;AAAA,IAC/EC,MAAMC;AAAAA,IACNX,QAAAA;AAAAA,IACAH,OAAAA;AAAAA,IACAC,gBAAAA;AAAAA,IACAC,oBAAAA;AAAAA,IACAJ,KAAAA;AAAAA,IACAF,KAAMmB,EAAEC,MAAMpB,CAAG,IAAWG,IAAgBF,SAAY,IAAnCD;AAAAA,IACrBqB,OAAO;AAAA,IACPC,YAAY,CAAC,GAAG;AAAA,IAChBC,oBAAoB;AAAA,EAAA,GACnB;AAAA,IACDC,KAAKf;AAAAA,IACLgB,UAAUA,CAACC,GAAIC,GAASC,MAAU;AAChC,YAAMC,IAAcC,EAAaH,EAAQZ,aAAa;AACtDnB,MAAAA,GAAOmC,WAAW;AAAA,QAChB,GAAGH;AAAAA,QACHI,QAAQ;AAAA,UACN,GAAGJ,GAAOI;AAAAA,UACVC,MAAMrC,GAAOqC;AAAAA,UACbtB,OAAOkB;AAAAA,QAAAA;AAAAA,MACT,CACsC;AAAA,IAC1C;AAAA,EAAA,CACD,GAMKK,IAAaA,CAACN,MAA4B;AAC9C,QAAI,CAACT,EAAEC,MAAMpB,CAAG,GAAG;AACjB,YAAMmC,IAAeC,WAAWrB,CAAa;AAC7C,OAAII,EAAEkB,MAAMF,CAAY,KAAKA,IAAenC,OAC1Cc,EAAeK,EAAEmB,SAAStC,CAAG,CAAC,GAC9BJ,GAAOmC,WAAW;AAAA,QAChB,GAAGH;AAAAA,QACHI,QAAQ;AAAA,UACN,GAAGJ,GAAOI;AAAAA,UACVC,MAAMrC,GAAOqC;AAAAA,UACbtB,OAAOX;AAAAA,QAAAA;AAAAA,MACT,CACmB;AAAA,IAEzB;AACAJ,IAAAA,GAAO2C,SAASX,CAAK;AAAA,EACvB;AAEAY,SAAAA,EAAU,MAAM;AACd,UAAMC,IAAgBtB,EAAEmB,SAAS1C,GAAOe,KAAK;AAC7C,IAAI,CAACQ,EAAEC,MAAMxB,GAAOe,KAAK,KAAK,CAACQ,EAAEuB,QAC/BN,WAAWK,CAAa,GAAGL,WAAWrB,CAAa,CACrD,KACED,EAAe2B,CAAa;AAAA,EAEhC,GAAG,CAAC7C,GAAOe,KAAK,CAAC,GAGf,gBAAAgC,EAACC,GAAA,EACC,GAAIhD,GACJ,UAAUiD,EAAUpC,GAAuBD,CAAQ,GACnD,MAAK,QACL,UAAU,MAAM;AAAA,EAAE,GAClB,QAAQ0B,GACR,OAAOtB,GACP,WAAAf,GACA,cAAAC,GACA,cAAAC,GAA2B;AAEjC;"}