@uzum-tech/ui 2.0.5 → 2.0.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.
- package/dist/index.js +1039 -493
- package/dist/index.mjs +1039 -493
- package/dist/index.prod.js +2 -2
- package/dist/index.prod.mjs +2 -2
- package/es/_internal/icons/DragHandleRound.d.ts +2 -0
- package/es/_internal/icons/DragHandleRound.mjs +16 -0
- package/es/_internal/icons/index.d.ts +1 -0
- package/es/_internal/icons/index.mjs +1 -0
- package/es/components.d.ts +32 -0
- package/es/data-table/src/DataTable.d.ts +24 -0
- package/es/data-table/src/DataTable.mjs +31 -0
- package/es/data-table/src/HeaderButton/FilterButton.d.ts +6 -0
- package/es/data-table/src/HeaderButton/FilterMenu.d.ts +6 -0
- package/es/data-table/src/TableParts/Body.d.ts +17 -9
- package/es/data-table/src/TableParts/Body.mjs +81 -274
- package/es/data-table/src/TableParts/BodyEmpty.d.ts +3 -0
- package/es/data-table/src/TableParts/BodyEmpty.mjs +22 -0
- package/es/data-table/src/TableParts/BodyRow.d.ts +3 -0
- package/es/data-table/src/TableParts/BodyRow.mjs +257 -0
- package/es/data-table/src/TableParts/BodySkeleton.mjs +5 -2
- package/es/data-table/src/TableParts/Header.d.ts +6 -0
- package/es/data-table/src/TableParts/Header.mjs +5 -1
- package/es/data-table/src/TableParts/VirtualListItemWrapper.d.ts +36 -0
- package/es/data-table/src/TableParts/VirtualListItemWrapper.mjs +46 -0
- package/es/data-table/src/interface.d.ts +161 -2
- package/es/data-table/src/styles/index.cssr.mjs +26 -3
- package/es/data-table/src/use-group-header.d.ts +3 -3
- package/es/data-table/src/use-row-drag.d.ts +2 -0
- package/es/data-table/src/use-row-drag.mjs +241 -0
- package/es/data-table/src/use-sorter.d.ts +4 -8
- package/es/data-table/src/use-sorter.mjs +14 -2
- package/es/data-table/src/use-table-data.d.ts +11 -14
- package/es/data-table/src/use-table-data.mjs +4 -2
- package/es/data-table/src/use-table-storage.d.ts +2 -2
- package/es/data-table/src/use-table-storage.mjs +1 -1
- package/es/data-table/src/utils/column-utils.d.ts +3 -2
- package/es/data-table/src/utils/column-utils.mjs +9 -1
- package/es/data-table/src/utils/csv-utils.mjs +1 -1
- package/es/data-table/src/utils/flatten-rows.d.ts +2 -0
- package/es/data-table/src/utils/flatten-rows.mjs +33 -0
- package/es/data-table/src/utils/index.d.ts +1 -0
- package/es/data-table/src/utils/index.mjs +1 -0
- package/es/data-table/src/utils/resize-orchestrator-utils.d.ts +3 -5
- package/es/data-table/src/utils/width-utils.d.ts +2 -2
- package/es/data-table/styles/light.d.ts +6 -0
- package/es/data-table/styles/light.mjs +3 -0
- package/es/mapping-card/src/MappingCard.d.ts +8 -0
- package/es/mapping-card/src/MappingCard.mjs +3 -1
- package/es/mapping-card/src/MappingCardParts/Header.mjs +31 -10
- package/es/mapping-card/src/interface.d.ts +8 -0
- package/es/mapping-card/src/interface.mjs +4 -0
- package/es/mapping-card/src/styles/index.cssr.mjs +8 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/lib/_internal/icons/DragHandleRound.d.ts +2 -0
- package/lib/_internal/icons/DragHandleRound.js +10 -0
- package/lib/_internal/icons/index.d.ts +1 -0
- package/lib/_internal/icons/index.js +4 -2
- package/lib/components.d.ts +32 -0
- package/lib/data-table/src/DataTable.d.ts +24 -0
- package/lib/data-table/src/DataTable.js +19 -1
- package/lib/data-table/src/HeaderButton/FilterButton.d.ts +6 -0
- package/lib/data-table/src/HeaderButton/FilterMenu.d.ts +6 -0
- package/lib/data-table/src/TableParts/Body.d.ts +18 -10
- package/lib/data-table/src/TableParts/Body.js +65 -237
- package/lib/data-table/src/TableParts/BodyEmpty.d.ts +3 -0
- package/lib/data-table/src/TableParts/BodyEmpty.js +15 -0
- package/lib/data-table/src/TableParts/BodyRow.d.ts +3 -0
- package/lib/data-table/src/TableParts/BodyRow.js +210 -0
- package/lib/data-table/src/TableParts/BodySkeleton.js +8 -2
- package/lib/data-table/src/TableParts/Header.d.ts +6 -0
- package/lib/data-table/src/TableParts/Header.js +6 -0
- package/lib/data-table/src/TableParts/VirtualListItemWrapper.d.ts +36 -0
- package/lib/data-table/src/TableParts/VirtualListItemWrapper.js +29 -0
- package/lib/data-table/src/interface.d.ts +161 -2
- package/lib/data-table/src/styles/index.cssr.js +26 -3
- package/lib/data-table/src/use-group-header.d.ts +3 -3
- package/lib/data-table/src/use-row-drag.d.ts +2 -0
- package/lib/data-table/src/use-row-drag.js +270 -0
- package/lib/data-table/src/use-sorter.d.ts +4 -8
- package/lib/data-table/src/use-sorter.js +14 -0
- package/lib/data-table/src/use-table-data.d.ts +11 -14
- package/lib/data-table/src/use-table-data.js +5 -1
- package/lib/data-table/src/use-table-storage.d.ts +2 -2
- package/lib/data-table/src/use-table-storage.js +1 -0
- package/lib/data-table/src/utils/column-utils.d.ts +3 -2
- package/lib/data-table/src/utils/column-utils.js +11 -2
- package/lib/data-table/src/utils/csv-utils.js +1 -0
- package/lib/data-table/src/utils/flatten-rows.d.ts +2 -0
- package/lib/data-table/src/utils/flatten-rows.js +35 -0
- package/lib/data-table/src/utils/index.d.ts +1 -0
- package/lib/data-table/src/utils/index.js +1 -0
- package/lib/data-table/src/utils/resize-orchestrator-utils.d.ts +3 -5
- package/lib/data-table/src/utils/width-utils.d.ts +2 -2
- package/lib/data-table/styles/light.d.ts +6 -0
- package/lib/data-table/styles/light.js +3 -0
- package/lib/mapping-card/src/MappingCard.d.ts +8 -0
- package/lib/mapping-card/src/MappingCard.js +5 -1
- package/lib/mapping-card/src/MappingCardParts/Header.js +29 -5
- package/lib/mapping-card/src/interface.d.ts +8 -0
- package/lib/mapping-card/src/interface.js +4 -0
- package/lib/mapping-card/src/styles/index.cssr.js +8 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
- package/web-types.json +1 -1
|
@@ -15,6 +15,8 @@ const interface_1 = require("../interface");
|
|
|
15
15
|
const utils_1 = require("../utils");
|
|
16
16
|
const SelectionMenu_1 = __importDefault(require("./SelectionMenu"));
|
|
17
17
|
function renderTitle(column) {
|
|
18
|
+
if (column.type === 'draggable')
|
|
19
|
+
return null;
|
|
18
20
|
return typeof column.title === 'function'
|
|
19
21
|
? column.title(column)
|
|
20
22
|
: column.title;
|
|
@@ -147,6 +149,9 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
147
149
|
const { ellipsis } = column;
|
|
148
150
|
const ellipsisEnabled = (0, utils_1.isColumnEllipsisEnabled)(column);
|
|
149
151
|
const createColumnVNode = () => {
|
|
152
|
+
if (column.type === 'draggable') {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
150
155
|
if (column.type === 'selection') {
|
|
151
156
|
return column.multiple !== false ? ((0, vue_1.h)(vue_1.Fragment, null,
|
|
152
157
|
(0, vue_1.h)(checkbox_1.UCheckbox, { key: currentPage, privateInsideTable: true, checked: allRowsChecked, indeterminate: someRowsChecked, disabled: headerCheckboxDisabled, onUpdateChecked: handleCheckboxUpdateChecked, size: sizeRef }),
|
|
@@ -187,6 +192,7 @@ exports.default = (0, vue_1.defineComponent)({
|
|
|
187
192
|
column.className
|
|
188
193
|
], onClick: column.type !== 'selection'
|
|
189
194
|
&& column.type !== 'expand'
|
|
195
|
+
&& column.type !== 'draggable'
|
|
190
196
|
&& !('children' in column)
|
|
191
197
|
? (e) => {
|
|
192
198
|
handleColHeaderClick(e, column);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { PropType } from 'vue';
|
|
2
|
+
import type { ColItem } from '../use-group-header';
|
|
3
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
4
|
+
clsPrefix: {
|
|
5
|
+
type: StringConstructor;
|
|
6
|
+
required: true;
|
|
7
|
+
};
|
|
8
|
+
id: {
|
|
9
|
+
type: StringConstructor;
|
|
10
|
+
required: true;
|
|
11
|
+
};
|
|
12
|
+
cols: {
|
|
13
|
+
type: PropType<ColItem[]>;
|
|
14
|
+
required: true;
|
|
15
|
+
};
|
|
16
|
+
tableWidth: StringConstructor;
|
|
17
|
+
onMouseenter: PropType<(e: MouseEvent) => void>;
|
|
18
|
+
onMouseleave: PropType<(e: MouseEvent) => void>;
|
|
19
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
20
|
+
clsPrefix: {
|
|
21
|
+
type: StringConstructor;
|
|
22
|
+
required: true;
|
|
23
|
+
};
|
|
24
|
+
id: {
|
|
25
|
+
type: StringConstructor;
|
|
26
|
+
required: true;
|
|
27
|
+
};
|
|
28
|
+
cols: {
|
|
29
|
+
type: PropType<ColItem[]>;
|
|
30
|
+
required: true;
|
|
31
|
+
};
|
|
32
|
+
tableWidth: StringConstructor;
|
|
33
|
+
onMouseenter: PropType<(e: MouseEvent) => void>;
|
|
34
|
+
onMouseleave: PropType<(e: MouseEvent) => void>;
|
|
35
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
36
|
+
export default _default;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vue_1 = require("vue");
|
|
4
|
+
exports.default = (0, vue_1.defineComponent)({
|
|
5
|
+
name: 'VirtualListItemWrapper',
|
|
6
|
+
props: {
|
|
7
|
+
clsPrefix: {
|
|
8
|
+
type: String,
|
|
9
|
+
required: true
|
|
10
|
+
},
|
|
11
|
+
id: {
|
|
12
|
+
type: String,
|
|
13
|
+
required: true
|
|
14
|
+
},
|
|
15
|
+
cols: {
|
|
16
|
+
type: Array,
|
|
17
|
+
required: true
|
|
18
|
+
},
|
|
19
|
+
tableWidth: String,
|
|
20
|
+
onMouseenter: Function,
|
|
21
|
+
onMouseleave: Function
|
|
22
|
+
},
|
|
23
|
+
render() {
|
|
24
|
+
const { clsPrefix, id, cols, tableWidth, onMouseenter, onMouseleave } = this;
|
|
25
|
+
return ((0, vue_1.h)("table", { style: { tableLayout: 'fixed', width: tableWidth }, class: `${clsPrefix}-data-table-table`, onMouseenter: onMouseenter, onMouseleave: onMouseleave },
|
|
26
|
+
(0, vue_1.h)("colgroup", null, cols.map(col => ((0, vue_1.h)("col", { key: col.key, style: col.style })))),
|
|
27
|
+
(0, vue_1.h)("tbody", { "data-u-id": id, class: `${clsPrefix}-data-table-tbody` }, this.$slots)));
|
|
28
|
+
}
|
|
29
|
+
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TreeMate, TreeNode } from 'treemate';
|
|
2
|
-
import type { CSSProperties, ExtractPropTypes, HTMLAttributes, PropType, Ref, Slots, VNode, VNodeChild } from 'vue';
|
|
2
|
+
import type { ComputedRef, CSSProperties, ExtractPropTypes, HTMLAttributes, PropType, Ref, Slots, VNode, VNodeChild } from 'vue';
|
|
3
3
|
import type { BaseLoadingExposedProps } from '../../_internal';
|
|
4
4
|
import type { MergedTheme } from '../../_mixins';
|
|
5
5
|
import type { ExtractPublicPropTypes, MaybeArray } from '../../_utils';
|
|
@@ -178,6 +178,9 @@ export declare const dataTableProps: {
|
|
|
178
178
|
thButtonColorHover: string;
|
|
179
179
|
thIconColor: string;
|
|
180
180
|
thIconColorActive: string;
|
|
181
|
+
dropMarkColor: string;
|
|
182
|
+
dragGhostOpacity: string;
|
|
183
|
+
dragGhostFilter: string;
|
|
181
184
|
borderColorModal: string;
|
|
182
185
|
tdColorHoverModal: string;
|
|
183
186
|
tdColorStripedModal: string;
|
|
@@ -1133,6 +1136,9 @@ export declare const dataTableProps: {
|
|
|
1133
1136
|
thButtonColorHover: string;
|
|
1134
1137
|
thIconColor: string;
|
|
1135
1138
|
thIconColorActive: string;
|
|
1139
|
+
dropMarkColor: string;
|
|
1140
|
+
dragGhostOpacity: string;
|
|
1141
|
+
dragGhostFilter: string;
|
|
1136
1142
|
borderColorModal: string;
|
|
1137
1143
|
tdColorHoverModal: string;
|
|
1138
1144
|
tdColorStripedModal: string;
|
|
@@ -2088,6 +2094,9 @@ export declare const dataTableProps: {
|
|
|
2088
2094
|
thButtonColorHover: string;
|
|
2089
2095
|
thIconColor: string;
|
|
2090
2096
|
thIconColorActive: string;
|
|
2097
|
+
dropMarkColor: string;
|
|
2098
|
+
dragGhostOpacity: string;
|
|
2099
|
+
dragGhostFilter: string;
|
|
2091
2100
|
borderColorModal: string;
|
|
2092
2101
|
tdColorHoverModal: string;
|
|
2093
2102
|
tdColorStripedModal: string;
|
|
@@ -3016,6 +3025,7 @@ export interface DataTableSlots {
|
|
|
3016
3025
|
default?: () => VNode[];
|
|
3017
3026
|
empty?: () => VNode[];
|
|
3018
3027
|
loading?: () => VNode[];
|
|
3028
|
+
'drag-handle'?: () => VNode[];
|
|
3019
3029
|
}
|
|
3020
3030
|
export type RowData = Record<string, any>;
|
|
3021
3031
|
export type InternalRowData = Record<string, unknown>;
|
|
@@ -3134,8 +3144,123 @@ export interface TableExpandColumn<T = InternalRowData> extends Omit<TableSelect
|
|
|
3134
3144
|
renderExpand: RenderExpand<T>;
|
|
3135
3145
|
expandable?: Expandable<T>;
|
|
3136
3146
|
}
|
|
3137
|
-
export
|
|
3147
|
+
export interface RowDragEndOptions {
|
|
3148
|
+
index: number;
|
|
3149
|
+
oldOrder: number;
|
|
3150
|
+
newOrder: number;
|
|
3151
|
+
}
|
|
3152
|
+
export interface UseTableDataDeps {
|
|
3153
|
+
dataRelatedColsRef: ComputedRef<DataRelatedColumn[]>;
|
|
3154
|
+
}
|
|
3155
|
+
export interface UseSorterDeps {
|
|
3156
|
+
dataRelatedColsRef: ComputedRef<DataRelatedColumn[]>;
|
|
3157
|
+
filteredDataRef: ComputedRef<TmNode[]>;
|
|
3158
|
+
}
|
|
3159
|
+
export interface UseRowDragDeps {
|
|
3160
|
+
paginatedDataRef: ComputedRef<TmNode[]>;
|
|
3161
|
+
mergedCheckedRowKeySetRef: Ref<Set<RowKey>>;
|
|
3162
|
+
mergedClsPrefixRef: Ref<string>;
|
|
3163
|
+
}
|
|
3164
|
+
export interface UseRowDragReturn {
|
|
3165
|
+
draggableColumnRef: Ref<TableDraggableColumn | null>;
|
|
3166
|
+
draggingRowKeySetRef: Ref<Set<RowKey>>;
|
|
3167
|
+
droppingRowKeyRef: Ref<RowKey | null>;
|
|
3168
|
+
droppingPositionRef: Ref<RowDropPosition | null>;
|
|
3169
|
+
handleRowDragStart: (event: DragEvent, rowKey: RowKey) => void;
|
|
3170
|
+
handleRowDragOver: (event: DragEvent, rowKey: RowKey) => void;
|
|
3171
|
+
handleRowDragLeave: (event: DragEvent, rowKey: RowKey) => void;
|
|
3172
|
+
handleRowDragEnd: () => void;
|
|
3173
|
+
handleRowDrop: (event: DragEvent, rowKey: RowKey) => void;
|
|
3174
|
+
}
|
|
3175
|
+
export interface BodyRowRenderContext {
|
|
3176
|
+
mergedClsPrefix: string;
|
|
3177
|
+
cols: ColItem[];
|
|
3178
|
+
colCount: number;
|
|
3179
|
+
rowCount: number;
|
|
3180
|
+
hasChildren: boolean;
|
|
3181
|
+
childTriggerColIndex: number;
|
|
3182
|
+
indentStyle: {
|
|
3183
|
+
width: string;
|
|
3184
|
+
} | undefined;
|
|
3185
|
+
rowClassName: string | CreateRowClassName | undefined;
|
|
3186
|
+
rowProps: CreateRowProps | undefined;
|
|
3187
|
+
mergedSortState: SortState[];
|
|
3188
|
+
mergedExpandedRowKeySet: Set<RowKey>;
|
|
3189
|
+
fixedColumnLeftMap: Record<ColumnKey, {
|
|
3190
|
+
start: number;
|
|
3191
|
+
end: number;
|
|
3192
|
+
} | undefined>;
|
|
3193
|
+
fixedColumnRightMap: Record<ColumnKey, {
|
|
3194
|
+
start: number;
|
|
3195
|
+
end: number;
|
|
3196
|
+
} | undefined>;
|
|
3197
|
+
currentPage: number;
|
|
3198
|
+
loadingKeySet: Set<RowKey>;
|
|
3199
|
+
stickyExpandedRows: boolean;
|
|
3200
|
+
bodyWidthPx: string | undefined;
|
|
3201
|
+
renderExpand: RenderExpand | undefined;
|
|
3202
|
+
renderExpandIcon: RenderExpandIcon | undefined;
|
|
3203
|
+
renderCell: ((value: any, rowData: object, column: TableBaseColumn) => VNodeChild) | undefined;
|
|
3204
|
+
defaultEmptyValue: string | (() => VNodeChild) | undefined;
|
|
3205
|
+
mergedTheme: MergedTheme<DataTableTheme>;
|
|
3206
|
+
rowIndexToKey: Record<number, RowKey>;
|
|
3207
|
+
cordToPass: Record<number, number[]>;
|
|
3208
|
+
cordKey: Record<number, Record<number, RowKey[]>>;
|
|
3209
|
+
draggableColumn: TableDraggableColumn | null;
|
|
3210
|
+
droppingRowKey: RowKey | null;
|
|
3211
|
+
droppingPosition: RowDropPosition | null;
|
|
3212
|
+
draggingRowKeySet: Set<RowKey>;
|
|
3213
|
+
hoverKey: RowKey | null;
|
|
3214
|
+
dataTableSlots: Slots;
|
|
3215
|
+
setHoverKey: (key: RowKey) => void;
|
|
3216
|
+
handleCheckboxUpdateChecked: (tmNode: {
|
|
3217
|
+
key: RowKey;
|
|
3218
|
+
}, checked: boolean, shiftKey: boolean) => void;
|
|
3219
|
+
handleRadioUpdateChecked: (tmNode: {
|
|
3220
|
+
key: RowKey;
|
|
3221
|
+
}) => void;
|
|
3222
|
+
handleUpdateExpanded: (key: RowKey, tmNode: TmNode | null) => void;
|
|
3223
|
+
handleRowDragStart: (event: DragEvent, rowKey: RowKey) => void;
|
|
3224
|
+
handleRowDragOver: (event: DragEvent, rowKey: RowKey) => void;
|
|
3225
|
+
handleRowDragLeave: (event: DragEvent, rowKey: RowKey) => void;
|
|
3226
|
+
handleRowDragEnd: () => void;
|
|
3227
|
+
handleRowDrop: (event: DragEvent, rowKey: RowKey) => void;
|
|
3228
|
+
emitEdit: (value: any, row: any, key: any) => void;
|
|
3229
|
+
}
|
|
3230
|
+
export interface BodyEmptyDeps {
|
|
3231
|
+
clsPrefix: string;
|
|
3232
|
+
loading: boolean;
|
|
3233
|
+
bodyStyle: CSSProperties | undefined;
|
|
3234
|
+
dataTableSlots: Slots;
|
|
3235
|
+
mergedTheme: MergedTheme<DataTableTheme>;
|
|
3236
|
+
emptyProps: Partial<EmptyProps> | undefined;
|
|
3237
|
+
}
|
|
3238
|
+
export interface FixedShadowStyleProps {
|
|
3239
|
+
leftActiveFixedColKey: ColumnKey | null;
|
|
3240
|
+
leftActiveFixedChildrenColKeys: ColumnKey[];
|
|
3241
|
+
rightActiveFixedColKey: ColumnKey | null;
|
|
3242
|
+
rightActiveFixedChildrenColKeys: ColumnKey[];
|
|
3243
|
+
componentId: string;
|
|
3244
|
+
}
|
|
3245
|
+
export type RowDropPosition = 'before' | 'after';
|
|
3246
|
+
export type TableDraggableColumn<T = InternalRowData> = {
|
|
3247
|
+
type: 'draggable';
|
|
3248
|
+
key: ColumnKey;
|
|
3249
|
+
draggable?: (row: T) => boolean;
|
|
3250
|
+
onDragEnd?: (row: T, options: RowDragEndOptions) => void;
|
|
3251
|
+
sortByKey?: boolean;
|
|
3252
|
+
sorter?: never;
|
|
3253
|
+
filter?: never;
|
|
3254
|
+
filterOptions?: never;
|
|
3255
|
+
filterOptionValues?: never;
|
|
3256
|
+
filterOptionValue?: never;
|
|
3257
|
+
resizable?: never;
|
|
3258
|
+
colSpan?: never;
|
|
3259
|
+
rowSpan?: never;
|
|
3260
|
+
} & CommonColumnInfo<T>;
|
|
3261
|
+
export type TableColumn<T = InternalRowData> = TableColumnGroup<T> | TableBaseColumn<T> | TableSelectionColumn<T> | TableExpandColumn<T> | TableDraggableColumn<T>;
|
|
3138
3262
|
export type TableColumns<T = InternalRowData> = Array<TableColumn<T>>;
|
|
3263
|
+
export type DataRelatedColumn<T = InternalRowData> = TableSelectionColumn<T> | TableBaseColumn<T> | TableExpandColumn<T> | TableDraggableColumn<T>;
|
|
3139
3264
|
export type DataTableSelectionOptions<T = InternalRowData> = Array<DataTableSelectionOption | {
|
|
3140
3265
|
label: string;
|
|
3141
3266
|
key: string | number;
|
|
@@ -3226,6 +3351,15 @@ export interface DataTableInjection {
|
|
|
3226
3351
|
defaultEmptyValueRef: Ref<string | (() => VNodeChild) | undefined>;
|
|
3227
3352
|
emptyPropsRef: Ref<Partial<EmptyProps> | undefined>;
|
|
3228
3353
|
handleEdit: (value: any, row: any, key: string) => void;
|
|
3354
|
+
draggableColumnRef: UseRowDragReturn['draggableColumnRef'];
|
|
3355
|
+
draggingRowKeySetRef: UseRowDragReturn['draggingRowKeySetRef'];
|
|
3356
|
+
droppingRowKeyRef: UseRowDragReturn['droppingRowKeyRef'];
|
|
3357
|
+
droppingPositionRef: UseRowDragReturn['droppingPositionRef'];
|
|
3358
|
+
handleRowDragStart: UseRowDragReturn['handleRowDragStart'];
|
|
3359
|
+
handleRowDragOver: UseRowDragReturn['handleRowDragOver'];
|
|
3360
|
+
handleRowDragLeave: UseRowDragReturn['handleRowDragLeave'];
|
|
3361
|
+
handleRowDragEnd: UseRowDragReturn['handleRowDragEnd'];
|
|
3362
|
+
handleRowDrop: UseRowDragReturn['handleRowDrop'];
|
|
3229
3363
|
}
|
|
3230
3364
|
export declare const dataTableInjectionKey: import("vue").InjectionKey<DataTableInjection>;
|
|
3231
3365
|
export interface MainTableInjection {
|
|
@@ -3314,5 +3448,30 @@ export interface CsvOptionsType {
|
|
|
3314
3448
|
fileName?: string;
|
|
3315
3449
|
keepOriginalData?: boolean;
|
|
3316
3450
|
}
|
|
3451
|
+
export interface NormalRowRenderInfo {
|
|
3452
|
+
striped: boolean;
|
|
3453
|
+
tmNode: TmNode;
|
|
3454
|
+
key: RowKey;
|
|
3455
|
+
index: number;
|
|
3456
|
+
}
|
|
3457
|
+
export interface WidthConstraintSignal {
|
|
3458
|
+
systemMinWidth: number | string;
|
|
3459
|
+
systemMaxWidth?: number | string;
|
|
3460
|
+
}
|
|
3461
|
+
export type RowRenderInfo = {
|
|
3462
|
+
isSummaryRow: true;
|
|
3463
|
+
key: RowKey;
|
|
3464
|
+
tmNode: {
|
|
3465
|
+
rawNode: SummaryRowData;
|
|
3466
|
+
disabled: boolean;
|
|
3467
|
+
};
|
|
3468
|
+
index: number;
|
|
3469
|
+
} | NormalRowRenderInfo | {
|
|
3470
|
+
isExpandedRow: true;
|
|
3471
|
+
tmNode: TmNode;
|
|
3472
|
+
key: RowKey;
|
|
3473
|
+
index: number;
|
|
3474
|
+
};
|
|
3475
|
+
export type ResizeReconcileReason = 'topology/capability' | 'mode' | 'environment' | 'width-state';
|
|
3317
3476
|
export type DataTableProps = ExtractPublicPropTypes<typeof dataTableProps>;
|
|
3318
3477
|
export type DataTableSetupProps = ExtractPropTypes<typeof dataTableProps>;
|
|
@@ -145,7 +145,11 @@ exports.default = (0, cssr_1.c)([(0, cssr_1.cB)('data-table', `
|
|
|
145
145
|
margin: calc(var(--u-th-padding) * -1);
|
|
146
146
|
padding: var(--u-th-padding);
|
|
147
147
|
box-sizing: border-box;
|
|
148
|
-
`), (0, cssr_1.cM)('disabled', null, [(0, cssr_1.cB)('data-table-td', 'color: var(--u-td-opacity-disabled);')]), (0, cssr_1.cM)('
|
|
148
|
+
`), (0, cssr_1.cM)('disabled', null, [(0, cssr_1.cB)('data-table-td', 'color: var(--u-td-opacity-disabled);')]), (0, cssr_1.cM)('dragging', 'opacity: 0.4;'), (0, cssr_1.cM)('drop-before', null, [(0, cssr_1.c)('>', [(0, cssr_1.cB)('data-table-td', `
|
|
149
|
+
box-shadow: inset 0 2px 0 0 var(--u-drop-mark-color);
|
|
150
|
+
`)])]), (0, cssr_1.cM)('drop-after', null, [(0, cssr_1.c)('>', [(0, cssr_1.cB)('data-table-td', `
|
|
151
|
+
box-shadow: inset 0 -2px 0 0 var(--u-drop-mark-color);
|
|
152
|
+
`)])]), (0, cssr_1.cM)('striped', 'background-color: var(--u-merged-td-color-striped);', [(0, cssr_1.cB)('data-table-td', 'background-color: var(--u-merged-td-color-striped);')]), (0, cssr_1.c)('&:hover', 'background-color: var(--u-merged-td-color-hover);', [(0, cssr_1.c)('>', [(0, cssr_1.cB)('data-table-td', 'background-color: var(--u-merged-td-color-hover);')])]), (0, cssr_1.c)('&:has(.u-data-table-td--editable:hover)', [(0, cssr_1.c)('>', [(0, cssr_1.cB)('data-table-td', 'background-color: var(--u-merged-td-color);', [(0, cssr_1.cM)('editable', [(0, cssr_1.c)('&:hover', 'background-color: var(--u-merged-td-color-hover);')])])])])]), (0, cssr_1.cB)('data-table-th', `
|
|
149
153
|
padding: var(--u-th-padding);
|
|
150
154
|
position: relative;
|
|
151
155
|
height: var(--u-th-height);
|
|
@@ -298,7 +302,22 @@ exports.default = (0, cssr_1.c)([(0, cssr_1.cB)('data-table', `
|
|
|
298
302
|
`), (0, cssr_1.cM)('selection, expand', `
|
|
299
303
|
text-align: center;
|
|
300
304
|
line-height: 0;
|
|
301
|
-
`), (0, cssr_1.cM)('
|
|
305
|
+
`), (0, cssr_1.cM)('draggable', `
|
|
306
|
+
text-align: center;
|
|
307
|
+
line-height: 0;
|
|
308
|
+
cursor: grab;
|
|
309
|
+
`, [(0, cssr_1.c)('&:active', `
|
|
310
|
+
cursor: grabbing;
|
|
311
|
+
`), (0, cssr_1.c)('&:hover', [(0, cssr_1.cE)('drag-handle', `
|
|
312
|
+
color: var(--u-th-icon-color-active);
|
|
313
|
+
`)]), (0, cssr_1.cE)('drag-handle', `
|
|
314
|
+
display: inline-flex;
|
|
315
|
+
align-items: center;
|
|
316
|
+
justify-content: center;
|
|
317
|
+
color: var(--u-th-icon-color);
|
|
318
|
+
line-height: 0;
|
|
319
|
+
pointer-events: none;
|
|
320
|
+
`)]), (0, cssr_1.cM)('editable', `
|
|
302
321
|
cursor: pointer;
|
|
303
322
|
position: relative;
|
|
304
323
|
padding: 0;
|
|
@@ -317,7 +336,11 @@ exports.default = (0, cssr_1.c)([(0, cssr_1.cB)('data-table', `
|
|
|
317
336
|
height: 100%;
|
|
318
337
|
width: 100%;
|
|
319
338
|
}
|
|
320
|
-
`), fixedColumnStyle]), (0, cssr_1.cB)('data-table-
|
|
339
|
+
`), fixedColumnStyle]), (0, cssr_1.cB)('data-table-drag-ghost', `
|
|
340
|
+
opacity: var(--u-drag-ghost-opacity);
|
|
341
|
+
filter: var(--u-drag-ghost-filter);
|
|
342
|
+
pointer-events: none;
|
|
343
|
+
`), (0, cssr_1.cB)('data-table-empty', `
|
|
321
344
|
box-sizing: border-box;
|
|
322
345
|
padding: var(--u-empty-padding);
|
|
323
346
|
flex-grow: 1;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ComputedRef, CSSProperties } from 'vue';
|
|
2
|
-
import type { ColumnKey,
|
|
2
|
+
import type { ColumnKey, DataRelatedColumn, DataTableSetupProps, TableColumn } from './interface';
|
|
3
3
|
export interface RowItem {
|
|
4
4
|
colSpan: number;
|
|
5
5
|
rowSpan: number;
|
|
@@ -9,11 +9,11 @@ export interface RowItem {
|
|
|
9
9
|
export interface ColItem {
|
|
10
10
|
key: string | number;
|
|
11
11
|
style: CSSProperties;
|
|
12
|
-
column:
|
|
12
|
+
column: DataRelatedColumn;
|
|
13
13
|
}
|
|
14
14
|
export declare function useGroupHeader(props: DataTableSetupProps, getResizableWidth: (key: ColumnKey) => number | undefined): {
|
|
15
15
|
rowsRef: ComputedRef<RowItem[][]>;
|
|
16
16
|
colsRef: ComputedRef<ColItem[]>;
|
|
17
17
|
hasEllipsisRef: ComputedRef<boolean>;
|
|
18
|
-
dataRelatedColsRef: ComputedRef<
|
|
18
|
+
dataRelatedColsRef: ComputedRef<DataRelatedColumn[]>;
|
|
19
19
|
};
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useRowDrag = useRowDrag;
|
|
4
|
+
const vooks_1 = require("vooks");
|
|
5
|
+
const vue_1 = require("vue");
|
|
6
|
+
const DROP_HALF_DIVISOR = 2;
|
|
7
|
+
const DROP_STEP_BIAS = 1;
|
|
8
|
+
const FALLBACK_ORDER = 0;
|
|
9
|
+
const SINGLE_ROW_DRAG_SIZE = 1;
|
|
10
|
+
const DRAG_IMAGE_OFFSET = 0;
|
|
11
|
+
const GHOST_OFFSCREEN_TOP_PX = -10000;
|
|
12
|
+
const GHOST_CLEANUP_DELAY_MS = 0;
|
|
13
|
+
function useRowDrag(props, { paginatedDataRef, mergedCheckedRowKeySetRef, mergedClsPrefixRef }) {
|
|
14
|
+
const draggableColumnRef = (0, vooks_1.useMemo)(() => {
|
|
15
|
+
const findDraggableColumn = (columns) => {
|
|
16
|
+
for (const column of columns) {
|
|
17
|
+
if ('children' in column) {
|
|
18
|
+
const nested = findDraggableColumn(column.children);
|
|
19
|
+
if (nested)
|
|
20
|
+
return nested;
|
|
21
|
+
}
|
|
22
|
+
else if (column.type === 'draggable') {
|
|
23
|
+
return column;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
};
|
|
28
|
+
return findDraggableColumn(props.columns);
|
|
29
|
+
});
|
|
30
|
+
const draggingRowKeysRef = (0, vue_1.ref)([]);
|
|
31
|
+
const draggingRowKeySetRef = (0, vue_1.computed)(() => new Set(draggingRowKeysRef.value));
|
|
32
|
+
const droppingRowKeyRef = (0, vue_1.ref)(null);
|
|
33
|
+
const droppingPositionRef = (0, vue_1.ref)(null);
|
|
34
|
+
function resetDropState() {
|
|
35
|
+
droppingRowKeyRef.value = null;
|
|
36
|
+
droppingPositionRef.value = null;
|
|
37
|
+
}
|
|
38
|
+
function isRowDraggable(rowData) {
|
|
39
|
+
const column = draggableColumnRef.value;
|
|
40
|
+
if (!column)
|
|
41
|
+
return false;
|
|
42
|
+
if (typeof column.draggable === 'function') {
|
|
43
|
+
return column.draggable(rowData);
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
function getRowByKey(targetKey) {
|
|
48
|
+
var _a;
|
|
49
|
+
return (_a = paginatedDataRef.value.find(node => node.key === targetKey)) === null || _a === void 0 ? void 0 : _a.rawNode;
|
|
50
|
+
}
|
|
51
|
+
function resolveDragKeys(initialRowKey) {
|
|
52
|
+
const checkedSet = mergedCheckedRowKeySetRef.value;
|
|
53
|
+
if (!checkedSet.has(initialRowKey))
|
|
54
|
+
return [initialRowKey];
|
|
55
|
+
const keysInOrder = [];
|
|
56
|
+
for (const node of paginatedDataRef.value) {
|
|
57
|
+
if (checkedSet.has(node.key) && isRowDraggable(node.rawNode)) {
|
|
58
|
+
keysInOrder.push(node.key);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return keysInOrder.length ? keysInOrder : [initialRowKey];
|
|
62
|
+
}
|
|
63
|
+
function applyDragImage(event) {
|
|
64
|
+
if (!event.dataTransfer
|
|
65
|
+
|| typeof event.dataTransfer.setDragImage !== 'function') {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const cellElement = event.currentTarget;
|
|
69
|
+
const rowElement = cellElement === null || cellElement === void 0 ? void 0 : cellElement.closest('tr');
|
|
70
|
+
if (!rowElement)
|
|
71
|
+
return;
|
|
72
|
+
const draggedSet = draggingRowKeySetRef.value;
|
|
73
|
+
if (draggedSet.size <= SINGLE_ROW_DRAG_SIZE) {
|
|
74
|
+
event.dataTransfer.setDragImage(rowElement, DRAG_IMAGE_OFFSET, DRAG_IMAGE_OFFSET);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const tableElement = rowElement.closest('table');
|
|
78
|
+
if (!tableElement) {
|
|
79
|
+
event.dataTransfer.setDragImage(rowElement, DRAG_IMAGE_OFFSET, DRAG_IMAGE_OFFSET);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const mergedClsPrefix = mergedClsPrefixRef.value;
|
|
83
|
+
const keyStringSet = new Set(Array.from(draggedSet).map(String));
|
|
84
|
+
const ghost = tableElement.cloneNode(true);
|
|
85
|
+
ghost.classList.add(`${mergedClsPrefix}-data-table-drag-ghost`);
|
|
86
|
+
ghost
|
|
87
|
+
.querySelectorAll('thead')
|
|
88
|
+
.forEach(headElement => headElement.remove());
|
|
89
|
+
ghost.querySelectorAll('tbody > tr').forEach((rowChild) => {
|
|
90
|
+
const childKey = rowChild.getAttribute('data-row-key');
|
|
91
|
+
if (childKey === null || !keyStringSet.has(childKey))
|
|
92
|
+
rowChild.remove();
|
|
93
|
+
});
|
|
94
|
+
ghost.style.position = 'fixed';
|
|
95
|
+
ghost.style.top = `${GHOST_OFFSCREEN_TOP_PX}px`;
|
|
96
|
+
ghost.style.left = '0';
|
|
97
|
+
ghost.style.pointerEvents = 'none';
|
|
98
|
+
ghost.style.width = `${tableElement.offsetWidth}px`;
|
|
99
|
+
const hostElement = tableElement.closest(`.${mergedClsPrefix}-data-table`) || document.body;
|
|
100
|
+
hostElement.appendChild(ghost);
|
|
101
|
+
event.dataTransfer.setDragImage(ghost, DRAG_IMAGE_OFFSET, DRAG_IMAGE_OFFSET);
|
|
102
|
+
setTimeout(() => {
|
|
103
|
+
if (ghost.parentNode)
|
|
104
|
+
ghost.parentNode.removeChild(ghost);
|
|
105
|
+
}, GHOST_CLEANUP_DELAY_MS);
|
|
106
|
+
}
|
|
107
|
+
function handleRowDragStart(event, rowKey) {
|
|
108
|
+
const row = getRowByKey(rowKey);
|
|
109
|
+
if (!row || !isRowDraggable(row)) {
|
|
110
|
+
event.preventDefault();
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
draggingRowKeysRef.value = resolveDragKeys(rowKey);
|
|
114
|
+
if (event.dataTransfer) {
|
|
115
|
+
event.dataTransfer.effectAllowed = 'move';
|
|
116
|
+
event.dataTransfer.setData('text/plain', draggingRowKeysRef.value.map(String).join(','));
|
|
117
|
+
}
|
|
118
|
+
applyDragImage(event);
|
|
119
|
+
}
|
|
120
|
+
function handleRowDragOver(event, rowKey) {
|
|
121
|
+
if (!draggableColumnRef.value)
|
|
122
|
+
return;
|
|
123
|
+
if (!draggingRowKeysRef.value.length)
|
|
124
|
+
return;
|
|
125
|
+
event.preventDefault();
|
|
126
|
+
if (event.dataTransfer) {
|
|
127
|
+
event.dataTransfer.dropEffect = 'move';
|
|
128
|
+
}
|
|
129
|
+
if (draggingRowKeySetRef.value.has(rowKey)) {
|
|
130
|
+
resetDropState();
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
const target = event.currentTarget;
|
|
134
|
+
if (!target)
|
|
135
|
+
return;
|
|
136
|
+
const rect = target.getBoundingClientRect();
|
|
137
|
+
const offset = event.clientY - rect.top;
|
|
138
|
+
const position = offset < rect.height / DROP_HALF_DIVISOR ? 'before' : 'after';
|
|
139
|
+
droppingRowKeyRef.value = rowKey;
|
|
140
|
+
droppingPositionRef.value = position;
|
|
141
|
+
}
|
|
142
|
+
function handleRowDragLeave(event, rowKey) {
|
|
143
|
+
if (droppingRowKeyRef.value !== rowKey)
|
|
144
|
+
return;
|
|
145
|
+
const related = event.relatedTarget;
|
|
146
|
+
const current = event.currentTarget;
|
|
147
|
+
if (related && current && current.contains(related)) {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
resetDropState();
|
|
151
|
+
}
|
|
152
|
+
function handleRowDragEnd() {
|
|
153
|
+
draggingRowKeysRef.value = [];
|
|
154
|
+
resetDropState();
|
|
155
|
+
}
|
|
156
|
+
function readOrder(row, orderKey) {
|
|
157
|
+
const value = row === null || row === void 0 ? void 0 : row[orderKey];
|
|
158
|
+
return typeof value === 'number' ? value : Number(value) || FALLBACK_ORDER;
|
|
159
|
+
}
|
|
160
|
+
function computeNewOrders(draggedKeys, dropIndex, position, orderKey) {
|
|
161
|
+
var _a, _b, _c;
|
|
162
|
+
const rows = paginatedDataRef.value;
|
|
163
|
+
if (!rows.length)
|
|
164
|
+
return null;
|
|
165
|
+
const draggedSet = new Set(draggedKeys);
|
|
166
|
+
const draggedIndexes = rows
|
|
167
|
+
.map((node, index) => (draggedSet.has(node.key) ? index : -1))
|
|
168
|
+
.filter(index => index >= 0);
|
|
169
|
+
if (!draggedIndexes.length)
|
|
170
|
+
return null;
|
|
171
|
+
const filtered = rows.filter(node => !draggedSet.has(node.key));
|
|
172
|
+
const targetIndex = position === 'before' ? dropIndex : dropIndex + 1;
|
|
173
|
+
const removedBefore = draggedIndexes.filter(index => index < targetIndex).length;
|
|
174
|
+
const insertAt = Math.max(0, targetIndex - removedBefore);
|
|
175
|
+
const prev = (_a = filtered[insertAt - 1]) === null || _a === void 0 ? void 0 : _a.rawNode;
|
|
176
|
+
const next = (_b = filtered[insertAt]) === null || _b === void 0 ? void 0 : _b.rawNode;
|
|
177
|
+
const draggedCount = draggedKeys.length;
|
|
178
|
+
const orders = [];
|
|
179
|
+
if (prev && next) {
|
|
180
|
+
const prevOrder = readOrder(prev, orderKey);
|
|
181
|
+
const nextOrder = readOrder(next, orderKey);
|
|
182
|
+
const step = (nextOrder - prevOrder) / (draggedCount + DROP_STEP_BIAS);
|
|
183
|
+
for (let index = 0; index < draggedCount; index++) {
|
|
184
|
+
orders.push(prevOrder + step * (index + DROP_STEP_BIAS));
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
else if (!prev && next) {
|
|
188
|
+
const nextOrder = readOrder(next, orderKey);
|
|
189
|
+
for (let index = 0; index < draggedCount; index++) {
|
|
190
|
+
orders.push(nextOrder - (draggedCount - index));
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
else if (prev && !next) {
|
|
194
|
+
const prevOrder = readOrder(prev, orderKey);
|
|
195
|
+
for (let index = 0; index < draggedCount; index++) {
|
|
196
|
+
orders.push(prevOrder + (index + DROP_STEP_BIAS));
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
for (const key of draggedKeys) {
|
|
201
|
+
const row = (_c = rows.find(node => node.key === key)) === null || _c === void 0 ? void 0 : _c.rawNode;
|
|
202
|
+
orders.push(readOrder(row, orderKey));
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return orders;
|
|
206
|
+
}
|
|
207
|
+
function handleRowDrop(event, rowKey) {
|
|
208
|
+
event.preventDefault();
|
|
209
|
+
const column = draggableColumnRef.value;
|
|
210
|
+
const draggedKeys = draggingRowKeysRef.value;
|
|
211
|
+
const position = droppingPositionRef.value;
|
|
212
|
+
if (!column
|
|
213
|
+
|| !draggedKeys.length
|
|
214
|
+
|| position === null
|
|
215
|
+
|| draggingRowKeySetRef.value.has(rowKey)) {
|
|
216
|
+
handleRowDragEnd();
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
const rows = paginatedDataRef.value;
|
|
220
|
+
const dropIndex = rows.findIndex(node => node.key === rowKey);
|
|
221
|
+
if (dropIndex < 0) {
|
|
222
|
+
handleRowDragEnd();
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
const orderKey = column.key;
|
|
226
|
+
const newOrders = computeNewOrders(draggedKeys, dropIndex, position, orderKey);
|
|
227
|
+
const dispatchPlan = draggedKeys.map((key, index) => {
|
|
228
|
+
var _a;
|
|
229
|
+
const row = (_a = rows.find(node => node.key === key)) === null || _a === void 0 ? void 0 : _a.rawNode;
|
|
230
|
+
return row
|
|
231
|
+
? {
|
|
232
|
+
row,
|
|
233
|
+
oldOrder: readOrder(row, orderKey),
|
|
234
|
+
newOrder: newOrders ? newOrders[index] : readOrder(row, orderKey)
|
|
235
|
+
}
|
|
236
|
+
: null;
|
|
237
|
+
});
|
|
238
|
+
const targetIndex = position === 'before' ? dropIndex : dropIndex + 1;
|
|
239
|
+
const draggedSet = draggingRowKeySetRef.value;
|
|
240
|
+
const draggedIndexes = rows
|
|
241
|
+
.map((node, index) => (draggedSet.has(node.key) ? index : -1))
|
|
242
|
+
.filter(index => index >= 0);
|
|
243
|
+
const removedBefore = draggedIndexes.filter(index => index < targetIndex).length;
|
|
244
|
+
const baseIndex = Math.max(0, targetIndex - removedBefore);
|
|
245
|
+
handleRowDragEnd();
|
|
246
|
+
if (!newOrders)
|
|
247
|
+
return;
|
|
248
|
+
dispatchPlan.forEach((entry, index) => {
|
|
249
|
+
var _a;
|
|
250
|
+
if (!entry)
|
|
251
|
+
return;
|
|
252
|
+
(_a = column.onDragEnd) === null || _a === void 0 ? void 0 : _a.call(column, entry.row, {
|
|
253
|
+
index: baseIndex + index,
|
|
254
|
+
oldOrder: entry.oldOrder,
|
|
255
|
+
newOrder: entry.newOrder
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
return {
|
|
260
|
+
draggableColumnRef,
|
|
261
|
+
draggingRowKeySetRef,
|
|
262
|
+
droppingRowKeyRef,
|
|
263
|
+
droppingPositionRef,
|
|
264
|
+
handleRowDragStart,
|
|
265
|
+
handleRowDragOver,
|
|
266
|
+
handleRowDragLeave,
|
|
267
|
+
handleRowDragEnd,
|
|
268
|
+
handleRowDrop
|
|
269
|
+
};
|
|
270
|
+
}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
export declare function useSorter(props: DataTableSetupProps, { dataRelatedColsRef, filteredDataRef }: {
|
|
4
|
-
dataRelatedColsRef: ComputedRef<Array<TableSelectionColumn | TableBaseColumn | TableExpandColumn>>;
|
|
5
|
-
filteredDataRef: ComputedRef<TmNode[]>;
|
|
6
|
-
}): {
|
|
1
|
+
import type { ColumnKey, CompareFn, DataTableSetupProps, InternalRowData, SortOrder, SortState, TmNode, UseSorterDeps } from './interface';
|
|
2
|
+
export declare function useSorter(props: DataTableSetupProps, { dataRelatedColsRef, filteredDataRef }: UseSorterDeps): {
|
|
7
3
|
clearSorter: () => void;
|
|
8
4
|
sort: (columnKey: ColumnKey, order?: SortOrder) => void;
|
|
9
|
-
sortedDataRef: ComputedRef<TmNode[]>;
|
|
10
|
-
mergedSortStateRef: ComputedRef<{
|
|
5
|
+
sortedDataRef: import("vue").ComputedRef<TmNode[]>;
|
|
6
|
+
mergedSortStateRef: import("vue").ComputedRef<{
|
|
11
7
|
columnKey: ColumnKey;
|
|
12
8
|
order: SortOrder;
|
|
13
9
|
sorter: boolean | "default" | CompareFn<InternalRowData> | {
|