@activecollab/components 2.0.92 → 2.0.94
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/dist/cjs/components/EditableCurrency/EditableCurrency.js +8 -5
- package/dist/cjs/components/EditableCurrency/EditableCurrency.js.map +1 -1
- package/dist/cjs/components/Input/InputNumber.js +5 -2
- package/dist/cjs/components/Input/InputNumber.js.map +1 -1
- package/dist/cjs/hooks/useInputNumber.js +10 -8
- package/dist/cjs/hooks/useInputNumber.js.map +1 -1
- package/dist/cjs/utils/currencyUtils.js +50 -8
- package/dist/cjs/utils/currencyUtils.js.map +1 -1
- package/dist/cjs/utils/currencyUtils.test.js +272 -19
- package/dist/cjs/utils/currencyUtils.test.js.map +1 -1
- package/dist/cjs/utils/index.js +8 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/types.js.map +1 -1
- package/dist/esm/components/EditableCurrency/EditableCurrency.d.ts.map +1 -1
- package/dist/esm/components/EditableCurrency/EditableCurrency.js +6 -4
- package/dist/esm/components/EditableCurrency/EditableCurrency.js.map +1 -1
- package/dist/esm/components/Input/InputNumber.d.ts.map +1 -1
- package/dist/esm/components/Input/InputNumber.js +3 -1
- package/dist/esm/components/Input/InputNumber.js.map +1 -1
- package/dist/esm/hooks/useInputNumber.d.ts +3 -2
- package/dist/esm/hooks/useInputNumber.d.ts.map +1 -1
- package/dist/esm/hooks/useInputNumber.js +9 -8
- package/dist/esm/hooks/useInputNumber.js.map +1 -1
- package/dist/esm/utils/currencyUtils.d.ts +4 -3
- package/dist/esm/utils/currencyUtils.d.ts.map +1 -1
- package/dist/esm/utils/currencyUtils.js +65 -7
- package/dist/esm/utils/currencyUtils.js.map +1 -1
- package/dist/esm/utils/currencyUtils.test.js +277 -20
- package/dist/esm/utils/currencyUtils.test.js.map +1 -1
- package/dist/esm/utils/index.d.ts +1 -1
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +1 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/types.d.ts +8 -0
- package/dist/esm/utils/types.d.ts.map +1 -1
- package/dist/esm/utils/types.js.map +1 -1
- package/dist/index.js +73 -22
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,7 +9,7 @@ var _hooks = require("../../hooks");
|
|
|
9
9
|
var _utils = require("../../utils");
|
|
10
10
|
var _EditableContent = require("../EditableContent");
|
|
11
11
|
var _Tooltip = require("../Tooltip");
|
|
12
|
-
var _excluded = ["decimalLength", "decimalSeparator", "disableAbbreviation", "disabled", "disableMacros", "step", "thousandSeparator", "value", "onSave", "onCancel", "className", "allowEmptyValue", "onEnterKeyPress", "onClick", "onChange"];
|
|
12
|
+
var _excluded = ["decimalLength", "decimalSeparator", "disableAbbreviation", "disabled", "disableMacros", "step", "thousandSeparator", "value", "onSave", "onCancel", "className", "allowEmptyValue", "onEnterKeyPress", "onClick", "onChange", "trimDecimals"];
|
|
13
13
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
14
14
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
15
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
@@ -41,6 +41,8 @@ var EditableCurrency = exports.EditableCurrency = /*#__PURE__*/_react.default.fo
|
|
|
41
41
|
externalEnterKeyPress = _ref.onEnterKeyPress,
|
|
42
42
|
externalOnClick = _ref.onClick,
|
|
43
43
|
externalOnChange = _ref.onChange,
|
|
44
|
+
_ref$trimDecimals = _ref.trimDecimals,
|
|
45
|
+
trimDecimals = _ref$trimDecimals === void 0 ? true : _ref$trimDecimals,
|
|
44
46
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
45
47
|
var inputRef = (0, _react.useRef)(null);
|
|
46
48
|
var handleRef = (0, _utils.useForkRef)(ref, inputRef);
|
|
@@ -57,7 +59,8 @@ var EditableCurrency = exports.EditableCurrency = /*#__PURE__*/_react.default.fo
|
|
|
57
59
|
onCancel,
|
|
58
60
|
onChange: externalOnChange,
|
|
59
61
|
onEnterKeyPress: externalEnterKeyPress,
|
|
60
|
-
onClick: externalOnClick
|
|
62
|
+
onClick: externalOnClick,
|
|
63
|
+
trimDecimals
|
|
61
64
|
}, inputRef),
|
|
62
65
|
inputProps = _useInputNumber.inputProps;
|
|
63
66
|
var value = inputProps.value,
|
|
@@ -70,10 +73,10 @@ var EditableCurrency = exports.EditableCurrency = /*#__PURE__*/_react.default.fo
|
|
|
70
73
|
focused = inputProps.focused,
|
|
71
74
|
unformattedValue = inputProps.unformattedValue;
|
|
72
75
|
var formattedValue = (0, _react.useMemo)(function () {
|
|
73
|
-
return focused ? value : (0, _utils.numberWithSeparator)(value !== null && value !== void 0 ? value : "", thousandSeparator);
|
|
74
|
-
}, [focused, value, thousandSeparator]);
|
|
76
|
+
return focused ? value : (0, _utils.numberWithSeparator)(value !== null && value !== void 0 ? value : "", thousandSeparator, decimalSeparator);
|
|
77
|
+
}, [focused, value, thousandSeparator, decimalSeparator]);
|
|
75
78
|
return /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
76
|
-
title: unformattedValue,
|
|
79
|
+
title: (0, _utils.numberWithSeparator)(unformattedValue !== null && unformattedValue !== void 0 ? unformattedValue : "", thousandSeparator, decimalSeparator),
|
|
77
80
|
disable: focused
|
|
78
81
|
}, /*#__PURE__*/_react.default.createElement(_EditableContent.EditableContent, {
|
|
79
82
|
disabled: disabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditableCurrency.js","names":["_react","_interopRequireWildcard","require","_hooks","_utils","_EditableContent","_Tooltip","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","key","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","EditableCurrency","exports","React","forwardRef","_ref","ref","_ref$decimalLength","decimalLength","_ref$decimalSeparator","decimalSeparator","_ref$disableAbbreviat","disableAbbreviation","disabled","_ref$disableMacros","disableMacros","_ref$step","step","_ref$thousandSeparato","thousandSeparator","defaultValue","onSave","onCancel","className","allowEmptyValue","externalEnterKeyPress","onEnterKeyPress","externalOnClick","onClick","externalOnChange","onChange","rest","inputRef","useRef","handleRef","useForkRef","_useInputNumber","useInputNumber","inputProps","onBlur","onKeyDown","onDoubleClick","onFocus","focused","unformattedValue","formattedValue","useMemo","numberWithSeparator","createElement","Tooltip","title","disable","EditableContent","displayName"],"sources":["../../../../src/components/EditableCurrency/EditableCurrency.tsx"],"sourcesContent":["import React, { useMemo, useRef } from \"react\";\n\nimport { IInputNumber, useInputNumber } from \"../../hooks\";\nimport { numberWithSeparator, useForkRef } from \"../../utils\";\nimport { EditableContent, EditableContentInterface } from \"../EditableContent\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport interface EditableCurrencyProps\n extends EditableContentInterface,\n Omit<IInputNumber, \"limit\"> {\n className?: string;\n}\n\nexport const EditableCurrency = React.forwardRef<\n HTMLDivElement,\n EditableCurrencyProps\n>(\n (\n {\n decimalLength = 2,\n decimalSeparator = \".\",\n disableAbbreviation = false,\n disabled,\n disableMacros = false,\n step = 1,\n thousandSeparator = \",\",\n value: defaultValue,\n onSave,\n onCancel,\n className,\n allowEmptyValue,\n onEnterKeyPress: externalEnterKeyPress,\n onClick: externalOnClick,\n onChange: externalOnChange,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const { inputProps } = useInputNumber(\n {\n decimalLength,\n decimalSeparator,\n disableAbbreviation,\n disableMacros,\n step,\n thousandSeparator,\n value: defaultValue,\n onSave,\n allowEmptyValue,\n onCancel,\n onChange: externalOnChange,\n onEnterKeyPress: externalEnterKeyPress,\n onClick: externalOnClick,\n },\n inputRef\n );\n\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n focused,\n unformattedValue,\n } = inputProps;\n\n const formattedValue = useMemo(() => {\n return focused\n ? value\n : numberWithSeparator(value ?? \"\", thousandSeparator);\n }, [focused, value, thousandSeparator]);\n\n return (\n <Tooltip title={unformattedValue as string} disable={focused}>\n <EditableContent\n disabled={disabled}\n ref={handleRef}\n className={className}\n inputProps={{\n value: formattedValue,\n onBlur: onBlur,\n onChange: onChange,\n onKeyDown: onKeyDown,\n onClick: onClick,\n onFocus: onFocus,\n onDoubleClick: onDoubleClick,\n ...rest,\n }}\n />\n </Tooltip>\n );\n }\n);\n\nEditableCurrency.displayName = \"EditableCurrency\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EditableCurrency.js","names":["_react","_interopRequireWildcard","require","_hooks","_utils","_EditableContent","_Tooltip","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","key","value","_toPropertyKey","configurable","writable","_toPrimitive","String","Symbol","toPrimitive","TypeError","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","EditableCurrency","exports","React","forwardRef","_ref","ref","_ref$decimalLength","decimalLength","_ref$decimalSeparator","decimalSeparator","_ref$disableAbbreviat","disableAbbreviation","disabled","_ref$disableMacros","disableMacros","_ref$step","step","_ref$thousandSeparato","thousandSeparator","defaultValue","onSave","onCancel","className","allowEmptyValue","externalEnterKeyPress","onEnterKeyPress","externalOnClick","onClick","externalOnChange","onChange","_ref$trimDecimals","trimDecimals","rest","inputRef","useRef","handleRef","useForkRef","_useInputNumber","useInputNumber","inputProps","onBlur","onKeyDown","onDoubleClick","onFocus","focused","unformattedValue","formattedValue","useMemo","numberWithSeparator","createElement","Tooltip","title","disable","EditableContent","displayName"],"sources":["../../../../src/components/EditableCurrency/EditableCurrency.tsx"],"sourcesContent":["import React, { useMemo, useRef } from \"react\";\n\nimport { IInputNumber, useInputNumber } from \"../../hooks\";\nimport { numberWithSeparator, useForkRef } from \"../../utils\";\nimport { EditableContent, EditableContentInterface } from \"../EditableContent\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport interface EditableCurrencyProps\n extends EditableContentInterface,\n Omit<IInputNumber, \"limit\"> {\n className?: string;\n}\n\nexport const EditableCurrency = React.forwardRef<\n HTMLDivElement,\n EditableCurrencyProps\n>(\n (\n {\n decimalLength = 2,\n decimalSeparator = \".\",\n disableAbbreviation = false,\n disabled,\n disableMacros = false,\n step = 1,\n thousandSeparator = \",\",\n value: defaultValue,\n onSave,\n onCancel,\n className,\n allowEmptyValue,\n onEnterKeyPress: externalEnterKeyPress,\n onClick: externalOnClick,\n onChange: externalOnChange,\n trimDecimals = true,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const { inputProps } = useInputNumber(\n {\n decimalLength,\n decimalSeparator,\n disableAbbreviation,\n disableMacros,\n step,\n thousandSeparator,\n value: defaultValue,\n onSave,\n allowEmptyValue,\n onCancel,\n onChange: externalOnChange,\n onEnterKeyPress: externalEnterKeyPress,\n onClick: externalOnClick,\n trimDecimals,\n },\n inputRef\n );\n\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n focused,\n unformattedValue,\n } = inputProps;\n\n const formattedValue = useMemo(() => {\n return focused\n ? value\n : numberWithSeparator(value ?? \"\", thousandSeparator, decimalSeparator);\n }, [focused, value, thousandSeparator, decimalSeparator]);\n\n return (\n <Tooltip\n title={\n numberWithSeparator(\n unformattedValue ?? \"\",\n thousandSeparator,\n decimalSeparator\n ) as string\n }\n disable={focused}\n >\n <EditableContent\n disabled={disabled}\n ref={handleRef}\n className={className}\n inputProps={{\n value: formattedValue,\n onBlur: onBlur,\n onChange: onChange,\n onKeyDown: onKeyDown,\n onClick: onClick,\n onFocus: onFocus,\n onDoubleClick: onDoubleClick,\n ...rest,\n }}\n />\n </Tooltip>\n );\n }\n);\n\nEditableCurrency.displayName = \"EditableCurrency\";\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAAqC,IAAAK,SAAA;AAAA,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAR,wBAAAQ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAY,QAAApB,CAAA,EAAAE,CAAA,QAAAC,CAAA,GAAAQ,MAAA,CAAAU,IAAA,CAAArB,CAAA,OAAAW,MAAA,CAAAW,qBAAA,QAAAC,CAAA,GAAAZ,MAAA,CAAAW,qBAAA,CAAAtB,CAAA,GAAAE,CAAA,KAAAqB,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAtB,CAAA,WAAAS,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAE,CAAA,EAAAuB,UAAA,OAAAtB,CAAA,CAAAuB,IAAA,CAAAC,KAAA,CAAAxB,CAAA,EAAAoB,CAAA,YAAApB,CAAA;AAAA,SAAAyB,cAAA5B,CAAA,aAAAE,CAAA,MAAAA,CAAA,GAAA2B,SAAA,CAAAC,MAAA,EAAA5B,CAAA,UAAAC,CAAA,WAAA0B,SAAA,CAAA3B,CAAA,IAAA2B,SAAA,CAAA3B,CAAA,QAAAA,CAAA,OAAAkB,OAAA,CAAAT,MAAA,CAAAR,CAAA,OAAA4B,OAAA,WAAA7B,CAAA,IAAA8B,eAAA,CAAAhC,CAAA,EAAAE,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAS,MAAA,CAAAsB,yBAAA,GAAAtB,MAAA,CAAAuB,gBAAA,CAAAlC,CAAA,EAAAW,MAAA,CAAAsB,yBAAA,CAAA9B,CAAA,KAAAiB,OAAA,CAAAT,MAAA,CAAAR,CAAA,GAAA4B,OAAA,WAAA7B,CAAA,IAAAS,MAAA,CAAAC,cAAA,CAAAZ,CAAA,EAAAE,CAAA,EAAAS,MAAA,CAAAE,wBAAA,CAAAV,CAAA,EAAAD,CAAA,iBAAAF,CAAA;AAAA,SAAAgC,gBAAAG,GAAA,EAAAC,GAAA,EAAAC,KAAA,IAAAD,GAAA,GAAAE,cAAA,CAAAF,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAAxB,MAAA,CAAAC,cAAA,CAAAuB,GAAA,EAAAC,GAAA,IAAAC,KAAA,EAAAA,KAAA,EAAAZ,UAAA,QAAAc,YAAA,QAAAC,QAAA,oBAAAL,GAAA,CAAAC,GAAA,IAAAC,KAAA,WAAAF,GAAA;AAAA,SAAAG,eAAAnC,CAAA,QAAAe,CAAA,GAAAuB,YAAA,CAAAtC,CAAA,uCAAAe,CAAA,GAAAA,CAAA,GAAAwB,MAAA,CAAAxB,CAAA;AAAA,SAAAuB,aAAAtC,CAAA,EAAAD,CAAA,2BAAAC,CAAA,KAAAA,CAAA,SAAAA,CAAA,MAAAH,CAAA,GAAAG,CAAA,CAAAwC,MAAA,CAAAC,WAAA,kBAAA5C,CAAA,QAAAkB,CAAA,GAAAlB,CAAA,CAAAiB,IAAA,CAAAd,CAAA,EAAAD,CAAA,uCAAAgB,CAAA,SAAAA,CAAA,YAAA2B,SAAA,yEAAA3C,CAAA,GAAAwC,MAAA,GAAAI,MAAA,EAAA3C,CAAA;AAAA,SAAA4C,yBAAAC,MAAA,EAAAC,QAAA,QAAAD,MAAA,yBAAAE,MAAA,GAAAC,6BAAA,CAAAH,MAAA,EAAAC,QAAA,OAAAb,GAAA,EAAAlB,CAAA,MAAAP,MAAA,CAAAW,qBAAA,QAAA8B,gBAAA,GAAAzC,MAAA,CAAAW,qBAAA,CAAA0B,MAAA,QAAA9B,CAAA,MAAAA,CAAA,GAAAkC,gBAAA,CAAAtB,MAAA,EAAAZ,CAAA,MAAAkB,GAAA,GAAAgB,gBAAA,CAAAlC,CAAA,OAAA+B,QAAA,CAAAI,OAAA,CAAAjB,GAAA,uBAAAzB,MAAA,CAAAI,SAAA,CAAAuC,oBAAA,CAAArC,IAAA,CAAA+B,MAAA,EAAAZ,GAAA,aAAAc,MAAA,CAAAd,GAAA,IAAAY,MAAA,CAAAZ,GAAA,cAAAc,MAAA;AAAA,SAAAC,8BAAAH,MAAA,EAAAC,QAAA,QAAAD,MAAA,yBAAAE,MAAA,WAAAK,UAAA,GAAA5C,MAAA,CAAAU,IAAA,CAAA2B,MAAA,OAAAZ,GAAA,EAAAlB,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAqC,UAAA,CAAAzB,MAAA,EAAAZ,CAAA,MAAAkB,GAAA,GAAAmB,UAAA,CAAArC,CAAA,OAAA+B,QAAA,CAAAI,OAAA,CAAAjB,GAAA,kBAAAc,MAAA,CAAAd,GAAA,IAAAY,MAAA,CAAAZ,GAAA,YAAAc,MAAA;AAQ9B,IAAMM,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,gBAAGE,cAAK,CAACC,UAAU,CAI9C,UAAAC,IAAA,EAoBEC,GAAG,EACA;EAAA,IAAAC,kBAAA,GAAAF,IAAA,CAnBDG,aAAa;IAAbA,aAAa,GAAAD,kBAAA,cAAG,CAAC,GAAAA,kBAAA;IAAAE,qBAAA,GAAAJ,IAAA,CACjBK,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,GAAG,GAAAA,qBAAA;IAAAE,qBAAA,GAAAN,IAAA,CACtBO,mBAAmB;IAAnBA,mBAAmB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;IAC3BE,QAAQ,GAAAR,IAAA,CAARQ,QAAQ;IAAAC,kBAAA,GAAAT,IAAA,CACRU,aAAa;IAAbA,aAAa,GAAAD,kBAAA,cAAG,KAAK,GAAAA,kBAAA;IAAAE,SAAA,GAAAX,IAAA,CACrBY,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,CAAC,GAAAA,SAAA;IAAAE,qBAAA,GAAAb,IAAA,CACRc,iBAAiB;IAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,GAAG,GAAAA,qBAAA;IAChBE,YAAY,GAAAf,IAAA,CAAnBvB,KAAK;IACLuC,MAAM,GAAAhB,IAAA,CAANgB,MAAM;IACNC,QAAQ,GAAAjB,IAAA,CAARiB,QAAQ;IACRC,SAAS,GAAAlB,IAAA,CAATkB,SAAS;IACTC,eAAe,GAAAnB,IAAA,CAAfmB,eAAe;IACEC,qBAAqB,GAAApB,IAAA,CAAtCqB,eAAe;IACNC,eAAe,GAAAtB,IAAA,CAAxBuB,OAAO;IACGC,gBAAgB,GAAAxB,IAAA,CAA1ByB,QAAQ;IAAAC,iBAAA,GAAA1B,IAAA,CACR2B,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,IAAI,GAAAA,iBAAA;IAChBE,IAAI,GAAAzC,wBAAA,CAAAa,IAAA,EAAA9D,SAAA;EAIT,IAAM2F,QAAQ,GAAG,IAAAC,aAAM,EAAmB,IAAI,CAAC;EAC/C,IAAMC,SAAS,GAAG,IAAAC,iBAAU,EAAC/B,GAAG,EAAE4B,QAAQ,CAAC;EAE3C,IAAAI,eAAA,GAAuB,IAAAC,qBAAc,EACnC;MACE/B,aAAa;MACbE,gBAAgB;MAChBE,mBAAmB;MACnBG,aAAa;MACbE,IAAI;MACJE,iBAAiB;MACjBrC,KAAK,EAAEsC,YAAY;MACnBC,MAAM;MACNG,eAAe;MACfF,QAAQ;MACRQ,QAAQ,EAAED,gBAAgB;MAC1BH,eAAe,EAAED,qBAAqB;MACtCG,OAAO,EAAED,eAAe;MACxBK;IACF,CAAC,EACDE,QACF,CAAC;IAlBOM,UAAU,GAAAF,eAAA,CAAVE,UAAU;EAoBlB,IACE1D,KAAK,GASH0D,UAAU,CATZ1D,KAAK;IACL2D,MAAM,GAQJD,UAAU,CARZC,MAAM;IACNC,SAAS,GAOPF,UAAU,CAPZE,SAAS;IACTZ,QAAQ,GAMNU,UAAU,CANZV,QAAQ;IACRF,OAAO,GAKLY,UAAU,CALZZ,OAAO;IACPe,aAAa,GAIXH,UAAU,CAJZG,aAAa;IACbC,OAAO,GAGLJ,UAAU,CAHZI,OAAO;IACPC,OAAO,GAELL,UAAU,CAFZK,OAAO;IACPC,gBAAgB,GACdN,UAAU,CADZM,gBAAgB;EAGlB,IAAMC,cAAc,GAAG,IAAAC,cAAO,EAAC,YAAM;IACnC,OAAOH,OAAO,GACV/D,KAAK,GACL,IAAAmE,0BAAmB,EAACnE,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE,EAAEqC,iBAAiB,EAAET,gBAAgB,CAAC;EAC3E,CAAC,EAAE,CAACmC,OAAO,EAAE/D,KAAK,EAAEqC,iBAAiB,EAAET,gBAAgB,CAAC,CAAC;EAEzD,oBACE1E,MAAA,CAAAc,OAAA,CAAAoG,aAAA,CAAC5G,QAAA,CAAA6G,OAAO;IACNC,KAAK,EACH,IAAAH,0BAAmB,EACjBH,gBAAgB,aAAhBA,gBAAgB,cAAhBA,gBAAgB,GAAI,EAAE,EACtB3B,iBAAiB,EACjBT,gBACF,CACD;IACD2C,OAAO,EAAER;EAAQ,gBAEjB7G,MAAA,CAAAc,OAAA,CAAAoG,aAAA,CAAC7G,gBAAA,CAAAiH,eAAe;IACdzC,QAAQ,EAAEA,QAAS;IACnBP,GAAG,EAAE8B,SAAU;IACfb,SAAS,EAAEA,SAAU;IACrBiB,UAAU,EAAAnE,aAAA;MACRS,KAAK,EAAEiE,cAAc;MACrBN,MAAM,EAAEA,MAAM;MACdX,QAAQ,EAAEA,QAAQ;MAClBY,SAAS,EAAEA,SAAS;MACpBd,OAAO,EAAEA,OAAO;MAChBgB,OAAO,EAAEA,OAAO;MAChBD,aAAa,EAAEA;IAAa,GACzBV,IAAI;EACP,CACH,CACM,CAAC;AAEd,CACF,CAAC;AAEDhC,gBAAgB,CAACsD,WAAW,GAAG,kBAAkB"}
|
|
@@ -8,7 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _Input = require("./Input");
|
|
9
9
|
var _hooks = require("../../hooks");
|
|
10
10
|
var _utils = require("../../utils");
|
|
11
|
-
var _excluded = ["decimalLength", "decimalSeparator", "disableAbbreviation", "disabled", "disableMacros", "invalid", "step", "thousandSeparator", "value", "onCancel", "onSave", "onEnterKeyPress", "allowEmptyValue", "onChange", "onClick", "limit", "placeholder"];
|
|
11
|
+
var _excluded = ["decimalLength", "decimalSeparator", "disableAbbreviation", "disabled", "disableMacros", "invalid", "step", "thousandSeparator", "value", "onCancel", "onSave", "onEnterKeyPress", "allowEmptyValue", "onChange", "onClick", "limit", "placeholder", "trimDecimals"];
|
|
12
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
13
13
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
14
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
@@ -38,6 +38,8 @@ var InputNumber = exports.InputNumber = /*#__PURE__*/(0, _react.forwardRef)(func
|
|
|
38
38
|
externalOnClick = _ref.onClick,
|
|
39
39
|
limit = _ref.limit,
|
|
40
40
|
placeholder = _ref.placeholder,
|
|
41
|
+
_ref$trimDecimals = _ref.trimDecimals,
|
|
42
|
+
trimDecimals = _ref$trimDecimals === void 0 ? true : _ref$trimDecimals,
|
|
41
43
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
42
44
|
var inputRef = (0, _react.useRef)(null);
|
|
43
45
|
var handleRef = (0, _utils.useForkRef)(ref, inputRef);
|
|
@@ -55,7 +57,8 @@ var InputNumber = exports.InputNumber = /*#__PURE__*/(0, _react.forwardRef)(func
|
|
|
55
57
|
onCancel,
|
|
56
58
|
onSave,
|
|
57
59
|
allowEmptyValue,
|
|
58
|
-
limit
|
|
60
|
+
limit,
|
|
61
|
+
trimDecimals
|
|
59
62
|
}, inputRef),
|
|
60
63
|
inputProps = _useInputNumber.inputProps;
|
|
61
64
|
var value = inputProps.value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputNumber.js","names":["_react","_interopRequireWildcard","require","_Input","_hooks","_utils","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","InputNumber","exports","forwardRef","_ref","ref","_ref$decimalLength","decimalLength","_ref$decimalSeparator","decimalSeparator","_ref$disableAbbreviat","disableAbbreviation","disabled","_ref$disableMacros","disableMacros","invalid","_ref$step","step","_ref$thousandSeparato","thousandSeparator","defaultValue","value","onCancel","onSave","externalEnterKeyPress","onEnterKeyPress","allowEmptyValue","externalOnChange","onChange","externalOnClick","onClick","limit","placeholder","rest","inputRef","useRef","handleRef","useForkRef","_useInputNumber","useInputNumber","inputProps","onBlur","onKeyDown","onDoubleClick","onFocus","createElement","Input","type","displayName"],"sources":["../../../../src/components/Input/InputNumber.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from \"react\";\n\nimport { Input, InputProps } from \"./Input\";\nimport { IInputNumber, useInputNumber } from \"../../hooks\";\nimport { useForkRef } from \"../../utils\";\n\nexport interface InputNumberProps\n extends Omit<InputProps, \"value\" | \"onChange\" | \"step\">,\n IInputNumber {}\n\nexport const InputNumber = forwardRef<HTMLInputElement, InputNumberProps>(\n (\n {\n decimalLength = 2,\n decimalSeparator = \".\",\n disableAbbreviation = false,\n disabled,\n disableMacros = false,\n invalid,\n step = 1,\n thousandSeparator = \",\",\n value: defaultValue,\n onCancel,\n onSave,\n onEnterKeyPress: externalEnterKeyPress,\n allowEmptyValue,\n onChange: externalOnChange,\n onClick: externalOnClick,\n limit,\n placeholder,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const { inputProps } = useInputNumber(\n {\n decimalLength,\n decimalSeparator,\n disableAbbreviation,\n disableMacros,\n step,\n thousandSeparator,\n onEnterKeyPress: externalEnterKeyPress,\n onChange: externalOnChange,\n onClick: externalOnClick,\n value: defaultValue,\n onCancel,\n onSave,\n allowEmptyValue,\n limit,\n },\n inputRef\n );\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n } = inputProps;\n\n return (\n <Input\n {...rest}\n ref={handleRef}\n placeholder={placeholder}\n value={value}\n type=\"text\"\n disabled={disabled}\n invalid={invalid}\n onChange={onChange}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onFocus={onFocus}\n aria-placeholder={placeholder}\n aria-disabled={disabled}\n aria-invalid={invalid}\n />\n );\n }\n);\n\nInputNumber.displayName = \"InputNumber\";\n"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"InputNumber.js","names":["_react","_interopRequireWildcard","require","_Input","_hooks","_utils","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","InputNumber","exports","forwardRef","_ref","ref","_ref$decimalLength","decimalLength","_ref$decimalSeparator","decimalSeparator","_ref$disableAbbreviat","disableAbbreviation","disabled","_ref$disableMacros","disableMacros","invalid","_ref$step","step","_ref$thousandSeparato","thousandSeparator","defaultValue","value","onCancel","onSave","externalEnterKeyPress","onEnterKeyPress","allowEmptyValue","externalOnChange","onChange","externalOnClick","onClick","limit","placeholder","_ref$trimDecimals","trimDecimals","rest","inputRef","useRef","handleRef","useForkRef","_useInputNumber","useInputNumber","inputProps","onBlur","onKeyDown","onDoubleClick","onFocus","createElement","Input","type","displayName"],"sources":["../../../../src/components/Input/InputNumber.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from \"react\";\n\nimport { Input, InputProps } from \"./Input\";\nimport { IInputNumber, useInputNumber } from \"../../hooks\";\nimport { useForkRef } from \"../../utils\";\n\nexport interface InputNumberProps\n extends Omit<InputProps, \"value\" | \"onChange\" | \"step\">,\n IInputNumber {}\n\nexport const InputNumber = forwardRef<HTMLInputElement, InputNumberProps>(\n (\n {\n decimalLength = 2,\n decimalSeparator = \".\",\n disableAbbreviation = false,\n disabled,\n disableMacros = false,\n invalid,\n step = 1,\n thousandSeparator = \",\",\n value: defaultValue,\n onCancel,\n onSave,\n onEnterKeyPress: externalEnterKeyPress,\n allowEmptyValue,\n onChange: externalOnChange,\n onClick: externalOnClick,\n limit,\n placeholder,\n trimDecimals = true,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const { inputProps } = useInputNumber(\n {\n decimalLength,\n decimalSeparator,\n disableAbbreviation,\n disableMacros,\n step,\n thousandSeparator,\n onEnterKeyPress: externalEnterKeyPress,\n onChange: externalOnChange,\n onClick: externalOnClick,\n value: defaultValue,\n onCancel,\n onSave,\n allowEmptyValue,\n limit,\n trimDecimals,\n },\n inputRef\n );\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n } = inputProps;\n\n return (\n <Input\n {...rest}\n ref={handleRef}\n placeholder={placeholder}\n value={value}\n type=\"text\"\n disabled={disabled}\n invalid={invalid}\n onChange={onChange}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onFocus={onFocus}\n aria-placeholder={placeholder}\n aria-disabled={disabled}\n aria-invalid={invalid}\n />\n );\n }\n);\n\nInputNumber.displayName = \"InputNumber\";\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAAyC,IAAAI,SAAA;AAAA,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAY,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAL,CAAA,MAAAA,CAAA,GAAAM,SAAA,CAAAC,MAAA,EAAAP,CAAA,UAAAQ,MAAA,GAAAF,SAAA,CAAAN,CAAA,YAAAS,GAAA,IAAAD,MAAA,QAAAf,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAC,GAAA,KAAAJ,MAAA,CAAAI,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAJ,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAJ,SAAA;AAAA,SAAAK,yBAAAH,MAAA,EAAAI,QAAA,QAAAJ,MAAA,yBAAAH,MAAA,GAAAQ,6BAAA,CAAAL,MAAA,EAAAI,QAAA,OAAAH,GAAA,EAAAT,CAAA,MAAAP,MAAA,CAAAqB,qBAAA,QAAAC,gBAAA,GAAAtB,MAAA,CAAAqB,qBAAA,CAAAN,MAAA,QAAAR,CAAA,MAAAA,CAAA,GAAAe,gBAAA,CAAAR,MAAA,EAAAP,CAAA,MAAAS,GAAA,GAAAM,gBAAA,CAAAf,CAAA,OAAAY,QAAA,CAAAI,OAAA,CAAAP,GAAA,uBAAAhB,MAAA,CAAAI,SAAA,CAAAoB,oBAAA,CAAAlB,IAAA,CAAAS,MAAA,EAAAC,GAAA,aAAAJ,MAAA,CAAAI,GAAA,IAAAD,MAAA,CAAAC,GAAA,cAAAJ,MAAA;AAAA,SAAAQ,8BAAAL,MAAA,EAAAI,QAAA,QAAAJ,MAAA,yBAAAH,MAAA,WAAAa,UAAA,GAAAzB,MAAA,CAAA0B,IAAA,CAAAX,MAAA,OAAAC,GAAA,EAAAT,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAkB,UAAA,CAAAX,MAAA,EAAAP,CAAA,MAAAS,GAAA,GAAAS,UAAA,CAAAlB,CAAA,OAAAY,QAAA,CAAAI,OAAA,CAAAP,GAAA,kBAAAJ,MAAA,CAAAI,GAAA,IAAAD,MAAA,CAAAC,GAAA,YAAAJ,MAAA;AAMlC,IAAMe,WAAW,GAAAC,OAAA,CAAAD,WAAA,gBAAG,IAAAE,iBAAU,EACnC,UAAAC,IAAA,EAsBEC,GAAG,EACA;EAAA,IAAAC,kBAAA,GAAAF,IAAA,CArBDG,aAAa;IAAbA,aAAa,GAAAD,kBAAA,cAAG,CAAC,GAAAA,kBAAA;IAAAE,qBAAA,GAAAJ,IAAA,CACjBK,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,GAAG,GAAAA,qBAAA;IAAAE,qBAAA,GAAAN,IAAA,CACtBO,mBAAmB;IAAnBA,mBAAmB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;IAC3BE,QAAQ,GAAAR,IAAA,CAARQ,QAAQ;IAAAC,kBAAA,GAAAT,IAAA,CACRU,aAAa;IAAbA,aAAa,GAAAD,kBAAA,cAAG,KAAK,GAAAA,kBAAA;IACrBE,OAAO,GAAAX,IAAA,CAAPW,OAAO;IAAAC,SAAA,GAAAZ,IAAA,CACPa,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,CAAC,GAAAA,SAAA;IAAAE,qBAAA,GAAAd,IAAA,CACRe,iBAAiB;IAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,GAAG,GAAAA,qBAAA;IAChBE,YAAY,GAAAhB,IAAA,CAAnBiB,KAAK;IACLC,QAAQ,GAAAlB,IAAA,CAARkB,QAAQ;IACRC,MAAM,GAAAnB,IAAA,CAANmB,MAAM;IACWC,qBAAqB,GAAApB,IAAA,CAAtCqB,eAAe;IACfC,eAAe,GAAAtB,IAAA,CAAfsB,eAAe;IACLC,gBAAgB,GAAAvB,IAAA,CAA1BwB,QAAQ;IACCC,eAAe,GAAAzB,IAAA,CAAxB0B,OAAO;IACPC,KAAK,GAAA3B,IAAA,CAAL2B,KAAK;IACLC,WAAW,GAAA5B,IAAA,CAAX4B,WAAW;IAAAC,iBAAA,GAAA7B,IAAA,CACX8B,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,IAAI,GAAAA,iBAAA;IAChBE,IAAI,GAAA3C,wBAAA,CAAAY,IAAA,EAAA3C,SAAA;EAIT,IAAM2E,QAAQ,GAAG,IAAAC,aAAM,EAA0B,IAAI,CAAC;EACtD,IAAMC,SAAS,GAAG,IAAAC,iBAAU,EAAClC,GAAG,EAAE+B,QAAQ,CAAC;EAE3C,IAAAI,eAAA,GAAuB,IAAAC,qBAAc,EACnC;MACElC,aAAa;MACbE,gBAAgB;MAChBE,mBAAmB;MACnBG,aAAa;MACbG,IAAI;MACJE,iBAAiB;MACjBM,eAAe,EAAED,qBAAqB;MACtCI,QAAQ,EAAED,gBAAgB;MAC1BG,OAAO,EAAED,eAAe;MACxBR,KAAK,EAAED,YAAY;MACnBE,QAAQ;MACRC,MAAM;MACNG,eAAe;MACfK,KAAK;MACLG;IACF,CAAC,EACDE,QACF,CAAC;IAnBOM,UAAU,GAAAF,eAAA,CAAVE,UAAU;EAoBlB,IACErB,KAAK,GAOHqB,UAAU,CAPZrB,KAAK;IACLsB,MAAM,GAMJD,UAAU,CANZC,MAAM;IACNC,SAAS,GAKPF,UAAU,CALZE,SAAS;IACThB,QAAQ,GAINc,UAAU,CAJZd,QAAQ;IACRE,OAAO,GAGLY,UAAU,CAHZZ,OAAO;IACPe,aAAa,GAEXH,UAAU,CAFZG,aAAa;IACbC,OAAO,GACLJ,UAAU,CADZI,OAAO;EAGT,oBACE3F,MAAA,CAAAa,OAAA,CAAA+E,aAAA,CAACzF,MAAA,CAAA0F,KAAK,EAAAjE,QAAA,KACAoD,IAAI;IACR9B,GAAG,EAAEiC,SAAU;IACfN,WAAW,EAAEA,WAAY;IACzBX,KAAK,EAAEA,KAAM;IACb4B,IAAI,EAAC,MAAM;IACXrC,QAAQ,EAAEA,QAAS;IACnBG,OAAO,EAAEA,OAAQ;IACjBa,QAAQ,EAAEA,QAAS;IACnBe,MAAM,EAAEA,MAAO;IACfC,SAAS,EAAEA,SAAU;IACrBd,OAAO,EAAEA,OAAQ;IACjBe,aAAa,EAAEA,aAAc;IAC7BC,OAAO,EAAEA,OAAQ;IACjB,oBAAkBd,WAAY;IAC9B,iBAAepB,QAAS;IACxB,gBAAcG;EAAQ,EACvB,CAAC;AAEN,CACF,CAAC;AAEDd,WAAW,CAACiD,WAAW,GAAG,aAAa"}
|
|
@@ -31,17 +31,19 @@ var useInputNumber = exports.useInputNumber = function useInputNumber(_ref, inpu
|
|
|
31
31
|
allowEmptyValue = _ref.allowEmptyValue,
|
|
32
32
|
_ref$step = _ref.step,
|
|
33
33
|
step = _ref$step === void 0 ? 1 : _ref$step,
|
|
34
|
+
_ref$trimDecimals = _ref.trimDecimals,
|
|
35
|
+
trimDecimals = _ref$trimDecimals === void 0 ? true : _ref$trimDecimals,
|
|
34
36
|
limit = _ref.limit,
|
|
35
37
|
_ref$validation = _ref.validation,
|
|
36
38
|
validation = _ref$validation === void 0 ? _utils.validateNumberInput : _ref$validation;
|
|
37
39
|
var _useState = (0, _react.useState)(function () {
|
|
38
|
-
return disableAbbreviation ? value : (0, _currencyUtils.formatNumber)(value, thousandSeparator);
|
|
40
|
+
return disableAbbreviation ? value : (0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength);
|
|
39
41
|
}),
|
|
40
42
|
_useState2 = _slicedToArray(_useState, 2),
|
|
41
43
|
currentValue = _useState2[0],
|
|
42
44
|
setCurrentValue = _useState2[1];
|
|
43
45
|
var _useState3 = (0, _react.useState)(function () {
|
|
44
|
-
return disableAbbreviation ? value : (0, _currencyUtils.formatNumber)(value, thousandSeparator);
|
|
46
|
+
return disableAbbreviation ? value : (0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength);
|
|
45
47
|
}),
|
|
46
48
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
47
49
|
prevValue = _useState4[0],
|
|
@@ -54,12 +56,12 @@ var useInputNumber = exports.useInputNumber = function useInputNumber(_ref, inpu
|
|
|
54
56
|
setUnformattedValue = _useState6[1];
|
|
55
57
|
(0, _react.useEffect)(function () {
|
|
56
58
|
if (value !== prevValue) {
|
|
57
|
-
setCurrentValue(disableAbbreviation ? value : (0, _currencyUtils.formatNumber)(value, thousandSeparator));
|
|
58
|
-
setPrevValue(disableAbbreviation ? value : (0, _currencyUtils.formatNumber)(value, thousandSeparator));
|
|
59
|
+
setCurrentValue(disableAbbreviation ? value : (0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength));
|
|
60
|
+
setPrevValue(disableAbbreviation ? value : (0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength));
|
|
59
61
|
setUnformattedValue(value);
|
|
60
62
|
}
|
|
61
63
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
62
|
-
}, [disableAbbreviation, thousandSeparator, value]);
|
|
64
|
+
}, [disableAbbreviation, thousandSeparator, decimalSeparator, decimalLength, trimDecimals, value]);
|
|
63
65
|
var _useState7 = (0, _react.useState)(false),
|
|
64
66
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
65
67
|
focused = _useState8[0],
|
|
@@ -71,7 +73,7 @@ var useInputNumber = exports.useInputNumber = function useInputNumber(_ref, inpu
|
|
|
71
73
|
setUnformattedValue(prevValue);
|
|
72
74
|
} else {
|
|
73
75
|
if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {
|
|
74
|
-
var _value = disableAbbreviation ? currentValue : (0, _currencyUtils.formatNumber)(currentValue, thousandSeparator);
|
|
76
|
+
var _value = disableAbbreviation ? currentValue : (0, _currencyUtils.formatNumber)(currentValue, thousandSeparator, decimalSeparator, trimDecimals, decimalLength);
|
|
75
77
|
setPrevValue(_value);
|
|
76
78
|
setUnformattedValue(currentValue);
|
|
77
79
|
setCurrentValue(_value);
|
|
@@ -91,7 +93,7 @@ var useInputNumber = exports.useInputNumber = function useInputNumber(_ref, inpu
|
|
|
91
93
|
}
|
|
92
94
|
}
|
|
93
95
|
setFocused(false);
|
|
94
|
-
}, [
|
|
96
|
+
}, [prevValue, disableAbbreviation, currentValue, thousandSeparator, decimalSeparator, decimalLength, trimDecimals, onSave, allowEmptyValue, onCancel]);
|
|
95
97
|
var updateValue = (0, _react.useCallback)(function (type) {
|
|
96
98
|
var value = String(unformattedValue);
|
|
97
99
|
var decimalPart = "";
|
|
@@ -114,7 +116,7 @@ var useInputNumber = exports.useInputNumber = function useInputNumber(_ref, inpu
|
|
|
114
116
|
if (value.includes(decimalSeparator)) {
|
|
115
117
|
increasedValue = parseFloat(increasedValue.toFixed(decimalLength));
|
|
116
118
|
}
|
|
117
|
-
var joinedValue = (0, _currencyUtils.numberWithSeparator)(increasedValue, thousandSeparator, value.includes(thousandSeparator));
|
|
119
|
+
var joinedValue = (0, _currencyUtils.numberWithSeparator)(increasedValue, thousandSeparator, decimalSeparator, value.includes(thousandSeparator));
|
|
118
120
|
setUnformattedValue(decimalPart ? joinedValue + decimalPart : joinedValue);
|
|
119
121
|
setCurrentValue(decimalPart ? joinedValue + decimalPart : joinedValue);
|
|
120
122
|
}, [decimalLength, decimalSeparator, step, thousandSeparator, unformattedValue]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInputNumber.js","names":["_react","require","_utils","_currencyUtils","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","return","isArray","useInputNumber","exports","_ref","inputRef","_ref$decimalSeparator","decimalSeparator","_ref$thousandSeparato","thousandSeparator","disableAbbreviation","disableMacros","decimalLength","_ref$value","onChange","onSave","onEnterKeyPress","onClick","onCancel","allowEmptyValue","_ref$step","step","limit","_ref$validation","validation","validateNumberInput","_useState","useState","formatNumber","_useState2","currentValue","setCurrentValue","_useState3","_useState4","prevValue","setPrevValue","_useState5","_useState6","unformattedValue","setUnformattedValue","useEffect","_useState7","_useState8","focused","setFocused","escapeRef","useRef","handleBlur","useCallback","current","target","trim","_value","updateValue","type","String","decimalPart","increasedValue","nonDecimalPart","replaceAll","includes","indexOf","parseFloat","toFixed","joinedValue","numberWithSeparator","handleKeyDown","key","blur","preventDefault","metaKey","ctrlKey","_inputRef$current","select","input","start","selectionStart","end","selectionEnd","newValue","substring","Boolean","handleChange","inputValue","numericInput","replace","_","num","unit","currencyMultiplier","toLowerCase","handleClick","handleFocus","handleDoubleClick","_inputRef$current2","inputProps","useMemo","onBlur","onKeyDown","onDoubleClick","onFocus"],"sources":["../../../src/hooks/useInputNumber.tsx"],"sourcesContent":["import {\n useState,\n MouseEvent,\n useRef,\n useCallback,\n RefObject,\n useMemo,\n useEffect,\n} from \"react\";\n\nimport { validateNumberInput } from \"../utils\";\nimport {\n currencyMultiplier,\n formatNumber,\n numberWithSeparator,\n} from \"../utils/currencyUtils\";\n\nexport type Separators = \".\" | \",\";\n\nexport interface IInputNumber {\n decimalLength?: number;\n decimalSeparator?: Separators;\n disableAbbreviation?: boolean;\n disableMacros?: boolean;\n thousandSeparator?: Separators;\n onSave?: (e: Event) => void;\n value?: string | number;\n step?: number;\n limit?: number;\n onEnterKeyPress?: (val: string) => void;\n onChange?: (val: string) => void;\n onClick?: (event: MouseEvent<HTMLInputElement>) => void;\n allowEmptyValue?: boolean;\n onCancel?: (e: Event) => void;\n validation?: (\n value: string,\n disableMacros: boolean,\n decimalSeparator: string,\n decimalLength: number,\n limit?: number\n ) => boolean;\n}\n\nexport const useInputNumber = (\n {\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n disableAbbreviation,\n disableMacros,\n decimalLength,\n value = \"\",\n onChange,\n onSave,\n onEnterKeyPress,\n onClick,\n onCancel,\n allowEmptyValue,\n step = 1,\n limit,\n validation = validateNumberInput,\n }: IInputNumber,\n inputRef: RefObject<HTMLInputElement | null>\n) => {\n const [currentValue, setCurrentValue] = useState(() =>\n disableAbbreviation\n ? value\n : formatNumber(value as string, thousandSeparator)\n );\n const [prevValue, setPrevValue] = useState(() =>\n disableAbbreviation\n ? value\n : formatNumber(value as string, thousandSeparator)\n );\n const [unformattedValue, setUnformattedValue] = useState(() => value);\n\n useEffect(() => {\n if (value !== prevValue) {\n setCurrentValue(\n disableAbbreviation\n ? value\n : formatNumber(value as string, thousandSeparator)\n );\n setPrevValue(\n disableAbbreviation\n ? value\n : formatNumber(value as string, thousandSeparator)\n );\n setUnformattedValue(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [disableAbbreviation, thousandSeparator, value]);\n\n const [focused, setFocused] = useState(false);\n\n const escapeRef = useRef(false);\n\n const handleBlur = useCallback(\n (e) => {\n if (escapeRef.current) {\n setCurrentValue(prevValue);\n setUnformattedValue(prevValue);\n } else {\n if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {\n const _value = disableAbbreviation\n ? currentValue\n : formatNumber(currentValue as string, thousandSeparator);\n setPrevValue(_value);\n setUnformattedValue(currentValue);\n setCurrentValue(_value);\n typeof onSave === \"function\" && onSave(e);\n } else {\n if (!allowEmptyValue) {\n setCurrentValue(prevValue);\n setUnformattedValue(prevValue);\n typeof onCancel === \"function\" && onCancel(e);\n } else {\n if (typeof onSave === \"function\" && prevValue !== e.target.value) {\n onSave(e);\n } else {\n typeof onCancel === \"function\" && onCancel(e);\n }\n }\n }\n }\n setFocused(false);\n },\n [\n allowEmptyValue,\n disableAbbreviation,\n onCancel,\n onSave,\n prevValue,\n thousandSeparator,\n currentValue,\n ]\n );\n\n const updateValue = useCallback(\n (type: \"increment\" | \"decrement\") => {\n const value = String(unformattedValue);\n\n let decimalPart = \"\";\n let increasedValue = 0;\n let nonDecimalPart = value.replaceAll(thousandSeparator, \"\");\n\n if (!value) {\n return;\n }\n\n if (value.includes(decimalSeparator)) {\n nonDecimalPart = value\n .slice(0, value.indexOf(decimalSeparator))\n .replaceAll(thousandSeparator, \"\");\n }\n\n if (value.includes(decimalSeparator)) {\n decimalPart = value.slice(value.indexOf(decimalSeparator));\n }\n\n if (type === \"increment\") {\n increasedValue = parseFloat(nonDecimalPart) + step;\n } else {\n increasedValue = parseFloat(nonDecimalPart) - step;\n }\n\n if (value.includes(decimalSeparator)) {\n increasedValue = parseFloat(increasedValue.toFixed(decimalLength));\n }\n\n const joinedValue = numberWithSeparator(\n increasedValue,\n thousandSeparator,\n value.includes(thousandSeparator)\n );\n\n setUnformattedValue(\n decimalPart ? joinedValue + decimalPart : joinedValue\n );\n setCurrentValue(decimalPart ? joinedValue + decimalPart : joinedValue);\n },\n [decimalLength, decimalSeparator, step, thousandSeparator, unformattedValue]\n );\n\n const handleKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.target.blur();\n if (typeof onEnterKeyPress === \"function\")\n onEnterKeyPress(e.target.value);\n }\n if (e.key === \"ArrowLeft\") {\n return;\n }\n if (e.key === \"ArrowRight\") {\n return;\n }\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n updateValue(\"increment\");\n }\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n updateValue(\"decrement\");\n }\n if (e.key === \"Escape\") {\n escapeRef.current = true;\n e.target.blur();\n typeof onCancel === \"function\" && onCancel(e);\n escapeRef.current = false;\n }\n if (e.key === \"Backspace\") {\n return;\n }\n if ((e.metaKey || e.ctrlKey) && e.key === \"a\") {\n inputRef.current?.select();\n return;\n }\n if (e.key === \"Tab\") {\n return;\n }\n if ((e.metaKey || e.ctrlKey) && e.key === \"v\") {\n e.preventDefault();\n return;\n }\n const input = e.target;\n const currentValue = input.value;\n const start = input.selectionStart;\n const end = input.selectionEnd;\n const newValue =\n currentValue.substring(0, start) + e.key + currentValue.substring(end);\n if (\n !validation(\n newValue,\n Boolean(disableMacros),\n decimalSeparator,\n decimalLength ?? 0,\n limit\n )\n ) {\n e.preventDefault();\n return;\n }\n },\n [\n decimalLength,\n decimalSeparator,\n disableMacros,\n inputRef,\n limit,\n onCancel,\n onEnterKeyPress,\n updateValue,\n validation,\n ]\n );\n\n const handleChange = useCallback(\n (e) => {\n const inputValue = e.target.value;\n const numericInput = disableMacros\n ? inputValue\n : inputValue.replace(/([0-9.]+)([kmbtKMBT])/, (_, num, unit) => {\n return (\n parseFloat(num) * currencyMultiplier[unit.toLowerCase()]\n ).toString();\n });\n setCurrentValue(numericInput);\n setUnformattedValue(numericInput);\n if (onChange) onChange(numericInput);\n },\n [disableMacros, onChange]\n );\n\n const handleClick = useCallback(\n (e) => {\n if (typeof onClick === \"function\") {\n onClick(e);\n }\n },\n [onClick]\n );\n\n const handleFocus = useCallback(() => {\n setCurrentValue(unformattedValue);\n setFocused(true);\n }, [unformattedValue]);\n\n const handleDoubleClick = useCallback(() => {\n if (inputRef.current) {\n inputRef.current?.select();\n }\n }, [inputRef]);\n\n const inputProps = useMemo(() => {\n return {\n value: currentValue,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onChange: handleChange,\n onClick: handleClick,\n onDoubleClick: handleDoubleClick,\n onFocus: handleFocus,\n focused,\n unformattedValue,\n };\n }, [\n currentValue,\n handleBlur,\n handleKeyDown,\n handleChange,\n handleClick,\n handleDoubleClick,\n handleFocus,\n focused,\n unformattedValue,\n ]);\n\n return {\n inputProps,\n setCurrentValue,\n setPrevValue,\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useInputNumber.js","names":["_react","require","_utils","_currencyUtils","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","return","isArray","useInputNumber","exports","_ref","inputRef","_ref$decimalSeparator","decimalSeparator","_ref$thousandSeparato","thousandSeparator","disableAbbreviation","disableMacros","decimalLength","_ref$value","onChange","onSave","onEnterKeyPress","onClick","onCancel","allowEmptyValue","_ref$step","step","_ref$trimDecimals","trimDecimals","limit","_ref$validation","validation","validateNumberInput","_useState","useState","formatNumber","_useState2","currentValue","setCurrentValue","_useState3","_useState4","prevValue","setPrevValue","_useState5","_useState6","unformattedValue","setUnformattedValue","useEffect","_useState7","_useState8","focused","setFocused","escapeRef","useRef","handleBlur","useCallback","current","target","trim","_value","updateValue","type","String","decimalPart","increasedValue","nonDecimalPart","replaceAll","includes","indexOf","parseFloat","toFixed","joinedValue","numberWithSeparator","handleKeyDown","key","blur","preventDefault","metaKey","ctrlKey","_inputRef$current","select","input","start","selectionStart","end","selectionEnd","newValue","substring","Boolean","handleChange","inputValue","numericInput","replace","_","num","unit","currencyMultiplier","toLowerCase","handleClick","handleFocus","handleDoubleClick","_inputRef$current2","inputProps","useMemo","onBlur","onKeyDown","onDoubleClick","onFocus"],"sources":["../../../src/hooks/useInputNumber.tsx"],"sourcesContent":["import {\n useState,\n MouseEvent,\n useRef,\n useCallback,\n RefObject,\n useMemo,\n useEffect,\n} from \"react\";\n\nimport { validateNumberInput } from \"../utils\";\nimport {\n currencyMultiplier,\n formatNumber,\n numberWithSeparator,\n} from \"../utils/currencyUtils\";\n\nexport type Separators = \".\" | \",\" | \" \";\n\nexport interface IInputNumber {\n decimalLength?: number;\n decimalSeparator?: Separators;\n disableAbbreviation?: boolean;\n disableMacros?: boolean;\n thousandSeparator?: Separators;\n trimDecimals?: boolean;\n onSave?: (e: Event) => void;\n value?: string | number;\n step?: number;\n limit?: number;\n onEnterKeyPress?: (val: string) => void;\n onChange?: (val: string) => void;\n onClick?: (event: MouseEvent<HTMLInputElement>) => void;\n allowEmptyValue?: boolean;\n onCancel?: (e: Event) => void;\n validation?: (\n value: string,\n disableMacros: boolean,\n decimalSeparator: string,\n decimalLength: number,\n limit?: number\n ) => boolean;\n}\n\nexport const useInputNumber = (\n {\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n disableAbbreviation,\n disableMacros,\n decimalLength,\n value = \"\",\n onChange,\n onSave,\n onEnterKeyPress,\n onClick,\n onCancel,\n allowEmptyValue,\n step = 1,\n trimDecimals = true,\n limit,\n validation = validateNumberInput,\n }: IInputNumber,\n inputRef: RefObject<HTMLInputElement | null>\n) => {\n const [currentValue, setCurrentValue] = useState(() =>\n disableAbbreviation\n ? value\n : formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n )\n );\n const [prevValue, setPrevValue] = useState(() =>\n disableAbbreviation\n ? value\n : formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n )\n );\n const [unformattedValue, setUnformattedValue] = useState(() => value);\n\n useEffect(() => {\n if (value !== prevValue) {\n setCurrentValue(\n disableAbbreviation\n ? value\n : formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n )\n );\n setPrevValue(\n disableAbbreviation\n ? value\n : formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n )\n );\n setUnformattedValue(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n disableAbbreviation,\n thousandSeparator,\n decimalSeparator,\n decimalLength,\n trimDecimals,\n value,\n ]);\n\n const [focused, setFocused] = useState(false);\n\n const escapeRef = useRef(false);\n\n const handleBlur = useCallback(\n (e) => {\n if (escapeRef.current) {\n setCurrentValue(prevValue);\n setUnformattedValue(prevValue);\n } else {\n if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {\n const _value = disableAbbreviation\n ? currentValue\n : formatNumber(\n currentValue as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n );\n setPrevValue(_value);\n setUnformattedValue(currentValue);\n setCurrentValue(_value);\n typeof onSave === \"function\" && onSave(e);\n } else {\n if (!allowEmptyValue) {\n setCurrentValue(prevValue);\n setUnformattedValue(prevValue);\n typeof onCancel === \"function\" && onCancel(e);\n } else {\n if (typeof onSave === \"function\" && prevValue !== e.target.value) {\n onSave(e);\n } else {\n typeof onCancel === \"function\" && onCancel(e);\n }\n }\n }\n }\n setFocused(false);\n },\n [\n prevValue,\n disableAbbreviation,\n currentValue,\n thousandSeparator,\n decimalSeparator,\n decimalLength,\n trimDecimals,\n onSave,\n allowEmptyValue,\n onCancel,\n ]\n );\n\n const updateValue = useCallback(\n (type: \"increment\" | \"decrement\") => {\n const value = String(unformattedValue);\n\n let decimalPart = \"\";\n let increasedValue = 0;\n let nonDecimalPart = value.replaceAll(thousandSeparator, \"\");\n\n if (!value) {\n return;\n }\n\n if (value.includes(decimalSeparator)) {\n nonDecimalPart = value\n .slice(0, value.indexOf(decimalSeparator))\n .replaceAll(thousandSeparator, \"\");\n }\n\n if (value.includes(decimalSeparator)) {\n decimalPart = value.slice(value.indexOf(decimalSeparator));\n }\n\n if (type === \"increment\") {\n increasedValue = parseFloat(nonDecimalPart) + step;\n } else {\n increasedValue = parseFloat(nonDecimalPart) - step;\n }\n\n if (value.includes(decimalSeparator)) {\n increasedValue = parseFloat(increasedValue.toFixed(decimalLength));\n }\n\n const joinedValue = numberWithSeparator(\n increasedValue,\n thousandSeparator,\n decimalSeparator,\n value.includes(thousandSeparator)\n );\n\n setUnformattedValue(\n decimalPart ? joinedValue + decimalPart : joinedValue\n );\n setCurrentValue(decimalPart ? joinedValue + decimalPart : joinedValue);\n },\n [decimalLength, decimalSeparator, step, thousandSeparator, unformattedValue]\n );\n\n const handleKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.target.blur();\n if (typeof onEnterKeyPress === \"function\")\n onEnterKeyPress(e.target.value);\n }\n if (e.key === \"ArrowLeft\") {\n return;\n }\n if (e.key === \"ArrowRight\") {\n return;\n }\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n updateValue(\"increment\");\n }\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n updateValue(\"decrement\");\n }\n if (e.key === \"Escape\") {\n escapeRef.current = true;\n e.target.blur();\n typeof onCancel === \"function\" && onCancel(e);\n escapeRef.current = false;\n }\n if (e.key === \"Backspace\") {\n return;\n }\n if ((e.metaKey || e.ctrlKey) && e.key === \"a\") {\n inputRef.current?.select();\n return;\n }\n if (e.key === \"Tab\") {\n return;\n }\n if ((e.metaKey || e.ctrlKey) && e.key === \"v\") {\n e.preventDefault();\n return;\n }\n const input = e.target;\n const currentValue = input.value;\n const start = input.selectionStart;\n const end = input.selectionEnd;\n const newValue =\n currentValue.substring(0, start) + e.key + currentValue.substring(end);\n if (\n !validation(\n newValue,\n Boolean(disableMacros),\n decimalSeparator,\n decimalLength ?? 0,\n limit\n )\n ) {\n e.preventDefault();\n return;\n }\n },\n [\n decimalLength,\n decimalSeparator,\n disableMacros,\n inputRef,\n limit,\n onCancel,\n onEnterKeyPress,\n updateValue,\n validation,\n ]\n );\n\n const handleChange = useCallback(\n (e) => {\n const inputValue = e.target.value;\n const numericInput = disableMacros\n ? inputValue\n : inputValue.replace(/([0-9.]+)([kmbtKMBT])/, (_, num, unit) => {\n return (\n parseFloat(num) * currencyMultiplier[unit.toLowerCase()]\n ).toString();\n });\n setCurrentValue(numericInput);\n setUnformattedValue(numericInput);\n if (onChange) onChange(numericInput);\n },\n [disableMacros, onChange]\n );\n\n const handleClick = useCallback(\n (e) => {\n if (typeof onClick === \"function\") {\n onClick(e);\n }\n },\n [onClick]\n );\n\n const handleFocus = useCallback(() => {\n setCurrentValue(unformattedValue);\n setFocused(true);\n }, [unformattedValue]);\n\n const handleDoubleClick = useCallback(() => {\n if (inputRef.current) {\n inputRef.current?.select();\n }\n }, [inputRef]);\n\n const inputProps = useMemo(() => {\n return {\n value: currentValue,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onChange: handleChange,\n onClick: handleClick,\n onDoubleClick: handleDoubleClick,\n onFocus: handleFocus,\n focused,\n unformattedValue,\n };\n }, [\n currentValue,\n handleBlur,\n handleKeyDown,\n handleChange,\n handleClick,\n handleDoubleClick,\n handleFocus,\n focused,\n unformattedValue,\n ]);\n\n return {\n inputProps,\n setCurrentValue,\n setPrevValue,\n };\n};\n"],"mappings":"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"}
|
|
@@ -3,16 +3,56 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.numberWithSeparator = exports.formatNumber = exports.currencyMultiplier = void 0;
|
|
6
|
+
exports.numberWithSeparator = exports.getNumberFromString = exports.formatNumber = exports.fixedDecimalSpaces = exports.currencyMultiplier = void 0;
|
|
7
7
|
var currencyMultiplier = exports.currencyMultiplier = {
|
|
8
8
|
k: 1000,
|
|
9
9
|
m: 1000000,
|
|
10
10
|
b: 1000000000,
|
|
11
11
|
t: 1000000000000
|
|
12
12
|
};
|
|
13
|
+
var fixedDecimalSpaces = exports.fixedDecimalSpaces = function fixedDecimalSpaces(num, fixed) {
|
|
14
|
+
fixed = fixed || 0;
|
|
15
|
+
fixed = Math.pow(10, fixed);
|
|
16
|
+
var parts = num.toString().split(".");
|
|
17
|
+
if (parts.length > 1 && parseInt(parts[1]) > fixed) {
|
|
18
|
+
return Math.floor(num * fixed) / fixed;
|
|
19
|
+
}
|
|
20
|
+
return Math.round(num * fixed) / fixed;
|
|
21
|
+
};
|
|
22
|
+
var getNumberFromString = exports.getNumberFromString = function getNumberFromString(number) {
|
|
23
|
+
var thousandSeparator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ",";
|
|
24
|
+
var decimalSeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ".";
|
|
25
|
+
if (typeof number === "number") {
|
|
26
|
+
return number;
|
|
27
|
+
}
|
|
28
|
+
if (decimalSeparator === ",") {
|
|
29
|
+
var parts = number.split(decimalSeparator);
|
|
30
|
+
var result = 0;
|
|
31
|
+
if (parts.length === 2) {
|
|
32
|
+
result = parts[0] ? parseFloat(String(parts[0]).replaceAll(thousandSeparator, "")) : 0;
|
|
33
|
+
if (result < 0) {
|
|
34
|
+
result -= parts[1] ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length) : 0;
|
|
35
|
+
} else {
|
|
36
|
+
result += parts[1] ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length) : 0;
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
if (parts.length === 1) {
|
|
41
|
+
result = parseFloat(String(parts[0]).replaceAll(thousandSeparator, ""));
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
return 0;
|
|
45
|
+
} else {
|
|
46
|
+
return parseFloat(String(number).replaceAll(thousandSeparator, ""));
|
|
47
|
+
}
|
|
48
|
+
};
|
|
13
49
|
var formatNumber = exports.formatNumber = function formatNumber(n) {
|
|
14
50
|
var thousandSeparator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ",";
|
|
15
|
-
var
|
|
51
|
+
var decimalSeperator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ".";
|
|
52
|
+
var trimDecimals = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
53
|
+
var decimalSpaces = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 2;
|
|
54
|
+
var format = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : "short";
|
|
55
|
+
var number = getNumberFromString(n, thousandSeparator, decimalSeperator);
|
|
16
56
|
if (isNaN(number)) {
|
|
17
57
|
return "";
|
|
18
58
|
}
|
|
@@ -20,21 +60,23 @@ var formatNumber = exports.formatNumber = function formatNumber(n) {
|
|
|
20
60
|
var absoluteNumber = Math.abs(number);
|
|
21
61
|
var suffixes = ["", "K", "M", "B", "T"];
|
|
22
62
|
var scale = 0;
|
|
23
|
-
while (absoluteNumber >= 1000 && scale < suffixes.length - 1) {
|
|
63
|
+
while (absoluteNumber >= 1000 && scale < suffixes.length - 1 && format === "short") {
|
|
24
64
|
absoluteNumber /= 1000;
|
|
25
65
|
scale++;
|
|
26
66
|
}
|
|
27
|
-
var formattedNum = scale === 0 ? absoluteNumber
|
|
28
|
-
var result =
|
|
67
|
+
var formattedNum = scale === 0 ? fixedDecimalSpaces(absoluteNumber, decimalSpaces) : parseFloat(absoluteNumber.toFixed(1));
|
|
68
|
+
var result = numberWithSeparator(trimDecimals ? formattedNum : formattedNum.toFixed(decimalSpaces), thousandSeparator, decimalSeperator);
|
|
29
69
|
return isNegative ? "-".concat(result).concat(suffixes[scale]) : "".concat(result).concat(suffixes[scale]);
|
|
30
70
|
};
|
|
31
|
-
var numberWithSeparator = exports.numberWithSeparator = function numberWithSeparator(x
|
|
32
|
-
var
|
|
71
|
+
var numberWithSeparator = exports.numberWithSeparator = function numberWithSeparator(x) {
|
|
72
|
+
var thousandSeparator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ",";
|
|
73
|
+
var decimalSeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ".";
|
|
74
|
+
var format = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
33
75
|
if (!format) {
|
|
34
76
|
return x;
|
|
35
77
|
}
|
|
36
78
|
var parts = x.toString().split(".");
|
|
37
79
|
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, thousandSeparator);
|
|
38
|
-
return parts.join(
|
|
80
|
+
return parts.join(decimalSeparator);
|
|
39
81
|
};
|
|
40
82
|
//# sourceMappingURL=currencyUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currencyUtils.js","names":["currencyMultiplier","exports","k","m","b","t","
|
|
1
|
+
{"version":3,"file":"currencyUtils.js","names":["currencyMultiplier","exports","k","m","b","t","fixedDecimalSpaces","num","fixed","Math","pow","parts","toString","split","length","parseInt","floor","round","getNumberFromString","number","thousandSeparator","arguments","undefined","decimalSeparator","result","parseFloat","String","replaceAll","formatNumber","n","decimalSeperator","trimDecimals","decimalSpaces","format","isNaN","isNegative","absoluteNumber","abs","suffixes","scale","formattedNum","toFixed","numberWithSeparator","concat","x","replace","join"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["export const currencyMultiplier = {\n k: 1_000,\n m: 1_000_000,\n b: 1_000_000_000,\n t: 1_000_000_000_000,\n};\n\nexport const fixedDecimalSpaces = (num: number, fixed: number) => {\n fixed = fixed || 0;\n fixed = Math.pow(10, fixed);\n const parts = num.toString().split(\".\");\n if (parts.length > 1 && parseInt(parts[1]) > fixed) {\n return Math.floor(num * fixed) / fixed;\n }\n return Math.round(num * fixed) / fixed;\n};\n\nexport const getNumberFromString = (\n number: string | number,\n thousandSeparator = \",\",\n decimalSeparator = \".\"\n) => {\n if (typeof number === \"number\") {\n return number;\n }\n if (decimalSeparator === \",\") {\n const parts = number.split(decimalSeparator);\n\n let result = 0;\n if (parts.length === 2) {\n result = parts[0]\n ? parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"))\n : 0;\n if (result < 0) {\n result -= parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n } else {\n result += parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n }\n return result;\n }\n if (parts.length === 1) {\n result = parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"));\n\n return result;\n }\n return 0;\n } else {\n return parseFloat(String(number).replaceAll(thousandSeparator, \"\"));\n }\n};\n\nexport const formatNumber = (\n n: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = true,\n decimalSpaces = 2,\n format = \"short\"\n) => {\n const number = getNumberFromString(n, thousandSeparator, decimalSeperator);\n\n if (isNaN(number)) {\n return \"\";\n }\n\n const isNegative = number < 0;\n let absoluteNumber = Math.abs(number);\n\n const suffixes = [\"\", \"K\", \"M\", \"B\", \"T\"];\n let scale = 0;\n\n while (\n absoluteNumber >= 1000 &&\n scale < suffixes.length - 1 &&\n format === \"short\"\n ) {\n absoluteNumber /= 1000;\n scale++;\n }\n\n const formattedNum =\n scale === 0\n ? fixedDecimalSpaces(absoluteNumber, decimalSpaces)\n : parseFloat(absoluteNumber.toFixed(1));\n\n const result = numberWithSeparator(\n trimDecimals ? formattedNum : formattedNum.toFixed(decimalSpaces),\n thousandSeparator,\n decimalSeperator\n );\n\n return isNegative\n ? `-${result}${suffixes[scale]}`\n : `${result}${suffixes[scale]}`;\n};\n\nexport const numberWithSeparator = (\n x: number | string,\n thousandSeparator = \",\",\n decimalSeparator = \".\",\n format = true\n) => {\n if (!format) {\n return x;\n }\n const parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n return parts.join(decimalSeparator);\n};\n"],"mappings":"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"}
|