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.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * name: stk-table-vue
3
- * version: v0.11.1
3
+ * version: v0.11.3
4
4
  * description: High performance realtime virtual table for vue3 and vue2.7
5
5
  * author: japlus
6
6
  * homepage: https://ja-plus.github.io/stk-table-vue/
@@ -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: string | number | symbol | undefined;
62
- order: "desc" | "asc";
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').Ref<string | number | symbol | undefined, string | number | symbol | undefined>;
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
- export type SortState<T extends Record<string, any>> = Pick<StkTableColumn<T>, 'dataIndex' | 'sortField' | 'sortType'> & {
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>>): readonly [Ref<{
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>>): readonly [Ref<{
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;