UNPKG

3.1 kBTypeScriptView Raw
1/// <reference types="react" />
2
3import * as React from 'react';
4import CommonProps from '../util';
5
6interface HTMLAttributesWeak extends React.HTMLAttributes<HTMLElement> {
7 onClick?: any;
8}
9
10export interface CloseableProps extends HTMLAttributesWeak, CommonProps {
11 /**
12 * closeable 标签的 onClose 响应区域, tag: 标签体, tail(默认): 关闭按钮
13 */
14 closeArea?: 'tag' | 'tail';
15
16 type?: 'normal' | 'primary';
17
18 /**
19 * 点击关闭按钮时的回调
20 */
21 onClose?: (from: string) => boolean;
22
23 /**
24 * 标签关闭后执行的回调
25 */
26 afterClose?: () => void;
27
28 /**
29 * 点击回调
30 */
31 onClick?: React.MouseEventHandler;
32
33 /**
34 * 标签的尺寸(large 尺寸为兼容表单场景 large = medium)
35 */
36 size?: 'small' | 'medium' | 'large';
37}
38
39export class Closeable extends React.Component<CloseableProps, any> {}
40
41interface HTMLAttributesWeak extends React.HTMLAttributes<HTMLElement> {
42 onChange?: any;
43}
44
45export interface SelectableProps extends HTMLAttributesWeak, CommonProps {
46 /**
47 * 标签是否被选中,受控用法
48 * tag checked or not, a controlled way
49 */
50 checked?: boolean;
51
52 type?: 'normal' | 'primary';
53 /**
54 * 标签是否默认被选中,非受控用法
55 * tag checked or not by default, a uncontrolled way
56 */
57 defaultChecked?: boolean;
58
59 /**
60 * 选中状态变化时触发的事件
61 */
62 onChange?: (checked: boolean, e: any) => void;
63
64 /**
65 * 标签是否被禁用
66 */
67 disabled?: boolean;
68 /**
69 * 标签的尺寸(large 尺寸为兼容表单场景 large = medium)
70 */
71 size?: 'small' | 'medium' | 'large';
72}
73
74export class Selectable extends React.Component<SelectableProps, any> {}
75interface HTMLAttributesWeak extends React.HTMLAttributes<HTMLElement> {
76 onClick?: any;
77}
78
79export interface TagGroupProps
80 extends React.HTMLAttributes<HTMLElement>,
81 CommonProps {}
82
83export class TagGroup extends React.Component<TagGroupProps, any> {}
84
85export interface TagProps extends HTMLAttributesWeak, CommonProps {
86 /**
87 * 标签类名前缀,提供给二次开发者用
88 */
89 prefix?: string;
90
91 /**
92 * 标签的类型
93 */
94 type?: 'normal' | 'primary';
95
96 /**
97 * 标签的尺寸(large 尺寸为兼容表单场景 large = medium)
98 */
99 size?: 'small' | 'medium' | 'large';
100
101 /**
102 * 标签颜色, 目前支持:blue、 green、 orange、red、 turquoise、 yellow 和 hex 颜色值 (`color keywords`作为 Tag 组件的保留字,请勿直接使用 ), `1.19.0` 以上版本生效
103 */
104 color?: string;
105
106 /**
107 * 是否开启动效
108 */
109 animation?: boolean;
110
111 /**
112 * 标签出现动画结束后执行的回调
113 */
114 afterAppear?: () => void;
115
116 /**
117 * 点击回调
118 */
119 onClick?: React.MouseEventHandler;
120}
121
122export default class Tag extends React.Component<TagProps, any> {
123 static Closeable: typeof Closeable;
124 static Selectable: typeof Selectable;
125 static Group: typeof TagGroup;
126}