linear-react-components-ui 2.0.0-rc.6 → 2.0.1-beta.0

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 (40) hide show
  1. package/lib/inputs/number/Currency.js +17 -11
  2. package/lib/inputs/number/Currency.js.map +1 -1
  3. package/lib/inputs/number/Decimal.js +17 -11
  4. package/lib/inputs/number/Decimal.js.map +1 -1
  5. package/lib/inputs/number/index.js +15 -9
  6. package/lib/inputs/number/index.js.map +1 -1
  7. package/lib/menus/float/SubMenuContainer.d.ts +10 -28
  8. package/lib/menus/float/SubMenuContainer.js +97 -83
  9. package/lib/menus/float/SubMenuContainer.js.map +1 -1
  10. package/package.json +1 -1
  11. package/lib/_virtual/index.js +0 -8
  12. package/lib/_virtual/index.js.map +0 -1
  13. package/lib/_virtual/index2.js +0 -5
  14. package/lib/_virtual/index2.js.map +0 -1
  15. package/lib/_virtual/index3.js +0 -5
  16. package/lib/_virtual/index3.js.map +0 -1
  17. package/lib/_virtual/react-is.development.js +0 -5
  18. package/lib/_virtual/react-is.development.js.map +0 -1
  19. package/lib/_virtual/react-is.production.min.js +0 -5
  20. package/lib/_virtual/react-is.production.min.js.map +0 -1
  21. package/lib/node_modules/object-assign/index.js +0 -79
  22. package/lib/node_modules/object-assign/index.js.map +0 -1
  23. package/lib/node_modules/prop-types/checkPropTypes.js +0 -69
  24. package/lib/node_modules/prop-types/checkPropTypes.js.map +0 -1
  25. package/lib/node_modules/prop-types/factoryWithThrowingShims.js +0 -59
  26. package/lib/node_modules/prop-types/factoryWithThrowingShims.js.map +0 -1
  27. package/lib/node_modules/prop-types/factoryWithTypeCheckers.js +0 -452
  28. package/lib/node_modules/prop-types/factoryWithTypeCheckers.js.map +0 -1
  29. package/lib/node_modules/prop-types/index.js +0 -21
  30. package/lib/node_modules/prop-types/index.js.map +0 -1
  31. package/lib/node_modules/prop-types/lib/ReactPropTypesSecret.js +0 -13
  32. package/lib/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +0 -1
  33. package/lib/node_modules/prop-types/lib/has.js +0 -12
  34. package/lib/node_modules/prop-types/lib/has.js.map +0 -1
  35. package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +0 -166
  36. package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +0 -1
  37. package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +0 -107
  38. package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +0 -1
  39. package/lib/node_modules/prop-types/node_modules/react-is/index.js +0 -18
  40. package/lib/node_modules/prop-types/node_modules/react-is/index.js.map +0 -1
@@ -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 { numberToEnUS, numberToPtBR } from "./format_number.js";
5
+ import { 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,7 +26,8 @@ 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
29
+ setValue: setMaskedValue,
30
+ typedValue
30
31
  } = useIMask({
31
32
  mask: Number,
32
33
  unmask,
@@ -40,26 +41,25 @@ const CurrencyField = (props) => {
40
41
  thousandsSeparator: "."
41
42
  }, {
42
43
  ref: currencyNumberInputRef,
43
- onAccept: (__, options, event) => {
44
+ onAccept: (__, maskRef, event) => {
44
45
  if (isResetting.current) {
45
46
  isResetting.current = false;
46
47
  return;
47
48
  }
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: parsedValue
54
+ value: maskRef.typedValue
55
55
  }
56
56
  });
57
57
  }
58
58
  });
59
59
  const handleBlur = (event_0) => {
60
+ const currentValue = typedValue;
60
61
  if (!_.isNil(min)) {
61
- const currentValue = numberToEnUS(maskedValue);
62
- if (_.isNaN(currentValue) || currentValue < min) {
62
+ if (_.isNil(currentValue) || _.isNaN(currentValue) || currentValue < min) {
63
63
  setMaskedValue(numberToPtBR(min) ?? _.toString(min));
64
64
  props?.onChange?.({
65
65
  ...event_0,
@@ -71,7 +71,13 @@ const CurrencyField = (props) => {
71
71
  });
72
72
  }
73
73
  }
74
- props?.onBlur?.(event_0);
74
+ props?.onBlur?.({
75
+ ...event_0,
76
+ target: {
77
+ ...event_0?.target,
78
+ value: currentValue
79
+ }
80
+ });
75
81
  };
76
82
  useEffect(() => {
77
83
  if (_.isNil(props?.value)) {
@@ -81,9 +87,9 @@ const CurrencyField = (props) => {
81
87
  }
82
88
  return;
83
89
  }
84
- const valueToPtBR = numberToPtBR(props?.value) ?? "";
85
- if (!_.isEqual(parseFloat(_.toString(props?.value)), numberToEnUS(maskedValue))) {
86
- setMaskedValue(valueToPtBR);
90
+ const numericValue = typeof props.value === "string" ? parseFloat(props.value) : props.value;
91
+ if (!_.isEqual(typedValue, numericValue)) {
92
+ setMaskedValue(numberToPtBR(props?.value) ?? "");
87
93
  }
88
94
  }, [props?.value]);
89
95
  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 { 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;"}
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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"}
@@ -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 { numberToEnUS, numberToPtBR } from "./format_number.js";
5
+ import { 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,7 +23,8 @@ const DecimalField = (props) => {
23
23
  const isResetting = useRef(false);
24
24
  const {
25
25
  value: maskedValue,
26
- setValue: setMaskedValue
26
+ setValue: setMaskedValue,
27
+ typedValue
27
28
  } = useIMask({
28
29
  mask: Number,
29
30
  unmask,
@@ -37,26 +38,25 @@ const DecimalField = (props) => {
37
38
  thousandsSeparator: "."
38
39
  }, {
39
40
  ref: decimalNumberInputRef,
40
- onAccept: (__, options, event) => {
41
+ onAccept: (__, maskRef, event) => {
41
42
  if (isResetting.current) {
42
43
  isResetting.current = false;
43
44
  return;
44
45
  }
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: parsedValue
51
+ value: maskRef.typedValue
52
52
  }
53
53
  });
54
54
  }
55
55
  });
56
56
  const handleBlur = (event_0) => {
57
+ const currentValue = typedValue;
57
58
  if (!_.isNil(min)) {
58
- const currentValue = numberToEnUS(maskedValue);
59
- if (_.isNaN(currentValue) || currentValue < min) {
59
+ if (_.isNil(currentValue) || _.isNaN(currentValue) || currentValue < min) {
60
60
  setMaskedValue(numberToPtBR(min) ?? _.toString(min));
61
61
  props?.onChange?.({
62
62
  ...event_0,
@@ -68,7 +68,13 @@ const DecimalField = (props) => {
68
68
  });
69
69
  }
70
70
  }
71
- props?.onBlur?.(event_0);
71
+ props?.onBlur?.({
72
+ ...event_0,
73
+ target: {
74
+ ...event_0?.target,
75
+ value: currentValue
76
+ }
77
+ });
72
78
  };
73
79
  useEffect(() => {
74
80
  if (_.isNil(props?.value)) {
@@ -78,9 +84,9 @@ const DecimalField = (props) => {
78
84
  }
79
85
  return;
80
86
  }
81
- const valueToPtBR = numberToPtBR(props?.value) ?? "";
82
- if (!_.isEqual(parseFloat(_.toString(props?.value)), numberToEnUS(maskedValue))) {
83
- setMaskedValue(valueToPtBR);
87
+ const numericValue = typeof props.value === "string" ? parseFloat(props.value) : props.value;
88
+ if (!_.isEqual(typedValue, numericValue)) {
89
+ setMaskedValue(numberToPtBR(props?.value) ?? "");
84
90
  }
85
91
  }, [props?.value]);
86
92
  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 { 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;"}
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;"}
@@ -20,7 +20,8 @@ const NumberField = (props) => {
20
20
  const isResetting = useRef(false);
21
21
  const {
22
22
  value: maskedValue,
23
- setValue: setMaskedValue
23
+ setValue: setMaskedValue,
24
+ typedValue
24
25
  } = useIMask({
25
26
  mask: Number,
26
27
  max,
@@ -33,26 +34,25 @@ const NumberField = (props) => {
33
34
  padFractionalZeros: false
34
35
  }, {
35
36
  ref: numberInputRef,
36
- onAccept: (value, __, event) => {
37
+ onAccept: (__, maskRef, event) => {
37
38
  if (isResetting.current) {
38
39
  isResetting.current = false;
39
40
  return;
40
41
  }
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: parsedValue
47
+ value: maskRef.typedValue
48
48
  }
49
49
  });
50
50
  }
51
51
  });
52
52
  const handleBlur = (event_0) => {
53
+ const currentValue = typedValue;
53
54
  if (!_.isNil(min)) {
54
- const currentValue = parseInt(maskedValue, 10);
55
- if (_.isNaN(currentValue) || currentValue < min) {
55
+ if (_.isNil(currentValue) || _.isNaN(currentValue) || currentValue < min) {
56
56
  setMaskedValue(_.toString(min));
57
57
  props?.onChange?.({
58
58
  ...event_0,
@@ -64,7 +64,13 @@ const NumberField = (props) => {
64
64
  });
65
65
  }
66
66
  }
67
- props?.onBlur?.(event_0);
67
+ props?.onBlur?.({
68
+ ...event_0,
69
+ target: {
70
+ ...event_0?.target,
71
+ value: currentValue
72
+ }
73
+ });
68
74
  };
69
75
  useEffect(() => {
70
76
  if (_.isNil(props?.value)) {
@@ -74,8 +80,8 @@ const NumberField = (props) => {
74
80
  }
75
81
  return;
76
82
  }
77
- const floatMaskedValue = Number(maskedValue || "0");
78
- if (!_.isEqual(props?.value, floatMaskedValue) || _.isEqual(props?.value, 0)) {
83
+ const numericValue = typeof props.value === "string" ? Number(props.value) : props.value;
84
+ if (!_.isEqual(typedValue, numericValue)) {
79
85
  setMaskedValue(_.toString(props?.value));
80
86
  }
81
87
  }, [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 } = 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
+ {"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,29 +1,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
- }
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;
29
9
  }
10
+ declare const SubMenuContainer: ({ title, customClass, handlerGoBack, skeletonize, skeletonQtty, children, }: SubMenuContainerProps) => import("react/jsx-runtime").JSX.Element;
11
+ export default SubMenuContainer;
@@ -1,138 +1,152 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { c as compilerRuntimeExports } from "../../_virtual/compiler-runtime.js";
3
3
  import { useEffect } from "react";
4
- import PropTypes from "../../_virtual/index.js";
5
4
  import Icon from "../../icons/index.js";
6
5
  import Skeleton from "../../skeleton/index.js";
7
6
  import SkeletonContainer from "../../skeleton/SkeletonContainer.js";
8
- const renderChildren = (skeletonize, skeletonQtty, children) => {
7
+ const SubMenuContent = (t0) => {
8
+ const $ = compilerRuntimeExports.c(5);
9
+ const {
10
+ children,
11
+ skeletonize,
12
+ skeletonQtty
13
+ } = t0;
9
14
  if (skeletonize && skeletonQtty) {
10
- const skeletons = Array.from({
11
- length: skeletonQtty
12
- }, (_, i) => i + 1);
13
- return /* @__PURE__ */ jsx(SkeletonContainer, { style: {
14
- flexDirection: "row",
15
- flexFlow: "row wrap"
16
- }, children: skeletons.map((id) => /* @__PURE__ */ jsx(Skeleton, { height: 88, width: 88, style: {
17
- flexGrow: "unset",
18
- marginBottom: 5
19
- } }, id)) });
15
+ let t1;
16
+ if ($[0] !== skeletonQtty) {
17
+ t1 = Array.from({
18
+ length: skeletonQtty
19
+ }, _temp);
20
+ $[0] = skeletonQtty;
21
+ $[1] = t1;
22
+ } else {
23
+ t1 = $[1];
24
+ }
25
+ const skeletons = t1;
26
+ let t2;
27
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
28
+ t2 = {
29
+ flexDirection: "row",
30
+ flexFlow: "row wrap"
31
+ };
32
+ $[2] = t2;
33
+ } else {
34
+ t2 = $[2];
35
+ }
36
+ let t3;
37
+ if ($[3] !== skeletons) {
38
+ t3 = /* @__PURE__ */ jsx(SkeletonContainer, { style: t2, children: skeletons.map(_temp2) });
39
+ $[3] = skeletons;
40
+ $[4] = t3;
41
+ } else {
42
+ t3 = $[4];
43
+ }
44
+ return t3;
20
45
  }
21
46
  return children;
22
47
  };
23
48
  const SubMenuContainer = (t0) => {
24
- const $ = compilerRuntimeExports.c(21);
49
+ const $ = compilerRuntimeExports.c(19);
25
50
  const {
26
51
  title,
27
52
  customClass,
28
53
  handlerGoBack,
29
- skeletonize,
30
- skeletonQtty,
54
+ skeletonize: t1,
55
+ skeletonQtty: t2,
31
56
  children
32
57
  } = t0;
33
- let t1;
58
+ const skeletonize = t1 === void 0 ? false : t1;
59
+ const skeletonQtty = t2 === void 0 ? 3 : t2;
60
+ let t3;
34
61
  if ($[0] !== handlerGoBack) {
35
- t1 = () => () => {
62
+ t3 = () => () => {
36
63
  handlerGoBack();
37
64
  };
38
65
  $[0] = handlerGoBack;
39
- $[1] = t1;
66
+ $[1] = t3;
40
67
  } else {
41
- t1 = $[1];
68
+ t3 = $[1];
42
69
  }
43
- let t2;
70
+ let t4;
44
71
  if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
45
- t2 = [];
46
- $[2] = t2;
72
+ t4 = [];
73
+ $[2] = t4;
47
74
  } else {
48
- t2 = $[2];
75
+ t4 = $[2];
49
76
  }
50
- useEffect(t1, t2);
51
- const t3 = `floatsubmenu ${customClass}`;
52
- let t4;
77
+ useEffect(t3, t4);
78
+ const t5 = `floatsubmenu ${customClass}`;
79
+ let t6;
53
80
  if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
54
- t4 = {
81
+ t6 = {
55
82
  cursor: "pointer"
56
83
  };
57
- $[3] = t4;
84
+ $[3] = t6;
58
85
  } else {
59
- t4 = $[3];
86
+ t6 = $[3];
60
87
  }
61
- let t5;
88
+ let t7;
62
89
  if ($[4] !== handlerGoBack) {
63
- t5 = /* @__PURE__ */ jsx(Icon, { onClick: handlerGoBack, name: "arrowBack", pointerEvents: "all", style: t4 });
90
+ t7 = /* @__PURE__ */ jsx(Icon, { onClick: handlerGoBack, name: "arrowBack", pointerEvents: "all", style: t6 });
64
91
  $[4] = handlerGoBack;
65
- $[5] = t5;
92
+ $[5] = t7;
66
93
  } else {
67
- t5 = $[5];
94
+ t7 = $[5];
68
95
  }
69
- let t6;
96
+ let t8;
70
97
  if ($[6] !== title) {
71
- t6 = title && /* @__PURE__ */ jsx("span", { children: title });
98
+ t8 = title && /* @__PURE__ */ jsx("span", { children: title });
72
99
  $[6] = title;
73
- $[7] = t6;
100
+ $[7] = t8;
74
101
  } else {
75
- t6 = $[7];
102
+ t8 = $[7];
76
103
  }
77
- let t7;
78
- if ($[8] !== t5 || $[9] !== t6) {
79
- t7 = /* @__PURE__ */ jsxs("div", { className: "submenuheader", children: [
80
- t5,
81
- t6
104
+ let t9;
105
+ if ($[8] !== t7 || $[9] !== t8) {
106
+ t9 = /* @__PURE__ */ jsxs("div", { className: "submenuheader", children: [
107
+ t7,
108
+ t8
82
109
  ] });
83
- $[8] = t5;
84
- $[9] = t6;
85
- $[10] = t7;
110
+ $[8] = t7;
111
+ $[9] = t8;
112
+ $[10] = t9;
86
113
  } else {
87
- t7 = $[10];
114
+ t9 = $[10];
88
115
  }
89
- let t8;
116
+ let t10;
90
117
  if ($[11] !== children || $[12] !== skeletonQtty || $[13] !== skeletonize) {
91
- t8 = renderChildren(skeletonize, skeletonQtty, children);
118
+ t10 = /* @__PURE__ */ jsx("div", { className: "submenucontent", children: /* @__PURE__ */ jsx(SubMenuContent, { skeletonize, skeletonQtty, children }) });
92
119
  $[11] = children;
93
120
  $[12] = skeletonQtty;
94
121
  $[13] = skeletonize;
95
- $[14] = t8;
122
+ $[14] = t10;
96
123
  } else {
97
- t8 = $[14];
124
+ t10 = $[14];
98
125
  }
99
- let t9;
100
- if ($[15] !== t8) {
101
- t9 = /* @__PURE__ */ jsx("div", { className: "submenucontent", children: t8 });
102
- $[15] = t8;
103
- $[16] = t9;
104
- } else {
105
- t9 = $[16];
106
- }
107
- let t10;
108
- if ($[17] !== t3 || $[18] !== t7 || $[19] !== t9) {
109
- t10 = /* @__PURE__ */ jsxs("div", { className: t3, children: [
110
- t7,
111
- t9
126
+ let t11;
127
+ if ($[15] !== t10 || $[16] !== t5 || $[17] !== t9) {
128
+ t11 = /* @__PURE__ */ jsxs("div", { className: t5, children: [
129
+ t9,
130
+ t10
112
131
  ] });
113
- $[17] = t3;
114
- $[18] = t7;
115
- $[19] = t9;
116
- $[20] = t10;
132
+ $[15] = t10;
133
+ $[16] = t5;
134
+ $[17] = t9;
135
+ $[18] = t11;
117
136
  } else {
118
- t10 = $[20];
137
+ t11 = $[18];
119
138
  }
120
- return t10;
121
- };
122
- SubMenuContainer.propTypes = {
123
- children: PropTypes.node.isRequired,
124
- handlerGoBack: PropTypes.func.isRequired,
125
- title: PropTypes.string,
126
- customClass: PropTypes.string,
127
- skeletonize: PropTypes.bool,
128
- skeletonQtty: PropTypes.number
129
- };
130
- SubMenuContainer.defaultProps = {
131
- title: void 0,
132
- customClass: void 0,
133
- skeletonize: false,
134
- skeletonQtty: 3
139
+ return t11;
135
140
  };
141
+ function _temp(_, i) {
142
+ return i + 1;
143
+ }
144
+ function _temp2(id) {
145
+ return /* @__PURE__ */ jsx(Skeleton, { height: 88, width: 88, style: {
146
+ flexGrow: "unset",
147
+ marginBottom: 5
148
+ } }, id);
149
+ }
136
150
  export {
137
151
  SubMenuContainer as default
138
152
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SubMenuContainer.js","sources":["../../../src/lib/menus/float/SubMenuContainer.jsx"],"sourcesContent":["import { useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from '../../icons';\nimport Skeleton, { SkeletonContainer } from '../../skeleton';\n\nconst renderChildren = (skeletonize, skeletonQtty, children) => {\n if (skeletonize && skeletonQtty) {\n const skeletons = Array.from({ length: skeletonQtty }, (_, i) => i + 1);\n return (\n <SkeletonContainer style={{ flexDirection: 'row', flexFlow: 'row wrap' }}>\n {skeletons.map(id => (\n <Skeleton\n key={id}\n height={88}\n width={88}\n style={{\n flexGrow: 'unset',\n marginBottom: 5,\n }} />\n ))}\n </SkeletonContainer>\n );\n }\n\n return children;\n};\n\nconst SubMenuContainer = ({\n title, customClass, handlerGoBack, skeletonize, skeletonQtty, children,\n}) => {\n useEffect(() => () => {\n handlerGoBack();\n }, []);\n\n return (\n <div className={`floatsubmenu ${customClass}`}>\n <div className=\"submenuheader\">\n <Icon onClick={handlerGoBack} name=\"arrowBack\" pointerEvents=\"all\" style={{ cursor: 'pointer' }} />\n {title && <span>{title}</span>}\n </div>\n <div className=\"submenucontent\">\n {renderChildren(skeletonize, skeletonQtty, children)}\n </div>\n </div>\n );\n};\n\nSubMenuContainer.propTypes = {\n children: PropTypes.node.isRequired,\n handlerGoBack: PropTypes.func.isRequired,\n title: PropTypes.string,\n customClass: PropTypes.string,\n skeletonize: PropTypes.bool,\n skeletonQtty: PropTypes.number,\n};\n\nSubMenuContainer.defaultProps = {\n title: undefined,\n customClass: undefined,\n skeletonize: false,\n skeletonQtty: 3,\n};\n\nexport default SubMenuContainer;\n"],"names":["renderChildren","skeletonize","skeletonQtty","children","skeletons","Array","from","length","_","i","flexDirection","flexFlow","map","id","flexGrow","marginBottom","SubMenuContainer","t0","$","_c","title","customClass","handlerGoBack","t1","t2","Symbol","for","useEffect","t3","t4","cursor","t5","t6","t7","t8","t9","t10","propTypes","PropTypes","node","isRequired","func","string","bool","number","defaultProps","undefined"],"mappings":";;;;;;;AAKA,MAAMA,iBAAiBA,CAACC,aAAaC,cAAcC,aAAa;AAC9D,MAAIF,eAAeC,cAAc;AAC/B,UAAME,YAAYC,MAAMC,KAAK;AAAA,MAAEC,QAAQL;AAAAA,IAAAA,GAAgB,CAACM,GAAGC,MAAMA,IAAI,CAAC;AACtE,WACE,oBAAC,qBAAkB,OAAO;AAAA,MAAEC,eAAe;AAAA,MAAOC,UAAU;AAAA,IAAA,GACzDP,UAAAA,UAAUQ,IAAIC,CAAAA,OACb,oBAAC,YAEC,QAAQ,IACR,OAAO,IACP,OAAO;AAAA,MACLC,UAAU;AAAA,MACVC,cAAc;AAAA,IAAA,KALXF,GAOR,GACH;AAAA,EAEJ;AAEA,SAAOV;AACT;AAEA,MAAMa,mBAAmBC,CAAAA,OAAA;AAAA,QAAAC,IAAAC,uBAAAA,EAAA,EAAA;AAAC,QAAA;AAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAArB;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAAAc;AAEzB,MAAAM;AAAA,MAAAL,SAAAI,eAAA;AACWC,SAAAA,MAAM,MAAA;AACdD,oBAAAA;AAAAA,IAAe;AAChBJ,WAAAI;AAAAJ,WAAAK;AAAAA,EAAA,OAAA;AAAAA,SAAAL,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAM;AAAA,MAAAN,EAAA,CAAA,MAAAO,OAAAC,IAAA,2BAAA,GAAA;AAAEF,SAAA,CAAA;AAAEN,WAAAM;AAAAA,EAAA,OAAA;AAAAA,SAAAN,EAAA,CAAA;AAAA,EAAA;AAFLS,YAAUJ,IAEPC,EAAE;AAGa,QAAAI,KAAA,gBAAgBP,WAAW;AAAE,MAAAQ;AAAA,MAAAX,EAAA,CAAA,MAAAO,OAAAC,IAAA,2BAAA,GAAA;AAEiCG,SAAA;AAAA,MAAAC,QAAU;AAAA,IAAA;AAAWZ,WAAAW;AAAAA,EAAA,OAAA;AAAAA,SAAAX,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAa;AAAA,MAAAb,SAAAI,eAAA;AAA/FS,SAAA,oBAAC,QAAcT,SAAAA,eAAoB,MAAA,aAA0B,eAAA,OAAa,OAAAO,GAAAA,CAAqB;AAAIX,WAAAI;AAAAJ,WAAAa;AAAAA,EAAA,OAAA;AAAAA,SAAAb,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAc;AAAA,MAAAd,SAAAE,OAAA;AAClGY,SAAAZ,SAAS,oBAAA,QAAA,EAAOA,UAAAA,OAAM;AAAOF,WAAAE;AAAAF,WAAAc;AAAAA,EAAA,OAAA;AAAAA,SAAAd,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAe;AAAA,MAAAf,EAAA,CAAA,MAAAa,MAAAb,SAAAc,IAAA;AAFhCC,SAAA,qBAAA,OAAA,EAAe,WAAA,iBACbF,UAAAA;AAAAA,MAAAA;AAAAA,MACCC;AAAAA,IAAAA,GACH;AAAMd,WAAAa;AAAAb,WAAAc;AAAAd,YAAAe;AAAAA,EAAA,OAAA;AAAAA,SAAAf,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAgB;AAAA,MAAAhB,EAAA,EAAA,MAAAf,YAAAe,UAAAhB,gBAAAgB,EAAA,EAAA,MAAAjB,aAAA;AAEHiC,SAAAlC,eAAeC,aAAaC,cAAcC,QAAQ;AAACe,YAAAf;AAAAe,YAAAhB;AAAAgB,YAAAjB;AAAAiB,YAAAgB;AAAAA,EAAA,OAAA;AAAAA,SAAAhB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAiB;AAAA,MAAAjB,UAAAgB,IAAA;AADtDC,SAAA,oBAAA,OAAA,EAAe,WAAA,kBACZD,UAAAA,IACH;AAAMhB,YAAAgB;AAAAhB,YAAAiB;AAAAA,EAAA,OAAA;AAAAA,SAAAjB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAkB;AAAA,MAAAlB,EAAA,EAAA,MAAAU,MAAAV,UAAAe,MAAAf,EAAA,EAAA,MAAAiB,IAAA;AAPRC,UAAA,qBAAA,OAAA,EAAgB,WAAAR,IACdK,UAAAA;AAAAA,MAAAA;AAAAA,MAIAE;AAAAA,IAAAA,GAGF;AAAMjB,YAAAU;AAAAV,YAAAe;AAAAf,YAAAiB;AAAAjB,YAAAkB;AAAAA,EAAA,OAAA;AAAAA,UAAAlB,EAAA,EAAA;AAAA,EAAA;AAAA,SARNkB;AAQM;AAIVpB,iBAAiBqB,YAAY;AAAA,EAC3BlC,UAAUmC,UAAUC,KAAKC;AAAAA,EACzBlB,eAAegB,UAAUG,KAAKD;AAAAA,EAC9BpB,OAAOkB,UAAUI;AAAAA,EACjBrB,aAAaiB,UAAUI;AAAAA,EACvBzC,aAAaqC,UAAUK;AAAAA,EACvBzC,cAAcoC,UAAUM;AAC1B;AAEA5B,iBAAiB6B,eAAe;AAAA,EAC9BzB,OAAO0B;AAAAA,EACPzB,aAAayB;AAAAA,EACb7C,aAAa;AAAA,EACbC,cAAc;AAChB;"}
1
+ {"version":3,"file":"SubMenuContainer.js","sources":["../../../src/lib/menus/float/SubMenuContainer.tsx"],"sourcesContent":["import { ReactNode, useEffect } from 'react';\nimport Icon from '../../icons';\nimport Skeleton, { SkeletonContainer } from '../../skeleton';\n\ninterface SubMenuContainerProps {\n title?: string;\n customClass?: string;\n handlerGoBack: () => void;\n skeletonize?: boolean;\n skeletonQtty?: number;\n children: ReactNode;\n}\n\nconst SubMenuContent = ({ \n children, skeletonize, skeletonQtty, \n}: { children: ReactNode; skeletonize: boolean; skeletonQtty: number }) => {\n if (skeletonize && skeletonQtty) {\n const skeletons = Array.from({ length: skeletonQtty }, (_, i) => i + 1);\n return (\n <SkeletonContainer style={{ flexDirection: 'row', flexFlow: 'row wrap' }}>\n {skeletons.map(id => (\n <Skeleton\n key={id}\n height={88}\n width={88}\n style={{\n flexGrow: 'unset',\n marginBottom: 5,\n }} />\n ))}\n </SkeletonContainer>\n );\n }\n\n return children;\n};\n\nconst SubMenuContainer = ({\n title, customClass, handlerGoBack, skeletonize = false, skeletonQtty = 3, children,\n}: SubMenuContainerProps) => {\n useEffect(() => () => {\n handlerGoBack();\n }, []);\n\n return (\n <div className={`floatsubmenu ${customClass}`}>\n <div className=\"submenuheader\">\n <Icon onClick={handlerGoBack} name=\"arrowBack\" pointerEvents=\"all\" style={{ cursor: 'pointer' }} />\n {title && <span>{title}</span>}\n </div>\n <div className=\"submenucontent\">\n <SubMenuContent skeletonize={skeletonize} skeletonQtty={skeletonQtty}>\n {children}\n </SubMenuContent>\n </div>\n </div>\n );\n};\n\nexport default SubMenuContainer;\n"],"names":["SubMenuContent","t0","$","_c","children","skeletonize","skeletonQtty","t1","Array","from","length","_temp","skeletons","t2","Symbol","for","flexDirection","flexFlow","t3","map","_temp2","SubMenuContainer","title","customClass","handlerGoBack","undefined","t4","useEffect","t5","t6","cursor","t7","t8","t9","t10","t11","_","i","id","flexGrow","marginBottom"],"mappings":"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"}