@sia.soul/sia-react-ui 0.1.22 → 0.1.24
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/dist/Select-O_yY51vc.d.ts +307 -0
- package/dist/Select-W_xpkpOW.d.cts +307 -0
- package/dist/chart.cjs +1401 -1160
- package/dist/chart.css +21 -0
- package/dist/chart.js +4 -4
- package/dist/{chunk-3TRRBMXY.js → chunk-6R7JY7IY.js} +44 -21
- package/dist/{chunk-TZGUBGA4.js → chunk-6WBABNAX.js} +4 -3
- package/dist/{chunk-OKP4DIQH.js → chunk-GUXAWU63.js} +29 -26
- package/dist/{chunk-QJ4OQNQ4.js → chunk-LA7O3PN4.js} +4 -3
- package/dist/{chunk-7RNS52YG.js → chunk-LIYCU2GU.js} +349 -278
- package/dist/{chunk-KLI65JVD.js → chunk-LRPQ5FGE.js} +68 -186
- package/dist/chunk-NSSPGXNM.js +284 -0
- package/dist/{chunk-YT6E3X2K.js → chunk-OH6YILJW.js} +4 -3
- package/dist/{chunk-RWGSZW32.js → chunk-RGXVPS37.js} +7 -6
- package/dist/{chunk-VN6PIPP7.js → chunk-T2QIW4OO.js} +8 -7
- package/dist/{core-DeZknKwc.d.ts → core-BOzLwiXG.d.ts} +40 -158
- package/dist/{core-C5OnrCi4.d.cts → core-tbb9ZiBY.d.cts} +40 -158
- package/dist/core.cjs +1656 -1443
- package/dist/core.css +60 -0
- package/dist/core.d.cts +2 -2
- package/dist/core.d.ts +2 -2
- package/dist/core.js +8 -6
- package/dist/index.cjs +3801 -3580
- package/dist/index.css +60 -0
- package/dist/index.d.cts +33 -16
- package/dist/index.d.ts +33 -16
- package/dist/index.js +94 -85
- package/dist/markdown-editor.cjs +269 -28
- package/dist/markdown-editor.css +20 -0
- package/dist/markdown-editor.js +2 -2
- package/dist/rich-text-editor.cjs +1156 -1031
- package/dist/rich-text-editor.css +20 -0
- package/dist/rich-text-editor.js +4 -4
- package/dist/{select-date-range-CGRb3-W8.d.ts → select-date-range-BjqFUeU6.d.ts} +1 -1
- package/dist/{select-date-range-DDmYGDD4.d.cts → select-date-range-C9w8z3G8.d.cts} +1 -1
- package/dist/select-date-range.cjs +1209 -1061
- package/dist/select-date-range.css +20 -0
- package/dist/select-date-range.d.cts +2 -2
- package/dist/select-date-range.d.ts +2 -2
- package/dist/select-date-range.js +5 -5
- package/package.json +2 -2
- package/dist/Select-4hGJt3RJ.d.cts +0 -142
- package/dist/Select-BNSE67xn.d.ts +0 -142
- package/dist/chunk-3VJ4CZDQ.js +0 -43
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ButtonHTMLAttributes, ReactNode, HTMLAttributes } from 'react';
|
|
3
|
+
import { C as ControlSize, I as InputPlaceholderMode, a as ControlStatus } from './shared-Bx4B28Wh.js';
|
|
4
|
+
|
|
5
|
+
/** 按钮视觉样式,可选择主按钮、默认按钮、文本按钮或链接等形式。 */
|
|
6
|
+
type ButtonVariant = "primary" | "default" | "dashed" | "filled" | "text" | "link";
|
|
7
|
+
/** 按钮尺寸等级。 */
|
|
8
|
+
type ButtonSize = ControlSize;
|
|
9
|
+
/** 按钮的属性配置。 */
|
|
10
|
+
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
11
|
+
/**
|
|
12
|
+
组件的视觉样式。
|
|
13
|
+
* @defaultValue "default"
|
|
14
|
+
*/
|
|
15
|
+
variant?: ButtonVariant;
|
|
16
|
+
/** small / medium / large 高度为 22 / 30 / 38px;默认继承 Form,组件自身 size 优先 */
|
|
17
|
+
size?: ButtonSize;
|
|
18
|
+
/**
|
|
19
|
+
* 显示加载状态并禁止重复点击
|
|
20
|
+
* @defaultValue false
|
|
21
|
+
*/
|
|
22
|
+
loading?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* 宽度撑满父容器
|
|
25
|
+
* @defaultValue false
|
|
26
|
+
*/
|
|
27
|
+
block?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* 危险操作样式
|
|
30
|
+
* @defaultValue false
|
|
31
|
+
*/
|
|
32
|
+
danger?: boolean;
|
|
33
|
+
/** 按钮图标 */
|
|
34
|
+
icon?: ReactNode;
|
|
35
|
+
/**
|
|
36
|
+
* 图标位置
|
|
37
|
+
* @defaultValue "start"
|
|
38
|
+
*/
|
|
39
|
+
iconPosition?: "start" | "end";
|
|
40
|
+
}
|
|
41
|
+
/** 按钮组件。 */
|
|
42
|
+
declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
|
|
43
|
+
|
|
44
|
+
/** 弹层挂载节点或返回挂载节点的函数。 */
|
|
45
|
+
type OverlayContainer = HTMLElement | (() => HTMLElement);
|
|
46
|
+
|
|
47
|
+
/** 模态框的类型标识。 */
|
|
48
|
+
type ModalType = "default" | "info" | "success" | "warning" | "error" | "confirm";
|
|
49
|
+
/** 确认操作的返回值;false 阻止关闭,Promise 可用于等待异步操作。 */
|
|
50
|
+
type ModalActionResult = void | boolean | Promise<void | boolean>;
|
|
51
|
+
/** 模态框的属性配置。 */
|
|
52
|
+
interface ModalProps extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "onSubmit"> {
|
|
53
|
+
/** 是否显示对话框 */
|
|
54
|
+
open: boolean;
|
|
55
|
+
/** 标题 */
|
|
56
|
+
title?: ReactNode;
|
|
57
|
+
/** 子内容;组件嵌套内容或当前节点的子项。 */
|
|
58
|
+
children?: ReactNode;
|
|
59
|
+
/** 自定义底部操作区,传 null 隐藏 */
|
|
60
|
+
footer?: ReactNode | null;
|
|
61
|
+
/** 默认底部操作区左侧的扩展内容。 */
|
|
62
|
+
footerExtra?: ReactNode;
|
|
63
|
+
/**
|
|
64
|
+
* 类型标识,用于选择对应的表现形式。
|
|
65
|
+
* @defaultValue "default"
|
|
66
|
+
*/
|
|
67
|
+
type?: ModalType;
|
|
68
|
+
/**
|
|
69
|
+
* 确定按钮文案。
|
|
70
|
+
* @defaultValue "确定"
|
|
71
|
+
*/
|
|
72
|
+
okText?: ReactNode;
|
|
73
|
+
/**
|
|
74
|
+
* 取消按钮文案。
|
|
75
|
+
* @defaultValue "取消"
|
|
76
|
+
*/
|
|
77
|
+
cancelText?: ReactNode;
|
|
78
|
+
/**
|
|
79
|
+
* 是否显示取消按钮。
|
|
80
|
+
* @defaultValue type === "default" || type === "confirm"
|
|
81
|
+
*/
|
|
82
|
+
showCancel?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* 确定操作是否正在执行;为 true 时阻止重复提交和关闭。
|
|
85
|
+
* @defaultValue false
|
|
86
|
+
*/
|
|
87
|
+
confirmLoading?: boolean;
|
|
88
|
+
/** 确定按钮的 Button 属性。 */
|
|
89
|
+
okButtonProps?: ButtonProps;
|
|
90
|
+
/** 取消按钮的 Button 属性。 */
|
|
91
|
+
cancelButtonProps?: ButtonProps;
|
|
92
|
+
/**
|
|
93
|
+
* 是否显示关闭入口。
|
|
94
|
+
* @defaultValue true
|
|
95
|
+
*/
|
|
96
|
+
closable?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* 点击遮罩时是否允许关闭。
|
|
99
|
+
* @defaultValue true
|
|
100
|
+
*/
|
|
101
|
+
maskClosable?: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* 是否允许通过 Esc 等键盘操作关闭。
|
|
104
|
+
* @defaultValue true
|
|
105
|
+
*/
|
|
106
|
+
keyboard?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* 弹框是否垂直居中。
|
|
109
|
+
* @defaultValue false
|
|
110
|
+
*/
|
|
111
|
+
centered?: boolean;
|
|
112
|
+
/**
|
|
113
|
+
* 宽度;数值按像素处理,字符串可使用 CSS 尺寸。
|
|
114
|
+
* @defaultValue 520
|
|
115
|
+
*/
|
|
116
|
+
width?: number | string;
|
|
117
|
+
/** 固定弹框高度,内容区独立滚动,标题和底部保持可见。 */
|
|
118
|
+
height?: number | string;
|
|
119
|
+
/**
|
|
120
|
+
组件或浮层的堆叠层级。
|
|
121
|
+
* @defaultValue 1000
|
|
122
|
+
*/
|
|
123
|
+
zIndex?: number;
|
|
124
|
+
/** 弹层挂载目标;可提供元素或返回元素的函数,默认挂载到页面容器。 */
|
|
125
|
+
getContainer?: OverlayContainer;
|
|
126
|
+
/** 确认回调,支持 Promise 与返回 false 阻止关闭 */
|
|
127
|
+
onOk?: () => ModalActionResult;
|
|
128
|
+
/** 用户取消或通过关闭入口退出时调用。 */
|
|
129
|
+
onCancel?: () => void;
|
|
130
|
+
/** 打开状态变化回调 */
|
|
131
|
+
onOpenChange?: (open: boolean) => void;
|
|
132
|
+
/** 动画完成后触发,适用于聚焦内容和释放外部挂载点。 */
|
|
133
|
+
afterOpenChange?: (open: boolean) => void;
|
|
134
|
+
}
|
|
135
|
+
/** ModalOpen的配置。 */
|
|
136
|
+
interface ModalOpenConfig extends Omit<ModalProps, "open"> {
|
|
137
|
+
}
|
|
138
|
+
/** OverlayApi的操作句柄。 */
|
|
139
|
+
interface OverlayApiHandle<T> {
|
|
140
|
+
/** 关闭弹层并在退出动画后释放挂载点。程序化关闭不会模拟用户取消按钮点击。 */
|
|
141
|
+
destroy: () => void;
|
|
142
|
+
/** 合并更新已打开弹层的配置,未提供的属性保留原值。 */
|
|
143
|
+
update: (next: Partial<T>) => void;
|
|
144
|
+
}
|
|
145
|
+
declare function openModal(config: ModalOpenConfig): OverlayApiHandle<ModalOpenConfig>;
|
|
146
|
+
/** 模态框组件。 */
|
|
147
|
+
declare const Modal: react.ForwardRefExoticComponent<ModalProps & react.RefAttributes<HTMLDivElement>> & {
|
|
148
|
+
/** 直接打开实例,返回可用于更新或关闭的操作句柄。 */
|
|
149
|
+
open: typeof openModal;
|
|
150
|
+
/** 显示普通信息提示。 */
|
|
151
|
+
info: (config: ModalOpenConfig) => OverlayApiHandle<ModalOpenConfig>;
|
|
152
|
+
/** 显示成功提示。 */
|
|
153
|
+
success: (config: ModalOpenConfig) => OverlayApiHandle<ModalOpenConfig>;
|
|
154
|
+
/** 显示警告提示。 */
|
|
155
|
+
warning: (config: ModalOpenConfig) => OverlayApiHandle<ModalOpenConfig>;
|
|
156
|
+
/** 显示错误提示。 */
|
|
157
|
+
error: (config: ModalOpenConfig) => OverlayApiHandle<ModalOpenConfig>;
|
|
158
|
+
/** 打开确认弹框,支持异步确认;返回 false 可阻止关闭。 */
|
|
159
|
+
confirm: (config: ModalOpenConfig) => OverlayApiHandle<ModalOpenConfig>;
|
|
160
|
+
/** 关闭由此 API 打开的所有弹层。 */
|
|
161
|
+
destroyAll(): void;
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
/** 选择器的值类型。 */
|
|
165
|
+
type SelectValue = string | number;
|
|
166
|
+
/** 选择器的模式类型。 */
|
|
167
|
+
type SelectMode = "single" | "multiple";
|
|
168
|
+
/** 选择变更后的值:单选为字符串、数字或 null,多选为值数组。 */
|
|
169
|
+
type SelectChangeValue = SelectValue | SelectValue[] | null;
|
|
170
|
+
/** 选择器的候选项定义。 */
|
|
171
|
+
type SelectOption = {
|
|
172
|
+
/** 展示给用户的名称,可传入文本或 React 节点。 */
|
|
173
|
+
label: ReactNode;
|
|
174
|
+
/** 该项目对应的数据值,用于标识、选择或计算。 */
|
|
175
|
+
value: SelectValue;
|
|
176
|
+
/** 是否禁用交互。 */
|
|
177
|
+
disabled?: boolean;
|
|
178
|
+
/** 弹框模式中的分组标题。 */
|
|
179
|
+
group?: string;
|
|
180
|
+
};
|
|
181
|
+
/** 选择器的属性配置。 */
|
|
182
|
+
interface SelectProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "defaultValue" | "onChange" | "value"> {
|
|
183
|
+
/** 下拉选项 */
|
|
184
|
+
options: readonly SelectOption[];
|
|
185
|
+
/**
|
|
186
|
+
* 单选或多选模式
|
|
187
|
+
* @defaultValue "single"
|
|
188
|
+
*/
|
|
189
|
+
mode?: SelectMode;
|
|
190
|
+
/** 显式指定下拉或弹框。未设置时根据 options 总数判断:超过 modalThreshold 使用弹框。显式配置优先于阈值;弹框点击确定才提交。 */
|
|
191
|
+
popupMode?: "dropdown" | "modal";
|
|
192
|
+
/**
|
|
193
|
+
* 未指定 popupMode 时,选项总数超过此值自动使用弹框,等于阈值时仍使用下拉。
|
|
194
|
+
* @defaultValue 15
|
|
195
|
+
*/
|
|
196
|
+
modalThreshold?: number;
|
|
197
|
+
/** 弹框标题、布局及顶部/底部扩展内容。 */
|
|
198
|
+
modalConfig?: {
|
|
199
|
+
/** 弹框标题,未设置时使用 Select 的 placeholder。 */
|
|
200
|
+
title?: ReactNode;
|
|
201
|
+
/** 弹框宽度,默认 900px。 */
|
|
202
|
+
width?: number | string;
|
|
203
|
+
/** 每行选项列数,默认 3 列。 */
|
|
204
|
+
columns?: number;
|
|
205
|
+
/** 列表最大可视高度,默认 360px。 */
|
|
206
|
+
maxHeight?: number;
|
|
207
|
+
/** 标题下方的独立首行扩展内容,位于选项范围和搜索框上方。 */
|
|
208
|
+
headerExtra?: ReactNode;
|
|
209
|
+
/** 顶部扩展控件的业务数据,由业务方更新此属性;框架不会自动绑定 headerExtra 内的控件。确认时将当前对象的浅拷贝作为 onConfirm 第三个参数传出,未配置时为 {}。 */
|
|
210
|
+
extraValues?: Record<string, unknown>;
|
|
211
|
+
/** 点击确定时传出选中值、对应选项及扩展数据浅拷贝;单选无值为 null,多选为数组。异步完成后才提交 onChange 并关闭;返回 false 或抛出异常保留草稿和弹框,不触发 onChange。取消不调用。 */
|
|
212
|
+
onConfirm?: (value: SelectChangeValue, option: SelectOption | SelectOption[] | null, extraValues: Record<string, unknown>) => ModalActionResult;
|
|
213
|
+
/** 底部左侧扩展内容,例如维护按钮。 */
|
|
214
|
+
footerExtra?: ReactNode;
|
|
215
|
+
};
|
|
216
|
+
/** 当前值(受控) */
|
|
217
|
+
value?: SelectChangeValue;
|
|
218
|
+
/** 初始选中值 */
|
|
219
|
+
defaultValue?: SelectChangeValue;
|
|
220
|
+
/** 确认选择或清空时调用。单选返回单值及对应选项,清空返回 null;多选返回值数组及选项数组。弹框中的草稿变化不会直接触发。 */
|
|
221
|
+
onChange?: (value: SelectChangeValue, option: SelectOption | SelectOption[] | null) => void;
|
|
222
|
+
/**
|
|
223
|
+
* 未选择时的提示
|
|
224
|
+
* @defaultValue "请选择"
|
|
225
|
+
*/
|
|
226
|
+
placeholder?: ReactNode;
|
|
227
|
+
/** 占位提示的显示模式;floating 为浮动标签。 */
|
|
228
|
+
placeholderMode?: InputPlaceholderMode;
|
|
229
|
+
/** small / medium / large 高度为 22 / 30 / 38px;默认继承 Form,组件自身 size 优先 */
|
|
230
|
+
size?: ControlSize;
|
|
231
|
+
/**
|
|
232
|
+
* 当前状态,用于选择对应的状态样式。
|
|
233
|
+
* @defaultValue "default"
|
|
234
|
+
*/
|
|
235
|
+
status?: ControlStatus;
|
|
236
|
+
/**
|
|
237
|
+
* 是否允许清空当前选择;单选弹框中同时允许再次点击已选项取消选择。显式设为 false 可禁用。
|
|
238
|
+
* @defaultValue true
|
|
239
|
+
*/
|
|
240
|
+
allowClear?: boolean;
|
|
241
|
+
/**
|
|
242
|
+
* 显示加载状态并禁用展开
|
|
243
|
+
* @defaultValue false
|
|
244
|
+
*/
|
|
245
|
+
loading?: boolean;
|
|
246
|
+
/**
|
|
247
|
+
是否显示搜索输入框。
|
|
248
|
+
* @defaultValue false
|
|
249
|
+
*/
|
|
250
|
+
showSearch?: boolean;
|
|
251
|
+
/** 在选项名称下方显示对应的 value。 */
|
|
252
|
+
showValue?: boolean;
|
|
253
|
+
/** 允许将搜索框内容作为自定义选项提交。 */
|
|
254
|
+
allowInput?: boolean;
|
|
255
|
+
/** 手动输入内容的最大长度 */
|
|
256
|
+
inputMaxLength?: number;
|
|
257
|
+
/**
|
|
258
|
+
* 搜索框的占位提示文字。
|
|
259
|
+
* @defaultValue "搜索选项"
|
|
260
|
+
*/
|
|
261
|
+
searchPlaceholder?: string;
|
|
262
|
+
/** 搜索条件变化或提交搜索时调用,具体参数见签名。 */
|
|
263
|
+
onSearch?: (query: string) => void;
|
|
264
|
+
/**
|
|
265
|
+
* 自定义搜索匹配函数,返回 true 时保留该选项。
|
|
266
|
+
* @defaultValue defaultFilterOption
|
|
267
|
+
*/
|
|
268
|
+
filterOption?: (query: string, option: SelectOption) => boolean;
|
|
269
|
+
/**
|
|
270
|
+
* 多选时显示全选、反选;下拉操作栏固定在列表底部
|
|
271
|
+
* @defaultValue true
|
|
272
|
+
*/
|
|
273
|
+
showSelectAll?: boolean;
|
|
274
|
+
/** 是否显示下拉面板底部的条数统计与操作行;默认单选隐藏、多选显示,不影响弹框模式。 */
|
|
275
|
+
showActions?: boolean;
|
|
276
|
+
/** 最多显示的标签数;空间不足时会继续折叠,并为 +N 预留宽度。 */
|
|
277
|
+
maxTagCount?: number;
|
|
278
|
+
/**
|
|
279
|
+
* 长列表启用窗口化渲染
|
|
280
|
+
* @defaultValue true
|
|
281
|
+
*/
|
|
282
|
+
virtual?: boolean;
|
|
283
|
+
/**
|
|
284
|
+
* 启用虚拟滚动的选项数量
|
|
285
|
+
* @defaultValue 100
|
|
286
|
+
*/
|
|
287
|
+
virtualThreshold?: number;
|
|
288
|
+
/**
|
|
289
|
+
* 选项列表的最大可视高度,单位为像素。
|
|
290
|
+
* @defaultValue 256
|
|
291
|
+
*/
|
|
292
|
+
listHeight?: number;
|
|
293
|
+
/**
|
|
294
|
+
* 单个选项的高度,虚拟列表据此计算可见区域。
|
|
295
|
+
* @defaultValue showValue ? 54 : 34
|
|
296
|
+
*/
|
|
297
|
+
optionHeight?: number;
|
|
298
|
+
/**
|
|
299
|
+
* 没有匹配选项时的提示内容。
|
|
300
|
+
* @defaultValue "暂无数据"
|
|
301
|
+
*/
|
|
302
|
+
notFoundContent?: ReactNode;
|
|
303
|
+
}
|
|
304
|
+
/** 选择器组件。 */
|
|
305
|
+
declare const Select: react.ForwardRefExoticComponent<SelectProps & react.RefAttributes<HTMLButtonElement>>;
|
|
306
|
+
|
|
307
|
+
export { type ButtonProps as B, type ModalOpenConfig as M, type OverlayContainer as O, type SelectOption as S, type OverlayApiHandle as a, type SelectChangeValue as b, type SelectProps as c, type ModalActionResult as d, type ButtonSize as e, Button as f, type ButtonVariant as g, Modal as h, type ModalProps as i, type ModalType as j, Select as k, type SelectMode as l, type SelectValue as m };
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import { ButtonHTMLAttributes, ReactNode, HTMLAttributes } from 'react';
|
|
3
|
+
import { C as ControlSize, I as InputPlaceholderMode, a as ControlStatus } from './shared-Bx4B28Wh.cjs';
|
|
4
|
+
|
|
5
|
+
/** 按钮视觉样式,可选择主按钮、默认按钮、文本按钮或链接等形式。 */
|
|
6
|
+
type ButtonVariant = "primary" | "default" | "dashed" | "filled" | "text" | "link";
|
|
7
|
+
/** 按钮尺寸等级。 */
|
|
8
|
+
type ButtonSize = ControlSize;
|
|
9
|
+
/** 按钮的属性配置。 */
|
|
10
|
+
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
11
|
+
/**
|
|
12
|
+
组件的视觉样式。
|
|
13
|
+
* @defaultValue "default"
|
|
14
|
+
*/
|
|
15
|
+
variant?: ButtonVariant;
|
|
16
|
+
/** small / medium / large 高度为 22 / 30 / 38px;默认继承 Form,组件自身 size 优先 */
|
|
17
|
+
size?: ButtonSize;
|
|
18
|
+
/**
|
|
19
|
+
* 显示加载状态并禁止重复点击
|
|
20
|
+
* @defaultValue false
|
|
21
|
+
*/
|
|
22
|
+
loading?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* 宽度撑满父容器
|
|
25
|
+
* @defaultValue false
|
|
26
|
+
*/
|
|
27
|
+
block?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* 危险操作样式
|
|
30
|
+
* @defaultValue false
|
|
31
|
+
*/
|
|
32
|
+
danger?: boolean;
|
|
33
|
+
/** 按钮图标 */
|
|
34
|
+
icon?: ReactNode;
|
|
35
|
+
/**
|
|
36
|
+
* 图标位置
|
|
37
|
+
* @defaultValue "start"
|
|
38
|
+
*/
|
|
39
|
+
iconPosition?: "start" | "end";
|
|
40
|
+
}
|
|
41
|
+
/** 按钮组件。 */
|
|
42
|
+
declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
|
|
43
|
+
|
|
44
|
+
/** 弹层挂载节点或返回挂载节点的函数。 */
|
|
45
|
+
type OverlayContainer = HTMLElement | (() => HTMLElement);
|
|
46
|
+
|
|
47
|
+
/** 模态框的类型标识。 */
|
|
48
|
+
type ModalType = "default" | "info" | "success" | "warning" | "error" | "confirm";
|
|
49
|
+
/** 确认操作的返回值;false 阻止关闭,Promise 可用于等待异步操作。 */
|
|
50
|
+
type ModalActionResult = void | boolean | Promise<void | boolean>;
|
|
51
|
+
/** 模态框的属性配置。 */
|
|
52
|
+
interface ModalProps extends Omit<HTMLAttributes<HTMLDivElement>, "title" | "onSubmit"> {
|
|
53
|
+
/** 是否显示对话框 */
|
|
54
|
+
open: boolean;
|
|
55
|
+
/** 标题 */
|
|
56
|
+
title?: ReactNode;
|
|
57
|
+
/** 子内容;组件嵌套内容或当前节点的子项。 */
|
|
58
|
+
children?: ReactNode;
|
|
59
|
+
/** 自定义底部操作区,传 null 隐藏 */
|
|
60
|
+
footer?: ReactNode | null;
|
|
61
|
+
/** 默认底部操作区左侧的扩展内容。 */
|
|
62
|
+
footerExtra?: ReactNode;
|
|
63
|
+
/**
|
|
64
|
+
* 类型标识,用于选择对应的表现形式。
|
|
65
|
+
* @defaultValue "default"
|
|
66
|
+
*/
|
|
67
|
+
type?: ModalType;
|
|
68
|
+
/**
|
|
69
|
+
* 确定按钮文案。
|
|
70
|
+
* @defaultValue "确定"
|
|
71
|
+
*/
|
|
72
|
+
okText?: ReactNode;
|
|
73
|
+
/**
|
|
74
|
+
* 取消按钮文案。
|
|
75
|
+
* @defaultValue "取消"
|
|
76
|
+
*/
|
|
77
|
+
cancelText?: ReactNode;
|
|
78
|
+
/**
|
|
79
|
+
* 是否显示取消按钮。
|
|
80
|
+
* @defaultValue type === "default" || type === "confirm"
|
|
81
|
+
*/
|
|
82
|
+
showCancel?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* 确定操作是否正在执行;为 true 时阻止重复提交和关闭。
|
|
85
|
+
* @defaultValue false
|
|
86
|
+
*/
|
|
87
|
+
confirmLoading?: boolean;
|
|
88
|
+
/** 确定按钮的 Button 属性。 */
|
|
89
|
+
okButtonProps?: ButtonProps;
|
|
90
|
+
/** 取消按钮的 Button 属性。 */
|
|
91
|
+
cancelButtonProps?: ButtonProps;
|
|
92
|
+
/**
|
|
93
|
+
* 是否显示关闭入口。
|
|
94
|
+
* @defaultValue true
|
|
95
|
+
*/
|
|
96
|
+
closable?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* 点击遮罩时是否允许关闭。
|
|
99
|
+
* @defaultValue true
|
|
100
|
+
*/
|
|
101
|
+
maskClosable?: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* 是否允许通过 Esc 等键盘操作关闭。
|
|
104
|
+
* @defaultValue true
|
|
105
|
+
*/
|
|
106
|
+
keyboard?: boolean;
|
|
107
|
+
/**
|
|
108
|
+
* 弹框是否垂直居中。
|
|
109
|
+
* @defaultValue false
|
|
110
|
+
*/
|
|
111
|
+
centered?: boolean;
|
|
112
|
+
/**
|
|
113
|
+
* 宽度;数值按像素处理,字符串可使用 CSS 尺寸。
|
|
114
|
+
* @defaultValue 520
|
|
115
|
+
*/
|
|
116
|
+
width?: number | string;
|
|
117
|
+
/** 固定弹框高度,内容区独立滚动,标题和底部保持可见。 */
|
|
118
|
+
height?: number | string;
|
|
119
|
+
/**
|
|
120
|
+
组件或浮层的堆叠层级。
|
|
121
|
+
* @defaultValue 1000
|
|
122
|
+
*/
|
|
123
|
+
zIndex?: number;
|
|
124
|
+
/** 弹层挂载目标;可提供元素或返回元素的函数,默认挂载到页面容器。 */
|
|
125
|
+
getContainer?: OverlayContainer;
|
|
126
|
+
/** 确认回调,支持 Promise 与返回 false 阻止关闭 */
|
|
127
|
+
onOk?: () => ModalActionResult;
|
|
128
|
+
/** 用户取消或通过关闭入口退出时调用。 */
|
|
129
|
+
onCancel?: () => void;
|
|
130
|
+
/** 打开状态变化回调 */
|
|
131
|
+
onOpenChange?: (open: boolean) => void;
|
|
132
|
+
/** 动画完成后触发,适用于聚焦内容和释放外部挂载点。 */
|
|
133
|
+
afterOpenChange?: (open: boolean) => void;
|
|
134
|
+
}
|
|
135
|
+
/** ModalOpen的配置。 */
|
|
136
|
+
interface ModalOpenConfig extends Omit<ModalProps, "open"> {
|
|
137
|
+
}
|
|
138
|
+
/** OverlayApi的操作句柄。 */
|
|
139
|
+
interface OverlayApiHandle<T> {
|
|
140
|
+
/** 关闭弹层并在退出动画后释放挂载点。程序化关闭不会模拟用户取消按钮点击。 */
|
|
141
|
+
destroy: () => void;
|
|
142
|
+
/** 合并更新已打开弹层的配置,未提供的属性保留原值。 */
|
|
143
|
+
update: (next: Partial<T>) => void;
|
|
144
|
+
}
|
|
145
|
+
declare function openModal(config: ModalOpenConfig): OverlayApiHandle<ModalOpenConfig>;
|
|
146
|
+
/** 模态框组件。 */
|
|
147
|
+
declare const Modal: react.ForwardRefExoticComponent<ModalProps & react.RefAttributes<HTMLDivElement>> & {
|
|
148
|
+
/** 直接打开实例,返回可用于更新或关闭的操作句柄。 */
|
|
149
|
+
open: typeof openModal;
|
|
150
|
+
/** 显示普通信息提示。 */
|
|
151
|
+
info: (config: ModalOpenConfig) => OverlayApiHandle<ModalOpenConfig>;
|
|
152
|
+
/** 显示成功提示。 */
|
|
153
|
+
success: (config: ModalOpenConfig) => OverlayApiHandle<ModalOpenConfig>;
|
|
154
|
+
/** 显示警告提示。 */
|
|
155
|
+
warning: (config: ModalOpenConfig) => OverlayApiHandle<ModalOpenConfig>;
|
|
156
|
+
/** 显示错误提示。 */
|
|
157
|
+
error: (config: ModalOpenConfig) => OverlayApiHandle<ModalOpenConfig>;
|
|
158
|
+
/** 打开确认弹框,支持异步确认;返回 false 可阻止关闭。 */
|
|
159
|
+
confirm: (config: ModalOpenConfig) => OverlayApiHandle<ModalOpenConfig>;
|
|
160
|
+
/** 关闭由此 API 打开的所有弹层。 */
|
|
161
|
+
destroyAll(): void;
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
/** 选择器的值类型。 */
|
|
165
|
+
type SelectValue = string | number;
|
|
166
|
+
/** 选择器的模式类型。 */
|
|
167
|
+
type SelectMode = "single" | "multiple";
|
|
168
|
+
/** 选择变更后的值:单选为字符串、数字或 null,多选为值数组。 */
|
|
169
|
+
type SelectChangeValue = SelectValue | SelectValue[] | null;
|
|
170
|
+
/** 选择器的候选项定义。 */
|
|
171
|
+
type SelectOption = {
|
|
172
|
+
/** 展示给用户的名称,可传入文本或 React 节点。 */
|
|
173
|
+
label: ReactNode;
|
|
174
|
+
/** 该项目对应的数据值,用于标识、选择或计算。 */
|
|
175
|
+
value: SelectValue;
|
|
176
|
+
/** 是否禁用交互。 */
|
|
177
|
+
disabled?: boolean;
|
|
178
|
+
/** 弹框模式中的分组标题。 */
|
|
179
|
+
group?: string;
|
|
180
|
+
};
|
|
181
|
+
/** 选择器的属性配置。 */
|
|
182
|
+
interface SelectProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "defaultValue" | "onChange" | "value"> {
|
|
183
|
+
/** 下拉选项 */
|
|
184
|
+
options: readonly SelectOption[];
|
|
185
|
+
/**
|
|
186
|
+
* 单选或多选模式
|
|
187
|
+
* @defaultValue "single"
|
|
188
|
+
*/
|
|
189
|
+
mode?: SelectMode;
|
|
190
|
+
/** 显式指定下拉或弹框。未设置时根据 options 总数判断:超过 modalThreshold 使用弹框。显式配置优先于阈值;弹框点击确定才提交。 */
|
|
191
|
+
popupMode?: "dropdown" | "modal";
|
|
192
|
+
/**
|
|
193
|
+
* 未指定 popupMode 时,选项总数超过此值自动使用弹框,等于阈值时仍使用下拉。
|
|
194
|
+
* @defaultValue 15
|
|
195
|
+
*/
|
|
196
|
+
modalThreshold?: number;
|
|
197
|
+
/** 弹框标题、布局及顶部/底部扩展内容。 */
|
|
198
|
+
modalConfig?: {
|
|
199
|
+
/** 弹框标题,未设置时使用 Select 的 placeholder。 */
|
|
200
|
+
title?: ReactNode;
|
|
201
|
+
/** 弹框宽度,默认 900px。 */
|
|
202
|
+
width?: number | string;
|
|
203
|
+
/** 每行选项列数,默认 3 列。 */
|
|
204
|
+
columns?: number;
|
|
205
|
+
/** 列表最大可视高度,默认 360px。 */
|
|
206
|
+
maxHeight?: number;
|
|
207
|
+
/** 标题下方的独立首行扩展内容,位于选项范围和搜索框上方。 */
|
|
208
|
+
headerExtra?: ReactNode;
|
|
209
|
+
/** 顶部扩展控件的业务数据,由业务方更新此属性;框架不会自动绑定 headerExtra 内的控件。确认时将当前对象的浅拷贝作为 onConfirm 第三个参数传出,未配置时为 {}。 */
|
|
210
|
+
extraValues?: Record<string, unknown>;
|
|
211
|
+
/** 点击确定时传出选中值、对应选项及扩展数据浅拷贝;单选无值为 null,多选为数组。异步完成后才提交 onChange 并关闭;返回 false 或抛出异常保留草稿和弹框,不触发 onChange。取消不调用。 */
|
|
212
|
+
onConfirm?: (value: SelectChangeValue, option: SelectOption | SelectOption[] | null, extraValues: Record<string, unknown>) => ModalActionResult;
|
|
213
|
+
/** 底部左侧扩展内容,例如维护按钮。 */
|
|
214
|
+
footerExtra?: ReactNode;
|
|
215
|
+
};
|
|
216
|
+
/** 当前值(受控) */
|
|
217
|
+
value?: SelectChangeValue;
|
|
218
|
+
/** 初始选中值 */
|
|
219
|
+
defaultValue?: SelectChangeValue;
|
|
220
|
+
/** 确认选择或清空时调用。单选返回单值及对应选项,清空返回 null;多选返回值数组及选项数组。弹框中的草稿变化不会直接触发。 */
|
|
221
|
+
onChange?: (value: SelectChangeValue, option: SelectOption | SelectOption[] | null) => void;
|
|
222
|
+
/**
|
|
223
|
+
* 未选择时的提示
|
|
224
|
+
* @defaultValue "请选择"
|
|
225
|
+
*/
|
|
226
|
+
placeholder?: ReactNode;
|
|
227
|
+
/** 占位提示的显示模式;floating 为浮动标签。 */
|
|
228
|
+
placeholderMode?: InputPlaceholderMode;
|
|
229
|
+
/** small / medium / large 高度为 22 / 30 / 38px;默认继承 Form,组件自身 size 优先 */
|
|
230
|
+
size?: ControlSize;
|
|
231
|
+
/**
|
|
232
|
+
* 当前状态,用于选择对应的状态样式。
|
|
233
|
+
* @defaultValue "default"
|
|
234
|
+
*/
|
|
235
|
+
status?: ControlStatus;
|
|
236
|
+
/**
|
|
237
|
+
* 是否允许清空当前选择;单选弹框中同时允许再次点击已选项取消选择。显式设为 false 可禁用。
|
|
238
|
+
* @defaultValue true
|
|
239
|
+
*/
|
|
240
|
+
allowClear?: boolean;
|
|
241
|
+
/**
|
|
242
|
+
* 显示加载状态并禁用展开
|
|
243
|
+
* @defaultValue false
|
|
244
|
+
*/
|
|
245
|
+
loading?: boolean;
|
|
246
|
+
/**
|
|
247
|
+
是否显示搜索输入框。
|
|
248
|
+
* @defaultValue false
|
|
249
|
+
*/
|
|
250
|
+
showSearch?: boolean;
|
|
251
|
+
/** 在选项名称下方显示对应的 value。 */
|
|
252
|
+
showValue?: boolean;
|
|
253
|
+
/** 允许将搜索框内容作为自定义选项提交。 */
|
|
254
|
+
allowInput?: boolean;
|
|
255
|
+
/** 手动输入内容的最大长度 */
|
|
256
|
+
inputMaxLength?: number;
|
|
257
|
+
/**
|
|
258
|
+
* 搜索框的占位提示文字。
|
|
259
|
+
* @defaultValue "搜索选项"
|
|
260
|
+
*/
|
|
261
|
+
searchPlaceholder?: string;
|
|
262
|
+
/** 搜索条件变化或提交搜索时调用,具体参数见签名。 */
|
|
263
|
+
onSearch?: (query: string) => void;
|
|
264
|
+
/**
|
|
265
|
+
* 自定义搜索匹配函数,返回 true 时保留该选项。
|
|
266
|
+
* @defaultValue defaultFilterOption
|
|
267
|
+
*/
|
|
268
|
+
filterOption?: (query: string, option: SelectOption) => boolean;
|
|
269
|
+
/**
|
|
270
|
+
* 多选时显示全选、反选;下拉操作栏固定在列表底部
|
|
271
|
+
* @defaultValue true
|
|
272
|
+
*/
|
|
273
|
+
showSelectAll?: boolean;
|
|
274
|
+
/** 是否显示下拉面板底部的条数统计与操作行;默认单选隐藏、多选显示,不影响弹框模式。 */
|
|
275
|
+
showActions?: boolean;
|
|
276
|
+
/** 最多显示的标签数;空间不足时会继续折叠,并为 +N 预留宽度。 */
|
|
277
|
+
maxTagCount?: number;
|
|
278
|
+
/**
|
|
279
|
+
* 长列表启用窗口化渲染
|
|
280
|
+
* @defaultValue true
|
|
281
|
+
*/
|
|
282
|
+
virtual?: boolean;
|
|
283
|
+
/**
|
|
284
|
+
* 启用虚拟滚动的选项数量
|
|
285
|
+
* @defaultValue 100
|
|
286
|
+
*/
|
|
287
|
+
virtualThreshold?: number;
|
|
288
|
+
/**
|
|
289
|
+
* 选项列表的最大可视高度,单位为像素。
|
|
290
|
+
* @defaultValue 256
|
|
291
|
+
*/
|
|
292
|
+
listHeight?: number;
|
|
293
|
+
/**
|
|
294
|
+
* 单个选项的高度,虚拟列表据此计算可见区域。
|
|
295
|
+
* @defaultValue showValue ? 54 : 34
|
|
296
|
+
*/
|
|
297
|
+
optionHeight?: number;
|
|
298
|
+
/**
|
|
299
|
+
* 没有匹配选项时的提示内容。
|
|
300
|
+
* @defaultValue "暂无数据"
|
|
301
|
+
*/
|
|
302
|
+
notFoundContent?: ReactNode;
|
|
303
|
+
}
|
|
304
|
+
/** 选择器组件。 */
|
|
305
|
+
declare const Select: react.ForwardRefExoticComponent<SelectProps & react.RefAttributes<HTMLButtonElement>>;
|
|
306
|
+
|
|
307
|
+
export { type ButtonProps as B, type ModalOpenConfig as M, type OverlayContainer as O, type SelectOption as S, type OverlayApiHandle as a, type SelectChangeValue as b, type SelectProps as c, type ModalActionResult as d, type ButtonSize as e, Button as f, type ButtonVariant as g, Modal as h, type ModalProps as i, type ModalType as j, Select as k, type SelectMode as l, type SelectValue as m };
|