@visactor/vtable 1.18.2-alpha.2 → 1.18.2

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 (65) hide show
  1. package/cjs/ListTable.d.ts +1 -3
  2. package/cjs/ListTable.js +4 -6
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/components/menu/dom/MenuHandler.js +1 -1
  5. package/cjs/components/menu/dom/MenuHandler.js.map +1 -1
  6. package/cjs/components/tooltip/TooltipHandler.js +1 -1
  7. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  8. package/cjs/core/BaseTable.d.ts +2 -1
  9. package/cjs/core/BaseTable.js +33 -22
  10. package/cjs/core/BaseTable.js.map +1 -1
  11. package/cjs/event/event.d.ts +2 -1
  12. package/cjs/event/event.js.map +1 -1
  13. package/cjs/event/listener/container-dom.js +3 -1
  14. package/cjs/event/listener/container-dom.js.map +1 -1
  15. package/cjs/event/listener/table-group.js +6 -2
  16. package/cjs/event/listener/table-group.js.map +1 -1
  17. package/cjs/event/listener/touch.js +17 -15
  18. package/cjs/event/listener/touch.js.map +1 -1
  19. package/cjs/index.d.ts +1 -1
  20. package/cjs/index.js +1 -1
  21. package/cjs/index.js.map +1 -1
  22. package/cjs/plugins/interface.d.ts +2 -1
  23. package/cjs/plugins/interface.js.map +1 -1
  24. package/cjs/plugins/plugin-manager.d.ts +3 -2
  25. package/cjs/plugins/plugin-manager.js +20 -13
  26. package/cjs/plugins/plugin-manager.js.map +1 -1
  27. package/cjs/ts-types/base-table.d.ts +2 -1
  28. package/cjs/ts-types/base-table.js.map +1 -1
  29. package/cjs/ts-types/table-engine.d.ts +1 -0
  30. package/cjs/ts-types/table-engine.js.map +1 -1
  31. package/cjs/vrender.js.map +1 -1
  32. package/dist/vtable.js +79 -36
  33. package/dist/vtable.min.js +1 -1
  34. package/es/ListTable.d.ts +1 -3
  35. package/es/ListTable.js +4 -6
  36. package/es/ListTable.js.map +1 -1
  37. package/es/components/menu/dom/MenuHandler.js +1 -1
  38. package/es/components/menu/dom/MenuHandler.js.map +1 -1
  39. package/es/components/tooltip/TooltipHandler.js +1 -1
  40. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  41. package/es/core/BaseTable.d.ts +2 -1
  42. package/es/core/BaseTable.js +33 -22
  43. package/es/core/BaseTable.js.map +1 -1
  44. package/es/event/event.d.ts +2 -1
  45. package/es/event/event.js.map +1 -1
  46. package/es/event/listener/container-dom.js +3 -1
  47. package/es/event/listener/container-dom.js.map +1 -1
  48. package/es/event/listener/table-group.js +6 -2
  49. package/es/event/listener/table-group.js.map +1 -1
  50. package/es/event/listener/touch.js +17 -15
  51. package/es/event/listener/touch.js.map +1 -1
  52. package/es/index.d.ts +1 -1
  53. package/es/index.js +1 -1
  54. package/es/index.js.map +1 -1
  55. package/es/plugins/interface.d.ts +2 -1
  56. package/es/plugins/interface.js.map +1 -1
  57. package/es/plugins/plugin-manager.d.ts +3 -2
  58. package/es/plugins/plugin-manager.js +20 -13
  59. package/es/plugins/plugin-manager.js.map +1 -1
  60. package/es/ts-types/base-table.d.ts +2 -1
  61. package/es/ts-types/base-table.js.map +1 -1
  62. package/es/ts-types/table-engine.d.ts +1 -0
  63. package/es/ts-types/table-engine.js.map +1 -1
  64. package/es/vrender.js.map +1 -1
  65. package/package.json +5 -5
package/dist/vtable.js CHANGED
@@ -55507,7 +55507,7 @@
55507
55507
  eventManager.touchEnd = false;
55508
55508
  eventManager.touchSetTimeout = setTimeout(() => {
55509
55509
  eventManager.isTouchdown = false;
55510
- eventManager.touchMove = true;
55510
+ eventManager.isLongTouch = true;
55511
55511
  if (!eventManager.touchEnd &&
55512
55512
  (eventManager.checkColumnResize(eventArgsSet, true) || eventManager.checkRowResize(eventArgsSet, true))) {
55513
55513
  stateManager.updateInteractionState(InteractionState.grabing);
@@ -55638,6 +55638,12 @@
55638
55638
  });
55639
55639
  }
55640
55640
  }
55641
+ setTimeout(() => {
55642
+ eventManager.isTouchdown = false;
55643
+ eventManager.isTouchMove = false;
55644
+ eventManager.isDraging = false;
55645
+ eventManager.touchMovePoints = [];
55646
+ }, 0);
55641
55647
  });
55642
55648
  table.scenegraph.tableGroup.addEventListener('rightdown', (e) => {
55643
55649
  const eventArgsSet = getCellEventArgsSet(e);
@@ -55684,7 +55690,7 @@
55684
55690
  return;
55685
55691
  }
55686
55692
  const eventArgsSet = getCellEventArgsSet(e);
55687
- if (!eventManager.touchMove &&
55693
+ if (!eventManager.isTouchMove &&
55688
55694
  e.button === 0 &&
55689
55695
  eventArgsSet.eventArgs &&
55690
55696
  table.hasListeners(TABLE_EVENT_TYPE.CLICK_CELL)) {
@@ -56672,6 +56678,9 @@
56672
56678
  return values;
56673
56679
  }
56674
56680
  const globalPointerdownCallback = (e) => {
56681
+ if (table.isReleased) {
56682
+ return;
56683
+ }
56675
56684
  table.eventManager.LastBodyPointerXY = { x: e.x, y: e.y };
56676
56685
  table.eventManager.isDown = true;
56677
56686
  const target = e.target;
@@ -56734,6 +56743,9 @@
56734
56743
  }
56735
56744
  };
56736
56745
  const globalPointerupCallback = (e) => {
56746
+ if (table.isReleased) {
56747
+ return;
56748
+ }
56737
56749
  const target = e.target;
56738
56750
  if (target !== table.canvas) {
56739
56751
  globalPointerupOutsideCallback(e);
@@ -56779,7 +56791,7 @@
56779
56791
  table.eventManager.isDraging = true;
56780
56792
  }
56781
56793
  }
56782
- const { x, y } = table._getMouseAbstractPoint(e, false);
56794
+ const { x, y } = table._getMouseAbstractPoint(e);
56783
56795
  if (stateManager.interactionState === InteractionState.grabing) {
56784
56796
  if (stateManager.isResizeCol()) {
56785
56797
  eventManager.dealColumnResize(x, y);
@@ -56922,18 +56934,19 @@
56922
56934
  eventManager.isTouchdown = true;
56923
56935
  const touchEvent = e.nativeEvent;
56924
56936
  eventManager.touchMovePoints.push({
56925
- x: touchEvent.changedTouches?.[0]?._canvasX ?? e.canvas?.x ?? e.page.x,
56926
- y: touchEvent.changedTouches?.[0]?._canvasY ?? e.canvas?.y ?? e.page.y,
56937
+ x: table.rotateDegree ? touchEvent.changedTouches?.[0]?._canvasX ?? e.canvas?.x : e.page.x,
56938
+ y: table.rotateDegree ? touchEvent.changedTouches?.[0]?._canvasY ?? e.canvas?.y : e.page.y,
56927
56939
  timestamp: Date.now()
56928
56940
  });
56929
56941
  });
56930
56942
  const globalTouchMoveCallback = (e) => {
56931
- if (eventManager.touchMove) {
56943
+ if (eventManager.isLongTouch) {
56932
56944
  e.preventDefault();
56933
56945
  }
56934
56946
  if (!eventManager.isTouchdown || !isTouchEvent$1(e)) {
56935
56947
  return;
56936
56948
  }
56949
+ eventManager.isTouchMove = true;
56937
56950
  if (eventManager.downIcon?.attribute?.funcType === IconFuncTypeEnum.dragReorder) {
56938
56951
  e.preventDefault();
56939
56952
  }
@@ -56942,8 +56955,8 @@
56942
56955
  eventManager.touchMovePoints.shift();
56943
56956
  }
56944
56957
  eventManager.touchMovePoints.push({
56945
- x: e.changedTouches[0]._canvasX ?? e.changedTouches[0].pageX,
56946
- y: e.changedTouches[0]._canvasY ?? e.changedTouches[0].pageY,
56958
+ x: table.rotateDegree ? e.changedTouches[0]._canvasX : e.changedTouches[0].pageX,
56959
+ y: table.rotateDegree ? e.changedTouches[0]._canvasY : e.changedTouches[0].pageY,
56947
56960
  timestamp: Date.now()
56948
56961
  });
56949
56962
  if (eventManager._enableTableScroll) {
@@ -56969,7 +56982,7 @@
56969
56982
  });
56970
56983
  const globalTouchEndCallback = (e) => {
56971
56984
  eventManager.touchEnd = true;
56972
- eventManager.touchMove = false;
56985
+ eventManager.isLongTouch = false;
56973
56986
  if (!eventManager.isTouchdown || !isTouchEvent$1(e)) {
56974
56987
  return;
56975
56988
  }
@@ -56982,8 +56995,8 @@
56982
56995
  eventManager.touchMovePoints.shift();
56983
56996
  }
56984
56997
  eventManager.touchMovePoints.push({
56985
- x: e.changedTouches[0]._canvasX ?? e.changedTouches[0].pageX,
56986
- y: e.changedTouches[0]._canvasY ?? e.changedTouches[0].pageY,
56998
+ x: table.rotateDegree ? e.changedTouches[0]._canvasX : e.changedTouches[0].pageX,
56999
+ y: table.rotateDegree ? e.changedTouches[0]._canvasY : e.changedTouches[0].pageY,
56987
57000
  timestamp: Date.now()
56988
57001
  });
56989
57002
  if (eventManager._enableTableScroll) {
@@ -56999,6 +57012,8 @@
56999
57012
  }
57000
57013
  }
57001
57014
  eventManager.isTouchdown = false;
57015
+ eventManager.isTouchMove = false;
57016
+ eventManager.isDraging = false;
57002
57017
  eventManager.touchMovePoints = [];
57003
57018
  };
57004
57019
  vglobal.addEventListener('touchend', globalTouchEndCallback);
@@ -57009,12 +57024,14 @@
57009
57024
  });
57010
57025
  const globalTouchCancelCallback = (e) => {
57011
57026
  eventManager.touchEnd = true;
57012
- eventManager.touchMove = false;
57027
+ eventManager.isLongTouch = false;
57013
57028
  if (!eventManager.isTouchdown) {
57014
57029
  return;
57015
57030
  }
57016
57031
  eventManager.isTouchdown = false;
57032
+ eventManager.isTouchMove = false;
57017
57033
  eventManager.touchMovePoints = [];
57034
+ eventManager.isDraging = false;
57018
57035
  };
57019
57036
  vglobal.addEventListener('touchcancel', globalTouchCancelCallback);
57020
57037
  eventManager.globalEventListeners.push({
@@ -57439,10 +57456,11 @@
57439
57456
  class EventManager {
57440
57457
  table;
57441
57458
  isTouchdown;
57459
+ isTouchMove;
57442
57460
  touchMovePoints;
57443
57461
  touchSetTimeout;
57444
57462
  touchEnd;
57445
- touchMove;
57463
+ isLongTouch;
57446
57464
  gesture;
57447
57465
  handleTextStickBindId;
57448
57466
  LastPointerXY;
@@ -62362,8 +62380,8 @@
62362
62380
  this.table = table;
62363
62381
  options.plugins?.map(plugin => {
62364
62382
  this.register(plugin);
62383
+ this._bindTableEventForPlugin(plugin);
62365
62384
  });
62366
- this.initPlugins(table);
62367
62385
  }
62368
62386
  register(plugin) {
62369
62387
  this.plugins.set(plugin.id, plugin);
@@ -62374,21 +62392,32 @@
62374
62392
  getPlugin(id) {
62375
62393
  return this.plugins.get(id);
62376
62394
  }
62377
- initPlugins(table) {
62378
- this.plugins.forEach(plugin => {
62379
- plugin.runTime?.forEach(runTime => {
62380
- table.on(runTime, (...args) => {
62381
- plugin.run?.(...args, runTime, table);
62382
- });
62395
+ getPluginByName(name) {
62396
+ return Array.from(this.plugins.values()).find(plugin => plugin.name === name);
62397
+ }
62398
+ _bindTableEventForPlugin(plugin) {
62399
+ plugin.runTime?.forEach(runTime => {
62400
+ this.table.on(runTime, (...args) => {
62401
+ plugin.run?.(...args, runTime, this.table);
62383
62402
  });
62384
62403
  });
62385
62404
  }
62386
- updatePlugins() {
62405
+ updatePlugins(plugins) {
62406
+ const removedPlugins = Array.from(this.plugins.values()).filter(plugin => !plugins?.some(p => p.id === plugin.id));
62407
+ removedPlugins.forEach(plugin => {
62408
+ this.release();
62409
+ this.plugins.delete(plugin.id);
62410
+ });
62387
62411
  this.plugins.forEach(plugin => {
62388
62412
  if (plugin.update) {
62389
- plugin.update(this.table);
62413
+ plugin.update();
62390
62414
  }
62391
62415
  });
62416
+ const addedPlugins = plugins?.filter(plugin => !this.plugins.has(plugin.id));
62417
+ addedPlugins?.forEach(plugin => {
62418
+ this.register(plugin);
62419
+ this._bindTableEventForPlugin(plugin);
62420
+ });
62392
62421
  }
62393
62422
  release() {
62394
62423
  this.plugins.forEach(plugin => {
@@ -62431,7 +62460,7 @@
62431
62460
  return TABLE_EVENT_TYPE;
62432
62461
  }
62433
62462
  options;
62434
- version = "1.18.2-alpha.2";
62463
+ version = "1.18.2";
62435
62464
  pagination;
62436
62465
  id = `VTable${Date.now()}`;
62437
62466
  headerStyleCache;
@@ -62446,6 +62475,7 @@
62446
62475
  reactCustomLayout;
62447
62476
  _hasAutoImageColumn;
62448
62477
  pluginManager;
62478
+ rotateDegree;
62449
62479
  constructor(container, options = {}) {
62450
62480
  super();
62451
62481
  if (Env.mode === 'node') {
@@ -63859,6 +63889,7 @@
63859
63889
  return super.fireListeners(type, event);
63860
63890
  }
63861
63891
  updateOption(options) {
63892
+ this.editorManager?.cancelEdit();
63862
63893
  this.options = options;
63863
63894
  this._hasAutoImageColumn = undefined;
63864
63895
  const { frozenColCount = 0, unfreezeAllOnExceedsMaxWidth, defaultRowHeight = 40, defaultHeaderRowHeight, defaultColWidth = 80, defaultHeaderColWidth = 80, keyboardOptions, eventOptions, rowSeriesNumber, columnResizeMode, rowResizeMode = 'none', resize, dragHeaderMode, dragOrder, showFrozenIcon, allowFrozenColCount, padding, hover, menu, select: click, pixelRatio, widthMode, heightMode, autoFillWidth, autoFillHeight, widthAdaptiveMode, heightAdaptiveMode, customRender, renderChartAsync, renderChartAsyncBatchCount, canvasWidth, canvasHeight, overscrollBehavior, limitMinWidth, limitMinHeight } = options;
@@ -64054,7 +64085,7 @@
64054
64085
  const height = Math.min(this.tableNoFrameHeight, this.getAllRowsHeight());
64055
64086
  return new Rect$1(this.tableX, this.tableY, width, height);
64056
64087
  }
64057
- _getMouseAbstractPoint(evt, isAddScroll = true) {
64088
+ _getMouseAbstractPoint(evt) {
64058
64089
  const table = this;
64059
64090
  let e;
64060
64091
  if (!evt) {
@@ -64077,17 +64108,27 @@
64077
64108
  inTable = false;
64078
64109
  }
64079
64110
  const currentWidth = rect.width;
64080
- const originWidth = this.canvas.offsetWidth || currentWidth;
64111
+ const originWidth = (this.rotateDegree === 90 ? this.canvas.offsetHeight : this.canvas.offsetWidth) || currentWidth;
64081
64112
  const widthRatio = currentWidth / originWidth;
64082
64113
  const currentHeight = rect.height;
64083
- const originHeight = this.canvas.offsetHeight || currentHeight;
64114
+ const originHeight = (this.rotateDegree === 90 ? this.canvas.offsetWidth : this.canvas.offsetHeight) || currentHeight;
64084
64115
  const heightRatio = currentHeight / originHeight;
64085
- const x = (clientX - rect.left) / widthRatio + (isAddScroll ? table.scrollLeft : 0) - (this.options.viewBox?.x1 ?? 0);
64086
- const y = (clientY - rect.top) / heightRatio + (isAddScroll ? table.scrollTop : 0) - (this.options.viewBox?.y1 ?? 0);
64116
+ const rotateTablePlugin = this.pluginManager.getPluginByName('Rotate Table');
64117
+ if (rotateTablePlugin && this.rotateDegree === 90) {
64118
+ const x = clientX / widthRatio - (this.options.viewBox?.x1 ?? 0);
64119
+ const y = clientY / heightRatio - (this.options.viewBox?.y1 ?? 0);
64120
+ const point = { x, y, inTable };
64121
+ const matrix = rotateTablePlugin.matrix;
64122
+ matrix.transformPoint(point, point);
64123
+ return point;
64124
+ }
64125
+ const x = (clientX - rect.left) / widthRatio - (this.options.viewBox?.x1 ?? 0);
64126
+ const y = (clientY - rect.top) / heightRatio - (this.options.viewBox?.y1 ?? 0);
64087
64127
  const point = { x, y, inTable };
64088
64128
  if (this.internalProps.modifiedViewBoxTransform && this.scenegraph.stage.window.getViewBoxTransform()) {
64089
64129
  const transform = this.scenegraph.stage.window.getViewBoxTransform();
64090
64130
  transform.transformPoint(point, point);
64131
+ return point;
64091
64132
  }
64092
64133
  return point;
64093
64134
  }
@@ -69774,9 +69815,7 @@
69774
69815
  }
69775
69816
  return ifCan;
69776
69817
  }
69777
- updateOption(options, updateConfig = {
69778
- keepData: false
69779
- }) {
69818
+ updateOption(options) {
69780
69819
  const internalProps = this.internalProps;
69781
69820
  super.updateOption(options);
69782
69821
  internalProps.frozenColDragHeaderMode =
@@ -69800,7 +69839,7 @@
69800
69839
  if (internalProps.releaseList) {
69801
69840
  for (let i = internalProps.releaseList.length - 1; i >= 0; i--) {
69802
69841
  const releaseObj = internalProps.releaseList[i];
69803
- if (updateConfig.keepData && releaseObj instanceof DataSource) {
69842
+ if (releaseObj instanceof DataSource) {
69804
69843
  releaseObj.updateColumns(this.internalProps.columns);
69805
69844
  }
69806
69845
  else {
@@ -69838,6 +69877,7 @@
69838
69877
  this.internalProps.emptyTip?.resetVisible();
69839
69878
  }
69840
69879
  }
69880
+ this.pluginManager.updatePlugins(options.plugins);
69841
69881
  return new Promise(resolve => {
69842
69882
  setTimeout(resolve, 0);
69843
69883
  });
@@ -69879,7 +69919,10 @@
69879
69919
  }
69880
69920
  const dataCount = table.internalProps.dataSource?.length ?? 0;
69881
69921
  layoutMap.recordsCount =
69882
- dataCount + (dataCount > 0 ? layoutMap.hasAggregationOnTopCount + layoutMap.hasAggregationOnBottomCount : 0);
69922
+ dataCount +
69923
+ (dataCount > 0 || !!this.options.showAggregationWhenEmpty
69924
+ ? layoutMap.hasAggregationOnTopCount + layoutMap.hasAggregationOnBottomCount
69925
+ : 0);
69883
69926
  if (table.transpose) {
69884
69927
  table.rowCount = layoutMap.rowCount ?? 0;
69885
69928
  table.colCount = layoutMap.colCount ?? 0;
@@ -73458,7 +73501,7 @@
73458
73501
  });
73459
73502
  table.on(TABLE_EVENT_TYPE.CONTEXTMENU_CELL, e => {
73460
73503
  if (table.internalProps.menu?.renderMode === 'html') {
73461
- const abstractPos = table._getMouseAbstractPoint(e.event, false);
73504
+ const abstractPos = table._getMouseAbstractPoint(e.event);
73462
73505
  let menu = null;
73463
73506
  if (abstractPos.inTable && typeof table.internalProps.menu?.contextMenuItems === 'function') {
73464
73507
  menu = table.internalProps.menu.contextMenuItems(table.getHeaderField(e.col, e.row), e.row, e.col, table);
@@ -74184,7 +74227,7 @@
74184
74227
  const position = this._attachInfo.tooltipOptions.referencePosition;
74185
74228
  const { event } = e;
74186
74229
  const { left, right, top, bottom } = position.rect;
74187
- const abstractPos = table._getMouseAbstractPoint(event, false);
74230
+ const abstractPos = table._getMouseAbstractPoint(event);
74188
74231
  if (!(abstractPos.inTable &&
74189
74232
  abstractPos.x >= left - 5 &&
74190
74233
  abstractPos.x <= right + 5 &&
@@ -85312,7 +85355,7 @@
85312
85355
  }
85313
85356
 
85314
85357
  registerForVrender();
85315
- const version = "1.18.2-alpha.2";
85358
+ const version = "1.18.2";
85316
85359
  function getIcons() {
85317
85360
  return get$2();
85318
85361
  }