@activecollab/components 2.0.205 → 2.0.206
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 +2 -1
- package/dist/cjs/components/EditableCurrency/EditableCurrency.js.map +1 -1
- package/dist/cjs/components/Input/InputCurrency.js +1 -0
- package/dist/cjs/components/Input/InputCurrency.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 +15 -13
- package/dist/cjs/hooks/useInputNumber.js.map +1 -1
- package/dist/cjs/utils/currencyUtils.js +6 -2
- package/dist/cjs/utils/currencyUtils.js.map +1 -1
- package/dist/cjs/utils/currencyUtils.test.js +12 -3
- package/dist/cjs/utils/currencyUtils.test.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 +2 -1
- package/dist/esm/components/EditableCurrency/EditableCurrency.js.map +1 -1
- package/dist/esm/components/Input/InputCurrency.d.ts.map +1 -1
- package/dist/esm/components/Input/InputCurrency.js +1 -0
- package/dist/esm/components/Input/InputCurrency.js.map +1 -1
- package/dist/esm/components/Input/InputNumber.d.ts +1 -0
- 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 +14 -13
- package/dist/esm/hooks/useInputNumber.js.map +1 -1
- package/dist/esm/utils/currencyUtils.d.ts +3 -1
- package/dist/esm/utils/currencyUtils.d.ts.map +1 -1
- package/dist/esm/utils/currencyUtils.js +9 -3
- package/dist/esm/utils/currencyUtils.js.map +1 -1
- package/dist/esm/utils/currencyUtils.test.js +12 -3
- package/dist/esm/utils/currencyUtils.test.js.map +1 -1
- package/dist/esm/utils/types.d.ts +1 -0
- package/dist/esm/utils/types.d.ts.map +1 -1
- package/dist/esm/utils/types.js.map +1 -1
- package/dist/index.js +29 -18
- 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
|
@@ -64,7 +64,8 @@ var EditableCurrency = exports.EditableCurrency = /*#__PURE__*/_react.default.fo
|
|
|
64
64
|
onClick: externalOnClick,
|
|
65
65
|
trimDecimals,
|
|
66
66
|
min,
|
|
67
|
-
max
|
|
67
|
+
max,
|
|
68
|
+
shortenThreshold: 10000
|
|
68
69
|
}, inputRef),
|
|
69
70
|
value = _useInputNumber.value,
|
|
70
71
|
onBlur = _useInputNumber.onBlur,
|
|
@@ -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","_ref$trimDecimals","trimDecimals","min","max","rest","inputRef","useRef","handleRef","useForkRef","_useInputNumber","useInputNumber","onBlur","onKeyDown","onDoubleClick","onFocus","focused","unformattedValue","formattedValue","useMemo","numberWithSeparator","createElement","Tooltip","title","disable","EditableContent","inputProps","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\" | \"onBlur\"> {\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 min,\n max,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n focused,\n unformattedValue,\n } = 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 min,\n max,\n },\n inputRef\n );\n\n const formattedValue = useMemo(() => {\n return focused\n ? value\n : numberWithSeparator(value ?? \"\", \"\", decimalSeparator);\n }, [focused, value, 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":"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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","min","max","rest","inputRef","useRef","handleRef","useForkRef","_useInputNumber","useInputNumber","shortenThreshold","onBlur","onKeyDown","onDoubleClick","onFocus","focused","unformattedValue","formattedValue","useMemo","numberWithSeparator","createElement","Tooltip","title","disable","EditableContent","inputProps","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\" | \"onBlur\"> {\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 min,\n max,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n focused,\n unformattedValue,\n } = 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 min,\n max,\n shortenThreshold: 10000,\n },\n inputRef\n );\n\n const formattedValue = useMemo(() => {\n return focused\n ? value\n : numberWithSeparator(value ?? \"\", \"\", decimalSeparator);\n }, [focused, value, 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":"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"}
|
|
@@ -38,6 +38,7 @@ var InputCurrency = exports.InputCurrency = /*#__PURE__*/(0, _react.forwardRef)(
|
|
|
38
38
|
align: "right",
|
|
39
39
|
ref: ref,
|
|
40
40
|
disabled: disabled,
|
|
41
|
+
shortenThreshold: 10000,
|
|
41
42
|
endAdornment: endAdornment && /*#__PURE__*/_react.default.createElement(_InputAdornment.InputAdornment, {
|
|
42
43
|
disablePointerEvents: disabled
|
|
43
44
|
}, endAdornment)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputCurrency.js","names":["_react","_interopRequireWildcard","require","_InputAdornment","_InputNumber","_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","InputCurrency","exports","forwardRef","_ref","ref","currency","size","startAdornment","endAdornment","disabled","rest","variant","useMemo","weight","createElement","InputNumber","align","InputAdornment","disablePointerEvents","Typography","displayName"],"sources":["../../../../src/components/Input/InputCurrency.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\n\nimport { InputAdornment } from \"./InputAdornment\";\nimport { InputNumber, InputNumberProps } from \"./InputNumber\";\nimport { Typography } from \"../Typography/Typography\";\n\nexport interface IInputCurrency\n extends Omit<InputNumberProps, \"align\" | \"limit\"> {\n currency: string;\n}\n\nexport const InputCurrency = forwardRef<HTMLInputElement, IInputCurrency>(\n (\n { currency, size, startAdornment, endAdornment, disabled, ...rest },\n ref\n ) => {\n const variant = useMemo(() => {\n if (size === \"biggest\") {\n return \"Header 2\";\n }\n if (size === \"big\") {\n return \"Body 1\";\n }\n return \"Body 2\";\n }, [size]);\n\n const weight = useMemo(() => {\n return size === \"biggest\" ? \"bold\" : \"regular\";\n }, [size]);\n\n return (\n <InputNumber\n size={size}\n align=\"right\"\n ref={ref}\n disabled={disabled}\n endAdornment={\n endAdornment && (\n <InputAdornment disablePointerEvents={disabled}>\n {endAdornment}\n </InputAdornment>\n )\n }\n {...rest}\n startAdornment={\n <InputAdornment disablePointerEvents={disabled}>\n <Typography variant={variant} weight={weight}>\n {currency}\n </Typography>\n {startAdornment}\n </InputAdornment>\n }\n />\n );\n }\n);\n\nInputCurrency.displayName = \"InputCurrency\";\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAAsD,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;AAO/C,IAAMe,aAAa,GAAAC,OAAA,CAAAD,aAAA,gBAAG,IAAAE,iBAAU,EACrC,UAAAC,IAAA,EAEEC,GAAG,EACA;EAAA,IAFDC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IAAEC,cAAc,GAAAJ,IAAA,CAAdI,cAAc;IAAEC,YAAY,GAAAL,IAAA,CAAZK,YAAY;IAAEC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IAAKC,IAAI,GAAAnB,wBAAA,CAAAY,IAAA,EAAA3C,SAAA;EAGjE,IAAMmD,OAAO,GAAG,IAAAC,cAAO,EAAC,YAAM;IAC5B,IAAIN,IAAI,KAAK,SAAS,EAAE;MACtB,OAAO,UAAU;IACnB;IACA,IAAIA,IAAI,KAAK,KAAK,EAAE;MAClB,OAAO,QAAQ;IACjB;IACA,OAAO,QAAQ;EACjB,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,IAAMO,MAAM,GAAG,IAAAD,cAAO,EAAC,YAAM;IAC3B,OAAON,IAAI,KAAK,SAAS,GAAG,MAAM,GAAG,SAAS;EAChD,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,oBACEpD,MAAA,CAAAa,OAAA,CAAA+C,aAAA,CAACxD,YAAA,CAAAyD,WAAW,EAAAjC,QAAA;IACVwB,IAAI,EAAEA,IAAK;IACXU,KAAK,EAAC,OAAO;IACbZ,GAAG,EAAEA,GAAI;IACTK,QAAQ,EAAEA,QAAS;
|
|
1
|
+
{"version":3,"file":"InputCurrency.js","names":["_react","_interopRequireWildcard","require","_InputAdornment","_InputNumber","_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","InputCurrency","exports","forwardRef","_ref","ref","currency","size","startAdornment","endAdornment","disabled","rest","variant","useMemo","weight","createElement","InputNumber","align","shortenThreshold","InputAdornment","disablePointerEvents","Typography","displayName"],"sources":["../../../../src/components/Input/InputCurrency.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\n\nimport { InputAdornment } from \"./InputAdornment\";\nimport { InputNumber, InputNumberProps } from \"./InputNumber\";\nimport { Typography } from \"../Typography/Typography\";\n\nexport interface IInputCurrency\n extends Omit<InputNumberProps, \"align\" | \"limit\"> {\n currency: string;\n}\n\nexport const InputCurrency = forwardRef<HTMLInputElement, IInputCurrency>(\n (\n { currency, size, startAdornment, endAdornment, disabled, ...rest },\n ref\n ) => {\n const variant = useMemo(() => {\n if (size === \"biggest\") {\n return \"Header 2\";\n }\n if (size === \"big\") {\n return \"Body 1\";\n }\n return \"Body 2\";\n }, [size]);\n\n const weight = useMemo(() => {\n return size === \"biggest\" ? \"bold\" : \"regular\";\n }, [size]);\n\n return (\n <InputNumber\n size={size}\n align=\"right\"\n ref={ref}\n disabled={disabled}\n shortenThreshold={10000}\n endAdornment={\n endAdornment && (\n <InputAdornment disablePointerEvents={disabled}>\n {endAdornment}\n </InputAdornment>\n )\n }\n {...rest}\n startAdornment={\n <InputAdornment disablePointerEvents={disabled}>\n <Typography variant={variant} weight={weight}>\n {currency}\n </Typography>\n {startAdornment}\n </InputAdornment>\n }\n />\n );\n }\n);\n\nInputCurrency.displayName = \"InputCurrency\";\n"],"mappings":"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"}
|
|
@@ -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", "update"];
|
|
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", "shortenThreshold"];
|
|
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); }
|
|
@@ -45,6 +45,8 @@ var InputNumber = exports.InputNumber = /*#__PURE__*/(0, _react.forwardRef)(func
|
|
|
45
45
|
externalOnBlur = _ref.onBlur,
|
|
46
46
|
_ref$update = _ref.update,
|
|
47
47
|
update = _ref$update === void 0 ? false : _ref$update,
|
|
48
|
+
_ref$shortenThreshold = _ref.shortenThreshold,
|
|
49
|
+
shortenThreshold = _ref$shortenThreshold === void 0 ? 1000 : _ref$shortenThreshold,
|
|
48
50
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
49
51
|
var inputRef = (0, _react.useRef)(null);
|
|
50
52
|
var handleRef = (0, _utils.useForkRef)(ref, inputRef);
|
|
@@ -67,7 +69,8 @@ var InputNumber = exports.InputNumber = /*#__PURE__*/(0, _react.forwardRef)(func
|
|
|
67
69
|
min,
|
|
68
70
|
max,
|
|
69
71
|
onBlur: externalOnBlur,
|
|
70
|
-
update
|
|
72
|
+
update,
|
|
73
|
+
shortenThreshold
|
|
71
74
|
}, inputRef),
|
|
72
75
|
value = _useInputNumber.value,
|
|
73
76
|
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","_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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
|
|
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","_ref$shortenThreshold","shortenThreshold","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 shortenThreshold?: number;\n}\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 shortenThreshold = 1000,\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 shortenThreshold,\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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"}
|
|
@@ -39,31 +39,33 @@ var useInputNumber = exports.useInputNumber = function useInputNumber(_ref, inpu
|
|
|
39
39
|
min = _ref.min,
|
|
40
40
|
max = _ref.max,
|
|
41
41
|
onBlur = _ref.onBlur,
|
|
42
|
-
update = _ref.update
|
|
42
|
+
update = _ref.update,
|
|
43
|
+
_ref$shortenThreshold = _ref.shortenThreshold,
|
|
44
|
+
shortenThreshold = _ref$shortenThreshold === void 0 ? 1000 : _ref$shortenThreshold;
|
|
43
45
|
var isMaxValid = max === undefined || min === undefined || Number(max) >= Number(min);
|
|
44
46
|
if (!isMaxValid) {
|
|
45
47
|
console.warn("Warning: The maximum value is set to be lower than the minimum value. The maximum value will be ignored.");
|
|
46
48
|
}
|
|
47
49
|
var _useState = (0, _react.useState)(function () {
|
|
48
|
-
return (0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short");
|
|
50
|
+
return (0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short", shortenThreshold);
|
|
49
51
|
}),
|
|
50
52
|
_useState2 = _slicedToArray(_useState, 2),
|
|
51
53
|
currentValue = _useState2[0],
|
|
52
54
|
setCurrentValue = _useState2[1];
|
|
53
55
|
var _useState3 = (0, _react.useState)(function () {
|
|
54
|
-
return (0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short");
|
|
56
|
+
return (0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short", shortenThreshold);
|
|
55
57
|
}),
|
|
56
58
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
57
59
|
prevValue = _useState4[0],
|
|
58
60
|
setPrevValue = _useState4[1];
|
|
59
61
|
var _useState5 = (0, _react.useState)(function () {
|
|
60
|
-
return (0, _currencyUtils.formatNumber)(value, "", decimalSeparator, false, decimalLength, "long");
|
|
62
|
+
return (0, _currencyUtils.formatNumber)(value, "", decimalSeparator, false, decimalLength, "long", shortenThreshold);
|
|
61
63
|
}),
|
|
62
64
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
63
65
|
unformattedValue = _useState6[0],
|
|
64
66
|
setUnformattedValue = _useState6[1];
|
|
65
67
|
var _useState7 = (0, _react.useState)(function () {
|
|
66
|
-
return (0, _currencyUtils.formatNumber)(value, "", decimalSeparator, false, decimalLength, "long");
|
|
68
|
+
return (0, _currencyUtils.formatNumber)(value, "", decimalSeparator, false, decimalLength, "long", shortenThreshold);
|
|
67
69
|
}),
|
|
68
70
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
69
71
|
unformattedPrevValue = _useState8[0],
|
|
@@ -74,10 +76,10 @@ var useInputNumber = exports.useInputNumber = function useInputNumber(_ref, inpu
|
|
|
74
76
|
setFocused = _useState10[1];
|
|
75
77
|
(0, _react.useEffect)(function () {
|
|
76
78
|
if (value !== prevValue && (!focused || update)) {
|
|
77
|
-
setCurrentValue((0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short"));
|
|
78
|
-
setPrevValue((0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short"));
|
|
79
|
-
setUnformattedValue((0, _currencyUtils.formatNumber)(value, "", decimalSeparator, false, decimalLength, "long"));
|
|
80
|
-
setUnformattedPrevValue((0, _currencyUtils.formatNumber)(value, "", decimalSeparator, false, decimalLength, "long"));
|
|
79
|
+
setCurrentValue((0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short", shortenThreshold));
|
|
80
|
+
setPrevValue((0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short", shortenThreshold));
|
|
81
|
+
setUnformattedValue((0, _currencyUtils.formatNumber)(value, "", decimalSeparator, false, decimalLength, "long", shortenThreshold));
|
|
82
|
+
setUnformattedPrevValue((0, _currencyUtils.formatNumber)(value, "", decimalSeparator, false, decimalLength, "long", shortenThreshold));
|
|
81
83
|
}
|
|
82
84
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
83
85
|
}, [disableAbbreviation, thousandSeparator, decimalSeparator, decimalLength, trimDecimals, value, focused]);
|
|
@@ -89,10 +91,10 @@ var useInputNumber = exports.useInputNumber = function useInputNumber(_ref, inpu
|
|
|
89
91
|
if (onChange) onChange(String(unformattedPrevValue));
|
|
90
92
|
} else {
|
|
91
93
|
if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {
|
|
92
|
-
var _value = (0, _currencyUtils.formatNumber)(currentValue, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short");
|
|
94
|
+
var _value = (0, _currencyUtils.formatNumber)(currentValue, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short", shortenThreshold);
|
|
93
95
|
setPrevValue(_value);
|
|
94
|
-
setUnformattedPrevValue((0, _currencyUtils.formatNumber)(currentValue, "", decimalSeparator, false, decimalLength, "long"));
|
|
95
|
-
setUnformattedValue((0, _currencyUtils.formatNumber)(currentValue, "", decimalSeparator, false, decimalLength, "long"));
|
|
96
|
+
setUnformattedPrevValue((0, _currencyUtils.formatNumber)(currentValue, "", decimalSeparator, false, decimalLength, "long", shortenThreshold));
|
|
97
|
+
setUnformattedValue((0, _currencyUtils.formatNumber)(currentValue, "", decimalSeparator, false, decimalLength, "long", shortenThreshold));
|
|
96
98
|
setCurrentValue(_value);
|
|
97
99
|
typeof onSave === "function" && onSave(e);
|
|
98
100
|
} else {
|
|
@@ -111,7 +113,7 @@ var useInputNumber = exports.useInputNumber = function useInputNumber(_ref, inpu
|
|
|
111
113
|
}
|
|
112
114
|
setFocused(false);
|
|
113
115
|
typeof onBlur === "function" && onBlur(e);
|
|
114
|
-
}, [onBlur, prevValue, unformattedPrevValue, onChange, currentValue, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation, onSave, allowEmptyValue, onCancel]);
|
|
116
|
+
}, [onBlur, prevValue, unformattedPrevValue, onChange, currentValue, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation, shortenThreshold, onSave, allowEmptyValue, onCancel]);
|
|
115
117
|
var updateValue = (0, _react.useCallback)(function (type) {
|
|
116
118
|
var preformattedValue = String(unformattedValue).replace(thousandSeparator, "").replace(decimalSeparator, ".");
|
|
117
119
|
var numericValue = parseFloat(preformattedValue);
|
|
@@ -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","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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"}
|
|
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","_ref$shortenThreshold","shortenThreshold","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 shortenThreshold?: 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 update,\n shortenThreshold = 1000,\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 shortenThreshold\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 shortenThreshold\n )\n );\n const [unformattedValue, setUnformattedValue] = useState(() =>\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\",\n shortenThreshold\n )\n );\n const [unformattedPrevValue, setUnformattedPrevValue] = useState(() =>\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\",\n shortenThreshold\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 shortenThreshold\n )\n );\n setPrevValue(\n formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n disableAbbreviation ? \"long\" : \"short\",\n shortenThreshold\n )\n );\n setUnformattedValue(\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\",\n shortenThreshold\n )\n );\n setUnformattedPrevValue(\n formatNumber(\n value as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\",\n shortenThreshold\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 shortenThreshold\n );\n setPrevValue(_value);\n setUnformattedPrevValue(\n formatNumber(\n currentValue as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\",\n shortenThreshold\n )\n );\n setUnformattedValue(\n formatNumber(\n currentValue as string,\n \"\",\n decimalSeparator,\n false,\n decimalLength,\n \"long\",\n shortenThreshold\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 shortenThreshold,\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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AASA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAA0E,SAAAG,eAAAC,GAAA,EAAAC,CAAA,WAAAC,eAAA,CAAAF,GAAA,KAAAG,qBAAA,CAAAH,GAAA,EAAAC,CAAA,KAAAG,2BAAA,CAAAJ,GAAA,EAAAC,CAAA,KAAAI,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAG,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAE,iBAAA,CAAAF,CAAA,EAAAC,MAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAC,IAAA,CAAAP,CAAA,EAAAQ,KAAA,aAAAL,CAAA,iBAAAH,CAAA,CAAAS,WAAA,EAAAN,CAAA,GAAAH,CAAA,CAAAS,WAAA,CAAAC,IAAA,MAAAP,CAAA,cAAAA,CAAA,mBAAAQ,KAAA,CAAAC,IAAA,CAAAZ,CAAA,OAAAG,CAAA,+DAAAU,IAAA,CAAAV,CAAA,UAAAD,iBAAA,CAAAF,CAAA,EAAAC,MAAA;AAAA,SAAAC,kBAAAT,GAAA,EAAAqB,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAArB,GAAA,CAAAsB,MAAA,EAAAD,GAAA,GAAArB,GAAA,CAAAsB,MAAA,WAAArB,CAAA,MAAAsB,IAAA,OAAAL,KAAA,CAAAG,GAAA,GAAApB,CAAA,GAAAoB,GAAA,EAAApB,CAAA,IAAAsB,IAAA,CAAAtB,CAAA,IAAAD,GAAA,CAAAC,CAAA,UAAAsB,IAAA;AAAA,SAAApB,sBAAAqB,CAAA,EAAAC,CAAA,QAAAC,CAAA,WAAAF,CAAA,gCAAAG,MAAA,IAAAH,CAAA,CAAAG,MAAA,CAAAC,QAAA,KAAAJ,CAAA,4BAAAE,CAAA,QAAAG,CAAA,EAAAnB,CAAA,EAAAT,CAAA,EAAA6B,CAAA,EAAAC,CAAA,OAAAC,CAAA,OAAAzB,CAAA,iBAAAN,CAAA,IAAAyB,CAAA,GAAAA,CAAA,CAAAZ,IAAA,CAAAU,CAAA,GAAAS,IAAA,QAAAR,CAAA,QAAAd,MAAA,CAAAe,CAAA,MAAAA,CAAA,UAAAM,CAAA,uBAAAA,CAAA,IAAAH,CAAA,GAAA5B,CAAA,CAAAa,IAAA,CAAAY,CAAA,GAAAQ,IAAA,MAAAH,CAAA,CAAAI,IAAA,CAAAN,CAAA,CAAAO,KAAA,GAAAL,CAAA,CAAAT,MAAA,KAAAG,CAAA,GAAAO,CAAA,iBAAAR,CAAA,IAAAjB,CAAA,OAAAG,CAAA,GAAAc,CAAA,yBAAAQ,CAAA,YAAAN,CAAA,CAAAW,MAAA,KAAAP,CAAA,GAAAJ,CAAA,CAAAW,MAAA,IAAA1B,MAAA,CAAAmB,CAAA,MAAAA,CAAA,2BAAAvB,CAAA,QAAAG,CAAA,aAAAqB,CAAA;AAAA,SAAA7B,gBAAAF,GAAA,QAAAkB,KAAA,CAAAoB,OAAA,CAAAtC,GAAA,UAAAA,GAAA;AAkCnE,IAAMuC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAAAE,IAAA,EAwBzBC,QAA4C,EACzC;EAAA,IAAAC,qBAAA,GAAAF,IAAA,CAvBDG,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,GAAG,GAAAA,qBAAA;IAAAE,qBAAA,GAAAJ,IAAA,CACtBK,iBAAiB;IAAjBA,iBAAiB,GAAAD,qBAAA,cAAG,GAAG,GAAAA,qBAAA;IACvBE,mBAAmB,GAAAN,IAAA,CAAnBM,mBAAmB;IACnBC,aAAa,GAAAP,IAAA,CAAbO,aAAa;IACbC,aAAa,GAAAR,IAAA,CAAbQ,aAAa;IAAAC,UAAA,GAAAT,IAAA,CACbL,KAAK;IAALA,KAAK,GAAAc,UAAA,cAAG,EAAE,GAAAA,UAAA;IACVC,QAAQ,GAAAV,IAAA,CAARU,QAAQ;IACRC,MAAM,GAAAX,IAAA,CAANW,MAAM;IACNC,eAAe,GAAAZ,IAAA,CAAfY,eAAe;IACfC,OAAO,GAAAb,IAAA,CAAPa,OAAO;IACPC,QAAQ,GAAAd,IAAA,CAARc,QAAQ;IACRC,eAAe,GAAAf,IAAA,CAAfe,eAAe;IAAAC,SAAA,GAAAhB,IAAA,CACfiB,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,CAAC,GAAAA,SAAA;IAAAE,iBAAA,GAAAlB,IAAA,CACRmB,YAAY;IAAZA,YAAY,GAAAD,iBAAA,cAAG,IAAI,GAAAA,iBAAA;IACnBE,KAAK,GAAApB,IAAA,CAALoB,KAAK;IAAAC,eAAA,GAAArB,IAAA,CACLsB,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAGE,0BAAmB,GAAAF,eAAA;IAChCG,GAAG,GAAAxB,IAAA,CAAHwB,GAAG;IACHC,GAAG,GAAAzB,IAAA,CAAHyB,GAAG;IACHC,MAAM,GAAA1B,IAAA,CAAN0B,MAAM;IACNC,MAAM,GAAA3B,IAAA,CAAN2B,MAAM;IAAAC,qBAAA,GAAA5B,IAAA,CACN6B,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;EAIzB,IAAME,UAAU,GACdL,GAAG,KAAKM,SAAS,IAAIP,GAAG,KAAKO,SAAS,IAAIC,MAAM,CAACP,GAAG,CAAC,IAAIO,MAAM,CAACR,GAAG,CAAC;EAEtE,IAAI,CAACM,UAAU,EAAE;IACfG,OAAO,CAACC,IAAI,CACV,0GACF,CAAC;EACH;EAEA,IAAAC,SAAA,GAAwC,IAAAC,eAAQ,EAAC;MAAA,OAC/C,IAAAC,2BAAY,EACV1C,KAAK,EACLU,iBAAiB,EACjBF,gBAAgB,EAChBgB,YAAY,EACZX,aAAa,EACbF,mBAAmB,GAAG,MAAM,GAAG,OAAO,EACtCuB,gBACF,CAAC;IAAA,CACH,CAAC;IAAAS,UAAA,GAAAhF,cAAA,CAAA6E,SAAA;IAVMI,YAAY,GAAAD,UAAA;IAAEE,eAAe,GAAAF,UAAA;EAWpC,IAAAG,UAAA,GAAkC,IAAAL,eAAQ,EAAC;MAAA,OACzC,IAAAC,2BAAY,EACV1C,KAAK,EACLU,iBAAiB,EACjBF,gBAAgB,EAChBgB,YAAY,EACZX,aAAa,EACbF,mBAAmB,GAAG,MAAM,GAAG,OAAO,EACtCuB,gBACF,CAAC;IAAA,CACH,CAAC;IAAAa,UAAA,GAAApF,cAAA,CAAAmF,UAAA;IAVME,SAAS,GAAAD,UAAA;IAAEE,YAAY,GAAAF,UAAA;EAW9B,IAAAG,UAAA,GAAgD,IAAAT,eAAQ,EAAC;MAAA,OACvD,IAAAC,2BAAY,EACV1C,KAAK,EACL,EAAE,EACFQ,gBAAgB,EAChB,KAAK,EACLK,aAAa,EACb,MAAM,EACNqB,gBACF,CAAC;IAAA,CACH,CAAC;IAAAiB,UAAA,GAAAxF,cAAA,CAAAuF,UAAA;IAVME,gBAAgB,GAAAD,UAAA;IAAEE,mBAAmB,GAAAF,UAAA;EAW5C,IAAAG,UAAA,GAAwD,IAAAb,eAAQ,EAAC;MAAA,OAC/D,IAAAC,2BAAY,EACV1C,KAAK,EACL,EAAE,EACFQ,gBAAgB,EAChB,KAAK,EACLK,aAAa,EACb,MAAM,EACNqB,gBACF,CAAC;IAAA,CACH,CAAC;IAAAqB,UAAA,GAAA5F,cAAA,CAAA2F,UAAA;IAVME,oBAAoB,GAAAD,UAAA;IAAEE,uBAAuB,GAAAF,UAAA;EAYpD,IAAAG,UAAA,GAA8B,IAAAjB,eAAQ,EAAC,KAAK,CAAC;IAAAkB,WAAA,GAAAhG,cAAA,CAAA+F,UAAA;IAAtCE,OAAO,GAAAD,WAAA;IAAEE,UAAU,GAAAF,WAAA;EAE1B,IAAAG,gBAAS,EAAC,YAAM;IACd,IAAI9D,KAAK,KAAKgD,SAAS,KAAK,CAACY,OAAO,IAAI5B,MAAM,CAAC,EAAE;MAC/Ca,eAAe,CACb,IAAAH,2BAAY,EACV1C,KAAK,EACLU,iBAAiB,EACjBF,gBAAgB,EAChBgB,YAAY,EACZX,aAAa,EACbF,mBAAmB,GAAG,MAAM,GAAG,OAAO,EACtCuB,gBACF,CACF,CAAC;MACDe,YAAY,CACV,IAAAP,2BAAY,EACV1C,KAAK,EACLU,iBAAiB,EACjBF,gBAAgB,EAChBgB,YAAY,EACZX,aAAa,EACbF,mBAAmB,GAAG,MAAM,GAAG,OAAO,EACtCuB,gBACF,CACF,CAAC;MACDmB,mBAAmB,CACjB,IAAAX,2BAAY,EACV1C,KAAK,EACL,EAAE,EACFQ,gBAAgB,EAChB,KAAK,EACLK,aAAa,EACb,MAAM,EACNqB,gBACF,CACF,CAAC;MACDuB,uBAAuB,CACrB,IAAAf,2BAAY,EACV1C,KAAK,EACL,EAAE,EACFQ,gBAAgB,EAChB,KAAK,EACLK,aAAa,EACb,MAAM,EACNqB,gBACF,CACF,CAAC;IACH;IACA;EACF,CAAC,EAAE,CACDvB,mBAAmB,EACnBD,iBAAiB,EACjBF,gBAAgB,EAChBK,aAAa,EACbW,YAAY,EACZxB,KAAK,EACL4D,OAAO,CACR,CAAC;EAEF,IAAMG,SAAS,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EAE/B,IAAMC,UAAU,GAAG,IAAAC,kBAAW,EAC5B,UAACzE,CAAC,EAAK;IACL,IAAIsE,SAAS,CAACI,OAAO,EAAE;MACrBtB,eAAe,CAACG,SAAS,CAAC;MAC1BK,mBAAmB,CAACG,oBAAoB,CAAC;MACzC,IAAIzC,QAAQ,EAAEA,QAAQ,CAACqD,MAAM,CAACZ,oBAAoB,CAAC,CAAC;IACtD,CAAC,MAAM;MACL,IAAI/D,CAAC,CAAC4E,MAAM,CAACrE,KAAK,CAACsE,IAAI,CAAC,CAAC,CAACpF,MAAM,GAAG,CAAC,IAAI8D,SAAS,KAAKvD,CAAC,CAAC4E,MAAM,CAACrE,KAAK,EAAE;QACpE,IAAMuE,MAAM,GAAG,IAAA7B,2BAAY,EACzBE,YAAY,EACZlC,iBAAiB,EACjBF,gBAAgB,EAChBgB,YAAY,EACZX,aAAa,EACbF,mBAAmB,GAAG,MAAM,GAAG,OAAO,EACtCuB,gBACF,CAAC;QACDe,YAAY,CAACsB,MAAM,CAAC;QACpBd,uBAAuB,CACrB,IAAAf,2BAAY,EACVE,YAAY,EACZ,EAAE,EACFpC,gBAAgB,EAChB,KAAK,EACLK,aAAa,EACb,MAAM,EACNqB,gBACF,CACF,CAAC;QACDmB,mBAAmB,CACjB,IAAAX,2BAAY,EACVE,YAAY,EACZ,EAAE,EACFpC,gBAAgB,EAChB,KAAK,EACLK,aAAa,EACb,MAAM,EACNqB,gBACF,CACF,CAAC;QACDW,eAAe,CAAC0B,MAAM,CAAC;QACvB,OAAOvD,MAAM,KAAK,UAAU,IAAIA,MAAM,CAACvB,CAAC,CAAC;MAC3C,CAAC,MAAM;QACL,IAAI,CAAC2B,eAAe,EAAE;UACpByB,eAAe,CAACG,SAAS,CAAC;UAC1BK,mBAAmB,CAACG,oBAAoB,CAAC;UACzC,OAAOrC,QAAQ,KAAK,UAAU,IAAIA,QAAQ,CAAC1B,CAAC,CAAC;QAC/C,CAAC,MAAM;UACL,IAAI,OAAOuB,MAAM,KAAK,UAAU,IAAIgC,SAAS,KAAKvD,CAAC,CAAC4E,MAAM,CAACrE,KAAK,EAAE;YAChEgB,MAAM,CAACvB,CAAC,CAAC;UACX,CAAC,MAAM;YACL,OAAO0B,QAAQ,KAAK,UAAU,IAAIA,QAAQ,CAAC1B,CAAC,CAAC;UAC/C;QACF;MACF;IACF;IACAoE,UAAU,CAAC,KAAK,CAAC;IACjB,OAAO9B,MAAM,KAAK,UAAU,IAAIA,MAAM,CAACtC,CAAC,CAAC;EAC3C,CAAC,EACD,CACEsC,MAAM,EACNiB,SAAS,EACTQ,oBAAoB,EACpBzC,QAAQ,EACR6B,YAAY,EACZlC,iBAAiB,EACjBF,gBAAgB,EAChBgB,YAAY,EACZX,aAAa,EACbF,mBAAmB,EACnBuB,gBAAgB,EAChBlB,MAAM,EACNI,eAAe,EACfD,QAAQ,CAEZ,CAAC;EAED,IAAMqD,WAAW,GAAG,IAAAN,kBAAW,EAC7B,UAACO,IAA+B,EAAK;IACnC,IAAMC,iBAAiB,GAAGN,MAAM,CAAChB,gBAAgB,CAAC,CAC/CuB,OAAO,CAACjE,iBAAiB,EAAE,EAAE,CAAC,CAC9BiE,OAAO,CAACnE,gBAAgB,EAAE,GAAG,CAAC;IACjC,IAAMoE,YAAY,GAAGC,UAAU,CAACH,iBAAiB,CAAC;IAElD,IAAII,KAAK,CAACF,YAAY,CAAC,EAAE;IAEzB,IACG9C,GAAG,KAAKM,SAAS,IAAIwC,YAAY,GAAGvC,MAAM,CAACP,GAAG,CAAC,IAC/CD,GAAG,KAAKO,SAAS,IAAIwC,YAAY,GAAGvC,MAAM,CAACR,GAAG,CAAE,EACjD;MACA;IACF;IAEA,IAAIkD,QAAQ,GAAGH,YAAY;IAE3B,IAAIH,IAAI,KAAK,WAAW,EAAE;MACxB,IAAI3C,GAAG,KAAKM,SAAS,IAAIwC,YAAY,GAAGtD,IAAI,IAAIe,MAAM,CAACP,GAAG,CAAC,EAAE;QAC3DiD,QAAQ,GAAGH,YAAY,GAAGtD,IAAI;MAChC,CAAC,MAAM,IAAIsD,YAAY,GAAGvC,MAAM,CAACP,GAAG,CAAC,EAAE;QACrCiD,QAAQ,GAAG1C,MAAM,CAACP,GAAG,CAAC;MACxB,CAAC,MAAM;QACL;MACF;IACF,CAAC,MAAM,IAAI2C,IAAI,KAAK,WAAW,EAAE;MAC/B,IAAI5C,GAAG,KAAKO,SAAS,IAAIwC,YAAY,GAAGtD,IAAI,IAAIe,MAAM,CAACR,GAAG,CAAC,EAAE;QAC3DkD,QAAQ,GAAGH,YAAY,GAAGtD,IAAI;MAChC,CAAC,MAAM,IAAIsD,YAAY,GAAGvC,MAAM,CAACR,GAAG,CAAC,EAAE;QACrCkD,QAAQ,GAAG1C,MAAM,CAACR,GAAG,CAAC;MACxB,CAAC,MAAM;QACL;MACF;IACF;IAEA,IAAImD,cAAc;IAClB,IAAInE,aAAa,KAAKuB,SAAS,EAAE;MAC/B4C,cAAc,GAAGD,QAAQ,CAACE,OAAO,CAACpE,aAAa,CAAC;IAClD,CAAC,MAAM;MACLmE,cAAc,GAAGD,QAAQ,CAACE,OAAO,CAAC,CAAC,CAAC;IACtC;IAEA,IAAIpE,aAAa,KAAKuB,SAAS,IAAIvB,aAAa,KAAK,CAAC,EAAE;MACtDmE,cAAc,GAAGE,IAAI,CAACC,KAAK,CAACJ,QAAQ,CAAC,CAACtG,QAAQ,CAAC,CAAC;IAClD;IAEA,IAAIuG,cAAc,CAACI,QAAQ,CAAC,GAAG,CAAC,IAAIJ,cAAc,CAACI,QAAQ,CAAC,GAAG,CAAC,EAAE;MAChEJ,cAAc,GAAGA,cAAc,CAACL,OAAO,CAAC,GAAG,EAAEnE,gBAAgB,CAAC;IAChE;IAEA6C,mBAAmB,CAAC2B,cAAc,CAAC;IACnCnC,eAAe,CAACmC,cAAc,CAAC;IAC/B,IAAIjE,QAAQ,EAAEA,QAAQ,CAACiE,cAAc,CAAC;EACxC,CAAC,EACD,CACE5B,gBAAgB,EAChB1C,iBAAiB,EACjBF,gBAAgB,EAChBK,aAAa,EACbE,QAAQ,EACRO,IAAI,EACJO,GAAG,EACHC,GAAG,CAEP,CAAC;EAED,IAAMuD,aAAa,GAAG,IAAAnB,kBAAW,EAC/B,UAACzE,CAAC,EAAK;IACL,IAAIA,CAAC,CAAC6F,GAAG,KAAK,OAAO,EAAE;MACrB7F,CAAC,CAAC4E,MAAM,CAACkB,IAAI,CAAC,CAAC;MACf,IAAI,OAAOtE,eAAe,KAAK,UAAU,EACvCA,eAAe,CAACxB,CAAC,CAAC4E,MAAM,CAACrE,KAAK,CAAC;IACnC;IACA,IAAIP,CAAC,CAAC6F,GAAG,KAAK,WAAW,EAAE;MACzB;IACF;IACA,IAAI7F,CAAC,CAAC6F,GAAG,KAAK,YAAY,EAAE;MAC1B;IACF;IACA,IAAI7F,CAAC,CAAC6F,GAAG,KAAK,SAAS,EAAE;MACvB7F,CAAC,CAAC+F,cAAc,CAAC,CAAC;MAClBhB,WAAW,CAAC,WAAW,CAAC;IAC1B;IACA,IAAI/E,CAAC,CAAC6F,GAAG,KAAK,WAAW,EAAE;MACzB7F,CAAC,CAAC+F,cAAc,CAAC,CAAC;MAClBhB,WAAW,CAAC,WAAW,CAAC;IAC1B;IACA,IAAI/E,CAAC,CAAC6F,GAAG,KAAK,QAAQ,EAAE;MACtBvB,SAAS,CAACI,OAAO,GAAG,IAAI;MACxB1E,CAAC,CAAC4E,MAAM,CAACkB,IAAI,CAAC,CAAC;MACf,OAAOpE,QAAQ,KAAK,UAAU,IAAIA,QAAQ,CAAC1B,CAAC,CAAC;MAC7CsE,SAAS,CAACI,OAAO,GAAG,KAAK;IAC3B;IACA,IAAI1E,CAAC,CAAC6F,GAAG,KAAK,WAAW,EAAE;MACzB;IACF;IACA,IAAI7F,CAAC,CAAC6F,GAAG,KAAK,QAAQ,EAAE;MACtB;IACF;IACA,IAAI,CAAC7F,CAAC,CAACgG,OAAO,IAAIhG,CAAC,CAACiG,OAAO,KAAKjG,CAAC,CAAC6F,GAAG,KAAK,GAAG,EAAE;MAAA,IAAAK,iBAAA;MAC7C,CAAAA,iBAAA,GAAArF,QAAQ,CAAC6D,OAAO,cAAAwB,iBAAA,eAAhBA,iBAAA,CAAkBC,MAAM,CAAC,CAAC;MAC1B;IACF;IACA,IAAInG,CAAC,CAAC6F,GAAG,KAAK,KAAK,EAAE;MACnB;IACF;IACA,IAAI,CAAC7F,CAAC,CAACgG,OAAO,IAAIhG,CAAC,CAACiG,OAAO,KAAKjG,CAAC,CAAC6F,GAAG,KAAK,GAAG,EAAE;MAC7C7F,CAAC,CAAC+F,cAAc,CAAC,CAAC;MAClB;IACF;;IAEA;IACA,IAAI/F,CAAC,CAAC6F,GAAG,KAAK,GAAG,IAAIzD,GAAG,KAAKO,SAAS,IAAIC,MAAM,CAACR,GAAG,CAAC,IAAI,CAAC,EAAE;MAC1DpC,CAAC,CAAC+F,cAAc,CAAC,CAAC;MAClB;IACF;;IAEA;IACA,IAAI/F,CAAC,CAAC6F,GAAG,KAAK9E,gBAAgB,IAAIK,aAAa,KAAK,CAAC,EAAE;MACrDpB,CAAC,CAAC+F,cAAc,CAAC,CAAC;MAClB;IACF;IAEA,IAAMK,KAAK,GAAGpG,CAAC,CAAC4E,MAAM;IACtB,IAAMzB,YAAY,GAAGiD,KAAK,CAAC7F,KAAK;IAChC,IAAM8F,KAAK,GAAGD,KAAK,CAACE,cAAc;IAClC,IAAMC,GAAG,GAAGH,KAAK,CAACI,YAAY;IAC9B,IAAMlB,QAAQ,GACZnC,YAAY,CAACsD,SAAS,CAAC,CAAC,EAAEJ,KAAK,CAAC,GAAGrG,CAAC,CAAC6F,GAAG,GAAG1C,YAAY,CAACsD,SAAS,CAACF,GAAG,CAAC;IACxE,IACE,CAACrE,UAAU,CACToD,QAAQ,EACRoB,OAAO,CAACvF,aAAa,CAAC,EACtBJ,gBAAgB,EAChBK,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,CAAC,EAClBY,KACF,CAAC,EACD;MACAhC,CAAC,CAAC+F,cAAc,CAAC,CAAC;MAClB;IACF;EACF,CAAC,EACD,CACE3E,aAAa,EACbL,gBAAgB,EAChBI,aAAa,EACbN,QAAQ,EACRmB,KAAK,EACLI,GAAG,EACHV,QAAQ,EACRF,eAAe,EACfuD,WAAW,EACX7C,UAAU,CAEd,CAAC;EAED,IAAMyE,YAAY,GAAG,IAAAlC,kBAAW,EAC9B,UAACzE,CAAC,EAAK;IACL,IAAM4G,UAAU,GAAG5G,CAAC,CAAC4E,MAAM,CAACrE,KAAK;IACjC,IAAMsG,YAAY,GAAG1F,aAAa,GAC9ByF,UAAU,GACVA,UAAU,CAAC1B,OAAO,CAChB,+BAA+B,EAC/B,UAAC4B,CAAC,EAAEC,GAAG,EAAEC,IAAI,EAAK;MAChB,IAAMC,aAAa,GAAGF,GAAG,CAAC7B,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;MAC3C,IAAMgC,KAAK,GAAGD,aAAa,CAACE,KAAK,CAAC,GAAG,CAAC;MACtC,IAAMC,WAAW,GAAGF,KAAK,CAAC,CAAC,CAAC;MAC5B,IAAMG,cAAc,GAAGH,KAAK,CAAC,CAAC,CAAC;MAE/B,IAAMI,UAAU,GACdC,QAAQ,CAACH,WAAW,EAAE,EAAE,CAAC,GACzBI,iCAAkB,CAACR,IAAI,CAACS,WAAW,CAAC,CAAC,CAAC;MAExC,IAAIC,MAAM,GAAGJ,UAAU,CAACtI,QAAQ,CAAC,CAAC;MAClC,IAAIqI,cAAc,KAAK1E,SAAS,EAAE;QAChC+E,MAAM,IAAI3G,gBAAgB,GAAGsG,cAAc;MAC7C;MACA,OAAOK,MAAM;IACf,CACF,CAAC;IACLtE,eAAe,CAACyD,YAAY,CAAC;IAC7BjD,mBAAmB,CAACiD,YAAY,CAAC;IACjC,IAAIvF,QAAQ,EAAEA,QAAQ,CAACuF,YAAY,CAAC;EACtC,CAAC,EACD,CAAC1F,aAAa,EAAEJ,gBAAgB,EAAEO,QAAQ,CAC5C,CAAC;EAED,IAAMqG,WAAW,GAAG,IAAAlD,kBAAW,EAC7B,UAACzE,CAAC,EAAK;IACL,IAAI,OAAOyB,OAAO,KAAK,UAAU,EAAE;MACjCA,OAAO,CAACzB,CAAC,CAAC;IACZ;EACF,CAAC,EACD,CAACyB,OAAO,CACV,CAAC;EAED,IAAMmG,WAAW,GAAG,IAAAnD,kBAAW,EAAC,YAAM;IACpCrB,eAAe,CAACO,gBAAgB,CAAC;IACjCS,UAAU,CAAC,IAAI,CAAC;EAClB,CAAC,EAAE,CAACT,gBAAgB,CAAC,CAAC;EAEtB,IAAMkE,iBAAiB,GAAG,IAAApD,kBAAW,EAAC,YAAM;IAC1C,IAAI5D,QAAQ,CAAC6D,OAAO,EAAE;MAAA,IAAAoD,kBAAA;MACpB,CAAAA,kBAAA,GAAAjH,QAAQ,CAAC6D,OAAO,cAAAoD,kBAAA,eAAhBA,kBAAA,CAAkB3B,MAAM,CAAC,CAAC;IAC5B;EACF,CAAC,EAAE,CAACtF,QAAQ,CAAC,CAAC;EAEd,OAAO;IACLN,KAAK,EAAE4C,YAAY;IACnBb,MAAM,EAAEkC,UAAU;IAClBuD,SAAS,EAAEnC,aAAa;IACxBtE,QAAQ,EAAEqF,YAAY;IACtBlF,OAAO,EAAEkG,WAAW;IACpBK,aAAa,EAAEH,iBAAiB;IAChCI,OAAO,EAAEL,WAAW;IACpBzD,OAAO;IACPR;EACF,CAAC;AACH,CAAC"}
|
|
@@ -69,6 +69,8 @@ var getNumberFromString = exports.getNumberFromString = function getNumberFromSt
|
|
|
69
69
|
* @param {boolean} [trimDecimals=true] - Whether to trim decimals to the specified number of decimal spaces.
|
|
70
70
|
* @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.
|
|
71
71
|
* @param {"long" | "short"} [format="long"] - The format type, either "long" for full numbers or "short" for shortened numbers with suffixes.
|
|
72
|
+
* @param {number} [shortenThreshold=1000] - The minimum numeric value at which the number should be shortened
|
|
73
|
+
* using suffixes. Numbers below this threshold will always be shown in long format.
|
|
72
74
|
*
|
|
73
75
|
* @returns {string} - The formatted number as a string with separators and potentially with decimals.
|
|
74
76
|
*
|
|
@@ -82,6 +84,7 @@ var formatNumber = exports.formatNumber = function formatNumber(n) {
|
|
|
82
84
|
var trimDecimals = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
|
|
83
85
|
var decimalSpaces = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 2;
|
|
84
86
|
var format = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : "long";
|
|
87
|
+
var shortenThreshold = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 1000;
|
|
85
88
|
var number = getNumberFromString(n, thousandSeparator, decimalSeperator);
|
|
86
89
|
if (isNaN(number)) {
|
|
87
90
|
return "";
|
|
@@ -90,7 +93,8 @@ var formatNumber = exports.formatNumber = function formatNumber(n) {
|
|
|
90
93
|
var absoluteNumber = Math.abs(number);
|
|
91
94
|
var suffixes = ["", "K", "M", "B", "T"];
|
|
92
95
|
var scale = 0;
|
|
93
|
-
|
|
96
|
+
var shouldShorten = absoluteNumber >= shortenThreshold && format === "short";
|
|
97
|
+
while (shouldShorten && scale < suffixes.length - 1 && absoluteNumber >= 1000) {
|
|
94
98
|
absoluteNumber /= 1000;
|
|
95
99
|
scale++;
|
|
96
100
|
}
|
|
@@ -144,7 +148,7 @@ var formatCurrency = exports.formatCurrency = function formatCurrency(n) {
|
|
|
144
148
|
var format = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : "long";
|
|
145
149
|
var currencyCode = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : "";
|
|
146
150
|
var currencyCodePosition = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : "right";
|
|
147
|
-
var formattedNum = formatNumber(n, thousandSeparator, decimalSeperator, trimDecimals, decimalSpaces, format);
|
|
151
|
+
var formattedNum = formatNumber(n, thousandSeparator, decimalSeperator, trimDecimals, decimalSpaces, format, 10000);
|
|
148
152
|
if (!currencyCode) {
|
|
149
153
|
return formattedNum;
|
|
150
154
|
}
|
|
@@ -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","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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"}
|
|
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","shortenThreshold","isNegative","absoluteNumber","abs","suffixes","scale","shouldShorten","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 * @param {number} [shortenThreshold=1000] - The minimum numeric value at which the number should be shortened\n * using suffixes. Numbers below this threshold will always be shown in long format.\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 shortenThreshold = 1000\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 const shouldShorten =\n absoluteNumber >= shortenThreshold && format === \"short\";\n\n while (\n shouldShorten &&\n scale < suffixes.length - 1 &&\n absoluteNumber >= 1000\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 10000\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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"}
|
|
@@ -224,14 +224,23 @@ describe("format currency with thousandseparator set to ',' and decimalSeparator
|
|
|
224
224
|
trimDecimals: false,
|
|
225
225
|
decimalSpaces: 2,
|
|
226
226
|
format: "long"
|
|
227
|
+
}, "1.579,50"], [{
|
|
228
|
+
value: "1579.50",
|
|
229
|
+
thousandSeparator: ".",
|
|
230
|
+
decimalSeparator: ",",
|
|
231
|
+
trimDecimals: false,
|
|
232
|
+
decimalSpaces: 2,
|
|
233
|
+
format: "short",
|
|
234
|
+
shortenThreshold: 10000
|
|
227
235
|
}, "1.579,50"]])("should format currency advanced", function (params, expected) {
|
|
228
236
|
var value = params.value,
|
|
229
237
|
thousandSeparator = params.thousandSeparator,
|
|
230
238
|
decimalSeparator = params.decimalSeparator,
|
|
231
239
|
trimDecimals = params.trimDecimals,
|
|
232
240
|
decimalSpaces = params.decimalSpaces,
|
|
233
|
-
format = params.format
|
|
234
|
-
|
|
241
|
+
format = params.format,
|
|
242
|
+
shortenThreshold = params.shortenThreshold;
|
|
243
|
+
expect((0, _currencyUtils.formatNumber)(value, thousandSeparator, decimalSeparator, trimDecimals, decimalSpaces, format, shortenThreshold)).toEqual(expected);
|
|
235
244
|
});
|
|
236
245
|
|
|
237
246
|
//fixedDecimalSpaces
|
|
@@ -413,7 +422,7 @@ describe("format currency with thousandseparator set to ',' and decimalSeparator
|
|
|
413
422
|
format: "short",
|
|
414
423
|
currencyCode: "JPY",
|
|
415
424
|
currencyCodePosition: "right"
|
|
416
|
-
}, "1.
|
|
425
|
+
}, "1,150.66 JPY"], [{
|
|
417
426
|
value: 1501000.155557,
|
|
418
427
|
thousandSeparator: ",",
|
|
419
428
|
decimalSeparator: ".",
|