@activecollab/components 2.0.16 → 2.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/cjs/components/EditableCurrency/EditableCurrency.js +37 -18
  2. package/dist/cjs/components/EditableCurrency/EditableCurrency.js.map +1 -1
  3. package/dist/cjs/components/Input/InputCurrency.js.map +1 -1
  4. package/dist/cjs/components/Input/InputNumber.js +35 -18
  5. package/dist/cjs/components/Input/InputNumber.js.map +1 -1
  6. package/dist/cjs/components/Input/index.js +22 -0
  7. package/dist/cjs/components/Input/index.js.map +1 -1
  8. package/dist/cjs/hooks/useInputNumber.js +151 -97
  9. package/dist/cjs/hooks/useInputNumber.js.map +1 -1
  10. package/dist/cjs/utils/currencyUtils.js +2 -2
  11. package/dist/cjs/utils/currencyUtils.js.map +1 -1
  12. package/dist/cjs/utils/currencyUtils.test.js +2 -2
  13. package/dist/cjs/utils/currencyUtils.test.js.map +1 -1
  14. package/dist/cjs/utils/index.js +3 -3
  15. package/dist/cjs/utils/index.js.map +1 -1
  16. package/dist/cjs/utils/validation.js +19 -1
  17. package/dist/cjs/utils/validation.js.map +1 -1
  18. package/dist/esm/components/EditableCurrency/EditableCurrency.d.ts +6 -2
  19. package/dist/esm/components/EditableCurrency/EditableCurrency.d.ts.map +1 -1
  20. package/dist/esm/components/EditableCurrency/EditableCurrency.js +38 -17
  21. package/dist/esm/components/EditableCurrency/EditableCurrency.js.map +1 -1
  22. package/dist/esm/components/Input/InputCurrency.d.ts +2 -3
  23. package/dist/esm/components/Input/InputCurrency.d.ts.map +1 -1
  24. package/dist/esm/components/Input/InputCurrency.js.map +1 -1
  25. package/dist/esm/components/Input/InputNumber.d.ts +4 -1
  26. package/dist/esm/components/Input/InputNumber.d.ts.map +1 -1
  27. package/dist/esm/components/Input/InputNumber.js +36 -17
  28. package/dist/esm/components/Input/InputNumber.js.map +1 -1
  29. package/dist/esm/components/Input/index.d.ts +2 -0
  30. package/dist/esm/components/Input/index.d.ts.map +1 -1
  31. package/dist/esm/components/Input/index.js +22 -0
  32. package/dist/esm/components/Input/index.js.map +1 -1
  33. package/dist/esm/hooks/useInputNumber.d.ts +25 -13
  34. package/dist/esm/hooks/useInputNumber.d.ts.map +1 -1
  35. package/dist/esm/hooks/useInputNumber.js +131 -90
  36. package/dist/esm/hooks/useInputNumber.js.map +1 -1
  37. package/dist/esm/utils/currencyUtils.d.ts +1 -1
  38. package/dist/esm/utils/currencyUtils.d.ts.map +1 -1
  39. package/dist/esm/utils/currencyUtils.js +3 -3
  40. package/dist/esm/utils/currencyUtils.js.map +1 -1
  41. package/dist/esm/utils/currencyUtils.test.js +2 -2
  42. package/dist/esm/utils/currencyUtils.test.js.map +1 -1
  43. package/dist/esm/utils/index.d.ts +1 -1
  44. package/dist/esm/utils/index.d.ts.map +1 -1
  45. package/dist/esm/utils/index.js +3 -3
  46. package/dist/esm/utils/index.js.map +1 -1
  47. package/dist/esm/utils/validation.d.ts +1 -0
  48. package/dist/esm/utils/validation.d.ts.map +1 -1
  49. package/dist/esm/utils/validation.js +20 -1
  50. package/dist/esm/utils/validation.js.map +1 -1
  51. package/dist/index.js +418 -244
  52. package/dist/index.js.map +1 -1
  53. package/dist/index.min.js +1 -1
  54. package/dist/index.min.js.map +1 -1
  55. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useInputNumber.js","names":["_react","require","_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","ref","_ref$decimalSeparator","decimalSeparator","_ref$thousandSeparato","thousandSeparator","disableAbbreviation","disableMacros","decimalLength","onValueChange","onKeyDown","onBlur","onFocus","step","startValue","formatCurrency","_useState","useState","_useState2","formattedValue","setFormatted","_useState3","_useState4","rootValue","setRootValue","_useState5","_useState6","focused","setFocused","handleInputBlur","current","blur","handleSelect","select","handleChange","inputValue","target","isValidInput","startsWith","numericInput","replace","_","num","unit","parseFloat","currencyMultiplier","toLowerCase","regexString","RegExp","handleKeyDown","key","_step","String","preventDefault","updateValue","metaKey","ctrlKey","handleBlur","handleFocus","type","decimalPart","increasedValue","nonDecimalPart","replaceAll","includes","indexOf","toFixed","joinedValue","numberWithSeparator"],"sources":["../../../src/hooks/useInputNumber.tsx"],"sourcesContent":["import {\n useState,\n ChangeEventHandler,\n KeyboardEventHandler,\n FocusEventHandler,\n MutableRefObject,\n} from \"react\";\n\nimport type { InputProps } from \"../components\";\nimport {\n currencyMultiplier,\n formatCurrency,\n numberWithSeparator,\n} from \"../utils/currencyUtils\";\n\nexport type Separators = \".\" | \",\";\n\n// https://www.youtube.com/watch?v=2AilA-M6N5U\n// @TODO: Pitati foo za testove.\nexport interface InputNumberProps extends InputProps {\n decimalLength?: number;\n decimalSeparator?: Separators;\n disableAbbreviation?: boolean;\n disableMacros?: boolean;\n thousandSeparator?: Separators;\n onValueChange?: (value: string) => void;\n}\n\nexport const useInputNumber = (\n {\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n disableAbbreviation,\n disableMacros,\n decimalLength,\n value,\n onValueChange,\n onKeyDown,\n onBlur,\n onFocus,\n step,\n }: InputNumberProps,\n ref: MutableRefObject<HTMLInputElement | null>\n) => {\n const startValue = disableAbbreviation\n ? value\n : formatCurrency(value as string, thousandSeparator);\n const [formattedValue, setFormatted] = useState(startValue);\n const [rootValue, setRootValue] = useState(value);\n const [focused, setFocused] = useState<boolean>(false);\n\n const handleInputBlur = () => {\n if (ref && ref.current) {\n ref.current.blur();\n }\n };\n\n const handleSelect = () => {\n if (ref && ref.current) {\n ref.current.select();\n }\n };\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (e) => {\n const inputValue = e.target.value;\n let isValidInput = false;\n\n if (inputValue.startsWith(\"00\")) {\n return;\n }\n\n const numericInput = disableMacros\n ? inputValue\n : inputValue.replace(/([0-9.]+)([kmbtKMBT])/, (_, num, unit) => {\n return (\n parseFloat(num) * currencyMultiplier[unit.toLowerCase()]\n ).toString();\n });\n\n const regexString = `^(-?\\\\d{0,9}(?:[${thousandSeparator}]?\\\\d{0,3})*(?:\\\\${decimalSeparator}\\\\d{0,${decimalLength}})?)?$`;\n\n if (thousandSeparator === \",\") {\n isValidInput = new RegExp(regexString).test(numericInput);\n }\n\n if (thousandSeparator === \".\") {\n isValidInput = new RegExp(regexString).test(numericInput);\n }\n\n if (!isValidInput) {\n return;\n }\n\n setFormatted(numericInput);\n\n onValueChange && onValueChange(numericInput);\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLInputElement> = (e) => {\n const key = e.key;\n const _step = parseFloat(String(step));\n\n if (key === \"Escape\") {\n handleInputBlur();\n }\n\n if (key === \"ArrowUp\") {\n e.preventDefault();\n\n updateValue(\"increment\", _step);\n }\n\n if (key === \"ArrowDown\") {\n e.preventDefault();\n\n updateValue(\"decrement\", _step);\n }\n\n if ((e.metaKey || e.ctrlKey) && e.key === \"a\") {\n handleSelect();\n }\n\n if (decimalLength === 0 && e.key === decimalSeparator) {\n e.preventDefault();\n }\n\n onKeyDown && onKeyDown(e);\n };\n\n const handleBlur: FocusEventHandler<HTMLInputElement> = (e) => {\n if (disableAbbreviation) {\n setFormatted(formattedValue);\n } else {\n setFormatted(formatCurrency(formattedValue as string, thousandSeparator));\n }\n\n setRootValue(formattedValue);\n setFocused(false);\n\n onBlur && onBlur(e);\n };\n\n const handleFocus: FocusEventHandler<HTMLInputElement> = (e) => {\n setFormatted(rootValue);\n setFocused(true);\n\n onFocus && onFocus(e);\n };\n\n const updateValue = (type: \"increment\" | \"decrement\", step: number) => {\n const value = String(formattedValue);\n\n let decimalPart = \"\";\n let increasedValue = 0;\n let nonDecimalPart = value.replaceAll(thousandSeparator, \"\");\n\n if (!value) {\n return;\n }\n\n if (value.includes(decimalSeparator)) {\n nonDecimalPart = value\n .slice(0, value.indexOf(decimalSeparator))\n .replaceAll(thousandSeparator, \"\");\n }\n\n if (value.includes(decimalSeparator)) {\n decimalPart = value.slice(value.indexOf(decimalSeparator));\n }\n\n if (type === \"increment\") {\n increasedValue = parseFloat(nonDecimalPart) + step;\n } else {\n increasedValue = parseFloat(nonDecimalPart) - step;\n }\n\n if (value.includes(decimalSeparator)) {\n increasedValue = parseFloat(increasedValue.toFixed(decimalLength));\n }\n\n const joinedValue = numberWithSeparator(\n increasedValue,\n thousandSeparator,\n value.includes(thousandSeparator)\n );\n\n setFormatted(decimalPart ? joinedValue + decimalPart : joinedValue);\n };\n\n return {\n focused,\n formattedValue,\n rootValue,\n handleChange,\n handleKeyDown,\n handleBlur,\n handleFocus,\n onValueChange,\n } as const;\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","onChange","onSave","onEnterKeyPress","onClick","onCancel","allowEmptyValue","_ref$step","step","limit","_ref$validation","validation","validateNumberInput","_useState","useState","formatNumber","_useState2","currentValue","setCurrentValue","_useState3","_useState4","prevValue","setPrevValue","_useState5","_useState6","unformattedValue","setUnformattedValue","_useState7","_useState8","focused","setFocused","escapeRef","useRef","handleBlur","useCallback","current","target","trim","_value","updateValue","type","String","decimalPart","increasedValue","nonDecimalPart","replaceAll","includes","indexOf","parseFloat","toFixed","joinedValue","numberWithSeparator","handleKeyDown","key","blur","preventDefault","metaKey","ctrlKey","_inputRef$current","select","input","start","selectionStart","end","selectionEnd","newValue","substring","Boolean","handleChange","inputValue","numericInput","replace","_","num","unit","currencyMultiplier","toLowerCase","handleClick","handleFocus","handleDoubleClick","_inputRef$current2","inputProps","useMemo","onBlur","onKeyDown","onDoubleClick","onFocus"],"sources":["../../../src/hooks/useInputNumber.tsx"],"sourcesContent":["import {\n useState,\n MouseEvent,\n useRef,\n useCallback,\n RefObject,\n useMemo,\n} from \"react\";\n\nimport { validateNumberInput } from \"../utils\";\nimport {\n currencyMultiplier,\n formatNumber,\n numberWithSeparator,\n} from \"../utils/currencyUtils\";\n\nexport type Separators = \".\" | \",\";\n\nexport interface IInputNumber {\n decimalLength?: number;\n decimalSeparator?: Separators;\n disableAbbreviation?: boolean;\n disableMacros?: boolean;\n thousandSeparator?: Separators;\n onSave?: (e: Event) => void;\n value?: string | number;\n step?: number;\n limit?: number;\n onEnterKeyPress?: (val: string) => void;\n onChange?: (val: string) => void;\n onClick?: (event: MouseEvent<HTMLInputElement>) => void;\n allowEmptyValue?: boolean;\n onCancel?: (e: Event) => void;\n validation?: (\n value: string,\n disableMacros: boolean,\n decimalSeparator: string,\n decimalLength: number,\n limit?: number\n ) => boolean;\n}\n\nexport const useInputNumber = (\n {\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n disableAbbreviation,\n disableMacros,\n decimalLength,\n value,\n onChange,\n onSave,\n onEnterKeyPress,\n onClick,\n onCancel,\n allowEmptyValue,\n step = 1,\n limit,\n validation = validateNumberInput,\n }: IInputNumber,\n inputRef: RefObject<HTMLInputElement | null>\n) => {\n const [currentValue, setCurrentValue] = useState(() =>\n disableAbbreviation\n ? value\n : formatNumber(value as string, thousandSeparator)\n );\n const [prevValue, setPrevValue] = useState(() =>\n disableAbbreviation\n ? value\n : formatNumber(value as string, thousandSeparator)\n );\n const [unformattedValue, setUnformattedValue] = useState(() => value);\n\n const [focused, setFocused] = useState(false);\n\n const escapeRef = useRef(false);\n\n const handleBlur = useCallback(\n (e) => {\n if (escapeRef.current) {\n setCurrentValue(prevValue);\n setUnformattedValue(prevValue);\n } else {\n if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {\n const _value = disableAbbreviation\n ? currentValue\n : formatNumber(currentValue as string, thousandSeparator);\n setPrevValue(_value);\n setUnformattedValue(currentValue);\n setCurrentValue(_value);\n typeof onSave === \"function\" && onSave(e);\n } else {\n if (!allowEmptyValue) {\n setCurrentValue(prevValue);\n setUnformattedValue(prevValue);\n typeof onCancel === \"function\" && onCancel(e);\n } else {\n if (typeof onSave === \"function\" && prevValue !== e.target.value) {\n onSave(e);\n } else {\n typeof onCancel === \"function\" && onCancel(e);\n }\n }\n }\n }\n setFocused(false);\n },\n [\n allowEmptyValue,\n disableAbbreviation,\n onCancel,\n onSave,\n prevValue,\n thousandSeparator,\n currentValue,\n ]\n );\n\n const updateValue = useCallback(\n (type: \"increment\" | \"decrement\") => {\n const value = String(unformattedValue);\n\n let decimalPart = \"\";\n let increasedValue = 0;\n let nonDecimalPart = value.replaceAll(thousandSeparator, \"\");\n\n if (!value) {\n return;\n }\n\n if (value.includes(decimalSeparator)) {\n nonDecimalPart = value\n .slice(0, value.indexOf(decimalSeparator))\n .replaceAll(thousandSeparator, \"\");\n }\n\n if (value.includes(decimalSeparator)) {\n decimalPart = value.slice(value.indexOf(decimalSeparator));\n }\n\n if (type === \"increment\") {\n increasedValue = parseFloat(nonDecimalPart) + step;\n } else {\n increasedValue = parseFloat(nonDecimalPart) - step;\n }\n\n if (value.includes(decimalSeparator)) {\n increasedValue = parseFloat(increasedValue.toFixed(decimalLength));\n }\n\n const joinedValue = numberWithSeparator(\n increasedValue,\n thousandSeparator,\n value.includes(thousandSeparator)\n );\n\n setUnformattedValue(\n decimalPart ? joinedValue + decimalPart : joinedValue\n );\n setCurrentValue(decimalPart ? joinedValue + decimalPart : joinedValue);\n },\n [decimalLength, decimalSeparator, step, thousandSeparator, unformattedValue]\n );\n\n const handleKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.target.blur();\n if (typeof onEnterKeyPress === \"function\")\n onEnterKeyPress(e.target.value);\n }\n if (e.key === \"ArrowLeft\") {\n return;\n }\n if (e.key === \"ArrowRight\") {\n return;\n }\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n updateValue(\"increment\");\n }\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n updateValue(\"decrement\");\n }\n if (e.key === \"Escape\") {\n escapeRef.current = true;\n e.target.blur();\n typeof onCancel === \"function\" && onCancel(e);\n escapeRef.current = false;\n }\n if (e.key === \"Backspace\") {\n return;\n }\n if ((e.metaKey || e.ctrlKey) && e.key === \"a\") {\n inputRef.current?.select();\n return;\n }\n if (e.key === \"Tab\") {\n return;\n }\n if ((e.metaKey || e.ctrlKey) && e.key === \"v\") {\n e.preventDefault();\n return;\n }\n const input = e.target;\n const currentValue = input.value;\n const start = input.selectionStart;\n const end = input.selectionEnd;\n const newValue =\n currentValue.substring(0, start) + e.key + currentValue.substring(end);\n if (\n !validation(\n newValue,\n Boolean(disableMacros),\n decimalSeparator,\n decimalLength ?? 0,\n limit\n )\n ) {\n e.preventDefault();\n return;\n }\n },\n [\n decimalLength,\n decimalSeparator,\n disableMacros,\n inputRef,\n limit,\n onCancel,\n onEnterKeyPress,\n updateValue,\n validation,\n ]\n );\n\n const handleChange = useCallback(\n (e) => {\n const inputValue = e.target.value;\n const numericInput = disableMacros\n ? inputValue\n : inputValue.replace(/([0-9.]+)([kmbtKMBT])/, (_, num, unit) => {\n return (\n parseFloat(num) * currencyMultiplier[unit.toLowerCase()]\n ).toString();\n });\n setCurrentValue(numericInput);\n setUnformattedValue(numericInput);\n if (onChange) onChange(numericInput);\n },\n [disableMacros, onChange]\n );\n\n const handleClick = useCallback(\n (e) => {\n if (typeof onClick === \"function\") {\n onClick(e);\n }\n },\n [onClick]\n );\n\n const handleFocus = useCallback(() => {\n setCurrentValue(unformattedValue);\n setFocused(true);\n }, [unformattedValue]);\n\n const handleDoubleClick = useCallback(() => {\n if (inputRef.current) {\n inputRef.current?.select();\n }\n }, [inputRef]);\n\n const inputProps = useMemo(() => {\n return {\n value: currentValue,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onChange: handleChange,\n onClick: handleClick,\n onDoubleClick: handleDoubleClick,\n onFocus: handleFocus,\n focused,\n };\n }, [\n currentValue,\n handleBlur,\n handleKeyDown,\n handleChange,\n handleClick,\n handleDoubleClick,\n handleFocus,\n focused,\n ]);\n\n return {\n inputProps,\n setCurrentValue,\n setPrevValue,\n };\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AASA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAIgC,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;AA4BzB,IAAMuC,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAAAE,IAAA,EAkBzBC,QAA4C,EACzC;EAAA,IAAAC,qBAAA,GAAAF,IAAA,CAjBDG,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;IACbb,KAAK,GAAAK,IAAA,CAALL,KAAK;IACLc,QAAQ,GAAAT,IAAA,CAARS,QAAQ;IACRC,MAAM,GAAAV,IAAA,CAANU,MAAM;IACNC,eAAe,GAAAX,IAAA,CAAfW,eAAe;IACfC,OAAO,GAAAZ,IAAA,CAAPY,OAAO;IACPC,QAAQ,GAAAb,IAAA,CAARa,QAAQ;IACRC,eAAe,GAAAd,IAAA,CAAfc,eAAe;IAAAC,SAAA,GAAAf,IAAA,CACfgB,IAAI;IAAJA,IAAI,GAAAD,SAAA,cAAG,CAAC,GAAAA,SAAA;IACRE,KAAK,GAAAjB,IAAA,CAALiB,KAAK;IAAAC,eAAA,GAAAlB,IAAA,CACLmB,UAAU;IAAVA,UAAU,GAAAD,eAAA,cAAGE,0BAAmB,GAAAF,eAAA;EAIlC,IAAAG,SAAA,GAAwC,IAAAC,eAAQ,EAAC;MAAA,OAC/ChB,mBAAmB,GACfX,KAAK,GACL,IAAA4B,2BAAY,EAAC5B,KAAK,EAAYU,iBAAiB,CAAC;IAAA,CACtD,CAAC;IAAAmB,UAAA,GAAAlE,cAAA,CAAA+D,SAAA;IAJMI,YAAY,GAAAD,UAAA;IAAEE,eAAe,GAAAF,UAAA;EAKpC,IAAAG,UAAA,GAAkC,IAAAL,eAAQ,EAAC;MAAA,OACzChB,mBAAmB,GACfX,KAAK,GACL,IAAA4B,2BAAY,EAAC5B,KAAK,EAAYU,iBAAiB,CAAC;IAAA,CACtD,CAAC;IAAAuB,UAAA,GAAAtE,cAAA,CAAAqE,UAAA;IAJME,SAAS,GAAAD,UAAA;IAAEE,YAAY,GAAAF,UAAA;EAK9B,IAAAG,UAAA,GAAgD,IAAAT,eAAQ,EAAC;MAAA,OAAM3B,KAAK;IAAA,EAAC;IAAAqC,UAAA,GAAA1E,cAAA,CAAAyE,UAAA;IAA9DE,gBAAgB,GAAAD,UAAA;IAAEE,mBAAmB,GAAAF,UAAA;EAE5C,IAAAG,UAAA,GAA8B,IAAAb,eAAQ,EAAC,KAAK,CAAC;IAAAc,UAAA,GAAA9E,cAAA,CAAA6E,UAAA;IAAtCE,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;EAE1B,IAAMG,SAAS,GAAG,IAAAC,aAAM,EAAC,KAAK,CAAC;EAE/B,IAAMC,UAAU,GAAG,IAAAC,kBAAW,EAC5B,UAACtD,CAAC,EAAK;IACL,IAAImD,SAAS,CAACI,OAAO,EAAE;MACrBjB,eAAe,CAACG,SAAS,CAAC;MAC1BK,mBAAmB,CAACL,SAAS,CAAC;IAChC,CAAC,MAAM;MACL,IAAIzC,CAAC,CAACwD,MAAM,CAACjD,KAAK,CAACkD,IAAI,CAAC,CAAC,CAAChE,MAAM,GAAG,CAAC,IAAIgD,SAAS,KAAKzC,CAAC,CAACwD,MAAM,CAACjD,KAAK,EAAE;QACpE,IAAMmD,MAAM,GAAGxC,mBAAmB,GAC9BmB,YAAY,GACZ,IAAAF,2BAAY,EAACE,YAAY,EAAYpB,iBAAiB,CAAC;QAC3DyB,YAAY,CAACgB,MAAM,CAAC;QACpBZ,mBAAmB,CAACT,YAAY,CAAC;QACjCC,eAAe,CAACoB,MAAM,CAAC;QACvB,OAAOpC,MAAM,KAAK,UAAU,IAAIA,MAAM,CAACtB,CAAC,CAAC;MAC3C,CAAC,MAAM;QACL,IAAI,CAAC0B,eAAe,EAAE;UACpBY,eAAe,CAACG,SAAS,CAAC;UAC1BK,mBAAmB,CAACL,SAAS,CAAC;UAC9B,OAAOhB,QAAQ,KAAK,UAAU,IAAIA,QAAQ,CAACzB,CAAC,CAAC;QAC/C,CAAC,MAAM;UACL,IAAI,OAAOsB,MAAM,KAAK,UAAU,IAAImB,SAAS,KAAKzC,CAAC,CAACwD,MAAM,CAACjD,KAAK,EAAE;YAChEe,MAAM,CAACtB,CAAC,CAAC;UACX,CAAC,MAAM;YACL,OAAOyB,QAAQ,KAAK,UAAU,IAAIA,QAAQ,CAACzB,CAAC,CAAC;UAC/C;QACF;MACF;IACF;IACAkD,UAAU,CAAC,KAAK,CAAC;EACnB,CAAC,EACD,CACExB,eAAe,EACfR,mBAAmB,EACnBO,QAAQ,EACRH,MAAM,EACNmB,SAAS,EACTxB,iBAAiB,EACjBoB,YAAY,CAEhB,CAAC;EAED,IAAMsB,WAAW,GAAG,IAAAL,kBAAW,EAC7B,UAACM,IAA+B,EAAK;IACnC,IAAMrD,KAAK,GAAGsD,MAAM,CAAChB,gBAAgB,CAAC;IAEtC,IAAIiB,WAAW,GAAG,EAAE;IACpB,IAAIC,cAAc,GAAG,CAAC;IACtB,IAAIC,cAAc,GAAGzD,KAAK,CAAC0D,UAAU,CAAChD,iBAAiB,EAAE,EAAE,CAAC;IAE5D,IAAI,CAACV,KAAK,EAAE;MACV;IACF;IAEA,IAAIA,KAAK,CAAC2D,QAAQ,CAACnD,gBAAgB,CAAC,EAAE;MACpCiD,cAAc,GAAGzD,KAAK,CACnBrB,KAAK,CAAC,CAAC,EAAEqB,KAAK,CAAC4D,OAAO,CAACpD,gBAAgB,CAAC,CAAC,CACzCkD,UAAU,CAAChD,iBAAiB,EAAE,EAAE,CAAC;IACtC;IAEA,IAAIV,KAAK,CAAC2D,QAAQ,CAACnD,gBAAgB,CAAC,EAAE;MACpC+C,WAAW,GAAGvD,KAAK,CAACrB,KAAK,CAACqB,KAAK,CAAC4D,OAAO,CAACpD,gBAAgB,CAAC,CAAC;IAC5D;IAEA,IAAI6C,IAAI,KAAK,WAAW,EAAE;MACxBG,cAAc,GAAGK,UAAU,CAACJ,cAAc,CAAC,GAAGpC,IAAI;IACpD,CAAC,MAAM;MACLmC,cAAc,GAAGK,UAAU,CAACJ,cAAc,CAAC,GAAGpC,IAAI;IACpD;IAEA,IAAIrB,KAAK,CAAC2D,QAAQ,CAACnD,gBAAgB,CAAC,EAAE;MACpCgD,cAAc,GAAGK,UAAU,CAACL,cAAc,CAACM,OAAO,CAACjD,aAAa,CAAC,CAAC;IACpE;IAEA,IAAMkD,WAAW,GAAG,IAAAC,kCAAmB,EACrCR,cAAc,EACd9C,iBAAiB,EACjBV,KAAK,CAAC2D,QAAQ,CAACjD,iBAAiB,CAClC,CAAC;IAED6B,mBAAmB,CACjBgB,WAAW,GAAGQ,WAAW,GAAGR,WAAW,GAAGQ,WAC5C,CAAC;IACDhC,eAAe,CAACwB,WAAW,GAAGQ,WAAW,GAAGR,WAAW,GAAGQ,WAAW,CAAC;EACxE,CAAC,EACD,CAAClD,aAAa,EAAEL,gBAAgB,EAAEa,IAAI,EAAEX,iBAAiB,EAAE4B,gBAAgB,CAC7E,CAAC;EAED,IAAM2B,aAAa,GAAG,IAAAlB,kBAAW,EAC/B,UAACtD,CAAC,EAAK;IACL,IAAIA,CAAC,CAACyE,GAAG,KAAK,OAAO,EAAE;MACrBzE,CAAC,CAACwD,MAAM,CAACkB,IAAI,CAAC,CAAC;MACf,IAAI,OAAOnD,eAAe,KAAK,UAAU,EACvCA,eAAe,CAACvB,CAAC,CAACwD,MAAM,CAACjD,KAAK,CAAC;IACnC;IACA,IAAIP,CAAC,CAACyE,GAAG,KAAK,WAAW,EAAE;MACzB;IACF;IACA,IAAIzE,CAAC,CAACyE,GAAG,KAAK,YAAY,EAAE;MAC1B;IACF;IACA,IAAIzE,CAAC,CAACyE,GAAG,KAAK,SAAS,EAAE;MACvBzE,CAAC,CAAC2E,cAAc,CAAC,CAAC;MAClBhB,WAAW,CAAC,WAAW,CAAC;IAC1B;IACA,IAAI3D,CAAC,CAACyE,GAAG,KAAK,WAAW,EAAE;MACzBzE,CAAC,CAAC2E,cAAc,CAAC,CAAC;MAClBhB,WAAW,CAAC,WAAW,CAAC;IAC1B;IACA,IAAI3D,CAAC,CAACyE,GAAG,KAAK,QAAQ,EAAE;MACtBtB,SAAS,CAACI,OAAO,GAAG,IAAI;MACxBvD,CAAC,CAACwD,MAAM,CAACkB,IAAI,CAAC,CAAC;MACf,OAAOjD,QAAQ,KAAK,UAAU,IAAIA,QAAQ,CAACzB,CAAC,CAAC;MAC7CmD,SAAS,CAACI,OAAO,GAAG,KAAK;IAC3B;IACA,IAAIvD,CAAC,CAACyE,GAAG,KAAK,WAAW,EAAE;MACzB;IACF;IACA,IAAI,CAACzE,CAAC,CAAC4E,OAAO,IAAI5E,CAAC,CAAC6E,OAAO,KAAK7E,CAAC,CAACyE,GAAG,KAAK,GAAG,EAAE;MAAA,IAAAK,iBAAA;MAC7C,CAAAA,iBAAA,GAAAjE,QAAQ,CAAC0C,OAAO,cAAAuB,iBAAA,eAAhBA,iBAAA,CAAkBC,MAAM,CAAC,CAAC;MAC1B;IACF;IACA,IAAI/E,CAAC,CAACyE,GAAG,KAAK,KAAK,EAAE;MACnB;IACF;IACA,IAAI,CAACzE,CAAC,CAAC4E,OAAO,IAAI5E,CAAC,CAAC6E,OAAO,KAAK7E,CAAC,CAACyE,GAAG,KAAK,GAAG,EAAE;MAC7CzE,CAAC,CAAC2E,cAAc,CAAC,CAAC;MAClB;IACF;IACA,IAAMK,KAAK,GAAGhF,CAAC,CAACwD,MAAM;IACtB,IAAMnB,YAAY,GAAG2C,KAAK,CAACzE,KAAK;IAChC,IAAM0E,KAAK,GAAGD,KAAK,CAACE,cAAc;IAClC,IAAMC,GAAG,GAAGH,KAAK,CAACI,YAAY;IAC9B,IAAMC,QAAQ,GACZhD,YAAY,CAACiD,SAAS,CAAC,CAAC,EAAEL,KAAK,CAAC,GAAGjF,CAAC,CAACyE,GAAG,GAAGpC,YAAY,CAACiD,SAAS,CAACH,GAAG,CAAC;IACxE,IACE,CAACpD,UAAU,CACTsD,QAAQ,EACRE,OAAO,CAACpE,aAAa,CAAC,EACtBJ,gBAAgB,EAChBK,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,CAAC,EAClBS,KACF,CAAC,EACD;MACA7B,CAAC,CAAC2E,cAAc,CAAC,CAAC;MAClB;IACF;EACF,CAAC,EACD,CACEvD,aAAa,EACbL,gBAAgB,EAChBI,aAAa,EACbN,QAAQ,EACRgB,KAAK,EACLJ,QAAQ,EACRF,eAAe,EACfoC,WAAW,EACX5B,UAAU,CAEd,CAAC;EAED,IAAMyD,YAAY,GAAG,IAAAlC,kBAAW,EAC9B,UAACtD,CAAC,EAAK;IACL,IAAMyF,UAAU,GAAGzF,CAAC,CAACwD,MAAM,CAACjD,KAAK;IACjC,IAAMmF,YAAY,GAAGvE,aAAa,GAC9BsE,UAAU,GACVA,UAAU,CAACE,OAAO,CAAC,uBAAuB,EAAE,UAACC,CAAC,EAAEC,GAAG,EAAEC,IAAI,EAAK;MAC5D,OAAO,CACL1B,UAAU,CAACyB,GAAG,CAAC,GAAGE,iCAAkB,CAACD,IAAI,CAACE,WAAW,CAAC,CAAC,CAAC,EACxDhH,QAAQ,CAAC,CAAC;IACd,CAAC,CAAC;IACNsD,eAAe,CAACoD,YAAY,CAAC;IAC7B5C,mBAAmB,CAAC4C,YAAY,CAAC;IACjC,IAAIrE,QAAQ,EAAEA,QAAQ,CAACqE,YAAY,CAAC;EACtC,CAAC,EACD,CAACvE,aAAa,EAAEE,QAAQ,CAC1B,CAAC;EAED,IAAM4E,WAAW,GAAG,IAAA3C,kBAAW,EAC7B,UAACtD,CAAC,EAAK;IACL,IAAI,OAAOwB,OAAO,KAAK,UAAU,EAAE;MACjCA,OAAO,CAACxB,CAAC,CAAC;IACZ;EACF,CAAC,EACD,CAACwB,OAAO,CACV,CAAC;EAED,IAAM0E,WAAW,GAAG,IAAA5C,kBAAW,EAAC,YAAM;IACpChB,eAAe,CAACO,gBAAgB,CAAC;IACjCK,UAAU,CAAC,IAAI,CAAC;EAClB,CAAC,EAAE,CAACL,gBAAgB,CAAC,CAAC;EAEtB,IAAMsD,iBAAiB,GAAG,IAAA7C,kBAAW,EAAC,YAAM;IAC1C,IAAIzC,QAAQ,CAAC0C,OAAO,EAAE;MAAA,IAAA6C,kBAAA;MACpB,CAAAA,kBAAA,GAAAvF,QAAQ,CAAC0C,OAAO,cAAA6C,kBAAA,eAAhBA,kBAAA,CAAkBrB,MAAM,CAAC,CAAC;IAC5B;EACF,CAAC,EAAE,CAAClE,QAAQ,CAAC,CAAC;EAEd,IAAMwF,UAAU,GAAG,IAAAC,cAAO,EAAC,YAAM;IAC/B,OAAO;MACL/F,KAAK,EAAE8B,YAAY;MACnBkE,MAAM,EAAElD,UAAU;MAClBmD,SAAS,EAAEhC,aAAa;MACxBnD,QAAQ,EAAEmE,YAAY;MACtBhE,OAAO,EAAEyE,WAAW;MACpBQ,aAAa,EAAEN,iBAAiB;MAChCO,OAAO,EAAER,WAAW;MACpBjD;IACF,CAAC;EACH,CAAC,EAAE,CACDZ,YAAY,EACZgB,UAAU,EACVmB,aAAa,EACbgB,YAAY,EACZS,WAAW,EACXE,iBAAiB,EACjBD,WAAW,EACXjD,OAAO,CACR,CAAC;EAEF,OAAO;IACLoD,UAAU;IACV/D,eAAe;IACfI;EACF,CAAC;AACH,CAAC"}
@@ -3,14 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.numberWithSeparator = exports.formatCurrency = exports.currencyMultiplier = void 0;
6
+ exports.numberWithSeparator = exports.formatNumber = exports.currencyMultiplier = void 0;
7
7
  var currencyMultiplier = exports.currencyMultiplier = {
8
8
  k: 1000,
9
9
  m: 1000000,
10
10
  b: 1000000000,
11
11
  t: 1000000000000
12
12
  };
13
- var formatCurrency = exports.formatCurrency = function formatCurrency(n) {
13
+ var formatNumber = exports.formatNumber = function formatNumber(n) {
14
14
  var thousandSeparator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ",";
15
15
  var number = parseFloat(String(n).replaceAll(thousandSeparator, ""));
16
16
  if (isNaN(number)) {
@@ -1 +1 @@
1
- {"version":3,"file":"currencyUtils.js","names":["currencyMultiplier","exports","k","m","b","t","formatCurrency","n","thousandSeparator","arguments","length","undefined","number","parseFloat","String","replaceAll","isNaN","isNegative","absoluteNumber","Math","abs","suffixes","scale","formattedNum","toFixed","result","endsWith","slice","numberWithSeparator","x","format","parts","toString","split","replace","join"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["import { Separators } from \"../hooks\";\n\nexport 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 formatCurrency = (n: string, thousandSeparator = \",\") => {\n const number = parseFloat(String(n).replaceAll(thousandSeparator, \"\"));\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 (absoluteNumber >= 1000 && scale < suffixes.length - 1) {\n absoluteNumber /= 1000;\n scale++;\n }\n\n const formattedNum =\n scale === 0 ? absoluteNumber.toFixed(0) : absoluteNumber.toFixed(1);\n const result = formattedNum.endsWith(\".0\")\n ? formattedNum.slice(0, -2)\n : formattedNum;\n\n return isNegative\n ? `-${result}${suffixes[scale]}`\n : `${result}${suffixes[scale]}`;\n};\n\nexport const numberWithSeparator = (\n x: number | string,\n thousandSeparator: Separators,\n format = true\n) => {\n if (!format) {\n return x;\n }\n\n const parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n return parts.join(\".\");\n};\n"],"mappings":";;;;;;AAEO,IAAMA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG;EAChCE,CAAC,EAAE,IAAK;EACRC,CAAC,EAAE,OAAS;EACZC,CAAC,EAAE,UAAa;EAChBC,CAAC,EAAE;AACL,CAAC;AAEM,IAAMC,cAAc,GAAAL,OAAA,CAAAK,cAAA,GAAG,SAAjBA,cAAcA,CAAIC,CAAS,EAA8B;EAAA,IAA5BC,iBAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EAC/D,IAAMG,MAAM,GAAGC,UAAU,CAACC,MAAM,CAACP,CAAC,CAAC,CAACQ,UAAU,CAACP,iBAAiB,EAAE,EAAE,CAAC,CAAC;EAEtE,IAAIQ,KAAK,CAACJ,MAAM,CAAC,EAAE;IACjB,OAAO,EAAE;EACX;EAEA,IAAMK,UAAU,GAAGL,MAAM,GAAG,CAAC;EAC7B,IAAIM,cAAc,GAAGC,IAAI,CAACC,GAAG,CAACR,MAAM,CAAC;EAErC,IAAMS,QAAQ,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACzC,IAAIC,KAAK,GAAG,CAAC;EAEb,OAAOJ,cAAc,IAAI,IAAI,IAAII,KAAK,GAAGD,QAAQ,CAACX,MAAM,GAAG,CAAC,EAAE;IAC5DQ,cAAc,IAAI,IAAI;IACtBI,KAAK,EAAE;EACT;EAEA,IAAMC,YAAY,GAChBD,KAAK,KAAK,CAAC,GAAGJ,cAAc,CAACM,OAAO,CAAC,CAAC,CAAC,GAAGN,cAAc,CAACM,OAAO,CAAC,CAAC,CAAC;EACrE,IAAMC,MAAM,GAAGF,YAAY,CAACG,QAAQ,CAAC,IAAI,CAAC,GACtCH,YAAY,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACzBJ,YAAY;EAEhB,OAAON,UAAU,GACZ,IAAGQ,MAAO,GAAEJ,QAAQ,CAACC,KAAK,CAAE,EAAC,GAC7B,GAAEG,MAAO,GAAEJ,QAAQ,CAACC,KAAK,CAAE,EAAC;AACnC,CAAC;AAEM,IAAMM,mBAAmB,GAAA3B,OAAA,CAAA2B,mBAAA,GAAG,SAAtBA,mBAAmBA,CAC9BC,CAAkB,EAClBrB,iBAA6B,EAE1B;EAAA,IADHsB,MAAM,GAAArB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAEb,IAAI,CAACqB,MAAM,EAAE;IACX,OAAOD,CAAC;EACV;EAEA,IAAME,KAAK,GAAGF,CAAC,CAACG,QAAQ,CAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC;EACrCF,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,CAACG,OAAO,CAAC,uBAAuB,EAAE1B,iBAAiB,CAAC;EAEvE,OAAOuB,KAAK,CAACI,IAAI,CAAC,GAAG,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"currencyUtils.js","names":["currencyMultiplier","exports","k","m","b","t","formatNumber","n","thousandSeparator","arguments","length","undefined","number","parseFloat","String","replaceAll","isNaN","isNegative","absoluteNumber","Math","abs","suffixes","scale","formattedNum","toFixed","result","endsWith","slice","numberWithSeparator","x","format","parts","toString","split","replace","join"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["import { Separators } from \"../hooks\";\n\nexport 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 formatNumber = (n: string, thousandSeparator = \",\") => {\n const number = parseFloat(String(n).replaceAll(thousandSeparator, \"\"));\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 (absoluteNumber >= 1000 && scale < suffixes.length - 1) {\n absoluteNumber /= 1000;\n scale++;\n }\n\n const formattedNum =\n scale === 0 ? absoluteNumber.toFixed(0) : absoluteNumber.toFixed(1);\n const result = formattedNum.endsWith(\".0\")\n ? formattedNum.slice(0, -2)\n : formattedNum;\n\n return isNegative\n ? `-${result}${suffixes[scale]}`\n : `${result}${suffixes[scale]}`;\n};\n\nexport const numberWithSeparator = (\n x: number | string,\n thousandSeparator: Separators,\n format = true\n) => {\n if (!format) {\n return x;\n }\n\n const parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n return parts.join(\".\");\n};\n"],"mappings":";;;;;;AAEO,IAAMA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG;EAChCE,CAAC,EAAE,IAAK;EACRC,CAAC,EAAE,OAAS;EACZC,CAAC,EAAE,UAAa;EAChBC,CAAC,EAAE;AACL,CAAC;AAEM,IAAMC,YAAY,GAAAL,OAAA,CAAAK,YAAA,GAAG,SAAfA,YAAYA,CAAIC,CAAS,EAA8B;EAAA,IAA5BC,iBAAiB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EAC7D,IAAMG,MAAM,GAAGC,UAAU,CAACC,MAAM,CAACP,CAAC,CAAC,CAACQ,UAAU,CAACP,iBAAiB,EAAE,EAAE,CAAC,CAAC;EAEtE,IAAIQ,KAAK,CAACJ,MAAM,CAAC,EAAE;IACjB,OAAO,EAAE;EACX;EAEA,IAAMK,UAAU,GAAGL,MAAM,GAAG,CAAC;EAC7B,IAAIM,cAAc,GAAGC,IAAI,CAACC,GAAG,CAACR,MAAM,CAAC;EAErC,IAAMS,QAAQ,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;EACzC,IAAIC,KAAK,GAAG,CAAC;EAEb,OAAOJ,cAAc,IAAI,IAAI,IAAII,KAAK,GAAGD,QAAQ,CAACX,MAAM,GAAG,CAAC,EAAE;IAC5DQ,cAAc,IAAI,IAAI;IACtBI,KAAK,EAAE;EACT;EAEA,IAAMC,YAAY,GAChBD,KAAK,KAAK,CAAC,GAAGJ,cAAc,CAACM,OAAO,CAAC,CAAC,CAAC,GAAGN,cAAc,CAACM,OAAO,CAAC,CAAC,CAAC;EACrE,IAAMC,MAAM,GAAGF,YAAY,CAACG,QAAQ,CAAC,IAAI,CAAC,GACtCH,YAAY,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACzBJ,YAAY;EAEhB,OAAON,UAAU,GACZ,IAAGQ,MAAO,GAAEJ,QAAQ,CAACC,KAAK,CAAE,EAAC,GAC7B,GAAEG,MAAO,GAAEJ,QAAQ,CAACC,KAAK,CAAE,EAAC;AACnC,CAAC;AAEM,IAAMM,mBAAmB,GAAA3B,OAAA,CAAA2B,mBAAA,GAAG,SAAtBA,mBAAmBA,CAC9BC,CAAkB,EAClBrB,iBAA6B,EAE1B;EAAA,IADHsB,MAAM,GAAArB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAEb,IAAI,CAACqB,MAAM,EAAE;IACX,OAAOD,CAAC;EACV;EAEA,IAAME,KAAK,GAAGF,CAAC,CAACG,QAAQ,CAAC,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC;EACrCF,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,CAACG,OAAO,CAAC,uBAAuB,EAAE1B,iBAAiB,CAAC;EAEvE,OAAOuB,KAAK,CAACI,IAAI,CAAC,GAAG,CAAC;AACxB,CAAC"}
@@ -3,12 +3,12 @@
3
3
  var _currencyUtils = require("./currencyUtils");
4
4
  describe("format currency with thousandseparator set to ',' and decimalSeparator to '.'", function () {
5
5
  it.each([["", ""], ["10", "10"], ["1000", "1K"], ["1000.00", "1K"], ["1200.50", "1.2K"], ["1,200.00", "1.2K"], ["2,240.00", "2.2K"], ["22,240.00", "22.2K"], ["50,000,000.00", "50M"], ["-50,000.00", "-50K"], ["-1,200", "-1.2K"], ["-90,000,000.00", "-90M"]])("should format currency", function (value, expected) {
6
- expect((0, _currencyUtils.formatCurrency)(value, ",")).toEqual(expected);
6
+ expect((0, _currencyUtils.formatNumber)(value, ",")).toEqual(expected);
7
7
  });
8
8
  });
9
9
  describe("format currency with thousandseparator set to '.' and decimalSeparator to ','", function () {
10
10
  it.each([["", ""], ["10", "10"], ["1000", "1K"], ["1000,00", "1K"], ["1200,50", "1.2K"], ["1.200,00", "1.2K"], ["2.240,00", "2.2K"], ["22.240,00", "22.2K"], ["50.000.000,00", "50M"], ["-50.000,00", "-50K"], ["-1.200", "-1.2K"], ["-90.000.000,00", "-90M"]])("should format currency", function (value, expected) {
11
- expect((0, _currencyUtils.formatCurrency)(value, ".")).toEqual(expected);
11
+ expect((0, _currencyUtils.formatNumber)(value, ".")).toEqual(expected);
12
12
  });
13
13
  });
14
14
  describe("numberWithSeparator", function () {
@@ -1 +1 @@
1
- {"version":3,"file":"currencyUtils.test.js","names":["_currencyUtils","require","describe","it","each","value","expected","expect","formatCurrency","toEqual","test","result","numberWithSeparator","toBe"],"sources":["../../../src/utils/currencyUtils.test.ts"],"sourcesContent":["import { formatCurrency, numberWithSeparator } from \"./currencyUtils\";\n\ndescribe(\"format currency with thousandseparator set to ',' and decimalSeparator to '.'\", () => {\n it.each([\n [\"\", \"\"],\n [\"10\", \"10\"],\n [\"1000\", \"1K\"],\n [\"1000.00\", \"1K\"],\n [\"1200.50\", \"1.2K\"],\n [\"1,200.00\", \"1.2K\"],\n [\"2,240.00\", \"2.2K\"],\n [\"22,240.00\", \"22.2K\"],\n [\"50,000,000.00\", \"50M\"],\n [\"-50,000.00\", \"-50K\"],\n [\"-1,200\", \"-1.2K\"],\n [\"-90,000,000.00\", \"-90M\"],\n ])(\"should format currency\", (value, expected) => {\n expect(formatCurrency(value, \",\")).toEqual(expected);\n });\n});\n\ndescribe(\"format currency with thousandseparator set to '.' and decimalSeparator to ','\", () => {\n it.each([\n [\"\", \"\"],\n [\"10\", \"10\"],\n [\"1000\", \"1K\"],\n [\"1000,00\", \"1K\"],\n [\"1200,50\", \"1.2K\"],\n [\"1.200,00\", \"1.2K\"],\n [\"2.240,00\", \"2.2K\"],\n [\"22.240,00\", \"22.2K\"],\n [\"50.000.000,00\", \"50M\"],\n [\"-50.000,00\", \"-50K\"],\n [\"-1.200\", \"-1.2K\"],\n [\"-90.000.000,00\", \"-90M\"],\n ])(\"should format currency\", (value, expected) => {\n expect(formatCurrency(value, \".\")).toEqual(expected);\n });\n});\n\ndescribe(\"numberWithSeparator\", () => {\n test(\"should format number with thousand separator\", () => {\n const result = numberWithSeparator(1000, \",\");\n expect(result).toBe(\"1,000\");\n });\n\n test(\"should format string number with thousand separator\", () => {\n const result = numberWithSeparator(\"1000\", \",\");\n expect(result).toBe(\"1,000\");\n });\n\n test(\"should format decimal number with thousand separator and keep decimal part\", () => {\n const result = numberWithSeparator(12345.67, \",\");\n expect(result).toBe(\"12,345.67\");\n });\n\n test(\"should not format when format is set to false\", () => {\n const result = numberWithSeparator(1000, \",\", false);\n expect(result).toBe(1000);\n });\n\n test(\"should handle zero with thousand separator\", () => {\n const result = numberWithSeparator(0, \",\");\n expect(result).toBe(\"0\");\n });\n\n test(\"should handle negative number with thousand separator\", () => {\n const result = numberWithSeparator(-123456789, \",\");\n expect(result).toBe(\"-123,456,789\");\n });\n\n test(\"should not format\", () => {\n const result = numberWithSeparator(123456789, \",\", false);\n expect(result).toBe(123456789);\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"currencyUtils.test.js","names":["_currencyUtils","require","describe","it","each","value","expected","expect","formatNumber","toEqual","test","result","numberWithSeparator","toBe"],"sources":["../../../src/utils/currencyUtils.test.ts"],"sourcesContent":["import { formatNumber, numberWithSeparator } from \"./currencyUtils\";\n\ndescribe(\"format currency with thousandseparator set to ',' and decimalSeparator to '.'\", () => {\n it.each([\n [\"\", \"\"],\n [\"10\", \"10\"],\n [\"1000\", \"1K\"],\n [\"1000.00\", \"1K\"],\n [\"1200.50\", \"1.2K\"],\n [\"1,200.00\", \"1.2K\"],\n [\"2,240.00\", \"2.2K\"],\n [\"22,240.00\", \"22.2K\"],\n [\"50,000,000.00\", \"50M\"],\n [\"-50,000.00\", \"-50K\"],\n [\"-1,200\", \"-1.2K\"],\n [\"-90,000,000.00\", \"-90M\"],\n ])(\"should format currency\", (value, expected) => {\n expect(formatNumber(value, \",\")).toEqual(expected);\n });\n});\n\ndescribe(\"format currency with thousandseparator set to '.' and decimalSeparator to ','\", () => {\n it.each([\n [\"\", \"\"],\n [\"10\", \"10\"],\n [\"1000\", \"1K\"],\n [\"1000,00\", \"1K\"],\n [\"1200,50\", \"1.2K\"],\n [\"1.200,00\", \"1.2K\"],\n [\"2.240,00\", \"2.2K\"],\n [\"22.240,00\", \"22.2K\"],\n [\"50.000.000,00\", \"50M\"],\n [\"-50.000,00\", \"-50K\"],\n [\"-1.200\", \"-1.2K\"],\n [\"-90.000.000,00\", \"-90M\"],\n ])(\"should format currency\", (value, expected) => {\n expect(formatNumber(value, \".\")).toEqual(expected);\n });\n});\n\ndescribe(\"numberWithSeparator\", () => {\n test(\"should format number with thousand separator\", () => {\n const result = numberWithSeparator(1000, \",\");\n expect(result).toBe(\"1,000\");\n });\n\n test(\"should format string number with thousand separator\", () => {\n const result = numberWithSeparator(\"1000\", \",\");\n expect(result).toBe(\"1,000\");\n });\n\n test(\"should format decimal number with thousand separator and keep decimal part\", () => {\n const result = numberWithSeparator(12345.67, \",\");\n expect(result).toBe(\"12,345.67\");\n });\n\n test(\"should not format when format is set to false\", () => {\n const result = numberWithSeparator(1000, \",\", false);\n expect(result).toBe(1000);\n });\n\n test(\"should handle zero with thousand separator\", () => {\n const result = numberWithSeparator(0, \",\");\n expect(result).toBe(\"0\");\n });\n\n test(\"should handle negative number with thousand separator\", () => {\n const result = numberWithSeparator(-123456789, \",\");\n expect(result).toBe(\"-123,456,789\");\n });\n\n test(\"should not format\", () => {\n const result = numberWithSeparator(123456789, \",\", false);\n expect(result).toBe(123456789);\n });\n});\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ var _exportNames = {
7
7
  useForkRef: true,
8
8
  useResizeObserver: true,
9
9
  decimalToHours: true,
10
- formatCurrency: true,
10
+ formatNumber: true,
11
11
  numberWithSeparator: true
12
12
  };
13
13
  Object.defineProperty(exports, "decimalToHours", {
@@ -16,10 +16,10 @@ Object.defineProperty(exports, "decimalToHours", {
16
16
  return _timeUtils.decimalToHours;
17
17
  }
18
18
  });
19
- Object.defineProperty(exports, "formatCurrency", {
19
+ Object.defineProperty(exports, "formatNumber", {
20
20
  enumerable: true,
21
21
  get: function get() {
22
- return _currencyUtils.formatCurrency;
22
+ return _currencyUtils.formatNumber;
23
23
  }
24
24
  });
25
25
  Object.defineProperty(exports, "numberWithSeparator", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_layers","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_colors","_validation","_useForkRef","_interopRequireDefault","_useResizeObserver","_timeUtils","_currencyUtils","obj","__esModule","default"],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export * from \"./layers\";\nexport * from \"./colors\";\nexport * from \"./validation\";\nexport { default as useForkRef } from \"./useForkRef\";\nexport { default as useResizeObserver } from \"./useResizeObserver\";\nexport { decimalToHours } from \"./timeUtils\";\nexport { formatCurrency, numberWithSeparator } from \"./currencyUtils\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAb,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,OAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,OAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,OAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,OAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,WAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,WAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,WAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,WAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,WAAA,GAAAC,sBAAA,CAAAhB,OAAA;AACA,IAAAiB,kBAAA,GAAAD,sBAAA,CAAAhB,OAAA;AACA,IAAAkB,UAAA,GAAAlB,OAAA;AACA,IAAAmB,cAAA,GAAAnB,OAAA;AAAsE,SAAAgB,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA"}
1
+ {"version":3,"file":"index.js","names":["_layers","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_colors","_validation","_useForkRef","_interopRequireDefault","_useResizeObserver","_timeUtils","_currencyUtils","obj","__esModule","default"],"sources":["../../../src/utils/index.ts"],"sourcesContent":["export * from \"./layers\";\nexport * from \"./colors\";\nexport * from \"./validation\";\nexport { default as useForkRef } from \"./useForkRef\";\nexport { default as useResizeObserver } from \"./useResizeObserver\";\nexport { decimalToHours } from \"./timeUtils\";\nexport { formatNumber, numberWithSeparator } from \"./currencyUtils\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,OAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAL,OAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAb,OAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,OAAA,GAAAb,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAW,OAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,OAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,OAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,WAAA,GAAAd,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAY,WAAA,EAAAX,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAU,WAAA,CAAAV,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,WAAA,CAAAV,GAAA;IAAA;EAAA;AAAA;AACA,IAAAW,WAAA,GAAAC,sBAAA,CAAAhB,OAAA;AACA,IAAAiB,kBAAA,GAAAD,sBAAA,CAAAhB,OAAA;AACA,IAAAkB,UAAA,GAAAlB,OAAA;AACA,IAAAmB,cAAA,GAAAnB,OAAA;AAAoE,SAAAgB,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA"}
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.validateTimeInput = exports.validateStopwatchTime = void 0;
6
+ exports.validateTimeInput = exports.validateStopwatchTime = exports.validateNumberInput = void 0;
7
+ var _currencyUtils = require("./currencyUtils");
7
8
  var validateStopwatchTime = exports.validateStopwatchTime = function validateStopwatchTime(value) {
8
9
  return /^([0-9]{0,2})?(((:([0-5][0-9])?)|(:[0-5]?))|(\.[0-9]{0,2})|(,[0-9]{0,2}))?$/g.test(value);
9
10
  };
@@ -14,4 +15,21 @@ var validateTimeInput = exports.validateTimeInput = function validateTimeInput(v
14
15
  return /^(([1-9][0-9]*|0)?(([:,.][0-5][0-9]?)|([:,.][0-5]?)|(\.[0-9]{1,2})|(,[0-9]{1,2}))?)$/.test(value);
15
16
  }
16
17
  };
18
+ var validateNumberInput = exports.validateNumberInput = function validateNumberInput(value, disableMacros, decimalSeparator, decimalLength, limit) {
19
+ if (value.startsWith("00")) {
20
+ return false;
21
+ }
22
+ var numericInput = disableMacros ? value : value.replace(/([0-9.]+)([kmbtKMBT])/, function (_, num, unit) {
23
+ return (parseFloat(num) * _currencyUtils.currencyMultiplier[unit.toLowerCase()]).toString();
24
+ });
25
+ if (limit) {
26
+ var decimalIndex = numericInput.indexOf(decimalSeparator);
27
+ var integerPart = decimalIndex !== -1 ? numericInput.substring(0, decimalIndex) : numericInput;
28
+ if (integerPart.length > limit) {
29
+ return false;
30
+ }
31
+ }
32
+ var regexString = `^(-?\\d{0,9}(?:\\${decimalSeparator}\\d{0,${decimalLength}})?)?$`;
33
+ return new RegExp(regexString).test(numericInput);
34
+ };
17
35
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","names":["validateStopwatchTime","exports","value","test","validateTimeInput","withLeadingZero"],"sources":["../../../src/utils/validation.ts"],"sourcesContent":["export const validateStopwatchTime = (value: string) => {\n return /^([0-9]{0,2})?(((:([0-5][0-9])?)|(:[0-5]?))|(\\.[0-9]{0,2})|(,[0-9]{0,2}))?$/g.test(\n value\n );\n};\n\nexport const validateTimeInput = (value: string, withLeadingZero: boolean) => {\n if (withLeadingZero) {\n return /^(([0-9][0-9]?|[1-9][0-9]{2,8})?(([:,.][0-5][0-9]?)|([:,.][0-5]?)|(\\.[0-9]{1,2})|(,[0-9]{1,2}))?)$/.test(\n value\n );\n } else {\n return /^(([1-9][0-9]*|0)?(([:,.][0-5][0-9]?)|([:,.][0-5]?)|(\\.[0-9]{1,2})|(,[0-9]{1,2}))?)$/.test(\n value\n );\n }\n};\n"],"mappings":";;;;;;AAAO,IAAMA,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,SAAxBA,qBAAqBA,CAAIE,KAAa,EAAK;EACtD,OAAO,8EAA8E,CAACC,IAAI,CACxFD,KACF,CAAC;AACH,CAAC;AAEM,IAAME,iBAAiB,GAAAH,OAAA,CAAAG,iBAAA,GAAG,SAApBA,iBAAiBA,CAAIF,KAAa,EAAEG,eAAwB,EAAK;EAC5E,IAAIA,eAAe,EAAE;IACnB,OAAO,oGAAoG,CAACF,IAAI,CAC9GD,KACF,CAAC;EACH,CAAC,MAAM;IACL,OAAO,sFAAsF,CAACC,IAAI,CAChGD,KACF,CAAC;EACH;AACF,CAAC"}
1
+ {"version":3,"file":"validation.js","names":["_currencyUtils","require","validateStopwatchTime","exports","value","test","validateTimeInput","withLeadingZero","validateNumberInput","disableMacros","decimalSeparator","decimalLength","limit","startsWith","numericInput","replace","_","num","unit","parseFloat","currencyMultiplier","toLowerCase","toString","decimalIndex","indexOf","integerPart","substring","length","regexString","RegExp"],"sources":["../../../src/utils/validation.ts"],"sourcesContent":["import { currencyMultiplier } from \"./currencyUtils\";\n\nexport const validateStopwatchTime = (value: string) => {\n return /^([0-9]{0,2})?(((:([0-5][0-9])?)|(:[0-5]?))|(\\.[0-9]{0,2})|(,[0-9]{0,2}))?$/g.test(\n value\n );\n};\n\nexport const validateTimeInput = (value: string, withLeadingZero: boolean) => {\n if (withLeadingZero) {\n return /^(([0-9][0-9]?|[1-9][0-9]{2,8})?(([:,.][0-5][0-9]?)|([:,.][0-5]?)|(\\.[0-9]{1,2})|(,[0-9]{1,2}))?)$/.test(\n value\n );\n } else {\n return /^(([1-9][0-9]*|0)?(([:,.][0-5][0-9]?)|([:,.][0-5]?)|(\\.[0-9]{1,2})|(,[0-9]{1,2}))?)$/.test(\n value\n );\n }\n};\n\nexport const validateNumberInput = (\n value: string,\n disableMacros: boolean,\n decimalSeparator: string,\n decimalLength: number,\n limit?: number\n) => {\n if (value.startsWith(\"00\")) {\n return false;\n }\n\n const numericInput = disableMacros\n ? value\n : value.replace(/([0-9.]+)([kmbtKMBT])/, (_, num, unit) => {\n return (\n parseFloat(num) * currencyMultiplier[unit.toLowerCase()]\n ).toString();\n });\n\n if (limit) {\n const decimalIndex = numericInput.indexOf(decimalSeparator);\n const integerPart =\n decimalIndex !== -1\n ? numericInput.substring(0, decimalIndex)\n : numericInput;\n if (integerPart.length > limit) {\n return false;\n }\n }\n\n const regexString = `^(-?\\\\d{0,9}(?:\\\\${decimalSeparator}\\\\d{0,${decimalLength}})?)?$`;\n\n return new RegExp(regexString).test(numericInput);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AAEO,IAAMC,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,SAAxBA,qBAAqBA,CAAIE,KAAa,EAAK;EACtD,OAAO,8EAA8E,CAACC,IAAI,CACxFD,KACF,CAAC;AACH,CAAC;AAEM,IAAME,iBAAiB,GAAAH,OAAA,CAAAG,iBAAA,GAAG,SAApBA,iBAAiBA,CAAIF,KAAa,EAAEG,eAAwB,EAAK;EAC5E,IAAIA,eAAe,EAAE;IACnB,OAAO,oGAAoG,CAACF,IAAI,CAC9GD,KACF,CAAC;EACH,CAAC,MAAM;IACL,OAAO,sFAAsF,CAACC,IAAI,CAChGD,KACF,CAAC;EACH;AACF,CAAC;AAEM,IAAMI,mBAAmB,GAAAL,OAAA,CAAAK,mBAAA,GAAG,SAAtBA,mBAAmBA,CAC9BJ,KAAa,EACbK,aAAsB,EACtBC,gBAAwB,EACxBC,aAAqB,EACrBC,KAAc,EACX;EACH,IAAIR,KAAK,CAACS,UAAU,CAAC,IAAI,CAAC,EAAE;IAC1B,OAAO,KAAK;EACd;EAEA,IAAMC,YAAY,GAAGL,aAAa,GAC9BL,KAAK,GACLA,KAAK,CAACW,OAAO,CAAC,uBAAuB,EAAE,UAACC,CAAC,EAAEC,GAAG,EAAEC,IAAI,EAAK;IACvD,OAAO,CACLC,UAAU,CAACF,GAAG,CAAC,GAAGG,iCAAkB,CAACF,IAAI,CAACG,WAAW,CAAC,CAAC,CAAC,EACxDC,QAAQ,CAAC,CAAC;EACd,CAAC,CAAC;EAEN,IAAIV,KAAK,EAAE;IACT,IAAMW,YAAY,GAAGT,YAAY,CAACU,OAAO,CAACd,gBAAgB,CAAC;IAC3D,IAAMe,WAAW,GACfF,YAAY,KAAK,CAAC,CAAC,GACfT,YAAY,CAACY,SAAS,CAAC,CAAC,EAAEH,YAAY,CAAC,GACvCT,YAAY;IAClB,IAAIW,WAAW,CAACE,MAAM,GAAGf,KAAK,EAAE;MAC9B,OAAO,KAAK;IACd;EACF;EAEA,IAAMgB,WAAW,GAAI,oBAAmBlB,gBAAiB,SAAQC,aAAc,QAAO;EAEtF,OAAO,IAAIkB,MAAM,CAACD,WAAW,CAAC,CAACvB,IAAI,CAACS,YAAY,CAAC;AACnD,CAAC"}
@@ -1,4 +1,8 @@
1
1
  import React from "react";
2
- import type { InputNumberProps } from "../../hooks";
3
- export declare const EditableCurrency: React.ForwardRefExoticComponent<Omit<InputNumberProps, "size"> & React.RefAttributes<HTMLInputElement>>;
2
+ import { IInputNumber } from "../../hooks";
3
+ import { EditableContentInterface } from "../EditableContent";
4
+ export interface EditableCurrencyProps extends EditableContentInterface, IInputNumber {
5
+ className?: string;
6
+ }
7
+ export declare const EditableCurrency: React.ForwardRefExoticComponent<EditableCurrencyProps & React.RefAttributes<HTMLDivElement>>;
4
8
  //# sourceMappingURL=EditableCurrency.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditableCurrency.d.ts","sourceRoot":"","sources":["../../../../src/components/EditableCurrency/EditableCurrency.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAGlD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAKpD,eAAO,MAAM,gBAAgB,yGA+D5B,CAAC"}
1
+ {"version":3,"file":"EditableCurrency.d.ts","sourceRoot":"","sources":["../../../../src/components/EditableCurrency/EditableCurrency.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAE/C,OAAO,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAmB,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAG/E,MAAM,WAAW,qBACf,SAAQ,wBAAwB,EAC9B,YAAY;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,8FAyF5B,CAAC"}
@@ -11,42 +11,61 @@ var _EditableContent = require("../EditableContent");
11
11
  var _Tooltip = require("../Tooltip");
12
12
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (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
- const EditableCurrency = exports.EditableCurrency = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
14
+ const EditableCurrency = exports.EditableCurrency = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
15
15
  let {
16
16
  decimalLength = 2,
17
17
  decimalSeparator = ".",
18
18
  disableAbbreviation = false,
19
19
  disabled,
20
20
  disableMacros = false,
21
- onValueChange,
22
21
  step = 1,
23
22
  thousandSeparator = ",",
24
- value,
23
+ value: defaultValue,
24
+ onSave,
25
+ onCancel,
25
26
  className,
27
+ allowEmptyValue,
28
+ onEnterKeyPress: externalEnterKeyPress,
29
+ onClick: externalOnClick,
30
+ onChange: externalOnChange,
31
+ limit,
26
32
  ...rest
27
33
  } = _ref;
28
34
  const inputRef = (0, _react.useRef)(null);
29
35
  const handleRef = (0, _utils.useForkRef)(ref, inputRef);
30
36
  const {
31
- focused,
32
- rootValue,
33
- formattedValue,
34
- handleBlur,
35
- handleChange,
36
- handleFocus,
37
- handleKeyDown
37
+ inputProps
38
38
  } = (0, _hooks.useInputNumber)({
39
39
  decimalLength,
40
40
  decimalSeparator,
41
41
  disableAbbreviation,
42
42
  disableMacros,
43
- onValueChange,
44
43
  step,
45
44
  thousandSeparator,
46
- value
45
+ value: defaultValue,
46
+ onSave,
47
+ allowEmptyValue,
48
+ onCancel,
49
+ onChange: externalOnChange,
50
+ onEnterKeyPress: externalEnterKeyPress,
51
+ onClick: externalOnClick,
52
+ limit
47
53
  }, inputRef);
54
+ const {
55
+ value,
56
+ onBlur,
57
+ onKeyDown,
58
+ onChange,
59
+ onClick,
60
+ onDoubleClick,
61
+ onFocus,
62
+ focused
63
+ } = inputProps;
64
+ const formattedValue = (0, _react.useMemo)(() => {
65
+ return focused ? value : (0, _utils.numberWithSeparator)(value ?? "", thousandSeparator);
66
+ }, [focused, value, thousandSeparator]);
48
67
  return /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
49
- title: rootValue,
68
+ title: (0, _utils.numberWithSeparator)(value ?? "", thousandSeparator),
50
69
  disable: focused
51
70
  }, /*#__PURE__*/_react.default.createElement(_EditableContent.EditableContent, {
52
71
  disabled: disabled,
@@ -54,10 +73,12 @@ const EditableCurrency = exports.EditableCurrency = /*#__PURE__*/(0, _react.forw
54
73
  className: className,
55
74
  inputProps: {
56
75
  value: formattedValue,
57
- onBlur: handleBlur,
58
- onChange: handleChange,
59
- onFocus: handleFocus,
60
- onKeyDown: handleKeyDown,
76
+ onBlur: onBlur,
77
+ onChange: onChange,
78
+ onKeyDown: onKeyDown,
79
+ onClick: onClick,
80
+ onFocus: onFocus,
81
+ onDoubleClick: onDoubleClick,
61
82
  ...rest
62
83
  }
63
84
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"EditableCurrency.js","names":["_react","_interopRequireWildcard","require","_hooks","_utils","_EditableContent","_Tooltip","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","EditableCurrency","exports","forwardRef","_ref","ref","decimalLength","decimalSeparator","disableAbbreviation","disabled","disableMacros","onValueChange","step","thousandSeparator","value","className","rest","inputRef","useRef","handleRef","useForkRef","focused","rootValue","formattedValue","handleBlur","handleChange","handleFocus","handleKeyDown","useInputNumber","createElement","Tooltip","title","disable","EditableContent","inputProps","onBlur","onChange","onFocus","onKeyDown","displayName"],"sources":["../../../../src/components/EditableCurrency/EditableCurrency.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from \"react\";\n\nimport { useInputNumber } from \"../../hooks\";\nimport type { InputNumberProps } from \"../../hooks\";\nimport { useForkRef } from \"../../utils\";\nimport { EditableContent } from \"../EditableContent\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport const EditableCurrency = forwardRef<\n HTMLInputElement,\n Omit<InputNumberProps, \"size\">\n>(\n (\n {\n decimalLength = 2,\n decimalSeparator = \".\",\n disableAbbreviation = false,\n disabled,\n disableMacros = false,\n onValueChange,\n step = 1,\n thousandSeparator = \",\",\n value,\n className,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const {\n focused,\n rootValue,\n formattedValue,\n handleBlur,\n handleChange,\n handleFocus,\n handleKeyDown,\n } = useInputNumber(\n {\n decimalLength,\n decimalSeparator,\n disableAbbreviation,\n disableMacros,\n onValueChange,\n step,\n thousandSeparator,\n value,\n },\n inputRef\n );\n\n return (\n <Tooltip title={rootValue as string} disable={focused}>\n <EditableContent\n disabled={disabled}\n ref={handleRef}\n className={className}\n inputProps={{\n value: formattedValue,\n onBlur: handleBlur,\n onChange: handleChange,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\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","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","EditableCurrency","exports","React","forwardRef","_ref","ref","decimalLength","decimalSeparator","disableAbbreviation","disabled","disableMacros","step","thousandSeparator","value","defaultValue","onSave","onCancel","className","allowEmptyValue","onEnterKeyPress","externalEnterKeyPress","onClick","externalOnClick","onChange","externalOnChange","limit","rest","inputRef","useRef","handleRef","useForkRef","inputProps","useInputNumber","onBlur","onKeyDown","onDoubleClick","onFocus","focused","formattedValue","useMemo","numberWithSeparator","createElement","Tooltip","title","disable","EditableContent","displayName"],"sources":["../../../../src/components/EditableCurrency/EditableCurrency.tsx"],"sourcesContent":["import React, { useMemo, useRef } from \"react\";\n\nimport { IInputNumber, useInputNumber } from \"../../hooks\";\nimport { numberWithSeparator, useForkRef } from \"../../utils\";\nimport { EditableContent, EditableContentInterface } from \"../EditableContent\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport interface EditableCurrencyProps\n extends EditableContentInterface,\n IInputNumber {\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 limit,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const { inputProps } = useInputNumber(\n {\n decimalLength,\n decimalSeparator,\n disableAbbreviation,\n disableMacros,\n step,\n thousandSeparator,\n value: defaultValue,\n onSave,\n allowEmptyValue,\n onCancel,\n onChange: externalOnChange,\n onEnterKeyPress: externalEnterKeyPress,\n onClick: externalOnClick,\n limit,\n },\n inputRef\n );\n\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n focused,\n } = inputProps;\n\n const formattedValue = useMemo(() => {\n return focused\n ? value\n : numberWithSeparator(value ?? \"\", thousandSeparator);\n }, [focused, value, thousandSeparator]);\n\n return (\n <Tooltip\n title={numberWithSeparator(value ?? \"\", thousandSeparator) as string}\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,5 +1,4 @@
1
1
  import React from "react";
2
- import type { InputNumberProps } from "../../hooks";
3
- export type InputCurrencyProps = InputNumberProps;
4
- export declare const InputCurrency: React.ForwardRefExoticComponent<InputNumberProps & React.RefAttributes<HTMLInputElement>>;
2
+ import type { IInputNumber } from "../../hooks";
3
+ export declare const InputCurrency: React.ForwardRefExoticComponent<IInputNumber & React.RefAttributes<HTMLInputElement>>;
5
4
  //# sourceMappingURL=InputCurrency.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputCurrency.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/InputCurrency.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAElD,eAAO,MAAM,aAAa,2FAIzB,CAAC"}
1
+ {"version":3,"file":"InputCurrency.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/InputCurrency.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAG1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,aAAa,uFAIzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"InputCurrency.js","names":["_react","_interopRequireWildcard","require","_InputNumber","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","InputCurrency","exports","forwardRef","_ref","ref","rest","createElement","InputNumber","_extends2","displayName"],"sources":["../../../../src/components/Input/InputCurrency.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { InputNumber } from \"./InputNumber\";\nimport type { InputNumberProps } from \"../../hooks\";\n\nexport type InputCurrencyProps = InputNumberProps;\n\nexport const InputCurrency = forwardRef<HTMLInputElement, InputCurrencyProps>(\n ({ ...rest }, ref) => {\n return <InputNumber ref={ref} {...rest} />;\n }\n);\n\nInputCurrency.displayName = \"InputCurrency\";\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAA4C,SAAAE,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAJ,wBAAAI,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;AAKrC,MAAMY,aAAa,GAAAC,OAAA,CAAAD,aAAA,gBAAG,IAAAE,iBAAU,EACrC,CAAAC,IAAA,EAAcC,GAAG,KAAK;EAAA,IAArB;IAAE,GAAGC;EAAK,CAAC,GAAAF,IAAA;EACV,oBAAO5B,MAAA,CAAAU,OAAA,CAAAqB,aAAA,CAAC5B,YAAA,CAAA6B,WAAW,MAAAC,SAAA,CAAAvB,OAAA;IAACmB,GAAG,EAAEA;EAAI,GAAKC,IAAI,CAAG,CAAC;AAC5C,CACF,CAAC;AAEDL,aAAa,CAACS,WAAW,GAAG,eAAe"}
1
+ {"version":3,"file":"InputCurrency.js","names":["_react","_interopRequireWildcard","require","_InputNumber","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","InputCurrency","exports","forwardRef","_ref","ref","rest","createElement","InputNumber","_extends2","displayName"],"sources":["../../../../src/components/Input/InputCurrency.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { InputNumber } from \"./InputNumber\";\nimport type { IInputNumber } from \"../../hooks\";\n\nexport const InputCurrency = forwardRef<HTMLInputElement, IInputNumber>(\n ({ ...rest }, ref) => {\n return <InputNumber ref={ref} {...rest} />;\n }\n);\n\nInputCurrency.displayName = \"InputCurrency\";\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAA4C,SAAAE,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAJ,wBAAAI,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;AAGrC,MAAMY,aAAa,GAAAC,OAAA,CAAAD,aAAA,gBAAG,IAAAE,iBAAU,EACrC,CAAAC,IAAA,EAAcC,GAAG,KAAK;EAAA,IAArB;IAAE,GAAGC;EAAK,CAAC,GAAAF,IAAA;EACV,oBAAO5B,MAAA,CAAAU,OAAA,CAAAqB,aAAA,CAAC5B,YAAA,CAAA6B,WAAW,MAAAC,SAAA,CAAAvB,OAAA;IAACmB,GAAG,EAAEA;EAAI,GAAKC,IAAI,CAAG,CAAC;AAC5C,CACF,CAAC;AAEDL,aAAa,CAACS,WAAW,GAAG,eAAe"}
@@ -1,4 +1,7 @@
1
1
  import React from "react";
2
- import { InputNumberProps } from "../../hooks";
2
+ import { InputProps } from "./Input";
3
+ import { IInputNumber } from "../../hooks";
4
+ export interface InputNumberProps extends Omit<InputProps, "value" | "onChange" | "step">, IInputNumber {
5
+ }
3
6
  export declare const InputNumber: React.ForwardRefExoticComponent<InputNumberProps & React.RefAttributes<HTMLInputElement>>;
4
7
  //# sourceMappingURL=InputNumber.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputNumber.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/InputNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAkB,MAAM,aAAa,CAAC;AAG/D,eAAO,MAAM,WAAW,2FA2DvB,CAAC"}
1
+ {"version":3,"file":"InputNumber.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/InputNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAElD,OAAO,EAAS,UAAU,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAkB,MAAM,aAAa,CAAC;AAG3D,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC,EACrD,YAAY;CAAG;AAEnB,eAAO,MAAM,WAAW,2FA4EvB,CAAC"}
@@ -20,45 +20,64 @@ const InputNumber = exports.InputNumber = /*#__PURE__*/(0, _react.forwardRef)((_
20
20
  disabled,
21
21
  disableMacros = false,
22
22
  invalid,
23
- onValueChange,
24
23
  step = 1,
25
24
  thousandSeparator = ",",
26
- value,
25
+ value: defaultValue,
26
+ onCancel,
27
+ onSave,
28
+ onEnterKeyPress: externalEnterKeyPress,
29
+ allowEmptyValue,
30
+ onChange: externalOnChange,
31
+ onClick: externalOnClick,
32
+ limit,
27
33
  ...rest
28
34
  } = _ref;
29
35
  const inputRef = (0, _react.useRef)(null);
30
36
  const handleRef = (0, _utils.useForkRef)(ref, inputRef);
31
37
  const {
32
- formattedValue,
33
- handleBlur,
34
- handleChange,
35
- handleFocus,
36
- handleKeyDown
38
+ inputProps
37
39
  } = (0, _hooks.useInputNumber)({
38
40
  decimalLength,
39
41
  decimalSeparator,
40
42
  disableAbbreviation,
41
43
  disableMacros,
42
- onValueChange,
43
44
  step,
44
45
  thousandSeparator,
45
- value
46
+ onEnterKeyPress: externalEnterKeyPress,
47
+ onChange: externalOnChange,
48
+ onClick: externalOnClick,
49
+ value: defaultValue,
50
+ onCancel,
51
+ onSave,
52
+ allowEmptyValue,
53
+ limit
46
54
  }, inputRef);
47
- return /*#__PURE__*/_react.default.createElement(_Input.Input, (0, _extends2.default)({
55
+ const {
56
+ value,
57
+ onBlur,
58
+ onKeyDown,
59
+ onChange,
60
+ onClick,
61
+ onDoubleClick,
62
+ onFocus
63
+ } = inputProps;
64
+ return /*#__PURE__*/_react.default.createElement(_Input.Input, (0, _extends2.default)({}, rest, {
48
65
  ref: handleRef,
49
- placeholder: `5${thousandSeparator}000${decimalSeparator}00`,
50
- value: formattedValue,
66
+ placeholder: `5000${decimalSeparator}00`,
67
+ value: value,
51
68
  type: "text",
52
69
  disabled: disabled,
53
70
  invalid: invalid,
54
- onChange: handleChange,
55
- onFocus: handleFocus,
56
- onBlur: handleBlur,
57
- onKeyDown: handleKeyDown,
71
+ onChange: onChange,
72
+ onBlur: onBlur,
73
+ onKeyDown: onKeyDown,
74
+ onClick: onClick,
75
+ onDoubleClick: onDoubleClick,
76
+ onFocus: onFocus,
58
77
  "aria-placeholder": `5${thousandSeparator}000${decimalSeparator}00`,
59
78
  "aria-disabled": disabled,
60
79
  "aria-invalid": invalid
61
- }, rest));
80
+ }));
62
81
  });
63
82
  InputNumber.displayName = "InputNumber";
64
83
  //# sourceMappingURL=InputNumber.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputNumber.js","names":["_react","_interopRequireWildcard","require","_Input","_hooks","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","InputNumber","exports","forwardRef","_ref","ref","decimalLength","decimalSeparator","disableAbbreviation","disabled","disableMacros","invalid","onValueChange","step","thousandSeparator","value","rest","inputRef","useRef","handleRef","useForkRef","formattedValue","handleBlur","handleChange","handleFocus","handleKeyDown","useInputNumber","createElement","Input","_extends2","placeholder","type","onChange","onFocus","onBlur","onKeyDown","displayName"],"sources":["../../../../src/components/Input/InputNumber.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from \"react\";\n\nimport { Input } from \"./Input\";\nimport { InputNumberProps, useInputNumber } from \"../../hooks\";\nimport { useForkRef } from \"../../utils\";\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 onValueChange,\n step = 1,\n thousandSeparator = \",\",\n value,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const {\n formattedValue,\n handleBlur,\n handleChange,\n handleFocus,\n handleKeyDown,\n } = useInputNumber(\n {\n decimalLength,\n decimalSeparator,\n disableAbbreviation,\n disableMacros,\n onValueChange,\n step,\n thousandSeparator,\n value,\n },\n inputRef\n );\n\n return (\n <Input\n ref={handleRef}\n placeholder={`5${thousandSeparator}000${decimalSeparator}00`}\n value={formattedValue}\n type=\"text\"\n disabled={disabled}\n invalid={invalid}\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n aria-placeholder={`5${thousandSeparator}000${decimalSeparator}00`}\n aria-disabled={disabled}\n aria-invalid={invalid}\n {...rest}\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","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","InputNumber","exports","forwardRef","_ref","ref","decimalLength","decimalSeparator","disableAbbreviation","disabled","disableMacros","invalid","step","thousandSeparator","value","defaultValue","onCancel","onSave","onEnterKeyPress","externalEnterKeyPress","allowEmptyValue","onChange","externalOnChange","onClick","externalOnClick","limit","rest","inputRef","useRef","handleRef","useForkRef","inputProps","useInputNumber","onBlur","onKeyDown","onDoubleClick","onFocus","createElement","Input","_extends2","placeholder","type","displayName"],"sources":["../../../../src/components/Input/InputNumber.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from \"react\";\n\nimport { Input, InputProps } from \"./Input\";\nimport { IInputNumber, useInputNumber } from \"../../hooks\";\nimport { useForkRef } from \"../../utils\";\n\nexport interface InputNumberProps\n extends Omit<InputProps, \"value\" | \"onChange\" | \"step\">,\n IInputNumber {}\n\nexport const InputNumber = forwardRef<HTMLInputElement, InputNumberProps>(\n (\n {\n decimalLength = 2,\n decimalSeparator = \".\",\n disableAbbreviation = false,\n disabled,\n disableMacros = false,\n invalid,\n step = 1,\n thousandSeparator = \",\",\n value: defaultValue,\n onCancel,\n onSave,\n onEnterKeyPress: externalEnterKeyPress,\n allowEmptyValue,\n onChange: externalOnChange,\n onClick: externalOnClick,\n limit,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const { inputProps } = useInputNumber(\n {\n decimalLength,\n decimalSeparator,\n disableAbbreviation,\n disableMacros,\n step,\n thousandSeparator,\n onEnterKeyPress: externalEnterKeyPress,\n onChange: externalOnChange,\n onClick: externalOnClick,\n value: defaultValue,\n onCancel,\n onSave,\n allowEmptyValue,\n limit,\n },\n inputRef\n );\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n } = inputProps;\n\n return (\n <Input\n {...rest}\n ref={handleRef}\n placeholder={`5000${decimalSeparator}00`}\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={`5${thousandSeparator}000${decimalSeparator}00`}\n aria-disabled={disabled}\n aria-invalid={invalid}\n />\n );\n }\n);\n\nInputNumber.displayName = \"InputNumber\";\n"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export * from "./Input";
2
2
  export * from "./InputAdornment";
3
3
  export * from "./InputHours";
4
+ export * from "./InputCurrency";
5
+ export * from "./InputNumber";
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
@@ -36,4 +36,26 @@ Object.keys(_InputHours).forEach(function (key) {
36
36
  }
37
37
  });
38
38
  });
39
+ var _InputCurrency = require("./InputCurrency");
40
+ Object.keys(_InputCurrency).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _InputCurrency[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _InputCurrency[key];
47
+ }
48
+ });
49
+ });
50
+ var _InputNumber = require("./InputNumber");
51
+ Object.keys(_InputNumber).forEach(function (key) {
52
+ if (key === "default" || key === "__esModule") return;
53
+ if (key in exports && exports[key] === _InputNumber[key]) return;
54
+ Object.defineProperty(exports, key, {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _InputNumber[key];
58
+ }
59
+ });
60
+ });
39
61
  //# sourceMappingURL=index.js.map