vxe-table 4.23.0-beta.2 → 4.23.0-beta.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/dist/all.esm.js +37 -72
- package/dist/style.css +1 -1
- package/es/style.css +1 -1
- package/es/table/module/custom/panel.js +2 -2
- package/es/table/module/filter/hook.js +1 -0
- package/es/table/src/table.js +10 -6
- package/es/ui/index.js +1 -1
- package/es/ui/src/dom.js +11 -8
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +23 -74
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/custom/panel.js +2 -2
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/filter/hook.js +1 -0
- package/lib/table/module/filter/hook.min.js +1 -1
- package/lib/table/src/table.js +10 -10
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/dom.js +11 -7
- package/lib/ui/src/dom.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +2 -2
- package/packages/table/module/custom/panel.ts +2 -2
- package/packages/table/module/filter/hook.ts +1 -0
- package/packages/table/src/table.ts +11 -6
- package/packages/ui/src/dom.ts +12 -8
- package/es/table/src/scrollbar.js +0 -54
- package/lib/table/src/scrollbar.js +0 -63
- package/lib/table/src/scrollbar.min.js +0 -1
- package/packages/table/src/scrollbar.ts +0 -57
- /package/es/{iconfont.1792035024476.ttf → iconfont.1792117711657.ttf} +0 -0
- /package/es/{iconfont.1792035024476.woff → iconfont.1792117711657.woff} +0 -0
- /package/es/{iconfont.1792035024476.woff2 → iconfont.1792117711657.woff2} +0 -0
- /package/lib/{iconfont.1792035024476.ttf → iconfont.1792117711657.ttf} +0 -0
- /package/lib/{iconfont.1792035024476.woff → iconfont.1792117711657.woff} +0 -0
- /package/lib/{iconfont.1792035024476.woff2 → iconfont.1792117711657.woff2} +0 -0
package/dist/all.esm.js
CHANGED
|
@@ -56,7 +56,7 @@ function getDefaultConfig(val1, def1) {
|
|
|
56
56
|
return XEUtils.eqNull(val1) ? def1 : val1;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
const version = "4.23.0-beta.
|
|
59
|
+
const version = "4.23.0-beta.3";
|
|
60
60
|
VxeUI.version = version;
|
|
61
61
|
VxeUI.tableVersion = version;
|
|
62
62
|
VxeUI.setConfig({
|
|
@@ -790,7 +790,8 @@ function wheelScrollTopTo(diffNum, cb) {
|
|
|
790
790
|
* 通用定位计算
|
|
791
791
|
*/
|
|
792
792
|
function updatePanelPlacement(targetElem, panelElem, options) {
|
|
793
|
-
const { defaultTop, defaultLeft, placement, defaultPlacement, teleportTo, marginSize, isMinWidth } = Object.assign({
|
|
793
|
+
const { defaultTop, defaultLeft, placement, defaultPlacement, appendTo, teleportTo, marginSize, isMinWidth } = Object.assign({
|
|
794
|
+
appendTo: '',
|
|
794
795
|
teleportTo: false,
|
|
795
796
|
marginSize: 18,
|
|
796
797
|
isMinWidth: true
|
|
@@ -804,7 +805,7 @@ function updatePanelPlacement(targetElem, panelElem, options) {
|
|
|
804
805
|
const stys = {};
|
|
805
806
|
if (panelElem && targetElem) {
|
|
806
807
|
const bodyEl = document.body;
|
|
807
|
-
const parentWrapperEl = getPopupWrapperElement(panelElem);
|
|
808
|
+
const parentWrapperEl = getPopupWrapperElement(teleportTo ? getPopupAppendElement(appendTo) : panelElem);
|
|
808
809
|
if (parentWrapperEl) {
|
|
809
810
|
const targetWidth = targetElem.offsetWidth;
|
|
810
811
|
const targetHeight = targetElem.offsetHeight;
|
|
@@ -815,14 +816,16 @@ function updatePanelPlacement(targetElem, panelElem, options) {
|
|
|
815
816
|
const targetRect = targetElem.getBoundingClientRect();
|
|
816
817
|
const visibleHeight = bodyEl.clientHeight;
|
|
817
818
|
const visibleWidth = bodyEl.clientWidth;
|
|
818
|
-
const
|
|
819
|
-
const
|
|
819
|
+
const parentWrapperScrollLeft = parentWrapperEl.scrollLeft;
|
|
820
|
+
const parentWrapperScrollTop = parentWrapperEl.scrollTop;
|
|
821
|
+
const parentWrapperOffsetLeft = parentWrapperRect.left;
|
|
822
|
+
const parentWrapperOffsetTop = parentWrapperRect.top;
|
|
820
823
|
const targetLeft = targetRect.left;
|
|
821
824
|
const targetTop = targetRect.top;
|
|
822
825
|
minWidth = targetElem.offsetWidth;
|
|
823
826
|
if (teleportTo) {
|
|
824
|
-
left = defaultLeft || (targetLeft - (panelWidth - targetWidth) / 2);
|
|
825
|
-
top = defaultTop || (targetTop + targetHeight);
|
|
827
|
+
left = (defaultLeft || (targetLeft - (panelWidth - targetWidth) / 2)) - parentWrapperScrollLeft;
|
|
828
|
+
top = (defaultTop || (targetTop + targetHeight)) - parentWrapperScrollTop;
|
|
826
829
|
if (placement === 'top') {
|
|
827
830
|
panelPlacement = 'top';
|
|
828
831
|
top = targetTop - panelHeight;
|
|
@@ -866,8 +869,8 @@ function updatePanelPlacement(targetElem, panelElem, options) {
|
|
|
866
869
|
left = marginSize;
|
|
867
870
|
}
|
|
868
871
|
// 偏移
|
|
869
|
-
top -=
|
|
870
|
-
left -=
|
|
872
|
+
top -= parentWrapperOffsetTop;
|
|
873
|
+
left -= parentWrapperOffsetLeft;
|
|
871
874
|
}
|
|
872
875
|
else {
|
|
873
876
|
if (placement === 'top') {
|
|
@@ -936,9 +939,20 @@ function getPopupWrapperElement(panelElem) {
|
|
|
936
939
|
const parentEl = panelElem.parentElement;
|
|
937
940
|
return (parentEl === bodyEl ? document.documentElement : parentEl) || null;
|
|
938
941
|
}
|
|
942
|
+
function getPopupContainer(appendTo) {
|
|
943
|
+
const selectElem = appendTo && XEUtils.isFunction(appendTo) ? appendTo({}) : appendTo;
|
|
944
|
+
return selectElem || 'body';
|
|
945
|
+
}
|
|
946
|
+
function getPopupAppendElement(appendTo) {
|
|
947
|
+
const selectElem = getPopupContainer(appendTo);
|
|
948
|
+
if (XEUtils.isString(selectElem)) {
|
|
949
|
+
return document.querySelector(selectElem) || document.body;
|
|
950
|
+
}
|
|
951
|
+
return selectElem;
|
|
952
|
+
}
|
|
939
953
|
|
|
940
954
|
const { log } = VxeUI;
|
|
941
|
-
const tableVersion = `table v${"4.23.0-beta.
|
|
955
|
+
const tableVersion = `table v${"4.23.0-beta.3"}`;
|
|
942
956
|
function createComponentLog(name) {
|
|
943
957
|
const uiVersion = VxeUI.uiVersion ? `ui v${VxeUI.uiVersion}` : '';
|
|
944
958
|
const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
|
|
@@ -4299,61 +4313,6 @@ function clearColAnimate(elem, clss) {
|
|
|
4299
4313
|
}, 500);
|
|
4300
4314
|
}
|
|
4301
4315
|
|
|
4302
|
-
/**
|
|
4303
|
-
* 计算滚动条滑块的长度
|
|
4304
|
-
*/
|
|
4305
|
-
function getThumbSize(viewportSize, contentSize, trackSize) {
|
|
4306
|
-
if (contentSize <= viewportSize) {
|
|
4307
|
-
return 0;
|
|
4308
|
-
}
|
|
4309
|
-
const ratio = viewportSize / contentSize;
|
|
4310
|
-
const ideal = trackSize * ratio;
|
|
4311
|
-
return Math.max(20, Math.min(ideal, trackSize));
|
|
4312
|
-
}
|
|
4313
|
-
/**
|
|
4314
|
-
* 计算滚动条滑块的偏移位置
|
|
4315
|
-
*/
|
|
4316
|
-
function getThumbOffsetSize(offsetSize, viewportSize, contentSize, trackSize, thumbSize) {
|
|
4317
|
-
const maxScroll = contentSize - viewportSize;
|
|
4318
|
-
if (maxScroll <= 0) {
|
|
4319
|
-
return 0;
|
|
4320
|
-
}
|
|
4321
|
-
const maxThumbOffset = trackSize - thumbSize;
|
|
4322
|
-
if (maxThumbOffset <= 0) {
|
|
4323
|
-
return 0;
|
|
4324
|
-
}
|
|
4325
|
-
const clamped = Math.min(Math.max(offsetSize, 0), maxScroll);
|
|
4326
|
-
const ratio = clamped / maxScroll;
|
|
4327
|
-
return ratio * maxThumbOffset;
|
|
4328
|
-
}
|
|
4329
|
-
/**
|
|
4330
|
-
* 根据点击轨道的位置,计算滑块的偏移位置
|
|
4331
|
-
*/
|
|
4332
|
-
function getScrollFromClick(clickPosition, viewportSize, contentSize, trackSize, thumbSize) {
|
|
4333
|
-
const maxThumbOffset = trackSize - thumbSize;
|
|
4334
|
-
const maxScroll = contentSize - viewportSize;
|
|
4335
|
-
if (maxScroll <= 0 || maxThumbOffset <= 0) {
|
|
4336
|
-
return 0;
|
|
4337
|
-
}
|
|
4338
|
-
let thumbOffset = clickPosition - thumbSize / 2;
|
|
4339
|
-
thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
|
|
4340
|
-
const scrollOffset = (thumbOffset / maxThumbOffset) * maxScroll;
|
|
4341
|
-
return scrollOffset;
|
|
4342
|
-
}
|
|
4343
|
-
/**
|
|
4344
|
-
* 拖拽 thumb 时,根据鼠标位置计算滑块的偏移位置
|
|
4345
|
-
*/
|
|
4346
|
-
function getScrollFromDrag(pointerPosition, dragOffset, viewportSize, contentSize, trackSize, thumbSize) {
|
|
4347
|
-
const maxScroll = contentSize - viewportSize;
|
|
4348
|
-
const maxThumbOffset = trackSize - thumbSize;
|
|
4349
|
-
if (maxScroll <= 0 || maxThumbOffset <= 0) {
|
|
4350
|
-
return 0;
|
|
4351
|
-
}
|
|
4352
|
-
let thumbOffset = pointerPosition - dragOffset;
|
|
4353
|
-
thumbOffset = Math.min(Math.max(thumbOffset, 0), maxThumbOffset);
|
|
4354
|
-
return (thumbOffset / maxThumbOffset) * maxScroll;
|
|
4355
|
-
}
|
|
4356
|
-
|
|
4357
4316
|
// 跨表拖拽
|
|
4358
4317
|
const crossTableDragRowInfo = reactive({
|
|
4359
4318
|
row: null
|
|
@@ -6449,8 +6408,8 @@ var TableCustomPanelComponent = defineVxeComponent({
|
|
|
6449
6408
|
const { prevDragCol, prevDragGroupField, prevDragAggFnColid, prevDragPos, prevDragToChild } = customPanelInternalData;
|
|
6450
6409
|
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
|
|
6451
6410
|
if (prevDragGroupField || prevDragAggFnColid) {
|
|
6452
|
-
if ($xeTable.
|
|
6453
|
-
$xeTable.
|
|
6411
|
+
if ($xeTable.handlePivotTableAggPanelDragendEvent) {
|
|
6412
|
+
$xeTable.handlePivotTableAggPanelDragendEvent(evnt);
|
|
6454
6413
|
}
|
|
6455
6414
|
}
|
|
6456
6415
|
else if (prevDragCol && dragCol) {
|
|
@@ -9044,6 +9003,7 @@ hooks$7.add('tableFilterModule', {
|
|
|
9044
9003
|
if (transfer) {
|
|
9045
9004
|
const ppObj = updatePanelPlacement(currEl, filterWrapperElem, {
|
|
9046
9005
|
defaultPlacement: 'bottom',
|
|
9006
|
+
appendTo: '',
|
|
9047
9007
|
isMinWidth: false,
|
|
9048
9008
|
teleportTo: transfer
|
|
9049
9009
|
});
|
|
@@ -16043,7 +16003,8 @@ renderer$2.mixin({
|
|
|
16043
16003
|
});
|
|
16044
16004
|
|
|
16045
16005
|
const { warnLog: warnLog$2, errLog: errLog$2 } = createComponentLog('table');
|
|
16046
|
-
const { getConfig: getConfig$2, getIcon: getIcon$1, getI18n: getI18n$2, renderer: renderer$1, formats, createEvent: createEvent$2, globalResize, interceptor, hooks: hooks$1, domUtils, globalEvents: globalEvents$1, GLOBAL_EVENT_KEYS: GLOBAL_EVENT_KEYS$1, useFns: useFns$2, renderEmptyElement: renderEmptyElement$1 } = VxeUI;
|
|
16006
|
+
const { getConfig: getConfig$2, getIcon: getIcon$1, getI18n: getI18n$2, renderer: renderer$1, formats, scrollbarUtils, createEvent: createEvent$2, globalResize, interceptor, hooks: hooks$1, domUtils, globalEvents: globalEvents$1, GLOBAL_EVENT_KEYS: GLOBAL_EVENT_KEYS$1, useFns: useFns$2, renderEmptyElement: renderEmptyElement$1 } = VxeUI;
|
|
16007
|
+
const { getThumbOffsetSize, getThumbSize, getScrollFromClick, getScrollFromDrag } = scrollbarUtils || {};
|
|
16047
16008
|
const supportMaxRow = 5e6;
|
|
16048
16009
|
const customStorageKey = 'VXE_CUSTOM_STORE';
|
|
16049
16010
|
const maxYHeight = 5e6;
|
|
@@ -16363,7 +16324,8 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
16363
16324
|
return Object.assign({}, getConfig$2().table.checkboxConfig, props.checkboxConfig);
|
|
16364
16325
|
});
|
|
16365
16326
|
const computeTooltipOpts = computed(() => {
|
|
16366
|
-
|
|
16327
|
+
const { useScrollbar } = props;
|
|
16328
|
+
return Object.assign({ useScrollbar }, getConfig$2().tooltip, getConfig$2().table.tooltipConfig, props.tooltipConfig);
|
|
16367
16329
|
});
|
|
16368
16330
|
const computeHeaderTooltipOpts = computed(() => {
|
|
16369
16331
|
const tooltipOpts = computeTooltipOpts.value;
|
|
@@ -30453,7 +30415,8 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
30453
30415
|
key: 'ctp',
|
|
30454
30416
|
ref: refCommTooltip,
|
|
30455
30417
|
isArrow: false,
|
|
30456
|
-
enterable: false
|
|
30418
|
+
enterable: false,
|
|
30419
|
+
useScrollbar
|
|
30457
30420
|
}),
|
|
30458
30421
|
/**
|
|
30459
30422
|
* 工具提示
|
|
@@ -30476,7 +30439,8 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
30476
30439
|
maxHeight: tableTipConfig.maxHeight,
|
|
30477
30440
|
placement: tableTipConfig.placement,
|
|
30478
30441
|
defaultPlacement: tableTipConfig.defaultPlacement,
|
|
30479
|
-
popupClassName: tableTipConfig.popupClassName
|
|
30442
|
+
popupClassName: tableTipConfig.popupClassName,
|
|
30443
|
+
useScrollbar: tableTipConfig.useScrollbar
|
|
30480
30444
|
}, currTooltipSlot
|
|
30481
30445
|
? {
|
|
30482
30446
|
content: () => {
|
|
@@ -30515,7 +30479,8 @@ var VxeTableComponent = defineVxeComponent({
|
|
|
30515
30479
|
theme: validTipConfig.theme,
|
|
30516
30480
|
enterable: validTipConfig.enterable,
|
|
30517
30481
|
enterDelay: validTipConfig.enterDelay,
|
|
30518
|
-
leaveDelay: validTipConfig.leaveDelay
|
|
30482
|
+
leaveDelay: validTipConfig.leaveDelay,
|
|
30483
|
+
useScrollbar
|
|
30519
30484
|
})
|
|
30520
30485
|
: renderEmptyElement$1($xeTable)
|
|
30521
30486
|
])
|