@activecollab/components 2.0.106 → 2.0.108

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 (44) hide show
  1. package/dist/cjs/components/EditableCurrency/EditableCurrency.js +15 -12
  2. package/dist/cjs/components/EditableCurrency/EditableCurrency.js.map +1 -1
  3. package/dist/cjs/components/Input/InputNumber.js +13 -10
  4. package/dist/cjs/components/Input/InputNumber.js.map +1 -1
  5. package/dist/cjs/components/ProgressPie/ProgressPie.js +1 -1
  6. package/dist/cjs/components/ProgressPie/ProgressPie.js.map +1 -1
  7. package/dist/cjs/components/ProgressRing/ProgressRing.js +17 -3
  8. package/dist/cjs/components/ProgressRing/ProgressRing.js.map +1 -1
  9. package/dist/cjs/components/ProgressRing/Styles.js +18 -6
  10. package/dist/cjs/components/ProgressRing/Styles.js.map +1 -1
  11. package/dist/cjs/hooks/useInputNumber.js +66 -45
  12. package/dist/cjs/hooks/useInputNumber.js.map +1 -1
  13. package/dist/cjs/utils/currencyUtils.js +4 -0
  14. package/dist/cjs/utils/currencyUtils.js.map +1 -1
  15. package/dist/esm/components/EditableCurrency/EditableCurrency.d.ts.map +1 -1
  16. package/dist/esm/components/EditableCurrency/EditableCurrency.js +14 -13
  17. package/dist/esm/components/EditableCurrency/EditableCurrency.js.map +1 -1
  18. package/dist/esm/components/Input/InputNumber.d.ts.map +1 -1
  19. package/dist/esm/components/Input/InputNumber.js +12 -11
  20. package/dist/esm/components/Input/InputNumber.js.map +1 -1
  21. package/dist/esm/components/ProgressPie/ProgressPie.d.ts +2 -2
  22. package/dist/esm/components/ProgressPie/ProgressPie.d.ts.map +1 -1
  23. package/dist/esm/components/ProgressPie/ProgressPie.js +2 -2
  24. package/dist/esm/components/ProgressPie/ProgressPie.js.map +1 -1
  25. package/dist/esm/components/ProgressRing/ProgressRing.d.ts +14 -8
  26. package/dist/esm/components/ProgressRing/ProgressRing.d.ts.map +1 -1
  27. package/dist/esm/components/ProgressRing/ProgressRing.js +16 -3
  28. package/dist/esm/components/ProgressRing/ProgressRing.js.map +1 -1
  29. package/dist/esm/components/ProgressRing/Styles.d.ts +3 -0
  30. package/dist/esm/components/ProgressRing/Styles.d.ts.map +1 -1
  31. package/dist/esm/components/ProgressRing/Styles.js +15 -5
  32. package/dist/esm/components/ProgressRing/Styles.js.map +1 -1
  33. package/dist/esm/hooks/useInputNumber.d.ts +12 -14
  34. package/dist/esm/hooks/useInputNumber.d.ts.map +1 -1
  35. package/dist/esm/hooks/useInputNumber.js +59 -43
  36. package/dist/esm/hooks/useInputNumber.js.map +1 -1
  37. package/dist/esm/utils/currencyUtils.d.ts.map +1 -1
  38. package/dist/esm/utils/currencyUtils.js +5 -1
  39. package/dist/esm/utils/currencyUtils.js.map +1 -1
  40. package/dist/index.js +288 -232
  41. package/dist/index.js.map +1 -1
  42. package/dist/index.min.js +1 -1
  43. package/dist/index.min.js.map +1 -1
  44. package/package.json +1 -1
@@ -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","_useState","useState","formatNumber","_useState2","currentValue","setCurrentValue","_useState3","_useState4","prevValue","setPrevValue","_useState5","_useState6","unformattedValue","setUnformattedValue","useEffect","_useState7","_useState8","focused","setFocused","escapeRef","useRef","handleBlur","useCallback","current","target","trim","_value","updateValue","type","String","decimalPart","increasedValue","nonDecimalPart","replaceAll","includes","indexOf","parseFloat","toFixed","joinedValue","numberWithSeparator","handleKeyDown","key","blur","preventDefault","metaKey","ctrlKey","_inputRef$current","select","input","start","selectionStart","end","selectionEnd","newValue","substring","Boolean","handleChange","inputValue","numericInput","replace","_","num","unit","currencyMultiplier","toLowerCase","handleClick","handleFocus","handleDoubleClick","_inputRef$current2","inputProps","useMemo","onBlur","onKeyDown","onDoubleClick","onFocus"],"sources":["../../../src/hooks/useInputNumber.tsx"],"sourcesContent":["import {\n useState,\n MouseEvent,\n useRef,\n useCallback,\n RefObject,\n useMemo,\n useEffect,\n} from \"react\";\n\nimport { validateNumberInput } from \"../utils\";\nimport {\n currencyMultiplier,\n formatNumber,\n numberWithSeparator,\n} from \"../utils/currencyUtils\";\n\nexport type Separators = \".\" | \",\" | \" \";\n\nexport interface IInputNumber {\n decimalLength?: number;\n decimalSeparator?: Separators;\n disableAbbreviation?: boolean;\n disableMacros?: boolean;\n thousandSeparator?: Separators;\n trimDecimals?: boolean;\n onSave?: (e: Event) => void;\n value?: string | number;\n step?: number;\n limit?: number;\n onEnterKeyPress?: (val: string) => void;\n onChange?: (val: string) => void;\n onClick?: (event: MouseEvent<HTMLInputElement>) => void;\n allowEmptyValue?: boolean;\n onCancel?: (e: Event) => void;\n validation?: (\n value: string,\n disableMacros: boolean,\n decimalSeparator: string,\n decimalLength: number,\n limit?: number\n ) => boolean;\n}\n\nexport const useInputNumber = (\n {\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n disableAbbreviation,\n disableMacros,\n decimalLength,\n value = \"\",\n onChange,\n onSave,\n onEnterKeyPress,\n onClick,\n onCancel,\n allowEmptyValue,\n step = 1,\n trimDecimals = true,\n limit,\n validation = validateNumberInput,\n }: IInputNumber,\n inputRef: RefObject<HTMLInputElement | null>\n) => {\n const [currentValue, setCurrentValue] = useState(() =>\n disableAbbreviation\n ? value\n : formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n )\n );\n const [prevValue, setPrevValue] = useState(() =>\n disableAbbreviation\n ? value\n : formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n )\n );\n const [unformattedValue, setUnformattedValue] = useState(() => value);\n\n useEffect(() => {\n if (value !== prevValue) {\n setCurrentValue(\n disableAbbreviation\n ? value\n : formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n )\n );\n setPrevValue(\n disableAbbreviation\n ? value\n : formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n )\n );\n setUnformattedValue(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n disableAbbreviation,\n thousandSeparator,\n decimalSeparator,\n decimalLength,\n trimDecimals,\n value,\n ]);\n\n const [focused, setFocused] = useState(false);\n\n const escapeRef = useRef(false);\n\n const handleBlur = useCallback(\n (e) => {\n if (escapeRef.current) {\n setCurrentValue(prevValue);\n setUnformattedValue(prevValue);\n } else {\n if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {\n const _value = disableAbbreviation\n ? currentValue\n : formatNumber(\n currentValue as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n );\n setPrevValue(_value);\n setUnformattedValue(currentValue);\n setCurrentValue(_value);\n typeof onSave === \"function\" && onSave(e);\n } else {\n if (!allowEmptyValue) {\n setCurrentValue(prevValue);\n setUnformattedValue(prevValue);\n typeof onCancel === \"function\" && onCancel(e);\n } else {\n if (typeof onSave === \"function\" && prevValue !== e.target.value) {\n onSave(e);\n } else {\n typeof onCancel === \"function\" && onCancel(e);\n }\n }\n }\n }\n setFocused(false);\n },\n [\n prevValue,\n disableAbbreviation,\n currentValue,\n thousandSeparator,\n decimalSeparator,\n decimalLength,\n trimDecimals,\n onSave,\n allowEmptyValue,\n onCancel,\n ]\n );\n\n const updateValue = useCallback(\n (type: \"increment\" | \"decrement\") => {\n const value = String(unformattedValue);\n\n let decimalPart = \"\";\n let increasedValue = 0;\n let nonDecimalPart = value.replaceAll(thousandSeparator, \"\");\n\n if (!value) {\n return;\n }\n\n if (value.includes(decimalSeparator)) {\n nonDecimalPart = value\n .slice(0, value.indexOf(decimalSeparator))\n .replaceAll(thousandSeparator, \"\");\n }\n\n if (value.includes(decimalSeparator)) {\n decimalPart = value.slice(value.indexOf(decimalSeparator));\n }\n\n if (type === \"increment\") {\n increasedValue = parseFloat(nonDecimalPart) + step;\n } else {\n increasedValue = parseFloat(nonDecimalPart) - step;\n }\n\n if (value.includes(decimalSeparator)) {\n increasedValue = parseFloat(increasedValue.toFixed(decimalLength));\n }\n\n const joinedValue = numberWithSeparator(\n increasedValue,\n thousandSeparator,\n decimalSeparator,\n value.includes(thousandSeparator)\n );\n\n setUnformattedValue(\n decimalPart ? joinedValue + decimalPart : joinedValue\n );\n setCurrentValue(decimalPart ? joinedValue + decimalPart : joinedValue);\n },\n [decimalLength, decimalSeparator, step, thousandSeparator, unformattedValue]\n );\n\n const handleKeyDown = useCallback(\n (e) => {\n if (e.key === \"Enter\") {\n e.target.blur();\n if (typeof onEnterKeyPress === \"function\")\n onEnterKeyPress(e.target.value);\n }\n if (e.key === \"ArrowLeft\") {\n return;\n }\n if (e.key === \"ArrowRight\") {\n return;\n }\n if (e.key === \"ArrowUp\") {\n e.preventDefault();\n updateValue(\"increment\");\n }\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n updateValue(\"decrement\");\n }\n if (e.key === \"Escape\") {\n escapeRef.current = true;\n e.target.blur();\n typeof onCancel === \"function\" && onCancel(e);\n escapeRef.current = false;\n }\n if (e.key === \"Backspace\") {\n return;\n }\n if ((e.metaKey || e.ctrlKey) && e.key === \"a\") {\n inputRef.current?.select();\n return;\n }\n if (e.key === \"Tab\") {\n return;\n }\n if ((e.metaKey || e.ctrlKey) && e.key === \"v\") {\n e.preventDefault();\n return;\n }\n const input = e.target;\n const currentValue = input.value;\n const start = input.selectionStart;\n const end = input.selectionEnd;\n const newValue =\n currentValue.substring(0, start) + e.key + currentValue.substring(end);\n if (\n !validation(\n newValue,\n Boolean(disableMacros),\n decimalSeparator,\n decimalLength ?? 0,\n limit\n )\n ) {\n e.preventDefault();\n return;\n }\n },\n [\n decimalLength,\n decimalSeparator,\n disableMacros,\n inputRef,\n limit,\n onCancel,\n onEnterKeyPress,\n updateValue,\n validation,\n ]\n );\n\n const handleChange = useCallback(\n (e) => {\n const inputValue = e.target.value;\n const numericInput = disableMacros\n ? inputValue\n : inputValue.replace(/([0-9.]+)([kmbtKMBT])/, (_, num, unit) => {\n return (\n parseFloat(num) * currencyMultiplier[unit.toLowerCase()]\n ).toString();\n });\n setCurrentValue(numericInput);\n setUnformattedValue(numericInput);\n if (onChange) onChange(numericInput);\n },\n [disableMacros, onChange]\n );\n\n const handleClick = useCallback(\n (e) => {\n if (typeof onClick === \"function\") {\n onClick(e);\n }\n },\n [onClick]\n );\n\n const handleFocus = useCallback(() => {\n setCurrentValue(unformattedValue);\n setFocused(true);\n }, [unformattedValue]);\n\n const handleDoubleClick = useCallback(() => {\n if (inputRef.current) {\n inputRef.current?.select();\n }\n }, [inputRef]);\n\n const inputProps = useMemo(() => {\n return {\n value: currentValue,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n onChange: handleChange,\n onClick: handleClick,\n onDoubleClick: handleDoubleClick,\n onFocus: handleFocus,\n focused,\n unformattedValue,\n };\n }, [\n currentValue,\n handleBlur,\n handleKeyDown,\n handleChange,\n handleClick,\n handleDoubleClick,\n handleFocus,\n focused,\n unformattedValue,\n ]);\n\n return {\n inputProps,\n setCurrentValue,\n setPrevValue,\n };\n};\n"],"mappings":"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"}
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","isMaxValid","undefined","Number","console","warn","_useState","useState","formatNumber","_useState2","currentValue","setCurrentValue","_useState3","_useState4","prevValue","setPrevValue","_useState5","_useState6","unformattedValue","setUnformattedValue","_useState7","_useState8","unformattedPrevValue","setUnformattedPrevValue","useEffect","_useState9","_useState10","focused","setFocused","escapeRef","useRef","handleBlur","useCallback","current","String","target","trim","_value","updateValue","type","numericValue","parseFloat","isNaN","newValue","toFixed","Math","round","handleKeyDown","key","blur","preventDefault","metaKey","ctrlKey","_inputRef$current","select","input","start","selectionStart","end","selectionEnd","substring","Boolean","handleChange","inputValue","numericInput","replace","_","num","unit","currencyMultiplier","toLowerCase","handleClick","handleFocus","handleDoubleClick","_inputRef$current2","onBlur","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 validation?: (\n value: string,\n disableMacros: boolean,\n decimalSeparator: string,\n decimalLength: number,\n limit?: number\n ) => boolean;\n min?: string | number;\n max?: string | number;\n}\n\nexport const useInputNumber = (\n {\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n disableAbbreviation,\n disableMacros,\n decimalLength,\n value = \"\",\n onChange,\n onSave,\n onEnterKeyPress,\n onClick,\n onCancel,\n allowEmptyValue,\n step = 1,\n trimDecimals = true,\n limit,\n validation = validateNumberInput,\n min,\n max,\n }: 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 disableAbbreviation\n ? value\n : formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n )\n );\n const [prevValue, setPrevValue] = useState(() =>\n disableAbbreviation\n ? value\n : formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n )\n );\n const [unformattedValue, setUnformattedValue] = useState(() => value);\n const [unformattedPrevValue, setUnformattedPrevValue] = useState(() => value);\n\n useEffect(() => {\n if (value !== prevValue) {\n setCurrentValue(\n disableAbbreviation\n ? value\n : formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n )\n );\n setPrevValue(\n disableAbbreviation\n ? value\n : formatNumber(\n value as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n )\n );\n setUnformattedValue(value);\n setUnformattedPrevValue(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n disableAbbreviation,\n thousandSeparator,\n decimalSeparator,\n decimalLength,\n trimDecimals,\n value,\n ]);\n\n const [focused, setFocused] = useState(false);\n\n const escapeRef = useRef(false);\n\n const handleBlur = useCallback(\n (e) => {\n if (escapeRef.current) {\n setCurrentValue(prevValue);\n setUnformattedValue(unformattedPrevValue);\n if (onChange) onChange(String(unformattedPrevValue));\n } else {\n if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {\n const _value = disableAbbreviation\n ? currentValue\n : formatNumber(\n currentValue as string,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength\n );\n setPrevValue(_value);\n setUnformattedPrevValue(currentValue);\n setUnformattedValue(currentValue);\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 },\n [\n prevValue,\n unformattedPrevValue,\n onChange,\n disableAbbreviation,\n currentValue,\n thousandSeparator,\n decimalSeparator,\n trimDecimals,\n decimalLength,\n onSave,\n allowEmptyValue,\n onCancel,\n ]\n );\n\n const updateValue = useCallback(\n (type: \"increment\" | \"decrement\") => {\n const numericValue = parseFloat(String(unformattedValue));\n\n if (isNaN(numericValue)) return;\n\n let newValue = numericValue;\n\n if (type === \"increment\") {\n newValue += step;\n } else if (type === \"decrement\") {\n newValue -= step;\n }\n\n if (decimalLength !== undefined) {\n newValue = parseFloat(newValue.toFixed(decimalLength));\n } else {\n newValue = parseFloat(newValue.toFixed(2));\n }\n\n if (min !== undefined && newValue < Number(min)) {\n newValue = Number(min);\n }\n\n if (max !== undefined && newValue > Number(max) && isMaxValid) {\n newValue = Number(max);\n }\n\n if (decimalLength !== undefined && decimalLength === 0) {\n newValue = Math.round(newValue);\n }\n\n setUnformattedValue(newValue);\n setCurrentValue(newValue);\n if (onChange) onChange(String(newValue));\n },\n [unformattedValue, decimalLength, min, max, isMaxValid, onChange, step]\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\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(/([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 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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"}
@@ -65,6 +65,10 @@ var formatNumber = exports.formatNumber = function formatNumber(n) {
65
65
  scale++;
66
66
  }
67
67
  var formattedNum = scale === 0 ? fixedDecimalSpaces(absoluteNumber, decimalSpaces) : parseFloat(absoluteNumber.toFixed(1));
68
+ if (formattedNum === 1000 && scale > 0 && scale < 4) {
69
+ formattedNum = 1;
70
+ scale++;
71
+ }
68
72
  var result = numberWithSeparator(trimDecimals ? formattedNum : formattedNum.toFixed(decimalSpaces), thousandSeparator, decimalSeperator);
69
73
  return isNegative ? "-".concat(result).concat(suffixes[scale]) : "".concat(result).concat(suffixes[scale]);
70
74
  };
@@ -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","result","parseFloat","String","replaceAll","formatNumber","n","decimalSeperator","trimDecimals","decimalSpaces","format","isNaN","isNegative","absoluteNumber","abs","suffixes","scale","formattedNum","toFixed","numberWithSeparator","concat","x","replace","join"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["export const currencyMultiplier = {\n k: 1_000,\n m: 1_000_000,\n b: 1_000_000_000,\n t: 1_000_000_000_000,\n};\n\nexport const fixedDecimalSpaces = (num: number, fixed: number) => {\n fixed = fixed || 0;\n fixed = Math.pow(10, fixed);\n const parts = num.toString().split(\".\");\n if (parts.length > 1 && parseInt(parts[1]) > fixed) {\n return Math.floor(num * fixed) / fixed;\n }\n return Math.round(num * fixed) / fixed;\n};\n\nexport const getNumberFromString = (\n number: string | number,\n thousandSeparator = \",\",\n decimalSeparator = \".\"\n) => {\n if (typeof number === \"number\") {\n return number;\n }\n if (decimalSeparator === \",\") {\n const parts = number.split(decimalSeparator);\n\n let result = 0;\n if (parts.length === 2) {\n result = parts[0]\n ? parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"))\n : 0;\n if (result < 0) {\n result -= parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n } else {\n result += parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n }\n return result;\n }\n if (parts.length === 1) {\n result = parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"));\n\n return result;\n }\n return 0;\n } else {\n return parseFloat(String(number).replaceAll(thousandSeparator, \"\"));\n }\n};\n\nexport const formatNumber = (\n n: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = true,\n decimalSpaces = 2,\n format = \"short\"\n) => {\n const number = getNumberFromString(n, thousandSeparator, decimalSeperator);\n\n if (isNaN(number)) {\n return \"\";\n }\n\n const isNegative = number < 0;\n let absoluteNumber = Math.abs(number);\n\n const suffixes = [\"\", \"K\", \"M\", \"B\", \"T\"];\n let scale = 0;\n\n while (\n absoluteNumber >= 1000 &&\n scale < suffixes.length - 1 &&\n format === \"short\"\n ) {\n absoluteNumber /= 1000;\n scale++;\n }\n\n const formattedNum =\n scale === 0\n ? fixedDecimalSpaces(absoluteNumber, decimalSpaces)\n : parseFloat(absoluteNumber.toFixed(1));\n\n const result = numberWithSeparator(\n trimDecimals ? formattedNum : formattedNum.toFixed(decimalSpaces),\n thousandSeparator,\n decimalSeperator\n );\n\n return isNegative\n ? `-${result}${suffixes[scale]}`\n : `${result}${suffixes[scale]}`;\n};\n\nexport const numberWithSeparator = (\n x: number | string,\n thousandSeparator = \",\",\n decimalSeparator = \".\",\n format = true\n) => {\n if (!format) {\n return x;\n }\n const parts = x.toString().split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n\n return parts.join(decimalSeparator);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"currencyUtils.js","names":["currencyMultiplier","exports","k","m","b","t","fixedDecimalSpaces","num","fixed","Math","pow","parts","toString","split","length","parseInt","floor","round","getNumberFromString","number","thousandSeparator","arguments","undefined","decimalSeparator","result","parseFloat","String","replaceAll","formatNumber","n","decimalSeperator","trimDecimals","decimalSpaces","format","isNaN","isNegative","absoluteNumber","abs","suffixes","scale","formattedNum","toFixed","numberWithSeparator","concat","x","replace","join"],"sources":["../../../src/utils/currencyUtils.ts"],"sourcesContent":["export const currencyMultiplier = {\n k: 1_000,\n m: 1_000_000,\n b: 1_000_000_000,\n t: 1_000_000_000_000,\n};\n\nexport const fixedDecimalSpaces = (num: number, fixed: number) => {\n fixed = fixed || 0;\n fixed = Math.pow(10, fixed);\n const parts = num.toString().split(\".\");\n if (parts.length > 1 && parseInt(parts[1]) > fixed) {\n return Math.floor(num * fixed) / fixed;\n }\n return Math.round(num * fixed) / fixed;\n};\n\nexport const getNumberFromString = (\n number: string | number,\n thousandSeparator = \",\",\n decimalSeparator = \".\"\n) => {\n if (typeof number === \"number\") {\n return number;\n }\n if (decimalSeparator === \",\") {\n const parts = number.split(decimalSeparator);\n\n let result = 0;\n if (parts.length === 2) {\n result = parts[0]\n ? parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"))\n : 0;\n if (result < 0) {\n result -= parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n } else {\n result += parts[1]\n ? parseFloat(String(parts[1])) / Math.pow(10, parts[1].length)\n : 0;\n }\n return result;\n }\n if (parts.length === 1) {\n result = parseFloat(String(parts[0]).replaceAll(thousandSeparator, \"\"));\n\n return result;\n }\n return 0;\n } else {\n return parseFloat(String(number).replaceAll(thousandSeparator, \"\"));\n }\n};\n\nexport const formatNumber = (\n n: string | number,\n thousandSeparator = \",\",\n decimalSeperator = \".\",\n trimDecimals = true,\n decimalSpaces = 2,\n format = \"short\"\n) => {\n const number = getNumberFromString(n, thousandSeparator, decimalSeperator);\n\n if (isNaN(number)) {\n return \"\";\n }\n\n const isNegative = number < 0;\n let absoluteNumber = Math.abs(number);\n\n const suffixes = [\"\", \"K\", \"M\", \"B\", \"T\"];\n let scale = 0;\n\n while (\n absoluteNumber >= 1000 &&\n scale < suffixes.length - 1 &&\n format === \"short\"\n ) {\n absoluteNumber /= 1000;\n scale++;\n }\n\n 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"],"mappings":"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"}
@@ -1 +1 @@
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,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,8FAgG5B,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,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,8FAkG5B,CAAC"}
@@ -21,12 +21,22 @@ export const EditableCurrency = /*#__PURE__*/React.forwardRef((_ref, ref) => {
21
21
  onClick: externalOnClick,
22
22
  onChange: externalOnChange,
23
23
  trimDecimals = true,
24
+ min,
25
+ max,
24
26
  ...rest
25
27
  } = _ref;
26
28
  const inputRef = useRef(null);
27
29
  const handleRef = useForkRef(ref, inputRef);
28
30
  const {
29
- inputProps
31
+ value,
32
+ onBlur,
33
+ onKeyDown,
34
+ onChange,
35
+ onClick,
36
+ onDoubleClick,
37
+ onFocus,
38
+ focused,
39
+ unformattedValue
30
40
  } = useInputNumber({
31
41
  decimalLength,
32
42
  decimalSeparator,
@@ -41,19 +51,10 @@ export const EditableCurrency = /*#__PURE__*/React.forwardRef((_ref, ref) => {
41
51
  onChange: externalOnChange,
42
52
  onEnterKeyPress: externalEnterKeyPress,
43
53
  onClick: externalOnClick,
44
- trimDecimals
54
+ trimDecimals,
55
+ min,
56
+ max
45
57
  }, inputRef);
46
- const {
47
- value,
48
- onBlur,
49
- onKeyDown,
50
- onChange,
51
- onClick,
52
- onDoubleClick,
53
- onFocus,
54
- focused,
55
- unformattedValue
56
- } = inputProps;
57
58
  const formattedValue = useMemo(() => {
58
59
  return focused ? value : numberWithSeparator(value != null ? value : "", thousandSeparator, decimalSeparator);
59
60
  }, [focused, value, thousandSeparator, decimalSeparator]);
@@ -1 +1 @@
1
- {"version":3,"file":"EditableCurrency.js","names":["React","useMemo","useRef","useInputNumber","numberWithSeparator","useForkRef","EditableContent","Tooltip","EditableCurrency","forwardRef","_ref","ref","decimalLength","decimalSeparator","disableAbbreviation","disabled","disableMacros","step","thousandSeparator","value","defaultValue","onSave","onCancel","className","allowEmptyValue","onEnterKeyPress","externalEnterKeyPress","onClick","externalOnClick","onChange","externalOnChange","trimDecimals","rest","inputRef","handleRef","inputProps","onBlur","onKeyDown","onDoubleClick","onFocus","focused","unformattedValue","formattedValue","createElement","title","disable","displayName"],"sources":["../../../../src/components/EditableCurrency/EditableCurrency.tsx"],"sourcesContent":["import React, { useMemo, useRef } from \"react\";\n\nimport { IInputNumber, useInputNumber } from \"../../hooks\";\nimport { numberWithSeparator, useForkRef } from \"../../utils\";\nimport { EditableContent, EditableContentInterface } from \"../EditableContent\";\nimport { Tooltip } from \"../Tooltip\";\n\nexport interface EditableCurrencyProps\n extends EditableContentInterface,\n Omit<IInputNumber, \"limit\"> {\n className?: string;\n}\n\nexport const EditableCurrency = React.forwardRef<\n HTMLDivElement,\n EditableCurrencyProps\n>(\n (\n {\n decimalLength = 2,\n decimalSeparator = \".\",\n disableAbbreviation = false,\n disabled,\n disableMacros = false,\n step = 1,\n thousandSeparator = \",\",\n value: defaultValue,\n onSave,\n onCancel,\n className,\n allowEmptyValue,\n onEnterKeyPress: externalEnterKeyPress,\n onClick: externalOnClick,\n onChange: externalOnChange,\n trimDecimals = true,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const { inputProps } = useInputNumber(\n {\n decimalLength,\n decimalSeparator,\n disableAbbreviation,\n disableMacros,\n step,\n thousandSeparator,\n value: defaultValue,\n onSave,\n allowEmptyValue,\n onCancel,\n onChange: externalOnChange,\n onEnterKeyPress: externalEnterKeyPress,\n onClick: externalOnClick,\n trimDecimals,\n },\n inputRef\n );\n\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n focused,\n unformattedValue,\n } = inputProps;\n\n const formattedValue = useMemo(() => {\n return focused\n ? value\n : numberWithSeparator(value ?? \"\", thousandSeparator, decimalSeparator);\n }, [focused, value, thousandSeparator, decimalSeparator]);\n\n return (\n <Tooltip\n title={\n numberWithSeparator(\n unformattedValue ?? \"\",\n thousandSeparator,\n decimalSeparator\n ) as string\n }\n disable={focused}\n >\n <EditableContent\n disabled={disabled}\n ref={handleRef}\n className={className}\n inputProps={{\n value: formattedValue,\n onBlur: onBlur,\n onChange: onChange,\n onKeyDown: onKeyDown,\n onClick: onClick,\n onFocus: onFocus,\n onDoubleClick: onDoubleClick,\n ...rest,\n }}\n />\n </Tooltip>\n );\n }\n);\n\nEditableCurrency.displayName = \"EditableCurrency\";\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAE9C,SAAuBC,cAAc,QAAQ,aAAa;AAC1D,SAASC,mBAAmB,EAAEC,UAAU,QAAQ,aAAa;AAC7D,SAASC,eAAe,QAAkC,oBAAoB;AAC9E,SAASC,OAAO,QAAQ,YAAY;AAQpC,OAAO,MAAMC,gBAAgB,gBAAGR,KAAK,CAACS,UAAU,CAI9C,CAAAC,IAAA,EAoBEC,GAAG,KACA;EAAA,IApBH;IACEC,aAAa,GAAG,CAAC;IACjBC,gBAAgB,GAAG,GAAG;IACtBC,mBAAmB,GAAG,KAAK;IAC3BC,QAAQ;IACRC,aAAa,GAAG,KAAK;IACrBC,IAAI,GAAG,CAAC;IACRC,iBAAiB,GAAG,GAAG;IACvBC,KAAK,EAAEC,YAAY;IACnBC,MAAM;IACNC,QAAQ;IACRC,SAAS;IACTC,eAAe;IACfC,eAAe,EAAEC,qBAAqB;IACtCC,OAAO,EAAEC,eAAe;IACxBC,QAAQ,EAAEC,gBAAgB;IAC1BC,YAAY,GAAG,IAAI;IACnB,GAAGC;EACL,CAAC,GAAAtB,IAAA;EAGD,MAAMuB,QAAQ,GAAG/B,MAAM,CAAmB,IAAI,CAAC;EAC/C,MAAMgC,SAAS,GAAG7B,UAAU,CAACM,GAAG,EAAEsB,QAAQ,CAAC;EAE3C,MAAM;IAAEE;EAAW,CAAC,GAAGhC,cAAc,CACnC;IACES,aAAa;IACbC,gBAAgB;IAChBC,mBAAmB;IACnBE,aAAa;IACbC,IAAI;IACJC,iBAAiB;IACjBC,KAAK,EAAEC,YAAY;IACnBC,MAAM;IACNG,eAAe;IACfF,QAAQ;IACRO,QAAQ,EAAEC,gBAAgB;IAC1BL,eAAe,EAAEC,qBAAqB;IACtCC,OAAO,EAAEC,eAAe;IACxBG;EACF,CAAC,EACDE,QACF,CAAC;EAED,MAAM;IACJd,KAAK;IACLiB,MAAM;IACNC,SAAS;IACTR,QAAQ;IACRF,OAAO;IACPW,aAAa;IACbC,OAAO;IACPC,OAAO;IACPC;EACF,CAAC,GAAGN,UAAU;EAEd,MAAMO,cAAc,GAAGzC,OAAO,CAAC,MAAM;IACnC,OAAOuC,OAAO,GACVrB,KAAK,GACLf,mBAAmB,CAACe,KAAK,WAALA,KAAK,GAAI,EAAE,EAAED,iBAAiB,EAAEL,gBAAgB,CAAC;EAC3E,CAAC,EAAE,CAAC2B,OAAO,EAAErB,KAAK,EAAED,iBAAiB,EAAEL,gBAAgB,CAAC,CAAC;EAEzD,oBACEb,KAAA,CAAA2C,aAAA,CAACpC,OAAO;IACNqC,KAAK,EACHxC,mBAAmB,CACjBqC,gBAAgB,WAAhBA,gBAAgB,GAAI,EAAE,EACtBvB,iBAAiB,EACjBL,gBACF,CACD;IACDgC,OAAO,EAAEL;EAAQ,gBAEjBxC,KAAA,CAAA2C,aAAA,CAACrC,eAAe;IACdS,QAAQ,EAAEA,QAAS;IACnBJ,GAAG,EAAEuB,SAAU;IACfX,SAAS,EAAEA,SAAU;IACrBY,UAAU,EAAE;MACVhB,KAAK,EAAEuB,cAAc;MACrBN,MAAM,EAAEA,MAAM;MACdP,QAAQ,EAAEA,QAAQ;MAClBQ,SAAS,EAAEA,SAAS;MACpBV,OAAO,EAAEA,OAAO;MAChBY,OAAO,EAAEA,OAAO;MAChBD,aAAa,EAAEA,aAAa;MAC5B,GAAGN;IACL;EAAE,CACH,CACM,CAAC;AAEd,CACF,CAAC;AAEDxB,gBAAgB,CAACsC,WAAW,GAAG,kBAAkB"}
1
+ {"version":3,"file":"EditableCurrency.js","names":["React","useMemo","useRef","useInputNumber","numberWithSeparator","useForkRef","EditableContent","Tooltip","EditableCurrency","forwardRef","_ref","ref","decimalLength","decimalSeparator","disableAbbreviation","disabled","disableMacros","step","thousandSeparator","value","defaultValue","onSave","onCancel","className","allowEmptyValue","onEnterKeyPress","externalEnterKeyPress","onClick","externalOnClick","onChange","externalOnChange","trimDecimals","min","max","rest","inputRef","handleRef","onBlur","onKeyDown","onDoubleClick","onFocus","focused","unformattedValue","formattedValue","createElement","title","disable","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\"> {\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 ?? \"\", thousandSeparator, decimalSeparator);\n }, [focused, value, thousandSeparator, decimalSeparator]);\n\n return (\n <Tooltip\n title={\n numberWithSeparator(\n unformattedValue ?? \"\",\n thousandSeparator,\n decimalSeparator\n ) as string\n }\n disable={focused}\n >\n <EditableContent\n disabled={disabled}\n ref={handleRef}\n className={className}\n inputProps={{\n value: formattedValue,\n onBlur: onBlur,\n onChange: onChange,\n onKeyDown: onKeyDown,\n onClick: onClick,\n onFocus: onFocus,\n onDoubleClick: onDoubleClick,\n ...rest,\n }}\n />\n </Tooltip>\n );\n }\n);\n\nEditableCurrency.displayName = \"EditableCurrency\";\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAE9C,SAAuBC,cAAc,QAAQ,aAAa;AAC1D,SAASC,mBAAmB,EAAEC,UAAU,QAAQ,aAAa;AAC7D,SAASC,eAAe,QAAkC,oBAAoB;AAC9E,SAASC,OAAO,QAAQ,YAAY;AAQpC,OAAO,MAAMC,gBAAgB,gBAAGR,KAAK,CAACS,UAAU,CAI9C,CAAAC,IAAA,EAsBEC,GAAG,KACA;EAAA,IAtBH;IACEC,aAAa,GAAG,CAAC;IACjBC,gBAAgB,GAAG,GAAG;IACtBC,mBAAmB,GAAG,KAAK;IAC3BC,QAAQ;IACRC,aAAa,GAAG,KAAK;IACrBC,IAAI,GAAG,CAAC;IACRC,iBAAiB,GAAG,GAAG;IACvBC,KAAK,EAAEC,YAAY;IACnBC,MAAM;IACNC,QAAQ;IACRC,SAAS;IACTC,eAAe;IACfC,eAAe,EAAEC,qBAAqB;IACtCC,OAAO,EAAEC,eAAe;IACxBC,QAAQ,EAAEC,gBAAgB;IAC1BC,YAAY,GAAG,IAAI;IACnBC,GAAG;IACHC,GAAG;IACH,GAAGC;EACL,CAAC,GAAAxB,IAAA;EAGD,MAAMyB,QAAQ,GAAGjC,MAAM,CAAmB,IAAI,CAAC;EAC/C,MAAMkC,SAAS,GAAG/B,UAAU,CAACM,GAAG,EAAEwB,QAAQ,CAAC;EAE3C,MAAM;IACJhB,KAAK;IACLkB,MAAM;IACNC,SAAS;IACTT,QAAQ;IACRF,OAAO;IACPY,aAAa;IACbC,OAAO;IACPC,OAAO;IACPC;EACF,CAAC,GAAGvC,cAAc,CAChB;IACES,aAAa;IACbC,gBAAgB;IAChBC,mBAAmB;IACnBE,aAAa;IACbC,IAAI;IACJC,iBAAiB;IACjBC,KAAK,EAAEC,YAAY;IACnBC,MAAM;IACNG,eAAe;IACfF,QAAQ;IACRO,QAAQ,EAAEC,gBAAgB;IAC1BL,eAAe,EAAEC,qBAAqB;IACtCC,OAAO,EAAEC,eAAe;IACxBG,YAAY;IACZC,GAAG;IACHC;EACF,CAAC,EACDE,QACF,CAAC;EAED,MAAMQ,cAAc,GAAG1C,OAAO,CAAC,MAAM;IACnC,OAAOwC,OAAO,GACVtB,KAAK,GACLf,mBAAmB,CAACe,KAAK,WAALA,KAAK,GAAI,EAAE,EAAED,iBAAiB,EAAEL,gBAAgB,CAAC;EAC3E,CAAC,EAAE,CAAC4B,OAAO,EAAEtB,KAAK,EAAED,iBAAiB,EAAEL,gBAAgB,CAAC,CAAC;EAEzD,oBACEb,KAAA,CAAA4C,aAAA,CAACrC,OAAO;IACNsC,KAAK,EACHzC,mBAAmB,CACjBsC,gBAAgB,WAAhBA,gBAAgB,GAAI,EAAE,EACtBxB,iBAAiB,EACjBL,gBACF,CACD;IACDiC,OAAO,EAAEL;EAAQ,gBAEjBzC,KAAA,CAAA4C,aAAA,CAACtC,eAAe;IACdS,QAAQ,EAAEA,QAAS;IACnBJ,GAAG,EAAEyB,SAAU;IACfb,SAAS,EAAEA,SAAU;IACrBwB,UAAU,EAAE;MACV5B,KAAK,EAAEwB,cAAc;MACrBN,MAAM,EAAEA,MAAM;MACdR,QAAQ,EAAEA,QAAQ;MAClBS,SAAS,EAAEA,SAAS;MACpBX,OAAO,EAAEA,OAAO;MAChBa,OAAO,EAAEA,OAAO;MAChBD,aAAa,EAAEA,aAAa;MAC5B,GAAGL;IACL;EAAE,CACH,CACM,CAAC;AAEd,CACF,CAAC;AAED1B,gBAAgB,CAACwC,WAAW,GAAG,kBAAkB"}
@@ -1 +1 @@
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,2FA+EvB,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,2FAkFvB,CAAC"}
@@ -23,12 +23,20 @@ export const InputNumber = /*#__PURE__*/forwardRef((_ref, ref) => {
23
23
  limit,
24
24
  placeholder,
25
25
  trimDecimals = true,
26
+ min,
27
+ max,
26
28
  ...rest
27
29
  } = _ref;
28
30
  const inputRef = useRef(null);
29
31
  const handleRef = useForkRef(ref, inputRef);
30
32
  const {
31
- inputProps
33
+ value,
34
+ onBlur,
35
+ onKeyDown,
36
+ onChange,
37
+ onClick,
38
+ onFocus,
39
+ onDoubleClick
32
40
  } = useInputNumber({
33
41
  decimalLength,
34
42
  decimalSeparator,
@@ -44,17 +52,10 @@ export const InputNumber = /*#__PURE__*/forwardRef((_ref, ref) => {
44
52
  onSave,
45
53
  allowEmptyValue,
46
54
  limit,
47
- trimDecimals
55
+ trimDecimals,
56
+ min,
57
+ max
48
58
  }, inputRef);
49
- const {
50
- value,
51
- onBlur,
52
- onKeyDown,
53
- onChange,
54
- onClick,
55
- onDoubleClick,
56
- onFocus
57
- } = inputProps;
58
59
  return /*#__PURE__*/React.createElement(Input, _extends({}, rest, {
59
60
  ref: handleRef,
60
61
  placeholder: placeholder,
@@ -1 +1 @@
1
- {"version":3,"file":"InputNumber.js","names":["React","forwardRef","useRef","Input","useInputNumber","useForkRef","InputNumber","_ref","ref","decimalLength","decimalSeparator","disableAbbreviation","disabled","disableMacros","invalid","step","thousandSeparator","value","defaultValue","onCancel","onSave","onEnterKeyPress","externalEnterKeyPress","allowEmptyValue","onChange","externalOnChange","onClick","externalOnClick","limit","placeholder","trimDecimals","rest","inputRef","handleRef","inputProps","onBlur","onKeyDown","onDoubleClick","onFocus","createElement","_extends","type","displayName"],"sources":["../../../../src/components/Input/InputNumber.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from \"react\";\n\nimport { Input, InputProps } from \"./Input\";\nimport { IInputNumber, useInputNumber } from \"../../hooks\";\nimport { useForkRef } from \"../../utils\";\n\nexport interface InputNumberProps\n extends Omit<InputProps, \"value\" | \"onChange\" | \"step\">,\n IInputNumber {}\n\nexport const InputNumber = forwardRef<HTMLInputElement, InputNumberProps>(\n (\n {\n decimalLength = 2,\n decimalSeparator = \".\",\n disableAbbreviation = false,\n disabled,\n disableMacros = false,\n invalid,\n step = 1,\n thousandSeparator = \",\",\n value: defaultValue,\n onCancel,\n onSave,\n onEnterKeyPress: externalEnterKeyPress,\n allowEmptyValue,\n onChange: externalOnChange,\n onClick: externalOnClick,\n limit,\n placeholder,\n trimDecimals = true,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const { inputProps } = useInputNumber(\n {\n decimalLength,\n decimalSeparator,\n disableAbbreviation,\n disableMacros,\n step,\n thousandSeparator,\n onEnterKeyPress: externalEnterKeyPress,\n onChange: externalOnChange,\n onClick: externalOnClick,\n value: defaultValue,\n onCancel,\n onSave,\n allowEmptyValue,\n limit,\n trimDecimals,\n },\n inputRef\n );\n const {\n value,\n onBlur,\n onKeyDown,\n onChange,\n onClick,\n onDoubleClick,\n onFocus,\n } = inputProps;\n\n return (\n <Input\n {...rest}\n ref={handleRef}\n placeholder={placeholder}\n value={value}\n type=\"text\"\n disabled={disabled}\n invalid={invalid}\n onChange={onChange}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onFocus={onFocus}\n aria-placeholder={placeholder}\n aria-disabled={disabled}\n aria-invalid={invalid}\n />\n );\n }\n);\n\nInputNumber.displayName = \"InputNumber\";\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AAEjD,SAASC,KAAK,QAAoB,SAAS;AAC3C,SAAuBC,cAAc,QAAQ,aAAa;AAC1D,SAASC,UAAU,QAAQ,aAAa;AAMxC,OAAO,MAAMC,WAAW,gBAAGL,UAAU,CACnC,CAAAM,IAAA,EAsBEC,GAAG,KACA;EAAA,IAtBH;IACEC,aAAa,GAAG,CAAC;IACjBC,gBAAgB,GAAG,GAAG;IACtBC,mBAAmB,GAAG,KAAK;IAC3BC,QAAQ;IACRC,aAAa,GAAG,KAAK;IACrBC,OAAO;IACPC,IAAI,GAAG,CAAC;IACRC,iBAAiB,GAAG,GAAG;IACvBC,KAAK,EAAEC,YAAY;IACnBC,QAAQ;IACRC,MAAM;IACNC,eAAe,EAAEC,qBAAqB;IACtCC,eAAe;IACfC,QAAQ,EAAEC,gBAAgB;IAC1BC,OAAO,EAAEC,eAAe;IACxBC,KAAK;IACLC,WAAW;IACXC,YAAY,GAAG,IAAI;IACnB,GAAGC;EACL,CAAC,GAAAxB,IAAA;EAGD,MAAMyB,QAAQ,GAAG9B,MAAM,CAA0B,IAAI,CAAC;EACtD,MAAM+B,SAAS,GAAG5B,UAAU,CAACG,GAAG,EAAEwB,QAAQ,CAAC;EAE3C,MAAM;IAAEE;EAAW,CAAC,GAAG9B,cAAc,CACnC;IACEK,aAAa;IACbC,gBAAgB;IAChBC,mBAAmB;IACnBE,aAAa;IACbE,IAAI;IACJC,iBAAiB;IACjBK,eAAe,EAAEC,qBAAqB;IACtCE,QAAQ,EAAEC,gBAAgB;IAC1BC,OAAO,EAAEC,eAAe;IACxBV,KAAK,EAAEC,YAAY;IACnBC,QAAQ;IACRC,MAAM;IACNG,eAAe;IACfK,KAAK;IACLE;EACF,CAAC,EACDE,QACF,CAAC;EACD,MAAM;IACJf,KAAK;IACLkB,MAAM;IACNC,SAAS;IACTZ,QAAQ;IACRE,OAAO;IACPW,aAAa;IACbC;EACF,CAAC,GAAGJ,UAAU;EAEd,oBACElC,KAAA,CAAAuC,aAAA,CAACpC,KAAK,EAAAqC,QAAA,KACAT,IAAI;IACRvB,GAAG,EAAEyB,SAAU;IACfJ,WAAW,EAAEA,WAAY;IACzBZ,KAAK,EAAEA,KAAM;IACbwB,IAAI,EAAC,MAAM;IACX7B,QAAQ,EAAEA,QAAS;IACnBE,OAAO,EAAEA,OAAQ;IACjBU,QAAQ,EAAEA,QAAS;IACnBW,MAAM,EAAEA,MAAO;IACfC,SAAS,EAAEA,SAAU;IACrBV,OAAO,EAAEA,OAAQ;IACjBW,aAAa,EAAEA,aAAc;IAC7BC,OAAO,EAAEA,OAAQ;IACjB,oBAAkBT,WAAY;IAC9B,iBAAejB,QAAS;IACxB,gBAAcE;EAAQ,EACvB,CAAC;AAEN,CACF,CAAC;AAEDR,WAAW,CAACoC,WAAW,GAAG,aAAa"}
1
+ {"version":3,"file":"InputNumber.js","names":["React","forwardRef","useRef","Input","useInputNumber","useForkRef","InputNumber","_ref","ref","decimalLength","decimalSeparator","disableAbbreviation","disabled","disableMacros","invalid","step","thousandSeparator","value","defaultValue","onCancel","onSave","onEnterKeyPress","externalEnterKeyPress","allowEmptyValue","onChange","externalOnChange","onClick","externalOnClick","limit","placeholder","trimDecimals","min","max","rest","inputRef","handleRef","onBlur","onKeyDown","onFocus","onDoubleClick","createElement","_extends","type","displayName"],"sources":["../../../../src/components/Input/InputNumber.tsx"],"sourcesContent":["import React, { forwardRef, useRef } from \"react\";\n\nimport { Input, InputProps } from \"./Input\";\nimport { IInputNumber, useInputNumber } from \"../../hooks\";\nimport { useForkRef } from \"../../utils\";\n\nexport interface InputNumberProps\n extends Omit<InputProps, \"value\" | \"onChange\" | \"step\">,\n IInputNumber {}\n\nexport const InputNumber = forwardRef<HTMLInputElement, InputNumberProps>(\n (\n {\n decimalLength = 2,\n decimalSeparator = \".\",\n disableAbbreviation = false,\n disabled,\n disableMacros = false,\n invalid,\n step = 1,\n thousandSeparator = \",\",\n value: defaultValue,\n onCancel,\n onSave,\n onEnterKeyPress: externalEnterKeyPress,\n allowEmptyValue,\n onChange: externalOnChange,\n onClick: externalOnClick,\n limit,\n placeholder,\n trimDecimals = true,\n min,\n max,\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 },\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":";AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AAEjD,SAASC,KAAK,QAAoB,SAAS;AAC3C,SAAuBC,cAAc,QAAQ,aAAa;AAC1D,SAASC,UAAU,QAAQ,aAAa;AAMxC,OAAO,MAAMC,WAAW,gBAAGL,UAAU,CACnC,CAAAM,IAAA,EAwBEC,GAAG,KACA;EAAA,IAxBH;IACEC,aAAa,GAAG,CAAC;IACjBC,gBAAgB,GAAG,GAAG;IACtBC,mBAAmB,GAAG,KAAK;IAC3BC,QAAQ;IACRC,aAAa,GAAG,KAAK;IACrBC,OAAO;IACPC,IAAI,GAAG,CAAC;IACRC,iBAAiB,GAAG,GAAG;IACvBC,KAAK,EAAEC,YAAY;IACnBC,QAAQ;IACRC,MAAM;IACNC,eAAe,EAAEC,qBAAqB;IACtCC,eAAe;IACfC,QAAQ,EAAEC,gBAAgB;IAC1BC,OAAO,EAAEC,eAAe;IACxBC,KAAK;IACLC,WAAW;IACXC,YAAY,GAAG,IAAI;IACnBC,GAAG;IACHC,GAAG;IACH,GAAGC;EACL,CAAC,GAAA1B,IAAA;EAGD,MAAM2B,QAAQ,GAAGhC,MAAM,CAA0B,IAAI,CAAC;EACtD,MAAMiC,SAAS,GAAG9B,UAAU,CAACG,GAAG,EAAE0B,QAAQ,CAAC;EAE3C,MAAM;IACJjB,KAAK;IACLmB,MAAM;IACNC,SAAS;IACTb,QAAQ;IACRE,OAAO;IACPY,OAAO;IACPC;EACF,CAAC,GAAGnC,cAAc,CAChB;IACEK,aAAa;IACbC,gBAAgB;IAChBC,mBAAmB;IACnBE,aAAa;IACbE,IAAI;IACJC,iBAAiB;IACjBK,eAAe,EAAEC,qBAAqB;IACtCE,QAAQ,EAAEC,gBAAgB;IAC1BC,OAAO,EAAEC,eAAe;IACxBV,KAAK,EAAEC,YAAY;IACnBC,QAAQ;IACRC,MAAM;IACNG,eAAe;IACfK,KAAK;IACLE,YAAY;IACZC,GAAG;IACHC;EACF,CAAC,EACDE,QACF,CAAC;EAED,oBACElC,KAAA,CAAAwC,aAAA,CAACrC,KAAK,EAAAsC,QAAA,KACAR,IAAI;IACRzB,GAAG,EAAE2B,SAAU;IACfN,WAAW,EAAEA,WAAY;IACzBZ,KAAK,EAAEA,KAAM;IACbyB,IAAI,EAAC,MAAM;IACX9B,QAAQ,EAAEA,QAAS;IACnBE,OAAO,EAAEA,OAAQ;IACjBU,QAAQ,EAAEA,QAAS;IACnBY,MAAM,EAAEA,MAAO;IACfC,SAAS,EAAEA,SAAU;IACrBX,OAAO,EAAEA,OAAQ;IACjBa,aAAa,EAAEA,aAAc;IAC7BD,OAAO,EAAEA,OAAQ;IACjB,oBAAkBT,WAAY;IAC9B,iBAAejB,QAAS;IACxB,gBAAcE;EAAQ,EACvB,CAAC;AAEN,CACF,CAAC;AAEDR,WAAW,CAACqC,WAAW,GAAG,aAAa"}
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
- import { ProgressRingProps } from "../ProgressRing";
2
+ import { ProgressCircleProps } from "../ProgressRing";
3
3
  export declare const ProgressPie: {
4
- ({ radius, ...rest }: Omit<ProgressRingProps, "stroke" | "fontSize" | "showPercentage">): React.JSX.Element;
4
+ ({ radius, ...rest }: Omit<ProgressCircleProps, "stroke" | "fontSize" | "showPercentage" | "roundStroke">): React.JSX.Element;
5
5
  displayName: string;
6
6
  };
7
7
  //# sourceMappingURL=ProgressPie.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressPie.d.ts","sourceRoot":"","sources":["../../../../src/components/ProgressPie/ProgressPie.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAgB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAElE,eAAO,MAAM,WAAW;0BAGrB,KAAK,iBAAiB,EAAE,QAAQ,GAAG,UAAU,GAAG,gBAAgB,CAAC;;CAEnE,CAAC"}
1
+ {"version":3,"file":"ProgressPie.d.ts","sourceRoot":"","sources":["../../../../src/components/ProgressPie/ProgressPie.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAkB,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,eAAO,MAAM,WAAW;0BAGrB,KACD,mBAAmB,EACnB,QAAQ,GAAG,UAAU,GAAG,gBAAgB,GAAG,aAAa,CACzD;;CAEA,CAAC"}
@@ -1,12 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import React from "react";
3
- import { ProgressRing } from "../ProgressRing";
3
+ import { ProgressCircle } from "../ProgressRing";
4
4
  export const ProgressPie = _ref => {
5
5
  let {
6
6
  radius = 20,
7
7
  ...rest
8
8
  } = _ref;
9
- return /*#__PURE__*/React.createElement(ProgressRing, _extends({}, rest, {
9
+ return /*#__PURE__*/React.createElement(ProgressCircle, _extends({}, rest, {
10
10
  stroke: radius,
11
11
  radius: radius
12
12
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressPie.js","names":["React","ProgressRing","ProgressPie","_ref","radius","rest","createElement","_extends","stroke","displayName"],"sources":["../../../../src/components/ProgressPie/ProgressPie.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { ProgressRing, ProgressRingProps } from \"../ProgressRing\";\n\nexport const ProgressPie = ({\n radius = 20,\n ...rest\n}: Omit<ProgressRingProps, \"stroke\" | \"fontSize\" | \"showPercentage\">) => {\n return <ProgressRing {...rest} stroke={radius} radius={radius} />;\n};\n\nProgressPie.displayName = \"ProgressPie\";\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,YAAY,QAA2B,iBAAiB;AAEjE,OAAO,MAAMC,WAAW,GAAGC,IAAA,IAG8C;EAAA,IAH7C;IAC1BC,MAAM,GAAG,EAAE;IACX,GAAGC;EAC8D,CAAC,GAAAF,IAAA;EAClE,oBAAOH,KAAA,CAAAM,aAAA,CAACL,YAAY,EAAAM,QAAA,KAAKF,IAAI;IAAEG,MAAM,EAAEJ,MAAO;IAACA,MAAM,EAAEA;EAAO,EAAE,CAAC;AACnE,CAAC;AAEDF,WAAW,CAACO,WAAW,GAAG,aAAa"}
1
+ {"version":3,"file":"ProgressPie.js","names":["React","ProgressCircle","ProgressPie","_ref","radius","rest","createElement","_extends","stroke","displayName"],"sources":["../../../../src/components/ProgressPie/ProgressPie.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { ProgressCircle, ProgressCircleProps } from \"../ProgressRing\";\n\nexport const ProgressPie = ({\n radius = 20,\n ...rest\n}: Omit<\n ProgressCircleProps,\n \"stroke\" | \"fontSize\" | \"showPercentage\" | \"roundStroke\"\n>) => {\n return <ProgressCircle {...rest} stroke={radius} radius={radius} />;\n};\n\nProgressPie.displayName = \"ProgressPie\";\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,cAAc,QAA6B,iBAAiB;AAErE,OAAO,MAAMC,WAAW,GAAGC,IAAA,IAMrB;EAAA,IANsB;IAC1BC,MAAM,GAAG,EAAE;IACX,GAAGC;EAIL,CAAC,GAAAF,IAAA;EACC,oBAAOH,KAAA,CAAAM,aAAA,CAACL,cAAc,EAAAM,QAAA,KAAKF,IAAI;IAAEG,MAAM,EAAEJ,MAAO;IAACA,MAAM,EAAEA;EAAO,EAAE,CAAC;AACrE,CAAC;AAEDF,WAAW,CAACO,WAAW,GAAG,aAAa"}
@@ -1,15 +1,17 @@
1
- import React from "react";
2
- export interface ProgressRingProps {
3
- /** Progress prop can be number. */
1
+ import React, { ReactNode } from "react";
2
+ export interface ProgressCircleProps {
3
+ /** Progress prop can be number */
4
4
  progress?: number;
5
- /** Custom classname for styling. */
5
+ /** Background color */
6
6
  backgroundColor?: string;
7
- /** Custom classname for styling. */
7
+ /** Progress color */
8
8
  progressColor?: string;
9
- /** Custom classname for styling. */
9
+ /** Radius size */
10
10
  radius?: number;
11
- /** Custom classname for styling. */
11
+ /** Stroke size */
12
12
  stroke?: number;
13
+ /** Should stroke line be rounded */
14
+ roundStroke?: boolean;
13
15
  /** Applies passed classes */
14
16
  className?: string;
15
17
  /** Should the percentage be displayed inside ring or not */
@@ -17,8 +19,12 @@ export interface ProgressRingProps {
17
19
  /** Size of displayed percentage */
18
20
  fontSize?: number;
19
21
  }
22
+ export interface ProgressRingProps extends ProgressCircleProps {
23
+ children?: ReactNode;
24
+ }
25
+ export declare const ProgressCircle: ({ backgroundColor, progressColor, progress, radius, stroke, roundStroke, className, showPercentage, fontSize, }: ProgressCircleProps) => React.JSX.Element;
20
26
  export declare const ProgressRing: {
21
- ({ backgroundColor, progressColor, progress, radius, stroke, className, showPercentage, fontSize, }: ProgressRingProps): React.JSX.Element;
27
+ ({ className, children, ...rest }: ProgressRingProps): React.JSX.Element;
22
28
  displayName: string;
23
29
  };
24
30
  //# sourceMappingURL=ProgressRing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressRing.d.ts","sourceRoot":"","sources":["../../../../src/components/ProgressRing/ProgressRing.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAWvC,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oCAAoC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,YAAY;yGAStB,iBAAiB;;CAoEnB,CAAC"}
1
+ {"version":3,"file":"ProgressRing.d.ts","sourceRoot":"","sources":["../../../../src/components/ProgressRing/ProgressRing.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAalD,MAAM,WAAW,mBAAmB;IAClC,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,oHAUxB,mBAAmB,sBAgErB,CAAC;AAEF,eAAO,MAAM,YAAY;uCAItB,iBAAiB;;CAYnB,CAAC"}
@@ -1,13 +1,14 @@
1
1
  import React, { useMemo } from "react";
2
2
  import classNames from "classnames";
3
- import { StyledBackgroundCircle, StyledForegroundCircle, StyledSvg, StyledProgressRingPercentage } from "./Styles";
4
- export const ProgressRing = _ref => {
3
+ import { StyledWrapper, StyledChildrenWrapper, StyledBackgroundCircle, StyledForegroundCircle, StyledSvg, StyledProgressRingPercentage } from "./Styles";
4
+ export const ProgressCircle = _ref => {
5
5
  let {
6
6
  backgroundColor,
7
7
  progressColor,
8
8
  progress = 0,
9
9
  radius = 20,
10
10
  stroke = 3,
11
+ roundStroke,
11
12
  className,
12
13
  showPercentage = false,
13
14
  fontSize
@@ -33,7 +34,7 @@ export const ProgressRing = _ref => {
33
34
  return /*#__PURE__*/React.createElement(StyledSvg, {
34
35
  height: radius * 2,
35
36
  width: radius * 2,
36
- className: classNames(className)
37
+ className: className
37
38
  }, /*#__PURE__*/React.createElement(StyledBackgroundCircle, {
38
39
  $color: backgroundColor,
39
40
  $strokeDashOffset: -strokeDashoffsetOuter,
@@ -47,6 +48,7 @@ export const ProgressRing = _ref => {
47
48
  $strokeDashOffset: strokeDashoffsetInner,
48
49
  strokeWidth: stroke,
49
50
  strokeDasharray: circumference + " " + circumference,
51
+ $roundStroke: roundStroke,
50
52
  r: normalizedRadius,
51
53
  cx: radius,
52
54
  cy: radius
@@ -59,5 +61,16 @@ export const ProgressRing = _ref => {
59
61
  textAnchor: "middle"
60
62
  }, progressNumber, "%") : null);
61
63
  };
64
+ export const ProgressRing = _ref2 => {
65
+ let {
66
+ className,
67
+ children,
68
+ ...rest
69
+ } = _ref2;
70
+ return /*#__PURE__*/React.createElement(StyledWrapper, {
71
+ className: classNames(className),
72
+ "data-testid": "progress-ring"
73
+ }, /*#__PURE__*/React.createElement(ProgressCircle, rest), children ? /*#__PURE__*/React.createElement(StyledChildrenWrapper, null, children) : null);
74
+ };
62
75
  ProgressRing.displayName = "ProgressRing";
63
76
  //# sourceMappingURL=ProgressRing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressRing.js","names":["React","useMemo","classNames","StyledBackgroundCircle","StyledForegroundCircle","StyledSvg","StyledProgressRingPercentage","ProgressRing","_ref","backgroundColor","progressColor","progress","radius","stroke","className","showPercentage","fontSize","console","warn","progressNumber","width","normalizedRadius","circumference","Math","PI","strokeDashoffsetOuter","strokeDashoffsetInner","createElement","height","$color","$strokeDashOffset","strokeWidth","strokeDasharray","r","cx","cy","$fontSize","x","y","dominantBaseline","textAnchor","displayName"],"sources":["../../../../src/components/ProgressRing/ProgressRing.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\n\nimport classNames from \"classnames\";\n\nimport {\n StyledBackgroundCircle,\n StyledForegroundCircle,\n StyledSvg,\n StyledProgressRingPercentage,\n} from \"./Styles\";\n\nexport interface ProgressRingProps {\n /** Progress prop can be number. */\n progress?: number;\n /** Custom classname for styling. */\n backgroundColor?: string;\n /** Custom classname for styling. */\n progressColor?: string;\n /** Custom classname for styling. */\n radius?: number;\n /** Custom classname for styling. */\n stroke?: number;\n /** Applies passed classes */\n className?: string;\n /** Should the percentage be displayed inside ring or not */\n showPercentage?: boolean;\n /** Size of displayed percentage */\n fontSize?: number;\n}\n\nexport const ProgressRing = ({\n backgroundColor,\n progressColor,\n progress = 0,\n radius = 20,\n stroke = 3,\n className,\n showPercentage = false,\n fontSize,\n}: ProgressRingProps) => {\n if (stroke > radius) {\n console.warn(\"Stroke can not have value greater than the radius.\");\n stroke = radius;\n }\n const progressNumber = useMemo(() => {\n let width = progress;\n if (progress > 100) {\n width = 100;\n }\n if (progress < 0) {\n width = 0;\n }\n return width;\n }, [progress]);\n\n const normalizedRadius = useMemo(() => radius - stroke / 2, [radius, stroke]);\n const circumference = useMemo(\n () => normalizedRadius * 2 * Math.PI,\n [normalizedRadius]\n );\n const strokeDashoffsetOuter = useMemo(\n () => circumference - ((100 - progressNumber) / 100) * circumference,\n [circumference, progressNumber]\n );\n const strokeDashoffsetInner = useMemo(\n () => circumference - (progressNumber / 100) * circumference,\n [circumference, progressNumber]\n );\n\n return (\n <StyledSvg\n height={radius * 2}\n width={radius * 2}\n className={classNames(className)}\n >\n <StyledBackgroundCircle\n $color={backgroundColor}\n $strokeDashOffset={-strokeDashoffsetOuter}\n strokeWidth={stroke}\n strokeDasharray={`${circumference} ${circumference}`}\n r={normalizedRadius}\n cx={radius}\n cy={radius}\n />\n <StyledForegroundCircle\n $color={progressColor}\n $strokeDashOffset={strokeDashoffsetInner}\n strokeWidth={stroke}\n strokeDasharray={`${circumference} ${circumference}`}\n r={normalizedRadius}\n cx={radius}\n cy={radius}\n />\n {showPercentage ? (\n <StyledProgressRingPercentage\n $color={progressColor}\n $fontSize={fontSize}\n x=\"50%\"\n y=\"-50%\"\n dominantBaseline=\"central\"\n textAnchor=\"middle\"\n >\n {progressNumber}%\n </StyledProgressRingPercentage>\n ) : null}\n </StyledSvg>\n );\n};\n\nProgressRing.displayName = \"ProgressRing\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"ProgressRing.js","names":["React","useMemo","classNames","StyledWrapper","StyledChildrenWrapper","StyledBackgroundCircle","StyledForegroundCircle","StyledSvg","StyledProgressRingPercentage","ProgressCircle","_ref","backgroundColor","progressColor","progress","radius","stroke","roundStroke","className","showPercentage","fontSize","console","warn","progressNumber","width","normalizedRadius","circumference","Math","PI","strokeDashoffsetOuter","strokeDashoffsetInner","createElement","height","$color","$strokeDashOffset","strokeWidth","strokeDasharray","r","cx","cy","$roundStroke","$fontSize","x","y","dominantBaseline","textAnchor","ProgressRing","_ref2","children","rest","displayName"],"sources":["../../../../src/components/ProgressRing/ProgressRing.tsx"],"sourcesContent":["import React, { ReactNode, useMemo } from \"react\";\n\nimport classNames from \"classnames\";\n\nimport {\n StyledWrapper,\n StyledChildrenWrapper,\n StyledBackgroundCircle,\n StyledForegroundCircle,\n StyledSvg,\n StyledProgressRingPercentage,\n} from \"./Styles\";\n\nexport interface ProgressCircleProps {\n /** Progress prop can be number */\n progress?: number;\n /** Background color */\n backgroundColor?: string;\n /** Progress color */\n progressColor?: string;\n /** Radius size */\n radius?: number;\n /** Stroke size */\n stroke?: number;\n /** Should stroke line be rounded */\n roundStroke?: boolean;\n /** Applies passed classes */\n className?: string;\n /** Should the percentage be displayed inside ring or not */\n showPercentage?: boolean;\n /** Size of displayed percentage */\n fontSize?: number;\n}\n\nexport interface ProgressRingProps extends ProgressCircleProps {\n children?: ReactNode;\n}\n\nexport const ProgressCircle = ({\n backgroundColor,\n progressColor,\n progress = 0,\n radius = 20,\n stroke = 3,\n roundStroke,\n className,\n showPercentage = false,\n fontSize,\n}: ProgressCircleProps) => {\n if (stroke > radius) {\n console.warn(\"Stroke can not have value greater than the radius.\");\n stroke = radius;\n }\n const progressNumber = useMemo(() => {\n let width = progress;\n if (progress > 100) {\n width = 100;\n }\n if (progress < 0) {\n width = 0;\n }\n return width;\n }, [progress]);\n\n const normalizedRadius = useMemo(() => radius - stroke / 2, [radius, stroke]);\n const circumference = useMemo(\n () => normalizedRadius * 2 * Math.PI,\n [normalizedRadius]\n );\n const strokeDashoffsetOuter = useMemo(\n () => circumference - ((100 - progressNumber) / 100) * circumference,\n [circumference, progressNumber]\n );\n const strokeDashoffsetInner = useMemo(\n () => circumference - (progressNumber / 100) * circumference,\n [circumference, progressNumber]\n );\n return (\n <StyledSvg height={radius * 2} width={radius * 2} className={className}>\n <StyledBackgroundCircle\n $color={backgroundColor}\n $strokeDashOffset={-strokeDashoffsetOuter}\n strokeWidth={stroke}\n strokeDasharray={`${circumference} ${circumference}`}\n r={normalizedRadius}\n cx={radius}\n cy={radius}\n />\n <StyledForegroundCircle\n $color={progressColor}\n $strokeDashOffset={strokeDashoffsetInner}\n strokeWidth={stroke}\n strokeDasharray={`${circumference} ${circumference}`}\n $roundStroke={roundStroke}\n r={normalizedRadius}\n cx={radius}\n cy={radius}\n />\n {showPercentage ? (\n <StyledProgressRingPercentage\n $color={progressColor}\n $fontSize={fontSize}\n x=\"50%\"\n y=\"-50%\"\n dominantBaseline=\"central\"\n textAnchor=\"middle\"\n >\n {progressNumber}%\n </StyledProgressRingPercentage>\n ) : null}\n </StyledSvg>\n );\n};\n\nexport const ProgressRing = ({\n className,\n children,\n ...rest\n}: ProgressRingProps) => {\n return (\n <StyledWrapper\n className={classNames(className)}\n data-testid=\"progress-ring\"\n >\n <ProgressCircle {...rest} />\n {children ? (\n <StyledChildrenWrapper>{children}</StyledChildrenWrapper>\n ) : null}\n </StyledWrapper>\n );\n};\n\nProgressRing.displayName = \"ProgressRing\";\n"],"mappings":"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"}
@@ -2,7 +2,10 @@ interface IStyledProgressRing {
2
2
  $color?: string;
3
3
  $strokeDashOffset?: number;
4
4
  $fontSize?: number;
5
+ $roundStroke?: boolean;
5
6
  }
7
+ export declare const StyledWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
8
+ export declare const StyledChildrenWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
6
9
  export declare const StyledSvg: import("styled-components").StyledComponent<"svg", any, {}, never>;
7
10
  export declare const StyledBackgroundCircle: import("styled-components").StyledComponent<"circle", any, IStyledProgressRing, never>;
8
11
  export declare const StyledForegroundCircle: import("styled-components").StyledComponent<"circle", any, IStyledProgressRing, never>;
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/ProgressRing/Styles.ts"],"names":[],"mappings":"AAEA,UAAU,mBAAmB;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,oEAErB,CAAC;AAIF,eAAO,MAAM,sBAAsB,wFAkBlC,CAAC;AAIF,eAAO,MAAM,sBAAsB,wFAkBlC,CAAC;AAIF,eAAO,MAAM,4BAA4B,sFAoBxC,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/ProgressRing/Styles.ts"],"names":[],"mappings":"AAEA,UAAU,mBAAmB;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,aAAa,oEAGzB,CAAC;AAIF,eAAO,MAAM,qBAAqB,oEAKjC,CAAC;AAIF,eAAO,MAAM,SAAS,oEAErB,CAAC;AAIF,eAAO,MAAM,sBAAsB,wFAkBlC,CAAC;AAIF,eAAO,MAAM,sBAAsB,wFAwBlC,CAAC;AAIF,eAAO,MAAM,4BAA4B,sFAoBxC,CAAC"}
@@ -1,22 +1,32 @@
1
1
  import styled, { css } from "styled-components";
2
+ export const StyledWrapper = styled.div.withConfig({
3
+ displayName: "Styles__StyledWrapper",
4
+ componentId: "sc-o6dcyu-0"
5
+ })(["position:relative;display:inline-flex;"]);
6
+ StyledWrapper.displayName = "StyledWrapper";
7
+ export const StyledChildrenWrapper = styled.div.withConfig({
8
+ displayName: "Styles__StyledChildrenWrapper",
9
+ componentId: "sc-o6dcyu-1"
10
+ })(["position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);"]);
11
+ StyledChildrenWrapper.displayName = "StyledChildrenWrapper";
2
12
  export const StyledSvg = styled.svg.withConfig({
3
13
  displayName: "Styles__StyledSvg",
4
- componentId: "sc-o6dcyu-0"
14
+ componentId: "sc-o6dcyu-2"
5
15
  })(["transform:rotate(-90deg);"]);
6
16
  StyledSvg.displayName = "StyledSvg";
7
17
  export const StyledBackgroundCircle = styled.circle.withConfig({
8
18
  displayName: "Styles__StyledBackgroundCircle",
9
- componentId: "sc-o6dcyu-1"
19
+ componentId: "sc-o6dcyu-3"
10
20
  })(["fill:transparent;transition:stroke-dashoffset 0.5s linear;", " ", ""], props => props.$color ? css(["stroke:", ";"], props.$color) : css(["stroke:var(--color-theme-transparent-300);"]), props => props.$strokeDashOffset && css(["stroke-dashoffset:", ";"], props.$strokeDashOffset));
11
21
  StyledBackgroundCircle.displayName = "StyledBackgroundCircle";
12
22
  export const StyledForegroundCircle = styled.circle.withConfig({
13
23
  displayName: "Styles__StyledForegroundCircle",
14
- componentId: "sc-o6dcyu-2"
15
- })(["fill:transparent;transition:stroke-dashoffset 0.5s linear;", " ", ""], props => props.$color ? css(["stroke:", ";"], props.$color) : css(["stroke:var(--color-secondary);"]), props => props.$strokeDashOffset && css(["stroke-dashoffset:", ";"], props.$strokeDashOffset));
24
+ componentId: "sc-o6dcyu-4"
25
+ })(["fill:transparent;transition:stroke-dashoffset 0.5s linear;", " ", " ", ""], props => props.$roundStroke && css(["stroke-linecap:round;"]), props => props.$color ? css(["stroke:", ";"], props.$color) : css(["stroke:var(--color-secondary);"]), props => props.$strokeDashOffset && css(["stroke-dashoffset:", ";"], props.$strokeDashOffset));
16
26
  StyledForegroundCircle.displayName = "StyledForegroundCircle";
17
27
  export const StyledProgressRingPercentage = styled.text.withConfig({
18
28
  displayName: "Styles__StyledProgressRingPercentage",
19
- componentId: "sc-o6dcyu-3"
29
+ componentId: "sc-o6dcyu-5"
20
30
  })(["transform:rotate(90deg);", " ", ""], props => props.$color ? css(["fill:", ";"], props.$color) : css(["fill:var(--color-secondary);"]), props => props.$fontSize ? css(["font-size:", "px;"], props.$fontSize) : css(["font-size:10px;"]));
21
31
  StyledProgressRingPercentage.displayName = "StyledProgressRingPercentage";
22
32
  //# sourceMappingURL=Styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["styled","css","StyledSvg","svg","withConfig","displayName","componentId","StyledBackgroundCircle","circle","props","$color","$strokeDashOffset","StyledForegroundCircle","StyledProgressRingPercentage","text","$fontSize"],"sources":["../../../../src/components/ProgressRing/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\n\ninterface IStyledProgressRing {\n $color?: string;\n $strokeDashOffset?: number;\n $fontSize?: number;\n}\n\nexport const StyledSvg = styled.svg`\n transform: rotate(-90deg);\n`;\n\nStyledSvg.displayName = \"StyledSvg\";\n\nexport const StyledBackgroundCircle = styled.circle<IStyledProgressRing>`\n fill: transparent;\n transition: stroke-dashoffset 0.5s linear;\n\n ${(props) =>\n props.$color\n ? css`\n stroke: ${props.$color};\n `\n : css`\n stroke: var(--color-theme-transparent-300);\n `}\n\n ${(props) =>\n props.$strokeDashOffset &&\n css`\n stroke-dashoffset: ${props.$strokeDashOffset};\n `}\n`;\n\nStyledBackgroundCircle.displayName = \"StyledBackgroundCircle\";\n\nexport const StyledForegroundCircle = styled.circle<IStyledProgressRing>`\n fill: transparent;\n transition: stroke-dashoffset 0.5s linear;\n\n ${(props) =>\n props.$color\n ? css`\n stroke: ${props.$color};\n `\n : css`\n stroke: var(--color-secondary);\n `}\n\n ${(props) =>\n props.$strokeDashOffset &&\n css`\n stroke-dashoffset: ${props.$strokeDashOffset};\n `}\n`;\n\nStyledForegroundCircle.displayName = \"StyledForegroundCircle\";\n\nexport const StyledProgressRingPercentage = styled.text<IStyledProgressRing>`\n transform: rotate(90deg);\n\n ${(props) =>\n props.$color\n ? css`\n fill: ${props.$color};\n `\n : css`\n fill: var(--color-secondary);\n `}\n\n ${(props) =>\n props.$fontSize\n ? css`\n font-size: ${props.$fontSize}px;\n `\n : css`\n font-size: 10px;\n `}\n`;\n\nStyledProgressRingPercentage.displayName = \"StyledProgressRingPercentage\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAQ/C,OAAO,MAAMC,SAAS,GAAGF,MAAM,CAACG,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,iCAElC;AAEDJ,SAAS,CAACG,WAAW,GAAG,WAAW;AAEnC,OAAO,MAAME,sBAAsB,GAAGP,MAAM,CAACQ,MAAM,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,4EAI9CG,KAAK,IACNA,KAAK,CAACC,MAAM,GACRT,GAAG,mBACSQ,KAAK,CAACC,MAAM,IAExBT,GAAG,gDAEF,EAEJQ,KAAK,IACNA,KAAK,CAACE,iBAAiB,IACvBV,GAAG,8BACoBQ,KAAK,CAACE,iBAAiB,CAC7C,CACJ;AAEDJ,sBAAsB,CAACF,WAAW,GAAG,wBAAwB;AAE7D,OAAO,MAAMO,sBAAsB,GAAGZ,MAAM,CAACQ,MAAM,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,4EAI9CG,KAAK,IACNA,KAAK,CAACC,MAAM,GACRT,GAAG,mBACSQ,KAAK,CAACC,MAAM,IAExBT,GAAG,oCAEF,EAEJQ,KAAK,IACNA,KAAK,CAACE,iBAAiB,IACvBV,GAAG,8BACoBQ,KAAK,CAACE,iBAAiB,CAC7C,CACJ;AAEDC,sBAAsB,CAACP,WAAW,GAAG,wBAAwB;AAE7D,OAAO,MAAMQ,4BAA4B,GAAGb,MAAM,CAACc,IAAI,CAAAV,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0CAGlDG,KAAK,IACNA,KAAK,CAACC,MAAM,GACRT,GAAG,iBACOQ,KAAK,CAACC,MAAM,IAEtBT,GAAG,kCAEF,EAEJQ,KAAK,IACNA,KAAK,CAACM,SAAS,GACXd,GAAG,wBACYQ,KAAK,CAACM,SAAS,IAE9Bd,GAAG,qBAEF,CACR;AAEDY,4BAA4B,CAACR,WAAW,GAAG,8BAA8B"}
1
+ {"version":3,"file":"Styles.js","names":["styled","css","StyledWrapper","div","withConfig","displayName","componentId","StyledChildrenWrapper","StyledSvg","svg","StyledBackgroundCircle","circle","props","$color","$strokeDashOffset","StyledForegroundCircle","$roundStroke","StyledProgressRingPercentage","text","$fontSize"],"sources":["../../../../src/components/ProgressRing/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\n\ninterface IStyledProgressRing {\n $color?: string;\n $strokeDashOffset?: number;\n $fontSize?: number;\n $roundStroke?: boolean;\n}\n\nexport const StyledWrapper = styled.div`\n position: relative;\n display: inline-flex;\n`;\n\nStyledWrapper.displayName = \"StyledWrapper\";\n\nexport const StyledChildrenWrapper = styled.div`\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n`;\n\nStyledChildrenWrapper.displayName = \"StyledChildrenWrapper\";\n\nexport const StyledSvg = styled.svg`\n transform: rotate(-90deg);\n`;\n\nStyledSvg.displayName = \"StyledSvg\";\n\nexport const StyledBackgroundCircle = styled.circle<IStyledProgressRing>`\n fill: transparent;\n transition: stroke-dashoffset 0.5s linear;\n\n ${(props) =>\n props.$color\n ? css`\n stroke: ${props.$color};\n `\n : css`\n stroke: var(--color-theme-transparent-300);\n `}\n\n ${(props) =>\n props.$strokeDashOffset &&\n css`\n stroke-dashoffset: ${props.$strokeDashOffset};\n `}\n`;\n\nStyledBackgroundCircle.displayName = \"StyledBackgroundCircle\";\n\nexport const StyledForegroundCircle = styled.circle<IStyledProgressRing>`\n fill: transparent;\n transition: stroke-dashoffset 0.5s linear;\n\n ${(props) =>\n props.$roundStroke &&\n css`\n stroke-linecap: round;\n `}\n\n ${(props) =>\n props.$color\n ? css`\n stroke: ${props.$color};\n `\n : css`\n stroke: var(--color-secondary);\n `}\n\n ${(props) =>\n props.$strokeDashOffset &&\n css`\n stroke-dashoffset: ${props.$strokeDashOffset};\n `}\n`;\n\nStyledForegroundCircle.displayName = \"StyledForegroundCircle\";\n\nexport const StyledProgressRingPercentage = styled.text<IStyledProgressRing>`\n transform: rotate(90deg);\n\n ${(props) =>\n props.$color\n ? css`\n fill: ${props.$color};\n `\n : css`\n fill: var(--color-secondary);\n `}\n\n ${(props) =>\n props.$fontSize\n ? css`\n font-size: ${props.$fontSize}px;\n `\n : css`\n font-size: 10px;\n `}\n`;\n\nStyledProgressRingPercentage.displayName = \"StyledProgressRingPercentage\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAS/C,OAAO,MAAMC,aAAa,GAAGF,MAAM,CAACG,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8CAGtC;AAEDJ,aAAa,CAACG,WAAW,GAAG,eAAe;AAE3C,OAAO,MAAME,qBAAqB,GAAGP,MAAM,CAACG,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0EAK9C;AAEDC,qBAAqB,CAACF,WAAW,GAAG,uBAAuB;AAE3D,OAAO,MAAMG,SAAS,GAAGR,MAAM,CAACS,GAAG,CAAAL,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,iCAElC;AAEDE,SAAS,CAACH,WAAW,GAAG,WAAW;AAEnC,OAAO,MAAMK,sBAAsB,GAAGV,MAAM,CAACW,MAAM,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,4EAI9CM,KAAK,IACNA,KAAK,CAACC,MAAM,GACRZ,GAAG,mBACSW,KAAK,CAACC,MAAM,IAExBZ,GAAG,gDAEF,EAEJW,KAAK,IACNA,KAAK,CAACE,iBAAiB,IACvBb,GAAG,8BACoBW,KAAK,CAACE,iBAAiB,CAC7C,CACJ;AAEDJ,sBAAsB,CAACL,WAAW,GAAG,wBAAwB;AAE7D,OAAO,MAAMU,sBAAsB,GAAGf,MAAM,CAACW,MAAM,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,iFAI9CM,KAAK,IACNA,KAAK,CAACI,YAAY,IAClBf,GAAG,2BAEF,EAEAW,KAAK,IACNA,KAAK,CAACC,MAAM,GACRZ,GAAG,mBACSW,KAAK,CAACC,MAAM,IAExBZ,GAAG,oCAEF,EAEJW,KAAK,IACNA,KAAK,CAACE,iBAAiB,IACvBb,GAAG,8BACoBW,KAAK,CAACE,iBAAiB,CAC7C,CACJ;AAEDC,sBAAsB,CAACV,WAAW,GAAG,wBAAwB;AAE7D,OAAO,MAAMY,4BAA4B,GAAGjB,MAAM,CAACkB,IAAI,CAAAd,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0CAGlDM,KAAK,IACNA,KAAK,CAACC,MAAM,GACRZ,GAAG,iBACOW,KAAK,CAACC,MAAM,IAEtBZ,GAAG,kCAEF,EAEJW,KAAK,IACNA,KAAK,CAACO,SAAS,GACXlB,GAAG,wBACYW,KAAK,CAACO,SAAS,IAE9BlB,GAAG,qBAEF,CACR;AAEDgB,4BAA4B,CAACZ,WAAW,GAAG,8BAA8B"}