@activecollab/components 2.0.204 → 2.0.206

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/cjs/components/EditableCurrency/EditableCurrency.js +2 -1
  2. package/dist/cjs/components/EditableCurrency/EditableCurrency.js.map +1 -1
  3. package/dist/cjs/components/Input/InputCurrency.js +1 -0
  4. package/dist/cjs/components/Input/InputCurrency.js.map +1 -1
  5. package/dist/cjs/components/Input/InputNumber.js +5 -2
  6. package/dist/cjs/components/Input/InputNumber.js.map +1 -1
  7. package/dist/cjs/components/ProgressBar/ProgressBar.js +5 -2
  8. package/dist/cjs/components/ProgressBar/ProgressBar.js.map +1 -1
  9. package/dist/cjs/hooks/useInputNumber.js +15 -13
  10. package/dist/cjs/hooks/useInputNumber.js.map +1 -1
  11. package/dist/cjs/utils/currencyUtils.js +6 -2
  12. package/dist/cjs/utils/currencyUtils.js.map +1 -1
  13. package/dist/cjs/utils/currencyUtils.test.js +12 -3
  14. package/dist/cjs/utils/currencyUtils.test.js.map +1 -1
  15. package/dist/cjs/utils/types.js.map +1 -1
  16. package/dist/esm/components/EditableCurrency/EditableCurrency.d.ts.map +1 -1
  17. package/dist/esm/components/EditableCurrency/EditableCurrency.js +2 -1
  18. package/dist/esm/components/EditableCurrency/EditableCurrency.js.map +1 -1
  19. package/dist/esm/components/Input/InputCurrency.d.ts.map +1 -1
  20. package/dist/esm/components/Input/InputCurrency.js +1 -0
  21. package/dist/esm/components/Input/InputCurrency.js.map +1 -1
  22. package/dist/esm/components/Input/InputNumber.d.ts +1 -0
  23. package/dist/esm/components/Input/InputNumber.d.ts.map +1 -1
  24. package/dist/esm/components/Input/InputNumber.js +3 -1
  25. package/dist/esm/components/Input/InputNumber.js.map +1 -1
  26. package/dist/esm/components/ProgressBar/ProgressBar.d.ts +1 -0
  27. package/dist/esm/components/ProgressBar/ProgressBar.d.ts.map +1 -1
  28. package/dist/esm/components/ProgressBar/ProgressBar.js +4 -2
  29. package/dist/esm/components/ProgressBar/ProgressBar.js.map +1 -1
  30. package/dist/esm/hooks/useInputNumber.d.ts +2 -1
  31. package/dist/esm/hooks/useInputNumber.d.ts.map +1 -1
  32. package/dist/esm/hooks/useInputNumber.js +14 -13
  33. package/dist/esm/hooks/useInputNumber.js.map +1 -1
  34. package/dist/esm/utils/currencyUtils.d.ts +3 -1
  35. package/dist/esm/utils/currencyUtils.d.ts.map +1 -1
  36. package/dist/esm/utils/currencyUtils.js +9 -3
  37. package/dist/esm/utils/currencyUtils.js.map +1 -1
  38. package/dist/esm/utils/currencyUtils.test.js +12 -3
  39. package/dist/esm/utils/currencyUtils.test.js.map +1 -1
  40. package/dist/esm/utils/types.d.ts +1 -0
  41. package/dist/esm/utils/types.d.ts.map +1 -1
  42. package/dist/esm/utils/types.js.map +1 -1
  43. package/dist/index.js +32 -20
  44. package/dist/index.js.map +1 -1
  45. package/dist/index.min.js +1 -1
  46. package/dist/index.min.js.map +1 -1
  47. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -642,6 +642,8 @@
642
642
  * @param {boolean} [trimDecimals=true] - Whether to trim decimals to the specified number of decimal spaces.
643
643
  * @param {number} [decimalSpaces=2] - The number of decimal spaces to keep in the formatted output.
644
644
  * @param {"long" | "short"} [format="long"] - The format type, either "long" for full numbers or "short" for shortened numbers with suffixes.
645
+ * @param {number} [shortenThreshold=1000] - The minimum numeric value at which the number should be shortened
646
+ * using suffixes. Numbers below this threshold will always be shown in long format.
645
647
  *
646
648
  * @returns {string} - The formatted number as a string with separators and potentially with decimals.
647
649
  *
@@ -655,6 +657,7 @@
655
657
  var trimDecimals = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
656
658
  var decimalSpaces = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 2;
657
659
  var format = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : "long";
660
+ var shortenThreshold = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 1000;
658
661
  var number = getNumberFromString(n, thousandSeparator, decimalSeperator);
659
662
  if (isNaN(number)) {
660
663
  return "";
@@ -663,7 +666,8 @@
663
666
  var absoluteNumber = Math.abs(number);
664
667
  var suffixes = ["", "K", "M", "B", "T"];
665
668
  var scale = 0;
666
- while (absoluteNumber >= 1000 && scale < suffixes.length - 1 && format === "short") {
669
+ var shouldShorten = absoluteNumber >= shortenThreshold && format === "short";
670
+ while (shouldShorten && scale < suffixes.length - 1 && absoluteNumber >= 1000) {
667
671
  absoluteNumber /= 1000;
668
672
  scale++;
669
673
  }
@@ -717,7 +721,7 @@
717
721
  var format = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : "long";
718
722
  var currencyCode = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : "";
719
723
  var currencyCodePosition = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : "right";
720
- var formattedNum = formatNumber(n, thousandSeparator, decimalSeperator, trimDecimals, decimalSpaces, format);
724
+ var formattedNum = formatNumber(n, thousandSeparator, decimalSeperator, trimDecimals, decimalSpaces, format, 10000);
721
725
  if (!currencyCode) {
722
726
  return formattedNum;
723
727
  }
@@ -14672,31 +14676,33 @@
14672
14676
  min = _ref.min,
14673
14677
  max = _ref.max,
14674
14678
  onBlur = _ref.onBlur,
14675
- update = _ref.update;
14679
+ update = _ref.update,
14680
+ _ref$shortenThreshold = _ref.shortenThreshold,
14681
+ shortenThreshold = _ref$shortenThreshold === void 0 ? 1000 : _ref$shortenThreshold;
14676
14682
  var isMaxValid = max === undefined || min === undefined || Number(max) >= Number(min);
14677
14683
  if (!isMaxValid) {
14678
14684
  console.warn("Warning: The maximum value is set to be lower than the minimum value. The maximum value will be ignored.");
14679
14685
  }
14680
14686
  var _useState = React.useState(function () {
14681
- return formatNumber(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short");
14687
+ return formatNumber(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short", shortenThreshold);
14682
14688
  }),
14683
14689
  _useState2 = _slicedToArray(_useState, 2),
14684
14690
  currentValue = _useState2[0],
14685
14691
  setCurrentValue = _useState2[1];
14686
14692
  var _useState3 = React.useState(function () {
14687
- return formatNumber(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short");
14693
+ return formatNumber(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short", shortenThreshold);
14688
14694
  }),
14689
14695
  _useState4 = _slicedToArray(_useState3, 2),
14690
14696
  prevValue = _useState4[0],
14691
14697
  setPrevValue = _useState4[1];
14692
14698
  var _useState5 = React.useState(function () {
14693
- return formatNumber(value, "", decimalSeparator, false, decimalLength, "long");
14699
+ return formatNumber(value, "", decimalSeparator, false, decimalLength, "long", shortenThreshold);
14694
14700
  }),
14695
14701
  _useState6 = _slicedToArray(_useState5, 2),
14696
14702
  unformattedValue = _useState6[0],
14697
14703
  setUnformattedValue = _useState6[1];
14698
14704
  var _useState7 = React.useState(function () {
14699
- return formatNumber(value, "", decimalSeparator, false, decimalLength, "long");
14705
+ return formatNumber(value, "", decimalSeparator, false, decimalLength, "long", shortenThreshold);
14700
14706
  }),
14701
14707
  _useState8 = _slicedToArray(_useState7, 2),
14702
14708
  unformattedPrevValue = _useState8[0],
@@ -14707,10 +14713,10 @@
14707
14713
  setFocused = _useState10[1];
14708
14714
  React.useEffect(function () {
14709
14715
  if (value !== prevValue && (!focused || update)) {
14710
- setCurrentValue(formatNumber(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short"));
14711
- setPrevValue(formatNumber(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short"));
14712
- setUnformattedValue(formatNumber(value, "", decimalSeparator, false, decimalLength, "long"));
14713
- setUnformattedPrevValue(formatNumber(value, "", decimalSeparator, false, decimalLength, "long"));
14716
+ setCurrentValue(formatNumber(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short", shortenThreshold));
14717
+ setPrevValue(formatNumber(value, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short", shortenThreshold));
14718
+ setUnformattedValue(formatNumber(value, "", decimalSeparator, false, decimalLength, "long", shortenThreshold));
14719
+ setUnformattedPrevValue(formatNumber(value, "", decimalSeparator, false, decimalLength, "long", shortenThreshold));
14714
14720
  }
14715
14721
  // eslint-disable-next-line react-hooks/exhaustive-deps
14716
14722
  }, [disableAbbreviation, thousandSeparator, decimalSeparator, decimalLength, trimDecimals, value, focused]);
@@ -14722,10 +14728,10 @@
14722
14728
  if (onChange) onChange(String(unformattedPrevValue));
14723
14729
  } else {
14724
14730
  if (e.target.value.trim().length > 0 && prevValue !== e.target.value) {
14725
- var _value = formatNumber(currentValue, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short");
14731
+ var _value = formatNumber(currentValue, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation ? "long" : "short", shortenThreshold);
14726
14732
  setPrevValue(_value);
14727
- setUnformattedPrevValue(formatNumber(currentValue, "", decimalSeparator, false, decimalLength, "long"));
14728
- setUnformattedValue(formatNumber(currentValue, "", decimalSeparator, false, decimalLength, "long"));
14733
+ setUnformattedPrevValue(formatNumber(currentValue, "", decimalSeparator, false, decimalLength, "long", shortenThreshold));
14734
+ setUnformattedValue(formatNumber(currentValue, "", decimalSeparator, false, decimalLength, "long", shortenThreshold));
14729
14735
  setCurrentValue(_value);
14730
14736
  typeof onSave === "function" && onSave(e);
14731
14737
  } else {
@@ -14744,7 +14750,7 @@
14744
14750
  }
14745
14751
  setFocused(false);
14746
14752
  typeof onBlur === "function" && onBlur(e);
14747
- }, [onBlur, prevValue, unformattedPrevValue, onChange, currentValue, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation, onSave, allowEmptyValue, onCancel]);
14753
+ }, [onBlur, prevValue, unformattedPrevValue, onChange, currentValue, thousandSeparator, decimalSeparator, trimDecimals, decimalLength, disableAbbreviation, shortenThreshold, onSave, allowEmptyValue, onCancel]);
14748
14754
  var updateValue = React.useCallback(function (type) {
14749
14755
  var preformattedValue = String(unformattedValue).replace(thousandSeparator, "").replace(decimalSeparator, ".");
14750
14756
  var numericValue = parseFloat(preformattedValue);
@@ -16210,7 +16216,7 @@
16210
16216
  });
16211
16217
  InputHours.displayName = "InputHours";
16212
16218
 
16213
- var _excluded$J = ["decimalLength", "decimalSeparator", "disableAbbreviation", "disabled", "disableMacros", "invalid", "step", "thousandSeparator", "value", "onCancel", "onSave", "onEnterKeyPress", "allowEmptyValue", "onChange", "onClick", "limit", "placeholder", "trimDecimals", "min", "max", "onBlur", "update"];
16219
+ var _excluded$J = ["decimalLength", "decimalSeparator", "disableAbbreviation", "disabled", "disableMacros", "invalid", "step", "thousandSeparator", "value", "onCancel", "onSave", "onEnterKeyPress", "allowEmptyValue", "onChange", "onClick", "limit", "placeholder", "trimDecimals", "min", "max", "onBlur", "update", "shortenThreshold"];
16214
16220
  var InputNumber = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
16215
16221
  var _ref$decimalLength = _ref.decimalLength,
16216
16222
  decimalLength = _ref$decimalLength === void 0 ? 2 : _ref$decimalLength,
@@ -16242,6 +16248,8 @@
16242
16248
  externalOnBlur = _ref.onBlur,
16243
16249
  _ref$update = _ref.update,
16244
16250
  update = _ref$update === void 0 ? false : _ref$update,
16251
+ _ref$shortenThreshold = _ref.shortenThreshold,
16252
+ shortenThreshold = _ref$shortenThreshold === void 0 ? 1000 : _ref$shortenThreshold,
16245
16253
  rest = _objectWithoutProperties(_ref, _excluded$J);
16246
16254
  var inputRef = React.useRef(null);
16247
16255
  var handleRef = useForkRef(ref, inputRef);
@@ -16264,7 +16272,8 @@
16264
16272
  min,
16265
16273
  max,
16266
16274
  onBlur: externalOnBlur,
16267
- update
16275
+ update,
16276
+ shortenThreshold
16268
16277
  }, inputRef),
16269
16278
  value = _useInputNumber.value,
16270
16279
  onBlur = _useInputNumber.onBlur,
@@ -16318,6 +16327,7 @@
16318
16327
  align: "right",
16319
16328
  ref: ref,
16320
16329
  disabled: disabled,
16330
+ shortenThreshold: 10000,
16321
16331
  endAdornment: endAdornment && /*#__PURE__*/React__default["default"].createElement(InputAdornment, {
16322
16332
  disablePointerEvents: disabled
16323
16333
  }, endAdornment)
@@ -19859,7 +19869,8 @@
19859
19869
  _ref$stroke = _ref.stroke,
19860
19870
  stroke = _ref$stroke === void 0 ? 3 : _ref$stroke,
19861
19871
  _ref$width = _ref.width,
19862
- width = _ref$width === void 0 ? 100 : _ref$width;
19872
+ width = _ref$width === void 0 ? 100 : _ref$width,
19873
+ className = _ref.className;
19863
19874
  var progressNumber = React.useMemo(function () {
19864
19875
  var width = progress;
19865
19876
  if (progress > 100) {
@@ -19888,7 +19899,7 @@
19888
19899
  return stroke_min;
19889
19900
  }, [stroke]);
19890
19901
  return /*#__PURE__*/React__default["default"].createElement(StyledProgressBar, {
19891
- className: "c-progress-bar",
19902
+ className: classNames__default["default"]("c-progress-bar", className),
19892
19903
  $color: backgroundColor,
19893
19904
  $width: widthPercent
19894
19905
  }, /*#__PURE__*/React__default["default"].createElement(StyledProgressBarProgress, {
@@ -20684,7 +20695,8 @@
20684
20695
  onClick: externalOnClick,
20685
20696
  trimDecimals,
20686
20697
  min,
20687
- max
20698
+ max,
20699
+ shortenThreshold: 10000
20688
20700
  }, inputRef),
20689
20701
  value = _useInputNumber.value,
20690
20702
  onBlur = _useInputNumber.onBlur,