stk-table-vue 0.11.1 → 0.11.3
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/lib/index-t5SJ6KNv.js +1 -1
- package/lib/src/StkTable/StkTable.vue.d.ts +35 -4
- package/lib/src/StkTable/index.d.ts +1 -1
- package/lib/src/StkTable/types/index.d.ts +47 -20
- package/lib/src/StkTable/useScrollbar.d.ts +1 -1
- package/lib/src/StkTable/useVirtualScroll.d.ts +1 -1
- package/lib/stk-table-vue.js +279 -144
- package/lib/style.css +6 -5
- package/lib/test/setSorter.test.d.ts +1 -0
- package/package.json +1 -1
- package/src/StkTable/StkTable.vue +234 -83
- package/src/StkTable/features/useAreaSelection.ts +62 -7
- package/src/StkTable/index.ts +1 -1
- package/src/StkTable/style.less +3 -2
- package/src/StkTable/types/index.ts +49 -20
- package/src/StkTable/useScrollbar.ts +2 -1
- package/src/StkTable/useVirtualScroll.ts +2 -1
package/lib/index-t5SJ6KNv.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FilterStatus } from './components/Filter/types';
|
|
2
|
-
import { AreaSelectionConfig, AreaSelectionRange, AutoRowHeightConfig, ColResizableConfig, DragRowConfig, ExpandConfig, ExperimentalConfig, HeaderDragConfig, HighlightConfig, Order, PrivateRowDT, PrivateStkTableColumn, RowActiveOption, SeqConfig, SortConfig, SortOption, StkTableColumn, TreeConfig, UniqKey, UniqKeyProp } from './types/index';
|
|
2
|
+
import { AreaSelectionConfig, AreaSelectionRange, AutoRowHeightConfig, ColResizableConfig, DragRowConfig, ExpandConfig, ExperimentalConfig, FooterConfig, HeaderDragConfig, HighlightConfig, Order, PrivateRowDT, PrivateStkTableColumn, RowActiveOption, SeqConfig, SortConfig, SortOption, SortState, StkTableColumn, TreeConfig, UniqKey, UniqKeyProp } from './types/index';
|
|
3
3
|
import { ScrollbarOptions } from './useScrollbar';
|
|
4
4
|
|
|
5
5
|
/** Generic stands for DataType */
|
|
@@ -36,6 +36,7 @@ declare function setSelectedCell(row?: DT, col?: StkTableColumn<DT>, option?: {
|
|
|
36
36
|
* @param option.sort 是否触发排序-默认true
|
|
37
37
|
* @param option.silent 是否禁止触发回调-默认true
|
|
38
38
|
* @param option.force 是否触发排序-默认true
|
|
39
|
+
* @param option.append 是否追加排序(多列排序模式)。为true时保留现有排序状态,将新排序添加到最前面;为false时替换所有排序状态
|
|
39
40
|
* @return 表格数据
|
|
40
41
|
*/
|
|
41
42
|
declare function setSorter(colKey: string, order: Order, option?: {
|
|
@@ -43,6 +44,7 @@ declare function setSorter(colKey: string, order: Order, option?: {
|
|
|
43
44
|
force?: boolean;
|
|
44
45
|
silent?: boolean;
|
|
45
46
|
sort?: boolean;
|
|
47
|
+
append?: boolean;
|
|
46
48
|
}): any[];
|
|
47
49
|
declare function resetSorter(): void;
|
|
48
50
|
/**
|
|
@@ -58,8 +60,8 @@ declare function getTableData(): any[];
|
|
|
58
60
|
* @return {{key:string,order:Order}[]}
|
|
59
61
|
*/
|
|
60
62
|
declare function getSortColumns(): {
|
|
61
|
-
key:
|
|
62
|
-
order:
|
|
63
|
+
key: keyof DT | undefined;
|
|
64
|
+
order: Order;
|
|
63
65
|
}[];
|
|
64
66
|
declare function __VLS_template(): {
|
|
65
67
|
tableHeader?(_: {
|
|
@@ -228,6 +230,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
228
230
|
experimental?: ExperimentalConfig;
|
|
229
231
|
/** 表格底部合计行数据 */
|
|
230
232
|
footerData?: DT[];
|
|
233
|
+
/** 表格底部配置 */
|
|
234
|
+
footerConfig?: FooterConfig;
|
|
231
235
|
}>, {
|
|
232
236
|
width: string;
|
|
233
237
|
fixedMode: boolean;
|
|
@@ -285,6 +289,9 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
285
289
|
scrollRowByRow: boolean;
|
|
286
290
|
scrollbar: boolean;
|
|
287
291
|
experimental: () => {};
|
|
292
|
+
footerConfig: () => {
|
|
293
|
+
position: string;
|
|
294
|
+
};
|
|
288
295
|
}>>, {
|
|
289
296
|
/**
|
|
290
297
|
* 重新计算虚拟列表宽高
|
|
@@ -340,7 +347,25 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
340
347
|
*
|
|
341
348
|
* en: Table sort column colKey
|
|
342
349
|
*/
|
|
343
|
-
sortCol: import('vue').
|
|
350
|
+
sortCol: import('vue').ComputedRef<string | number | symbol | undefined>;
|
|
351
|
+
/**
|
|
352
|
+
* 排序状态数组
|
|
353
|
+
*
|
|
354
|
+
* en: Multi-column sort states array
|
|
355
|
+
*/
|
|
356
|
+
sortStates: import('vue').Ref<{
|
|
357
|
+
key?: any;
|
|
358
|
+
dataIndex: string;
|
|
359
|
+
sortField?: string | number | symbol | undefined;
|
|
360
|
+
sortType?: "number" | "string" | undefined;
|
|
361
|
+
order: Order;
|
|
362
|
+
}[], SortState<any>[] | {
|
|
363
|
+
key?: any;
|
|
364
|
+
dataIndex: string;
|
|
365
|
+
sortField?: string | number | symbol | undefined;
|
|
366
|
+
sortType?: "number" | "string" | undefined;
|
|
367
|
+
order: Order;
|
|
368
|
+
}[]>;
|
|
344
369
|
/**
|
|
345
370
|
* 表格排序列顺序
|
|
346
371
|
*
|
|
@@ -660,6 +685,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
660
685
|
experimental?: ExperimentalConfig;
|
|
661
686
|
/** 表格底部合计行数据 */
|
|
662
687
|
footerData?: DT[];
|
|
688
|
+
/** 表格底部配置 */
|
|
689
|
+
footerConfig?: FooterConfig;
|
|
663
690
|
}>, {
|
|
664
691
|
width: string;
|
|
665
692
|
fixedMode: boolean;
|
|
@@ -717,6 +744,9 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
717
744
|
scrollRowByRow: boolean;
|
|
718
745
|
scrollbar: boolean;
|
|
719
746
|
experimental: () => {};
|
|
747
|
+
footerConfig: () => {
|
|
748
|
+
position: string;
|
|
749
|
+
};
|
|
720
750
|
}>>> & Readonly<{
|
|
721
751
|
onScroll?: ((ev: Event, data: {
|
|
722
752
|
startIndex: number;
|
|
@@ -829,6 +859,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
829
859
|
scrollRowByRow: boolean | "scrollbar";
|
|
830
860
|
experimental: ExperimentalConfig;
|
|
831
861
|
footerData: DT[];
|
|
862
|
+
footerConfig: FooterConfig;
|
|
832
863
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
833
864
|
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
|
834
865
|
export default _default;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { default as StkTable } from './StkTable.vue';
|
|
2
2
|
export { tableSort, insertToOrderedArray, strCompare, binarySearch } from './utils';
|
|
3
|
-
export type { StkTableColumn } from './types/index';
|
|
3
|
+
export type { StkTableColumn, SortState, SortConfig, SortOption, Order } from './types/index';
|
|
4
4
|
export { useAreaSelection } from './features/index';
|
|
5
5
|
export { registerFeature } from './registerFeature';
|
|
6
6
|
export { useFilter } from './components/Filter';
|
|
@@ -187,12 +187,37 @@ export type PrivateRowDT = {
|
|
|
187
187
|
children?: any[];
|
|
188
188
|
};
|
|
189
189
|
export type SortOption<T extends Record<string, any>> = Pick<StkTableColumn<T>, 'sorter' | 'dataIndex' | 'sortField' | 'sortType'>;
|
|
190
|
-
|
|
190
|
+
/**
|
|
191
|
+
* 单列排序状态
|
|
192
|
+
*/
|
|
193
|
+
export type SortState<T extends Record<string, any>> = Pick<StkTableColumn<T>, 'key' | 'dataIndex' | 'sortField' | 'sortType'> & {
|
|
191
194
|
order: Order;
|
|
192
195
|
};
|
|
193
196
|
export type UniqKey = string | number;
|
|
194
197
|
export type UniqKeyFun = (param: any) => UniqKey;
|
|
195
198
|
export type UniqKeyProp = UniqKey | UniqKeyFun;
|
|
199
|
+
/**
|
|
200
|
+
* 默认排序配置
|
|
201
|
+
*/
|
|
202
|
+
export type DefaultSortConfig<T extends Record<string, any>> = {
|
|
203
|
+
/**
|
|
204
|
+
* colKey
|
|
205
|
+
*
|
|
206
|
+
* if set `props.colKey`
|
|
207
|
+
*
|
|
208
|
+
* default: StkTableColumn<T>['dataIndex']
|
|
209
|
+
*/
|
|
210
|
+
key?: StkTableColumn<T>['key'];
|
|
211
|
+
dataIndex: StkTableColumn<T>['dataIndex'];
|
|
212
|
+
order: Order;
|
|
213
|
+
sortField?: StkTableColumn<T>['sortField'];
|
|
214
|
+
sortType?: StkTableColumn<T>['sortType'];
|
|
215
|
+
sorter?: StkTableColumn<T>['sorter'];
|
|
216
|
+
/**
|
|
217
|
+
* whether to disable trigger`sort-change` event. default: false
|
|
218
|
+
*/
|
|
219
|
+
silent?: boolean;
|
|
220
|
+
};
|
|
196
221
|
export type SortConfig<T extends Record<string, any>> = {
|
|
197
222
|
/**
|
|
198
223
|
* TODO: Sort icon display strategy
|
|
@@ -204,25 +229,7 @@ export type SortConfig<T extends Record<string, any>> = {
|
|
|
204
229
|
* 1. trigger when init
|
|
205
230
|
* 2. trigger when sort direction is null
|
|
206
231
|
*/
|
|
207
|
-
defaultSort?:
|
|
208
|
-
/**
|
|
209
|
-
* colKey
|
|
210
|
-
*
|
|
211
|
-
* if set `props.colKey`
|
|
212
|
-
*
|
|
213
|
-
* default: StkTableColumn<T>['dataIndex']
|
|
214
|
-
*/
|
|
215
|
-
key?: StkTableColumn<T>['key'];
|
|
216
|
-
dataIndex: StkTableColumn<T>['dataIndex'];
|
|
217
|
-
order: Order;
|
|
218
|
-
sortField?: StkTableColumn<T>['sortField'];
|
|
219
|
-
sortType?: StkTableColumn<T>['sortType'];
|
|
220
|
-
sorter?: StkTableColumn<T>['sorter'];
|
|
221
|
-
/**
|
|
222
|
-
* whether to disable trigger`sort-change` event. default: false
|
|
223
|
-
*/
|
|
224
|
-
silent?: boolean;
|
|
225
|
-
};
|
|
232
|
+
defaultSort?: DefaultSortConfig<T>;
|
|
226
233
|
/** empty value always sort to bottom */
|
|
227
234
|
emptyToBottom?: boolean;
|
|
228
235
|
/**
|
|
@@ -234,6 +241,17 @@ export type SortConfig<T extends Record<string, any>> = {
|
|
|
234
241
|
* whether to sort children when sort current column. default: false
|
|
235
242
|
*/
|
|
236
243
|
sortChildren?: boolean;
|
|
244
|
+
/**
|
|
245
|
+
* 是否启用多列排序
|
|
246
|
+
* - false (default): 单列排序,点击新列会取消之前列的排序
|
|
247
|
+
* - true: 多列排序,支持同时按多列排序,通过点击顺序决定优先级
|
|
248
|
+
*/
|
|
249
|
+
multiSort?: boolean;
|
|
250
|
+
/**
|
|
251
|
+
* 多列排序时的最大列数限制
|
|
252
|
+
* default: 3
|
|
253
|
+
*/
|
|
254
|
+
multiSortLimit?: number;
|
|
237
255
|
};
|
|
238
256
|
/** th td type */
|
|
239
257
|
export declare const enum TagType {
|
|
@@ -329,4 +347,13 @@ export type ExperimentalConfig = {
|
|
|
329
347
|
/** use transform to simulate scroll */
|
|
330
348
|
scrollY?: boolean;
|
|
331
349
|
};
|
|
350
|
+
/** 表格底部配置 */
|
|
351
|
+
export type FooterConfig = {
|
|
352
|
+
/**
|
|
353
|
+
* 表格底部吸附位置
|
|
354
|
+
* - bottom: 吸附在表格底部(默认)
|
|
355
|
+
* - top: 吸附在表格顶部
|
|
356
|
+
*/
|
|
357
|
+
position?: 'bottom' | 'top';
|
|
358
|
+
};
|
|
332
359
|
export {};
|
|
@@ -18,7 +18,7 @@ export type ScrollbarOptions = {
|
|
|
18
18
|
* @param options 滚动条配置选项
|
|
19
19
|
* @returns 滚动条相关状态和方法
|
|
20
20
|
*/
|
|
21
|
-
export declare function useScrollbar(props: any, containerRef: Ref<HTMLDivElement | undefined>, virtualScroll: Ref<VirtualScrollStore>, virtualScrollX: Ref<VirtualScrollXStore>, updateVirtualScrollY: (sTop?: number) => void, scrollbarOptions: Ref<Required<ScrollbarOptions
|
|
21
|
+
export declare function useScrollbar(props: any, containerRef: Ref<HTMLDivElement | undefined>, virtualScroll: Ref<VirtualScrollStore>, virtualScrollX: Ref<VirtualScrollXStore>, updateVirtualScrollY: (sTop?: number) => void, scrollbarOptions: Ref<Required<ScrollbarOptions>>, isExperimentalScrollY: Ref<boolean | undefined>): readonly [Ref<{
|
|
22
22
|
h: number;
|
|
23
23
|
w: number;
|
|
24
24
|
t: number;
|
|
@@ -41,7 +41,7 @@ export type VirtualScrollXStore = {
|
|
|
41
41
|
* virtual scroll
|
|
42
42
|
* @returns
|
|
43
43
|
*/
|
|
44
|
-
export declare function useVirtualScroll<DT extends Record<string, any>>(props: any, tableContainerRef: Ref<HTMLElement | undefined>, trRef: Ref<HTMLTableRowElement[] | undefined>, dataSourceCopy: ShallowRef<PrivateRowDT[]>, tableHeaderLast: ShallowRef<PrivateStkTableColumn<PrivateRowDT>[]>, tableHeaders: ShallowRef<PrivateStkTableColumn<PrivateRowDT>[][]>, rowKeyGen: RowKeyGen, maxRowSpan: Map<UniqKey, number>, scrollbarOptions: Ref<Required<ScrollbarOptions
|
|
44
|
+
export declare function useVirtualScroll<DT extends Record<string, any>>(props: any, tableContainerRef: Ref<HTMLElement | undefined>, trRef: Ref<HTMLTableRowElement[] | undefined>, dataSourceCopy: ShallowRef<PrivateRowDT[]>, tableHeaderLast: ShallowRef<PrivateStkTableColumn<PrivateRowDT>[]>, tableHeaders: ShallowRef<PrivateStkTableColumn<PrivateRowDT>[][]>, rowKeyGen: RowKeyGen, maxRowSpan: Map<UniqKey, number>, scrollbarOptions: Ref<Required<ScrollbarOptions>>, isExperimentalScrollY: Ref<boolean | undefined>): readonly [Ref<{
|
|
45
45
|
containerHeight: number;
|
|
46
46
|
pageSize: number;
|
|
47
47
|
startIndex: number;
|