linear-react-components-ui 2.0.1-beta.0 → 2.0.1-beta.2

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 (47) hide show
  1. package/lib/_virtual/index.js +8 -0
  2. package/lib/_virtual/index.js.map +1 -0
  3. package/lib/_virtual/index2.js +5 -0
  4. package/lib/_virtual/index2.js.map +1 -0
  5. package/lib/_virtual/index3.js +5 -0
  6. package/lib/_virtual/index3.js.map +1 -0
  7. package/lib/_virtual/react-is.development.js +5 -0
  8. package/lib/_virtual/react-is.development.js.map +1 -0
  9. package/lib/_virtual/react-is.production.min.js +5 -0
  10. package/lib/_virtual/react-is.production.min.js.map +1 -0
  11. package/lib/inputs/number/Currency.js +11 -17
  12. package/lib/inputs/number/Currency.js.map +1 -1
  13. package/lib/inputs/number/Decimal.js +11 -17
  14. package/lib/inputs/number/Decimal.js.map +1 -1
  15. package/lib/inputs/number/index.js +9 -15
  16. package/lib/inputs/number/index.js.map +1 -1
  17. package/lib/menus/float/SubMenuContainer.d.ts +28 -10
  18. package/lib/menus/float/SubMenuContainer.js +83 -97
  19. package/lib/menus/float/SubMenuContainer.js.map +1 -1
  20. package/lib/node_modules/lodash/lodash.js +2 -2
  21. package/lib/node_modules/lodash/lodash.js.map +1 -1
  22. package/lib/node_modules/object-assign/index.js +79 -0
  23. package/lib/node_modules/object-assign/index.js.map +1 -0
  24. package/lib/node_modules/prop-types/checkPropTypes.js +69 -0
  25. package/lib/node_modules/prop-types/checkPropTypes.js.map +1 -0
  26. package/lib/node_modules/prop-types/factoryWithThrowingShims.js +59 -0
  27. package/lib/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -0
  28. package/lib/node_modules/prop-types/factoryWithTypeCheckers.js +452 -0
  29. package/lib/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -0
  30. package/lib/node_modules/prop-types/index.js +21 -0
  31. package/lib/node_modules/prop-types/index.js.map +1 -0
  32. package/lib/node_modules/prop-types/lib/ReactPropTypesSecret.js +13 -0
  33. package/lib/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -0
  34. package/lib/node_modules/prop-types/lib/has.js +12 -0
  35. package/lib/node_modules/prop-types/lib/has.js.map +1 -0
  36. package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +166 -0
  37. package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -0
  38. package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +107 -0
  39. package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
  40. package/lib/node_modules/prop-types/node_modules/react-is/index.js +18 -0
  41. package/lib/node_modules/prop-types/node_modules/react-is/index.js.map +1 -0
  42. package/lib/treetable/Row.js +309 -284
  43. package/lib/treetable/Row.js.map +1 -1
  44. package/lib/treetable/helpers.d.ts +2 -0
  45. package/lib/treetable/helpers.js.map +1 -1
  46. package/lib/treetable/types.d.ts +49 -0
  47. package/package.json +1 -1
@@ -0,0 +1,8 @@
1
+ import { getDefaultExportFromCjs } from "./_commonjsHelpers.js";
2
+ import { __require as requirePropTypes } from "../node_modules/prop-types/index.js";
3
+ var propTypesExports = /* @__PURE__ */ requirePropTypes();
4
+ const PropTypes = /* @__PURE__ */ getDefaultExportFromCjs(propTypesExports);
5
+ export {
6
+ PropTypes as default
7
+ };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,5 @@
1
+ var propTypes = { exports: {} };
2
+ export {
3
+ propTypes as __module
4
+ };
5
+ //# sourceMappingURL=index2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,5 @@
1
+ var reactIs = { exports: {} };
2
+ export {
3
+ reactIs as __module
4
+ };
5
+ //# sourceMappingURL=index3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,5 @@
1
+ var reactIs_development = {};
2
+ export {
3
+ reactIs_development as __exports
4
+ };
5
+ //# sourceMappingURL=react-is.development.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-is.development.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,5 @@
1
+ var reactIs_production_min = {};
2
+ export {
3
+ reactIs_production_min as __exports
4
+ };
5
+ //# sourceMappingURL=react-is.production.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-is.production.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -2,7 +2,7 @@ import { jsx } from "react/jsx-runtime";
2
2
  import { useRef, useEffect } from "react";
3
3
  import _ from "../../_virtual/lodash.js";
4
4
  import { useIMask } from "react-imask";
5
- import { numberToPtBR } from "./format_number.js";
5
+ import { numberToEnUS, numberToPtBR } from "./format_number.js";
6
6
  import InputTextBase from "../base/InputTextBase.js";
7
7
  import { mergeRefs } from "../../form2/helpers.js";
8
8
  const CurrencyField = (props) => {
@@ -26,8 +26,7 @@ const CurrencyField = (props) => {
26
26
  const leftElements = displayCurrencySymbol ? /* @__PURE__ */ jsx("span", { className: "currency-symbol", children: currencySymbol }) : [];
27
27
  const {
28
28
  value: maskedValue,
29
- setValue: setMaskedValue,
30
- typedValue
29
+ setValue: setMaskedValue
31
30
  } = useIMask({
32
31
  mask: Number,
33
32
  unmask,
@@ -41,25 +40,26 @@ const CurrencyField = (props) => {
41
40
  thousandsSeparator: "."
42
41
  }, {
43
42
  ref: currencyNumberInputRef,
44
- onAccept: (__, maskRef, event) => {
43
+ onAccept: (__, options, event) => {
45
44
  if (isResetting.current) {
46
45
  isResetting.current = false;
47
46
  return;
48
47
  }
48
+ const parsedValue = numberToEnUS(options.unmaskedValue);
49
49
  props?.onChange?.({
50
50
  ...event,
51
51
  target: {
52
52
  ...event?.target,
53
53
  name: props?.name,
54
- value: maskRef.typedValue
54
+ value: parsedValue
55
55
  }
56
56
  });
57
57
  }
58
58
  });
59
59
  const handleBlur = (event_0) => {
60
- const currentValue = typedValue;
61
60
  if (!_.isNil(min)) {
62
- if (_.isNil(currentValue) || _.isNaN(currentValue) || currentValue < min) {
61
+ const currentValue = numberToEnUS(maskedValue);
62
+ if (_.isNaN(currentValue) || currentValue < min) {
63
63
  setMaskedValue(numberToPtBR(min) ?? _.toString(min));
64
64
  props?.onChange?.({
65
65
  ...event_0,
@@ -71,13 +71,7 @@ const CurrencyField = (props) => {
71
71
  });
72
72
  }
73
73
  }
74
- props?.onBlur?.({
75
- ...event_0,
76
- target: {
77
- ...event_0?.target,
78
- value: currentValue
79
- }
80
- });
74
+ props?.onBlur?.(event_0);
81
75
  };
82
76
  useEffect(() => {
83
77
  if (_.isNil(props?.value)) {
@@ -87,9 +81,9 @@ const CurrencyField = (props) => {
87
81
  }
88
82
  return;
89
83
  }
90
- const numericValue = typeof props.value === "string" ? parseFloat(props.value) : props.value;
91
- if (!_.isEqual(typedValue, numericValue)) {
92
- setMaskedValue(numberToPtBR(props?.value) ?? "");
84
+ const valueToPtBR = numberToPtBR(props?.value) ?? "";
85
+ if (!_.isEqual(parseFloat(_.toString(props?.value)), numberToEnUS(maskedValue))) {
86
+ setMaskedValue(valueToPtBR);
93
87
  }
94
88
  }, [props?.value]);
95
89
  return /* @__PURE__ */ jsx(InputTextBase, { ...props, inputRef: mergeRefs(currencyNumberInputRef, inputRef), type: "text", onChange: () => {
@@ -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 { numberToPtBR } 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 = true, unmask = true, currencySymbol = 'R$', displayCurrencySymbol = true,\n } = props;\n const currencyNumberInputRef = useRef<HTMLInputElement | null>(null);\n const isResetting = useRef(false);\n const leftElements = displayCurrencySymbol ?\n <span className=\"currency-symbol\">{currencySymbol}</span>\n : [];\n\n const { value: maskedValue, setValue: setMaskedValue, typedValue } = 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: (__, maskRef, event) => {\n if (isResetting.current) {\n isResetting.current = false;\n return;\n }\n props?.onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: maskRef.typedValue 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 const currentValue = typedValue as number;\n if (!_.isNil(min)) {\n if (_.isNil(currentValue) || _.isNaN(currentValue) || currentValue < min) {\n setMaskedValue(numberToPtBR(min) ?? _.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?.({ \n ...event, \n target: { \n ...event?.target, \n value: currentValue as any, \n }, \n });\n };\n\n useEffect(() => {\n if (_.isNil(props?.value)) {\n if (maskedValue !== '') {\n isResetting.current = true;\n setMaskedValue('');\n }\n return;\n }\n const numericValue = typeof props.value === 'string' ? parseFloat(props.value) : props.value;\n if (!_.isEqual(typedValue, numericValue)) {\n setMaskedValue(numberToPtBR(props?.value) ?? '');\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","isResetting","leftElements","value","maskedValue","setValue","setMaskedValue","typedValue","useIMask","mask","Number","_","isNil","radix","mapToRadix","thousandsSeparator","ref","onAccept","__","maskRef","event","current","onChange","target","name","handleBlur","currentValue","isNaN","numberToPtBR","toString","onBlur","useEffect","numericValue","parseFloat","isEqual","mergeRefs"],"mappings":"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"}
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, numberToPtBR } 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 = true, unmask = true, currencySymbol = 'R$', displayCurrencySymbol = true,\n } = props;\n const currencyNumberInputRef = useRef<HTMLInputElement | null>(null);\n const isResetting = useRef(false);\n const leftElements = displayCurrencySymbol ?\n <span className=\"currency-symbol\">{currencySymbol}</span>\n : [];\n\n const { value: maskedValue, setValue: setMaskedValue } = 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 if (isResetting.current) {\n isResetting.current = false;\n return;\n }\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 = numberToEnUS(maskedValue) as number;\n if (_.isNaN(currentValue) || currentValue < min) {\n setMaskedValue(numberToPtBR(min) ?? _.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 if (_.isNil(props?.value)) {\n if (maskedValue !== '') {\n isResetting.current = true;\n setMaskedValue('');\n }\n return;\n }\n const valueToPtBR = numberToPtBR(props?.value) ?? '';\n if (!_.isEqual(\n parseFloat(_.toString(props?.value)), numberToEnUS(maskedValue),\n )) {\n setMaskedValue(valueToPtBR);\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","isResetting","leftElements","value","maskedValue","setValue","setMaskedValue","useIMask","mask","Number","_","isNil","radix","mapToRadix","thousandsSeparator","ref","onAccept","__","options","event","current","parsedValue","numberToEnUS","unmaskedValue","onChange","target","name","handleBlur","currentValue","isNaN","numberToPtBR","toString","onBlur","useEffect","valueToPtBR","isEqual","parseFloat","mergeRefs"],"mappings":";;;;;;;AASA,MAAMA,gBAAgBA,CAACC,UAA0B;AAC/C,QAAM;AAAA,IACJC,WAAWC;AAAAA,IAAWC,YAAY;AAAA,IAAQC,eAAe;AAAA,IAASC,eAAe;AAAA,IACjFC,MAAMJ;AAAAA,IAAWK,MAAML;AAAAA,IAAWM,gBAAgB;AAAA,IAAOC,QAAQ;AAAA,IAAGC,iBAAiB;AAAA,IACrFC,qBAAqB;AAAA,IAAMC,SAAS;AAAA,IAAMC,iBAAiB;AAAA,IAAMC,wBAAwB;AAAA,EAAA,IACvFd;AACJ,QAAMe,yBAAyBC,OAAgC,IAAI;AACnE,QAAMC,cAAcD,OAAO,KAAK;AAChC,QAAME,eAAeJ,wBACnB,oBAAC,QAAA,EAAK,WAAU,mBAAmBD,UAAAA,eAAAA,CAAe,IAChD,CAAA;AAEJ,QAAM;AAAA,IAAEM,OAAOC;AAAAA,IAAaC,UAAUC;AAAAA,EAAAA,IAAmBC,SAAS;AAAA,IAChEC,MAAMC;AAAAA,IACNb;AAAAA,IACAH;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAJ;AAAAA,IACAD,KAAK,CAACoB,EAAEC,MAAMrB,GAAG,IAAIA,MAAOE,gBAAgBN,SAAY;AAAA,IACxD0B,OAAO;AAAA,IACPC,YAAY,CAAC,GAAG;AAAA,IAChBC,oBAAoB;AAAA,EAAA,GACnB;AAAA,IACDC,KAAKhB;AAAAA,IACLiB,UAAUA,CAACC,IAAIC,SAASC,UAAU;AAChC,UAAIlB,YAAYmB,SAAS;AACvBnB,oBAAYmB,UAAU;AACtB;AAAA,MACF;AACA,YAAMC,cAAcC,aAAaJ,QAAQK,aAAa;AACtDvC,aAAOwC,WAAW;AAAA,QAChB,GAAGL;AAAAA,QACHM,QAAQ;AAAA,UACN,GAAGN,OAAOM;AAAAA,UACVC,MAAM1C,OAAO0C;AAAAA,UACbvB,OAAOkB;AAAAA,QAAAA;AAAAA,MACT,CACsC;AAAA,IAC1C;AAAA,EAAA,CACD;AAMD,QAAMM,aAAaA,CAACR,YAA4B;AAC9C,QAAI,CAACT,EAAEC,MAAMrB,GAAG,GAAG;AACjB,YAAMsC,eAAeN,aAAalB,WAAW;AAC7C,UAAIM,EAAEmB,MAAMD,YAAY,KAAKA,eAAetC,KAAK;AAC/CgB,uBAAewB,aAAaxC,GAAG,KAAKoB,EAAEqB,SAASzC,GAAG,CAAC;AACnDN,eAAOwC,WAAW;AAAA,UAChB,GAAGL;AAAAA,UACHM,QAAQ;AAAA,YACN,GAAGN,SAAOM;AAAAA,YACVC,MAAM1C,OAAO0C;AAAAA,YACbvB,OAAOb;AAAAA,UAAAA;AAAAA,QACT,CACmB;AAAA,MACvB;AAAA,IACF;AACAN,WAAOgD,SAASb,OAAK;AAAA,EACvB;AAEAc,YAAU,MAAM;AACd,QAAIvB,EAAEC,MAAM3B,OAAOmB,KAAK,GAAG;AACzB,UAAIC,gBAAgB,IAAI;AACtBH,oBAAYmB,UAAU;AACtBd,uBAAe,EAAE;AAAA,MACnB;AACA;AAAA,IACF;AACA,UAAM4B,cAAcJ,aAAa9C,OAAOmB,KAAK,KAAK;AAClD,QAAI,CAACO,EAAEyB,QACLC,WAAW1B,EAAEqB,SAAS/C,OAAOmB,KAAK,CAAC,GAAGmB,aAAalB,WAAW,CAChE,GAAG;AACDE,qBAAe4B,WAAW;AAAA,IAC5B;AAAA,EACF,GAAG,CAAClD,OAAOmB,KAAK,CAAC;AAEjB,SACE,oBAAC,eAAA,EACC,GAAInB,OACJ,UAAUqD,UAAUtC,wBAAwBd,QAAQ,GACpD,MAAK,QACL,UAAU,MAAM;AAAA,EAAE,GAClB,cACA,QAAQ0C,YACR,OAAOvB,aACP,WACA,cACA,cAA2B;AAEjC;"}
@@ -2,7 +2,7 @@ import { jsx } from "react/jsx-runtime";
2
2
  import _ from "../../_virtual/lodash.js";
3
3
  import { useRef, useEffect } from "react";
4
4
  import { useIMask } from "react-imask";
5
- import { numberToPtBR } from "./format_number.js";
5
+ import { numberToEnUS, numberToPtBR } from "./format_number.js";
6
6
  import InputTextBase from "../base/InputTextBase.js";
7
7
  import { mergeRefs } from "../../form2/helpers.js";
8
8
  const DecimalField = (props) => {
@@ -23,8 +23,7 @@ const DecimalField = (props) => {
23
23
  const isResetting = useRef(false);
24
24
  const {
25
25
  value: maskedValue,
26
- setValue: setMaskedValue,
27
- typedValue
26
+ setValue: setMaskedValue
28
27
  } = useIMask({
29
28
  mask: Number,
30
29
  unmask,
@@ -38,25 +37,26 @@ const DecimalField = (props) => {
38
37
  thousandsSeparator: "."
39
38
  }, {
40
39
  ref: decimalNumberInputRef,
41
- onAccept: (__, maskRef, event) => {
40
+ onAccept: (__, options, event) => {
42
41
  if (isResetting.current) {
43
42
  isResetting.current = false;
44
43
  return;
45
44
  }
45
+ const parsedValue = numberToEnUS(options.unmaskedValue);
46
46
  props?.onChange?.({
47
47
  ...event,
48
48
  target: {
49
49
  ...event?.target,
50
50
  name: props?.name,
51
- value: maskRef.typedValue
51
+ value: parsedValue
52
52
  }
53
53
  });
54
54
  }
55
55
  });
56
56
  const handleBlur = (event_0) => {
57
- const currentValue = typedValue;
58
57
  if (!_.isNil(min)) {
59
- if (_.isNil(currentValue) || _.isNaN(currentValue) || currentValue < min) {
58
+ const currentValue = numberToEnUS(maskedValue);
59
+ if (_.isNaN(currentValue) || currentValue < min) {
60
60
  setMaskedValue(numberToPtBR(min) ?? _.toString(min));
61
61
  props?.onChange?.({
62
62
  ...event_0,
@@ -68,13 +68,7 @@ const DecimalField = (props) => {
68
68
  });
69
69
  }
70
70
  }
71
- props?.onBlur?.({
72
- ...event_0,
73
- target: {
74
- ...event_0?.target,
75
- value: currentValue
76
- }
77
- });
71
+ props?.onBlur?.(event_0);
78
72
  };
79
73
  useEffect(() => {
80
74
  if (_.isNil(props?.value)) {
@@ -84,9 +78,9 @@ const DecimalField = (props) => {
84
78
  }
85
79
  return;
86
80
  }
87
- const numericValue = typeof props.value === "string" ? parseFloat(props.value) : props.value;
88
- if (!_.isEqual(typedValue, numericValue)) {
89
- setMaskedValue(numberToPtBR(props?.value) ?? "");
81
+ const valueToPtBR = numberToPtBR(props?.value) ?? "";
82
+ if (!_.isEqual(parseFloat(_.toString(props?.value)), numberToEnUS(maskedValue))) {
83
+ setMaskedValue(valueToPtBR);
90
84
  }
91
85
  }, [props?.value]);
92
86
  return /* @__PURE__ */ jsx(InputTextBase, { ...props, inputRef: mergeRefs(decimalNumberInputRef, inputRef), type: "text", onChange: () => {
@@ -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 { numberToPtBR } 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 const isResetting = useRef(false);\n\n const { value: maskedValue, setValue: setMaskedValue, typedValue } = 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: (__, maskRef, event) => {\n if (isResetting.current) {\n isResetting.current = false;\n return;\n }\n props?.onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: maskRef.typedValue 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 const currentValue = typedValue as number;\n if (!_.isNil(min)) {\n if (_.isNil(currentValue) || _.isNaN(currentValue) || currentValue < min) {\n setMaskedValue(numberToPtBR(min) ?? _.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?.({ \n ...event, \n target: { \n ...event?.target, \n value: currentValue as any, \n }, \n });\n };\n\n useEffect(() => {\n if (_.isNil(props?.value)) {\n if (maskedValue !== '') {\n isResetting.current = true;\n setMaskedValue('');\n }\n return;\n }\n const numericValue = typeof props.value === 'string' ? parseFloat(props.value) : props.value;\n if (!_.isEqual(typedValue, numericValue)) {\n setMaskedValue(numberToPtBR(props?.value) ?? '');\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","isResetting","value","maskedValue","setValue","setMaskedValue","typedValue","useIMask","mask","Number","_","isNil","radix","mapToRadix","thousandsSeparator","ref","onAccept","__","maskRef","event","current","onChange","target","name","handleBlur","currentValue","isNaN","numberToPtBR","toString","onBlur","useEffect","numericValue","parseFloat","isEqual","mergeRefs"],"mappings":";;;;;;;AASA,MAAMA,eAAeA,CAACC,UAAyB;AAC7C,QAAM;AAAA,IACJC,YAAY;AAAA,IAAQC,eAAe;AAAA,IAASC,eAAe;AAAA,IAAQC,MAAMC;AAAAA,IACzEC,MAAMD;AAAAA,IAAWE,gBAAgB;AAAA,IAAOC,QAAQ;AAAA,IAAGC,iBAAiB;AAAA,IACpEC,qBAAqB;AAAA,IAAMC,SAAS;AAAA,IAAMC,WAAWP;AAAAA,EAAAA,IACnDL;AACJ,QAAMa,wBAAwBC,OAAgC,IAAI;AAClE,QAAMC,cAAcD,OAAO,KAAK;AAEhC,QAAM;AAAA,IAAEE,OAAOC;AAAAA,IAAaC,UAAUC;AAAAA,IAAgBC;AAAAA,EAAAA,IAAeC,SAAS;AAAA,IAC5EC,MAAMC;AAAAA,IACNZ;AAAAA,IACAH;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAJ;AAAAA,IACAF,KAAK,CAACoB,EAAEC,MAAMrB,GAAG,IAAIA,MAAOG,gBAAgBF,SAAY;AAAA,IACxDqB,OAAO;AAAA,IACPC,YAAY,CAAC,GAAG;AAAA,IAChBC,oBAAoB;AAAA,EAAA,GACnB;AAAA,IACDC,KAAKhB;AAAAA,IACLiB,UAAUA,CAACC,IAAIC,SAASC,UAAU;AAChC,UAAIlB,YAAYmB,SAAS;AACvBnB,oBAAYmB,UAAU;AACtB;AAAA,MACF;AACAlC,aAAOmC,WAAW;AAAA,QAChB,GAAGF;AAAAA,QACHG,QAAQ;AAAA,UACN,GAAGH,OAAOG;AAAAA,UACVC,MAAMrC,OAAOqC;AAAAA,UACbrB,OAAOgB,QAAQZ;AAAAA,QAAAA;AAAAA,MACjB,CACsC;AAAA,IAC1C;AAAA,EAAA,CACD;AAMD,QAAMkB,aAAaA,CAACL,YAA4B;AAC9C,UAAMM,eAAenB;AACrB,QAAI,CAACI,EAAEC,MAAMrB,GAAG,GAAG;AACjB,UAAIoB,EAAEC,MAAMc,YAAY,KAAKf,EAAEgB,MAAMD,YAAY,KAAKA,eAAenC,KAAK;AACxEe,uBAAesB,aAAarC,GAAG,KAAKoB,EAAEkB,SAAStC,GAAG,CAAC;AACnDJ,eAAOmC,WAAW;AAAA,UAChB,GAAGF;AAAAA,UACHG,QAAQ;AAAA,YACN,GAAGH,SAAOG;AAAAA,YACVC,MAAMrC,OAAOqC;AAAAA,YACbrB,OAAOZ;AAAAA,UAAAA;AAAAA,QACT,CACmB;AAAA,MACvB;AAAA,IACF;AACAJ,WAAO2C,SAAS;AAAA,MACd,GAAGV;AAAAA,MACHG,QAAQ;AAAA,QACN,GAAGH,SAAOG;AAAAA,QACVpB,OAAOuB;AAAAA,MAAAA;AAAAA,IACT,CACD;AAAA,EACH;AAEAK,YAAU,MAAM;AACd,QAAIpB,EAAEC,MAAMzB,OAAOgB,KAAK,GAAG;AACzB,UAAIC,gBAAgB,IAAI;AACtBF,oBAAYmB,UAAU;AACtBf,uBAAe,EAAE;AAAA,MACnB;AACA;AAAA,IACF;AACA,UAAM0B,eAAe,OAAO7C,MAAMgB,UAAU,WAAW8B,WAAW9C,MAAMgB,KAAK,IAAIhB,MAAMgB;AACvF,QAAI,CAACQ,EAAEuB,QAAQ3B,YAAYyB,YAAY,GAAG;AACxC1B,qBAAesB,aAAazC,OAAOgB,KAAK,KAAK,EAAE;AAAA,IACjD;AAAA,EACF,GAAG,CAAChB,OAAOgB,KAAK,CAAC;AAEjB,SACE,oBAAC,eAAA,EACC,GAAIhB,OACJ,UAAUgD,UAAUnC,uBAAuBD,QAAQ,GACnD,MAAK,QACL,UAAU,MAAM;AAAA,EAAE,GAClB,QAAQ0B,YACR,OAAOrB,aACP,WACA,cACA,cAA2B;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, numberToPtBR } 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 const isResetting = useRef(false);\n\n const { value: maskedValue, setValue: setMaskedValue } = 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 if (isResetting.current) {\n isResetting.current = false;\n return;\n }\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 = numberToEnUS(maskedValue) as number;\n if (_.isNaN(currentValue) || currentValue < min) {\n setMaskedValue(numberToPtBR(min) ?? _.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 if (_.isNil(props?.value)) {\n if (maskedValue !== '') {\n isResetting.current = true;\n setMaskedValue('');\n }\n return;\n }\n const valueToPtBR = numberToPtBR(props?.value) ?? '';\n if (!_.isEqual(\n parseFloat(_.toString(props?.value)), numberToEnUS(maskedValue),\n )) {\n setMaskedValue(valueToPtBR);\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","isResetting","value","maskedValue","setValue","setMaskedValue","useIMask","mask","Number","_","isNil","radix","mapToRadix","thousandsSeparator","ref","onAccept","__","options","event","current","parsedValue","numberToEnUS","unmaskedValue","onChange","target","name","handleBlur","currentValue","isNaN","numberToPtBR","toString","onBlur","useEffect","valueToPtBR","isEqual","parseFloat","mergeRefs"],"mappings":";;;;;;;AASA,MAAMA,eAAeA,CAACC,UAAyB;AAC7C,QAAM;AAAA,IACJC,YAAY;AAAA,IAAQC,eAAe;AAAA,IAASC,eAAe;AAAA,IAAQC,MAAMC;AAAAA,IACzEC,MAAMD;AAAAA,IAAWE,gBAAgB;AAAA,IAAOC,QAAQ;AAAA,IAAGC,iBAAiB;AAAA,IACpEC,qBAAqB;AAAA,IAAMC,SAAS;AAAA,IAAMC,WAAWP;AAAAA,EAAAA,IACnDL;AACJ,QAAMa,wBAAwBC,OAAgC,IAAI;AAClE,QAAMC,cAAcD,OAAO,KAAK;AAEhC,QAAM;AAAA,IAAEE,OAAOC;AAAAA,IAAaC,UAAUC;AAAAA,EAAAA,IAAmBC,SAAS;AAAA,IAChEC,MAAMC;AAAAA,IACNX;AAAAA,IACAH;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAJ;AAAAA,IACAF,KAAK,CAACmB,EAAEC,MAAMpB,GAAG,IAAIA,MAAOG,gBAAgBF,SAAY;AAAA,IACxDoB,OAAO;AAAA,IACPC,YAAY,CAAC,GAAG;AAAA,IAChBC,oBAAoB;AAAA,EAAA,GACnB;AAAA,IACDC,KAAKf;AAAAA,IACLgB,UAAUA,CAACC,IAAIC,SAASC,UAAU;AAChC,UAAIjB,YAAYkB,SAAS;AACvBlB,oBAAYkB,UAAU;AACtB;AAAA,MACF;AACA,YAAMC,cAAcC,aAAaJ,QAAQK,aAAa;AACtDpC,aAAOqC,WAAW;AAAA,QAChB,GAAGL;AAAAA,QACHM,QAAQ;AAAA,UACN,GAAGN,OAAOM;AAAAA,UACVC,MAAMvC,OAAOuC;AAAAA,UACbvB,OAAOkB;AAAAA,QAAAA;AAAAA,MACT,CACsC;AAAA,IAC1C;AAAA,EAAA,CACD;AAMD,QAAMM,aAAaA,CAACR,YAA4B;AAC9C,QAAI,CAACT,EAAEC,MAAMpB,GAAG,GAAG;AACjB,YAAMqC,eAAeN,aAAalB,WAAW;AAC7C,UAAIM,EAAEmB,MAAMD,YAAY,KAAKA,eAAerC,KAAK;AAC/Ce,uBAAewB,aAAavC,GAAG,KAAKmB,EAAEqB,SAASxC,GAAG,CAAC;AACnDJ,eAAOqC,WAAW;AAAA,UAChB,GAAGL;AAAAA,UACHM,QAAQ;AAAA,YACN,GAAGN,SAAOM;AAAAA,YACVC,MAAMvC,OAAOuC;AAAAA,YACbvB,OAAOZ;AAAAA,UAAAA;AAAAA,QACT,CACmB;AAAA,MACvB;AAAA,IACF;AACAJ,WAAO6C,SAASb,OAAK;AAAA,EACvB;AAEAc,YAAU,MAAM;AACd,QAAIvB,EAAEC,MAAMxB,OAAOgB,KAAK,GAAG;AACzB,UAAIC,gBAAgB,IAAI;AACtBF,oBAAYkB,UAAU;AACtBd,uBAAe,EAAE;AAAA,MACnB;AACA;AAAA,IACF;AACA,UAAM4B,cAAcJ,aAAa3C,OAAOgB,KAAK,KAAK;AAClD,QAAI,CAACO,EAAEyB,QACLC,WAAW1B,EAAEqB,SAAS5C,OAAOgB,KAAK,CAAC,GAAGmB,aAAalB,WAAW,CAChE,GAAG;AACDE,qBAAe4B,WAAW;AAAA,IAC5B;AAAA,EACF,GAAG,CAAC/C,OAAOgB,KAAK,CAAC;AAEjB,SACE,oBAAC,eAAA,EACC,GAAIhB,OACJ,UAAUkD,UAAUrC,uBAAuBD,QAAQ,GACnD,MAAK,QACL,UAAU,MAAM;AAAA,EAAE,GAClB,QAAQ4B,YACR,OAAOvB,aACP,WACA,cACA,cAA2B;AAEjC;"}
@@ -20,8 +20,7 @@ const NumberField = (props) => {
20
20
  const isResetting = useRef(false);
21
21
  const {
22
22
  value: maskedValue,
23
- setValue: setMaskedValue,
24
- typedValue
23
+ setValue: setMaskedValue
25
24
  } = useIMask({
26
25
  mask: Number,
27
26
  max,
@@ -34,25 +33,26 @@ const NumberField = (props) => {
34
33
  padFractionalZeros: false
35
34
  }, {
36
35
  ref: numberInputRef,
37
- onAccept: (__, maskRef, event) => {
36
+ onAccept: (value, __, event) => {
38
37
  if (isResetting.current) {
39
38
  isResetting.current = false;
40
39
  return;
41
40
  }
41
+ const parsedValue = parseInt(value, 10);
42
42
  props?.onChange?.({
43
43
  ...event,
44
44
  target: {
45
45
  ...event?.target,
46
46
  name: props?.name,
47
- value: maskRef.typedValue
47
+ value: parsedValue
48
48
  }
49
49
  });
50
50
  }
51
51
  });
52
52
  const handleBlur = (event_0) => {
53
- const currentValue = typedValue;
54
53
  if (!_.isNil(min)) {
55
- if (_.isNil(currentValue) || _.isNaN(currentValue) || currentValue < min) {
54
+ const currentValue = parseInt(maskedValue, 10);
55
+ if (_.isNaN(currentValue) || currentValue < min) {
56
56
  setMaskedValue(_.toString(min));
57
57
  props?.onChange?.({
58
58
  ...event_0,
@@ -64,13 +64,7 @@ const NumberField = (props) => {
64
64
  });
65
65
  }
66
66
  }
67
- props?.onBlur?.({
68
- ...event_0,
69
- target: {
70
- ...event_0?.target,
71
- value: currentValue
72
- }
73
- });
67
+ props?.onBlur?.(event_0);
74
68
  };
75
69
  useEffect(() => {
76
70
  if (_.isNil(props?.value)) {
@@ -80,8 +74,8 @@ const NumberField = (props) => {
80
74
  }
81
75
  return;
82
76
  }
83
- const numericValue = typeof props.value === "string" ? Number(props.value) : props.value;
84
- if (!_.isEqual(typedValue, numericValue)) {
77
+ const floatMaskedValue = Number(maskedValue || "0");
78
+ if (!_.isEqual(props?.value, floatMaskedValue) || _.isEqual(props?.value, 0)) {
85
79
  setMaskedValue(_.toString(props?.value));
86
80
  }
87
81
  }, [props?.value]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/lib/inputs/number/index.tsx"],"sourcesContent":["import '../../assets/styles/numbers.scss';\n\nimport React, { useEffect, useRef } from 'react';\nimport _ from 'lodash';\nimport { useIMask } from 'react-imask';\nimport DecimalField from './Decimal';\nimport CurrencyField from './Currency';\nimport { INumberFieldProps } from './types';\nimport InputTextBase from '../base/InputTextBase';\nimport { CustomInputEvent } from '../base/types';\nimport { mergeRefs } from '../../form2/helpers';\n\nconst NumberField = (props: INumberFieldProps) => {\n const {\n textAlign = 'left', themePopover = 'light', popoverAlign = 'left', min = undefined, \n max = undefined, inputRef = undefined,\n } = props;\n const numberInputRef = useRef<HTMLInputElement | null>(null);\n const isResetting = useRef(false);\n\n const { value: maskedValue, setValue: setMaskedValue, typedValue } = useIMask({\n mask: Number,\n max,\n min,\n scale: 0,\n enum: undefined,\n to: undefined,\n from: undefined,\n normalizeZeros: true,\n padFractionalZeros: false,\n }, {\n ref: numberInputRef,\n onAccept: (__, maskRef, event) => {\n if (isResetting.current) {\n isResetting.current = false;\n return;\n }\n props?.onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: maskRef.typedValue as any,\n },\n } as CustomInputEvent);\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 const currentValue = typedValue as number;\n if (!_.isNil(min)) {\n if (_.isNil(currentValue) || _.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?.({ \n ...event, \n target: { \n ...event?.target, \n value: currentValue as any, \n }, \n });\n };\n\n useEffect(() => {\n if (_.isNil(props?.value)) {\n if (maskedValue !== '') {\n isResetting.current = true;\n setMaskedValue('');\n }\n return;\n }\n const numericValue = typeof props.value === 'string' ? Number(props.value) : props.value;\n if (!_.isEqual(typedValue, numericValue)) {\n setMaskedValue(_.toString(props?.value));\n }\n }, [props?.value]);\n\n return (\n <InputTextBase\n {...props}\n inputRef={mergeRefs(numberInputRef, inputRef) as any}\n type=\"number\"\n onChange={() => {}}\n onBlur={handleBlur}\n value={maskedValue}\n textAlign={textAlign}\n themePopover={themePopover}\n popoverAlign={popoverAlign} />\n );\n};\n\nexport default NumberField;\nexport {\n CurrencyField,\n DecimalField,\n};\n"],"names":["NumberField","props","textAlign","themePopover","popoverAlign","min","undefined","max","inputRef","numberInputRef","useRef","isResetting","value","maskedValue","setValue","setMaskedValue","typedValue","useIMask","mask","Number","scale","enum","to","from","normalizeZeros","padFractionalZeros","ref","onAccept","__","maskRef","event","current","onChange","target","name","handleBlur","currentValue","_","isNil","isNaN","toString","onBlur","useEffect","numericValue","isEqual","mergeRefs"],"mappings":";;;;;;;;;AAYA,MAAMA,cAAcA,CAACC,UAA6B;AAChD,QAAM;AAAA,IACJC,YAAY;AAAA,IAAQC,eAAe;AAAA,IAASC,eAAe;AAAA,IAAQC,MAAMC;AAAAA,IACzEC,MAAMD;AAAAA,IAAWE,WAAWF;AAAAA,EAAAA,IAC1BL;AACJ,QAAMQ,iBAAiBC,OAAgC,IAAI;AAC3D,QAAMC,cAAcD,OAAO,KAAK;AAEhC,QAAM;AAAA,IAAEE,OAAOC;AAAAA,IAAaC,UAAUC;AAAAA,IAAgBC;AAAAA,EAAAA,IAAeC,SAAS;AAAA,IAC5EC,MAAMC;AAAAA,IACNZ;AAAAA,IACAF;AAAAA,IACAe,OAAO;AAAA,IACPC,MAAMf;AAAAA,IACNgB,IAAIhB;AAAAA,IACJiB,MAAMjB;AAAAA,IACNkB,gBAAgB;AAAA,IAChBC,oBAAoB;AAAA,EAAA,GACnB;AAAA,IACDC,KAAKjB;AAAAA,IACLkB,UAAUA,CAACC,IAAIC,SAASC,UAAU;AAChC,UAAInB,YAAYoB,SAAS;AACvBpB,oBAAYoB,UAAU;AACtB;AAAA,MACF;AACA9B,aAAO+B,WAAW;AAAA,QAChB,GAAGF;AAAAA,QACHG,QAAQ;AAAA,UACN,GAAGH,OAAOG;AAAAA,UACVC,MAAMjC,OAAOiC;AAAAA,UACbtB,OAAOiB,QAAQb;AAAAA,QAAAA;AAAAA,MACjB,CACmB;AAAA,IACvB;AAAA,EAAA,CACD;AAMD,QAAMmB,aAAaA,CAACL,YAA4B;AAC9C,UAAMM,eAAepB;AACrB,QAAI,CAACqB,EAAEC,MAAMjC,GAAG,GAAG;AACjB,UAAIgC,EAAEC,MAAMF,YAAY,KAAKC,EAAEE,MAAMH,YAAY,KAAKA,eAAe/B,KAAK;AACxEU,uBAAesB,EAAEG,SAASnC,GAAG,CAAC;AAC9BJ,eAAO+B,WAAW;AAAA,UAChB,GAAGF;AAAAA,UACHG,QAAQ;AAAA,YACN,GAAGH,SAAOG;AAAAA,YACVC,MAAMjC,OAAOiC;AAAAA,YACbtB,OAAOP;AAAAA,UAAAA;AAAAA,QACT,CACmB;AAAA,MACvB;AAAA,IACF;AACAJ,WAAOwC,SAAS;AAAA,MACd,GAAGX;AAAAA,MACHG,QAAQ;AAAA,QACN,GAAGH,SAAOG;AAAAA,QACVrB,OAAOwB;AAAAA,MAAAA;AAAAA,IACT,CACD;AAAA,EACH;AAEAM,YAAU,MAAM;AACd,QAAIL,EAAEC,MAAMrC,OAAOW,KAAK,GAAG;AACzB,UAAIC,gBAAgB,IAAI;AACtBF,oBAAYoB,UAAU;AACtBhB,uBAAe,EAAE;AAAA,MACnB;AACA;AAAA,IACF;AACA,UAAM4B,eAAe,OAAO1C,MAAMW,UAAU,WAAWO,OAAOlB,MAAMW,KAAK,IAAIX,MAAMW;AACnF,QAAI,CAACyB,EAAEO,QAAQ5B,YAAY2B,YAAY,GAAG;AACxC5B,qBAAesB,EAAEG,SAASvC,OAAOW,KAAK,CAAC;AAAA,IACzC;AAAA,EACF,GAAG,CAACX,OAAOW,KAAK,CAAC;AAEjB,SACE,oBAAC,eAAA,EACC,GAAIX,OACJ,UAAU4C,UAAUpC,gBAAgBD,QAAQ,GAC5C,MAAK,UACL,UAAU,MAAM;AAAA,EAAC,GACjB,QAAQ2B,YACR,OAAOtB,aACP,WACA,cACA,cAA2B;AAEjC;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/lib/inputs/number/index.tsx"],"sourcesContent":["import '../../assets/styles/numbers.scss';\n\nimport React, { useEffect, useRef } from 'react';\nimport _ from 'lodash';\nimport { useIMask } from 'react-imask';\nimport DecimalField from './Decimal';\nimport CurrencyField from './Currency';\nimport { INumberFieldProps } from './types';\nimport InputTextBase from '../base/InputTextBase';\nimport { CustomInputEvent } from '../base/types';\nimport { mergeRefs } from '../../form2/helpers';\n\nconst NumberField = (props: INumberFieldProps) => {\n const {\n textAlign = 'left', themePopover = 'light', popoverAlign = 'left', min = undefined, \n max = undefined, inputRef = undefined,\n } = props;\n const numberInputRef = useRef<HTMLInputElement | null>(null);\n const isResetting = useRef(false);\n\n const { value: maskedValue, setValue: setMaskedValue } = useIMask({\n mask: Number,\n max,\n min,\n scale: 0,\n enum: undefined,\n to: undefined,\n from: undefined,\n normalizeZeros: true,\n padFractionalZeros: false,\n }, {\n ref: numberInputRef,\n onAccept: (value, __, event) => {\n if (isResetting.current) {\n isResetting.current = false;\n return;\n }\n const parsedValue = parseInt(value, 10);\n props?.onChange?.({\n ...event,\n target: {\n ...event?.target,\n name: props?.name,\n value: parsedValue as any,\n },\n } as CustomInputEvent);\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 = parseInt(maskedValue, 10) 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 if (_.isNil(props?.value)) {\n if (maskedValue !== '') {\n isResetting.current = true;\n setMaskedValue('');\n }\n return;\n }\n const floatMaskedValue = Number(maskedValue || '0');\n if (!_.isEqual(props?.value, floatMaskedValue) || _.isEqual(props?.value, 0)) {\n setMaskedValue(_.toString(props?.value));\n }\n }, [props?.value]);\n\n return (\n <InputTextBase\n {...props}\n inputRef={mergeRefs(numberInputRef, inputRef) as any}\n type=\"number\"\n onChange={() => {}}\n onBlur={handleBlur}\n value={maskedValue}\n textAlign={textAlign}\n themePopover={themePopover}\n popoverAlign={popoverAlign} />\n );\n};\n\nexport default NumberField;\nexport {\n CurrencyField,\n DecimalField,\n};\n"],"names":["NumberField","props","textAlign","themePopover","popoverAlign","min","undefined","max","inputRef","numberInputRef","useRef","isResetting","value","maskedValue","setValue","setMaskedValue","useIMask","mask","Number","scale","enum","to","from","normalizeZeros","padFractionalZeros","ref","onAccept","__","event","current","parsedValue","parseInt","onChange","target","name","handleBlur","_","isNil","currentValue","isNaN","toString","onBlur","useEffect","floatMaskedValue","isEqual","mergeRefs"],"mappings":";;;;;;;;;AAYA,MAAMA,cAAcA,CAACC,UAA6B;AAChD,QAAM;AAAA,IACJC,YAAY;AAAA,IAAQC,eAAe;AAAA,IAASC,eAAe;AAAA,IAAQC,MAAMC;AAAAA,IACzEC,MAAMD;AAAAA,IAAWE,WAAWF;AAAAA,EAAAA,IAC1BL;AACJ,QAAMQ,iBAAiBC,OAAgC,IAAI;AAC3D,QAAMC,cAAcD,OAAO,KAAK;AAEhC,QAAM;AAAA,IAAEE,OAAOC;AAAAA,IAAaC,UAAUC;AAAAA,EAAAA,IAAmBC,SAAS;AAAA,IAChEC,MAAMC;AAAAA,IACNX;AAAAA,IACAF;AAAAA,IACAc,OAAO;AAAA,IACPC,MAAMd;AAAAA,IACNe,IAAIf;AAAAA,IACJgB,MAAMhB;AAAAA,IACNiB,gBAAgB;AAAA,IAChBC,oBAAoB;AAAA,EAAA,GACnB;AAAA,IACDC,KAAKhB;AAAAA,IACLiB,UAAUA,CAACd,OAAOe,IAAIC,UAAU;AAC9B,UAAIjB,YAAYkB,SAAS;AACvBlB,oBAAYkB,UAAU;AACtB;AAAA,MACF;AACA,YAAMC,cAAcC,SAASnB,OAAO,EAAE;AACtCX,aAAO+B,WAAW;AAAA,QAChB,GAAGJ;AAAAA,QACHK,QAAQ;AAAA,UACN,GAAGL,OAAOK;AAAAA,UACVC,MAAMjC,OAAOiC;AAAAA,UACbtB,OAAOkB;AAAAA,QAAAA;AAAAA,MACT,CACmB;AAAA,IACvB;AAAA,EAAA,CACD;AAMD,QAAMK,aAAaA,CAACP,YAA4B;AAC9C,QAAI,CAACQ,EAAEC,MAAMhC,GAAG,GAAG;AACjB,YAAMiC,eAAeP,SAASlB,aAAa,EAAE;AAC7C,UAAIuB,EAAEG,MAAMD,YAAY,KAAKA,eAAejC,KAAK;AAC/CU,uBAAeqB,EAAEI,SAASnC,GAAG,CAAC;AAC9BJ,eAAO+B,WAAW;AAAA,UAChB,GAAGJ;AAAAA,UACHK,QAAQ;AAAA,YACN,GAAGL,SAAOK;AAAAA,YACVC,MAAMjC,OAAOiC;AAAAA,YACbtB,OAAOP;AAAAA,UAAAA;AAAAA,QACT,CACmB;AAAA,MACvB;AAAA,IACF;AACAJ,WAAOwC,SAASb,OAAK;AAAA,EACvB;AAEAc,YAAU,MAAM;AACd,QAAIN,EAAEC,MAAMpC,OAAOW,KAAK,GAAG;AACzB,UAAIC,gBAAgB,IAAI;AACtBF,oBAAYkB,UAAU;AACtBd,uBAAe,EAAE;AAAA,MACnB;AACA;AAAA,IACF;AACA,UAAM4B,mBAAmBzB,OAAOL,eAAe,GAAG;AAClD,QAAI,CAACuB,EAAEQ,QAAQ3C,OAAOW,OAAO+B,gBAAgB,KAAKP,EAAEQ,QAAQ3C,OAAOW,OAAO,CAAC,GAAG;AAC5EG,qBAAeqB,EAAEI,SAASvC,OAAOW,KAAK,CAAC;AAAA,IACzC;AAAA,EACF,GAAG,CAACX,OAAOW,KAAK,CAAC;AAEjB,SACE,oBAAC,eAAA,EACC,GAAIX,OACJ,UAAU4C,UAAUpC,gBAAgBD,QAAQ,GAC5C,MAAK,UACL,UAAU,MAAM;AAAA,EAAC,GACjB,QAAQ2B,YACR,OAAOtB,aACP,WACA,cACA,cAA2B;AAEjC;"}
@@ -1,11 +1,29 @@
1
- import { ReactNode } from 'react';
2
- interface SubMenuContainerProps {
3
- title?: string;
4
- customClass?: string;
5
- handlerGoBack: () => void;
6
- skeletonize?: boolean;
7
- skeletonQtty?: number;
8
- children: ReactNode;
9
- }
10
- declare const SubMenuContainer: ({ title, customClass, handlerGoBack, skeletonize, skeletonQtty, children, }: SubMenuContainerProps) => import("react/jsx-runtime").JSX.Element;
11
1
  export default SubMenuContainer;
2
+ declare function SubMenuContainer({ title, customClass, handlerGoBack, skeletonize, skeletonQtty, children, }: {
3
+ title: any;
4
+ customClass: any;
5
+ handlerGoBack: any;
6
+ skeletonize: any;
7
+ skeletonQtty: any;
8
+ children: any;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ declare namespace SubMenuContainer {
11
+ namespace propTypes {
12
+ let children: any;
13
+ let handlerGoBack: any;
14
+ let title: any;
15
+ let customClass: any;
16
+ let skeletonize: any;
17
+ let skeletonQtty: any;
18
+ }
19
+ namespace defaultProps {
20
+ let title_1: undefined;
21
+ export { title_1 as title };
22
+ let customClass_1: undefined;
23
+ export { customClass_1 as customClass };
24
+ let skeletonize_1: boolean;
25
+ export { skeletonize_1 as skeletonize };
26
+ let skeletonQtty_1: number;
27
+ export { skeletonQtty_1 as skeletonQtty };
28
+ }
29
+ }