@deot/vc-components 1.0.61 → 1.0.62
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.cjs +50 -27
- package/dist/index.d.ts +24 -6
- package/dist/index.iife.js +50 -27
- package/dist/index.js +50 -27
- package/dist/index.style.css +2 -2
- package/dist/index.umd.cjs +50 -27
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -9674,10 +9674,11 @@ const useScroller = (expose) => {
|
|
|
9674
9674
|
"vc-scroller__wrapper"
|
|
9675
9675
|
];
|
|
9676
9676
|
});
|
|
9677
|
-
const refreshSize = () => {
|
|
9677
|
+
const refreshSize = async () => {
|
|
9678
9678
|
if (!wrapper.value) return;
|
|
9679
9679
|
wrapperW.value = wrapper.value.clientWidth;
|
|
9680
9680
|
wrapperH.value = wrapper.value.clientHeight;
|
|
9681
|
+
await vue.nextTick();
|
|
9681
9682
|
contentH.value = wrapper.value.scrollHeight;
|
|
9682
9683
|
contentW.value = wrapper.value.scrollWidth;
|
|
9683
9684
|
};
|
|
@@ -14550,11 +14551,10 @@ const Option = /* @__PURE__ */ vue.defineComponent({
|
|
|
14550
14551
|
} = owner.exposed;
|
|
14551
14552
|
return !multiple.value ? true : current.value.slice(-1)[0] === props.value;
|
|
14552
14553
|
});
|
|
14553
|
-
const searchRegex = vue.computed(() => {
|
|
14554
|
-
const v = owner.exposed.searchValue.value.trim().replace(/\s+/g, ' ').split(/\s|,/);
|
|
14555
|
-
return new RegExp(`(${v.join('|')})`, 'i');
|
|
14556
|
-
});
|
|
14557
14554
|
const isActive = vue.computed(() => {
|
|
14555
|
+
const {
|
|
14556
|
+
searchRegex
|
|
14557
|
+
} = owner.exposed;
|
|
14558
14558
|
return !!(searchRegex.value.test(formatterLabel.value) || !props.filterable);
|
|
14559
14559
|
});
|
|
14560
14560
|
const customOptions = vue.computed(() => {
|
|
@@ -14780,6 +14780,10 @@ const Select = /* @__PURE__ */ vue.defineComponent({
|
|
|
14780
14780
|
const v = currentValue.value.length - props.maxTags;
|
|
14781
14781
|
return v < 0 ? 0 : v;
|
|
14782
14782
|
});
|
|
14783
|
+
const searchRegex = vue.computed(() => {
|
|
14784
|
+
const v = searchValue.value.trim().replace(/\s+/g, ' ').split(/\s|,/);
|
|
14785
|
+
return new RegExp(escapeString(`(${v.join('|')})`), 'i');
|
|
14786
|
+
});
|
|
14783
14787
|
const optionMap = vue.ref({});
|
|
14784
14788
|
const options = vue.computed(() => {
|
|
14785
14789
|
return Object.values(optionMap.value);
|
|
@@ -14876,7 +14880,7 @@ const Select = /* @__PURE__ */ vue.defineComponent({
|
|
|
14876
14880
|
add,
|
|
14877
14881
|
remove,
|
|
14878
14882
|
close,
|
|
14879
|
-
|
|
14883
|
+
searchRegex,
|
|
14880
14884
|
multiple,
|
|
14881
14885
|
isActive,
|
|
14882
14886
|
current: currentValue,
|
|
@@ -19151,6 +19155,10 @@ const TableHeader = /* @__PURE__ */ vue.defineComponent({
|
|
|
19151
19155
|
sort: {
|
|
19152
19156
|
type: Object,
|
|
19153
19157
|
default: () => ({})
|
|
19158
|
+
},
|
|
19159
|
+
resizable: {
|
|
19160
|
+
type: Boolean,
|
|
19161
|
+
default: void 0
|
|
19154
19162
|
}
|
|
19155
19163
|
},
|
|
19156
19164
|
setup(props) {
|
|
@@ -19159,6 +19167,9 @@ const TableHeader = /* @__PURE__ */ vue.defineComponent({
|
|
|
19159
19167
|
const draggingColumn = vue.ref(null);
|
|
19160
19168
|
const dragging = vue.ref(false);
|
|
19161
19169
|
const dragState = vue.ref({});
|
|
19170
|
+
const allowDrag = vue.computed(() => {
|
|
19171
|
+
return typeof props.resizable === 'boolean' ? props.resizable : props.border;
|
|
19172
|
+
});
|
|
19162
19173
|
const states = useStates({
|
|
19163
19174
|
columns: 'columns',
|
|
19164
19175
|
isAllSelected: 'isAllSelected',
|
|
@@ -19262,10 +19273,10 @@ const TableHeader = /* @__PURE__ */ vue.defineComponent({
|
|
|
19262
19273
|
if (vcShared.IS_SERVER) return;
|
|
19263
19274
|
if (column.children && column.children.length > 0) return;
|
|
19264
19275
|
/* istanbul ignore if */
|
|
19265
|
-
if (draggingColumn.value &&
|
|
19276
|
+
if (draggingColumn.value && allowDrag.value) {
|
|
19266
19277
|
dragging.value = true;
|
|
19267
19278
|
table.resizeProxyVisible.value = true;
|
|
19268
|
-
const tableEl = table.
|
|
19279
|
+
const tableEl = table.tableWrapper.value;
|
|
19269
19280
|
const tableLeft = tableEl.getBoundingClientRect().left;
|
|
19270
19281
|
const columnEl = instance.vnode.el.querySelector(`.vc-table__th.${column.id}`);
|
|
19271
19282
|
const columnRect = columnEl.getBoundingClientRect();
|
|
@@ -19294,15 +19305,14 @@ const TableHeader = /* @__PURE__ */ vue.defineComponent({
|
|
|
19294
19305
|
} = dragState.value;
|
|
19295
19306
|
const finalLeft = parseInt(resizeProxy.style.left, 10);
|
|
19296
19307
|
const columnWidth = finalLeft - startColumnLeft;
|
|
19297
|
-
column.width = columnWidth;
|
|
19298
|
-
column.
|
|
19299
|
-
table.$emit('header-dragend', column.width, startLeft - startColumnLeft, column, event);
|
|
19308
|
+
column.width = column.minWidth = column.realWidth = columnWidth;
|
|
19309
|
+
table.emit('header-dragend', column.width, startLeft - startColumnLeft, column);
|
|
19300
19310
|
table.store.scheduleLayout();
|
|
19301
19311
|
document.body.style.cursor = '';
|
|
19302
19312
|
dragging.value = false;
|
|
19303
19313
|
draggingColumn.value = null;
|
|
19304
19314
|
dragState.value = {};
|
|
19305
|
-
table.resizeProxyVisible = false;
|
|
19315
|
+
table.resizeProxyVisible.value = false;
|
|
19306
19316
|
}
|
|
19307
19317
|
document.removeEventListener('mousemove', handleMouseMove);
|
|
19308
19318
|
document.removeEventListener('mouseup', handleMouseUp);
|
|
@@ -19323,7 +19333,7 @@ const TableHeader = /* @__PURE__ */ vue.defineComponent({
|
|
|
19323
19333
|
target = target.parentNode;
|
|
19324
19334
|
}
|
|
19325
19335
|
if (!column || !column.resizable) return;
|
|
19326
|
-
if (!dragging.value &&
|
|
19336
|
+
if (!dragging.value && allowDrag.value) {
|
|
19327
19337
|
const rect = target.getBoundingClientRect();
|
|
19328
19338
|
const bodyStyle = document.body.style;
|
|
19329
19339
|
if (rect.width > 12 && rect.right - event.pageX < 8) {
|
|
@@ -19630,7 +19640,11 @@ const props$d = {
|
|
|
19630
19640
|
default: () => ({})
|
|
19631
19641
|
},
|
|
19632
19642
|
// 用于延迟渲染,用于计算高度
|
|
19633
|
-
delay: Number
|
|
19643
|
+
delay: Number,
|
|
19644
|
+
resizable: {
|
|
19645
|
+
type: Boolean,
|
|
19646
|
+
default: void 0
|
|
19647
|
+
}
|
|
19634
19648
|
};
|
|
19635
19649
|
|
|
19636
19650
|
/** @jsxImportSource vue */
|
|
@@ -19639,7 +19653,7 @@ const COMPONENT_NAME$j = 'vc-table';
|
|
|
19639
19653
|
const Table = /* @__PURE__ */ vue.defineComponent({
|
|
19640
19654
|
name: COMPONENT_NAME$j,
|
|
19641
19655
|
props: props$d,
|
|
19642
|
-
emits: ['select', 'select-all', 'selection-change', 'cell-mouse-enter', 'cell-mouse-leave', 'cell-click', 'cell-dblclick', 'row-click', 'row-contextmenu', 'row-dblclick', 'header-click', 'header-contextmenu', 'current-change', 'header-dragend
|
|
19656
|
+
emits: ['select', 'select-all', 'selection-change', 'cell-mouse-enter', 'cell-mouse-leave', 'cell-click', 'cell-dblclick', 'row-click', 'row-contextmenu', 'row-dblclick', 'header-click', 'header-contextmenu', 'current-change', 'header-dragend', 'expand-change', 'sort-change', 'update:sort'],
|
|
19643
19657
|
setup(props, {
|
|
19644
19658
|
slots,
|
|
19645
19659
|
expose,
|
|
@@ -19660,7 +19674,7 @@ const Table = /* @__PURE__ */ vue.defineComponent({
|
|
|
19660
19674
|
width: null,
|
|
19661
19675
|
height: null
|
|
19662
19676
|
});
|
|
19663
|
-
|
|
19677
|
+
const tableWrapper = vue.ref(null);
|
|
19664
19678
|
// refs
|
|
19665
19679
|
const hiddenColumns = vue.ref(null);
|
|
19666
19680
|
const headerWrapper = vue.ref(null);
|
|
@@ -20018,6 +20032,7 @@ const Table = /* @__PURE__ */ vue.defineComponent({
|
|
|
20018
20032
|
toggleRowExpansion,
|
|
20019
20033
|
clearSelection,
|
|
20020
20034
|
scroller,
|
|
20035
|
+
tableWrapper,
|
|
20021
20036
|
headerWrapper,
|
|
20022
20037
|
appendWrapper,
|
|
20023
20038
|
footerWrapper,
|
|
@@ -20028,12 +20043,15 @@ const Table = /* @__PURE__ */ vue.defineComponent({
|
|
|
20028
20043
|
renderExpanded,
|
|
20029
20044
|
hiddenColumns,
|
|
20030
20045
|
props,
|
|
20031
|
-
emit
|
|
20046
|
+
emit,
|
|
20047
|
+
resizeProxy,
|
|
20048
|
+
resizeProxyVisible
|
|
20032
20049
|
};
|
|
20033
20050
|
expose(exposed);
|
|
20034
20051
|
vue.provide('vc-table', exposed);
|
|
20035
20052
|
return () => {
|
|
20036
20053
|
return vue.createVNode("div", {
|
|
20054
|
+
"ref": tableWrapper,
|
|
20037
20055
|
"class": [classes.value, tableId, 'vc-table'],
|
|
20038
20056
|
"onMouseleave": handleMouseLeave
|
|
20039
20057
|
}, [vue.createVNode("div", {
|
|
@@ -20045,6 +20063,7 @@ const Table = /* @__PURE__ */ vue.defineComponent({
|
|
|
20045
20063
|
}, [vue.createVNode(TableHeader, {
|
|
20046
20064
|
"ref": tableHeader,
|
|
20047
20065
|
"border": props.border,
|
|
20066
|
+
"resizable": props.resizable,
|
|
20048
20067
|
"sort": props.sort,
|
|
20049
20068
|
"style": bodyWidthStyle.value
|
|
20050
20069
|
}, null)]), states.columns.length > 0 && vue.createVNode(ScrollerWheel, {
|
|
@@ -20062,15 +20081,10 @@ const Table = /* @__PURE__ */ vue.defineComponent({
|
|
|
20062
20081
|
"style": [bodyWidthStyle.value],
|
|
20063
20082
|
"height-style": [bodyHeightStyle.value],
|
|
20064
20083
|
"onScroll": handleScollY
|
|
20065
|
-
}, null), props.data.length === 0 && vue.createVNode("div", {
|
|
20066
|
-
"
|
|
20067
|
-
"style": bodyWidthStyle.value
|
|
20068
|
-
|
|
20069
|
-
'is-absolute': !!props.height
|
|
20070
|
-
}, 'vc-table__empty-wrapper']
|
|
20071
|
-
}, [vue.createVNode("span", {
|
|
20072
|
-
"class": "vc-table__empty-text"
|
|
20073
|
-
}, [slots.empty ? slots.empty() : props.emptyText || '暂无数据'])]), slots.append && vue.createVNode("div", {
|
|
20084
|
+
}, null), props.data.length === 0 && !props.height && vue.createVNode("div", {
|
|
20085
|
+
"class": "vc-table__empty-placeholder",
|
|
20086
|
+
"style": [bodyWidthStyle.value]
|
|
20087
|
+
}, null), slots.append && vue.createVNode("div", {
|
|
20074
20088
|
"ref": appendWrapper,
|
|
20075
20089
|
"class": "vc-table__append-wrapper"
|
|
20076
20090
|
}, [slots.append()])]
|
|
@@ -20094,6 +20108,7 @@ const Table = /* @__PURE__ */ vue.defineComponent({
|
|
|
20094
20108
|
}, [vue.createVNode(TableHeader, {
|
|
20095
20109
|
"ref": leftFixedTableHeader,
|
|
20096
20110
|
"border": props.border,
|
|
20111
|
+
"resizable": props.resizable,
|
|
20097
20112
|
"sort": props.sort,
|
|
20098
20113
|
"style": bodyWidthStyle.value,
|
|
20099
20114
|
"fixed": "left"
|
|
@@ -20133,6 +20148,7 @@ const Table = /* @__PURE__ */ vue.defineComponent({
|
|
|
20133
20148
|
}, [vue.createVNode(TableHeader, {
|
|
20134
20149
|
"ref": rightFixedTableHeader,
|
|
20135
20150
|
"border": props.border,
|
|
20151
|
+
"resizable": props.resizable,
|
|
20136
20152
|
"sort": props.sort,
|
|
20137
20153
|
"style": bodyWidthStyle.value,
|
|
20138
20154
|
"fixed": "right"
|
|
@@ -20160,7 +20176,14 @@ const Table = /* @__PURE__ */ vue.defineComponent({
|
|
|
20160
20176
|
"get-summary": props.getSummary,
|
|
20161
20177
|
"style": bodyWidthStyle.value,
|
|
20162
20178
|
"fixed": "right"
|
|
20163
|
-
}, null)]), [[vue.vShow, props.data && props.data.length > 0]])]),
|
|
20179
|
+
}, null)]), [[vue.vShow, props.data && props.data.length > 0]])]), props.data.length === 0 && vue.createVNode("div", {
|
|
20180
|
+
"ref": emptyBlock,
|
|
20181
|
+
"class": [{
|
|
20182
|
+
'has-height': !!props.height
|
|
20183
|
+
}, 'vc-table__empty-wrapper']
|
|
20184
|
+
}, [slots.empty ? slots.empty() : vue.createVNode("span", {
|
|
20185
|
+
"class": "vc-table__empty-text"
|
|
20186
|
+
}, [props.emptyText || '暂无数据'])]), vue.withDirectives(vue.createVNode("div", {
|
|
20164
20187
|
"ref": resizeProxy,
|
|
20165
20188
|
"class": "vc-table__column-resize-proxy"
|
|
20166
20189
|
}, null), [[vue.vShow, resizeProxyVisible.value]])]);
|
package/dist/index.d.ts
CHANGED
|
@@ -8946,7 +8946,11 @@ type: ObjectConstructor;
|
|
|
8946
8946
|
default: () => {};
|
|
8947
8947
|
};
|
|
8948
8948
|
delay: NumberConstructor;
|
|
8949
|
-
|
|
8949
|
+
resizable: {
|
|
8950
|
+
type: BooleanConstructor;
|
|
8951
|
+
default: undefined;
|
|
8952
|
+
};
|
|
8953
|
+
}>, () => JSX_2.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("select" | "select-all" | "selection-change" | "expand-change" | "current-change" | "cell-mouse-enter" | "cell-mouse-leave" | "header-click" | "header-contextmenu" | "update:sort" | "sort-change" | "header-dragend" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick")[], "select" | "select-all" | "selection-change" | "expand-change" | "current-change" | "cell-mouse-enter" | "cell-mouse-leave" | "header-click" | "header-contextmenu" | "update:sort" | "sort-change" | "header-dragend" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick", PublicProps, Readonly<ExtractPropTypes< {
|
|
8950
8954
|
data: {
|
|
8951
8955
|
type: ArrayConstructor;
|
|
8952
8956
|
default: () => never[];
|
|
@@ -9018,6 +9022,10 @@ type: ObjectConstructor;
|
|
|
9018
9022
|
default: () => {};
|
|
9019
9023
|
};
|
|
9020
9024
|
delay: NumberConstructor;
|
|
9025
|
+
resizable: {
|
|
9026
|
+
type: BooleanConstructor;
|
|
9027
|
+
default: undefined;
|
|
9028
|
+
};
|
|
9021
9029
|
}>> & Readonly<{
|
|
9022
9030
|
onSelect?: ((...args: any[]) => any) | undefined;
|
|
9023
9031
|
"onSelect-all"?: ((...args: any[]) => any) | undefined;
|
|
@@ -9030,12 +9038,12 @@ onSelect?: ((...args: any[]) => any) | undefined;
|
|
|
9030
9038
|
"onHeader-contextmenu"?: ((...args: any[]) => any) | undefined;
|
|
9031
9039
|
"onUpdate:sort"?: ((...args: any[]) => any) | undefined;
|
|
9032
9040
|
"onSort-change"?: ((...args: any[]) => any) | undefined;
|
|
9041
|
+
"onHeader-dragend"?: ((...args: any[]) => any) | undefined;
|
|
9033
9042
|
"onCell-click"?: ((...args: any[]) => any) | undefined;
|
|
9034
9043
|
"onCell-dblclick"?: ((...args: any[]) => any) | undefined;
|
|
9035
9044
|
"onRow-click"?: ((...args: any[]) => any) | undefined;
|
|
9036
9045
|
"onRow-contextmenu"?: ((...args: any[]) => any) | undefined;
|
|
9037
9046
|
"onRow-dblclick"?: ((...args: any[]) => any) | undefined;
|
|
9038
|
-
"onHeader-dragend "?: ((...args: any[]) => any) | undefined;
|
|
9039
9047
|
}>, {
|
|
9040
9048
|
sort: Record<string, any>;
|
|
9041
9049
|
data: unknown[];
|
|
@@ -9049,6 +9057,7 @@ defaultExpandAll: boolean;
|
|
|
9049
9057
|
expandSelectable: boolean;
|
|
9050
9058
|
showHeader: boolean;
|
|
9051
9059
|
rows: number;
|
|
9060
|
+
resizable: boolean;
|
|
9052
9061
|
stripe: boolean;
|
|
9053
9062
|
divider: boolean;
|
|
9054
9063
|
showSummary: boolean;
|
|
@@ -9131,8 +9140,8 @@ tooltip: (StringConstructor | FunctionConstructor)[];
|
|
|
9131
9140
|
}>> & Readonly<{}>, {
|
|
9132
9141
|
type: string;
|
|
9133
9142
|
reserveSelection: boolean;
|
|
9134
|
-
sortable: boolean;
|
|
9135
9143
|
resizable: boolean;
|
|
9144
|
+
sortable: boolean;
|
|
9136
9145
|
filterMultiple: boolean;
|
|
9137
9146
|
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
|
|
9138
9147
|
|
|
@@ -13847,7 +13856,11 @@ type: ObjectConstructor;
|
|
|
13847
13856
|
default: () => {};
|
|
13848
13857
|
};
|
|
13849
13858
|
delay: NumberConstructor;
|
|
13850
|
-
|
|
13859
|
+
resizable: {
|
|
13860
|
+
type: BooleanConstructor;
|
|
13861
|
+
default: undefined;
|
|
13862
|
+
};
|
|
13863
|
+
}>, () => JSX_2.Element, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, ("select" | "select-all" | "selection-change" | "expand-change" | "current-change" | "cell-mouse-enter" | "cell-mouse-leave" | "header-click" | "header-contextmenu" | "update:sort" | "sort-change" | "header-dragend" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick")[], "select" | "select-all" | "selection-change" | "expand-change" | "current-change" | "cell-mouse-enter" | "cell-mouse-leave" | "header-click" | "header-contextmenu" | "update:sort" | "sort-change" | "header-dragend" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick", PublicProps, Readonly<ExtractPropTypes< {
|
|
13851
13864
|
data: {
|
|
13852
13865
|
type: ArrayConstructor;
|
|
13853
13866
|
default: () => never[];
|
|
@@ -13919,6 +13932,10 @@ type: ObjectConstructor;
|
|
|
13919
13932
|
default: () => {};
|
|
13920
13933
|
};
|
|
13921
13934
|
delay: NumberConstructor;
|
|
13935
|
+
resizable: {
|
|
13936
|
+
type: BooleanConstructor;
|
|
13937
|
+
default: undefined;
|
|
13938
|
+
};
|
|
13922
13939
|
}>> & Readonly<{
|
|
13923
13940
|
onSelect?: ((...args: any[]) => any) | undefined;
|
|
13924
13941
|
"onSelect-all"?: ((...args: any[]) => any) | undefined;
|
|
@@ -13931,12 +13948,12 @@ onSelect?: ((...args: any[]) => any) | undefined;
|
|
|
13931
13948
|
"onHeader-contextmenu"?: ((...args: any[]) => any) | undefined;
|
|
13932
13949
|
"onUpdate:sort"?: ((...args: any[]) => any) | undefined;
|
|
13933
13950
|
"onSort-change"?: ((...args: any[]) => any) | undefined;
|
|
13951
|
+
"onHeader-dragend"?: ((...args: any[]) => any) | undefined;
|
|
13934
13952
|
"onCell-click"?: ((...args: any[]) => any) | undefined;
|
|
13935
13953
|
"onCell-dblclick"?: ((...args: any[]) => any) | undefined;
|
|
13936
13954
|
"onRow-click"?: ((...args: any[]) => any) | undefined;
|
|
13937
13955
|
"onRow-contextmenu"?: ((...args: any[]) => any) | undefined;
|
|
13938
13956
|
"onRow-dblclick"?: ((...args: any[]) => any) | undefined;
|
|
13939
|
-
"onHeader-dragend "?: ((...args: any[]) => any) | undefined;
|
|
13940
13957
|
}>, {
|
|
13941
13958
|
sort: Record<string, any>;
|
|
13942
13959
|
data: unknown[];
|
|
@@ -13950,6 +13967,7 @@ defaultExpandAll: boolean;
|
|
|
13950
13967
|
expandSelectable: boolean;
|
|
13951
13968
|
showHeader: boolean;
|
|
13952
13969
|
rows: number;
|
|
13970
|
+
resizable: boolean;
|
|
13953
13971
|
stripe: boolean;
|
|
13954
13972
|
divider: boolean;
|
|
13955
13973
|
showSummary: boolean;
|
|
@@ -14032,8 +14050,8 @@ tooltip: (StringConstructor | FunctionConstructor)[];
|
|
|
14032
14050
|
}>> & Readonly<{}>, {
|
|
14033
14051
|
type: string;
|
|
14034
14052
|
reserveSelection: boolean;
|
|
14035
|
-
sortable: boolean;
|
|
14036
14053
|
resizable: boolean;
|
|
14054
|
+
sortable: boolean;
|
|
14037
14055
|
filterMultiple: boolean;
|
|
14038
14056
|
}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
|
|
14039
14057
|
|
package/dist/index.iife.js
CHANGED
|
@@ -15201,10 +15201,11 @@ var VcComponents = (function (exports, vue) {
|
|
|
15201
15201
|
"vc-scroller__wrapper"
|
|
15202
15202
|
];
|
|
15203
15203
|
});
|
|
15204
|
-
const refreshSize = () => {
|
|
15204
|
+
const refreshSize = async () => {
|
|
15205
15205
|
if (!wrapper.value) return;
|
|
15206
15206
|
wrapperW.value = wrapper.value.clientWidth;
|
|
15207
15207
|
wrapperH.value = wrapper.value.clientHeight;
|
|
15208
|
+
await vue.nextTick();
|
|
15208
15209
|
contentH.value = wrapper.value.scrollHeight;
|
|
15209
15210
|
contentW.value = wrapper.value.scrollWidth;
|
|
15210
15211
|
};
|
|
@@ -23466,11 +23467,10 @@ var VcComponents = (function (exports, vue) {
|
|
|
23466
23467
|
} = owner.exposed;
|
|
23467
23468
|
return !multiple.value ? true : current.value.slice(-1)[0] === props.value;
|
|
23468
23469
|
});
|
|
23469
|
-
const searchRegex = vue.computed(() => {
|
|
23470
|
-
const v = owner.exposed.searchValue.value.trim().replace(/\s+/g, ' ').split(/\s|,/);
|
|
23471
|
-
return new RegExp(`(${v.join('|')})`, 'i');
|
|
23472
|
-
});
|
|
23473
23470
|
const isActive = vue.computed(() => {
|
|
23471
|
+
const {
|
|
23472
|
+
searchRegex
|
|
23473
|
+
} = owner.exposed;
|
|
23474
23474
|
return !!(searchRegex.value.test(formatterLabel.value) || !props.filterable);
|
|
23475
23475
|
});
|
|
23476
23476
|
const customOptions = vue.computed(() => {
|
|
@@ -23696,6 +23696,10 @@ var VcComponents = (function (exports, vue) {
|
|
|
23696
23696
|
const v = currentValue.value.length - props.maxTags;
|
|
23697
23697
|
return v < 0 ? 0 : v;
|
|
23698
23698
|
});
|
|
23699
|
+
const searchRegex = vue.computed(() => {
|
|
23700
|
+
const v = searchValue.value.trim().replace(/\s+/g, ' ').split(/\s|,/);
|
|
23701
|
+
return new RegExp(escapeString(`(${v.join('|')})`), 'i');
|
|
23702
|
+
});
|
|
23699
23703
|
const optionMap = vue.ref({});
|
|
23700
23704
|
const options = vue.computed(() => {
|
|
23701
23705
|
return Object.values(optionMap.value);
|
|
@@ -23792,7 +23796,7 @@ var VcComponents = (function (exports, vue) {
|
|
|
23792
23796
|
add,
|
|
23793
23797
|
remove,
|
|
23794
23798
|
close,
|
|
23795
|
-
|
|
23799
|
+
searchRegex,
|
|
23796
23800
|
multiple,
|
|
23797
23801
|
isActive,
|
|
23798
23802
|
current: currentValue,
|
|
@@ -28181,6 +28185,10 @@ var VcComponents = (function (exports, vue) {
|
|
|
28181
28185
|
sort: {
|
|
28182
28186
|
type: Object,
|
|
28183
28187
|
default: () => ({})
|
|
28188
|
+
},
|
|
28189
|
+
resizable: {
|
|
28190
|
+
type: Boolean,
|
|
28191
|
+
default: void 0
|
|
28184
28192
|
}
|
|
28185
28193
|
},
|
|
28186
28194
|
setup(props) {
|
|
@@ -28189,6 +28197,9 @@ var VcComponents = (function (exports, vue) {
|
|
|
28189
28197
|
const draggingColumn = vue.ref(null);
|
|
28190
28198
|
const dragging = vue.ref(false);
|
|
28191
28199
|
const dragState = vue.ref({});
|
|
28200
|
+
const allowDrag = vue.computed(() => {
|
|
28201
|
+
return typeof props.resizable === 'boolean' ? props.resizable : props.border;
|
|
28202
|
+
});
|
|
28192
28203
|
const states = useStates({
|
|
28193
28204
|
columns: 'columns',
|
|
28194
28205
|
isAllSelected: 'isAllSelected',
|
|
@@ -28292,10 +28303,10 @@ var VcComponents = (function (exports, vue) {
|
|
|
28292
28303
|
if (IS_SERVER$1) return;
|
|
28293
28304
|
if (column.children && column.children.length > 0) return;
|
|
28294
28305
|
/* istanbul ignore if */
|
|
28295
|
-
if (draggingColumn.value &&
|
|
28306
|
+
if (draggingColumn.value && allowDrag.value) {
|
|
28296
28307
|
dragging.value = true;
|
|
28297
28308
|
table.resizeProxyVisible.value = true;
|
|
28298
|
-
const tableEl = table.
|
|
28309
|
+
const tableEl = table.tableWrapper.value;
|
|
28299
28310
|
const tableLeft = tableEl.getBoundingClientRect().left;
|
|
28300
28311
|
const columnEl = instance.vnode.el.querySelector(`.vc-table__th.${column.id}`);
|
|
28301
28312
|
const columnRect = columnEl.getBoundingClientRect();
|
|
@@ -28324,15 +28335,14 @@ var VcComponents = (function (exports, vue) {
|
|
|
28324
28335
|
} = dragState.value;
|
|
28325
28336
|
const finalLeft = parseInt(resizeProxy.style.left, 10);
|
|
28326
28337
|
const columnWidth = finalLeft - startColumnLeft;
|
|
28327
|
-
column.width = columnWidth;
|
|
28328
|
-
column.
|
|
28329
|
-
table.$emit('header-dragend', column.width, startLeft - startColumnLeft, column, event);
|
|
28338
|
+
column.width = column.minWidth = column.realWidth = columnWidth;
|
|
28339
|
+
table.emit('header-dragend', column.width, startLeft - startColumnLeft, column);
|
|
28330
28340
|
table.store.scheduleLayout();
|
|
28331
28341
|
document.body.style.cursor = '';
|
|
28332
28342
|
dragging.value = false;
|
|
28333
28343
|
draggingColumn.value = null;
|
|
28334
28344
|
dragState.value = {};
|
|
28335
|
-
table.resizeProxyVisible = false;
|
|
28345
|
+
table.resizeProxyVisible.value = false;
|
|
28336
28346
|
}
|
|
28337
28347
|
document.removeEventListener('mousemove', handleMouseMove);
|
|
28338
28348
|
document.removeEventListener('mouseup', handleMouseUp);
|
|
@@ -28353,7 +28363,7 @@ var VcComponents = (function (exports, vue) {
|
|
|
28353
28363
|
target = target.parentNode;
|
|
28354
28364
|
}
|
|
28355
28365
|
if (!column || !column.resizable) return;
|
|
28356
|
-
if (!dragging.value &&
|
|
28366
|
+
if (!dragging.value && allowDrag.value) {
|
|
28357
28367
|
const rect = target.getBoundingClientRect();
|
|
28358
28368
|
const bodyStyle = document.body.style;
|
|
28359
28369
|
if (rect.width > 12 && rect.right - event.pageX < 8) {
|
|
@@ -28660,7 +28670,11 @@ var VcComponents = (function (exports, vue) {
|
|
|
28660
28670
|
default: () => ({})
|
|
28661
28671
|
},
|
|
28662
28672
|
// 用于延迟渲染,用于计算高度
|
|
28663
|
-
delay: Number
|
|
28673
|
+
delay: Number,
|
|
28674
|
+
resizable: {
|
|
28675
|
+
type: Boolean,
|
|
28676
|
+
default: void 0
|
|
28677
|
+
}
|
|
28664
28678
|
};
|
|
28665
28679
|
|
|
28666
28680
|
/** @jsxImportSource vue */
|
|
@@ -28669,7 +28683,7 @@ var VcComponents = (function (exports, vue) {
|
|
|
28669
28683
|
const Table$1 = /* @__PURE__ */ vue.defineComponent({
|
|
28670
28684
|
name: COMPONENT_NAME$j,
|
|
28671
28685
|
props: props$d,
|
|
28672
|
-
emits: ['select', 'select-all', 'selection-change', 'cell-mouse-enter', 'cell-mouse-leave', 'cell-click', 'cell-dblclick', 'row-click', 'row-contextmenu', 'row-dblclick', 'header-click', 'header-contextmenu', 'current-change', 'header-dragend
|
|
28686
|
+
emits: ['select', 'select-all', 'selection-change', 'cell-mouse-enter', 'cell-mouse-leave', 'cell-click', 'cell-dblclick', 'row-click', 'row-contextmenu', 'row-dblclick', 'header-click', 'header-contextmenu', 'current-change', 'header-dragend', 'expand-change', 'sort-change', 'update:sort'],
|
|
28673
28687
|
setup(props, {
|
|
28674
28688
|
slots,
|
|
28675
28689
|
expose,
|
|
@@ -28690,7 +28704,7 @@ var VcComponents = (function (exports, vue) {
|
|
|
28690
28704
|
width: null,
|
|
28691
28705
|
height: null
|
|
28692
28706
|
});
|
|
28693
|
-
|
|
28707
|
+
const tableWrapper = vue.ref(null);
|
|
28694
28708
|
// refs
|
|
28695
28709
|
const hiddenColumns = vue.ref(null);
|
|
28696
28710
|
const headerWrapper = vue.ref(null);
|
|
@@ -29048,6 +29062,7 @@ var VcComponents = (function (exports, vue) {
|
|
|
29048
29062
|
toggleRowExpansion,
|
|
29049
29063
|
clearSelection,
|
|
29050
29064
|
scroller,
|
|
29065
|
+
tableWrapper,
|
|
29051
29066
|
headerWrapper,
|
|
29052
29067
|
appendWrapper,
|
|
29053
29068
|
footerWrapper,
|
|
@@ -29058,12 +29073,15 @@ var VcComponents = (function (exports, vue) {
|
|
|
29058
29073
|
renderExpanded,
|
|
29059
29074
|
hiddenColumns,
|
|
29060
29075
|
props,
|
|
29061
|
-
emit
|
|
29076
|
+
emit,
|
|
29077
|
+
resizeProxy,
|
|
29078
|
+
resizeProxyVisible
|
|
29062
29079
|
};
|
|
29063
29080
|
expose(exposed);
|
|
29064
29081
|
vue.provide('vc-table', exposed);
|
|
29065
29082
|
return () => {
|
|
29066
29083
|
return vue.createVNode("div", {
|
|
29084
|
+
"ref": tableWrapper,
|
|
29067
29085
|
"class": [classes.value, tableId, 'vc-table'],
|
|
29068
29086
|
"onMouseleave": handleMouseLeave
|
|
29069
29087
|
}, [vue.createVNode("div", {
|
|
@@ -29075,6 +29093,7 @@ var VcComponents = (function (exports, vue) {
|
|
|
29075
29093
|
}, [vue.createVNode(TableHeader, {
|
|
29076
29094
|
"ref": tableHeader,
|
|
29077
29095
|
"border": props.border,
|
|
29096
|
+
"resizable": props.resizable,
|
|
29078
29097
|
"sort": props.sort,
|
|
29079
29098
|
"style": bodyWidthStyle.value
|
|
29080
29099
|
}, null)]), states.columns.length > 0 && vue.createVNode(ScrollerWheel, {
|
|
@@ -29092,15 +29111,10 @@ var VcComponents = (function (exports, vue) {
|
|
|
29092
29111
|
"style": [bodyWidthStyle.value],
|
|
29093
29112
|
"height-style": [bodyHeightStyle.value],
|
|
29094
29113
|
"onScroll": handleScollY
|
|
29095
|
-
}, null), props.data.length === 0 && vue.createVNode("div", {
|
|
29096
|
-
"
|
|
29097
|
-
"style": bodyWidthStyle.value
|
|
29098
|
-
|
|
29099
|
-
'is-absolute': !!props.height
|
|
29100
|
-
}, 'vc-table__empty-wrapper']
|
|
29101
|
-
}, [vue.createVNode("span", {
|
|
29102
|
-
"class": "vc-table__empty-text"
|
|
29103
|
-
}, [slots.empty ? slots.empty() : props.emptyText || '暂无数据'])]), slots.append && vue.createVNode("div", {
|
|
29114
|
+
}, null), props.data.length === 0 && !props.height && vue.createVNode("div", {
|
|
29115
|
+
"class": "vc-table__empty-placeholder",
|
|
29116
|
+
"style": [bodyWidthStyle.value]
|
|
29117
|
+
}, null), slots.append && vue.createVNode("div", {
|
|
29104
29118
|
"ref": appendWrapper,
|
|
29105
29119
|
"class": "vc-table__append-wrapper"
|
|
29106
29120
|
}, [slots.append()])]
|
|
@@ -29124,6 +29138,7 @@ var VcComponents = (function (exports, vue) {
|
|
|
29124
29138
|
}, [vue.createVNode(TableHeader, {
|
|
29125
29139
|
"ref": leftFixedTableHeader,
|
|
29126
29140
|
"border": props.border,
|
|
29141
|
+
"resizable": props.resizable,
|
|
29127
29142
|
"sort": props.sort,
|
|
29128
29143
|
"style": bodyWidthStyle.value,
|
|
29129
29144
|
"fixed": "left"
|
|
@@ -29163,6 +29178,7 @@ var VcComponents = (function (exports, vue) {
|
|
|
29163
29178
|
}, [vue.createVNode(TableHeader, {
|
|
29164
29179
|
"ref": rightFixedTableHeader,
|
|
29165
29180
|
"border": props.border,
|
|
29181
|
+
"resizable": props.resizable,
|
|
29166
29182
|
"sort": props.sort,
|
|
29167
29183
|
"style": bodyWidthStyle.value,
|
|
29168
29184
|
"fixed": "right"
|
|
@@ -29190,7 +29206,14 @@ var VcComponents = (function (exports, vue) {
|
|
|
29190
29206
|
"get-summary": props.getSummary,
|
|
29191
29207
|
"style": bodyWidthStyle.value,
|
|
29192
29208
|
"fixed": "right"
|
|
29193
|
-
}, null)]), [[vue.vShow, props.data && props.data.length > 0]])]),
|
|
29209
|
+
}, null)]), [[vue.vShow, props.data && props.data.length > 0]])]), props.data.length === 0 && vue.createVNode("div", {
|
|
29210
|
+
"ref": emptyBlock,
|
|
29211
|
+
"class": [{
|
|
29212
|
+
'has-height': !!props.height
|
|
29213
|
+
}, 'vc-table__empty-wrapper']
|
|
29214
|
+
}, [slots.empty ? slots.empty() : vue.createVNode("span", {
|
|
29215
|
+
"class": "vc-table__empty-text"
|
|
29216
|
+
}, [props.emptyText || '暂无数据'])]), vue.withDirectives(vue.createVNode("div", {
|
|
29194
29217
|
"ref": resizeProxy,
|
|
29195
29218
|
"class": "vc-table__column-resize-proxy"
|
|
29196
29219
|
}, null), [[vue.vShow, resizeProxyVisible.value]])]);
|