@visactor/vtable 1.4.2-beta.0 → 1.4.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 (119) hide show
  1. package/cjs/ListTable.js +1 -1
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/PivotTable.js +19 -19
  4. package/cjs/PivotTable.js.map +1 -1
  5. package/cjs/components/tooltip/logic/BubbleTooltipElement.js +2 -0
  6. package/cjs/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  7. package/cjs/core/BaseTable.d.ts +1 -2
  8. package/cjs/core/BaseTable.js +16 -150
  9. package/cjs/core/BaseTable.js.map +1 -1
  10. package/cjs/core/utils/get-cell-position.d.ts +42 -0
  11. package/cjs/core/utils/get-cell-position.js +204 -0
  12. package/cjs/core/utils/get-cell-position.js.map +1 -0
  13. package/cjs/edit/edit-manager.d.ts +1 -1
  14. package/cjs/edit/edit-manager.js +7 -6
  15. package/cjs/edit/edit-manager.js.map +1 -1
  16. package/cjs/event/event.js +7 -3
  17. package/cjs/event/event.js.map +1 -1
  18. package/cjs/event/listener/container-dom.js +92 -86
  19. package/cjs/event/listener/container-dom.js.map +1 -1
  20. package/cjs/event/listener/table-group.js +29 -20
  21. package/cjs/event/listener/table-group.js.map +1 -1
  22. package/cjs/index.d.ts +1 -1
  23. package/cjs/index.js +1 -1
  24. package/cjs/index.js.map +1 -1
  25. package/cjs/layout/layout-helper.js +2 -2
  26. package/cjs/layout/layout-helper.js.map +1 -1
  27. package/cjs/layout/pivot-header-layout.js +182 -53
  28. package/cjs/layout/pivot-header-layout.js.map +1 -1
  29. package/cjs/layout/simple-header-layout.d.ts +3 -0
  30. package/cjs/layout/simple-header-layout.js +28 -22
  31. package/cjs/layout/simple-header-layout.js.map +1 -1
  32. package/cjs/scenegraph/component/custom.js +4 -2
  33. package/cjs/scenegraph/component/custom.js.map +1 -1
  34. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +60 -56
  35. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  36. package/cjs/scenegraph/group-creater/cell-helper.js +13 -11
  37. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  38. package/cjs/scenegraph/group-creater/progress/proxy.js +8 -8
  39. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  40. package/cjs/scenegraph/layout/compute-col-width.js +1 -1
  41. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  42. package/cjs/state/cell-move/index.js +4 -1
  43. package/cjs/state/cell-move/index.js.map +1 -1
  44. package/cjs/state/sort/index.js +7 -3
  45. package/cjs/state/sort/index.js.map +1 -1
  46. package/cjs/state/state.d.ts +1 -1
  47. package/cjs/state/state.js +10 -6
  48. package/cjs/state/state.js.map +1 -1
  49. package/cjs/tools/util.d.ts +1 -0
  50. package/cjs/tools/util.js +11 -2
  51. package/cjs/tools/util.js.map +1 -1
  52. package/cjs/ts-types/base-table.d.ts +2 -0
  53. package/cjs/ts-types/base-table.js.map +1 -1
  54. package/cjs/ts-types/list-table/define/basic-define.d.ts +1 -0
  55. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  56. package/cjs/ts-types/table-engine.d.ts +1 -1
  57. package/cjs/ts-types/table-engine.js.map +1 -1
  58. package/cjs/vrender.js.map +1 -1
  59. package/dist/vtable.js +791 -438
  60. package/dist/vtable.min.js +2 -2
  61. package/es/ListTable.js +1 -1
  62. package/es/ListTable.js.map +1 -1
  63. package/es/PivotTable.js +19 -19
  64. package/es/PivotTable.js.map +1 -1
  65. package/es/components/tooltip/logic/BubbleTooltipElement.js +3 -1
  66. package/es/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  67. package/es/core/BaseTable.d.ts +1 -2
  68. package/es/core/BaseTable.js +18 -150
  69. package/es/core/BaseTable.js.map +1 -1
  70. package/es/core/utils/get-cell-position.d.ts +42 -0
  71. package/es/core/utils/get-cell-position.js +192 -0
  72. package/es/core/utils/get-cell-position.js.map +1 -0
  73. package/es/edit/edit-manager.d.ts +1 -1
  74. package/es/edit/edit-manager.js +7 -6
  75. package/es/edit/edit-manager.js.map +1 -1
  76. package/es/event/event.js +6 -2
  77. package/es/event/event.js.map +1 -1
  78. package/es/event/listener/container-dom.js +92 -86
  79. package/es/event/listener/container-dom.js.map +1 -1
  80. package/es/event/listener/table-group.js +29 -20
  81. package/es/event/listener/table-group.js.map +1 -1
  82. package/es/index.d.ts +1 -1
  83. package/es/index.js +1 -1
  84. package/es/index.js.map +1 -1
  85. package/es/layout/layout-helper.js +2 -2
  86. package/es/layout/layout-helper.js.map +1 -1
  87. package/es/layout/pivot-header-layout.js +182 -53
  88. package/es/layout/pivot-header-layout.js.map +1 -1
  89. package/es/layout/simple-header-layout.d.ts +3 -0
  90. package/es/layout/simple-header-layout.js +28 -22
  91. package/es/layout/simple-header-layout.js.map +1 -1
  92. package/es/scenegraph/component/custom.js +4 -2
  93. package/es/scenegraph/component/custom.js.map +1 -1
  94. package/es/scenegraph/graphic/contributions/group-contribution-render.js +60 -56
  95. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  96. package/es/scenegraph/group-creater/cell-helper.js +13 -11
  97. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  98. package/es/scenegraph/group-creater/progress/proxy.js +8 -8
  99. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  100. package/es/scenegraph/layout/compute-col-width.js +1 -1
  101. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  102. package/es/state/cell-move/index.js +4 -1
  103. package/es/state/cell-move/index.js.map +1 -1
  104. package/es/state/sort/index.js +7 -3
  105. package/es/state/sort/index.js.map +1 -1
  106. package/es/state/state.d.ts +1 -1
  107. package/es/state/state.js +10 -6
  108. package/es/state/state.js.map +1 -1
  109. package/es/tools/util.d.ts +1 -0
  110. package/es/tools/util.js +9 -0
  111. package/es/tools/util.js.map +1 -1
  112. package/es/ts-types/base-table.d.ts +2 -0
  113. package/es/ts-types/base-table.js.map +1 -1
  114. package/es/ts-types/list-table/define/basic-define.d.ts +1 -0
  115. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  116. package/es/ts-types/table-engine.d.ts +1 -1
  117. package/es/ts-types/table-engine.js.map +1 -1
  118. package/es/vrender.js.map +1 -1
  119. package/package.json +5 -5
package/dist/vtable.js CHANGED
@@ -44247,6 +44247,14 @@
44247
44247
  }
44248
44248
  return result;
44249
44249
  }
44250
+ function isDivSelected(div) {
44251
+ const selection = window.getSelection();
44252
+ if (selection.rangeCount) {
44253
+ const range = selection.getRangeAt(0);
44254
+ return range.endOffset > range.startOffset && div.contains(range.commonAncestorContainer);
44255
+ }
44256
+ return false;
44257
+ }
44250
44258
 
44251
44259
  const isNode = typeof window === 'undefined' || typeof window.window === 'undefined';
44252
44260
  let arrayFind;
@@ -51139,6 +51147,9 @@
51139
51147
  }
51140
51148
  function onBeforeAttributeUpdate(val, attribute) {
51141
51149
  const graphic = this;
51150
+ if (graphic.skipMergeUpdate) {
51151
+ return;
51152
+ }
51142
51153
  const cellGroup = getTargetCell(graphic);
51143
51154
  const table = cellGroup.stage.table;
51144
51155
  graphic.skipAttributeUpdate = true;
@@ -51153,7 +51164,7 @@
51153
51164
  if (col === cellGroup.col && row === cellGroup.row) {
51154
51165
  continue;
51155
51166
  }
51156
- const cell = table.scenegraph.getCell(col, row);
51167
+ const cell = table.scenegraph.highPerformanceGetCell(col, row);
51157
51168
  if (cell.role === 'cell') {
51158
51169
  const target = cell.getChildByName(graphic.name, true);
51159
51170
  if (!target || target.skipAttributeUpdate) {
@@ -54747,11 +54758,14 @@
54747
54758
  function dealWithMergeCellSize(range, cellWidth, cellHeight, padding, textAlign, textBaseline, table) {
54748
54759
  for (let col = range.start.col; col <= range.end.col; col++) {
54749
54760
  for (let row = range.start.row; row <= range.end.row; row++) {
54750
- const cellGroup = table.scenegraph.getCell(col, row, true);
54751
- if (cellGroup.role === 'cell' && range.start.row !== range.end.row && cellGroup.contentHeight !== cellHeight) {
54761
+ const cellGroup = table.scenegraph.highPerformanceGetCell(col, row, true);
54762
+ if (cellGroup.role !== 'cell') {
54763
+ continue;
54764
+ }
54765
+ if (range.start.row !== range.end.row && cellGroup.contentHeight !== cellHeight) {
54752
54766
  updateCellContentHeight(cellGroup, cellHeight, cellHeight, table.isAutoRowHeight(row), padding, textAlign, textBaseline);
54753
54767
  }
54754
- if (cellGroup.role === 'cell' && range.start.col !== range.end.col && cellGroup.contentWidth !== cellWidth) {
54768
+ if (range.start.col !== range.end.col && cellGroup.contentWidth !== cellWidth) {
54755
54769
  updateCellContentWidth(cellGroup, cellWidth, cellHeight, 0, table.isAutoRowHeight(row), padding, textAlign, textBaseline, table.scenegraph);
54756
54770
  }
54757
54771
  cellGroup.contentWidth = cellWidth;
@@ -54768,26 +54782,34 @@
54768
54782
  const dy = -table.getRowsHeight(range.start.row, row - 1);
54769
54783
  cellGroup.forEachChildren((child) => {
54770
54784
  if (typeof child._dx === 'number') {
54785
+ child.skipMergeUpdate = true;
54771
54786
  child.setAttributes({
54772
54787
  dx: (child._dx ?? 0) + dx
54773
54788
  });
54789
+ child.skipMergeUpdate = false;
54774
54790
  }
54775
54791
  else {
54792
+ child.skipMergeUpdate = true;
54776
54793
  child._dx = child.attribute.dx ?? 0;
54777
54794
  child.setAttributes({
54778
54795
  dx: (child.attribute.dx ?? 0) + dx
54779
54796
  });
54797
+ child.skipMergeUpdate = false;
54780
54798
  }
54781
54799
  if (typeof child._dy === 'number') {
54800
+ child.skipMergeUpdate = true;
54782
54801
  child.setAttributes({
54783
54802
  dy: (child._dy ?? 0) + dy
54784
54803
  });
54804
+ child.skipMergeUpdate = false;
54785
54805
  }
54786
54806
  else {
54787
54807
  child._dy = child.attribute.dy ?? 0;
54808
+ child.skipMergeUpdate = true;
54788
54809
  child.setAttributes({
54789
54810
  dy: (child.attribute.dy ?? 0) + dy
54790
54811
  });
54812
+ child.skipMergeUpdate = false;
54791
54813
  }
54792
54814
  });
54793
54815
  const lineWidth = cellGroup.attribute.strokeArrayWidth ?? cellGroup.attribute.lineWidth;
@@ -54807,11 +54829,13 @@
54807
54829
  }
54808
54830
  const widthChange = rangeWidth !== cellGroup.attribute.width;
54809
54831
  const heightChange = rangeHeight !== cellGroup.attribute.height;
54832
+ cellGroup.skipMergeUpdate = true;
54810
54833
  cellGroup.setAttributes({
54811
54834
  width: rangeWidth,
54812
54835
  height: rangeHeight,
54813
54836
  strokeArrayWidth: newLineWidth
54814
54837
  });
54838
+ cellGroup.skipMergeUpdate = false;
54815
54839
  cellGroup.mergeStartCol = range.start.col;
54816
54840
  cellGroup.mergeStartRow = range.start.row;
54817
54841
  cellGroup.mergeEndCol = range.end.col;
@@ -59196,21 +59220,9 @@
59196
59220
  return;
59197
59221
  }
59198
59222
  const bottomRight = table?.theme.cellBorderClipDirection === 'bottom-right';
59199
- let deltaWidth = 0;
59200
- let deltaHeight = 0;
59201
59223
  if (bottomRight) {
59202
59224
  x = Math.floor(x) - 0.5;
59203
59225
  y = Math.floor(y) - 0.5;
59204
- if (group.role === 'cell') {
59205
- const col = group.col;
59206
- const row = group.row;
59207
- if (table && col === table.colCount - 1) {
59208
- deltaWidth = 1;
59209
- }
59210
- if (table && row === table.rowCount - 1) {
59211
- deltaHeight = 1;
59212
- }
59213
- }
59214
59226
  }
59215
59227
  else {
59216
59228
  x = Math.floor(x) + 0.5;
@@ -59220,7 +59232,7 @@
59220
59232
  width = Math.round(width);
59221
59233
  height = Math.round(height);
59222
59234
  }
59223
- const { width: widthFroDraw, height: heightFroDraw } = getCellSizeForDraw(group, Math.ceil(width + deltaWidth), Math.ceil(height + deltaHeight));
59235
+ const { width: widthFroDraw, height: heightFroDraw } = getCellSizeForDraw(group, Math.ceil(width), Math.ceil(height), bottomRight);
59224
59236
  widthForStroke = widthFroDraw;
59225
59237
  heightForStroke = heightFroDraw;
59226
59238
  }
@@ -59275,15 +59287,21 @@
59275
59287
  }
59276
59288
  context.beginPath();
59277
59289
  context.moveTo(x, y);
59278
- if ((isStrokeTrue || stroke[0]) && (isWidthNumber || strokeArrayWidth[0])) {
59290
+ const strokeTop = (isStrokeTrue || stroke[0]) && (isWidthNumber || strokeArrayWidth[0]);
59291
+ const strokeRight = (isStrokeTrue || stroke[1]) && (isWidthNumber || strokeArrayWidth[1]);
59292
+ const strokeBottom = (isStrokeTrue || stroke[2]) && (isWidthNumber || strokeArrayWidth[2]);
59293
+ const strokeLeft = (isStrokeTrue || stroke[3]) && (isWidthNumber || strokeArrayWidth[3]);
59294
+ if (strokeTop) {
59295
+ const deltaLeft = (isWidthNumber ? widthInfo.width : strokeArrayWidth[0]) / 2;
59296
+ const deltaRight = (isWidthNumber ? widthInfo.width : strokeArrayWidth[0]) / 2;
59279
59297
  if (isPart && Array.isArray(part[0])) {
59280
- context.moveTo(x + width * part[0][0], y);
59281
- context.lineTo(x + width * (part[0][1] - part[0][0]), y);
59282
- context.moveTo(x + width, y);
59298
+ context.moveTo(x - deltaLeft + (width + deltaLeft + deltaRight) * part[0][0], y);
59299
+ context.lineTo(x - deltaLeft + (width + deltaLeft + deltaRight) * (part[0][1] - part[0][0]), y);
59300
+ context.moveTo(x + width + deltaRight, y);
59283
59301
  }
59284
59302
  else {
59285
- context.moveTo(x, y);
59286
- context.lineTo(x + width, y);
59303
+ context.moveTo(x - deltaLeft, y);
59304
+ context.lineTo(x + width + deltaRight, y);
59287
59305
  }
59288
59306
  if (isSplitDraw || isDash) {
59289
59307
  if (strokeArrayColor && strokeArrayColor[0]) {
@@ -59307,15 +59325,17 @@
59307
59325
  else {
59308
59326
  context.moveTo(x + width, y);
59309
59327
  }
59310
- if ((isStrokeTrue || stroke[1]) && (isWidthNumber || strokeArrayWidth[1])) {
59328
+ if (strokeRight) {
59329
+ const deltaTop = (isWidthNumber ? widthInfo.width : strokeArrayWidth[1]) / 2;
59330
+ const deltaBottom = (isWidthNumber ? widthInfo.width : strokeArrayWidth[1]) / 2;
59311
59331
  if (isPart && Array.isArray(part[1])) {
59312
- context.moveTo(x + width, y + height * part[1][0]);
59313
- context.lineTo(x + width, y + height * (part[1][1] - part[1][0]));
59314
- context.moveTo(x + width, y + height);
59332
+ context.moveTo(x + width, y - deltaTop + height * part[1][0]);
59333
+ context.lineTo(x + width, y - deltaTop + (height + deltaTop + deltaBottom) * (part[1][1] - part[1][0]));
59334
+ context.moveTo(x + width, y + height + deltaBottom);
59315
59335
  }
59316
59336
  else {
59317
- context.moveTo(x + width, y);
59318
- context.lineTo(x + width, y + height);
59337
+ context.moveTo(x + width, y - deltaTop);
59338
+ context.lineTo(x + width, y + height + deltaBottom);
59319
59339
  }
59320
59340
  if (isSplitDraw || isDash) {
59321
59341
  if (strokeArrayColor && strokeArrayColor[1]) {
@@ -59339,15 +59359,17 @@
59339
59359
  else {
59340
59360
  context.moveTo(x + width, y + height);
59341
59361
  }
59342
- if ((isStrokeTrue || stroke[2]) && (isWidthNumber || strokeArrayWidth[2])) {
59362
+ if (strokeBottom) {
59363
+ const deltaLeft = (isWidthNumber ? widthInfo.width : strokeArrayWidth[2]) / 2;
59364
+ const deltaRight = (isWidthNumber ? widthInfo.width : strokeArrayWidth[2]) / 2;
59343
59365
  if (isPart && Array.isArray(part[2])) {
59344
- context.moveTo(x + width * part[2][0], y + height);
59345
- context.lineTo(x + width * (part[2][1] - part[2][0]), y + height);
59346
- context.moveTo(x, y + height);
59366
+ context.moveTo(x - deltaLeft + (width + deltaLeft + deltaRight) * part[2][0], y + height);
59367
+ context.lineTo(x - deltaLeft + (width + deltaLeft + deltaRight) * (part[2][1] - part[2][0]), y + height);
59368
+ context.moveTo(x - deltaLeft, y + height);
59347
59369
  }
59348
59370
  else {
59349
- context.moveTo(x, y + height);
59350
- context.lineTo(x + width, y + height);
59371
+ context.moveTo(x - deltaLeft, y + height);
59372
+ context.lineTo(x + width + deltaRight, y + height);
59351
59373
  }
59352
59374
  if (isSplitDraw || isDash) {
59353
59375
  if (strokeArrayColor && strokeArrayColor[2]) {
@@ -59371,15 +59393,17 @@
59371
59393
  else {
59372
59394
  context.moveTo(x, y + height);
59373
59395
  }
59374
- if ((isStrokeTrue || stroke[3]) && (isWidthNumber || strokeArrayWidth[3])) {
59396
+ if (strokeLeft) {
59397
+ const deltaTop = (isWidthNumber ? widthInfo.width : strokeArrayWidth[3]) / 2;
59398
+ const deltaBottom = (isWidthNumber ? widthInfo.width : strokeArrayWidth[3]) / 2;
59375
59399
  if (isPart && Array.isArray(part[3])) {
59376
- context.moveTo(x, y + height * part[3][0]);
59377
- context.lineTo(x, y + height * (part[3][1] - part[3][0]));
59378
- context.moveTo(x, y);
59400
+ context.moveTo(x, y - deltaTop + (height + deltaTop + deltaBottom) * part[3][0]);
59401
+ context.lineTo(x, y - deltaTop + (height + deltaTop + deltaBottom) * (part[3][1] - part[3][0]));
59402
+ context.moveTo(x, y - deltaTop);
59379
59403
  }
59380
59404
  else {
59381
- context.moveTo(x, y);
59382
- context.lineTo(x, y + height);
59405
+ context.moveTo(x, y - deltaTop);
59406
+ context.lineTo(x, y + height + deltaBottom);
59383
59407
  }
59384
59408
  if (isSplitDraw || isDash) {
59385
59409
  if (strokeArrayColor && strokeArrayColor[3]) {
@@ -59461,27 +59485,17 @@
59461
59485
  let heightForStroke;
59462
59486
  if (lineWidth & 1) {
59463
59487
  const bottomRight = table.theme.cellBorderClipDirection === 'bottom-right';
59464
- let deltaWidth = 0;
59465
- let deltaHeight = 0;
59488
+ const deltaWidth = 0;
59489
+ const deltaHeight = 0;
59466
59490
  if (bottomRight) {
59467
59491
  x = Math.floor(x) - 0.5;
59468
59492
  y = Math.floor(y) - 0.5;
59469
- if (group.role === 'cell') {
59470
- const col = group.col;
59471
- const row = group.row;
59472
- if (table && col === table.colCount - 1) {
59473
- deltaWidth = 1;
59474
- }
59475
- if (table && row === table.rowCount - 1) {
59476
- deltaHeight = 1;
59477
- }
59478
- }
59479
59493
  }
59480
59494
  else {
59481
59495
  x = Math.floor(x) + 0.5;
59482
59496
  y = Math.floor(y) + 0.5;
59483
59497
  }
59484
- const { width: widthFroDraw, height: heightFroDraw } = getCellSizeForDraw(group, Math.ceil(width + deltaWidth), Math.ceil(height + deltaHeight));
59498
+ const { width: widthFroDraw, height: heightFroDraw } = getCellSizeForDraw(group, Math.ceil(width + deltaWidth), Math.ceil(height + deltaHeight), bottomRight);
59485
59499
  widthForStroke = widthFroDraw;
59486
59500
  heightForStroke = heightFroDraw;
59487
59501
  }
@@ -59563,29 +59577,19 @@
59563
59577
  width = Math.round(width);
59564
59578
  height = Math.round(height);
59565
59579
  }
59566
- const { width: widthFroDraw, height: heightFroDraw } = getCellSizeForDraw(group, Math.ceil(width), Math.ceil(height));
59567
59580
  context.beginPath();
59568
59581
  const bottomRight = table?.theme.cellBorderClipDirection === 'bottom-right';
59569
- let deltaWidth = 0;
59570
- let deltaHeight = 0;
59582
+ const deltaWidth = 0;
59583
+ const deltaHeight = 0;
59571
59584
  if (bottomRight) {
59572
59585
  x = Math.floor(x) - 0.5;
59573
59586
  y = Math.floor(y) - 0.5;
59574
- if (group.role === 'cell') {
59575
- const col = group.col;
59576
- const row = group.row;
59577
- if (table && col === table.colCount - 1) {
59578
- deltaWidth = 1;
59579
- }
59580
- if (table && row === table.rowCount - 1) {
59581
- deltaHeight = 1;
59582
- }
59583
- }
59584
59587
  }
59585
59588
  else {
59586
59589
  x = Math.floor(x) + 0.5;
59587
59590
  y = Math.floor(y) + 0.5;
59588
59591
  }
59592
+ const { width: widthFroDraw, height: heightFroDraw } = getCellSizeForDraw(group, Math.ceil(width), Math.ceil(height), bottomRight);
59589
59593
  if (cornerRadius) {
59590
59594
  createRectPath(context, x, y, widthFroDraw + deltaWidth, heightFroDraw + deltaHeight, cornerRadius);
59591
59595
  }
@@ -59743,7 +59747,7 @@
59743
59747
  ClipBodyGroupAfterRenderContribution = __decorate([
59744
59748
  injectable()
59745
59749
  ], ClipBodyGroupAfterRenderContribution);
59746
- function getCellSizeForDraw(group, width, height) {
59750
+ function getCellSizeForDraw(group, width, height, bottomRight) {
59747
59751
  const table = group.stage.table;
59748
59752
  if (group.role === 'cell') {
59749
59753
  let col = group.col;
@@ -59753,24 +59757,24 @@
59753
59757
  col = mergeInfo.end.col;
59754
59758
  row = mergeInfo.end.row;
59755
59759
  }
59756
- if (table && col === table.colCount - 1) {
59760
+ if (table && col === table.colCount - 1 && !bottomRight) {
59757
59761
  width -= 1;
59758
59762
  }
59759
- else if (table && col === table.frozenColCount - 1 && table.scrollLeft) {
59763
+ else if (table && col === table.frozenColCount - 1 && table.scrollLeft && !bottomRight) {
59760
59764
  width -= 1;
59761
59765
  }
59762
- if (table && row === table.rowCount - 1) {
59766
+ if (table && row === table.rowCount - 1 && !bottomRight) {
59763
59767
  height -= 1;
59764
59768
  }
59765
- else if (table && row === table.frozenRowCount - 1 && table.scrollTop) {
59769
+ else if (table && row === table.frozenRowCount - 1 && table.scrollTop && !bottomRight) {
59766
59770
  height -= 1;
59767
59771
  }
59768
59772
  }
59769
59773
  else if (group.role === 'corner-frozen') {
59770
- if (table && table.scrollLeft) {
59774
+ if (table && table.scrollLeft && !bottomRight) {
59771
59775
  width -= 1;
59772
59776
  }
59773
- if (table && table.scrollTop) {
59777
+ if (table && table.scrollTop && !bottomRight) {
59774
59778
  height -= 1;
59775
59779
  }
59776
59780
  }
@@ -60506,7 +60510,7 @@
60506
60510
  const factor = totalDrawWidth / actualWidth;
60507
60511
  if (table.options.customConfig?.shrinkSparklineFirst &&
60508
60512
  factor < 1 &&
60509
- totalDrawWidth - actualWidth < totalSparklineAbleWidth) {
60513
+ actualWidth - totalDrawWidth < totalSparklineAbleWidth) {
60510
60514
  for (let i = 0; i < sparklineColumns.length; i++) {
60511
60515
  const { col, width } = sparklineColumns[i];
60512
60516
  const deltaWidth = (actualWidth - totalDrawWidth) / sparklineColumns.length;
@@ -61874,6 +61878,7 @@
61874
61878
  this.totalActualBodyColCount = totalActualBodyColCount;
61875
61879
  this.totalCol = this.bodyLeftCol + totalActualBodyColCount - 1;
61876
61880
  this.colStart = this.bodyLeftCol;
61881
+ this.colEnd = this.totalCol;
61877
61882
  const defaultColWidth = this.table.defaultColWidth;
61878
61883
  this.taskColCount = Math.ceil(this.table.tableNoFrameWidth / defaultColWidth) * 1;
61879
61884
  const totalBodyWidth = defaultColWidth * totalActualBodyColCount;
@@ -61892,6 +61897,7 @@
61892
61897
  this.totalActualBodyRowCount = totalActualBodyRowCount;
61893
61898
  this.totalRow = this.bodyTopRow + totalActualBodyRowCount - 1;
61894
61899
  this.rowStart = this.bodyTopRow;
61900
+ this.rowEnd = this.totalRow;
61895
61901
  const defaultRowHeight = this.table.defaultRowHeight;
61896
61902
  this.taskRowCount = Math.ceil(this.table.tableNoFrameHeight / defaultRowHeight) * 1;
61897
61903
  const totalBodyHeight = defaultRowHeight * totalActualBodyRowCount;
@@ -61966,6 +61972,7 @@
61966
61972
  createRowCellGroup(onceCount) {
61967
61973
  const endRow = Math.min(this.totalRow, this.currentRow + onceCount);
61968
61974
  computeRowsHeight(this.table, this.currentRow + 1, endRow, false);
61975
+ this.rowEnd = endRow;
61969
61976
  if (this.table.frozenColCount) {
61970
61977
  let maxHeight = 0;
61971
61978
  for (let col = 0; col < this.table.frozenColCount; col++) {
@@ -61998,7 +62005,6 @@
61998
62005
  }
61999
62006
  this.table.scenegraph.bodyGroup.setAttribute('height', maxHeight);
62000
62007
  this.currentRow = endRow;
62001
- this.rowEnd = endRow;
62002
62008
  this.rowUpdatePos = this.rowEnd;
62003
62009
  this.table.scenegraph.updateContainer();
62004
62010
  this.table.scenegraph.updateBorderSizeAndPosition();
@@ -62006,6 +62012,7 @@
62006
62012
  createColGroup(onceCount) {
62007
62013
  const endCol = Math.min(this.totalCol, this.currentCol + onceCount);
62008
62014
  computeColsWidth(this.table, this.currentCol + 1, endCol);
62015
+ this.colEnd = endCol;
62009
62016
  for (let row = 0; row < this.table.rowCount; row++) {
62010
62017
  const cellGroup = this.highPerformanceGetCell(this.currentCol, row);
62011
62018
  if (cellGroup.role === 'cell' && isNumber$2(cellGroup.mergeStartCol) && cellGroup.mergeStartCol > this.currentCol) {
@@ -62043,7 +62050,6 @@
62043
62050
  const yOrigin = lastColumnGroup.attribute.y;
62044
62051
  createColGroup(this.table.scenegraph.bodyGroup, xOrigin, yOrigin, this.currentCol + 1, endCol, this.rowStart, this.rowEnd, 'body', this.table);
62045
62052
  this.currentCol = endCol;
62046
- this.colEnd = endCol;
62047
62053
  this.colUpdatePos = this.colEnd;
62048
62054
  this.table.scenegraph.updateContainer();
62049
62055
  this.table.scenegraph.updateBorderSizeAndPosition();
@@ -66137,7 +66143,9 @@
66137
66143
  table.internalProps.useOneRowHeightFillAll = false;
66138
66144
  table.internalProps.layoutMap.clearCellRangeMap();
66139
66145
  table.scenegraph.sortCell();
66146
+ const isHasSelected = !!table.stateManager.select.ranges?.length;
66140
66147
  table.stateManager.updateSelectPos(-1, -1);
66148
+ table.stateManager.endSelectCells(true, isHasSelected);
66141
66149
  }
66142
66150
  function executeSort(newState, table, headerDefine) {
66143
66151
  const hd = table.internalProps.layoutMap.headerObjects.find((col) => col && col.field === newState.field);
@@ -66604,7 +66612,9 @@
66604
66612
  ? state.columnMove.y
66605
66613
  : 0;
66606
66614
  state.table.scenegraph.component.showMoveCol(col, row, delta);
66615
+ const isHasSelected = !!state.select.ranges?.length;
66607
66616
  state.table.stateManager.updateSelectPos(-1, -1);
66617
+ state.table.stateManager.endSelectCells(true, isHasSelected);
66608
66618
  state.table.scenegraph.updateNextFrame();
66609
66619
  }
66610
66620
  function updateMoveCol(col, row, x, y, state) {
@@ -67789,7 +67799,7 @@
67789
67799
  isSelecting() {
67790
67800
  return this.select.selecting;
67791
67801
  }
67792
- endSelectCells(fireListener = true) {
67802
+ endSelectCells(fireListener = true, fireClear = true) {
67793
67803
  if (this.select.selecting) {
67794
67804
  this.select.selecting = false;
67795
67805
  if (this.select.ranges.length === 0) {
@@ -67825,7 +67835,7 @@
67825
67835
  row: lastRow
67826
67836
  });
67827
67837
  }
67828
- else if (fireListener) {
67838
+ else if (fireClear) {
67829
67839
  if (this.select.ranges.length === 0) {
67830
67840
  this.table.fireListeners(TABLE_EVENT_TYPE.SELECTED_CLEAR, {});
67831
67841
  }
@@ -67846,7 +67856,9 @@
67846
67856
  this.columnResize.x = x;
67847
67857
  this.columnResize.isRightFrozen = isRightFrozen;
67848
67858
  this.table.scenegraph.component.showResizeCol(col, y, isRightFrozen);
67859
+ const isHasSelected = !!this.select.ranges?.length;
67849
67860
  this.updateSelectPos(-1, -1);
67861
+ this.endSelectCells(true, isHasSelected);
67850
67862
  this.table.scenegraph.updateNextFrame();
67851
67863
  }
67852
67864
  updateResizeCol(xInTable, yInTable) {
@@ -67866,7 +67878,9 @@
67866
67878
  this.rowResize.y = y;
67867
67879
  this.rowResize.isBottomFrozen = isBottomFrozen;
67868
67880
  this.table.scenegraph.component.showResizeRow(row, x, isBottomFrozen);
67881
+ const isHasSelected = !!this.select.ranges?.length;
67869
67882
  this.updateSelectPos(-1, -1);
67883
+ this.endSelectCells(true, isHasSelected);
67870
67884
  this.table.scenegraph.updateNextFrame();
67871
67885
  }
67872
67886
  updateResizeRow(xInTable, yInTable) {
@@ -68780,11 +68794,16 @@
68780
68794
  }
68781
68795
  }
68782
68796
  }
68783
- table.editorManager?.completeEdit(e.nativeEvent);
68797
+ const isCompleteEdit = table.editorManager?.completeEdit(e.nativeEvent);
68798
+ if (isCompleteEdit === false) {
68799
+ return;
68800
+ }
68784
68801
  stateManager.updateInteractionState(InteractionState.default);
68785
68802
  eventManager.dealTableHover();
68786
68803
  if (table.options.select?.outsideClickDeselect) {
68804
+ const isHasSelected = !!stateManager.select.ranges?.length;
68787
68805
  eventManager.dealTableSelect();
68806
+ stateManager.endSelectCells(true, isHasSelected);
68788
68807
  }
68789
68808
  });
68790
68809
  table.scenegraph.tableGroup.addEventListener('pointerdown', (e) => {
@@ -68810,7 +68829,10 @@
68810
68829
  if (eventArgsSet.eventArgs?.target !== stateManager.residentHoverIcon?.icon) {
68811
68830
  stateManager.hideMenu();
68812
68831
  }
68813
- table.editorManager?.completeEdit(e.nativeEvent);
68832
+ const isCompleteEdit = table.editorManager?.completeEdit(e.nativeEvent);
68833
+ if (isCompleteEdit === false) {
68834
+ return;
68835
+ }
68814
68836
  const hitIcon = eventArgsSet?.eventArgs?.target?.role?.startsWith('icon')
68815
68837
  ? eventArgsSet.eventArgs.target
68816
68838
  : e.target.role?.startsWith('icon')
@@ -68993,8 +69015,9 @@
68993
69015
  const eventArgsSet = getCellEventArgsSet(e);
68994
69016
  if (eventManager.touchSetTimeout) {
68995
69017
  clearTimeout(eventManager.touchSetTimeout);
69018
+ const isHasSelected = !!stateManager.select.ranges?.length;
68996
69019
  eventManager.dealTableSelect(eventArgsSet);
68997
- stateManager.endSelectCells();
69020
+ stateManager.endSelectCells(true, isHasSelected);
68998
69021
  eventManager.touchSetTimeout = undefined;
68999
69022
  }
69000
69023
  }
@@ -69034,11 +69057,15 @@
69034
69057
  if (eventArgsSet.eventArgs?.target !== stateManager.residentHoverIcon?.icon) {
69035
69058
  stateManager.hideMenu();
69036
69059
  }
69037
- table.editorManager?.completeEdit(e.nativeEvent);
69060
+ const isCompleteEdit = table.editorManager?.completeEdit(e.nativeEvent);
69061
+ if (isCompleteEdit === false) {
69062
+ return;
69063
+ }
69038
69064
  const hitIcon = e.target.role?.startsWith('icon') ? e.target : undefined;
69039
69065
  eventManager.downIcon = hitIcon;
69040
69066
  if (!hitIcon &&
69041
69067
  !eventManager.checkCellFillhandle(eventArgsSet) &&
69068
+ !stateManager.columnResize.resizing &&
69042
69069
  eventManager.checkColumnResize(eventArgsSet, true)) {
69043
69070
  table.scenegraph.updateChartState(null);
69044
69071
  stateManager.updateInteractionState(InteractionState.grabing);
@@ -69072,10 +69099,11 @@
69072
69099
  !target.isDescendantsOf(table.scenegraph.tableGroup)) {
69073
69100
  stateManager.updateInteractionState(InteractionState.default);
69074
69101
  eventManager.dealTableHover();
69075
- stateManager.endSelectCells();
69102
+ const isHasSelected = !!stateManager.select.ranges?.length;
69076
69103
  if (table.options.select?.blankAreaClickDeselect ?? true) {
69077
69104
  eventManager.dealTableSelect();
69078
69105
  }
69106
+ stateManager.endSelectCells(true, isHasSelected);
69079
69107
  stateManager.updateCursor();
69080
69108
  table.scenegraph.updateChartState(null);
69081
69109
  }
@@ -69666,21 +69694,21 @@
69666
69694
  table.editorManager.cancelEdit();
69667
69695
  }
69668
69696
  else if (e.key === 'Enter') {
69669
- if (table.editorManager?.editingEditor) {
69697
+ if (table.editorManager.editingEditor) {
69698
+ handleKeydownListener(e);
69670
69699
  table.editorManager.completeEdit();
69671
69700
  table.getElement().focus();
69701
+ return;
69672
69702
  }
69673
- else {
69674
- if ((table.options.keyboardOptions?.editCellOnEnter ?? true) &&
69675
- (table.stateManager.select.ranges?.length ?? 0) === 1) {
69676
- const startCol = table.stateManager.select.ranges[0].start.col;
69677
- const startRow = table.stateManager.select.ranges[0].start.row;
69678
- const endCol = table.stateManager.select.ranges[0].end.col;
69679
- const endRow = table.stateManager.select.ranges[0].end.row;
69680
- if (startCol === endCol && startRow === endRow) {
69681
- if (table.getEditor(startCol, startRow)) {
69682
- table.editorManager.startEditCell(startCol, startRow);
69683
- }
69703
+ if ((table.options.keyboardOptions?.editCellOnEnter ?? true) &&
69704
+ (table.stateManager.select.ranges?.length ?? 0) === 1) {
69705
+ const startCol = table.stateManager.select.ranges[0].start.col;
69706
+ const startRow = table.stateManager.select.ranges[0].start.row;
69707
+ const endCol = table.stateManager.select.ranges[0].end.col;
69708
+ const endRow = table.stateManager.select.ranges[0].end.row;
69709
+ if (startCol === endCol && startRow === endRow) {
69710
+ if (table.getEditor(startCol, startRow)) {
69711
+ table.editorManager.startEditCell(startCol, startRow);
69684
69712
  }
69685
69713
  }
69686
69714
  }
@@ -69714,6 +69742,9 @@
69714
69742
  }
69715
69743
  }
69716
69744
  }
69745
+ handleKeydownListener(e);
69746
+ });
69747
+ function handleKeydownListener(e) {
69717
69748
  if (table.hasListeners(TABLE_EVENT_TYPE.KEYDOWN)) {
69718
69749
  const cellsEvent = {
69719
69750
  keyCode: e.keyCode ?? e.which,
@@ -69723,7 +69754,7 @@
69723
69754
  };
69724
69755
  table.fireListeners(TABLE_EVENT_TYPE.KEYDOWN, cellsEvent);
69725
69756
  }
69726
- });
69757
+ }
69727
69758
  handler.on(table.getElement(), 'copy', (e) => {
69728
69759
  if (table.keyboardOptions?.copySelected) {
69729
69760
  const data = table.getCopyValue();
@@ -69850,6 +69881,8 @@
69850
69881
  table.resize();
69851
69882
  }
69852
69883
  });
69884
+ const regex = /<tr[^>]*>([\s\S]*?)<\/tr>/g;
69885
+ const cellRegex = /<td[^>]*>([\s\S]*?)<\/td>/g;
69853
69886
  function pasteHtmlToTable(item) {
69854
69887
  const ranges = table.stateManager.select.ranges;
69855
69888
  const selectRangeLength = ranges.length;
@@ -69863,11 +69896,9 @@
69863
69896
  item.getType('text/html').then((blob) => {
69864
69897
  blob.text().then((pastedData) => {
69865
69898
  if (pastedData && /(<table)|(<TABLE)/g.test(pastedData)) {
69866
- const regex = /<tr[^>]*>(.*?)<\/tr>/gs;
69867
69899
  const matches = Array.from(pastedData.matchAll(regex));
69868
69900
  for (const match of matches) {
69869
69901
  const rowContent = match[1];
69870
- const cellRegex = /<td[^>]*>(.*?)<\/td>/gs;
69871
69902
  const cellMatches = Array.from(rowContent.matchAll(cellRegex));
69872
69903
  const rowValues = cellMatches.map(cellMatch => {
69873
69904
  return (cellMatch[1]
@@ -70454,7 +70485,9 @@
70454
70485
  drillClick(this.table);
70455
70486
  }
70456
70487
  else if (funcType === IconFuncTypeEnum.collapse || funcType === IconFuncTypeEnum.expand) {
70457
- this.table.stateManager.updateSelectPos(-1, -1);
70488
+ const isHasSelected = !!stateManager.select.ranges?.length;
70489
+ stateManager.updateSelectPos(-1, -1);
70490
+ stateManager.endSelectCells(true, isHasSelected);
70458
70491
  this.table.toggleHierarchyState(col, row);
70459
70492
  }
70460
70493
  });
@@ -72150,6 +72183,12 @@
72150
72183
  messageElement.addEventListener('wheel', e => {
72151
72184
  e.stopPropagation();
72152
72185
  });
72186
+ messageElement.addEventListener('copy', e => {
72187
+ const isSelected = isDivSelected(messageElement);
72188
+ if (isSelected) {
72189
+ e.stopPropagation();
72190
+ }
72191
+ });
72153
72192
  }
72154
72193
  bindToCell(table, col, row, tooltipInstanceInfo, confine) {
72155
72194
  this._disappearDelay = tooltipInstanceInfo?.disappearDelay;
@@ -74617,13 +74656,18 @@
74617
74656
  }
74618
74657
  else {
74619
74658
  keys.push(indicatorObj.indicatorKey);
74620
- if (indicatorObj.chartSpec) {
74659
+ if (indicatorObj.chartSpec ||
74660
+ indicatorObj.sparklineSpec) {
74621
74661
  if (table.internalProps.dataConfig?.aggregationRules) {
74622
- table.internalProps.dataConfig?.aggregationRules.push({
74623
- field: indicatorObj.indicatorKey,
74624
- indicatorKey: indicatorObj.indicatorKey,
74625
- aggregationType: AggregationType.NONE
74626
- });
74662
+ if (!table.internalProps.dataConfig.aggregationRules.find(aggregation => {
74663
+ return aggregation.indicatorKey === indicatorObj.indicatorKey;
74664
+ })) {
74665
+ table.internalProps.dataConfig.aggregationRules.push({
74666
+ field: indicatorObj.indicatorKey,
74667
+ indicatorKey: indicatorObj.indicatorKey,
74668
+ aggregationType: AggregationType.NONE
74669
+ });
74670
+ }
74627
74671
  }
74628
74672
  else if (table.internalProps.dataConfig) {
74629
74673
  table.internalProps.dataConfig.aggregationRules = [
@@ -74703,6 +74747,246 @@
74703
74747
  return customTree;
74704
74748
  }
74705
74749
 
74750
+ function getRowAt(absoluteY, _this) {
74751
+ const frozen = _getTargetFrozenRowAt(_this, absoluteY);
74752
+ if (frozen) {
74753
+ return frozen;
74754
+ }
74755
+ let row = getTargetRowAt(absoluteY, _this);
74756
+ if (!row) {
74757
+ row = {
74758
+ top: -1,
74759
+ row: -1,
74760
+ bottom: -1,
74761
+ height: -1
74762
+ };
74763
+ }
74764
+ return row;
74765
+ }
74766
+ function getColAt(absoluteX, _this) {
74767
+ const frozen = _getTargetFrozenColAt(_this, absoluteX);
74768
+ if (frozen) {
74769
+ return frozen;
74770
+ }
74771
+ let col = getTargetColAt(absoluteX, _this);
74772
+ if (!col) {
74773
+ col = {
74774
+ left: -1,
74775
+ col: -1,
74776
+ right: -1,
74777
+ width: 1
74778
+ };
74779
+ }
74780
+ return col;
74781
+ }
74782
+ function getCellAt(absoluteX, absoluteY, _this) {
74783
+ const rowInfo = getRowAt(absoluteY, _this);
74784
+ const { row, top, bottom, height } = rowInfo;
74785
+ const colInfo = getColAt(absoluteX, _this);
74786
+ const { col, left, right, width } = colInfo;
74787
+ const rect = {
74788
+ left,
74789
+ right,
74790
+ top,
74791
+ bottom,
74792
+ width,
74793
+ height
74794
+ };
74795
+ return {
74796
+ row,
74797
+ col,
74798
+ rect
74799
+ };
74800
+ }
74801
+ function getTargetColAt(absoluteX, _this) {
74802
+ if (absoluteX === 0) {
74803
+ return { left: 0, col: 0, right: 0, width: 0 };
74804
+ }
74805
+ const findBefore = (startCol, startRight) => {
74806
+ let right = startRight;
74807
+ for (let col = startCol; col >= 0; col--) {
74808
+ const width = _this.getColWidth(col);
74809
+ const left = right - width;
74810
+ if (Math.round(left) <= Math.round(absoluteX) && Math.round(absoluteX) < Math.round(right)) {
74811
+ return {
74812
+ left,
74813
+ col,
74814
+ right,
74815
+ width
74816
+ };
74817
+ }
74818
+ right = left;
74819
+ }
74820
+ return null;
74821
+ };
74822
+ const findAfter = (startCol, startRight) => {
74823
+ let left = startRight - _this.getColWidth(startCol);
74824
+ const { colCount } = _this.internalProps;
74825
+ for (let col = startCol; col < colCount; col++) {
74826
+ const width = _this.getColWidth(col);
74827
+ const right = left + width;
74828
+ if (Math.round(left) <= Math.round(absoluteX) && Math.round(absoluteX) < Math.round(right)) {
74829
+ return {
74830
+ left,
74831
+ col,
74832
+ right,
74833
+ width
74834
+ };
74835
+ }
74836
+ left = right;
74837
+ }
74838
+ return null;
74839
+ };
74840
+ const candCol = computeTargetColByX(absoluteX, _this);
74841
+ const right = _this.getColsWidth(0, candCol);
74842
+ if (absoluteX >= right) {
74843
+ return findAfter(candCol, right);
74844
+ }
74845
+ return findBefore(candCol, right);
74846
+ }
74847
+ function getTargetRowAt(absoluteY, _this) {
74848
+ if (absoluteY === 0) {
74849
+ return { top: 0, row: 0, bottom: 0, height: 0 };
74850
+ }
74851
+ const findBefore = (startRow, startBottom) => {
74852
+ let bottom = startBottom;
74853
+ for (let row = startRow; row >= 0; row--) {
74854
+ const height = _this.getRowHeight(row);
74855
+ const top = bottom - height;
74856
+ if (Math.round(top) <= Math.round(absoluteY) && Math.round(absoluteY) < Math.round(bottom)) {
74857
+ return {
74858
+ top,
74859
+ row,
74860
+ bottom,
74861
+ height
74862
+ };
74863
+ }
74864
+ bottom = top;
74865
+ }
74866
+ return null;
74867
+ };
74868
+ const findAfter = (startRow, startBottom) => {
74869
+ let top = startBottom - _this.getRowHeight(startRow);
74870
+ const { rowCount } = _this.internalProps;
74871
+ for (let row = startRow; row < rowCount; row++) {
74872
+ const height = _this.getRowHeight(row);
74873
+ const bottom = top + height;
74874
+ if (Math.round(top) <= Math.round(absoluteY) && Math.round(absoluteY) < Math.round(bottom)) {
74875
+ return {
74876
+ top,
74877
+ row,
74878
+ bottom,
74879
+ height
74880
+ };
74881
+ }
74882
+ top = bottom;
74883
+ }
74884
+ return null;
74885
+ };
74886
+ const candRow = computeTargetRowByY(absoluteY, _this);
74887
+ const bottom = _this.getRowsHeight(0, candRow);
74888
+ if (absoluteY >= bottom) {
74889
+ return findAfter(candRow, bottom);
74890
+ }
74891
+ return findBefore(candRow, bottom);
74892
+ }
74893
+ function getTargetColAtConsiderRightFrozen(absoluteX, isConsider, _this) {
74894
+ if (absoluteX === 0) {
74895
+ return { left: 0, col: 0, right: 0, width: 0 };
74896
+ }
74897
+ if (isConsider &&
74898
+ absoluteX > _this.tableNoFrameWidth - _this.getRightFrozenColsWidth() &&
74899
+ absoluteX < _this.tableNoFrameWidth) {
74900
+ for (let i = 0; i < _this.rightFrozenColCount; i++) {
74901
+ if (absoluteX > _this.tableNoFrameWidth - _this.getColsWidth(_this.colCount - i - 1, _this.colCount - 1)) {
74902
+ return {
74903
+ col: _this.colCount - i - 1,
74904
+ left: undefined,
74905
+ right: undefined,
74906
+ width: undefined
74907
+ };
74908
+ }
74909
+ }
74910
+ }
74911
+ return getTargetColAt(absoluteX, _this);
74912
+ }
74913
+ function getTargetRowAtConsiderBottomFrozen(absoluteY, isConsider, _this) {
74914
+ if (absoluteY === 0) {
74915
+ return { top: 0, row: 0, bottom: 0, height: 0 };
74916
+ }
74917
+ if (isConsider &&
74918
+ absoluteY > _this.tableNoFrameHeight - _this.getBottomFrozenRowsHeight() &&
74919
+ absoluteY < _this.tableNoFrameHeight) {
74920
+ for (let i = 0; i < _this.rightFrozenColCount; i++) {
74921
+ if (absoluteY > _this.tableNoFrameHeight - _this.getRowsHeight(_this.rowCount - i - 1, _this.rowCount - 1)) {
74922
+ return {
74923
+ row: _this.rowCount - i - 1,
74924
+ top: undefined,
74925
+ bottom: undefined,
74926
+ height: undefined
74927
+ };
74928
+ }
74929
+ }
74930
+ }
74931
+ return getTargetRowAt(absoluteY, _this);
74932
+ }
74933
+ function computeTargetRowByY(absoluteY, _this) {
74934
+ let defaultRowHeight = _this.internalProps.defaultRowHeight;
74935
+ if (_this._rowRangeHeightsMap.get(`$0$${_this.rowCount - 1}`)) {
74936
+ defaultRowHeight = _this._rowRangeHeightsMap.get(`$0$${_this.rowCount - 1}`) / _this.rowCount;
74937
+ }
74938
+ return Math.min(Math.ceil(absoluteY / defaultRowHeight), _this.rowCount - 1);
74939
+ }
74940
+ function computeTargetColByX(absoluteX, _this) {
74941
+ if (_this._colRangeWidthsMap.get(`$0$${_this.colCount - 1}`)) {
74942
+ let startCol = 0;
74943
+ let endCol = _this.colCount - 1;
74944
+ while (endCol - startCol > 1) {
74945
+ const midCol = Math.floor((startCol + endCol) / 2);
74946
+ if (absoluteX < _this._colRangeWidthsMap.get(`$0$${midCol}`)) {
74947
+ endCol = midCol;
74948
+ }
74949
+ else if (absoluteX > _this._colRangeWidthsMap.get(`$0$${midCol}`)) {
74950
+ startCol = midCol;
74951
+ }
74952
+ else {
74953
+ return midCol;
74954
+ }
74955
+ }
74956
+ return endCol;
74957
+ }
74958
+ return Math.min(Math.ceil(absoluteX / _this.internalProps.defaultColWidth), _this.colCount - 1);
74959
+ }
74960
+ function getCellAtRelativePosition(x, y, _this) {
74961
+ x -= _this.tableX;
74962
+ y -= _this.tableY;
74963
+ let bottomFrozen = false;
74964
+ if (y > _this.tableNoFrameHeight - _this.getBottomFrozenRowsHeight() && y < _this.tableNoFrameHeight) {
74965
+ bottomFrozen = true;
74966
+ }
74967
+ let rightFrozen = false;
74968
+ if (x > _this.tableNoFrameWidth - _this.getRightFrozenColsWidth() && x < _this.tableNoFrameWidth) {
74969
+ rightFrozen = true;
74970
+ }
74971
+ const colInfo = getTargetColAtConsiderRightFrozen(rightFrozen ? x : x + _this.scrollLeft, rightFrozen, _this);
74972
+ const rowInfo = getTargetRowAtConsiderBottomFrozen(bottomFrozen ? y : y + _this.scrollTop, bottomFrozen, _this);
74973
+ const { row, top, bottom, height } = rowInfo;
74974
+ const { col, left, right, width } = colInfo;
74975
+ const rect = {
74976
+ left,
74977
+ right,
74978
+ top,
74979
+ bottom,
74980
+ width,
74981
+ height
74982
+ };
74983
+ return {
74984
+ row,
74985
+ col,
74986
+ rect
74987
+ };
74988
+ }
74989
+
74706
74990
  const { toBoxArray } = style;
74707
74991
  const { isTouchEvent } = event;
74708
74992
  const rangeReg = /^\$(\d+)\$(\d+)$/;
@@ -74735,7 +75019,7 @@
74735
75019
  return TABLE_EVENT_TYPE;
74736
75020
  }
74737
75021
  options;
74738
- version = "1.4.2-beta.0";
75022
+ version = "1.4.2";
74739
75023
  pagination;
74740
75024
  id = `VTable${Date.now()}`;
74741
75025
  headerStyleCache;
@@ -75720,55 +76004,16 @@
75720
76004
  return null;
75721
76005
  }
75722
76006
  getRowAt(absoluteY) {
75723
- const frozen = _getTargetFrozenRowAt(this, absoluteY);
75724
- if (frozen) {
75725
- return frozen;
75726
- }
75727
- let row = this.getTargetRowAt(absoluteY);
75728
- if (!row) {
75729
- row = {
75730
- top: -1,
75731
- row: -1,
75732
- bottom: -1,
75733
- height: -1
75734
- };
75735
- }
75736
- return row;
76007
+ return getRowAt(absoluteY, this);
75737
76008
  }
75738
76009
  getColAt(absoluteX) {
75739
- const frozen = _getTargetFrozenColAt(this, absoluteX);
75740
- if (frozen) {
75741
- return frozen;
75742
- }
75743
- let col = this.getTargetColAt(absoluteX);
75744
- if (!col) {
75745
- col = {
75746
- left: -1,
75747
- col: -1,
75748
- right: -1,
75749
- width: 1
75750
- };
75751
- }
75752
- return col;
76010
+ return getColAt(absoluteX, this);
75753
76011
  }
75754
76012
  getCellAt(absoluteX, absoluteY) {
75755
- const rowInfo = this.getRowAt(absoluteY);
75756
- const { row, top, bottom, height } = rowInfo;
75757
- const colInfo = this.getColAt(absoluteX);
75758
- const { col, left, right, width } = colInfo;
75759
- const rect = {
75760
- left,
75761
- right,
75762
- top,
75763
- bottom,
75764
- width,
75765
- height
75766
- };
75767
- return {
75768
- row,
75769
- col,
75770
- rect
75771
- };
76013
+ return getCellAt(absoluteX, absoluteY, this);
76014
+ }
76015
+ getCellAtRelativePosition(relativeX, relativeY) {
76016
+ return getCellAtRelativePosition(relativeX, relativeY, this);
75772
76017
  }
75773
76018
  _checkRowCol(col, row) {
75774
76019
  if (col >= 0 && col < this.colCount && row >= 0 && row < this.rowCount) {
@@ -76214,170 +76459,24 @@
76214
76459
  return this.internalProps.theme;
76215
76460
  }
76216
76461
  getTargetColAt(absoluteX) {
76217
- if (absoluteX === 0) {
76218
- return { left: 0, col: 0, right: 0, width: 0 };
76219
- }
76220
- const findBefore = (startCol, startRight) => {
76221
- let right = startRight;
76222
- for (let col = startCol; col >= 0; col--) {
76223
- const width = this.getColWidth(col);
76224
- const left = right - width;
76225
- if (Math.round(left) <= Math.round(absoluteX) && Math.round(absoluteX) < Math.round(right)) {
76226
- return {
76227
- left,
76228
- col,
76229
- right,
76230
- width
76231
- };
76232
- }
76233
- right = left;
76234
- }
76235
- return null;
76236
- };
76237
- const findAfter = (startCol, startRight) => {
76238
- let left = startRight - this.getColWidth(startCol);
76239
- const { colCount } = this.internalProps;
76240
- for (let col = startCol; col < colCount; col++) {
76241
- const width = this.getColWidth(col);
76242
- const right = left + width;
76243
- if (Math.round(left) <= Math.round(absoluteX) && Math.round(absoluteX) < Math.round(right)) {
76244
- return {
76245
- left,
76246
- col,
76247
- right,
76248
- width
76249
- };
76250
- }
76251
- left = right;
76252
- }
76253
- return null;
76254
- };
76255
- const candCol = this.computeTargetColByX(absoluteX);
76256
- const right = this.getColsWidth(0, candCol);
76257
- if (absoluteX >= right) {
76258
- return findAfter(candCol, right);
76259
- }
76260
- return findBefore(candCol, right);
76462
+ return getTargetColAt(absoluteX, this);
76261
76463
  }
76262
76464
  getTargetRowAt(absoluteY) {
76263
- if (absoluteY === 0) {
76264
- return { top: 0, row: 0, bottom: 0, height: 0 };
76265
- }
76266
- const findBefore = (startRow, startBottom) => {
76267
- let bottom = startBottom;
76268
- for (let row = startRow; row >= 0; row--) {
76269
- const height = this.getRowHeight(row);
76270
- const top = bottom - height;
76271
- if (Math.round(top) <= Math.round(absoluteY) && Math.round(absoluteY) < Math.round(bottom)) {
76272
- return {
76273
- top,
76274
- row,
76275
- bottom,
76276
- height
76277
- };
76278
- }
76279
- bottom = top;
76280
- }
76281
- return null;
76282
- };
76283
- const findAfter = (startRow, startBottom) => {
76284
- let top = startBottom - this.getRowHeight(startRow);
76285
- const { rowCount } = this.internalProps;
76286
- for (let row = startRow; row < rowCount; row++) {
76287
- const height = this.getRowHeight(row);
76288
- const bottom = top + height;
76289
- if (Math.round(top) <= Math.round(absoluteY) && Math.round(absoluteY) < Math.round(bottom)) {
76290
- return {
76291
- top,
76292
- row,
76293
- bottom,
76294
- height
76295
- };
76296
- }
76297
- top = bottom;
76298
- }
76299
- return null;
76300
- };
76301
- const candRow = this.computeTargetRowByY(absoluteY);
76302
- const bottom = this.getRowsHeight(0, candRow);
76303
- if (absoluteY >= bottom) {
76304
- return findAfter(candRow, bottom);
76305
- }
76306
- return findBefore(candRow, bottom);
76465
+ return getTargetRowAt(absoluteY, this);
76307
76466
  }
76308
76467
  getTargetColAtConsiderRightFrozen(absoluteX, isConsider) {
76309
- if (absoluteX === 0) {
76310
- return { left: 0, col: 0, right: 0, width: 0 };
76311
- }
76312
- if (isConsider &&
76313
- absoluteX > this.tableNoFrameWidth - this.getRightFrozenColsWidth() &&
76314
- absoluteX < this.tableNoFrameWidth) {
76315
- for (let i = 0; i < this.rightFrozenColCount; i++) {
76316
- if (absoluteX > this.tableNoFrameWidth - this.getColsWidth(this.colCount - i - 1, this.colCount - 1)) {
76317
- return {
76318
- col: this.colCount - i - 1,
76319
- left: undefined,
76320
- right: undefined,
76321
- width: undefined
76322
- };
76323
- }
76324
- }
76325
- }
76326
- return this.getTargetColAt(absoluteX);
76468
+ return getTargetColAtConsiderRightFrozen(absoluteX, isConsider, this);
76327
76469
  }
76328
76470
  getTargetRowAtConsiderBottomFrozen(absoluteY, isConsider) {
76329
- if (absoluteY === 0) {
76330
- return { top: 0, row: 0, bottom: 0, height: 0 };
76331
- }
76332
- if (isConsider &&
76333
- absoluteY > this.tableNoFrameHeight - this.getBottomFrozenRowsHeight() &&
76334
- absoluteY < this.tableNoFrameHeight) {
76335
- for (let i = 0; i < this.rightFrozenColCount; i++) {
76336
- if (absoluteY > this.tableNoFrameHeight - this.getRowsHeight(this.rowCount - i - 1, this.rowCount - 1)) {
76337
- return {
76338
- row: this.rowCount - i - 1,
76339
- top: undefined,
76340
- bottom: undefined,
76341
- height: undefined
76342
- };
76343
- }
76344
- }
76345
- }
76346
- return this.getTargetRowAt(absoluteY);
76347
- }
76348
- computeTargetRowByY(absoluteY) {
76349
- let defaultRowHeight = this.internalProps.defaultRowHeight;
76350
- if (this._rowRangeHeightsMap.get(`$0$${this.rowCount - 1}`)) {
76351
- defaultRowHeight = this._rowRangeHeightsMap.get(`$0$${this.rowCount - 1}`) / this.rowCount;
76352
- }
76353
- return Math.min(Math.ceil(absoluteY / defaultRowHeight), this.rowCount - 1);
76354
- }
76355
- computeTargetColByX(absoluteX) {
76356
- if (this._colRangeWidthsMap.get(`$0$${this.colCount - 1}`)) {
76357
- let startCol = 0;
76358
- let endCol = this.colCount - 1;
76359
- while (endCol - startCol > 1) {
76360
- const midCol = Math.floor((startCol + endCol) / 2);
76361
- if (absoluteX < this._colRangeWidthsMap.get(`$0$${midCol}`)) {
76362
- endCol = midCol;
76363
- }
76364
- else if (absoluteX > this._colRangeWidthsMap.get(`$0$${midCol}`)) {
76365
- startCol = midCol;
76366
- }
76367
- else {
76368
- return midCol;
76369
- }
76370
- }
76371
- return endCol;
76372
- }
76373
- return Math.min(Math.ceil(absoluteX / this.internalProps.defaultColWidth), this.colCount - 1);
76471
+ return getTargetRowAtConsiderBottomFrozen(absoluteY, isConsider, this);
76374
76472
  }
76375
76473
  clearSelected() {
76376
76474
  this.stateManager.updateSelectPos(-1, -1);
76377
76475
  }
76378
76476
  selectCell(col, row, isShift, isCtrl) {
76477
+ const isHasSelected = !!this.stateManager.select.ranges?.length;
76379
76478
  this.stateManager.updateSelectPos(col, row, isShift, isCtrl);
76380
- this.stateManager.endSelectCells();
76479
+ this.stateManager.endSelectCells(true, isHasSelected);
76381
76480
  }
76382
76481
  selectCells(cellRanges) {
76383
76482
  const { scrollLeft, scrollTop } = this;
@@ -76390,7 +76489,7 @@
76390
76489
  this.stateManager.updateInteractionState(InteractionState.grabing);
76391
76490
  this.stateManager.updateSelectPos(cellRange.end.col, cellRange.end.row, false, index >= 1, false, false, true);
76392
76491
  }
76393
- this.stateManager.endSelectCells(false);
76492
+ this.stateManager.endSelectCells(false, false);
76394
76493
  this.stateManager.updateInteractionState(InteractionState.default);
76395
76494
  });
76396
76495
  this.setScrollTop(scrollTop);
@@ -78082,8 +78181,10 @@
78082
78181
  seqId = 0;
78083
78182
  _headerObjects;
78084
78183
  _headerObjectMap;
78184
+ _headerObjectsIncludeHided;
78085
78185
  _headerCellIds;
78086
78186
  _columns;
78187
+ _columnsIncludeHided;
78087
78188
  rowSeriesNumberColumn;
78088
78189
  leftRowSeriesNumberColumn;
78089
78190
  rightRowSeriesNumberColumn;
@@ -78107,11 +78208,15 @@
78107
78208
  this._showHeader = showHeader;
78108
78209
  this._table = table;
78109
78210
  this._columns = [];
78211
+ this._columnsIncludeHided = [];
78110
78212
  this._headerCellIds = [];
78111
78213
  this.hierarchyIndent = hierarchyIndent ?? 20;
78112
78214
  this.hierarchyTextStartAlignment = table.options.hierarchyTextStartAlignment;
78113
78215
  this.columnTree = new DimensionTree(columns, { seqId: 0 });
78114
- this._headerObjects = this._addHeaders(0, columns, []);
78216
+ this._headerObjectsIncludeHided = this._addHeaders(0, columns, []);
78217
+ this._headerObjects = this._headerObjectsIncludeHided.filter(col => {
78218
+ return col.define.hide !== true;
78219
+ });
78115
78220
  this._headerObjectMap = this._headerObjects.reduce((o, e) => {
78116
78221
  o[e.id] = e;
78117
78222
  return o;
@@ -78685,6 +78790,9 @@
78685
78790
  get columnObjects() {
78686
78791
  return this._columns;
78687
78792
  }
78793
+ get headerObjectsIncludeHided() {
78794
+ return this._headerObjectsIncludeHided;
78795
+ }
78688
78796
  get columnWidths() {
78689
78797
  if (this.leftRowSeriesNumberColumnCount) {
78690
78798
  const widths = this.leftRowSeriesNumberColumn.map(item => {
@@ -79033,28 +79141,31 @@
79033
79141
  this._addHeaders(row + 1, hd.columns, [...roots, id], hd.hideColumnsSubHeader || hideColumnsSubHeader).forEach(c => results.push(c));
79034
79142
  }
79035
79143
  else {
79036
- const colDef = hd;
79037
- this._columns.push({
79144
+ const colDef = {
79038
79145
  id: this.seqId++,
79039
- field: colDef.field,
79040
- fieldFormat: colDef.fieldFormat,
79041
- width: colDef.width,
79042
- minWidth: colDef.minWidth,
79043
- maxWidth: colDef.maxWidth,
79044
- icon: colDef.icon,
79045
- cellType: colDef.cellType ?? colDef.columnType ?? 'text',
79046
- chartModule: 'chartModule' in colDef ? colDef.chartModule : null,
79047
- chartSpec: 'chartSpec' in colDef ? colDef.chartSpec : null,
79048
- sparklineSpec: 'sparklineSpec' in colDef ? colDef.sparklineSpec : DefaultSparklineSpec,
79049
- style: colDef.style,
79050
- define: colDef,
79051
- columnWidthComputeMode: colDef.columnWidthComputeMode,
79052
- disableColumnResize: colDef?.disableColumnResize,
79053
- aggregation: this._getAggregationForColumn(colDef, col),
79146
+ field: hd.field,
79147
+ fieldFormat: hd.fieldFormat,
79148
+ width: hd.width,
79149
+ minWidth: hd.minWidth,
79150
+ maxWidth: hd.maxWidth,
79151
+ icon: hd.icon,
79152
+ cellType: hd.cellType ?? hd.columnType ?? 'text',
79153
+ chartModule: 'chartModule' in hd ? hd.chartModule : null,
79154
+ chartSpec: 'chartSpec' in hd ? hd.chartSpec : null,
79155
+ sparklineSpec: 'sparklineSpec' in hd ? hd.sparklineSpec : DefaultSparklineSpec,
79156
+ style: hd.style,
79157
+ define: hd,
79158
+ columnWidthComputeMode: hd.columnWidthComputeMode,
79159
+ disableColumnResize: hd?.disableColumnResize,
79160
+ aggregation: this._getAggregationForColumn(hd, col),
79054
79161
  isChildNode: row >= 1
79055
- });
79056
- for (let r = row + 1; r < this._headerCellIds.length; r++) {
79057
- this._headerCellIds[r][col] = id;
79162
+ };
79163
+ this._columnsIncludeHided.push(colDef);
79164
+ if (hd.hide !== true) {
79165
+ this._columns.push(colDef);
79166
+ for (let r = row + 1; r < this._headerCellIds.length; r++) {
79167
+ this._headerCellIds[r][col] = id;
79168
+ }
79058
79169
  }
79059
79170
  }
79060
79171
  });
@@ -79593,18 +79704,18 @@
79593
79704
  }
79594
79705
  completeEdit(e) {
79595
79706
  if (!this.editingEditor) {
79596
- return;
79707
+ return true;
79597
79708
  }
79598
79709
  const target = e?.target;
79599
79710
  const { editingEditor: editor } = this;
79600
79711
  if (target) {
79601
79712
  if (editor.targetIsOnEditor) {
79602
79713
  if (editor.targetIsOnEditor(target)) {
79603
- return;
79714
+ return false;
79604
79715
  }
79605
79716
  }
79606
79717
  else if (!editor.isEditorElement || editor.isEditorElement(target)) {
79607
- return;
79718
+ return false;
79608
79719
  }
79609
79720
  }
79610
79721
  if (!this.editingEditor.getValue) ;
@@ -79624,7 +79735,9 @@
79624
79735
  this.editingEditor.exit?.();
79625
79736
  this.editingEditor.onEnd?.();
79626
79737
  this.editingEditor = null;
79738
+ return true;
79627
79739
  }
79740
+ return false;
79628
79741
  }
79629
79742
  cancelEdit() {
79630
79743
  if (this.editingEditor) {
@@ -80478,7 +80591,7 @@
80478
80591
  }
80479
80592
  if (order && field && order !== 'normal') {
80480
80593
  const sortFunc = this._getSortFuncFromHeaderOption(undefined, field);
80481
- const hd = this.internalProps.layoutMap.headerObjects.find((col) => col && col.field === field);
80594
+ const hd = this.internalProps.layoutMap.headerObjectsIncludeHided.find((col) => col && col.field === field);
80482
80595
  if (hd.define.sort !== false) {
80483
80596
  this.dataSource.sort(hd.field, order, sortFunc ?? defaultOrderFn);
80484
80597
  }
@@ -81297,58 +81410,54 @@
81297
81410
  });
81298
81411
  }
81299
81412
  this.sharedVar.seqId = Math.max(this.sharedVar.seqId, this._headerObjects.length);
81300
- if (this.cornerSetting.titleOnDimension === 'column') {
81301
- let colDimensionKeys = this.columnDimensionTree.dimensionKeysIncludeVirtual.valueArr();
81413
+ let colDimensionKeys = this.columnDimensionTree.dimensionKeysIncludeVirtual.valueArr();
81414
+ if (this.dataset &&
81415
+ (this.dataset.records?.length ?? 0) === 0 &&
81416
+ !this.dataset.customColTree &&
81417
+ !this.dataset.customRowTree) {
81418
+ colDimensionKeys = this.columnsDefine.map(define => {
81419
+ if (typeof define === 'string') {
81420
+ return define;
81421
+ }
81422
+ return define.dimensionKey;
81423
+ });
81424
+ if (this.indicatorsAsCol) {
81425
+ colDimensionKeys.push(this.indicatorDimensionKey);
81426
+ }
81427
+ }
81428
+ colDimensionKeys = this.columnHeaderTitle ? [''].concat(colDimensionKeys) : colDimensionKeys;
81429
+ let rowDimensionKeys;
81430
+ let extensionRowDimensions = [];
81431
+ if (this.rowHierarchyType === 'tree' && this.extensionRows?.length >= 1) {
81432
+ const rowTreeFirstKey = [];
81433
+ rowTreeFirstKey.push(this.rowDimensionKeys[0]);
81434
+ this._extensionRowDimensionKeys.forEach(extensionRowKeys => {
81435
+ rowTreeFirstKey.push(extensionRowKeys[0]);
81436
+ });
81437
+ extensionRowDimensions = this.extensionRows.reduce((dimensions, cur) => {
81438
+ return dimensions.concat(cur.rows);
81439
+ }, []);
81440
+ rowDimensionKeys = this.rowHeaderTitle ? [''].concat(rowTreeFirstKey) : rowTreeFirstKey;
81441
+ }
81442
+ else {
81443
+ rowDimensionKeys = this.rowDimensionTree.dimensionKeysIncludeVirtual.valueArr();
81302
81444
  if (this.dataset &&
81303
81445
  (this.dataset.records?.length ?? 0) === 0 &&
81304
81446
  !this.dataset.customColTree &&
81305
81447
  !this.dataset.customRowTree) {
81306
- colDimensionKeys = this.columnsDefine.map(define => {
81448
+ rowDimensionKeys = this.rowsDefine.map(define => {
81307
81449
  if (typeof define === 'string') {
81308
81450
  return define;
81309
81451
  }
81310
81452
  return define.dimensionKey;
81311
81453
  });
81312
- if (this.indicatorsAsCol) {
81313
- colDimensionKeys.push(this.indicatorDimensionKey);
81454
+ if (!this.indicatorsAsCol) {
81455
+ rowDimensionKeys.push(this.indicatorDimensionKey);
81314
81456
  }
81315
81457
  }
81316
- this.cornerHeaderObjs = this._addCornerHeaders(this.columnHeaderTitle ? [''].concat(colDimensionKeys) : colDimensionKeys, this.columnsDefine);
81317
- }
81318
- else if (this.cornerSetting.titleOnDimension === 'row') {
81319
- if (this.rowHierarchyType === 'tree' && this.extensionRows?.length >= 1) {
81320
- const rowTreeFirstKey = [];
81321
- rowTreeFirstKey.push(this.rowDimensionKeys[0]);
81322
- this._extensionRowDimensionKeys.forEach(extensionRowKeys => {
81323
- rowTreeFirstKey.push(extensionRowKeys[0]);
81324
- });
81325
- const extensionRowDimensions = this.extensionRows.reduce((dimensions, cur) => {
81326
- return dimensions.concat(cur.rows);
81327
- }, []);
81328
- this.cornerHeaderObjs = this._addCornerHeaders(this.rowHeaderTitle ? [''].concat(rowTreeFirstKey) : rowTreeFirstKey, this.rowsDefine.concat(extensionRowDimensions));
81329
- }
81330
- else {
81331
- let rowDimensionKeys = this.rowDimensionTree.dimensionKeysIncludeVirtual.valueArr();
81332
- if (this.dataset &&
81333
- (this.dataset.records?.length ?? 0) === 0 &&
81334
- !this.dataset.customColTree &&
81335
- !this.dataset.customRowTree) {
81336
- rowDimensionKeys = this.rowsDefine.map(define => {
81337
- if (typeof define === 'string') {
81338
- return define;
81339
- }
81340
- return define.dimensionKey;
81341
- });
81342
- if (!this.indicatorsAsCol) {
81343
- rowDimensionKeys.push(this.indicatorDimensionKey);
81344
- }
81345
- }
81346
- this.cornerHeaderObjs = this._addCornerHeaders(this.rowHeaderTitle ? [''].concat(rowDimensionKeys) : rowDimensionKeys, this.rowsDefine);
81347
- }
81348
- }
81349
- else {
81350
- this.cornerHeaderObjs = this._addCornerHeaders(null, undefined);
81458
+ rowDimensionKeys = this.rowHeaderTitle ? [''].concat(rowDimensionKeys) : rowDimensionKeys;
81351
81459
  }
81460
+ this.cornerHeaderObjs = this._addCornerHeaders(colDimensionKeys, rowDimensionKeys, this.columnsDefine.concat(...this.rowsDefine, ...extensionRowDimensions));
81352
81461
  this.colIndex = 0;
81353
81462
  this._headerObjectMap = this._headerObjects.reduce((o, e) => {
81354
81463
  o[e.id] = e;
@@ -81581,63 +81690,257 @@
81581
81690
  dealHeaderForTreeMode(hd, _headerCellIds, results, roots, row, totalLevel, show, dimensions, this);
81582
81691
  }
81583
81692
  }
81584
- _addCornerHeaders(dimensionKeys, dimensions) {
81693
+ _addCornerHeaders(colDimensionKeys, rowDimensionKeys, dimensions) {
81585
81694
  const results = [];
81586
- if (dimensionKeys) {
81587
- dimensionKeys.forEach((dimensionKey, key) => {
81588
- const id = ++this.sharedVar.seqId;
81589
- const dimensionInfo = dimensions.find(dimension => typeof dimension === 'string' ? false : dimension.dimensionKey === dimensionKey);
81590
- const cell = {
81591
- id,
81592
- title: dimensionKey === this.indicatorDimensionKey
81593
- ? this.indicatorTitle
81594
- : dimensionInfo
81595
- ? dimensionInfo.title
81596
- : dimensionKey === 'axis'
81597
- ? ''
81598
- : dimensionKey,
81599
- field: dimensionKey,
81600
- style: this.cornerSetting.headerStyle,
81601
- headerType: this.cornerSetting.headerType ?? 'text',
81602
- showSort: dimensionInfo?.showSortInCorner,
81603
- sort: dimensionInfo?.sort,
81604
- define: {
81695
+ if (this.cornerSetting.titleOnDimension === 'all') {
81696
+ if (this.indicatorsAsCol) {
81697
+ let indicatorAtIndex = -1;
81698
+ if (colDimensionKeys) {
81699
+ colDimensionKeys.forEach((dimensionKey, key) => {
81700
+ if (dimensionKey === this.indicatorDimensionKey) {
81701
+ indicatorAtIndex = key;
81702
+ }
81703
+ const id = ++this.sharedVar.seqId;
81704
+ const dimensionInfo = dimensions.find(dimension => typeof dimension === 'string' ? false : dimension.dimensionKey === dimensionKey);
81705
+ const cell = {
81706
+ id,
81707
+ title: dimensionKey === this.indicatorDimensionKey
81708
+ ? this.indicatorTitle
81709
+ : dimensionInfo
81710
+ ? dimensionInfo.title
81711
+ : dimensionKey === 'axis'
81712
+ ? ''
81713
+ : dimensionKey,
81714
+ field: dimensionKey,
81715
+ style: this.cornerSetting.headerStyle,
81716
+ headerType: this.cornerSetting.headerType ?? 'text',
81717
+ showSort: dimensionInfo?.showSortInCorner,
81718
+ sort: dimensionInfo?.sort,
81719
+ define: {
81720
+ showSort: dimensionInfo?.showSortInCorner,
81721
+ sort: dimensionInfo?.sort,
81722
+ dimensionKey: dimensionKey,
81723
+ id,
81724
+ value: dimensionKey,
81725
+ headerEditor: this.cornerSetting.headerEditor,
81726
+ disableHeaderHover: !!this.cornerSetting.disableHeaderHover,
81727
+ disableHeaderSelect: !!this.cornerSetting.disableHeaderSelect
81728
+ },
81729
+ dropDownMenu: dimensionInfo?.cornerDropDownMenu,
81730
+ pivotInfo: {
81731
+ value: dimensionInfo?.title ?? '',
81732
+ dimensionKey,
81733
+ isPivotCorner: true
81734
+ },
81735
+ description: dimensionInfo?.cornerDescription
81736
+ };
81737
+ results[id] = cell;
81738
+ this._headerObjects[id] = cell;
81739
+ if (!this._cornerHeaderCellFullPathIds[key]) {
81740
+ this._cornerHeaderCellFullPathIds[key] = [];
81741
+ }
81742
+ for (let r = 0; r < this.rowHeaderLevelCount; r++) {
81743
+ this._cornerHeaderCellFullPathIds[key][r] = id;
81744
+ }
81745
+ });
81746
+ }
81747
+ if (rowDimensionKeys) {
81748
+ rowDimensionKeys.forEach((dimensionKey, key) => {
81749
+ const id = ++this.sharedVar.seqId;
81750
+ const dimensionInfo = dimensions.find(dimension => typeof dimension === 'string' ? false : dimension.dimensionKey === dimensionKey);
81751
+ const cell = {
81752
+ id,
81753
+ title: dimensionKey === this.indicatorDimensionKey
81754
+ ? this.indicatorTitle
81755
+ : dimensionInfo
81756
+ ? dimensionInfo.title
81757
+ : dimensionKey === 'axis'
81758
+ ? ''
81759
+ : dimensionKey,
81760
+ field: dimensionKey,
81761
+ style: this.cornerSetting.headerStyle,
81762
+ headerType: this.cornerSetting.headerType ?? 'text',
81763
+ showSort: dimensionInfo?.showSortInCorner,
81764
+ sort: dimensionInfo?.sort,
81765
+ define: {
81766
+ showSort: dimensionInfo?.showSortInCorner,
81767
+ sort: dimensionInfo?.sort,
81768
+ dimensionKey: dimensionKey,
81769
+ id,
81770
+ value: dimensionKey,
81771
+ headerEditor: this.cornerSetting.headerEditor,
81772
+ disableHeaderHover: !!this.cornerSetting.disableHeaderHover,
81773
+ disableHeaderSelect: !!this.cornerSetting.disableHeaderSelect
81774
+ },
81775
+ dropDownMenu: dimensionInfo?.cornerDropDownMenu,
81776
+ pivotInfo: {
81777
+ value: dimensionInfo?.title ?? '',
81778
+ dimensionKey,
81779
+ isPivotCorner: true
81780
+ },
81781
+ description: dimensionInfo?.cornerDescription
81782
+ };
81783
+ results[id] = cell;
81784
+ this._headerObjects[id] = cell;
81785
+ if (!this._cornerHeaderCellFullPathIds[indicatorAtIndex]) {
81786
+ this._cornerHeaderCellFullPathIds[indicatorAtIndex] = [];
81787
+ }
81788
+ this._cornerHeaderCellFullPathIds[indicatorAtIndex][key] = id;
81789
+ });
81790
+ }
81791
+ }
81792
+ else {
81793
+ let indicatorAtIndex = -1;
81794
+ if (rowDimensionKeys) {
81795
+ rowDimensionKeys.forEach((dimensionKey, key) => {
81796
+ if (dimensionKey === this.indicatorDimensionKey) {
81797
+ indicatorAtIndex = key;
81798
+ }
81799
+ const id = ++this.sharedVar.seqId;
81800
+ const dimensionInfo = dimensions.find(dimension => typeof dimension === 'string' ? false : dimension.dimensionKey === dimensionKey);
81801
+ const cell = {
81802
+ id,
81803
+ title: dimensionKey === this.indicatorDimensionKey
81804
+ ? this.indicatorTitle
81805
+ : dimensionInfo
81806
+ ? dimensionInfo.title
81807
+ : dimensionKey === 'axis'
81808
+ ? ''
81809
+ : dimensionKey,
81810
+ field: dimensionKey,
81811
+ style: this.cornerSetting.headerStyle,
81812
+ headerType: this.cornerSetting.headerType ?? 'text',
81813
+ showSort: dimensionInfo?.showSortInCorner,
81814
+ sort: dimensionInfo?.sort,
81815
+ define: {
81816
+ showSort: dimensionInfo?.showSortInCorner,
81817
+ sort: dimensionInfo?.sort,
81818
+ dimensionKey: dimensionKey,
81819
+ id,
81820
+ value: dimensionKey,
81821
+ headerEditor: this.cornerSetting.headerEditor,
81822
+ disableHeaderHover: !!this.cornerSetting.disableHeaderHover,
81823
+ disableHeaderSelect: !!this.cornerSetting.disableHeaderSelect
81824
+ },
81825
+ dropDownMenu: dimensionInfo?.cornerDropDownMenu,
81826
+ pivotInfo: {
81827
+ value: dimensionInfo?.title ?? '',
81828
+ dimensionKey,
81829
+ isPivotCorner: true
81830
+ },
81831
+ description: dimensionInfo?.cornerDescription
81832
+ };
81833
+ results[id] = cell;
81834
+ this._headerObjects[id] = cell;
81835
+ for (let r = 0; r < this.columnHeaderLevelCount; r++) {
81836
+ if (!this._cornerHeaderCellFullPathIds[r]) {
81837
+ this._cornerHeaderCellFullPathIds[r] = [];
81838
+ }
81839
+ this._cornerHeaderCellFullPathIds[r][key] = id;
81840
+ }
81841
+ });
81842
+ }
81843
+ if (colDimensionKeys) {
81844
+ colDimensionKeys.forEach((dimensionKey, key) => {
81845
+ const id = ++this.sharedVar.seqId;
81846
+ const dimensionInfo = dimensions.find(dimension => typeof dimension === 'string' ? false : dimension.dimensionKey === dimensionKey);
81847
+ const cell = {
81848
+ id,
81849
+ title: dimensionKey === this.indicatorDimensionKey
81850
+ ? this.indicatorTitle
81851
+ : dimensionInfo
81852
+ ? dimensionInfo.title
81853
+ : dimensionKey === 'axis'
81854
+ ? ''
81855
+ : dimensionKey,
81856
+ field: dimensionKey,
81857
+ style: this.cornerSetting.headerStyle,
81858
+ headerType: this.cornerSetting.headerType ?? 'text',
81859
+ showSort: dimensionInfo?.showSortInCorner,
81860
+ sort: dimensionInfo?.sort,
81861
+ define: {
81862
+ showSort: dimensionInfo?.showSortInCorner,
81863
+ sort: dimensionInfo?.sort,
81864
+ dimensionKey: dimensionKey,
81865
+ id,
81866
+ value: dimensionKey,
81867
+ headerEditor: this.cornerSetting.headerEditor,
81868
+ disableHeaderHover: !!this.cornerSetting.disableHeaderHover,
81869
+ disableHeaderSelect: !!this.cornerSetting.disableHeaderSelect
81870
+ },
81871
+ dropDownMenu: dimensionInfo?.cornerDropDownMenu,
81872
+ pivotInfo: {
81873
+ value: dimensionInfo?.title ?? '',
81874
+ dimensionKey,
81875
+ isPivotCorner: true
81876
+ },
81877
+ description: dimensionInfo?.cornerDescription
81878
+ };
81879
+ results[id] = cell;
81880
+ this._headerObjects[id] = cell;
81881
+ this._cornerHeaderCellFullPathIds[key][indicatorAtIndex] = id;
81882
+ });
81883
+ }
81884
+ }
81885
+ }
81886
+ else if (this.cornerSetting.titleOnDimension === 'row' || this.cornerSetting.titleOnDimension === 'column') {
81887
+ const dimensionKeys = this.cornerSetting?.titleOnDimension === 'row' ? rowDimensionKeys : colDimensionKeys;
81888
+ if (dimensionKeys) {
81889
+ dimensionKeys.forEach((dimensionKey, key) => {
81890
+ const id = ++this.sharedVar.seqId;
81891
+ const dimensionInfo = dimensions.find(dimension => typeof dimension === 'string' ? false : dimension.dimensionKey === dimensionKey);
81892
+ const cell = {
81893
+ id,
81894
+ title: dimensionKey === this.indicatorDimensionKey
81895
+ ? this.indicatorTitle
81896
+ : dimensionInfo
81897
+ ? dimensionInfo.title
81898
+ : dimensionKey === 'axis'
81899
+ ? ''
81900
+ : dimensionKey,
81901
+ field: dimensionKey,
81902
+ style: this.cornerSetting.headerStyle,
81903
+ headerType: this.cornerSetting.headerType ?? 'text',
81605
81904
  showSort: dimensionInfo?.showSortInCorner,
81606
81905
  sort: dimensionInfo?.sort,
81607
- dimensionKey: dimensionKey,
81608
- id,
81609
- value: dimensionKey,
81610
- headerEditor: this.cornerSetting.headerEditor,
81611
- disableHeaderHover: !!this.cornerSetting.disableHeaderHover,
81612
- disableHeaderSelect: !!this.cornerSetting.disableHeaderSelect
81613
- },
81614
- dropDownMenu: dimensionInfo?.cornerDropDownMenu,
81615
- pivotInfo: {
81616
- value: dimensionInfo?.title ?? '',
81617
- dimensionKey,
81618
- isPivotCorner: true
81619
- },
81620
- description: dimensionInfo?.cornerDescription
81621
- };
81622
- results[id] = cell;
81623
- this._headerObjects[id] = cell;
81624
- if (this.cornerSetting.titleOnDimension === 'column') {
81625
- if (!this._cornerHeaderCellFullPathIds[key]) {
81626
- this._cornerHeaderCellFullPathIds[key] = [];
81627
- }
81628
- for (let r = 0; r < this.rowHeaderLevelCount; r++) {
81629
- this._cornerHeaderCellFullPathIds[key][r] = id;
81906
+ define: {
81907
+ showSort: dimensionInfo?.showSortInCorner,
81908
+ sort: dimensionInfo?.sort,
81909
+ dimensionKey: dimensionKey,
81910
+ id,
81911
+ value: dimensionKey,
81912
+ headerEditor: this.cornerSetting.headerEditor,
81913
+ disableHeaderHover: !!this.cornerSetting.disableHeaderHover,
81914
+ disableHeaderSelect: !!this.cornerSetting.disableHeaderSelect
81915
+ },
81916
+ dropDownMenu: dimensionInfo?.cornerDropDownMenu,
81917
+ pivotInfo: {
81918
+ value: dimensionInfo?.title ?? '',
81919
+ dimensionKey,
81920
+ isPivotCorner: true
81921
+ },
81922
+ description: dimensionInfo?.cornerDescription
81923
+ };
81924
+ results[id] = cell;
81925
+ this._headerObjects[id] = cell;
81926
+ if (this.cornerSetting.titleOnDimension === 'column') {
81927
+ if (!this._cornerHeaderCellFullPathIds[key]) {
81928
+ this._cornerHeaderCellFullPathIds[key] = [];
81929
+ }
81930
+ for (let r = 0; r < this.rowHeaderLevelCount; r++) {
81931
+ this._cornerHeaderCellFullPathIds[key][r] = id;
81932
+ }
81630
81933
  }
81631
- }
81632
- else if (this.cornerSetting.titleOnDimension === 'row') {
81633
- for (let r = 0; r < this.columnHeaderLevelCount; r++) {
81634
- if (!this._cornerHeaderCellFullPathIds[r]) {
81635
- this._cornerHeaderCellFullPathIds[r] = [];
81934
+ else if (this.cornerSetting.titleOnDimension === 'row') {
81935
+ for (let r = 0; r < this.columnHeaderLevelCount; r++) {
81936
+ if (!this._cornerHeaderCellFullPathIds[r]) {
81937
+ this._cornerHeaderCellFullPathIds[r] = [];
81938
+ }
81939
+ this._cornerHeaderCellFullPathIds[r][key] = id;
81636
81940
  }
81637
- this._cornerHeaderCellFullPathIds[r][key] = id;
81638
81941
  }
81639
- }
81640
- });
81942
+ });
81943
+ }
81641
81944
  }
81642
81945
  else {
81643
81946
  const id = ++this.sharedVar.seqId;
@@ -82038,7 +82341,8 @@
82038
82341
  if (this.cornerSetting.titleOnDimension === 'row') {
82039
82342
  count = 1;
82040
82343
  }
82041
- else if ((this.dataset.records?.length ?? 0) === 0 && this.cornerSetting.titleOnDimension === 'column') {
82344
+ else if ((this.dataset.records?.length ?? 0) === 0 &&
82345
+ (this.cornerSetting.titleOnDimension === 'column' || this.cornerSetting.titleOnDimension === 'all')) {
82042
82346
  count = this.columnsDefine.length ?? 0;
82043
82347
  }
82044
82348
  }
@@ -82046,7 +82350,7 @@
82046
82350
  (this.dataset.records?.length ?? 0) === 0 &&
82047
82351
  !this.dataset.customColTree &&
82048
82352
  !this.dataset.customRowTree) {
82049
- if (this.cornerSetting.titleOnDimension === 'column') {
82353
+ if (this.cornerSetting.titleOnDimension === 'column' || this.cornerSetting.titleOnDimension === 'all') {
82050
82354
  count = this.columnsDefine.length ?? 0;
82051
82355
  if (!this.hideIndicatorName && this.indicatorsAsCol) {
82052
82356
  count++;
@@ -82084,7 +82388,8 @@
82084
82388
  if (this.cornerSetting.titleOnDimension === 'column') {
82085
82389
  count = 1;
82086
82390
  }
82087
- else if ((this.dataset.records?.length ?? 0) === 0 && this.cornerSetting.titleOnDimension === 'row') {
82391
+ else if ((this.dataset.records?.length ?? 0) === 0 &&
82392
+ (this.cornerSetting.titleOnDimension === 'row' || this.cornerSetting.titleOnDimension === 'all')) {
82088
82393
  count = this.rowsDefine.length ?? 0;
82089
82394
  }
82090
82395
  }
@@ -82092,7 +82397,7 @@
82092
82397
  (this.dataset.records?.length ?? 0) === 0 &&
82093
82398
  !this.dataset.customColTree &&
82094
82399
  !this.dataset.customRowTree) {
82095
- if (this.cornerSetting.titleOnDimension === 'row') {
82400
+ if (this.cornerSetting.titleOnDimension === 'row' || this.cornerSetting.titleOnDimension === 'all') {
82096
82401
  count = this.rowsDefine.length;
82097
82402
  if (!this.hideIndicatorName && !this.indicatorsAsCol) {
82098
82403
  count++;
@@ -85715,7 +86020,11 @@
85715
86020
  const cellDimensionPath = this.internalProps.layoutMap.getCellHeaderPaths(col, row);
85716
86021
  if (cellDimensionPath) {
85717
86022
  let indicatorPosition;
85718
- const colKeys = cellDimensionPath.colHeaderPaths.map((colPath, index) => {
86023
+ const colKeys = cellDimensionPath.colHeaderPaths
86024
+ ?.filter((path) => {
86025
+ return !path.virtual;
86026
+ })
86027
+ .map((colPath, index) => {
85719
86028
  if (colPath.indicatorKey) {
85720
86029
  indicatorPosition = {
85721
86030
  position: 'col',
@@ -85724,7 +86033,11 @@
85724
86033
  }
85725
86034
  return colPath.indicatorKey ?? colPath.value;
85726
86035
  });
85727
- const rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath, index) => {
86036
+ const rowKeys = cellDimensionPath.rowHeaderPaths
86037
+ ?.filter((path) => {
86038
+ return !path.virtual;
86039
+ })
86040
+ .map((rowPath, index) => {
85728
86041
  if (rowPath.indicatorKey) {
85729
86042
  indicatorPosition = {
85730
86043
  position: 'row',
@@ -85850,7 +86163,11 @@
85850
86163
  else if (this.dataset) {
85851
86164
  let indicatorPosition;
85852
86165
  const cellDimensionPath = this.internalProps.layoutMap.getCellHeaderPaths(col, row);
85853
- const colKeys = cellDimensionPath.colHeaderPaths.map((colPath, index) => {
86166
+ const colKeys = cellDimensionPath.colHeaderPaths
86167
+ ?.filter((path) => {
86168
+ return !path.virtual;
86169
+ })
86170
+ .map((colPath, index) => {
85854
86171
  if (colPath.indicatorKey) {
85855
86172
  indicatorPosition = {
85856
86173
  position: 'col',
@@ -85859,7 +86176,11 @@
85859
86176
  }
85860
86177
  return colPath.indicatorKey ?? colPath.value;
85861
86178
  });
85862
- const rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath, index) => {
86179
+ const rowKeys = cellDimensionPath.rowHeaderPaths
86180
+ ?.filter((path) => {
86181
+ return !path.virtual;
86182
+ })
86183
+ .map((rowPath, index) => {
85863
86184
  if (rowPath.indicatorKey) {
85864
86185
  indicatorPosition = {
85865
86186
  position: 'row',
@@ -85898,7 +86219,11 @@
85898
86219
  else if (this.dataset) {
85899
86220
  let indicatorPosition;
85900
86221
  const cellDimensionPath = this.internalProps.layoutMap.getCellHeaderPaths(col, row);
85901
- const colKeys = cellDimensionPath.colHeaderPaths.map((colPath, index) => {
86222
+ const colKeys = cellDimensionPath.colHeaderPaths
86223
+ ?.filter((path) => {
86224
+ return !path.virtual;
86225
+ })
86226
+ .map((colPath, index) => {
85902
86227
  if (colPath.indicatorKey) {
85903
86228
  indicatorPosition = {
85904
86229
  position: 'col',
@@ -85907,7 +86232,11 @@
85907
86232
  }
85908
86233
  return colPath.indicatorKey ?? colPath.value;
85909
86234
  });
85910
- const rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath, index) => {
86235
+ const rowKeys = cellDimensionPath.rowHeaderPaths
86236
+ ?.filter((path) => {
86237
+ return !path.virtual;
86238
+ })
86239
+ .map((rowPath, index) => {
85911
86240
  if (rowPath.indicatorKey) {
85912
86241
  indicatorPosition = {
85913
86242
  position: 'row',
@@ -85945,7 +86274,11 @@
85945
86274
  else if (this.dataset) {
85946
86275
  let indicatorPosition;
85947
86276
  const cellDimensionPath = this.internalProps.layoutMap.getCellHeaderPaths(col, row);
85948
- const colKeys = cellDimensionPath.colHeaderPaths.map((colPath, index) => {
86277
+ const colKeys = cellDimensionPath.colHeaderPaths
86278
+ ?.filter((path) => {
86279
+ return !path.virtual;
86280
+ })
86281
+ .map((colPath, index) => {
85949
86282
  if (colPath.indicatorKey) {
85950
86283
  indicatorPosition = {
85951
86284
  position: 'col',
@@ -85954,7 +86287,11 @@
85954
86287
  }
85955
86288
  return colPath.indicatorKey ?? colPath.value;
85956
86289
  });
85957
- const rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath, index) => {
86290
+ const rowKeys = cellDimensionPath.rowHeaderPaths
86291
+ ?.filter((path) => {
86292
+ return !path.virtual;
86293
+ })
86294
+ .map((rowPath, index) => {
85958
86295
  if (rowPath.indicatorKey) {
85959
86296
  indicatorPosition = {
85960
86297
  position: 'row',
@@ -85992,7 +86329,11 @@
85992
86329
  else if (this.dataset) {
85993
86330
  let indicatorPosition;
85994
86331
  const cellDimensionPath = this.internalProps.layoutMap.getCellHeaderPaths(col, row);
85995
- const colKeys = cellDimensionPath.colHeaderPaths.map((colPath, index) => {
86332
+ const colKeys = cellDimensionPath.colHeaderPaths
86333
+ ?.filter((path) => {
86334
+ return !path.virtual;
86335
+ })
86336
+ .map((colPath, index) => {
85996
86337
  if (colPath.indicatorKey) {
85997
86338
  indicatorPosition = {
85998
86339
  position: 'col',
@@ -86001,7 +86342,11 @@
86001
86342
  }
86002
86343
  return colPath.indicatorKey ?? colPath.value;
86003
86344
  });
86004
- const rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath, index) => {
86345
+ const rowKeys = cellDimensionPath.rowHeaderPaths
86346
+ ?.filter((path) => {
86347
+ return !path.virtual;
86348
+ })
86349
+ .map((rowPath, index) => {
86005
86350
  if (rowPath.indicatorKey) {
86006
86351
  indicatorPosition = {
86007
86352
  position: 'row',
@@ -86643,10 +86988,18 @@
86643
86988
  cellDimensionPath.rowHeaderPaths[cellDimensionPath.rowHeaderPaths.length - 1].dimensionKey, oldValue, newValue);
86644
86989
  }
86645
86990
  else {
86646
- const colKeys = cellDimensionPath.colHeaderPaths.map((colPath) => {
86991
+ const colKeys = cellDimensionPath.colHeaderPaths
86992
+ ?.filter((path) => {
86993
+ return !path.virtual;
86994
+ })
86995
+ .map((colPath) => {
86647
86996
  return colPath.indicatorKey ?? colPath.value;
86648
86997
  });
86649
- const rowKeys = cellDimensionPath.rowHeaderPaths.map((rowPath) => {
86998
+ const rowKeys = cellDimensionPath.rowHeaderPaths
86999
+ ?.filter((path) => {
87000
+ return !path.virtual;
87001
+ })
87002
+ .map((rowPath) => {
86650
87003
  return rowPath.indicatorKey ?? rowPath.value;
86651
87004
  });
86652
87005
  this.dataset.changeTreeNodeValue(!this.internalProps.layoutMap.indicatorsAsCol ? rowKeys.slice(0, -1) : rowKeys, this.internalProps.layoutMap.indicatorsAsCol ? colKeys.slice(0, -1) : colKeys, this.internalProps.layoutMap.getIndicatorKey(col, row), newValue);
@@ -88335,7 +88688,7 @@
88335
88688
  }
88336
88689
 
88337
88690
  registerForVrender();
88338
- const version = "1.4.2-beta.0";
88691
+ const version = "1.4.2";
88339
88692
  function getIcons() {
88340
88693
  return get$2();
88341
88694
  }