@oliasoft-open-source/charts-library 2.4.2 → 2.4.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oliasoft-open-source/charts-library",
3
- "version": "2.4.2",
3
+ "version": "2.4.3",
4
4
  "description": "React Chart Library (based on Chart.js and react-chart-js-2)",
5
5
  "main": "index.js",
6
6
  "files": [
package/release-notes.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Charts Library Release Notes
2
2
 
3
+ ## 2.4.3
4
+
5
+ - Fix crashes when type a non-number into the axis range OW-9924
6
+
3
7
  ## 2.4.2
4
8
 
5
9
  - Square aspect ratio charts can fill height/width
@@ -108,7 +108,7 @@ export const Layer = ({
108
108
  value={axis.min.inputValue || scalesMaxMin[axis?.id]?.min}
109
109
  error={
110
110
  !axis.min.valid
111
- ? 'WARNING' //t(InputWarningType.MustBeNumericAndLessThanMax)
111
+ ? 'Invalid value' //t(InputWarningType.MustBeNumericAndLessThanMax)
112
112
  : undefined
113
113
  }
114
114
  size={5}
@@ -131,7 +131,7 @@ export const Layer = ({
131
131
  value={axis.max.inputValue || scalesMaxMin[axis?.id].max}
132
132
  error={
133
133
  !axis.max.valid
134
- ? 'Warning' //t(InputWarningType.MustBeNumericAndGreaterThanMin)
134
+ ? 'Invalid value' //t(InputWarningType.MustBeNumericAndGreaterThanMin)
135
135
  : undefined
136
136
  }
137
137
  size={5}
@@ -9,6 +9,7 @@ const hasDivisor = (str) =>
9
9
  export const isEmptyString = (str) => str === '';
10
10
  const isTrailingPeriodSeparator = (str) => str && str[str.length - 1] === '.';
11
11
  const isTrailingCommaSeparator = (str) => str && str[str.length - 1] === ',';
12
+ const isOnlyNumbers = (str) => /^-?\d*\.?\d+$/.test(str);
12
13
 
13
14
  export const charCount = (chr, str) => {
14
15
  let total = 0,
@@ -80,7 +81,8 @@ export const isValidNum = (input) => {
80
81
  isTrailingPeriodSeparator(input) ||
81
82
  isTrailingCommaSeparator(input) ||
82
83
  isArray(input) ||
83
- isObject(input)
84
+ isObject(input) ||
85
+ !isOnlyNumbers(input)
84
86
  )
85
87
  ) {
86
88
  let number;
@@ -132,11 +134,13 @@ export const toNumber = (input, defaultValue, minimum) => {
132
134
  return result;
133
135
  };
134
136
 
135
- export const validNumber = (value) => isValidNum(value);
137
+ export const validNumber = (value) => {
138
+ return isValidNum(value);
139
+ };
136
140
 
137
141
  export const toNum = (value) => {
138
142
  const asNumber = toNumber(value);
139
- return value === '' || isNaN(asNumber) ? undefined : asNumber;
143
+ return value === '' || isNaN(asNumber) ? '' : asNumber;
140
144
  };
141
145
 
142
146
  export const isLessThanMax = (value, max) => {
@@ -75,6 +75,7 @@ export const reducer = (state, action) => {
75
75
  const nextValue = isNaN(nextInputValue)
76
76
  ? cleanNumStr(nextInputValue)
77
77
  : toNum(nextInputValue);
78
+
78
79
  const axis = newState.axes.find((a) => a.id === id);
79
80
  axis.min = getAxisValue(name === 'min' ? nextValue : axis.min?.value);
80
81
  axis.max = getAxisValue(name === 'max' ? nextValue : axis.max?.value);
@@ -86,6 +87,11 @@ export const reducer = (state, action) => {
86
87
  validNumber(axis.max.inputValue ?? '') &&
87
88
  isGreaterThanMin(axis.max.value, axis.min.value);
88
89
  axis.max.displayValue = axis.max.valid ? axis.max.value : undefined;
90
+
91
+ const elementValue = axis[name];
92
+ if (elementValue.valid) {
93
+ elementValue.value = nextValue;
94
+ }
89
95
  };
90
96
  if (Array.isArray(action.payload)) {
91
97
  action.payload.forEach((element) => {
@@ -51,7 +51,6 @@ export const getAxisValue = (value) => {
51
51
  return {
52
52
  inputValue: value.toString(),
53
53
  displayValue: value,
54
- value,
55
54
  valid: true,
56
55
  };
57
56
  }