@synerise/ds-input-number 0.10.14 → 0.10.16
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/CHANGELOG.md +16 -0
- package/dist/InputNumber.js +21 -29
- package/dist/utils/inputNumber.utils.js +5 -21
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
@@ -3,6 +3,22 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
+
## [0.10.16](https://github.com/Synerise/synerise-design/compare/@synerise/ds-input-number@0.10.15...@synerise/ds-input-number@0.10.16) (2024-11-28)
|
7
|
+
|
8
|
+
**Note:** Version bump only for package @synerise/ds-input-number
|
9
|
+
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
## [0.10.15](https://github.com/Synerise/synerise-design/compare/@synerise/ds-input-number@0.10.14...@synerise/ds-input-number@0.10.15) (2024-11-21)
|
15
|
+
|
16
|
+
**Note:** Version bump only for package @synerise/ds-input-number
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
|
6
22
|
## [0.10.14](https://github.com/Synerise/synerise-design/compare/@synerise/ds-input-number@0.10.13...@synerise/ds-input-number@0.10.14) (2024-11-12)
|
7
23
|
|
8
24
|
**Note:** Version bump only for package @synerise/ds-input-number
|
package/dist/InputNumber.js
CHANGED
@@ -1,9 +1,6 @@
|
|
1
1
|
var _excluded = ["label", "description", "errorText", "raw", "error", "prefixel", "suffixel", "style", "tooltip", "tooltipConfig", "value", "defaultValue", "valueFormatOptions", "onChange"];
|
2
|
-
|
3
2
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
4
|
-
|
5
3
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
6
|
-
|
7
4
|
import React, { useState, useCallback, useMemo, useEffect } from 'react';
|
8
5
|
import { v4 as uuid } from 'uuid';
|
9
6
|
import '@synerise/ds-core/dist/js/style';
|
@@ -12,38 +9,34 @@ import { useDataFormat } from '@synerise/ds-data-format';
|
|
12
9
|
import "./style/index.css";
|
13
10
|
import * as S from './InputNumber.styles';
|
14
11
|
import { formatNumber, parseFormattedNumber } from './utils/inputNumber.utils';
|
15
|
-
|
16
12
|
var InputNumber = function InputNumber(_ref) {
|
17
13
|
var label = _ref.label,
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
14
|
+
description = _ref.description,
|
15
|
+
errorText = _ref.errorText,
|
16
|
+
raw = _ref.raw,
|
17
|
+
error = _ref.error,
|
18
|
+
prefixel = _ref.prefixel,
|
19
|
+
suffixel = _ref.suffixel,
|
20
|
+
style = _ref.style,
|
21
|
+
tooltip = _ref.tooltip,
|
22
|
+
tooltipConfig = _ref.tooltipConfig,
|
23
|
+
value = _ref.value,
|
24
|
+
defaultValue = _ref.defaultValue,
|
25
|
+
valueFormatOptions = _ref.valueFormatOptions,
|
26
|
+
onChange = _ref.onChange,
|
27
|
+
antdProps = _objectWithoutPropertiesLoose(_ref, _excluded);
|
33
28
|
var _useDataFormat = useDataFormat(),
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
29
|
+
formatValue = _useDataFormat.formatValue,
|
30
|
+
thousandDelimiter = _useDataFormat.thousandDelimiter,
|
31
|
+
decimalDelimiter = _useDataFormat.decimalDelimiter;
|
38
32
|
var _useState = useState(value != null ? value : defaultValue),
|
39
|
-
|
40
|
-
|
41
|
-
|
33
|
+
localValue = _useState[0],
|
34
|
+
setLocalValue = _useState[1];
|
42
35
|
useEffect(function () {
|
43
36
|
if (value !== undefined && value !== localValue) {
|
44
37
|
setLocalValue(value);
|
45
|
-
}
|
46
|
-
|
38
|
+
}
|
39
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
47
40
|
}, [value]);
|
48
41
|
var id = useMemo(function () {
|
49
42
|
return uuid();
|
@@ -86,5 +79,4 @@ var InputNumber = function InputNumber(_ref) {
|
|
86
79
|
decimalSeparator: decimalDelimiter
|
87
80
|
})), !!suffixel && /*#__PURE__*/React.createElement(S.Suffixel, null, suffixel)), (showError || description) && !raw && /*#__PURE__*/React.createElement(S.ContentBelow, null, showError && /*#__PURE__*/React.createElement(S.ErrorText, null, errorText), description && /*#__PURE__*/React.createElement(S.Description, null, description)));
|
88
81
|
};
|
89
|
-
|
90
82
|
export default InputNumber;
|
@@ -1,31 +1,23 @@
|
|
1
1
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
2
|
-
|
3
2
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
4
|
-
|
5
3
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
6
|
-
|
7
4
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
8
|
-
|
9
5
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
6
|
+
import { MAXIMUM_FRACTION_DIGITS, MAXIMUM_NUMBER_DIGITS, NUMBER_DELIMITER } from '../constants/inputNumber.constants';
|
10
7
|
|
11
|
-
|
8
|
+
// input case 1: not formatted number string (on input change)
|
12
9
|
// input case 2: not formatted number (on blur)
|
13
10
|
// output: formatted number string with decimal char
|
14
|
-
|
15
11
|
export var formatNumber = function formatNumber(value, formatValue, notationThousandDelimiter, notationDecimalDelimiter, valueFormatOptions) {
|
16
12
|
var _value$match, _value$match2;
|
17
|
-
|
18
13
|
if (value === undefined || value === '' || value === null) return '';
|
19
14
|
if (value === '-') return '-';
|
20
|
-
|
21
15
|
var formatOptions = _objectSpread({
|
22
16
|
maximumFractionDigits: MAXIMUM_FRACTION_DIGITS
|
23
17
|
}, valueFormatOptions);
|
24
|
-
|
25
18
|
if (typeof value === 'number') {
|
26
19
|
return formatValue(value, formatOptions);
|
27
20
|
}
|
28
|
-
|
29
21
|
var result = '';
|
30
22
|
var lastChar = value == null ? void 0 : value.slice(-1);
|
31
23
|
var numberResult = parseFloat(value);
|
@@ -33,44 +25,36 @@ export var formatNumber = function formatNumber(value, formatValue, notationThou
|
|
33
25
|
var zerosAtTheEnd = (_value$match = value.match(new RegExp('0+$'))) == null ? void 0 : _value$match[0];
|
34
26
|
var zerosWithDecimalDelimiterAtTheEnd = (_value$match2 = value.match(new RegExp("\\" + NUMBER_DELIMITER + "0+$"))) == null ? void 0 : _value$match2[0];
|
35
27
|
var numberDelimiterExists = new RegExp("\\" + NUMBER_DELIMITER).test(value);
|
36
|
-
|
37
28
|
if (Number.isNaN(numberResult)) {
|
38
29
|
return '';
|
39
30
|
}
|
40
|
-
|
41
31
|
result = formatValue(numberResult, formatOptions);
|
42
32
|
result = "" + result + notationDecimalChar;
|
43
|
-
|
44
33
|
if (zerosWithDecimalDelimiterAtTheEnd) {
|
45
34
|
result = "" + result + zerosWithDecimalDelimiterAtTheEnd;
|
46
35
|
} else if (zerosAtTheEnd && numberDelimiterExists) {
|
47
36
|
result = "" + result + zerosAtTheEnd;
|
48
37
|
}
|
49
|
-
|
50
38
|
return result;
|
51
|
-
};
|
52
|
-
// output: not formatted number string with decimal char
|
39
|
+
};
|
53
40
|
|
41
|
+
// input: formatted number string
|
42
|
+
// output: not formatted number string with decimal char
|
54
43
|
export var parseFormattedNumber = function parseFormattedNumber(value, formatValue, notationThousandDelimiter, notationDecimalDelimiter) {
|
55
44
|
if (value === undefined || value === '') {
|
56
45
|
return '';
|
57
46
|
}
|
58
|
-
|
59
47
|
var result = value;
|
60
48
|
result = result.split(notationThousandDelimiter).join('');
|
61
|
-
|
62
49
|
if (result.length > MAXIMUM_NUMBER_DIGITS) {
|
63
50
|
result = result.slice(0, MAXIMUM_NUMBER_DIGITS);
|
64
51
|
}
|
65
|
-
|
66
52
|
if (notationDecimalDelimiter !== NUMBER_DELIMITER) {
|
67
53
|
result = result.replace(notationDecimalDelimiter, NUMBER_DELIMITER);
|
68
54
|
}
|
69
|
-
|
70
55
|
if ((result.match(new RegExp("\\" + NUMBER_DELIMITER, 'g')) || []).length > 1) {
|
71
56
|
var lastDecimalDelimiterIndex = result.lastIndexOf(NUMBER_DELIMITER);
|
72
57
|
result = result.slice(0, lastDecimalDelimiterIndex);
|
73
58
|
}
|
74
|
-
|
75
59
|
return result;
|
76
60
|
};
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@synerise/ds-input-number",
|
3
|
-
"version": "0.10.
|
3
|
+
"version": "0.10.16",
|
4
4
|
"description": "Input-Number UI Component for the Synerise Design System",
|
5
5
|
"license": "ISC",
|
6
6
|
"repository": "Synerise/synerise-design",
|
@@ -34,10 +34,10 @@
|
|
34
34
|
],
|
35
35
|
"types": "dist/index.d.ts",
|
36
36
|
"dependencies": {
|
37
|
-
"@synerise/ds-data-format": "^0.6.
|
38
|
-
"@synerise/ds-input": "^0.24.
|
39
|
-
"@synerise/ds-tooltip": "^0.14.
|
40
|
-
"@synerise/ds-utils": "^0.31.
|
37
|
+
"@synerise/ds-data-format": "^0.6.1",
|
38
|
+
"@synerise/ds-input": "^0.24.15",
|
39
|
+
"@synerise/ds-tooltip": "^0.14.50",
|
40
|
+
"@synerise/ds-utils": "^0.31.2",
|
41
41
|
"uuid": "^8.3.2"
|
42
42
|
},
|
43
43
|
"peerDependencies": {
|
@@ -46,5 +46,5 @@
|
|
46
46
|
"react": ">=16.9.0 <= 17.0.2",
|
47
47
|
"styled-components": "5.0.1"
|
48
48
|
},
|
49
|
-
"gitHead": "
|
49
|
+
"gitHead": "4a56ee7ef816c22341ce704154dc7aa65b7d1dcc"
|
50
50
|
}
|