@activecollab/components 2.0.196 → 2.0.198
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/Display/DisplayHours.js +9 -8
- package/dist/cjs/components/Display/DisplayHours.js.map +1 -1
- package/dist/cjs/components/Display/types.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 +8 -7
- package/dist/cjs/hooks/useInputNumber.js.map +1 -1
- package/dist/cjs/utils/currencyUtils.js +20 -1
- package/dist/cjs/utils/currencyUtils.js.map +1 -1
- package/dist/cjs/utils/currencyUtils.test.js +5 -0
- package/dist/cjs/utils/currencyUtils.test.js.map +1 -1
- package/dist/cjs/utils/timeUtils.js +28 -9
- package/dist/cjs/utils/timeUtils.js.map +1 -1
- package/dist/cjs/utils/timeUtils.test.js +3 -2
- package/dist/cjs/utils/timeUtils.test.js.map +1 -1
- package/dist/cjs/utils/types.js.map +1 -1
- package/dist/esm/components/Display/DisplayHours.d.ts.map +1 -1
- package/dist/esm/components/Display/DisplayHours.js +9 -8
- package/dist/esm/components/Display/DisplayHours.js.map +1 -1
- package/dist/esm/components/Display/types.d.ts +3 -2
- package/dist/esm/components/Display/types.d.ts.map +1 -1
- package/dist/esm/components/Display/types.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 +2 -1
- package/dist/esm/hooks/useInputNumber.d.ts.map +1 -1
- package/dist/esm/hooks/useInputNumber.js +5 -4
- package/dist/esm/hooks/useInputNumber.js.map +1 -1
- package/dist/esm/utils/currencyUtils.d.ts +1 -0
- package/dist/esm/utils/currencyUtils.d.ts.map +1 -1
- package/dist/esm/utils/currencyUtils.js +10 -0
- package/dist/esm/utils/currencyUtils.js.map +1 -1
- package/dist/esm/utils/currencyUtils.test.js +6 -1
- package/dist/esm/utils/currencyUtils.test.js.map +1 -1
- package/dist/esm/utils/timeUtils.d.ts +11 -7
- package/dist/esm/utils/timeUtils.d.ts.map +1 -1
- package/dist/esm/utils/timeUtils.js +31 -10
- package/dist/esm/utils/timeUtils.js.map +1 -1
- package/dist/esm/utils/timeUtils.test.js +5 -2
- package/dist/esm/utils/timeUtils.test.js.map +1 -1
- package/dist/esm/utils/types.d.ts +2 -1
- package/dist/esm/utils/types.d.ts.map +1 -1
- package/dist/esm/utils/types.js.map +1 -1
- package/dist/index.js +61 -26
- 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
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.DisplayHours = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _utils = require("../../utils");
|
|
9
|
+
var _currencyUtils = require("../../utils/currencyUtils");
|
|
9
10
|
var _Tooltip = require("../Tooltip");
|
|
10
11
|
var _Typography = require("../Typography/Typography");
|
|
11
12
|
var _excluded = ["value", "variant", "thousandSeparator", "decimalSeparator", "trimZeroMinutes", "trimDecimals", "decimalSpaces", "format", "disableTooltip", "className", "withLeadingZero", "as"];
|
|
@@ -37,27 +38,27 @@ var DisplayHours = exports.DisplayHours = /*#__PURE__*/(0, _react.forwardRef)(fu
|
|
|
37
38
|
_ref$as = _ref.as,
|
|
38
39
|
as = _ref$as === void 0 ? "span" : _ref$as,
|
|
39
40
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
40
|
-
var numberValue =
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
var
|
|
44
|
-
if (
|
|
41
|
+
var numberValue = (0, _currencyUtils.parseValueToNumber)(value, thousandSeparator, decimalSeparator);
|
|
42
|
+
var shouldDisplayShort = format === "short" && numberValue >= 1000;
|
|
43
|
+
var longValue = (0, _utils.formatHours)(numberValue, withLeadingZero, trimZeroMinutes, "long");
|
|
44
|
+
var shortValue = (0, _utils.formatNumber)(numberValue, thousandSeparator, decimalSeparator, trimDecimals, decimalSpaces, "short");
|
|
45
|
+
if (shouldDisplayShort) {
|
|
45
46
|
return /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
46
|
-
title:
|
|
47
|
+
title: (0, _utils.formatHours)(numberValue),
|
|
47
48
|
disable: disableTooltip
|
|
48
49
|
}, /*#__PURE__*/_react.default.createElement(_Typography.Typography, _extends({
|
|
49
50
|
as: as,
|
|
50
51
|
variant: variant,
|
|
51
52
|
className: className,
|
|
52
53
|
ref: ref
|
|
53
|
-
}, rest),
|
|
54
|
+
}, rest), shortValue));
|
|
54
55
|
}
|
|
55
56
|
return /*#__PURE__*/_react.default.createElement(_Typography.Typography, _extends({
|
|
56
57
|
as: as,
|
|
57
58
|
variant: variant,
|
|
58
59
|
className: className,
|
|
59
60
|
ref: ref
|
|
60
|
-
}, rest),
|
|
61
|
+
}, rest), longValue);
|
|
61
62
|
});
|
|
62
63
|
DisplayHours.displayName = "DisplayHours";
|
|
63
64
|
//# sourceMappingURL=DisplayHours.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DisplayHours.js","names":["_react","_interopRequireWildcard","require","_utils","_Tooltip","_Typography","_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","DisplayHours","exports","forwardRef","_ref","ref","value","_ref$variant","variant","_ref$thousandSeparato","thousandSeparator","_ref$decimalSeparator","decimalSeparator","_ref$trimZeroMinutes","trimZeroMinutes","_ref$trimDecimals","trimDecimals","_ref$decimalSpaces","decimalSpaces","_ref$format","format","_ref$disableTooltip","disableTooltip","className","withLeadingZero","_ref$as","as","rest","numberValue","
|
|
1
|
+
{"version":3,"file":"DisplayHours.js","names":["_react","_interopRequireWildcard","require","_utils","_currencyUtils","_Tooltip","_Typography","_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","DisplayHours","exports","forwardRef","_ref","ref","value","_ref$variant","variant","_ref$thousandSeparato","thousandSeparator","_ref$decimalSeparator","decimalSeparator","_ref$trimZeroMinutes","trimZeroMinutes","_ref$trimDecimals","trimDecimals","_ref$decimalSpaces","decimalSpaces","_ref$format","format","_ref$disableTooltip","disableTooltip","className","withLeadingZero","_ref$as","as","rest","numberValue","parseValueToNumber","shouldDisplayShort","longValue","formatHours","shortValue","formatNumber","createElement","Tooltip","title","disable","Typography","displayName"],"sources":["../../../../src/components/Display/DisplayHours.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { DisplayHoursProps } from \"./types\";\nimport { formatHours, formatNumber } from \"../../utils\";\nimport { parseValueToNumber } from \"../../utils/currencyUtils\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Typography } from \"../Typography/Typography\";\n\nexport const DisplayHours = forwardRef<HTMLSpanElement, DisplayHoursProps>(\n (\n {\n value,\n variant = \"Body 2\",\n thousandSeparator = \",\",\n decimalSeparator = \".\",\n trimZeroMinutes = false,\n trimDecimals = true,\n decimalSpaces = 2,\n format = \"long\",\n disableTooltip = false,\n className,\n withLeadingZero,\n as = \"span\",\n ...rest\n },\n ref\n ) => {\n const numberValue = parseValueToNumber(\n value,\n thousandSeparator,\n decimalSeparator\n );\n\n const shouldDisplayShort = format === \"short\" && numberValue >= 1000;\n\n const longValue = formatHours(\n numberValue,\n withLeadingZero,\n trimZeroMinutes,\n \"long\"\n );\n const shortValue = formatNumber(\n numberValue,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalSpaces,\n \"short\"\n );\n\n if (shouldDisplayShort) {\n return (\n <Tooltip title={formatHours(numberValue)} disable={disableTooltip}>\n <Typography\n as={as}\n variant={variant}\n className={className}\n ref={ref}\n {...rest}\n >\n {shortValue}\n </Typography>\n </Tooltip>\n );\n }\n\n return (\n <Typography\n as={as}\n variant={variant}\n className={className}\n ref={ref}\n {...rest}\n >\n {longValue}\n </Typography>\n );\n }\n);\n\nDisplayHours.displayName = \"DisplayHours\";\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/Display/types.ts"],"sourcesContent":["import { TypographyProps } from \"../Typography/Typography\";\n\nexport interface DisplayNumberProps\n extends Omit<TypographyProps<\"span\">, \"children\"> {\n value: string | number;\n thousandSeparator?: string;\n decimalSeparator?: string;\n trimDecimals?: boolean;\n decimalSpaces?: number;\n format?:
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/Display/types.ts"],"sourcesContent":["import { FormatType } from \"../../utils/types\";\nimport { TypographyProps } from \"../Typography/Typography\";\n\nexport interface DisplayNumberProps\n extends Omit<TypographyProps<\"span\">, \"children\"> {\n value: string | number;\n thousandSeparator?: string;\n decimalSeparator?: string;\n trimDecimals?: boolean;\n decimalSpaces?: number;\n format?: FormatType;\n disableTooltip?: boolean;\n}\n\nexport interface DisplayHoursProps\n extends Omit<TypographyProps<\"span\">, \"children\"> {\n value: string | number;\n thousandSeparator?: string;\n decimalSeparator?: string;\n trimZeroMinutes?: boolean;\n trimDecimals?: boolean;\n decimalSpaces?: number;\n format?: FormatType;\n disableTooltip?: boolean;\n withLeadingZero?: boolean;\n}\n"],"mappings":""}
|
|
@@ -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", "trimDecimals", "min", "max", "onBlur"];
|
|
11
|
+
var _excluded = ["decimalLength", "decimalSeparator", "disableAbbreviation", "disabled", "disableMacros", "invalid", "step", "thousandSeparator", "value", "onCancel", "onSave", "onEnterKeyPress", "allowEmptyValue", "onChange", "onClick", "limit", "placeholder", "trimDecimals", "min", "max", "onBlur", "update"];
|
|
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); }
|
|
@@ -43,6 +43,8 @@ var InputNumber = exports.InputNumber = /*#__PURE__*/(0, _react.forwardRef)(func
|
|
|
43
43
|
min = _ref.min,
|
|
44
44
|
max = _ref.max,
|
|
45
45
|
externalOnBlur = _ref.onBlur,
|
|
46
|
+
_ref$update = _ref.update,
|
|
47
|
+
update = _ref$update === void 0 ? false : _ref$update,
|
|
46
48
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
47
49
|
var inputRef = (0, _react.useRef)(null);
|
|
48
50
|
var handleRef = (0, _utils.useForkRef)(ref, inputRef);
|
|
@@ -64,7 +66,8 @@ var InputNumber = exports.InputNumber = /*#__PURE__*/(0, _react.forwardRef)(func
|
|
|
64
66
|
trimDecimals,
|
|
65
67
|
min,
|
|
66
68
|
max,
|
|
67
|
-
onBlur: externalOnBlur
|
|
69
|
+
onBlur: externalOnBlur,
|
|
70
|
+
update
|
|
68
71
|
}, inputRef),
|
|
69
72
|
value = _useInputNumber.value,
|
|
70
73
|
onBlur = _useInputNumber.onBlur,
|
|
@@ -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","_ref$trimDecimals","trimDecimals","min","max","externalOnBlur","onBlur","rest","inputRef","useRef","handleRef","useForkRef","_useInputNumber","useInputNumber","onKeyDown","onFocus","onDoubleClick","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\" | \"onBlur\">,\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 min,\n max,\n onBlur: externalOnBlur,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onFocus,\n onDoubleClick,\n } = 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 min,\n max,\n onBlur: externalOnBlur,\n },\n inputRef\n );\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","min","max","externalOnBlur","onBlur","_ref$update","update","rest","inputRef","useRef","handleRef","useForkRef","_useInputNumber","useInputNumber","onKeyDown","onFocus","onDoubleClick","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\" | \"onBlur\">,\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 min,\n max,\n onBlur: externalOnBlur,\n update = false,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onFocus,\n onDoubleClick,\n } = 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 min,\n max,\n onBlur: externalOnBlur,\n update,\n },\n inputRef\n );\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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"}
|
|
@@ -38,7 +38,8 @@ var useInputNumber = exports.useInputNumber = function useInputNumber(_ref, inpu
|
|
|
38
38
|
validation = _ref$validation === void 0 ? _utils.validateNumberInput : _ref$validation,
|
|
39
39
|
min = _ref.min,
|
|
40
40
|
max = _ref.max,
|
|
41
|
-
onBlur = _ref.onBlur
|
|
41
|
+
onBlur = _ref.onBlur,
|
|
42
|
+
update = _ref.update;
|
|
42
43
|
var isMaxValid = max === undefined || min === undefined || Number(max) >= Number(min);
|
|
43
44
|
if (!isMaxValid) {
|
|
44
45
|
console.warn("Warning: The maximum value is set to be lower than the minimum value. The maximum value will be ignored.");
|
|
@@ -67,19 +68,19 @@ var useInputNumber = exports.useInputNumber = function useInputNumber(_ref, inpu
|
|
|
67
68
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
68
69
|
unformattedPrevValue = _useState8[0],
|
|
69
70
|
setUnformattedPrevValue = _useState8[1];
|
|
71
|
+
var _useState9 = (0, _react.useState)(false),
|
|
72
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
73
|
+
focused = _useState10[0],
|
|
74
|
+
setFocused = _useState10[1];
|
|
70
75
|
(0, _react.useEffect)(function () {
|
|
71
|
-
if (value !== prevValue &&
|
|
76
|
+
if (value !== prevValue && (!focused || update)) {
|
|
72
77
|
setCurrentValue((0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short"));
|
|
73
78
|
setPrevValue((0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short"));
|
|
74
79
|
setUnformattedValue((0, _currencyUtils.formatNumber)(value, "", decimalSeparator, false, decimalLength, "long"));
|
|
75
80
|
setUnformattedPrevValue((0, _currencyUtils.formatNumber)(value, "", decimalSeparator, false, decimalLength, "long"));
|
|
76
81
|
}
|
|
77
82
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
78
|
-
}, [disableAbbreviation, thousandSeparator, decimalSeparator, decimalLength, trimDecimals, value]);
|
|
79
|
-
var _useState9 = (0, _react.useState)(false),
|
|
80
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
81
|
-
focused = _useState10[0],
|
|
82
|
-
setFocused = _useState10[1];
|
|
83
|
+
}, [disableAbbreviation, thousandSeparator, decimalSeparator, decimalLength, trimDecimals, value, focused]);
|
|
83
84
|
var escapeRef = (0, _react.useRef)(false);
|
|
84
85
|
var handleBlur = (0, _react.useCallback)(function (e) {
|
|
85
86
|
if (escapeRef.current) {
|
|
@@ -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","_ref$trimDecimals","trimDecimals","limit","_ref$validation","validation","validateNumberInput","min","max","onBlur","isMaxValid","undefined","Number","console","warn","_useState","useState","formatNumber","_useState2","currentValue","setCurrentValue","_useState3","_useState4","prevValue","setPrevValue","_useState5","_useState6","unformattedValue","setUnformattedValue","_useState7","_useState8","unformattedPrevValue","setUnformattedPrevValue","useEffect","document","activeElement","current","_useState9","_useState10","focused","setFocused","escapeRef","useRef","handleBlur","useCallback","String","target","trim","_value","updateValue","type","preformattedValue","replace","numericValue","parseFloat","isNaN","newValue","formattedValue","toFixed","Math","round","includes","handleKeyDown","key","blur","preventDefault","metaKey","ctrlKey","_inputRef$current","select","input","start","selectionStart","end","selectionEnd","substring","Boolean","handleChange","inputValue","numericInput","_","num","unit","normalizedNum","parts","split","integerPart","fractionalPart","newInteger","parseInt","currencyMultiplier","toLowerCase","result","handleClick","handleFocus","handleDoubleClick","_inputRef$current2","onKeyDown","onDoubleClick","onFocus"],"sources":["../../../src/hooks/useInputNumber.tsx"],"sourcesContent":["import {\n useState,\n MouseEvent,\n useRef,\n useCallback,\n RefObject,\n useEffect,\n} from \"react\";\n\nimport { validateNumberInput } from \"../utils\";\nimport { currencyMultiplier, formatNumber } 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 onBlur?: (e: Event) => void;\n validation?: (\n value: string,\n disableMacros: boolean,\n decimalSeparator: string,\n decimalLength: number,\n limit?: number\n ) => boolean;\n min?: string | number;\n max?: string | number;\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 min,\n max,\n onBlur,\n }: IInputNumber,\n inputRef: RefObject<HTMLInputElement | null>\n) => {\n const isMaxValid =\n max === undefined || min === undefined || Number(max) >= Number(min);\n\n if (!isMaxValid) {\n console.warn(\n \"Warning: The maximum value is set to be lower than the minimum value. The maximum value will be ignored.\"\n );\n }\n\n const [currentValue, setCurrentValue] = useState(() =>\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n const [prevValue, setPrevValue] = useState(() =>\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n const [unformattedValue, setUnformattedValue] = useState(() =>\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n const [unformattedPrevValue, setUnformattedPrevValue] = useState(() =>\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n\n useEffect(() => {\n if (value !== prevValue && document.activeElement !== inputRef?.current) {\n setCurrentValue(\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n setPrevValue(\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n setUnformattedValue(\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n setUnformattedPrevValue(\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\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(unformattedPrevValue);\n if (onChange) onChange(String(unformattedPrevValue));\n } else {\n if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {\n const _value = formatNumber(\n currentValue as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n );\n setPrevValue(_value);\n setUnformattedPrevValue(\n formatNumber(\n currentValue as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n setUnformattedValue(\n formatNumber(\n currentValue as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n setCurrentValue(_value);\n typeof onSave === \"function\" && onSave(e);\n } else {\n if (!allowEmptyValue) {\n setCurrentValue(prevValue);\n setUnformattedValue(unformattedPrevValue);\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 typeof onBlur === \"function\" && onBlur(e);\n },\n [\n onBlur,\n prevValue,\n unformattedPrevValue,\n onChange,\n currentValue,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation,\n onSave,\n allowEmptyValue,\n onCancel,\n ]\n );\n\n const updateValue = useCallback(\n (type: \"increment\" | \"decrement\") => {\n const preformattedValue = String(unformattedValue)\n .replace(thousandSeparator, \"\")\n .replace(decimalSeparator, \".\");\n const numericValue = parseFloat(preformattedValue);\n\n if (isNaN(numericValue)) return;\n\n if (\n (max !== undefined && numericValue > Number(max)) ||\n (min !== undefined && numericValue < Number(min))\n ) {\n return;\n }\n\n let newValue = numericValue;\n\n if (type === \"increment\") {\n if (max === undefined || numericValue + step <= Number(max)) {\n newValue = numericValue + step;\n } else if (numericValue < Number(max)) {\n newValue = Number(max);\n } else {\n return;\n }\n } else if (type === \"decrement\") {\n if (min === undefined || numericValue - step >= Number(min)) {\n newValue = numericValue - step;\n } else if (numericValue > Number(min)) {\n newValue = Number(min);\n } else {\n return;\n }\n }\n\n let formattedValue;\n if (decimalLength !== undefined) {\n formattedValue = newValue.toFixed(decimalLength);\n } else {\n formattedValue = newValue.toFixed(2);\n }\n\n if (decimalLength !== undefined && decimalLength === 0) {\n formattedValue = Math.round(newValue).toString();\n }\n\n if (formattedValue.includes(\".\") || formattedValue.includes(\",\")) {\n formattedValue = formattedValue.replace(\".\", decimalSeparator);\n }\n\n setUnformattedValue(formattedValue);\n setCurrentValue(formattedValue);\n if (onChange) onChange(formattedValue);\n },\n [\n unformattedValue,\n thousandSeparator,\n decimalSeparator,\n decimalLength,\n onChange,\n step,\n min,\n max,\n ]\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.key === \"Delete\") {\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\n // Disallow \"-\" if min is 0 or greater\n if (e.key === \"-\" && min !== undefined && Number(min) >= 0) {\n e.preventDefault();\n return;\n }\n\n // Disallow decimal separator if decimalLength is 0\n if (e.key === decimalSeparator && decimalLength === 0) {\n e.preventDefault();\n return;\n }\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 min,\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(\n /(\\d+(?:[.,]\\d+)?)([kmbtKMBT])/,\n (_, num, unit) => {\n const normalizedNum = num.replace(\",\", \".\");\n const parts = normalizedNum.split(\".\");\n const integerPart = parts[0];\n const fractionalPart = parts[1];\n\n const newInteger =\n parseInt(integerPart, 10) *\n currencyMultiplier[unit.toLowerCase()];\n\n let result = newInteger.toString();\n if (fractionalPart !== undefined) {\n result += decimalSeparator + fractionalPart;\n }\n return result;\n }\n );\n setCurrentValue(numericInput);\n setUnformattedValue(numericInput);\n if (onChange) onChange(numericInput);\n },\n [disableMacros, decimalSeparator, 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 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"],"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","min","max","onBlur","update","isMaxValid","undefined","Number","console","warn","_useState","useState","formatNumber","_useState2","currentValue","setCurrentValue","_useState3","_useState4","prevValue","setPrevValue","_useState5","_useState6","unformattedValue","setUnformattedValue","_useState7","_useState8","unformattedPrevValue","setUnformattedPrevValue","_useState9","_useState10","focused","setFocused","useEffect","escapeRef","useRef","handleBlur","useCallback","current","String","target","trim","_value","updateValue","type","preformattedValue","replace","numericValue","parseFloat","isNaN","newValue","formattedValue","toFixed","Math","round","includes","handleKeyDown","key","blur","preventDefault","metaKey","ctrlKey","_inputRef$current","select","input","start","selectionStart","end","selectionEnd","substring","Boolean","handleChange","inputValue","numericInput","_","num","unit","normalizedNum","parts","split","integerPart","fractionalPart","newInteger","parseInt","currencyMultiplier","toLowerCase","result","handleClick","handleFocus","handleDoubleClick","_inputRef$current2","onKeyDown","onDoubleClick","onFocus"],"sources":["../../../src/hooks/useInputNumber.tsx"],"sourcesContent":["import {\n useState,\n MouseEvent,\n useRef,\n useCallback,\n RefObject,\n useEffect,\n} from \"react\";\n\nimport { validateNumberInput } from \"../utils\";\nimport { currencyMultiplier, formatNumber } 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 onBlur?: (e: Event) => void;\n validation?: (\n value: string,\n disableMacros: boolean,\n decimalSeparator: string,\n decimalLength: number,\n limit?: number\n ) => boolean;\n min?: string | number;\n max?: string | number;\n update?: 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 min,\n max,\n onBlur,\n update,\n }: IInputNumber,\n inputRef: RefObject<HTMLInputElement | null>\n) => {\n const isMaxValid =\n max === undefined || min === undefined || Number(max) >= Number(min);\n\n if (!isMaxValid) {\n console.warn(\n \"Warning: The maximum value is set to be lower than the minimum value. The maximum value will be ignored.\"\n );\n }\n\n const [currentValue, setCurrentValue] = useState(() =>\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n const [prevValue, setPrevValue] = useState(() =>\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n const [unformattedValue, setUnformattedValue] = useState(() =>\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n const [unformattedPrevValue, setUnformattedPrevValue] = useState(() =>\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n\n const [focused, setFocused] = useState(false);\n\n useEffect(() => {\n if (value !== prevValue && (!focused || update)) {\n setCurrentValue(\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n setPrevValue(\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n )\n );\n setUnformattedValue(\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n setUnformattedPrevValue(\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n disableAbbreviation,\n thousandSeparator,\n decimalSeparator,\n decimalLength,\n trimDecimals,\n value,\n focused,\n ]);\n\n const escapeRef = useRef(false);\n\n const handleBlur = useCallback(\n (e) => {\n if (escapeRef.current) {\n setCurrentValue(prevValue);\n setUnformattedValue(unformattedPrevValue);\n if (onChange) onChange(String(unformattedPrevValue));\n } else {\n if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {\n const _value = formatNumber(\n currentValue as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\"\n );\n setPrevValue(_value);\n setUnformattedPrevValue(\n formatNumber(\n currentValue as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n setUnformattedValue(\n formatNumber(\n currentValue as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\"\n )\n );\n setCurrentValue(_value);\n typeof onSave === \"function\" && onSave(e);\n } else {\n if (!allowEmptyValue) {\n setCurrentValue(prevValue);\n setUnformattedValue(unformattedPrevValue);\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 typeof onBlur === \"function\" && onBlur(e);\n },\n [\n onBlur,\n prevValue,\n unformattedPrevValue,\n onChange,\n currentValue,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation,\n onSave,\n allowEmptyValue,\n onCancel,\n ]\n );\n\n const updateValue = useCallback(\n (type: \"increment\" | \"decrement\") => {\n const preformattedValue = String(unformattedValue)\n .replace(thousandSeparator, \"\")\n .replace(decimalSeparator, \".\");\n const numericValue = parseFloat(preformattedValue);\n\n if (isNaN(numericValue)) return;\n\n if (\n (max !== undefined && numericValue > Number(max)) ||\n (min !== undefined && numericValue < Number(min))\n ) {\n return;\n }\n\n let newValue = numericValue;\n\n if (type === \"increment\") {\n if (max === undefined || numericValue + step <= Number(max)) {\n newValue = numericValue + step;\n } else if (numericValue < Number(max)) {\n newValue = Number(max);\n } else {\n return;\n }\n } else if (type === \"decrement\") {\n if (min === undefined || numericValue - step >= Number(min)) {\n newValue = numericValue - step;\n } else if (numericValue > Number(min)) {\n newValue = Number(min);\n } else {\n return;\n }\n }\n\n let formattedValue;\n if (decimalLength !== undefined) {\n formattedValue = newValue.toFixed(decimalLength);\n } else {\n formattedValue = newValue.toFixed(2);\n }\n\n if (decimalLength !== undefined && decimalLength === 0) {\n formattedValue = Math.round(newValue).toString();\n }\n\n if (formattedValue.includes(\".\") || formattedValue.includes(\",\")) {\n formattedValue = formattedValue.replace(\".\", decimalSeparator);\n }\n\n setUnformattedValue(formattedValue);\n setCurrentValue(formattedValue);\n if (onChange) onChange(formattedValue);\n },\n [\n unformattedValue,\n thousandSeparator,\n decimalSeparator,\n decimalLength,\n onChange,\n step,\n min,\n max,\n ]\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.key === \"Delete\") {\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\n // Disallow \"-\" if min is 0 or greater\n if (e.key === \"-\" && min !== undefined && Number(min) >= 0) {\n e.preventDefault();\n return;\n }\n\n // Disallow decimal separator if decimalLength is 0\n if (e.key === decimalSeparator && decimalLength === 0) {\n e.preventDefault();\n return;\n }\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 min,\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(\n /(\\d+(?:[.,]\\d+)?)([kmbtKMBT])/,\n (_, num, unit) => {\n const normalizedNum = num.replace(\",\", \".\");\n const parts = normalizedNum.split(\".\");\n const integerPart = parts[0];\n const fractionalPart = parts[1];\n\n const newInteger =\n parseInt(integerPart, 10) *\n currencyMultiplier[unit.toLowerCase()];\n\n let result = newInteger.toString();\n if (fractionalPart !== undefined) {\n result += decimalSeparator + fractionalPart;\n }\n return result;\n }\n );\n setCurrentValue(numericInput);\n setUnformattedValue(numericInput);\n if (onChange) onChange(numericInput);\n },\n [disableMacros, decimalSeparator, 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 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"],"mappings":"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"}
|
|
@@ -3,7 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.numberWithSeparator = exports.getNumberFromString = exports.formatNumber = exports.formatCurrency = exports.fixedDecimalSpaces = exports.currencyMultiplier = void 0;
|
|
6
|
+
exports.parseValueToNumber = exports.numberWithSeparator = exports.getNumberFromString = exports.formatNumber = exports.formatCurrency = exports.fixedDecimalSpaces = exports.currencyMultiplier = void 0;
|
|
7
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
8
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
10
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
11
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
12
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
7
13
|
var currencyMultiplier = exports.currencyMultiplier = {
|
|
8
14
|
k: 1000,
|
|
9
15
|
m: 1000000,
|
|
@@ -144,4 +150,17 @@ var formatCurrency = exports.formatCurrency = function formatCurrency(n) {
|
|
|
144
150
|
}
|
|
145
151
|
return currencyCodePosition === "right" ? "".concat(formattedNum, " ").concat(currencyCode) : "".concat(currencyCode, " ").concat(formattedNum);
|
|
146
152
|
};
|
|
153
|
+
var parseValueToNumber = exports.parseValueToNumber = function parseValueToNumber(value, thousandSeparator, decimalSeparator) {
|
|
154
|
+
var stringValue = String(value).trim();
|
|
155
|
+
if (stringValue.includes(":")) {
|
|
156
|
+
var _stringValue$split = stringValue.split(":"),
|
|
157
|
+
_stringValue$split2 = _slicedToArray(_stringValue$split, 2),
|
|
158
|
+
hoursPart = _stringValue$split2[0],
|
|
159
|
+
minutesPart = _stringValue$split2[1];
|
|
160
|
+
var hours = parseFloat(hoursPart) || 0;
|
|
161
|
+
var minutes = parseFloat(minutesPart) || 0;
|
|
162
|
+
return hours + minutes / 60;
|
|
163
|
+
}
|
|
164
|
+
return +stringValue.replaceAll(thousandSeparator, "").replace(decimalSeparator, ".");
|
|
165
|
+
};
|
|
147
166
|
//# sourceMappingURL=currencyUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
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","NaN","isNaN","Number","result","parseFloat","String","replaceAll","formatNumber","n","decimalSeperator","trimDecimals","decimalSpaces","format","isNegative","absoluteNumber","abs","suffixes","scale","formattedNum","toFixed","numberWithSeparator","concat","x","replace","join","formatCurrency","currencyCode","currencyCodePosition"],"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 === \"string\" && number === \"\") {\n return NaN;\n }\n if (!isNaN(Number(number)) || typeof number === \"number\") {\n return Number(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\n/**\n * @function formatNumber\n * @description\n * Formats a number or string into a human-readable format with options for thousand separators,\n * decimal precision, and shortening the number using suffixes (K, M, B, T).\n * It can handle negative numbers and optionally trim decimals and set number of decimal places based on the configuration.\n *\n * @param {string | number} n - The number or string to be formatted.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=true] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n *\n * @returns {string} - The formatted number as a string with separators and potentially with decimals.\n *\n * @example\n * formatNumber(1500) // \"1,500.00\"\n * formatNumber(1500000, \",\", \".\", true, 2, \"short\") // \"1.5M\"\n */\nexport const formatNumber = (\n n: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = true,\n decimalSpaces = 2,\n format = \"long\"\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 let formattedNum =\n scale === 0\n ? fixedDecimalSpaces(absoluteNumber, decimalSpaces)\n : parseFloat(absoluteNumber.toFixed(1));\n\n if (formattedNum === 1000 && scale > 0 && scale < 4) {\n formattedNum = 1;\n scale++;\n }\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\n/**\n * @function formatCurrency\n * @description\n * Formats a number or string as a currency string with options for thousand separators,\n * decimal precision, currency code, currency code position, and the use of suffixes (K, M, B, T) if needed.\n * It can handle negative values and supports customization of the currency code and its position.\n *\n * @param {string | number} n - The number or string to be formatted as currency.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=false] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n * @param {string} [currencyCode=\"\"] - The currency code to append or prepend to the formatted number.\n * @param {\"right\" | \"left\"} [currencyCodePosition=\"right\"] - The position of the currency code relative to the formatted number.\n *\n * @returns {string} - The formatted currency string, including the currency code if provided.\n *\n * @example\n * formatCurrency(1500, \",\", \".\", false, 2, \"long\", \"USD\", \"right\") // \"1,500.00 USD\"\n * formatCurrency(1500000, \",\", \".\", true, 2, \"short\", \"JPY\", \"left\") // \"JPY 1.5M\"\n */\nexport const formatCurrency = (\n n: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = false,\n decimalSpaces = 2,\n format = \"long\",\n currencyCode = \"\",\n currencyCodePosition = \"right\"\n) => {\n const formattedNum = formatNumber(\n n,\n thousandSeparator,\n decimalSeperator,\n trimDecimals,\n decimalSpaces,\n format\n );\n\n if (!currencyCode) {\n return formattedNum;\n }\n\n return currencyCodePosition === \"right\"\n ? `${formattedNum} ${currencyCode}`\n : `${currencyCode} ${formattedNum}`;\n};\n"],"mappings":"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"}
|
|
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","NaN","isNaN","Number","result","parseFloat","String","replaceAll","formatNumber","n","decimalSeperator","trimDecimals","decimalSpaces","format","isNegative","absoluteNumber","abs","suffixes","scale","formattedNum","toFixed","numberWithSeparator","concat","x","replace","join","formatCurrency","currencyCode","currencyCodePosition","parseValueToNumber","value","stringValue","trim","includes","_stringValue$split","_stringValue$split2","_slicedToArray","hoursPart","minutesPart","hours","minutes"],"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 === \"string\" && number === \"\") {\n return NaN;\n }\n if (!isNaN(Number(number)) || typeof number === \"number\") {\n return Number(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\n/**\n * @function formatNumber\n * @description\n * Formats a number or string into a human-readable format with options for thousand separators,\n * decimal precision, and shortening the number using suffixes (K, M, B, T).\n * It can handle negative numbers and optionally trim decimals and set number of decimal places based on the configuration.\n *\n * @param {string | number} n - The number or string to be formatted.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=true] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n *\n * @returns {string} - The formatted number as a string with separators and potentially with decimals.\n *\n * @example\n * formatNumber(1500) // \"1,500.00\"\n * formatNumber(1500000, \",\", \".\", true, 2, \"short\") // \"1.5M\"\n */\nexport const formatNumber = (\n n: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = true,\n decimalSpaces = 2,\n format = \"long\"\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 let formattedNum =\n scale === 0\n ? fixedDecimalSpaces(absoluteNumber, decimalSpaces)\n : parseFloat(absoluteNumber.toFixed(1));\n\n if (formattedNum === 1000 && scale > 0 && scale < 4) {\n formattedNum = 1;\n scale++;\n }\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\n/**\n * @function formatCurrency\n * @description\n * Formats a number or string as a currency string with options for thousand separators,\n * decimal precision, currency code, currency code position, and the use of suffixes (K, M, B, T) if needed.\n * It can handle negative values and supports customization of the currency code and its position.\n *\n * @param {string | number} n - The number or string to be formatted as currency.\n * @param {\",\" | \".\" | \" \" | \"\"} [thousandSeparator=\",\"] - The character to use as a thousand separator.\n * @param {\",\" | \".\"} [decimalSeperator=\".\"] - The character to use as a decimal separator.\n * @param {boolean} [trimDecimals=false] - Whether to trim decimals to the specified number of decimal spaces.\n * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.\n * @param {\"long\" | \"short\"} [format=\"long\"] - The format type, either \"long\" for full numbers or \"short\" for shortened numbers with suffixes.\n * @param {string} [currencyCode=\"\"] - The currency code to append or prepend to the formatted number.\n * @param {\"right\" | \"left\"} [currencyCodePosition=\"right\"] - The position of the currency code relative to the formatted number.\n *\n * @returns {string} - The formatted currency string, including the currency code if provided.\n *\n * @example\n * formatCurrency(1500, \",\", \".\", false, 2, \"long\", \"USD\", \"right\") // \"1,500.00 USD\"\n * formatCurrency(1500000, \",\", \".\", true, 2, \"short\", \"JPY\", \"left\") // \"JPY 1.5M\"\n */\nexport const formatCurrency = (\n n: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = false,\n decimalSpaces = 2,\n format = \"long\",\n currencyCode = \"\",\n currencyCodePosition = \"right\"\n) => {\n const formattedNum = formatNumber(\n n,\n thousandSeparator,\n decimalSeperator,\n trimDecimals,\n decimalSpaces,\n format\n );\n\n if (!currencyCode) {\n return formattedNum;\n }\n\n return currencyCodePosition === \"right\"\n ? `${formattedNum} ${currencyCode}`\n : `${currencyCode} ${formattedNum}`;\n};\n\nexport const parseValueToNumber = (\n value: string | number,\n thousandSeparator: string,\n decimalSeparator: string\n): number => {\n const stringValue = String(value).trim();\n if (stringValue.includes(\":\")) {\n const [hoursPart, minutesPart] = stringValue.split(\":\");\n const hours = parseFloat(hoursPart) || 0;\n const minutes = parseFloat(minutesPart) || 0;\n return hours + minutes / 60;\n }\n return +stringValue\n .replaceAll(thousandSeparator, \"\")\n .replace(decimalSeparator, \".\");\n};\n"],"mappings":"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"}
|
|
@@ -425,5 +425,10 @@ describe("format currency with thousandseparator set to ',' and decimalSeparator
|
|
|
425
425
|
}, "USD 1.5M"]])("should format currency correctly", function (args, expected) {
|
|
426
426
|
expect((0, _currencyUtils.formatCurrency)(args.value, args.thousandSeparator, args.decimalSeparator, args.trimDecimals, args.decimalSpaces, args.format, args.currencyCode, args.currencyCodePosition)).toEqual(expected);
|
|
427
427
|
});
|
|
428
|
+
it.each([
|
|
429
|
+
// [value, thousandSeparator, decimalSeparator, expectedResult]
|
|
430
|
+
["13:15", ",", ".", 13.25], ["13:00", ",", ".", 13], ["13:", ",", ".", 13], [":30", ",", ".", 0.5], [" 2:15 ", ",", ".", 2.25], ["1,234.56", ",", ".", 1234.56], ["1.234,56", ".", ",", 1234.56], [13.5, ",", ".", 13.5]])("should correctly parse %p with thousandSeparator '%s' and decimalSeparator '%s' to %p", function (value, thousandSeparator, decimalSeparator, expected) {
|
|
431
|
+
expect((0, _currencyUtils.parseValueToNumber)(value, thousandSeparator, decimalSeparator)).toBeCloseTo(expected);
|
|
432
|
+
});
|
|
428
433
|
});
|
|
429
434
|
//# sourceMappingURL=currencyUtils.test.js.map
|