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.
- package/lib/_virtual/index.js +8 -0
- package/lib/_virtual/index.js.map +1 -0
- package/lib/_virtual/index2.js +5 -0
- package/lib/_virtual/index2.js.map +1 -0
- package/lib/_virtual/index3.js +5 -0
- package/lib/_virtual/index3.js.map +1 -0
- package/lib/_virtual/react-is.development.js +5 -0
- package/lib/_virtual/react-is.development.js.map +1 -0
- package/lib/_virtual/react-is.production.min.js +5 -0
- package/lib/_virtual/react-is.production.min.js.map +1 -0
- package/lib/inputs/number/Currency.js +11 -17
- package/lib/inputs/number/Currency.js.map +1 -1
- package/lib/inputs/number/Decimal.js +11 -17
- package/lib/inputs/number/Decimal.js.map +1 -1
- package/lib/inputs/number/index.js +9 -15
- package/lib/inputs/number/index.js.map +1 -1
- package/lib/menus/float/SubMenuContainer.d.ts +28 -10
- package/lib/menus/float/SubMenuContainer.js +83 -97
- package/lib/menus/float/SubMenuContainer.js.map +1 -1
- package/lib/node_modules/lodash/lodash.js +2 -2
- package/lib/node_modules/lodash/lodash.js.map +1 -1
- package/lib/node_modules/object-assign/index.js +79 -0
- package/lib/node_modules/object-assign/index.js.map +1 -0
- package/lib/node_modules/prop-types/checkPropTypes.js +69 -0
- package/lib/node_modules/prop-types/checkPropTypes.js.map +1 -0
- package/lib/node_modules/prop-types/factoryWithThrowingShims.js +59 -0
- package/lib/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -0
- package/lib/node_modules/prop-types/factoryWithTypeCheckers.js +452 -0
- package/lib/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -0
- package/lib/node_modules/prop-types/index.js +21 -0
- package/lib/node_modules/prop-types/index.js.map +1 -0
- package/lib/node_modules/prop-types/lib/ReactPropTypesSecret.js +13 -0
- package/lib/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -0
- package/lib/node_modules/prop-types/lib/has.js +12 -0
- package/lib/node_modules/prop-types/lib/has.js.map +1 -0
- package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +166 -0
- package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +107 -0
- package/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/lib/node_modules/prop-types/node_modules/react-is/index.js +18 -0
- package/lib/node_modules/prop-types/node_modules/react-is/index.js.map +1 -0
- package/lib/treetable/Row.js +309 -284
- package/lib/treetable/Row.js.map +1 -1
- package/lib/treetable/helpers.d.ts +2 -0
- package/lib/treetable/helpers.js.map +1 -1
- package/lib/treetable/types.d.ts +49 -0
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"index2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-is.development.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -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: (__,
|
|
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:
|
|
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
|
-
|
|
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
|
|
91
|
-
if (!_.isEqual(
|
|
92
|
-
setMaskedValue(
|
|
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
|
|
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: (__,
|
|
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:
|
|
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
|
-
|
|
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
|
|
88
|
-
if (!_.isEqual(
|
|
89
|
-
setMaskedValue(
|
|
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
|
|
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: (
|
|
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:
|
|
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
|
-
|
|
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
|
|
84
|
-
if (!_.isEqual(
|
|
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
|
|
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
|
+
}
|