@panneau/field-number 1.0.3-alpha.1 → 1.0.3-alpha.4
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/assets/css/styles.css +1 -1
- package/es/index.js +16 -24
- package/lib/index.js +16 -24
- package/package.json +5 -5
package/assets/css/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.panneau-field-number-container{position:relative}.panneau-field-number-container input{-moz-appearance:textfield;padding-right:20px}.panneau-field-number-container input::-webkit-inner-spin-button,.panneau-field-number-container input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none}.panneau-field-number-container .panneau-field-number-arrow{display:-
|
|
1
|
+
.panneau-field-number-container{position:relative}.panneau-field-number-container input{-moz-appearance:textfield;padding-right:20px}.panneau-field-number-container input::-webkit-inner-spin-button,.panneau-field-number-container input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none}.panneau-field-number-container .panneau-field-number-arrow{display:-ms-flexbox;display:flex;height:100%;pointer-events:none;position:absolute;right:0;top:0;width:20px}.panneau-field-number-container .panneau-field-number-arrowIcon{font-size:10px;margin:auto}.panneau-field-number-container .panneau-field-number-dataListItems{background-color:#fff;border:1px solid rgba(0,0,0,.25);border-radius:4px;left:0;list-style-type:none;padding:0;position:absolute;top:100%;width:100%;z-index:2}.panneau-field-number-container .panneau-field-number-dataListItem{width:100%}.panneau-field-number-container .panneau-field-number-dataListItemButton{background-color:rgba(0,0,0,0);border:0;text-align:left;width:100%}.panneau-field-number-container .panneau-field-number-dataListItemButton:hover{background-color:rgba(0,0,0,.1)}
|
package/es/index.js
CHANGED
|
@@ -33,40 +33,34 @@ var defaultProps = {
|
|
|
33
33
|
className: null,
|
|
34
34
|
onChange: null
|
|
35
35
|
};
|
|
36
|
-
|
|
37
36
|
function isNumeric(str) {
|
|
38
37
|
if (typeof str !== 'string') return false; // we only process strings!
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
return !isNaN(str) &&
|
|
39
|
+
// use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...
|
|
41
40
|
!isNaN(parseFloat(str));
|
|
42
41
|
}
|
|
43
|
-
|
|
44
42
|
var NumberField = function NumberField(_ref) {
|
|
45
43
|
var value = _ref.value,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
44
|
+
step = _ref.step,
|
|
45
|
+
floatStep = _ref.floatStep,
|
|
46
|
+
_float = _ref["float"],
|
|
47
|
+
dataList = _ref.dataList,
|
|
48
|
+
autoComplete = _ref.autoComplete,
|
|
49
|
+
className = _ref.className,
|
|
50
|
+
onChange = _ref.onChange,
|
|
51
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
55
52
|
var parseValue = useCallback(function (newValue) {
|
|
56
53
|
if (newValue !== null) {
|
|
57
54
|
if (_float) {
|
|
58
55
|
return newValue;
|
|
59
56
|
}
|
|
60
|
-
|
|
61
57
|
if (isNumber(newValue)) {
|
|
62
58
|
return newValue;
|
|
63
59
|
}
|
|
64
|
-
|
|
65
60
|
if (isNumeric(newValue)) {
|
|
66
61
|
return _float ? parseFloat(newValue) : parseInt(newValue, 10);
|
|
67
62
|
}
|
|
68
63
|
}
|
|
69
|
-
|
|
70
64
|
return null;
|
|
71
65
|
}, [_float]);
|
|
72
66
|
var onInputChange = useCallback(function (val) {
|
|
@@ -76,18 +70,17 @@ var NumberField = function NumberField(_ref) {
|
|
|
76
70
|
} else {
|
|
77
71
|
onChange(val !== null && val.length > 0 ? parseValue(val) : null);
|
|
78
72
|
}
|
|
79
|
-
|
|
80
73
|
onChange(val !== null && val.length > 0 ? parseValue(val) : null);
|
|
81
74
|
}
|
|
82
|
-
}, [onChange, _float]);
|
|
75
|
+
}, [onChange, _float]);
|
|
83
76
|
|
|
84
|
-
|
|
77
|
+
// Datalist
|
|
85
78
|
|
|
79
|
+
var hasDataList = dataList !== null;
|
|
86
80
|
var _useState = useState(false),
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
81
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
82
|
+
dataListActive = _useState2[0],
|
|
83
|
+
setDataListActive = _useState2[1];
|
|
91
84
|
var onInputFocus = useCallback(function () {
|
|
92
85
|
if (hasDataList) {
|
|
93
86
|
setDataListActive(true);
|
|
@@ -138,7 +131,6 @@ var NumberField = function NumberField(_ref) {
|
|
|
138
131
|
}, dataListValue));
|
|
139
132
|
})) : null);
|
|
140
133
|
};
|
|
141
|
-
|
|
142
134
|
NumberField.propTypes = propTypes;
|
|
143
135
|
NumberField.defaultProps = defaultProps;
|
|
144
136
|
|
package/lib/index.js
CHANGED
|
@@ -49,40 +49,34 @@ var defaultProps = {
|
|
|
49
49
|
className: null,
|
|
50
50
|
onChange: null
|
|
51
51
|
};
|
|
52
|
-
|
|
53
52
|
function isNumeric(str) {
|
|
54
53
|
if (typeof str !== 'string') return false; // we only process strings!
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
return !isNaN__default["default"](str) &&
|
|
55
|
+
// use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...
|
|
57
56
|
!isNaN__default["default"](parseFloat(str));
|
|
58
57
|
}
|
|
59
|
-
|
|
60
58
|
var NumberField = function NumberField(_ref) {
|
|
61
59
|
var value = _ref.value,
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
60
|
+
step = _ref.step,
|
|
61
|
+
floatStep = _ref.floatStep,
|
|
62
|
+
_float = _ref["float"],
|
|
63
|
+
dataList = _ref.dataList,
|
|
64
|
+
autoComplete = _ref.autoComplete,
|
|
65
|
+
className = _ref.className,
|
|
66
|
+
onChange = _ref.onChange,
|
|
67
|
+
props = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
71
68
|
var parseValue = React.useCallback(function (newValue) {
|
|
72
69
|
if (newValue !== null) {
|
|
73
70
|
if (_float) {
|
|
74
71
|
return newValue;
|
|
75
72
|
}
|
|
76
|
-
|
|
77
73
|
if (isNumber__default["default"](newValue)) {
|
|
78
74
|
return newValue;
|
|
79
75
|
}
|
|
80
|
-
|
|
81
76
|
if (isNumeric(newValue)) {
|
|
82
77
|
return _float ? parseFloat(newValue) : parseInt(newValue, 10);
|
|
83
78
|
}
|
|
84
79
|
}
|
|
85
|
-
|
|
86
80
|
return null;
|
|
87
81
|
}, [_float]);
|
|
88
82
|
var onInputChange = React.useCallback(function (val) {
|
|
@@ -92,18 +86,17 @@ var NumberField = function NumberField(_ref) {
|
|
|
92
86
|
} else {
|
|
93
87
|
onChange(val !== null && val.length > 0 ? parseValue(val) : null);
|
|
94
88
|
}
|
|
95
|
-
|
|
96
89
|
onChange(val !== null && val.length > 0 ? parseValue(val) : null);
|
|
97
90
|
}
|
|
98
|
-
}, [onChange, _float]);
|
|
91
|
+
}, [onChange, _float]);
|
|
99
92
|
|
|
100
|
-
|
|
93
|
+
// Datalist
|
|
101
94
|
|
|
95
|
+
var hasDataList = dataList !== null;
|
|
102
96
|
var _useState = React.useState(false),
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
97
|
+
_useState2 = _slicedToArray__default["default"](_useState, 2),
|
|
98
|
+
dataListActive = _useState2[0],
|
|
99
|
+
setDataListActive = _useState2[1];
|
|
107
100
|
var onInputFocus = React.useCallback(function () {
|
|
108
101
|
if (hasDataList) {
|
|
109
102
|
setDataListActive(true);
|
|
@@ -154,7 +147,6 @@ var NumberField = function NumberField(_ref) {
|
|
|
154
147
|
}, dataListValue));
|
|
155
148
|
})) : null);
|
|
156
149
|
};
|
|
157
|
-
|
|
158
150
|
NumberField.propTypes = propTypes;
|
|
159
151
|
NumberField.defaultProps = defaultProps;
|
|
160
152
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@panneau/field-number",
|
|
3
|
-
"version": "1.0.3-alpha.
|
|
3
|
+
"version": "1.0.3-alpha.4",
|
|
4
4
|
"description": "A number field",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"javascript"
|
|
@@ -56,9 +56,9 @@
|
|
|
56
56
|
"@fortawesome/fontawesome-svg-core": "^1.2.35",
|
|
57
57
|
"@fortawesome/free-solid-svg-icons": "^5.15.3",
|
|
58
58
|
"@fortawesome/react-fontawesome": "^0.1.14",
|
|
59
|
-
"@panneau/core": "^1.0.3-alpha.
|
|
60
|
-
"@panneau/field-text": "^1.0.3-alpha.
|
|
61
|
-
"@panneau/themes": "^1.0.3-alpha.
|
|
59
|
+
"@panneau/core": "^1.0.3-alpha.4",
|
|
60
|
+
"@panneau/field-text": "^1.0.3-alpha.4",
|
|
61
|
+
"@panneau/themes": "^1.0.3-alpha.4",
|
|
62
62
|
"classnames": "^2.2.6",
|
|
63
63
|
"lodash": "^4.17.21",
|
|
64
64
|
"prop-types": "^15.7.2"
|
|
@@ -66,5 +66,5 @@
|
|
|
66
66
|
"publishConfig": {
|
|
67
67
|
"access": "public"
|
|
68
68
|
},
|
|
69
|
-
"gitHead": "
|
|
69
|
+
"gitHead": "00807e99b06d8be2b8a8671ce5c29a2a097b7804"
|
|
70
70
|
}
|