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.
Files changed (39) hide show
  1. package/dist/all.esm.js +37 -72
  2. package/dist/style.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/table/module/custom/panel.js +2 -2
  5. package/es/table/module/filter/hook.js +1 -0
  6. package/es/table/src/table.js +10 -6
  7. package/es/ui/index.js +1 -1
  8. package/es/ui/src/dom.js +11 -8
  9. package/es/ui/src/log.js +1 -1
  10. package/lib/index.umd.js +23 -74
  11. package/lib/index.umd.min.js +1 -1
  12. package/lib/style.css +1 -1
  13. package/lib/table/module/custom/panel.js +2 -2
  14. package/lib/table/module/custom/panel.min.js +1 -1
  15. package/lib/table/module/filter/hook.js +1 -0
  16. package/lib/table/module/filter/hook.min.js +1 -1
  17. package/lib/table/src/table.js +10 -10
  18. package/lib/table/src/table.min.js +1 -1
  19. package/lib/ui/index.js +1 -1
  20. package/lib/ui/index.min.js +1 -1
  21. package/lib/ui/src/dom.js +11 -7
  22. package/lib/ui/src/dom.min.js +1 -1
  23. package/lib/ui/src/log.js +1 -1
  24. package/lib/ui/src/log.min.js +1 -1
  25. package/package.json +2 -2
  26. package/packages/table/module/custom/panel.ts +2 -2
  27. package/packages/table/module/filter/hook.ts +1 -0
  28. package/packages/table/src/table.ts +11 -6
  29. package/packages/ui/src/dom.ts +12 -8
  30. package/es/table/src/scrollbar.js +0 -54
  31. package/lib/table/src/scrollbar.js +0 -63
  32. package/lib/table/src/scrollbar.min.js +0 -1
  33. package/packages/table/src/scrollbar.ts +0 -57
  34. /package/es/{iconfont.1792035024476.ttf → iconfont.1792117711657.ttf} +0 -0
  35. /package/es/{iconfont.1792035024476.woff → iconfont.1792117711657.woff} +0 -0
  36. /package/es/{iconfont.1792035024476.woff2 → iconfont.1792117711657.woff2} +0 -0
  37. /package/lib/{iconfont.1792035024476.ttf → iconfont.1792117711657.ttf} +0 -0
  38. /package/lib/{iconfont.1792035024476.woff → iconfont.1792117711657.woff} +0 -0
  39. /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.2";
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 offsetLeft = parentWrapperRect.left;
819
- const offsetTop = parentWrapperRect.top;
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 -= offsetTop;
870
- left -= offsetLeft;
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.2"}`;
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.handlePivotTableAggregatePanelDragendEvent) {
6453
- $xeTable.handlePivotTableAggregatePanelDragendEvent(evnt);
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
- return Object.assign({}, getConfig$2().tooltip, getConfig$2().table.tooltipConfig, props.tooltipConfig);
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
  ])