@vitrosoftware/common-ui-ts 1.1.128 → 1.1.129

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -62239,7 +62239,7 @@ var Viewer = function Viewer(props) {
62239
62239
  };
62240
62240
 
62241
62241
  var name = "@vitrosoftware/common-ui-ts";
62242
- var version$1 = "1.1.128";
62242
+ var version$1 = "1.1.129";
62243
62243
  var description = "vitro software common ui ts";
62244
62244
  var author = "";
62245
62245
  var license = "MIT";
@@ -62951,12 +62951,9 @@ var NumberInput = React.forwardRef(function (props, ref) {
62951
62951
  var _useState = React.useState(null),
62952
62952
  inputValue = _useState[0],
62953
62953
  setInputValue = _useState[1];
62954
- var localeSeparator = 1.1.toLocaleString()[1];
62955
- var secondLocaleSeparator = localeSeparator === CTRL.COMMA ? CTRL.DOT : CTRL.COMMA;
62956
62954
  var inputRef = React.useRef();
62957
62955
  React.useEffect(function () {
62958
- var value = props.value || props.value === 0 ? props.value : CTRL.EMPTY;
62959
- setInputValue(getValue(value.toString()));
62956
+ setInputValue(getDisplayValue(props.value));
62960
62957
  }, [props.value]);
62961
62958
  React.useImperativeHandle(ref, function () {
62962
62959
  return {
@@ -62973,49 +62970,49 @@ var NumberInput = React.forwardRef(function (props, ref) {
62973
62970
  }
62974
62971
  };
62975
62972
  });
62976
- var getValue = function getValue(value) {
62977
- var newValue = inputValue;
62978
- if (value === CTRL.EMPTY) {
62979
- newValue = value;
62980
- }
62981
- if (props.number === TYPE$1.INT) {
62982
- if (new RegExp(REGEXP.INT).test(value)) {
62983
- newValue = value;
62984
- }
62985
- }
62986
- if (props.number === TYPE$1.FLOAT) {
62987
- if (testFloat(value)) {
62988
- newValue = value.replace(secondLocaleSeparator, localeSeparator);
62989
- }
62973
+ var getDisplayValue = function getDisplayValue(value) {
62974
+ if (value || value === 0) {
62975
+ return value.toLocaleString(undefined, {
62976
+ maximumFractionDigits: props.precision,
62977
+ useGrouping: false
62978
+ });
62990
62979
  }
62991
- setInputValue(newValue);
62992
- return newValue;
62980
+ return CTRL.EMPTY;
62993
62981
  };
62994
- var testFloat = function testFloat(value) {
62982
+ var isValidNumber = function isValidNumber(value) {
62995
62983
  var _props$precision;
62996
62984
  var precision = ((_props$precision = props.precision) === null || _props$precision === void 0 ? void 0 : _props$precision.toString()) || CTRL.EMPTY;
62997
62985
  var regex = REGEXP.FLOAT.split(PRECISION).join(precision);
62998
62986
  return new RegExp(regex).test(value);
62999
62987
  };
63000
- var parseValue = function parseValue(value) {
63001
- if (value === CTRL.EMPTY) {
63002
- return null;
63003
- }
63004
- if (props.number === TYPE$1.INT) {
63005
- return parseInt(value);
63006
- } else {
63007
- var floatString = value.replace(CTRL.COMMA, CTRL.DOT);
63008
- return parseFloat(floatString);
62988
+ var getNewDisplayValue = function getNewDisplayValue(value) {
62989
+ if (isValidNumber(value)) {
62990
+ if (props.number === TYPE$1.INT) {
62991
+ return Math.trunc(+value).toString();
62992
+ }
62993
+ if (props.number === TYPE$1.FLOAT) {
62994
+ return getDisplayValue(+value);
62995
+ }
63009
62996
  }
62997
+ return inputValue;
63010
62998
  };
63011
- var onChange = function onChange(value, name) {
63012
- var newValue = getValue(value);
62999
+ var updateInputValue = function updateInputValue(value) {
63000
+ setInputValue(value);
63013
63001
  if (inputRef && inputRef.current) {
63014
- inputRef.current.setValue(newValue);
63002
+ inputRef.current.setValue(value);
63015
63003
  }
63016
- var newParsedValue = parseValue(newValue);
63017
- if (props.onChange) {
63018
- props.onChange(newParsedValue, name);
63004
+ };
63005
+ var onChange = function onChange(value, name) {
63006
+ var stringVal = value.replaceAll(CTRL.COMMA, CTRL.DOT);
63007
+ if (stringVal.indexOf(CTRL.DOT) === stringVal.length - 1 && stringVal.length > 1) {
63008
+ updateInputValue(stringVal);
63009
+ } else {
63010
+ var newDisplayValue = value === CTRL.EMPTY ? CTRL.EMPTY : getNewDisplayValue(stringVal);
63011
+ updateInputValue(newDisplayValue);
63012
+ if (props.onChange) {
63013
+ var numberVal = newDisplayValue === CTRL.EMPTY ? null : +newDisplayValue.replace(CTRL.COMMA, CTRL.DOT);
63014
+ props.onChange(numberVal, name);
63015
+ }
63019
63016
  }
63020
63017
  };
63021
63018
  return React__default.createElement(Input, Object.assign({}, props, {