fat-design 0.0.1-beta.20250927201707 → 0.0.1-beta.20250929012932
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/index.browser.js +1 -1
- package/package.json +2 -2
- package/types/editable-table/index.d.ts +122 -0
- package/types/index.d.ts +2 -1
- package/types/sortable-list/index.d.ts +166 -0
- package/types/util.d.ts +30 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fat-design",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.20250929012932",
|
|
4
4
|
"scripts": {},
|
|
5
5
|
"main": "index.umd.js",
|
|
6
6
|
"module": "index.js",
|
|
@@ -16,5 +16,5 @@
|
|
|
16
16
|
"publishConfig": {
|
|
17
17
|
"registry": "https://registry.npmjs.org"
|
|
18
18
|
},
|
|
19
|
-
"buildTime": "
|
|
19
|
+
"buildTime": "Sun, 28 Sep 2025 17:29:32 GMT"
|
|
20
20
|
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { TableProps, ColumnProps } from '../table';
|
|
3
|
+
import { TinyEmitter } from '../util';
|
|
4
|
+
|
|
5
|
+
export interface EditableTableProps extends Omit<TableProps, 'columns'> {
|
|
6
|
+
/**
|
|
7
|
+
* 样式前缀
|
|
8
|
+
*/
|
|
9
|
+
prefix?: string;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* 表格列配置,支持可编辑组件配置
|
|
13
|
+
*/
|
|
14
|
+
columns?: EditableColumnProps[];
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* 表格数据源
|
|
18
|
+
*/
|
|
19
|
+
dataSource?: any[];
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* 自定义组件映射,用于扩展可编辑组件类型
|
|
23
|
+
*/
|
|
24
|
+
components?: Record<string, React.ComponentType<any>>;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 行数据变化回调函数
|
|
28
|
+
*/
|
|
29
|
+
onRowValueChange?: (row: any, column: EditableColumnProps) => void;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 事件发射器,用于组件间通信
|
|
33
|
+
*/
|
|
34
|
+
actionEmitter?: TinyEmitter;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* 是否显示添加行功能
|
|
38
|
+
*/
|
|
39
|
+
isShowAddRow?: boolean;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* 表格创建完成回调
|
|
43
|
+
*/
|
|
44
|
+
onCreated?: (params: { actions: EditableTableActions }) => void;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export interface EditableColumnProps extends ColumnProps {
|
|
48
|
+
/**
|
|
49
|
+
* 可编辑组件类型
|
|
50
|
+
*/
|
|
51
|
+
component?: string | React.ComponentType<any>;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* 传递给可编辑组件的属性
|
|
55
|
+
*/
|
|
56
|
+
xProps?: Record<string, any>;
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* 值变化时是否强制更新整行
|
|
60
|
+
*/
|
|
61
|
+
forceUpdateRow?: boolean;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* 值变化时是否强制更新整个表格
|
|
65
|
+
*/
|
|
66
|
+
forceUpdateTable?: boolean;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export interface SettingTableProps {
|
|
70
|
+
/**
|
|
71
|
+
* 样式前缀
|
|
72
|
+
*/
|
|
73
|
+
prefix?: string;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* 表格列配置
|
|
77
|
+
*/
|
|
78
|
+
columns?: ColumnProps[];
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* 表格数据源
|
|
82
|
+
*/
|
|
83
|
+
dataSource?: any[];
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* 自定义组件映射
|
|
87
|
+
*/
|
|
88
|
+
components?: Record<string, React.ComponentType<any>>;
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* 添加数据回调函数
|
|
92
|
+
*/
|
|
93
|
+
onAddData?: (newRow?: any) => void;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
interface SettingTableStatic {
|
|
97
|
+
/**
|
|
98
|
+
* 注册组件
|
|
99
|
+
*/
|
|
100
|
+
registerComponents: (components: Record<string, React.ComponentType<any>>) => void;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export interface EditableTableActions {
|
|
104
|
+
/**
|
|
105
|
+
* 强制更新整个表格
|
|
106
|
+
*/
|
|
107
|
+
forceUpdateTable: () => void;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* 强制更新指定行
|
|
111
|
+
*/
|
|
112
|
+
forceUpdateRow: (row: any, column: EditableColumnProps) => void;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
declare const EditableTable: React.ForwardRefExoticComponent<EditableTableProps & React.RefAttributes<any>> & {
|
|
116
|
+
/**
|
|
117
|
+
* 配置表格组件,专门用于配置管理场景
|
|
118
|
+
*/
|
|
119
|
+
SettingTable: React.ComponentType<SettingTableProps> & SettingTableStatic;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
export default EditableTable;
|
package/types/index.d.ts
CHANGED
|
@@ -59,7 +59,8 @@ export { default as Upload } from './upload';
|
|
|
59
59
|
export { default as VirtualList } from './virtual-list';
|
|
60
60
|
export { default as Image } from './image';
|
|
61
61
|
export { default as QueryForm } from './query-form';
|
|
62
|
-
export { default as
|
|
62
|
+
export { default as EditableTable } from './editable-table';
|
|
63
|
+
export { default as SortableList } from './sortable-list';
|
|
63
64
|
export { default as hooks } from './0buildTypes/hooks';
|
|
64
65
|
export { default as Empty } from './0buildTypes/empty';
|
|
65
66
|
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { HTMLAttributes } from 'react';
|
|
3
|
+
import { EditableTableProps } from '../editable-table';
|
|
4
|
+
import { ColumnProps } from '../table';
|
|
5
|
+
import { TinyEmitter } from '../util';
|
|
6
|
+
|
|
7
|
+
export interface Point {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface SortableListProps<TTag extends keyof JSX.IntrinsicElements = 'div'>
|
|
13
|
+
extends HTMLAttributes<HTMLElement> {
|
|
14
|
+
/**
|
|
15
|
+
* 子元素,需要包装在 SortableItem 中
|
|
16
|
+
*/
|
|
17
|
+
children: React.ReactNode;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 是否允许拖拽,默认为 true
|
|
21
|
+
*/
|
|
22
|
+
allowDrag?: boolean;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* 排序结束时的回调函数
|
|
26
|
+
*/
|
|
27
|
+
onSortEnd: (oldIndex: number, newIndex: number) => void;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* 拖拽时应用的 CSS 类名
|
|
31
|
+
*/
|
|
32
|
+
draggedItemClassName?: string;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* 容器元素类型
|
|
36
|
+
*/
|
|
37
|
+
as?: TTag;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* 锁定拖拽轴向
|
|
41
|
+
*/
|
|
42
|
+
lockAxis?: 'x' | 'y';
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* 自定义拖拽容器引用
|
|
46
|
+
*/
|
|
47
|
+
customHolderRef?: React.RefObject<HTMLElement | null>;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export interface SortableItemProps {
|
|
51
|
+
/**
|
|
52
|
+
* 单个可排序项的内容
|
|
53
|
+
*/
|
|
54
|
+
children: React.ReactElement;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface SortableKnobProps {
|
|
58
|
+
/**
|
|
59
|
+
* 拖拽把手的内容
|
|
60
|
+
*/
|
|
61
|
+
children: React.ReactElement;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export interface SortableTableProps {
|
|
65
|
+
/**
|
|
66
|
+
* 表格尺寸
|
|
67
|
+
*/
|
|
68
|
+
size?: 'small' | 'medium' | 'large';
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* 是否显示斑马纹
|
|
72
|
+
*/
|
|
73
|
+
isZebra?: boolean;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* 样式前缀
|
|
77
|
+
*/
|
|
78
|
+
prefix?: string;
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* 表格数据源
|
|
82
|
+
*/
|
|
83
|
+
dataSource: any[];
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* 表格列配置,支持 draggable 属性指定拖拽列
|
|
87
|
+
*/
|
|
88
|
+
columns: (ColumnProps & { draggable?: boolean })[];
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* 行数据变化回调函数
|
|
92
|
+
*/
|
|
93
|
+
onRowValueChange?: (row: any, column: ColumnProps) => void;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* 事件发射器
|
|
97
|
+
*/
|
|
98
|
+
actionEmitter?: TinyEmitter;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* 排序结束回调函数
|
|
102
|
+
*/
|
|
103
|
+
onSortEnd?: (newDataSource: any[], oldIndex: number, newIndex: number) => void;
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* 表格创建完成回调
|
|
107
|
+
*/
|
|
108
|
+
onCreated?: (actions: SortableTableActions) => void;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface SortableTableActions {
|
|
112
|
+
/**
|
|
113
|
+
* 事件发射器
|
|
114
|
+
*/
|
|
115
|
+
actionEmitter?: TinyEmitter;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* 设置数据源
|
|
119
|
+
*/
|
|
120
|
+
setDataSource: (dataSource: any[]) => void;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* 获取数据源
|
|
124
|
+
*/
|
|
125
|
+
getDataSource: () => any[];
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export interface SortableEditableTableProps extends EditableTableProps {
|
|
129
|
+
/**
|
|
130
|
+
* 排序结束回调函数
|
|
131
|
+
*/
|
|
132
|
+
onSortEnd?: (newDataSource: any[], oldIndex: number, newIndex: number) => void;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
declare const SortableList: {
|
|
136
|
+
<TTag extends keyof JSX.IntrinsicElements = 'div'>(
|
|
137
|
+
props: SortableListProps<TTag>
|
|
138
|
+
): React.JSX.Element;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* 可排序项组件
|
|
142
|
+
*/
|
|
143
|
+
SortableItem: React.ComponentType<SortableItemProps>;
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* 拖拽把手组件
|
|
147
|
+
*/
|
|
148
|
+
SortableKnob: React.ComponentType<SortableKnobProps>;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* 可排序列表(等同于默认导出)
|
|
152
|
+
*/
|
|
153
|
+
SortableList: typeof SortableList;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* 可排序表格组件
|
|
157
|
+
*/
|
|
158
|
+
SortableTable: React.ComponentType<SortableTableProps>;
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* 可排序编辑表格组件
|
|
162
|
+
*/
|
|
163
|
+
SortableEditableTable: React.ComponentType<SortableEditableTableProps>;
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
export default SortableList;
|
package/types/util.d.ts
CHANGED
|
@@ -4,6 +4,36 @@ export interface IconsType {
|
|
|
4
4
|
[key: string]: ReactNode;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* 事件监听器类型
|
|
9
|
+
*/
|
|
10
|
+
export type ListenerType = (...args: any[]) => any;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* 事件发射器接口
|
|
14
|
+
*/
|
|
15
|
+
export interface TinyEmitter {
|
|
16
|
+
/**
|
|
17
|
+
* 添加事件监听器
|
|
18
|
+
*/
|
|
19
|
+
on: (eventName: string, listener: ListenerType) => void;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* 移除事件监听器
|
|
23
|
+
*/
|
|
24
|
+
off: (eventName: string, listener?: ListenerType) => void;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 清除所有事件监听器
|
|
28
|
+
*/
|
|
29
|
+
clear: () => void;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 触发事件
|
|
33
|
+
*/
|
|
34
|
+
emit: (eventName: string, ...args: any[]) => any[];
|
|
35
|
+
}
|
|
36
|
+
|
|
7
37
|
export default interface CommonProps {
|
|
8
38
|
/**
|
|
9
39
|
* 样式类名的品牌前缀
|