UNPKG

2.89 kBTypeScriptView Raw
1/// <reference types="react" />
2
3import * as React from 'react';
4import CommonProps from '../util';
5import { ButtonProps } from '../button';
6import Input from '../input';
7
8interface HTMLAttributesWeak extends React.HTMLAttributes<HTMLElement> {
9 defaultValue?: any;
10 onChange?: any;
11 onKeyDown?: any;
12}
13
14export interface NumberPickerProps extends HTMLAttributesWeak, CommonProps {
15 /**
16 * 样式前缀
17 */
18 prefix?: string;
19 name?: string;
20 /**
21 * 设置类型
22 */
23 type?: 'normal' | 'inline';
24
25 /**
26 * 大小
27 */
28 size?: 'large' | 'medium' | 'small';
29
30 /**
31 * 当前值
32 */
33 value?: number | string;
34
35 /**
36 * 默认值
37 */
38 defaultValue?: number | string;
39 /**
40 * 内联 左侧label
41 */
42 label?: React.ReactNode;
43
44 /**
45 * 文字后附加内容
46 */
47 innerAfter?: React.ReactNode;
48
49 /**
50 * 是否禁用
51 */
52 disabled?: boolean;
53
54 /**
55 * 步长
56 */
57 step?: number | string;
58
59 /**
60 * 保留小数点后位数
61 */
62 precision?: number;
63
64 /**
65 * 用户是否可以输入
66 */
67 editable?: boolean;
68
69 /**
70 * 自动焦点
71 */
72 autoFocus?: boolean;
73
74 /**
75 * 数值被改变的事件
76 */
77 onChange?: (value: number, e: any) => void;
78
79 /**
80 * 键盘按下
81 */
82 onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;
83
84 /**
85 * 焦点获得
86 */
87 onFocus?: (e: React.FocusEvent<HTMLInputElement>) => void;
88
89 /**
90 * 焦点失去
91 */
92 onBlur?: (e: React.FocusEvent<HTMLInputElement>) => void;
93
94 /**
95 * 数值订正后的回调
96 */
97 onCorrect?: (obj: object) => void;
98
99 /**
100 * 最大值
101 */
102 max?: number | string;
103
104 /**
105 * 最小值
106 */
107 min?: number | string;
108
109 /**
110 * 自定义class
111 */
112 className?: string;
113
114 /**
115 * 自定义内联样式
116 */
117 style?: React.CSSProperties;
118
119 /**
120 * 格式化当前值
121 */
122 format?: (value: number) => string | number;
123
124 /**
125 * 增加按钮的props
126 */
127 upBtnProps?: ButtonProps;
128
129 /**
130 * 减少按钮的props
131 */
132 downBtnProps?: ButtonProps;
133 /**
134 * 控制按钮一直显示、隐藏
135 */
136 alwaysShowTrigger?: boolean;
137 /**
138 * 是否为预览态
139 */
140 isPreview?: boolean;
141 /**
142 * 预览态模式下渲染的内容
143 */
144 renderPreview?: (value: number | string, props: object) => React.ReactNode;
145 /**
146 * 预设屏幕宽度
147 */
148 device?: 'phone' | 'tablet' | 'desktop';
149 /**
150 * 是否展示点击按钮
151 */
152 hasTrigger?: boolean;
153 /**
154 * 开启大数支持,输入输出均为string类型
155 */
156 stringMode?: boolean;
157}
158
159export default class NumberPicker extends React.Component<NumberPickerProps, any> {
160 getInputNode: () => Input;
161}