@panneau/field-number 3.0.222 → 3.0.224

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.
Files changed (2) hide show
  1. package/package.json +10 -7
  2. package/lib/index.js +0 -150
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/field-number",
3
- "version": "3.0.222",
3
+ "version": "3.0.224",
4
4
  "description": "A number field",
5
5
  "keywords": [
6
6
  "javascript"
@@ -33,8 +33,11 @@
33
33
  }
34
34
  ],
35
35
  "license": "ISC",
36
- "main": "lib/index.js",
36
+ "type": "module",
37
37
  "module": "es/index.js",
38
+ "exports": {
39
+ ".": "./es/index.js"
40
+ },
38
41
  "files": [
39
42
  "lib",
40
43
  "es",
@@ -54,10 +57,10 @@
54
57
  },
55
58
  "dependencies": {
56
59
  "@babel/runtime": "^7.12.5",
57
- "@panneau/core": "^3.0.222",
58
- "@panneau/element-icon": "^3.0.222",
59
- "@panneau/field-text": "^3.0.222",
60
- "@panneau/themes": "^3.0.222",
60
+ "@panneau/core": "^3.0.224",
61
+ "@panneau/element-icon": "^3.0.224",
62
+ "@panneau/field-text": "^3.0.224",
63
+ "@panneau/themes": "^3.0.224",
61
64
  "classnames": "^2.5.1",
62
65
  "lodash": "^4.17.21",
63
66
  "prop-types": "^15.7.2"
@@ -65,5 +68,5 @@
65
68
  "publishConfig": {
66
69
  "access": "public"
67
70
  },
68
- "gitHead": "1d7f6c2943965c2c26fb6ce1d8f3c85eb88b2146"
71
+ "gitHead": "c95bd465867c4c7d112bf0ed66036574cc05c627"
69
72
  }
package/lib/index.js DELETED
@@ -1,150 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
- var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
7
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
8
- var classNames = require('classnames');
9
- var isNaN = require('lodash/isNaN');
10
- var isNumber = require('lodash/isNumber');
11
- var PropTypes = require('prop-types');
12
- var React = require('react');
13
- var Icon = require('@panneau/element-icon');
14
- var TextField = require('@panneau/field-text');
15
-
16
- var styles = {"container":"panneau-field-number-container","arrow":"panneau-field-number-arrow","dataListItems":"panneau-field-number-dataListItems","dataListItem":"panneau-field-number-dataListItem","dataListItemButton":"panneau-field-number-dataListItemButton"};
17
-
18
- var _excluded = ["value", "step", "floatStep", "float", "dataList", "autoComplete", "disabled", "className", "onChange"];
19
- var propTypes = {
20
- value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
21
- step: PropTypes.number,
22
- floatStep: PropTypes.number,
23
- "float": PropTypes.bool,
24
- dataList: PropTypes.arrayOf(PropTypes.number),
25
- autoComplete: PropTypes.bool,
26
- disabled: PropTypes.bool,
27
- className: PropTypes.string,
28
- onChange: PropTypes.func
29
- };
30
- var defaultProps = {
31
- value: null,
32
- step: 1,
33
- floatStep: 0.1,
34
- "float": false,
35
- dataList: null,
36
- autoComplete: false,
37
- disabled: false,
38
- className: null,
39
- onChange: null
40
- };
41
- function isNumeric(str) {
42
- if (typeof str !== 'string') return false; // we only process strings!
43
- return !isNaN(str) &&
44
- // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...
45
- !isNaN(parseFloat(str));
46
- }
47
- var NumberField = function NumberField(_ref) {
48
- var value = _ref.value,
49
- step = _ref.step,
50
- floatStep = _ref.floatStep,
51
- _float = _ref["float"],
52
- dataList = _ref.dataList,
53
- autoComplete = _ref.autoComplete,
54
- disabled = _ref.disabled,
55
- className = _ref.className,
56
- onChange = _ref.onChange,
57
- props = _objectWithoutProperties(_ref, _excluded);
58
- var parseValue = React.useCallback(function (newValue) {
59
- if (newValue !== null) {
60
- if (_float) {
61
- return newValue;
62
- }
63
- if (isNumber(newValue)) {
64
- return newValue;
65
- }
66
- if (isNumeric(newValue)) {
67
- return _float ? parseFloat(newValue) : parseInt(newValue, 10);
68
- }
69
- }
70
- return null;
71
- }, [_float]);
72
- var onInputChange = React.useCallback(function (val) {
73
- if (onChange !== null) {
74
- if (_float) {
75
- onChange(val !== null && val.length > 0 ? val : null);
76
- } else {
77
- onChange(val !== null && val.length > 0 ? parseValue(val) : null);
78
- }
79
- onChange(val !== null && val.length > 0 ? parseValue(val) : null);
80
- }
81
- }, [onChange, _float]);
82
-
83
- // Datalist
84
-
85
- var hasDataList = dataList !== null;
86
- var _useState = React.useState(false),
87
- _useState2 = _slicedToArray(_useState, 2),
88
- dataListActive = _useState2[0],
89
- setDataListActive = _useState2[1];
90
- var onInputFocus = React.useCallback(function () {
91
- if (hasDataList) {
92
- setDataListActive(true);
93
- }
94
- }, [setDataListActive, hasDataList]);
95
- var onInputBlur = React.useCallback(function () {
96
- if (hasDataList && dataListActive) {
97
- setDataListActive(false);
98
- }
99
- }, [setDataListActive, hasDataList, dataListActive]);
100
- var onDataListClick = React.useCallback(function (dataListValue) {
101
- if (onChange !== null && dataListValue !== null) {
102
- onChange(parseValue(dataListValue));
103
- setDataListActive(false);
104
- }
105
- }, [onChange, setDataListActive]);
106
- return /*#__PURE__*/React.createElement("div", {
107
- className: classNames([styles.container, _defineProperty({}, className, className !== null)])
108
- }, /*#__PURE__*/React.createElement(TextField, Object.assign({
109
- type: "number",
110
- className: styles.input,
111
- value: value !== null ? "".concat(value) : '',
112
- step: _float ? floatStep : step,
113
- autoComplete: autoComplete ? 'on' : 'off',
114
- onChange: onInputChange,
115
- onFocus: onInputFocus,
116
- onBlur: onInputBlur,
117
- disabled: disabled
118
- }, props)), !disabled && hasDataList ? /*#__PURE__*/React.createElement("div", {
119
- className: styles.arrow
120
- }, /*#__PURE__*/React.createElement(Icon, {
121
- name: dataListActive ? 'caret-up' : 'caret-down'
122
- })) : null, !disabled && hasDataList && dataListActive ? /*#__PURE__*/React.createElement("ul", {
123
- className: styles.dataListItems
124
- }, dataList.map(function (dataListValue) {
125
- return /*#__PURE__*/React.createElement("li", {
126
- key: "data-list-".concat(dataListValue),
127
- className: styles.dataListItem
128
- }, /*#__PURE__*/React.createElement("button", {
129
- className: styles.dataListItemButton,
130
- type: "button",
131
- onTouchStart: function onTouchStart() {
132
- onDataListClick(dataListValue);
133
- },
134
- onMouseDown: function onMouseDown() {
135
- onDataListClick(dataListValue);
136
- }
137
- }, dataListValue));
138
- })) : null);
139
- };
140
- NumberField.propTypes = propTypes;
141
- NumberField.defaultProps = defaultProps;
142
- var NumberField$1 = NumberField;
143
-
144
- var definition = {
145
- id: 'number',
146
- component: 'Number'
147
- };
148
-
149
- exports.default = NumberField$1;
150
- exports.definition = definition;