@visactor/vtable 1.11.1-alpha.0 → 1.11.1

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 (93) hide show
  1. package/cjs/components/tooltip/TooltipHandler.js +1 -1
  2. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  3. package/cjs/core/BaseTable.js +1 -1
  4. package/cjs/core/BaseTable.js.map +1 -1
  5. package/cjs/edit/edit-manager.d.ts +1 -0
  6. package/cjs/edit/edit-manager.js +6 -4
  7. package/cjs/edit/edit-manager.js.map +1 -1
  8. package/cjs/event/helper.d.ts +2 -0
  9. package/cjs/event/helper.js +35 -0
  10. package/cjs/event/helper.js.map +1 -0
  11. package/cjs/event/listener/container-dom.js +10 -28
  12. package/cjs/event/listener/container-dom.js.map +1 -1
  13. package/cjs/event/listener/table-group.js +3 -23
  14. package/cjs/event/listener/table-group.js.map +1 -1
  15. package/cjs/header-helper/style.js +1 -2
  16. package/cjs/index.d.ts +1 -1
  17. package/cjs/index.js +1 -1
  18. package/cjs/index.js.map +1 -1
  19. package/cjs/layout/index.js +2 -1
  20. package/cjs/plugins/carousel-animation.js +1 -1
  21. package/cjs/plugins/custom-cell-style.js +1 -1
  22. package/cjs/plugins/custom-cell-style.js.map +1 -1
  23. package/cjs/plugins/header-highlight.js +2 -0
  24. package/cjs/plugins/header-highlight.js.map +1 -1
  25. package/cjs/scenegraph/component/cell-content.js +3 -1
  26. package/cjs/scenegraph/component/cell-content.js.map +1 -1
  27. package/cjs/scenegraph/group-creater/cell-helper.js +10 -7
  28. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  29. package/cjs/scenegraph/scenegraph.d.ts +7 -1
  30. package/cjs/scenegraph/scenegraph.js +11 -4
  31. package/cjs/scenegraph/scenegraph.js.map +1 -1
  32. package/cjs/scenegraph/select/update-select-border.js +3 -1
  33. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  34. package/cjs/scenegraph/select/update-select-style.d.ts +3 -0
  35. package/cjs/scenegraph/select/update-select-style.js +13 -0
  36. package/cjs/scenegraph/select/update-select-style.js.map +1 -0
  37. package/cjs/state/cell-move/index.js +3 -3
  38. package/cjs/state/cell-move/index.js.map +1 -1
  39. package/cjs/state/select/custom-select.d.ts +7 -0
  40. package/cjs/state/select/custom-select.js +36 -0
  41. package/cjs/state/select/custom-select.js.map +1 -0
  42. package/cjs/state/state.d.ts +14 -0
  43. package/cjs/state/state.js +4 -1
  44. package/cjs/state/state.js.map +1 -1
  45. package/cjs/vrender.js.map +1 -1
  46. package/dist/vtable.js +124 -64
  47. package/dist/vtable.min.js +2 -2
  48. package/es/components/tooltip/TooltipHandler.js +1 -1
  49. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  50. package/es/core/BaseTable.js +1 -1
  51. package/es/core/BaseTable.js.map +1 -1
  52. package/es/edit/edit-manager.d.ts +1 -0
  53. package/es/edit/edit-manager.js +6 -4
  54. package/es/edit/edit-manager.js.map +1 -1
  55. package/es/event/helper.d.ts +2 -0
  56. package/es/event/helper.js +27 -0
  57. package/es/event/helper.js.map +1 -0
  58. package/es/event/listener/container-dom.js +10 -25
  59. package/es/event/listener/container-dom.js.map +1 -1
  60. package/es/event/listener/table-group.js +4 -22
  61. package/es/event/listener/table-group.js.map +1 -1
  62. package/es/header-helper/style.js +1 -2
  63. package/es/index.d.ts +1 -1
  64. package/es/index.js +1 -1
  65. package/es/index.js.map +1 -1
  66. package/es/layout/index.js +2 -1
  67. package/es/plugins/carousel-animation.js +1 -1
  68. package/es/plugins/custom-cell-style.js +1 -1
  69. package/es/plugins/custom-cell-style.js.map +1 -1
  70. package/es/plugins/header-highlight.js +2 -0
  71. package/es/plugins/header-highlight.js.map +1 -1
  72. package/es/scenegraph/component/cell-content.js +3 -1
  73. package/es/scenegraph/component/cell-content.js.map +1 -1
  74. package/es/scenegraph/group-creater/cell-helper.js +9 -6
  75. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  76. package/es/scenegraph/scenegraph.d.ts +7 -1
  77. package/es/scenegraph/scenegraph.js +12 -3
  78. package/es/scenegraph/scenegraph.js.map +1 -1
  79. package/es/scenegraph/select/update-select-border.js +3 -1
  80. package/es/scenegraph/select/update-select-border.js.map +1 -1
  81. package/es/scenegraph/select/update-select-style.d.ts +3 -0
  82. package/es/scenegraph/select/update-select-style.js +7 -0
  83. package/es/scenegraph/select/update-select-style.js.map +1 -0
  84. package/es/state/cell-move/index.js +3 -3
  85. package/es/state/cell-move/index.js.map +1 -1
  86. package/es/state/select/custom-select.d.ts +7 -0
  87. package/es/state/select/custom-select.js +30 -0
  88. package/es/state/select/custom-select.js.map +1 -0
  89. package/es/state/state.d.ts +14 -0
  90. package/es/state/state.js +5 -0
  91. package/es/state/state.js.map +1 -1
  92. package/es/vrender.js.map +1 -1
  93. package/package.json +5 -5
package/dist/vtable.js CHANGED
@@ -34867,6 +34867,10 @@
34867
34867
  updateHeight(height) {
34868
34868
  this._cellHeight = height;
34869
34869
  this._cellWidth = this._originCellWidth;
34870
+ const textMark = this.getChildByName('text', true);
34871
+ if (textMark) {
34872
+ textMark.setAttribute('heightLimit', height);
34873
+ }
34870
34874
  this.layout();
34871
34875
  }
34872
34876
  }
@@ -36226,6 +36230,7 @@
36226
36230
  strokeArrayColor: cellTheme?.group?.strokeArrayColor ?? undefined,
36227
36231
  cursor: cellTheme?.group?.cursor ?? undefined,
36228
36232
  cornerRadius: cellTheme?.group?.cornerRadius ?? 0,
36233
+ lineDash: cellTheme?.group?.lineDash ?? undefined,
36229
36234
  y: table.scenegraph.getCellGroupY(row)
36230
36235
  });
36231
36236
  oldCellGroup.forEachChildren((child) => {
@@ -36434,7 +36439,15 @@
36434
36439
  function resizeCellGroup(cellGroup, rangeWidth, rangeHeight, range, table) {
36435
36440
  const { col, row } = cellGroup;
36436
36441
  const dx = -table.getColsWidth(range.start.col, col - 1);
36437
- const dy = -table.getRowsHeight(range.start.row, row - 1);
36442
+ let dy = 0;
36443
+ if (table.options.customConfig?._disableColumnAndRowSizeRound) {
36444
+ for (let i = range.start.row; i <= row - 1; i++) {
36445
+ dy -= table.getRowHeight(i);
36446
+ }
36447
+ }
36448
+ else {
36449
+ dy = -table.getRowsHeight(range.start.row, row - 1);
36450
+ }
36438
36451
  cellGroup.forEachChildren((child) => {
36439
36452
  if (typeof child._dx === 'number') {
36440
36453
  child.skipMergeUpdate = true;
@@ -43889,6 +43902,9 @@
43889
43902
  }
43890
43903
 
43891
43904
  function updateAllSelectComponent(scene) {
43905
+ scene.customSelectedRangeComponents.forEach((selectComp, key) => {
43906
+ updateComponent(selectComp, key, scene);
43907
+ });
43892
43908
  scene.selectingRangeComponents.forEach((selectComp, key) => {
43893
43909
  updateComponent(selectComp, key, scene);
43894
43910
  });
@@ -46454,6 +46470,14 @@
46454
46470
  }
46455
46471
  }
46456
46472
 
46473
+ function temporarilyUpdateSelectRectStyle(rectAttribute, scene) {
46474
+ const { selectedRangeComponents } = scene;
46475
+ selectedRangeComponents.forEach((selectComp, key) => {
46476
+ selectComp.rect.setAttributes(rectAttribute);
46477
+ });
46478
+ scene.updateNextFrame();
46479
+ }
46480
+
46457
46481
  registerForVrender();
46458
46482
  container.load(splitModule);
46459
46483
  container.load(textMeasureModule);
@@ -46472,6 +46496,7 @@
46472
46496
  componentGroup;
46473
46497
  selectedRangeComponents;
46474
46498
  selectingRangeComponents;
46499
+ customSelectedRangeComponents;
46475
46500
  lastSelectId;
46476
46501
  component;
46477
46502
  stage;
@@ -46668,6 +46693,7 @@
46668
46693
  this.component.addToGroup(this.componentGroup);
46669
46694
  this.selectedRangeComponents = new Map();
46670
46695
  this.selectingRangeComponents = new Map();
46696
+ this.customSelectedRangeComponents = new Map();
46671
46697
  }
46672
46698
  updateComponent() {
46673
46699
  this.component.updateStyle();
@@ -46806,7 +46832,8 @@
46806
46832
  this.stage.renderNextFrame();
46807
46833
  }
46808
46834
  resetAllSelectComponent() {
46809
- if (this.table.stateManager.select?.ranges?.length > 0) {
46835
+ if (this.table.stateManager.select?.ranges?.length > 0 ||
46836
+ this.table.stateManager.select?.customSelectRanges?.length > 0) {
46810
46837
  updateAllSelectComponent(this);
46811
46838
  }
46812
46839
  }
@@ -47863,6 +47890,12 @@
47863
47890
  dealWithIcon(loadingIcon, iconGraphic, col, row);
47864
47891
  }
47865
47892
  }
47893
+ temporarilyUpdateSelectRectStyle(rectAttribute) {
47894
+ temporarilyUpdateSelectRectStyle(rectAttribute, this);
47895
+ }
47896
+ resetSelectRectStyle() {
47897
+ this.recreateAllSelectRangeComponents();
47898
+ }
47866
47899
  }
47867
47900
 
47868
47901
  function checkCellInSelect(col, row, cellRanges) {
@@ -48893,8 +48926,8 @@
48893
48926
  return false;
48894
48927
  }
48895
48928
  }
48929
+ state.columnMove.moving = false;
48896
48930
  setTimeout(() => {
48897
- state.columnMove.moving = false;
48898
48931
  delete state.columnMove.colSource;
48899
48932
  delete state.columnMove.rowSource;
48900
48933
  delete state.columnMove.colTarget;
@@ -49637,6 +49670,35 @@
49637
49670
  }
49638
49671
  }
49639
49672
 
49673
+ function deletaCustomSelectRanges(state) {
49674
+ const { customSelectedRangeComponents } = state.table.scenegraph;
49675
+ customSelectedRangeComponents.forEach((selectComp, key) => {
49676
+ selectComp.rect.delete();
49677
+ });
49678
+ customSelectedRangeComponents.clear();
49679
+ state.select.customSelectRanges = [];
49680
+ }
49681
+ function addCustomSelectRanges(customSelectRanges, state) {
49682
+ const { customSelectedRangeComponents } = state.table.scenegraph;
49683
+ customSelectRanges.forEach((customRange) => {
49684
+ const { range, style } = customRange;
49685
+ const rect = createRect({
49686
+ fill: style.cellBgColor ?? false,
49687
+ stroke: style.cellBorderColor ?? false,
49688
+ lineWidth: style.cellBorderLineWidth ?? 0,
49689
+ lineDash: style.cellBorderLineDash ?? [],
49690
+ pickable: false
49691
+ });
49692
+ customSelectedRangeComponents.set(`${range.start.col}-${range.start.row}-${range.end.col}-${range.end.row}`, {
49693
+ rect,
49694
+ role: 'body'
49695
+ });
49696
+ });
49697
+ state.select.customSelectRanges = customSelectRanges;
49698
+ updateAllSelectComponent(state.table.scenegraph);
49699
+ state.table.scenegraph.updateNextFrame();
49700
+ }
49701
+
49640
49702
  class StateManager {
49641
49703
  table;
49642
49704
  interactionState;
@@ -50703,6 +50765,10 @@
50703
50765
  changeRadioOrder(sourceIndex, targetIndex, this);
50704
50766
  }
50705
50767
  }
50768
+ setCustomSelectRanges(customSelectRanges) {
50769
+ deletaCustomSelectRanges(this);
50770
+ addCustomSelectRanges(customSelectRanges, this);
50771
+ }
50706
50772
  }
50707
50773
 
50708
50774
  function bindMediaClick(table) {
@@ -51021,6 +51087,37 @@
51021
51087
  }
51022
51088
  }
51023
51089
 
51090
+ function fireMoveColEventListeners(table, endMoveColSuccess, e) {
51091
+ if (endMoveColSuccess &&
51092
+ table.stateManager.columnMove?.colSource !== -1 &&
51093
+ table.stateManager.columnMove?.rowSource !== -1 &&
51094
+ table.stateManager.columnMove?.colTarget !== -1 &&
51095
+ table.stateManager.columnMove?.rowTarget !== -1) {
51096
+ if (table.hasListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION)) {
51097
+ table.fireListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION, {
51098
+ target: { col: table.stateManager.columnMove.colTarget, row: table.stateManager.columnMove.rowTarget },
51099
+ source: {
51100
+ col: table.stateManager.columnMove.colSource,
51101
+ row: table.stateManager.columnMove.rowSource
51102
+ },
51103
+ event: e
51104
+ });
51105
+ }
51106
+ }
51107
+ else if (!endMoveColSuccess) {
51108
+ if (table.hasListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION_FAIL)) {
51109
+ table.fireListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION_FAIL, {
51110
+ target: { col: table.stateManager.columnMove.colTarget, row: table.stateManager.columnMove.rowTarget },
51111
+ source: {
51112
+ col: table.stateManager.columnMove.colSource,
51113
+ row: table.stateManager.columnMove.rowSource
51114
+ },
51115
+ event: e
51116
+ });
51117
+ }
51118
+ }
51119
+ }
51120
+
51024
51121
  function bindTableGroupListener(eventManager) {
51025
51122
  const table = eventManager.table;
51026
51123
  const stateManager = table.stateManager;
@@ -51374,32 +51471,8 @@
51374
51471
  endResizeRow(table);
51375
51472
  }
51376
51473
  else if (stateManager.isMoveCol()) {
51377
- const eventArgsSet = getCellEventArgsSet(e);
51378
51474
  const endMoveColSuccess = table.stateManager.endMoveCol();
51379
- if (endMoveColSuccess &&
51380
- eventArgsSet.eventArgs &&
51381
- table.hasListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION)) {
51382
- table.fireListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION, {
51383
- target: { col: eventArgsSet.eventArgs.col, row: eventArgsSet.eventArgs.row },
51384
- source: {
51385
- col: table.stateManager.columnMove.colSource,
51386
- row: table.stateManager.columnMove.rowSource
51387
- },
51388
- event: e.nativeEvent
51389
- });
51390
- }
51391
- else if (!endMoveColSuccess) {
51392
- if (table.hasListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION_FAIL)) {
51393
- table.fireListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION_FAIL, {
51394
- target: { col: table.stateManager.columnMove.colTarget, row: table.stateManager.columnMove.rowTarget },
51395
- source: {
51396
- col: table.stateManager.columnMove.colSource,
51397
- row: table.stateManager.columnMove.rowSource
51398
- },
51399
- event: e
51400
- });
51401
- }
51402
- }
51475
+ fireMoveColEventListeners(table, endMoveColSuccess, e.nativeEvent);
51403
51476
  }
51404
51477
  else if (stateManager.isSelecting()) {
51405
51478
  table.stateManager.endSelectCells();
@@ -52449,34 +52522,7 @@
52449
52522
  }
52450
52523
  else if (stateManager.isMoveCol()) {
52451
52524
  const endMoveColSuccess = table.stateManager.endMoveCol();
52452
- if (endMoveColSuccess &&
52453
- table.stateManager.columnMove?.colSource !== -1 &&
52454
- table.stateManager.columnMove?.rowSource !== -1 &&
52455
- table.stateManager.columnMove?.colTarget !== -1 &&
52456
- table.stateManager.columnMove?.rowTarget !== -1) {
52457
- if (table.hasListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION)) {
52458
- table.fireListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION, {
52459
- target: { col: table.stateManager.columnMove.colTarget, row: table.stateManager.columnMove.rowTarget },
52460
- source: {
52461
- col: table.stateManager.columnMove.colSource,
52462
- row: table.stateManager.columnMove.rowSource
52463
- },
52464
- event: e
52465
- });
52466
- }
52467
- }
52468
- else if (!endMoveColSuccess) {
52469
- if (table.hasListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION_FAIL)) {
52470
- table.fireListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION_FAIL, {
52471
- target: { col: table.stateManager.columnMove.colTarget, row: table.stateManager.columnMove.rowTarget },
52472
- source: {
52473
- col: table.stateManager.columnMove.colSource,
52474
- row: table.stateManager.columnMove.rowSource
52475
- },
52476
- event: e
52477
- });
52478
- }
52479
- }
52525
+ fireMoveColEventListeners(table, endMoveColSuccess, e);
52480
52526
  }
52481
52527
  else if (stateManager.isSelecting()) {
52482
52528
  if (table.stateManager.select?.ranges?.length) {
@@ -52513,6 +52559,10 @@
52513
52559
  else if (stateManager.interactionState === 'grabing' && stateManager.isResizeRow()) {
52514
52560
  endResizeRow(table);
52515
52561
  }
52562
+ else if (stateManager.isMoveCol()) {
52563
+ const endMoveColSuccess = table.stateManager.endMoveCol();
52564
+ fireMoveColEventListeners(table, endMoveColSuccess, e);
52565
+ }
52516
52566
  };
52517
52567
  eventManager.globalEventListeners.push({
52518
52568
  name: 'pointerup',
@@ -55429,9 +55479,6 @@
55429
55479
  else {
55430
55480
  this.table.scenegraph.updateCellContent(cellPos.col, cellPos.row);
55431
55481
  }
55432
- if (!customStyleId) {
55433
- this.customCellStyleArrangement.splice(index, 1);
55434
- }
55435
55482
  this.table.scenegraph.updateNextFrame();
55436
55483
  }
55437
55484
  updateCustomCell(customCellStyle, customCellStyleArrangement) {
@@ -57465,7 +57512,7 @@
57465
57512
  return TABLE_EVENT_TYPE;
57466
57513
  }
57467
57514
  options;
57468
- version = "1.11.1-alpha.0";
57515
+ version = "1.11.1";
57469
57516
  pagination;
57470
57517
  id = `VTable${Date.now()}`;
57471
57518
  headerStyleCache;
@@ -62514,6 +62561,7 @@
62514
62561
  class EditManeger {
62515
62562
  table;
62516
62563
  editingEditor;
62564
+ isValidatingValue = false;
62517
62565
  editCell;
62518
62566
  constructor(table) {
62519
62567
  this.table = table;
@@ -62580,6 +62628,9 @@
62580
62628
  if (!this.editingEditor) {
62581
62629
  return true;
62582
62630
  }
62631
+ if (this.isValidatingValue) {
62632
+ return false;
62633
+ }
62583
62634
  const target = e?.target;
62584
62635
  const { editingEditor: editor } = this;
62585
62636
  if (target) {
@@ -62594,6 +62645,7 @@
62594
62645
  }
62595
62646
  if (!this.editingEditor.getValue) ;
62596
62647
  if (this.editingEditor.validateValue) {
62648
+ this.isValidatingValue = true;
62597
62649
  const maybePromiseOrValue = this.editingEditor.validateValue?.();
62598
62650
  if (isPromise(maybePromiseOrValue)) {
62599
62651
  return new Promise((resolve, reject) => {
@@ -62604,10 +62656,12 @@
62604
62656
  resolve(true);
62605
62657
  }
62606
62658
  else {
62659
+ this.isValidatingValue = false;
62607
62660
  resolve(false);
62608
62661
  }
62609
62662
  })
62610
62663
  .catch((err) => {
62664
+ this.isValidatingValue = false;
62611
62665
  reject(err);
62612
62666
  });
62613
62667
  });
@@ -62637,6 +62691,7 @@
62637
62691
  this.editingEditor.exit?.();
62638
62692
  this.editingEditor.onEnd?.();
62639
62693
  this.editingEditor = null;
62694
+ this.isValidatingValue = false;
62640
62695
  }
62641
62696
  cancelEdit() {
62642
62697
  if (this.editingEditor) {
@@ -66989,9 +67044,9 @@
66989
67044
  style: table.theme.tooltipStyle
66990
67045
  };
66991
67046
  }
66992
- else if ((isFunction$1(table.internalProps.tooltip?.isShowOverflowTextTooltip) &&
66993
- table.internalProps.tooltip.isShowOverflowTextTooltip(col, row, table)) ||
66994
- table.internalProps.tooltip.isShowOverflowTextTooltip) {
67047
+ else if (isFunction$1(table.internalProps.tooltip?.isShowOverflowTextTooltip)
67048
+ ? table.internalProps.tooltip.isShowOverflowTextTooltip(col, row, table)
67049
+ : table.internalProps.tooltip.isShowOverflowTextTooltip) {
66995
67050
  const overflowText = table.getCellOverflowText(col, row);
66996
67051
  const rect = table.getCellRangeRelativeRect({ col, row });
66997
67052
  if (overflowText) {
@@ -76990,6 +77045,11 @@
76990
77045
  this.table.on('selected_clear', () => {
76991
77046
  this.clearHighlight();
76992
77047
  });
77048
+ this.table.on('mousemove_table', () => {
77049
+ if (this.table.stateManager.select.selecting) {
77050
+ this.updateHighlight();
77051
+ }
77052
+ });
76993
77053
  }
76994
77054
  clearHighlight() {
76995
77055
  this.colHeaderRange && this.table.arrangeCustomCellStyle({ range: this.colHeaderRange }, undefined);
@@ -77094,7 +77154,7 @@
77094
77154
  }
77095
77155
 
77096
77156
  registerForVrender();
77097
- const version = "1.11.1-alpha.0";
77157
+ const version = "1.11.1";
77098
77158
  function getIcons() {
77099
77159
  return get$2();
77100
77160
  }