@dartech/arsenal-ui 1.3.50 → 1.3.52

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/index.js CHANGED
@@ -1846,9 +1846,10 @@ const ControlNumberInput = _a => {
1846
1846
  disabled = false,
1847
1847
  hideErrorMessage = false,
1848
1848
  onChange: customOnChange,
1849
- decimal = false
1849
+ decimal = false,
1850
+ valueAsNumber
1850
1851
  } = _a,
1851
- textFieldProps = __rest(_a, ["control", "validate", "name", "label", "required", "defaultValue", "disabled", "hideErrorMessage", "onChange", "decimal"]);
1852
+ textFieldProps = __rest(_a, ["control", "validate", "name", "label", "required", "defaultValue", "disabled", "hideErrorMessage", "onChange", "decimal", "valueAsNumber"]);
1852
1853
  const {
1853
1854
  field: {
1854
1855
  ref,
@@ -1879,12 +1880,24 @@ const ControlNumberInput = _a => {
1879
1880
  name
1880
1881
  });
1881
1882
  const handleChange = event => {
1883
+ var _a;
1882
1884
  const lastData = event.nativeEvent['data'] || event.target.value;
1883
1885
  if (!isNaN(lastData) || decimal && lastData === '.' || lastData === '-' || lastData === '+') {
1884
1886
  if (customOnChange) {
1885
1887
  customOnChange(event);
1886
1888
  } else {
1887
- onChange(event.target.value);
1889
+ if (valueAsNumber) {
1890
+ if (!event.target.value) {
1891
+ onChange(null);
1892
+ } else if (event.target.value === '0') {
1893
+ onChange(0);
1894
+ } else if (decimal) {
1895
+ const dec = event.target.value.split('.')[1];
1896
+ onChange(!floatsOnly.test(event.target.value) || /^0+$/.test(dec) ? event.target.value : +parseFloat(event.target.value).toFixed((_a = dec === null || dec === void 0 ? void 0 : dec.length) !== null && _a !== void 0 ? _a : 0));
1897
+ } else {
1898
+ onChange(Number.isNaN(+event.target.value) ? event.target.value : +event.target.value);
1899
+ }
1900
+ }
1888
1901
  }
1889
1902
  }
1890
1903
  };
@@ -3723,7 +3736,8 @@ const PropertyWidget = ({
3723
3736
  hideErrorMessage: true,
3724
3737
  control: control,
3725
3738
  name: name,
3726
- label: label
3739
+ label: label,
3740
+ valueAsNumber: true
3727
3741
  });
3728
3742
  case PropertyType.INTEGER:
3729
3743
  case PropertyType.BIG_INTEGER:
@@ -3733,7 +3747,8 @@ const PropertyWidget = ({
3733
3747
  hideErrorMessage: true,
3734
3748
  control: control,
3735
3749
  name: name,
3736
- label: label
3750
+ label: label,
3751
+ valueAsNumber: true
3737
3752
  });
3738
3753
  case PropertyType.BOOLEAN:
3739
3754
  return jsx(ControlSwitch, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dartech/arsenal-ui",
3
- "version": "1.3.50",
3
+ "version": "1.3.52",
4
4
  "author": "DAR",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -14,7 +14,7 @@ type Props = TextFieldProps & {
14
14
  /**
15
15
  * React Hook Form `control`
16
16
  */
17
- control: Control;
17
+ control: Control<any>;
18
18
  /**
19
19
  * Is input required flag
20
20
  */
@@ -46,6 +46,10 @@ type Props = TextFieldProps & {
46
46
  * Is number decimal or integer flag
47
47
  */
48
48
  decimal?: boolean;
49
+ /**
50
+ * Set value as number
51
+ */
52
+ valueAsNumber?: boolean;
49
53
  };
50
- export declare const ControlNumberInput: ({ control, validate, name, label, required, defaultValue, disabled, hideErrorMessage, onChange: customOnChange, decimal, ...textFieldProps }: Props) => JSX.Element;
54
+ export declare const ControlNumberInput: ({ control, validate, name, label, required, defaultValue, disabled, hideErrorMessage, onChange: customOnChange, decimal, valueAsNumber, ...textFieldProps }: Props) => JSX.Element;
51
55
  export default ControlNumberInput;