assui 2.0.34 → 2.0.39

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.
@@ -0,0 +1,5 @@
1
+ declare enum dataType {
2
+ number = "number",
3
+ string = "string"
4
+ }
5
+ export default dataType;
@@ -0,0 +1,8 @@
1
+ var dataType;
2
+
3
+ (function (dataType) {
4
+ dataType["number"] = "number";
5
+ dataType["string"] = "string";
6
+ })(dataType || (dataType = {}));
7
+
8
+ export default dataType;
@@ -1,10 +1,14 @@
1
1
  import * as React from 'react';
2
+ import type { InputProps } from 'antd/es/input';
3
+ import dataTypeEnum from './const/dataTypeEnum';
2
4
  import * as numberTypeEnum from './const/numberType';
3
- export interface NumberInputProps {
5
+ export interface NumberInputProps extends Omit<InputProps, 'onChange' | 'onBlur'> {
4
6
  /** 输入框的内容 */
5
7
  value?: string | number;
6
8
  /** 输入数据的类型 */
7
9
  numberType?: 'int' | 'float';
10
+ /** value的数据类型 */
11
+ dataType?: dataTypeEnum.number | dataTypeEnum.string;
8
12
  /** 精度,只对float有效 */
9
13
  precision?: number;
10
14
  /** 同html input属性功能 */
@@ -16,7 +20,7 @@ export interface NumberInputProps {
16
20
  /** 是否允许输入负数 */
17
21
  enableMinus?: boolean;
18
22
  /** 变化回调 */
19
- onChange?: (value: string) => void;
23
+ onChange?: (value: string | number) => void;
20
24
  /** 失去焦点回调 */
21
25
  onBlur?: (value: string) => void;
22
26
  /** 按下回车的回调 */
@@ -32,12 +36,6 @@ export interface NumberInputProps {
32
36
  /** 可以点击清除图标删除内容 */
33
37
  allowClear?: boolean;
34
38
  }
35
- declare const NumberInput: {
36
- (props: NumberInputProps): JSX.Element;
37
- defaultProps: {
38
- numberType: string;
39
- enableMinus: boolean;
40
- };
41
- numberType: typeof numberTypeEnum;
42
- };
39
+ declare const NumberInput: React.ForwardRefExoticComponent<NumberInputProps & React.RefAttributes<unknown>>;
40
+ export { numberTypeEnum, dataTypeEnum };
43
41
  export default NumberInput;
@@ -57,24 +57,28 @@ var __read = this && this.__read || function (o, n) {
57
57
  import * as React from 'react';
58
58
  import Input from 'antd/es/input';
59
59
  import isUndefined from 'lodash/isUndefined';
60
+ import endsWith from 'lodash/endsWith';
61
+ import dataTypeEnum from './const/dataTypeEnum';
60
62
  import * as numberTypeEnum from './const/numberType';
61
63
  import { filterInt, filterFloat } from './utils';
62
-
63
- var NumberInput = function NumberInput(props) {
64
+ var NumberInput = /*#__PURE__*/React.forwardRef(function (props, ref) {
64
65
  var value = props.value,
65
66
  onChange = props.onChange,
66
- numberType = props.numberType,
67
+ _a = props.numberType,
68
+ numberType = _a === void 0 ? numberTypeEnum.INT : _a,
69
+ _b = props.dataType,
70
+ dataType = _b === void 0 ? dataTypeEnum.number : _b,
67
71
  precision = props.precision,
68
72
  formatter = props.formatter,
69
73
  parser = props.parser,
70
74
  enableMinus = props.enableMinus,
71
75
  onBlur = props.onBlur,
72
76
  maxLength = props.maxLength,
73
- restProps = __rest(props, ["value", "onChange", "numberType", "precision", "formatter", "parser", "enableMinus", "onBlur", "maxLength"]);
77
+ restProps = __rest(props, ["value", "onChange", "numberType", "dataType", "precision", "formatter", "parser", "enableMinus", "onBlur", "maxLength"]);
74
78
 
75
- var _a = __read(React.useState(''), 2),
76
- inputValue = _a[0],
77
- setInputValue = _a[1];
79
+ var _c = __read(React.useState(''), 2),
80
+ inputValue = _c[0],
81
+ setInputValue = _c[1];
78
82
 
79
83
  var resultValue = isUndefined(value) ? inputValue : value;
80
84
 
@@ -107,7 +111,20 @@ var NumberInput = function NumberInput(props) {
107
111
  }
108
112
 
109
113
  if (onChange) {
110
- onChange(newNumber);
114
+ if (dataType === dataTypeEnum.number) {
115
+ if (newNumber === '') {
116
+ onChange(newNumber);
117
+ return;
118
+ }
119
+
120
+ if (numberType === numberTypeEnum.INT) {
121
+ onChange(+newNumber);
122
+ } else {
123
+ endsWith(newNumber, '.') ? onChange(newNumber) : onChange(+newNumber);
124
+ }
125
+ } else {
126
+ onChange(newNumber);
127
+ }
111
128
  }
112
129
  }
113
130
  };
@@ -123,24 +140,29 @@ var NumberInput = function NumberInput(props) {
123
140
  }
124
141
  }
125
142
 
143
+ if (dataType === dataTypeEnum.number) {
144
+ if (numberType === numberTypeEnum.FLOAT && onChange && endsWith("" + resultValue, '.')) {
145
+ onChange(+resultValue);
146
+ }
147
+ }
148
+
126
149
  if (onBlur) {
127
- onBlur("" + resultValue || '');
150
+ onBlur("" + resultValue);
128
151
  }
129
152
  };
130
153
 
131
154
  var finallyValue = formatter ? formatter("" + resultValue) : resultValue;
132
155
  return /*#__PURE__*/React.createElement(Input, __assign({
133
156
  type: "text",
157
+ ref: ref,
134
158
  value: finallyValue,
135
159
  onBlur: onNumberBlur,
136
160
  onChange: onNumberChange,
137
161
  maxLength: maxLength
138
162
  }, restProps));
139
- };
140
-
163
+ });
141
164
  NumberInput.defaultProps = {
142
- numberType: numberTypeEnum.INT,
143
165
  enableMinus: false
144
166
  };
145
- NumberInput.numberType = numberTypeEnum;
167
+ export { numberTypeEnum, dataTypeEnum };
146
168
  export default NumberInput;
@@ -0,0 +1,5 @@
1
+ declare enum dataType {
2
+ number = "number",
3
+ string = "string"
4
+ }
5
+ export default dataType;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var dataType;
7
+
8
+ (function (dataType) {
9
+ dataType["number"] = "number";
10
+ dataType["string"] = "string";
11
+ })(dataType || (dataType = {}));
12
+
13
+ exports["default"] = dataType;
@@ -1,10 +1,14 @@
1
1
  import * as React from 'react';
2
+ import type { InputProps } from 'antd/es/input';
3
+ import dataTypeEnum from './const/dataTypeEnum';
2
4
  import * as numberTypeEnum from './const/numberType';
3
- export interface NumberInputProps {
5
+ export interface NumberInputProps extends Omit<InputProps, 'onChange' | 'onBlur'> {
4
6
  /** 输入框的内容 */
5
7
  value?: string | number;
6
8
  /** 输入数据的类型 */
7
9
  numberType?: 'int' | 'float';
10
+ /** value的数据类型 */
11
+ dataType?: dataTypeEnum.number | dataTypeEnum.string;
8
12
  /** 精度,只对float有效 */
9
13
  precision?: number;
10
14
  /** 同html input属性功能 */
@@ -16,7 +20,7 @@ export interface NumberInputProps {
16
20
  /** 是否允许输入负数 */
17
21
  enableMinus?: boolean;
18
22
  /** 变化回调 */
19
- onChange?: (value: string) => void;
23
+ onChange?: (value: string | number) => void;
20
24
  /** 失去焦点回调 */
21
25
  onBlur?: (value: string) => void;
22
26
  /** 按下回车的回调 */
@@ -32,12 +36,6 @@ export interface NumberInputProps {
32
36
  /** 可以点击清除图标删除内容 */
33
37
  allowClear?: boolean;
34
38
  }
35
- declare const NumberInput: {
36
- (props: NumberInputProps): JSX.Element;
37
- defaultProps: {
38
- numberType: string;
39
- enableMinus: boolean;
40
- };
41
- numberType: typeof numberTypeEnum;
42
- };
39
+ declare const NumberInput: React.ForwardRefExoticComponent<NumberInputProps & React.RefAttributes<unknown>>;
40
+ export { numberTypeEnum, dataTypeEnum };
43
41
  export default NumberInput;
@@ -99,6 +99,7 @@ var __importDefault = this && this.__importDefault || function (mod) {
99
99
  Object.defineProperty(exports, "__esModule", {
100
100
  value: true
101
101
  });
102
+ exports.dataTypeEnum = exports.numberTypeEnum = void 0;
102
103
 
103
104
  var React = __importStar(require("react"));
104
105
 
@@ -106,25 +107,36 @@ var input_1 = __importDefault(require("antd/es/input"));
106
107
 
107
108
  var isUndefined_1 = __importDefault(require("lodash/isUndefined"));
108
109
 
110
+ var endsWith_1 = __importDefault(require("lodash/endsWith"));
111
+
112
+ var dataTypeEnum_1 = __importDefault(require("./const/dataTypeEnum"));
113
+
114
+ exports.dataTypeEnum = dataTypeEnum_1["default"];
115
+
109
116
  var numberTypeEnum = __importStar(require("./const/numberType"));
110
117
 
118
+ exports.numberTypeEnum = numberTypeEnum;
119
+
111
120
  var utils_1 = require("./utils");
112
121
 
113
- var NumberInput = function NumberInput(props) {
122
+ var NumberInput = React.forwardRef(function (props, ref) {
114
123
  var value = props.value,
115
124
  onChange = props.onChange,
116
- numberType = props.numberType,
125
+ _a = props.numberType,
126
+ numberType = _a === void 0 ? numberTypeEnum.INT : _a,
127
+ _b = props.dataType,
128
+ dataType = _b === void 0 ? dataTypeEnum_1["default"].number : _b,
117
129
  precision = props.precision,
118
130
  formatter = props.formatter,
119
131
  parser = props.parser,
120
132
  enableMinus = props.enableMinus,
121
133
  onBlur = props.onBlur,
122
134
  maxLength = props.maxLength,
123
- restProps = __rest(props, ["value", "onChange", "numberType", "precision", "formatter", "parser", "enableMinus", "onBlur", "maxLength"]);
135
+ restProps = __rest(props, ["value", "onChange", "numberType", "dataType", "precision", "formatter", "parser", "enableMinus", "onBlur", "maxLength"]);
124
136
 
125
- var _a = __read(React.useState(''), 2),
126
- inputValue = _a[0],
127
- setInputValue = _a[1];
137
+ var _c = __read(React.useState(''), 2),
138
+ inputValue = _c[0],
139
+ setInputValue = _c[1];
128
140
 
129
141
  var resultValue = isUndefined_1["default"](value) ? inputValue : value;
130
142
 
@@ -157,7 +169,20 @@ var NumberInput = function NumberInput(props) {
157
169
  }
158
170
 
159
171
  if (onChange) {
160
- onChange(newNumber);
172
+ if (dataType === dataTypeEnum_1["default"].number) {
173
+ if (newNumber === '') {
174
+ onChange(newNumber);
175
+ return;
176
+ }
177
+
178
+ if (numberType === numberTypeEnum.INT) {
179
+ onChange(+newNumber);
180
+ } else {
181
+ endsWith_1["default"](newNumber, '.') ? onChange(newNumber) : onChange(+newNumber);
182
+ }
183
+ } else {
184
+ onChange(newNumber);
185
+ }
161
186
  }
162
187
  }
163
188
  };
@@ -173,24 +198,28 @@ var NumberInput = function NumberInput(props) {
173
198
  }
174
199
  }
175
200
 
201
+ if (dataType === dataTypeEnum_1["default"].number) {
202
+ if (numberType === numberTypeEnum.FLOAT && onChange && endsWith_1["default"]("" + resultValue, '.')) {
203
+ onChange(+resultValue);
204
+ }
205
+ }
206
+
176
207
  if (onBlur) {
177
- onBlur("" + resultValue || '');
208
+ onBlur("" + resultValue);
178
209
  }
179
210
  };
180
211
 
181
212
  var finallyValue = formatter ? formatter("" + resultValue) : resultValue;
182
213
  return React.createElement(input_1["default"], __assign({
183
214
  type: "text",
215
+ ref: ref,
184
216
  value: finallyValue,
185
217
  onBlur: onNumberBlur,
186
218
  onChange: onNumberChange,
187
219
  maxLength: maxLength
188
220
  }, restProps));
189
- };
190
-
221
+ });
191
222
  NumberInput.defaultProps = {
192
- numberType: numberTypeEnum.INT,
193
223
  enableMinus: false
194
224
  };
195
- NumberInput.numberType = numberTypeEnum;
196
225
  exports["default"] = NumberInput;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "assui",
3
- "version": "2.0.34",
3
+ "version": "2.0.39",
4
4
  "description": "react ui library",
5
5
  "author": "jason <usochen@gmail.com>",
6
6
  "main": "./lib/index.js",
@@ -33,7 +33,7 @@
33
33
  "@ahooksjs/use-url-state": "^2.5.8",
34
34
  "@tinymce/tinymce-react": "^3.13.0",
35
35
  "@types/react-beautiful-dnd": "^13.1.2",
36
- "a-icons": "^1.0.20",
36
+ "a-icons": "^1.0.24",
37
37
  "ahooks": "^2.10.9",
38
38
  "bignumber.js": "^9.0.1",
39
39
  "copy-to-clipboard": "^3.3.1",
@@ -69,5 +69,5 @@
69
69
  "node": ">=10.0.0"
70
70
  },
71
71
  "license": "MIT",
72
- "gitHead": "f5a14525d523426cc473063c0d004a609fc53f43"
72
+ "gitHead": "2c935268a3d1f4d731fb20f7803eac30216fd03f"
73
73
  }