stk-table-vue 1.2.4 → 1.2.6

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.
Files changed (68) hide show
  1. package/README.md +194 -194
  2. package/lib/{Dropdown-D_9cB0rD.js → Dropdown-BAANgg_5.js} +2 -2
  3. package/lib/{StkTable-CVcmlZi9.js → StkTable-CGcxwpdb.js} +22 -6
  4. package/lib/src/StkTable/StkTable.vue.d.ts +18 -4
  5. package/lib/src/StkTable/types/index.d.ts +4 -1
  6. package/lib/src/StkTable/useVirtualScroll.d.ts +6 -1
  7. package/lib/stk-table-vue.js +3 -3
  8. package/lib/style.css +1 -1
  9. package/package.json +93 -93
  10. package/src/StkTable/StkTable.vue +2362 -2338
  11. package/src/StkTable/components/DragHandle.vue +9 -9
  12. package/src/StkTable/components/SortIcon.vue +6 -6
  13. package/src/StkTable/components/TreeNodeCell.vue +19 -19
  14. package/src/StkTable/components/TriangleIcon.vue +3 -3
  15. package/src/StkTable/const.ts +50 -50
  16. package/src/StkTable/custom-cells/ChangeCell/ChangeCell.less +34 -34
  17. package/src/StkTable/custom-cells/ChangeCell/createChangeCell.ts +90 -90
  18. package/src/StkTable/custom-cells/ChangeCell/index.ts +4 -4
  19. package/src/StkTable/custom-cells/CheckboxCell/CheckboxCell.less +14 -14
  20. package/src/StkTable/custom-cells/CheckboxCell/CheckboxCell.vue +56 -56
  21. package/src/StkTable/custom-cells/CheckboxCell/createCheckboxCell.ts +146 -146
  22. package/src/StkTable/custom-cells/CheckboxCell/index.ts +5 -5
  23. package/src/StkTable/custom-cells/FilterCell/Dropdown/index.ts +16 -16
  24. package/src/StkTable/custom-cells/FilterCell/Dropdown/index.vue +186 -186
  25. package/src/StkTable/custom-cells/FilterCell/Filter.less +118 -118
  26. package/src/StkTable/custom-cells/FilterCell/Filter.vue +66 -66
  27. package/src/StkTable/custom-cells/FilterCell/createFilterCell.ts +120 -120
  28. package/src/StkTable/custom-cells/FilterCell/index.ts +6 -6
  29. package/src/StkTable/custom-cells/FilterCell/types.ts +43 -43
  30. package/src/StkTable/custom-cells/NumberCell/createNumberCell.ts +43 -43
  31. package/src/StkTable/custom-cells/NumberCell/index.ts +2 -2
  32. package/src/StkTable/custom-cells/utils/formatNumber.ts +137 -137
  33. package/src/StkTable/features/const.ts +1 -1
  34. package/src/StkTable/features/index.ts +1 -1
  35. package/src/StkTable/features/useAreaSelection.ts +1240 -1239
  36. package/src/StkTable/index.ts +20 -20
  37. package/src/StkTable/mergeCellsCache.ts +69 -69
  38. package/src/StkTable/registerFeature.ts +40 -40
  39. package/src/StkTable/style.less +791 -791
  40. package/src/StkTable/types/highlightDimOptions.ts +28 -28
  41. package/src/StkTable/types/index.ts +503 -500
  42. package/src/StkTable/useAutoResize.ts +87 -87
  43. package/src/StkTable/useColResize.ts +202 -202
  44. package/src/StkTable/useFixedCol.ts +168 -168
  45. package/src/StkTable/useFixedStyle.ts +75 -75
  46. package/src/StkTable/useGetFixedColPosition.ts +63 -63
  47. package/src/StkTable/useHighlight.ts +270 -270
  48. package/src/StkTable/useIndexResolver.ts +29 -29
  49. package/src/StkTable/useKeyboardArrowScroll.ts +114 -114
  50. package/src/StkTable/useMaxRowSpan.ts +60 -60
  51. package/src/StkTable/useMergeCells.ts +541 -541
  52. package/src/StkTable/useRowExpand.ts +81 -81
  53. package/src/StkTable/useScrollRowByRow.ts +96 -96
  54. package/src/StkTable/useScrollbar.ts +177 -177
  55. package/src/StkTable/useSorter.ts +267 -267
  56. package/src/StkTable/useTableColumns.ts +142 -142
  57. package/src/StkTable/useThDrag.ts +94 -94
  58. package/src/StkTable/useTrDrag.ts +100 -100
  59. package/src/StkTable/useTree.ts +253 -253
  60. package/src/StkTable/useVirtualScroll.ts +1032 -1025
  61. package/src/StkTable/useWheeling.ts +23 -23
  62. package/src/StkTable/utils/constRefUtils.ts +29 -29
  63. package/src/StkTable/utils/index.ts +331 -331
  64. package/src/StkTable/utils/rowHeightFenwickTree.ts +74 -74
  65. package/src/StkTable/utils/useTriggerRef.ts +33 -33
  66. package/src/VirtualTree.vue +622 -622
  67. package/src/VirtualTreeSelect.vue +367 -367
  68. package/src/vite-env.d.ts +10 -10
@@ -1,100 +1,100 @@
1
- import { computed, ShallowRef } from 'vue';
2
- import { DragRowConfig } from './types';
3
- import { getClosestTr } from './utils';
4
-
5
- const TR_DRAGGING_CLASS = 'tr-dragging';
6
- const TR_DRAG_OVER_CLASS = 'tr-dragging-over';
7
- const DATA_TRANSFER_FORMAT = 'text/plain';
8
-
9
- /**
10
- * 拖拽行
11
- * TODO: 不在虚拟滚动的情况下,从上面拖拽到下面,跨页的时候,滚动条会自适应位置。没有顶上去
12
- */
13
- export function useTrDrag(props: any, emits: any, dataSourceCopy: ShallowRef<any[]>) {
14
- let trDragFlag = false;
15
-
16
- const dragRowConfig = computed<DragRowConfig>(() => {
17
- return { mode: 'insert', ...props.dragRowConfig };
18
- });
19
-
20
- function onTrDragStart(e: DragEvent, rowIndex: number) {
21
- const tr = getClosestTr(e.target as HTMLElement);
22
- if (tr) {
23
- const trRect = tr.getBoundingClientRect();
24
- const x = e.clientX - (trRect.left ?? 0);
25
- e.dataTransfer?.setDragImage(tr, x, trRect.height / 2);
26
- tr.classList.add(TR_DRAGGING_CLASS);
27
- }
28
- const dt = e.dataTransfer;
29
- if (dt) {
30
- dt.effectAllowed = 'move';
31
- dt.setData(DATA_TRANSFER_FORMAT, String(rowIndex));
32
- }
33
- trDragFlag = true;
34
- }
35
-
36
- function onTrDragOver(e: DragEvent) {
37
- if (!trDragFlag) return;
38
- e.preventDefault(); // 阻止默认行为,否则不会触发 drop 事件
39
-
40
- const dt = e.dataTransfer;
41
- if (dt) {
42
- dt.dropEffect = 'move';
43
- }
44
- }
45
-
46
- let oldTr: HTMLElement | null = null;
47
- function onTrDragEnter(e: DragEvent) {
48
- if (!trDragFlag) return;
49
- e.preventDefault();
50
- const tr = getClosestTr(e.target as HTMLElement);
51
- if (oldTr && oldTr !== tr) {
52
- // 两个tr不一样说明移动到了另一个tr中
53
- oldTr.classList.remove(TR_DRAG_OVER_CLASS);
54
- }
55
- if (tr) {
56
- oldTr = tr;
57
- tr.classList.add(TR_DRAG_OVER_CLASS);
58
- }
59
- }
60
-
61
- function onTrDragEnd(e: DragEvent) {
62
- if (!trDragFlag) return;
63
- const tr = getClosestTr(e.target as HTMLElement);
64
- if (tr) {
65
- tr.classList.remove(TR_DRAGGING_CLASS);
66
- }
67
- if (oldTr) {
68
- oldTr.classList.remove(TR_DRAG_OVER_CLASS);
69
- oldTr = null;
70
- }
71
- trDragFlag = false;
72
- }
73
-
74
- function onTrDrop(e: DragEvent, rowIndex: number) {
75
- if (!trDragFlag) return;
76
- const dt = e.dataTransfer;
77
- if (!dt) return;
78
- const mode = dragRowConfig.value.mode;
79
- const sourceIndex = Number(dt.getData(DATA_TRANSFER_FORMAT));
80
- // dt.clearData(DATA_TRANSFER_FORMAT); // firefox not work
81
- const endIndex = rowIndex;
82
- if (sourceIndex === endIndex) return;
83
-
84
- if (mode !== 'none') {
85
- const dataSourceTemp = dataSourceCopy.value.slice();
86
- const sourceRow = dataSourceTemp[sourceIndex];
87
- if (mode === 'swap') {
88
- dataSourceTemp[sourceIndex] = dataSourceTemp[endIndex];
89
- dataSourceTemp[endIndex] = sourceRow;
90
- } else {
91
- dataSourceTemp.splice(sourceIndex, 1);
92
- dataSourceTemp.splice(endIndex, 0, sourceRow);
93
- }
94
- dataSourceCopy.value = dataSourceTemp;
95
- }
96
- emits('row-order-change', sourceIndex, endIndex);
97
- }
98
-
99
- return [onTrDragStart, onTrDragEnter, onTrDragOver, onTrDrop, onTrDragEnd] as const;
100
- }
1
+ import { computed, ShallowRef } from 'vue';
2
+ import { DragRowConfig } from './types';
3
+ import { getClosestTr } from './utils';
4
+
5
+ const TR_DRAGGING_CLASS = 'tr-dragging';
6
+ const TR_DRAG_OVER_CLASS = 'tr-dragging-over';
7
+ const DATA_TRANSFER_FORMAT = 'text/plain';
8
+
9
+ /**
10
+ * 拖拽行
11
+ * TODO: 不在虚拟滚动的情况下,从上面拖拽到下面,跨页的时候,滚动条会自适应位置。没有顶上去
12
+ */
13
+ export function useTrDrag(props: any, emits: any, dataSourceCopy: ShallowRef<any[]>) {
14
+ let trDragFlag = false;
15
+
16
+ const dragRowConfig = computed<DragRowConfig>(() => {
17
+ return { mode: 'insert', ...props.dragRowConfig };
18
+ });
19
+
20
+ function onTrDragStart(e: DragEvent, rowIndex: number) {
21
+ const tr = getClosestTr(e.target as HTMLElement);
22
+ if (tr) {
23
+ const trRect = tr.getBoundingClientRect();
24
+ const x = e.clientX - (trRect.left ?? 0);
25
+ e.dataTransfer?.setDragImage(tr, x, trRect.height / 2);
26
+ tr.classList.add(TR_DRAGGING_CLASS);
27
+ }
28
+ const dt = e.dataTransfer;
29
+ if (dt) {
30
+ dt.effectAllowed = 'move';
31
+ dt.setData(DATA_TRANSFER_FORMAT, String(rowIndex));
32
+ }
33
+ trDragFlag = true;
34
+ }
35
+
36
+ function onTrDragOver(e: DragEvent) {
37
+ if (!trDragFlag) return;
38
+ e.preventDefault(); // 阻止默认行为,否则不会触发 drop 事件
39
+
40
+ const dt = e.dataTransfer;
41
+ if (dt) {
42
+ dt.dropEffect = 'move';
43
+ }
44
+ }
45
+
46
+ let oldTr: HTMLElement | null = null;
47
+ function onTrDragEnter(e: DragEvent) {
48
+ if (!trDragFlag) return;
49
+ e.preventDefault();
50
+ const tr = getClosestTr(e.target as HTMLElement);
51
+ if (oldTr && oldTr !== tr) {
52
+ // 两个tr不一样说明移动到了另一个tr中
53
+ oldTr.classList.remove(TR_DRAG_OVER_CLASS);
54
+ }
55
+ if (tr) {
56
+ oldTr = tr;
57
+ tr.classList.add(TR_DRAG_OVER_CLASS);
58
+ }
59
+ }
60
+
61
+ function onTrDragEnd(e: DragEvent) {
62
+ if (!trDragFlag) return;
63
+ const tr = getClosestTr(e.target as HTMLElement);
64
+ if (tr) {
65
+ tr.classList.remove(TR_DRAGGING_CLASS);
66
+ }
67
+ if (oldTr) {
68
+ oldTr.classList.remove(TR_DRAG_OVER_CLASS);
69
+ oldTr = null;
70
+ }
71
+ trDragFlag = false;
72
+ }
73
+
74
+ function onTrDrop(e: DragEvent, rowIndex: number) {
75
+ if (!trDragFlag) return;
76
+ const dt = e.dataTransfer;
77
+ if (!dt) return;
78
+ const mode = dragRowConfig.value.mode;
79
+ const sourceIndex = Number(dt.getData(DATA_TRANSFER_FORMAT));
80
+ // dt.clearData(DATA_TRANSFER_FORMAT); // firefox not work
81
+ const endIndex = rowIndex;
82
+ if (sourceIndex === endIndex) return;
83
+
84
+ if (mode !== 'none') {
85
+ const dataSourceTemp = dataSourceCopy.value.slice();
86
+ const sourceRow = dataSourceTemp[sourceIndex];
87
+ if (mode === 'swap') {
88
+ dataSourceTemp[sourceIndex] = dataSourceTemp[endIndex];
89
+ dataSourceTemp[endIndex] = sourceRow;
90
+ } else {
91
+ dataSourceTemp.splice(sourceIndex, 1);
92
+ dataSourceTemp.splice(endIndex, 0, sourceRow);
93
+ }
94
+ dataSourceCopy.value = dataSourceTemp;
95
+ }
96
+ emits('row-order-change', sourceIndex, endIndex);
97
+ }
98
+
99
+ return [onTrDragStart, onTrDragEnter, onTrDragOver, onTrDrop, onTrDragEnd] as const;
100
+ }