@visactor/vtable 1.22.11-alpha.7 → 1.22.11-alpha.8

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 (151) hide show
  1. package/cjs/ListTable.d.ts +7 -34
  2. package/cjs/ListTable.js +14 -134
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.d.ts +3 -0
  5. package/cjs/PivotChart.js +12 -5
  6. package/cjs/PivotChart.js.map +1 -1
  7. package/cjs/core/BaseTable.js +1 -1
  8. package/cjs/core/BaseTable.js.map +1 -1
  9. package/cjs/core/TABLE_EVENT_TYPE.d.ts +0 -1
  10. package/cjs/core/TABLE_EVENT_TYPE.js +0 -1
  11. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  12. package/cjs/core/record-helper.d.ts +2 -4
  13. package/cjs/core/record-helper.js +47 -120
  14. package/cjs/core/record-helper.js.map +1 -1
  15. package/cjs/data/DataSource.d.ts +4 -10
  16. package/cjs/data/DataSource.js +56 -155
  17. package/cjs/data/DataSource.js.map +1 -1
  18. package/cjs/dataset/DataStatistics.js +2 -1
  19. package/cjs/dataset/dataset-pivot-table.js +1 -2
  20. package/cjs/event/event.d.ts +1 -2
  21. package/cjs/event/event.js +9 -20
  22. package/cjs/event/event.js.map +1 -1
  23. package/cjs/event/listener/container-dom.js +1 -1
  24. package/cjs/event/listener/container-dom.js.map +1 -1
  25. package/cjs/event/listener/scroll-bar.js +8 -2
  26. package/cjs/event/listener/scroll-bar.js.map +1 -1
  27. package/cjs/event/listener/table-group.js +14 -8
  28. package/cjs/event/listener/table-group.js.map +1 -1
  29. package/cjs/event/media-click.js +1 -1
  30. package/cjs/event/scroll.js +1 -1
  31. package/cjs/event/sparkline-event.js +1 -1
  32. package/cjs/event/util.js +1 -1
  33. package/cjs/header-helper/style.js +2 -1
  34. package/cjs/index.d.ts +1 -1
  35. package/cjs/index.js +1 -1
  36. package/cjs/index.js.map +1 -1
  37. package/cjs/layout/pivot-header-layout.d.ts +6 -0
  38. package/cjs/layout/pivot-header-layout.js +39 -20
  39. package/cjs/layout/pivot-header-layout.js.map +1 -1
  40. package/cjs/plugins/custom-cell-style.d.ts +0 -5
  41. package/cjs/plugins/custom-cell-style.js +0 -9
  42. package/cjs/plugins/custom-cell-style.js.map +1 -1
  43. package/cjs/plugins/index.js +1 -1
  44. package/cjs/plugins/interface.js +1 -1
  45. package/cjs/plugins/invert-highlight.js +1 -2
  46. package/cjs/plugins/list-tree-stick-cell.js +1 -1
  47. package/cjs/plugins/plugin-manager.js +1 -1
  48. package/cjs/scenegraph/graphic/active-cell-chart-list.d.ts +15 -2
  49. package/cjs/scenegraph/graphic/active-cell-chart-list.js +198 -75
  50. package/cjs/scenegraph/graphic/active-cell-chart-list.js.map +1 -1
  51. package/cjs/scenegraph/graphic/chart.d.ts +10 -1
  52. package/cjs/scenegraph/graphic/chart.js +61 -27
  53. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  54. package/cjs/scenegraph/graphic/contributions/chart-render.js +3 -4
  55. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  56. package/cjs/scenegraph/refresh-node/update-chart.d.ts +1 -1
  57. package/cjs/scenegraph/refresh-node/update-chart.js +2 -1
  58. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  59. package/cjs/scenegraph/scenegraph.d.ts +2 -2
  60. package/cjs/scenegraph/scenegraph.js +44 -11
  61. package/cjs/scenegraph/scenegraph.js.map +1 -1
  62. package/cjs/tools/util.d.ts +5 -0
  63. package/cjs/tools/util.js +22 -4
  64. package/cjs/tools/util.js.map +1 -1
  65. package/cjs/ts-types/base-table.d.ts +2 -2
  66. package/cjs/ts-types/base-table.js.map +1 -1
  67. package/cjs/ts-types/events.d.ts +0 -15
  68. package/cjs/ts-types/events.js.map +1 -1
  69. package/cjs/ts-types/table-engine.d.ts +13 -33
  70. package/cjs/ts-types/table-engine.js.map +1 -1
  71. package/cjs/vrender.js.map +1 -1
  72. package/dist/vtable.js +712 -869
  73. package/dist/vtable.min.js +2 -2
  74. package/es/ListTable.d.ts +7 -34
  75. package/es/ListTable.js +14 -130
  76. package/es/ListTable.js.map +1 -1
  77. package/es/PivotChart.d.ts +3 -0
  78. package/es/PivotChart.js +13 -4
  79. package/es/PivotChart.js.map +1 -1
  80. package/es/core/BaseTable.js +1 -1
  81. package/es/core/BaseTable.js.map +1 -1
  82. package/es/core/TABLE_EVENT_TYPE.d.ts +0 -1
  83. package/es/core/TABLE_EVENT_TYPE.js +0 -1
  84. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  85. package/es/core/record-helper.d.ts +2 -4
  86. package/es/core/record-helper.js +43 -114
  87. package/es/core/record-helper.js.map +1 -1
  88. package/es/data/DataSource.d.ts +4 -10
  89. package/es/data/DataSource.js +56 -155
  90. package/es/data/DataSource.js.map +1 -1
  91. package/es/dataset/DataStatistics.js +2 -1
  92. package/es/dataset/dataset-pivot-table.js +1 -2
  93. package/es/event/event.d.ts +1 -2
  94. package/es/event/event.js +9 -20
  95. package/es/event/event.js.map +1 -1
  96. package/es/event/listener/container-dom.js +1 -1
  97. package/es/event/listener/container-dom.js.map +1 -1
  98. package/es/event/listener/scroll-bar.js +8 -2
  99. package/es/event/listener/scroll-bar.js.map +1 -1
  100. package/es/event/listener/table-group.js +13 -8
  101. package/es/event/listener/table-group.js.map +1 -1
  102. package/es/event/media-click.js +1 -1
  103. package/es/event/scroll.js +1 -1
  104. package/es/event/sparkline-event.js +1 -1
  105. package/es/event/util.js +1 -1
  106. package/es/header-helper/style.js +2 -1
  107. package/es/index.d.ts +1 -1
  108. package/es/index.js +1 -1
  109. package/es/index.js.map +1 -1
  110. package/es/layout/pivot-header-layout.d.ts +6 -0
  111. package/es/layout/pivot-header-layout.js +39 -20
  112. package/es/layout/pivot-header-layout.js.map +1 -1
  113. package/es/plugins/custom-cell-style.d.ts +0 -5
  114. package/es/plugins/custom-cell-style.js +0 -9
  115. package/es/plugins/custom-cell-style.js.map +1 -1
  116. package/es/plugins/index.js +1 -1
  117. package/es/plugins/interface.js +1 -1
  118. package/es/plugins/invert-highlight.js +1 -2
  119. package/es/plugins/list-tree-stick-cell.js +1 -1
  120. package/es/plugins/plugin-manager.js +1 -1
  121. package/es/scenegraph/graphic/active-cell-chart-list.d.ts +15 -2
  122. package/es/scenegraph/graphic/active-cell-chart-list.js +186 -68
  123. package/es/scenegraph/graphic/active-cell-chart-list.js.map +1 -1
  124. package/es/scenegraph/graphic/chart.d.ts +10 -1
  125. package/es/scenegraph/graphic/chart.js +58 -25
  126. package/es/scenegraph/graphic/chart.js.map +1 -1
  127. package/es/scenegraph/graphic/contributions/chart-render.js +3 -4
  128. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  129. package/es/scenegraph/refresh-node/update-chart.d.ts +1 -1
  130. package/es/scenegraph/refresh-node/update-chart.js +2 -1
  131. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  132. package/es/scenegraph/scenegraph.d.ts +2 -2
  133. package/es/scenegraph/scenegraph.js +43 -10
  134. package/es/scenegraph/scenegraph.js.map +1 -1
  135. package/es/tools/util.d.ts +5 -0
  136. package/es/tools/util.js +18 -0
  137. package/es/tools/util.js.map +1 -1
  138. package/es/ts-types/base-table.d.ts +2 -2
  139. package/es/ts-types/base-table.js.map +1 -1
  140. package/es/ts-types/events.d.ts +0 -15
  141. package/es/ts-types/events.js.map +1 -1
  142. package/es/ts-types/table-engine.d.ts +13 -33
  143. package/es/ts-types/table-engine.js.map +1 -1
  144. package/es/vrender.js.map +1 -1
  145. package/package.json +4 -4
  146. package/cjs/core/index.d.ts +0 -1
  147. package/cjs/core/index.js +0 -30
  148. package/cjs/core/index.js.map +0 -1
  149. package/es/core/index.d.ts +0 -1
  150. package/es/core/index.js +0 -2
  151. package/es/core/index.js.map +0 -1
package/dist/vtable.js CHANGED
@@ -36018,6 +36018,47 @@
36018
36018
  }
36019
36019
  };
36020
36020
  }
36021
+ function cancellableThrottle(func, delay) {
36022
+ let timer = null;
36023
+ let lastArgs = null;
36024
+ let context = null;
36025
+ const throttled = function (...args) {
36026
+ lastArgs = args;
36027
+ context = this;
36028
+ if (!timer) {
36029
+ timer = setTimeout(() => {
36030
+ if (lastArgs) {
36031
+ func.apply(context, lastArgs);
36032
+ }
36033
+ timer = null;
36034
+ lastArgs = null;
36035
+ context = null;
36036
+ }, delay);
36037
+ }
36038
+ };
36039
+ const cancel = () => {
36040
+ if (timer) {
36041
+ clearTimeout(timer);
36042
+ timer = null;
36043
+ lastArgs = null;
36044
+ context = null;
36045
+ }
36046
+ };
36047
+ const flush = () => {
36048
+ if (timer && lastArgs) {
36049
+ clearTimeout(timer);
36050
+ func.apply(context, lastArgs);
36051
+ timer = null;
36052
+ lastArgs = null;
36053
+ context = null;
36054
+ }
36055
+ };
36056
+ return {
36057
+ throttled,
36058
+ cancel,
36059
+ flush
36060
+ };
36061
+ }
36021
36062
  function pad(num, totalChars) {
36022
36063
  const pad = '0';
36023
36064
  num = `${num}`;
@@ -36410,7 +36451,6 @@
36410
36451
  AFTER_UPDATE_CELL_CONTENT_WIDTH: 'after_update_cell_content_width',
36411
36452
  AFTER_UPDATE_SELECT_BORDER_HEIGHT: 'after_update_select_border_height',
36412
36453
  CHANGE_CELL_VALUE: 'change_cell_value',
36413
- CHANGE_CELL_VALUES: 'change_cell_values',
36414
36454
  DRAG_FILL_HANDLE_END: 'drag_fill_handle_end',
36415
36455
  MOUSEDOWN_FILL_HANDLE: 'mousedown_fill_handle',
36416
36456
  DBLCLICK_FILL_HANDLE: 'dblclick_fill_handle',
@@ -38933,48 +38973,6 @@
38933
38973
  }
38934
38974
  }
38935
38975
  }
38936
- changeFieldValueByRecordIndex(value, recordIndex, field, table) {
38937
- if (field === null) {
38938
- return undefined;
38939
- }
38940
- if (recordIndex === undefined || recordIndex === null) {
38941
- return;
38942
- }
38943
- const rawKey = recordIndex.toString();
38944
- if (!this.beforeChangedRecordsMap.has(rawKey)) {
38945
- const rawRecords = Array.isArray(this.dataSourceObj?.records)
38946
- ? this.dataSourceObj.records
38947
- : null;
38948
- const originRecord = rawRecords
38949
- ? Array.isArray(recordIndex)
38950
- ? getValueFromDeepArray(rawRecords, recordIndex)
38951
- : rawRecords[recordIndex]
38952
- : undefined;
38953
- this.beforeChangedRecordsMap.set(rawKey, cloneDeep(originRecord, undefined, ['vtable_gantt_linkedFrom', 'vtable_gantt_linkedTo']) ?? {});
38954
- }
38955
- if (typeof field === 'string' || typeof field === 'number') {
38956
- const beforeChangedValue = this.beforeChangedRecordsMap.get(rawKey)?.[field];
38957
- const rawRecords = Array.isArray(this.dataSourceObj?.records)
38958
- ? this.dataSourceObj.records
38959
- : null;
38960
- const record = rawRecords
38961
- ? Array.isArray(recordIndex)
38962
- ? getValueFromDeepArray(rawRecords, recordIndex)
38963
- : rawRecords[recordIndex]
38964
- : undefined;
38965
- let formatValue = value;
38966
- if (typeof beforeChangedValue === 'number' && isAllDigits(value)) {
38967
- formatValue = parseFloat(value);
38968
- }
38969
- if (record) {
38970
- record[field] = formatValue;
38971
- }
38972
- else if (rawRecords && typeof recordIndex === 'number') {
38973
- rawRecords[recordIndex] = this.addRecordRule === 'Array' ? [] : {};
38974
- rawRecords[recordIndex][field] = formatValue;
38975
- }
38976
- }
38977
- }
38978
38976
  cacheBeforeChangedRecord(dataIndex, table) {
38979
38977
  if (!this.beforeChangedRecordsMap.has(dataIndex.toString())) {
38980
38978
  const originRecord = this.getOriginalRecord(dataIndex);
@@ -39000,150 +38998,69 @@
39000
38998
  }
39001
38999
  }
39002
39000
  }
39003
- _getRawRecordsArray() {
39004
- const rawRecords = this.dataSourceObj?.records;
39005
- return Array.isArray(rawRecords) ? rawRecords : null;
39006
- }
39007
- _hasFilterInEffect() {
39008
- return (this.dataConfig?.filterRules?.length ?? 0) >= 1 || (this.lastFilterRules?.length ?? 0) >= 1;
39009
- }
39010
- _normalizeInsertIndex(index, length) {
39011
- if (index === undefined || index === null) {
39012
- return length;
39013
- }
39014
- if (index > length) {
39015
- return length;
39016
- }
39017
- if (index < 0) {
39018
- return 0;
39019
- }
39020
- return index;
39021
- }
39022
- _mapViewInsertIndexToRawInsertIndex(rawRecords, viewIndex) {
39023
- if (viewIndex >= this.records.length) {
39024
- return rawRecords.length;
39025
- }
39026
- if (viewIndex <= 0) {
39027
- return 0;
39028
- }
39029
- const prevRecord = this.records[viewIndex - 1];
39030
- const rawIndex = rawRecords.indexOf(prevRecord);
39031
- return rawIndex >= 0 ? rawIndex + 1 : rawRecords.length;
39032
- }
39033
- _resetIndexingFromViewRecords() {
39034
- this._sourceLength = this.records.length;
39035
- this.currentIndexedData = Array.from({ length: this._sourceLength }, (_, i) => i);
39036
- if (this.rowHierarchyType === 'tree') {
39037
- this.initTreeHierarchyState();
39038
- }
39039
- if (this.userPagination) {
39040
- this.pagination.totalCount = this._sourceLength;
39041
- this.updatePagerData();
39042
- return;
39043
- }
39044
- this.pagination.perPageCount = this._sourceLength;
39045
- this.pagination.totalCount = this._sourceLength;
39046
- this.updatePagerData();
39047
- }
39048
- addRecord(record, index, syncToOriginalRecords = false) {
39049
- if (!syncToOriginalRecords) {
39050
- if (Array.isArray(this.records)) {
39051
- this.records.splice(index, 0, record);
39052
- this.adjustBeforeChangedRecordsMap(index, 1);
39053
- this.currentIndexedData.push(this.currentIndexedData.length);
39054
- this._sourceLength += 1;
39055
- for (let i = 0; i < this.fieldAggregators.length; i++) {
39056
- this.fieldAggregators[i].push(record);
39057
- }
39058
- if (this.rowHierarchyType === 'tree') {
39059
- this.initTreeHierarchyState();
39060
- }
39061
- if (this.userPagination) {
39062
- this.pagination.totalCount = this._sourceLength;
39063
- const { perPageCount, currentPage } = this.pagination;
39064
- const startIndex = perPageCount * (currentPage || 0);
39065
- const endIndex = startIndex + perPageCount;
39066
- if (index < endIndex) {
39067
- this.updatePagerData();
39068
- }
39069
- }
39070
- else {
39071
- this.pagination.perPageCount = this._sourceLength;
39072
- this.pagination.totalCount = this._sourceLength;
39001
+ addRecord(record, index) {
39002
+ if (Array.isArray(this.records)) {
39003
+ this.records.splice(index, 0, record);
39004
+ this.adjustBeforeChangedRecordsMap(index, 1);
39005
+ this.currentIndexedData.push(this.currentIndexedData.length);
39006
+ this._sourceLength += 1;
39007
+ for (let i = 0; i < this.fieldAggregators.length; i++) {
39008
+ this.fieldAggregators[i].push(record);
39009
+ }
39010
+ if (this.rowHierarchyType === 'tree') {
39011
+ this.initTreeHierarchyState();
39012
+ }
39013
+ if (this.userPagination) {
39014
+ this.pagination.totalCount = this._sourceLength;
39015
+ const { perPageCount, currentPage } = this.pagination;
39016
+ const startIndex = perPageCount * (currentPage || 0);
39017
+ const endIndex = startIndex + perPageCount;
39018
+ if (index < endIndex) {
39073
39019
  this.updatePagerData();
39074
39020
  }
39075
- if (this.dataSourceObj?.added) {
39076
- this.dataSourceObj.added(index, 1);
39077
- }
39078
39021
  }
39079
- return;
39080
- }
39081
- const rawRecords = this._getRawRecordsArray();
39082
- if (!rawRecords) {
39083
- return;
39084
- }
39085
- const viewInsertIndex = this._normalizeInsertIndex(index, this.records.length);
39086
- const rawInsertIndex = this._hasFilterInEffect()
39087
- ? this._mapViewInsertIndexToRawInsertIndex(rawRecords, viewInsertIndex)
39088
- : this._normalizeInsertIndex(viewInsertIndex, rawRecords.length);
39089
- rawRecords.splice(rawInsertIndex, 0, record);
39090
- this.beforeChangedRecordsMap.clear();
39091
- this.sortedIndexMap.clear();
39092
- this.updateFilterRules(this.dataConfig?.filterRules);
39093
- if (this.dataSourceObj?.added) {
39094
- this.dataSourceObj.added(rawInsertIndex, 1);
39022
+ else {
39023
+ this.pagination.perPageCount = this._sourceLength;
39024
+ this.pagination.totalCount = this._sourceLength;
39025
+ this.updatePagerData();
39026
+ }
39027
+ if (this.dataSourceObj?.added) {
39028
+ this.dataSourceObj.added(index, 1);
39029
+ }
39095
39030
  }
39096
39031
  }
39097
- addRecords(recordArr, index, syncToOriginalRecords = false) {
39098
- if (!syncToOriginalRecords) {
39099
- if (Array.isArray(this.records)) {
39100
- if (Array.isArray(recordArr)) {
39101
- this.records.splice(index, 0, ...recordArr);
39102
- this.adjustBeforeChangedRecordsMap(index, recordArr.length);
39103
- for (let i = 0; i < recordArr.length; i++) {
39104
- this.currentIndexedData.push(this.currentIndexedData.length);
39105
- }
39106
- this._sourceLength += recordArr.length;
39107
- for (let i = 0; i < this.fieldAggregators.length; i++) {
39108
- for (let j = 0; j < recordArr.length; j++) {
39109
- this.fieldAggregators[i].push(recordArr[j]);
39110
- }
39111
- }
39032
+ addRecords(recordArr, index) {
39033
+ if (Array.isArray(this.records)) {
39034
+ if (Array.isArray(recordArr)) {
39035
+ this.records.splice(index, 0, ...recordArr);
39036
+ this.adjustBeforeChangedRecordsMap(index, recordArr.length);
39037
+ for (let i = 0; i < recordArr.length; i++) {
39038
+ this.currentIndexedData.push(this.currentIndexedData.length);
39112
39039
  }
39113
- if (this.userPagination) {
39114
- this.pagination.totalCount = this._sourceLength;
39115
- const { perPageCount, currentPage } = this.pagination;
39116
- const startIndex = perPageCount * (currentPage || 0);
39117
- const endIndex = startIndex + perPageCount;
39118
- if (index < endIndex) {
39119
- this.updatePagerData();
39040
+ this._sourceLength += recordArr.length;
39041
+ for (let i = 0; i < this.fieldAggregators.length; i++) {
39042
+ for (let j = 0; j < recordArr.length; j++) {
39043
+ this.fieldAggregators[i].push(recordArr[j]);
39120
39044
  }
39121
39045
  }
39122
- else {
39123
- this.pagination.perPageCount = this._sourceLength;
39124
- this.pagination.totalCount = this._sourceLength;
39046
+ }
39047
+ if (this.userPagination) {
39048
+ this.pagination.totalCount = this._sourceLength;
39049
+ const { perPageCount, currentPage } = this.pagination;
39050
+ const startIndex = perPageCount * (currentPage || 0);
39051
+ const endIndex = startIndex + perPageCount;
39052
+ if (index < endIndex) {
39125
39053
  this.updatePagerData();
39126
39054
  }
39127
- if (this.dataSourceObj?.added) {
39128
- this.dataSourceObj.added(index, recordArr.length);
39129
- }
39130
39055
  }
39131
- return;
39132
- }
39133
- const rawRecords = this._getRawRecordsArray();
39134
- if (!rawRecords || !Array.isArray(recordArr) || recordArr.length === 0) {
39135
- return;
39136
- }
39137
- const viewInsertIndex = this._normalizeInsertIndex(index, this.records.length);
39138
- const rawInsertIndex = this._hasFilterInEffect()
39139
- ? this._mapViewInsertIndexToRawInsertIndex(rawRecords, viewInsertIndex)
39140
- : this._normalizeInsertIndex(viewInsertIndex, rawRecords.length);
39141
- rawRecords.splice(rawInsertIndex, 0, ...recordArr);
39142
- this.beforeChangedRecordsMap.clear();
39143
- this.sortedIndexMap.clear();
39144
- this.updateFilterRules(this.dataConfig?.filterRules);
39145
- if (this.dataSourceObj?.added) {
39146
- this.dataSourceObj.added(rawInsertIndex, recordArr.length);
39056
+ else {
39057
+ this.pagination.perPageCount = this._sourceLength;
39058
+ this.pagination.totalCount = this._sourceLength;
39059
+ this.updatePagerData();
39060
+ }
39061
+ if (this.dataSourceObj?.added) {
39062
+ this.dataSourceObj.added(index, recordArr.length);
39063
+ }
39147
39064
  }
39148
39065
  }
39149
39066
  addRecordForSorted(record) {
@@ -39177,84 +39094,46 @@
39177
39094
  }
39178
39095
  }
39179
39096
  adjustBeforeChangedRecordsMap(insertIndex, insertCount, type = 'add') {
39180
- const delta = type === 'add' ? insertCount : -insertCount;
39181
- const numericKeys = [];
39182
- this.beforeChangedRecordsMap.forEach((_, key) => {
39183
- const numKey = Number(key);
39184
- if (Number.isInteger(numKey) && numKey.toString() === key && numKey >= insertIndex) {
39185
- numericKeys.push(numKey);
39186
- }
39187
- });
39188
- numericKeys.sort((a, b) => (type === 'add' ? b - a : a - b));
39189
- for (let i = 0; i < numericKeys.length; i++) {
39190
- const key = numericKeys[i];
39097
+ const length = this.beforeChangedRecordsMap.size;
39098
+ for (let key = length - 1; key >= insertIndex; key--) {
39191
39099
  const record = this.beforeChangedRecordsMap.get(key.toString());
39192
39100
  this.beforeChangedRecordsMap.delete(key.toString());
39193
- this.beforeChangedRecordsMap.set((key + delta).toString(), record);
39101
+ this.beforeChangedRecordsMap.set((key + (type === 'add' ? insertCount : -insertCount)).toString(), record);
39194
39102
  }
39195
39103
  }
39196
- deleteRecords(recordIndexs, syncToOriginalRecords = false) {
39197
- if (!syncToOriginalRecords) {
39198
- if (Array.isArray(this.records)) {
39199
- const realDeletedRecordIndexs = [];
39200
- const recordIndexsMaxToMin = recordIndexs.sort((a, b) => b - a);
39201
- for (let index = 0; index < recordIndexsMaxToMin.length; index++) {
39202
- const recordIndex = recordIndexsMaxToMin[index];
39203
- if (recordIndex >= this._sourceLength || recordIndex < 0) {
39204
- continue;
39205
- }
39206
- this.adjustBeforeChangedRecordsMap(recordIndex, 1, 'delete');
39207
- realDeletedRecordIndexs.push(recordIndex);
39208
- const deletedRecord = this.records[recordIndex];
39209
- for (let i = 0; i < this.fieldAggregators.length; i++) {
39210
- this.fieldAggregators[i].deleteRecord(deletedRecord);
39211
- }
39212
- this.records.splice(recordIndex, 1);
39213
- this.currentIndexedData.pop();
39214
- this._sourceLength -= 1;
39215
- }
39216
- if (this.userPagination) {
39217
- this.updatePagerData();
39218
- }
39219
- else {
39220
- this.pagination.perPageCount = this._sourceLength;
39221
- this.pagination.totalCount = this._sourceLength;
39222
- this.updatePagerData();
39104
+ deleteRecords(recordIndexs) {
39105
+ if (Array.isArray(this.records)) {
39106
+ const realDeletedRecordIndexs = [];
39107
+ const recordIndexsMaxToMin = recordIndexs.sort((a, b) => b - a);
39108
+ for (let index = 0; index < recordIndexsMaxToMin.length; index++) {
39109
+ const recordIndex = recordIndexsMaxToMin[index];
39110
+ if (recordIndex >= this._sourceLength || recordIndex < 0) {
39111
+ continue;
39223
39112
  }
39224
- if (this.dataSourceObj?.deleted) {
39225
- this.dataSourceObj.deleted(realDeletedRecordIndexs);
39113
+ this.adjustBeforeChangedRecordsMap(recordIndex, 1, 'delete');
39114
+ realDeletedRecordIndexs.push(recordIndex);
39115
+ const deletedRecord = this.records[recordIndex];
39116
+ for (let i = 0; i < this.fieldAggregators.length; i++) {
39117
+ this.fieldAggregators[i].deleteRecord(deletedRecord);
39226
39118
  }
39227
- return realDeletedRecordIndexs;
39119
+ this.records.splice(recordIndex, 1);
39120
+ this.currentIndexedData.pop();
39121
+ this._sourceLength -= 1;
39228
39122
  }
39229
- return [];
39230
- }
39231
- const rawRecords = this._getRawRecordsArray();
39232
- if (!rawRecords || !Array.isArray(this.records)) {
39233
- return [];
39234
- }
39235
- const realDeletedRecordIndexs = [];
39236
- const recordIndexsMaxToMin = recordIndexs.slice().sort((a, b) => b - a);
39237
- const rawDeletedIndexs = [];
39238
- for (let index = 0; index < recordIndexsMaxToMin.length; index++) {
39239
- const viewIndex = recordIndexsMaxToMin[index];
39240
- if (viewIndex >= this.records.length || viewIndex < 0) {
39241
- continue;
39123
+ if (this.userPagination) {
39124
+ this.updatePagerData();
39242
39125
  }
39243
- const deletedRecord = this.records[viewIndex];
39244
- const rawIndex = rawRecords.indexOf(deletedRecord);
39245
- if (rawIndex >= 0) {
39246
- rawRecords.splice(rawIndex, 1);
39247
- rawDeletedIndexs.push(rawIndex);
39126
+ else {
39127
+ this.pagination.perPageCount = this._sourceLength;
39128
+ this.pagination.totalCount = this._sourceLength;
39129
+ this.updatePagerData();
39248
39130
  }
39249
- realDeletedRecordIndexs.push(viewIndex);
39250
- }
39251
- this.beforeChangedRecordsMap.clear();
39252
- this.sortedIndexMap.clear();
39253
- this.updateFilterRules(this.dataConfig?.filterRules);
39254
- if (this.dataSourceObj?.deleted) {
39255
- this.dataSourceObj.deleted(rawDeletedIndexs);
39131
+ if (this.dataSourceObj?.deleted) {
39132
+ this.dataSourceObj.deleted(realDeletedRecordIndexs);
39133
+ }
39134
+ return realDeletedRecordIndexs;
39256
39135
  }
39257
- return realDeletedRecordIndexs;
39136
+ return [];
39258
39137
  }
39259
39138
  deleteRecordsForSorted(recordIndexs) {
39260
39139
  if (Array.isArray(this.records)) {
@@ -39276,71 +39155,36 @@
39276
39155
  this.beforeChangedRecordsMap.clear();
39277
39156
  }
39278
39157
  }
39279
- updateRecords(records, recordIndexs, syncToOriginalRecords = false) {
39280
- if (!syncToOriginalRecords) {
39281
- const realDeletedRecordIndexs = [];
39282
- for (let index = 0; index < recordIndexs.length; index++) {
39283
- const recordIndex = recordIndexs[index];
39284
- if (Array.isArray(recordIndex)) {
39285
- this.beforeChangedRecordsMap.delete(recordIndex.toString());
39286
- realDeletedRecordIndexs.push(recordIndex);
39287
- recordIndex.slice(0, -1).reduce((acc, key) => {
39288
- if (acc[key] === undefined) {
39289
- acc[key] = {};
39290
- }
39291
- return acc[key].children;
39292
- }, this.records)[recordIndex[recordIndex.length - 1]] = records[index];
39293
- }
39294
- else {
39295
- if (recordIndex >= this._sourceLength || recordIndex < 0) {
39296
- continue;
39297
- }
39298
- this.beforeChangedRecordsMap.delete(recordIndex.toString());
39299
- realDeletedRecordIndexs.push(recordIndex);
39300
- for (let i = 0; i < this.fieldAggregators.length; i++) {
39301
- this.fieldAggregators[i].updateRecord(this.records[recordIndex], records[index]);
39302
- }
39303
- this.records[recordIndex] = records[index];
39304
- }
39305
- }
39306
- if (this.userPagination) {
39307
- this.updatePagerData();
39308
- }
39309
- return realDeletedRecordIndexs;
39310
- }
39311
- const rawRecords = this._getRawRecordsArray();
39312
- if (!rawRecords || !Array.isArray(this.records)) {
39313
- return [];
39314
- }
39315
- const realUpdatedIndexs = [];
39158
+ updateRecords(records, recordIndexs) {
39159
+ const realDeletedRecordIndexs = [];
39316
39160
  for (let index = 0; index < recordIndexs.length; index++) {
39317
39161
  const recordIndex = recordIndexs[index];
39318
39162
  if (Array.isArray(recordIndex)) {
39319
39163
  this.beforeChangedRecordsMap.delete(recordIndex.toString());
39320
- realUpdatedIndexs.push(recordIndex);
39164
+ realDeletedRecordIndexs.push(recordIndex);
39321
39165
  recordIndex.slice(0, -1).reduce((acc, key) => {
39322
39166
  if (acc[key] === undefined) {
39323
39167
  acc[key] = {};
39324
39168
  }
39325
39169
  return acc[key].children;
39326
- }, rawRecords)[recordIndex[recordIndex.length - 1]] = records[index];
39170
+ }, this.records)[recordIndex[recordIndex.length - 1]] = records[index];
39327
39171
  }
39328
39172
  else {
39329
- if (recordIndex >= this.records.length || recordIndex < 0) {
39173
+ if (recordIndex >= this._sourceLength || recordIndex < 0) {
39330
39174
  continue;
39331
39175
  }
39332
- const oldRecord = this.records[recordIndex];
39333
- const rawIndex = rawRecords.indexOf(oldRecord);
39334
- if (rawIndex >= 0) {
39335
- rawRecords[rawIndex] = records[index];
39176
+ this.beforeChangedRecordsMap.delete(recordIndex.toString());
39177
+ realDeletedRecordIndexs.push(recordIndex);
39178
+ for (let i = 0; i < this.fieldAggregators.length; i++) {
39179
+ this.fieldAggregators[i].updateRecord(this.records[recordIndex], records[index]);
39336
39180
  }
39337
- realUpdatedIndexs.push(recordIndex);
39181
+ this.records[recordIndex] = records[index];
39338
39182
  }
39339
39183
  }
39340
- this.beforeChangedRecordsMap.clear();
39341
- this.sortedIndexMap.clear();
39342
- this.updateFilterRules(this.dataConfig?.filterRules);
39343
- return realUpdatedIndexs;
39184
+ if (this.userPagination) {
39185
+ this.updatePagerData();
39186
+ }
39187
+ return realDeletedRecordIndexs;
39344
39188
  }
39345
39189
  updateRecordsForSorted(records, recordIndexs) {
39346
39190
  for (let index = 0; index < recordIndexs.length; index++) {
@@ -39421,11 +39265,7 @@
39421
39265
  }
39422
39266
  }
39423
39267
  if (!filedMapArray.length) {
39424
- filedMapArray = states.map(() => ({
39425
- asc: [],
39426
- desc: [],
39427
- normal: []
39428
- }));
39268
+ filedMapArray = states.map(() => ({ asc: [], desc: [], normal: [] }));
39429
39269
  for (let index = 0; index < states.length; index++) {
39430
39270
  this.sortedIndexMap.set(states[index].field, filedMapArray[index]);
39431
39271
  }
@@ -49175,9 +49015,27 @@
49175
49015
  return hoverMode;
49176
49016
  }
49177
49017
 
49018
+ let brushingChartInstance;
49019
+ let brushingChartInstanceCellPos = { col: -1, row: -1 };
49020
+ function setBrushingChartInstance(chartInstance, col, row) {
49021
+ brushingChartInstance = chartInstance;
49022
+ brushingChartInstanceCellPos = { col, row };
49023
+ }
49024
+ function clearBrushingChartInstance() {
49025
+ brushingChartInstance = undefined;
49026
+ brushingChartInstanceCellPos = { col: -1, row: -1 };
49027
+ }
49028
+ function getBrushingChartInstance() {
49029
+ return brushingChartInstance;
49030
+ }
49031
+ function getBrushingChartInstanceCellPos() {
49032
+ return brushingChartInstanceCellPos;
49033
+ }
49178
49034
  const chartInstanceListColumnByColumnDirection = {};
49179
49035
  const chartInstanceListRowByRowDirection = {};
49036
+ const delayRunDimensionHoverTimer = [];
49180
49037
  function generateChartInstanceListByColumnDirection(col, dimensionValueOrXValue, positionValueOrYValue, canvasXY, table, hideTooltip = false, isScatter = false) {
49038
+ clearDelayRunDimensionHoverTimers();
49181
49039
  if (!isValid$1(chartInstanceListColumnByColumnDirection[col])) {
49182
49040
  chartInstanceListColumnByColumnDirection[col] = {};
49183
49041
  }
@@ -49187,9 +49045,9 @@
49187
49045
  for (let i = rowStart; i <= rowEnd; i++) {
49188
49046
  const cellGroup = table.scenegraph.getCell(col, i);
49189
49047
  const chartNode = cellGroup?.getChildren()?.[0];
49190
- chartNode.addUpdateShapeAndBoundsTag();
49191
49048
  if (chartInstanceListColumnByColumnDirection[col][i]) ;
49192
49049
  else if (isValid$1(chartNode)) {
49050
+ chartNode.addUpdateShapeAndBoundsTag();
49193
49051
  if (chartNode.activeChartInstance) {
49194
49052
  chartInstanceListColumnByColumnDirection[col][i] = chartNode.activeChartInstance;
49195
49053
  }
@@ -49198,44 +49056,13 @@
49198
49056
  chartInstanceListColumnByColumnDirection[col][i] = chartNode.activeChartInstance;
49199
49057
  }
49200
49058
  }
49201
- setTimeout(() => {
49059
+ const timer = setTimeout(() => {
49202
49060
  if (chartInstanceListColumnByColumnDirection[col]?.[i]) {
49203
49061
  const chartDimensionLinkage = table.options.chartDimensionLinkage;
49204
49062
  let isShowTooltip = !isScatter;
49205
49063
  if (!isScatter && typeof chartDimensionLinkage === 'object') {
49206
49064
  isShowTooltip = chartDimensionLinkage.showTooltip ?? true;
49207
- if (i === rowEnd && isShowTooltip) {
49208
- const heightLimitToShowTooltipForEdgeRow = chartDimensionLinkage.heightLimitToShowTooltipForEdgeRow ?? 0;
49209
- const { rowEnd: rowEnd1 } = table.getBodyVisibleRowRange(0, -heightLimitToShowTooltipForEdgeRow);
49210
- if (rowEnd1 === rowEnd) {
49211
- isShowTooltip = true;
49212
- }
49213
- else {
49214
- const { rowEnd: rowEnd2 } = table.getBodyVisibleRowRange(0, 5);
49215
- if (rowEnd2 !== rowEnd) {
49216
- isShowTooltip = true;
49217
- }
49218
- else {
49219
- isShowTooltip = false;
49220
- }
49221
- }
49222
- }
49223
- else if (i === rowStart && isShowTooltip) {
49224
- const heightLimitToShowTooltipForEdgeRow = chartDimensionLinkage.heightLimitToShowTooltipForEdgeRow ?? 0;
49225
- const { rowStart: rowStart1 } = table.getBodyVisibleRowRange(heightLimitToShowTooltipForEdgeRow, 0);
49226
- if (rowStart1 === rowStart) {
49227
- isShowTooltip = true;
49228
- }
49229
- else {
49230
- const { rowStart: rowStart2 } = table.getBodyVisibleRowRange(0, -5);
49231
- if (rowStart2 !== rowStart) {
49232
- isShowTooltip = true;
49233
- }
49234
- else {
49235
- isShowTooltip = false;
49236
- }
49237
- }
49238
- }
49065
+ isShowTooltip = isShowTooltip && checkIsShowTooltipForEdgeRow(i, table);
49239
49066
  }
49240
49067
  if (isScatter) {
49241
49068
  if (table.stateManager.hover.cellPos.col !== col || table.stateManager.hover.cellPos.row !== i) {
@@ -49248,6 +49075,7 @@
49248
49075
  }
49249
49076
  }
49250
49077
  else {
49078
+ const cellBoundry = table.getCellRelativeRect(col, i);
49251
49079
  const bodyBoundryTop = table.frozenRowCount
49252
49080
  ? table.getCellRelativeRect(col, table.frozenRowCount - 1).bottom
49253
49081
  : 0;
@@ -49258,43 +49086,32 @@
49258
49086
  }
49259
49087
  chartInstanceListColumnByColumnDirection[col][i].setDimensionIndex(dimensionValueOrXValue, {
49260
49088
  tooltip: false,
49261
- showTooltipOption: { x: canvasXY.x, y: absolutePositionTop, activeType: 'dimension' }
49089
+ showTooltipOption: {
49090
+ x: canvasXY.x - cellBoundry.left,
49091
+ y: absolutePositionTop - cellBoundry.top,
49092
+ activeType: 'dimension'
49093
+ }
49262
49094
  });
49263
49095
  }
49264
49096
  else {
49265
49097
  chartInstanceListColumnByColumnDirection[col][i].setDimensionIndex(dimensionValueOrXValue, {
49266
49098
  tooltip: isShowTooltip,
49267
- showTooltipOption: { x: canvasXY.x, y: absolutePositionTop, activeType: 'dimension' }
49099
+ showTooltipOption: {
49100
+ x: canvasXY.x - cellBoundry.left,
49101
+ y: absolutePositionTop - cellBoundry.top,
49102
+ activeType: 'dimension'
49103
+ }
49268
49104
  });
49269
49105
  }
49270
49106
  }
49271
49107
  }
49272
49108
  }, 0);
49109
+ delayRunDimensionHoverTimer.push(timer);
49273
49110
  table.scenegraph.updateNextFrame();
49274
49111
  }
49275
49112
  }
49276
- function clearChartInstanceListByColumnDirection(col, excludedRow, table) {
49277
- if (isValid$1(chartInstanceListColumnByColumnDirection[col])) {
49278
- for (const i in chartInstanceListColumnByColumnDirection[col]) {
49279
- if (isValid$1(excludedRow) && Number(i) === excludedRow) {
49280
- continue;
49281
- }
49282
- const cellGroup = table.scenegraph.getCell(col, Number(i));
49283
- const chartNode = cellGroup?.getChildren()?.[0];
49284
- chartNode.addUpdateShapeAndBoundsTag();
49285
- if (isValid$1(chartNode)) {
49286
- chartNode.deactivate(table, {
49287
- releaseChartInstance: true,
49288
- releaseColumnChartInstance: false,
49289
- releaseRowChartInstance: false
49290
- });
49291
- chartInstanceListColumnByColumnDirection[col][i] = null;
49292
- }
49293
- }
49294
- delete chartInstanceListColumnByColumnDirection[col];
49295
- }
49296
- }
49297
49113
  function generateChartInstanceListByRowDirection(row, dimensionValueOrXValue, positionValueOrYValue, canvasXY, table, hideTooltip = false, isScatter = false) {
49114
+ clearDelayRunDimensionHoverTimers();
49298
49115
  if (!isValid$1(chartInstanceListRowByRowDirection[row])) {
49299
49116
  chartInstanceListRowByRowDirection[row] = {};
49300
49117
  }
@@ -49304,9 +49121,9 @@
49304
49121
  for (let i = colStart; i <= colEnd; i++) {
49305
49122
  const cellGroup = table.scenegraph.getCell(i, row);
49306
49123
  const chartNode = cellGroup?.getChildren()?.[0];
49307
- chartNode.addUpdateShapeAndBoundsTag();
49308
49124
  if (chartInstanceListRowByRowDirection[row][i]) ;
49309
49125
  else if (isValid$1(chartNode)) {
49126
+ chartNode.addUpdateShapeAndBoundsTag();
49310
49127
  if (chartNode.activeChartInstance) {
49311
49128
  chartInstanceListRowByRowDirection[row][i] = chartNode.activeChartInstance;
49312
49129
  }
@@ -49315,44 +49132,13 @@
49315
49132
  chartInstanceListRowByRowDirection[row][i] = chartNode.activeChartInstance;
49316
49133
  }
49317
49134
  }
49318
- setTimeout(() => {
49135
+ const timer = setTimeout(() => {
49319
49136
  if (chartInstanceListRowByRowDirection[row]?.[i]) {
49320
49137
  const chartDimensionLinkage = table.options.chartDimensionLinkage;
49321
49138
  let isShowTooltip = !isScatter;
49322
49139
  if (!isScatter && typeof chartDimensionLinkage === 'object') {
49323
49140
  isShowTooltip = chartDimensionLinkage.showTooltip ?? true;
49324
- if (i === colEnd && isShowTooltip) {
49325
- const widthLimitToShowTooltipForEdgeColumn = chartDimensionLinkage.widthLimitToShowTooltipForEdgeColumn;
49326
- const { colEnd: colEnd1 } = table.getBodyVisibleColRange(0, -widthLimitToShowTooltipForEdgeColumn);
49327
- if (colEnd1 === colEnd) {
49328
- isShowTooltip = true;
49329
- }
49330
- else {
49331
- const { colEnd: colEnd2 } = table.getBodyVisibleColRange(0, 5);
49332
- if (colEnd2 !== colEnd) {
49333
- isShowTooltip = true;
49334
- }
49335
- else {
49336
- isShowTooltip = false;
49337
- }
49338
- }
49339
- }
49340
- else if (i === colStart && isShowTooltip) {
49341
- const widthLimitToShowTooltipForEdgeColumn = chartDimensionLinkage.widthLimitToShowTooltipForEdgeColumn;
49342
- const { colStart: colStart1 } = table.getBodyVisibleColRange(widthLimitToShowTooltipForEdgeColumn, 0);
49343
- if (colStart1 === colStart) {
49344
- isShowTooltip = true;
49345
- }
49346
- else {
49347
- const { colStart: colStart2 } = table.getBodyVisibleColRange(0, -5);
49348
- if (colStart2 !== colStart) {
49349
- isShowTooltip = true;
49350
- }
49351
- else {
49352
- isShowTooltip = false;
49353
- }
49354
- }
49355
- }
49141
+ isShowTooltip = isShowTooltip && checkIsShowTooltipForEdgeColumn(i, table);
49356
49142
  }
49357
49143
  if (isScatter) {
49358
49144
  if (table.stateManager.hover.cellPos.col !== i || table.stateManager.hover.cellPos.row !== row) {
@@ -49365,6 +49151,7 @@
49365
49151
  }
49366
49152
  }
49367
49153
  else {
49154
+ const cellBoundry = table.getCellRelativeRect(i, row);
49368
49155
  const bodyBoundryLeft = table.frozenColCount
49369
49156
  ? table.getCellRelativeRect(table.frozenColCount - 1, row).right
49370
49157
  : 0;
@@ -49375,22 +49162,188 @@
49375
49162
  }
49376
49163
  chartInstanceListRowByRowDirection[row][i].setDimensionIndex(dimensionValueOrXValue, {
49377
49164
  tooltip: false,
49378
- showTooltipOption: { x: absolutePositionLeft, y: canvasXY.y, activeType: 'dimension' }
49165
+ showTooltipOption: {
49166
+ x: absolutePositionLeft - cellBoundry.left,
49167
+ y: canvasXY.y - cellBoundry.top,
49168
+ activeType: 'dimension'
49169
+ }
49379
49170
  });
49380
49171
  }
49381
49172
  else {
49382
49173
  chartInstanceListRowByRowDirection[row][i].setDimensionIndex(dimensionValueOrXValue, {
49383
49174
  tooltip: isShowTooltip,
49384
- showTooltipOption: { x: absolutePositionLeft, y: canvasXY.y, activeType: 'dimension' }
49175
+ showTooltipOption: {
49176
+ x: absolutePositionLeft - cellBoundry.left,
49177
+ y: canvasXY.y - cellBoundry.top,
49178
+ activeType: 'dimension'
49179
+ }
49385
49180
  });
49386
49181
  }
49387
49182
  }
49388
49183
  }
49389
49184
  }, 0);
49185
+ delayRunDimensionHoverTimer.push(timer);
49390
49186
  table.scenegraph.updateNextFrame();
49391
49187
  }
49392
49188
  }
49393
- function clearChartInstanceListByRowDirection(row, excludedCol, table) {
49189
+ function generateChartInstanceListByViewRange(datum, table, deactivate = false) {
49190
+ clearDelayRunDimensionHoverTimers();
49191
+ const { rowStart } = table.getBodyVisibleRowRange();
49192
+ let rowEnd = table.getBodyVisibleRowRange().rowEnd;
49193
+ rowEnd = Math.min(table.rowCount - 1 - table.bottomFrozenRowCount, rowEnd);
49194
+ const { colStart } = table.getBodyVisibleColRange();
49195
+ let colEnd = table.getBodyVisibleColRange().colEnd;
49196
+ colEnd = Math.min(table.colCount - 1 - table.rightFrozenColCount, colEnd);
49197
+ for (let col = colStart; col <= colEnd; col++) {
49198
+ if (!isValid$1(chartInstanceListColumnByColumnDirection[col])) {
49199
+ chartInstanceListColumnByColumnDirection[col] = {};
49200
+ }
49201
+ for (let i = rowStart; i <= rowEnd; i++) {
49202
+ const cellGroup = table.scenegraph.getCell(col, i);
49203
+ const chartNode = cellGroup?.getChildren()?.[0];
49204
+ if (chartInstanceListColumnByColumnDirection[col][i]) ;
49205
+ else if (isValid$1(chartNode)) {
49206
+ chartNode.addUpdateShapeAndBoundsTag();
49207
+ if (chartNode.activeChartInstance) {
49208
+ chartInstanceListColumnByColumnDirection[col][i] = chartNode.activeChartInstance;
49209
+ }
49210
+ else {
49211
+ if (chartNode.attribute.spec.type === 'pie') {
49212
+ chartNode.activate(table);
49213
+ chartInstanceListColumnByColumnDirection[col][i] = chartNode.activeChartInstance;
49214
+ }
49215
+ }
49216
+ }
49217
+ const timer = setTimeout(() => {
49218
+ if (chartInstanceListColumnByColumnDirection[col]?.[i]) {
49219
+ const chartDimensionLinkage = table.options.chartDimensionLinkage;
49220
+ let isShowTooltip = true;
49221
+ if (typeof chartDimensionLinkage === 'object') {
49222
+ if (deactivate) {
49223
+ chartInstanceListColumnByColumnDirection[col][i].setHovered();
49224
+ chartInstanceListColumnByColumnDirection[col][i].hideTooltip();
49225
+ }
49226
+ else {
49227
+ isShowTooltip = chartDimensionLinkage.showTooltip ?? true;
49228
+ isShowTooltip = isShowTooltip && checkIsShowTooltipForEdgeRow(i, table);
49229
+ isShowTooltip = isShowTooltip && checkIsShowTooltipForEdgeColumn(col, table);
49230
+ chartInstanceListColumnByColumnDirection[col][i].setHovered(datum);
49231
+ isShowTooltip &&
49232
+ chartInstanceListColumnByColumnDirection[col][i].showTooltip(datum, {
49233
+ activeType: 'mark'
49234
+ });
49235
+ }
49236
+ }
49237
+ }
49238
+ }, 0);
49239
+ delayRunDimensionHoverTimer.push(timer);
49240
+ table.scenegraph.updateNextFrame();
49241
+ }
49242
+ }
49243
+ }
49244
+ function checkIsShowTooltipForEdgeRow(row, table) {
49245
+ let isShowTooltip = true;
49246
+ const { rowStart } = table.getBodyVisibleRowRange();
49247
+ let rowEnd = table.getBodyVisibleRowRange().rowEnd;
49248
+ rowEnd = Math.min(table.rowCount - 1 - table.bottomFrozenRowCount, rowEnd);
49249
+ const chartDimensionLinkage = table.options.chartDimensionLinkage;
49250
+ if (row === rowEnd && isShowTooltip) {
49251
+ const heightLimitToShowTooltipForEdgeRow = chartDimensionLinkage.heightLimitToShowTooltipForEdgeRow ?? 0;
49252
+ const { rowEnd: rowEnd1 } = table.getBodyVisibleRowRange(0, -heightLimitToShowTooltipForEdgeRow);
49253
+ if (rowEnd1 === rowEnd) {
49254
+ isShowTooltip = true;
49255
+ }
49256
+ else {
49257
+ const { rowEnd: rowEnd2 } = table.getBodyVisibleRowRange(0, 5);
49258
+ if (rowEnd2 !== rowEnd) {
49259
+ isShowTooltip = true;
49260
+ }
49261
+ else {
49262
+ isShowTooltip = false;
49263
+ }
49264
+ }
49265
+ }
49266
+ else if (row === rowStart && isShowTooltip) {
49267
+ const heightLimitToShowTooltipForEdgeRow = chartDimensionLinkage.heightLimitToShowTooltipForEdgeRow ?? 0;
49268
+ const { rowStart: rowStart1 } = table.getBodyVisibleRowRange(heightLimitToShowTooltipForEdgeRow, 0);
49269
+ if (rowStart1 === rowStart) {
49270
+ isShowTooltip = true;
49271
+ }
49272
+ else {
49273
+ const { rowStart: rowStart2 } = table.getBodyVisibleRowRange(0, -5);
49274
+ if (rowStart2 !== rowStart) {
49275
+ isShowTooltip = true;
49276
+ }
49277
+ else {
49278
+ isShowTooltip = false;
49279
+ }
49280
+ }
49281
+ }
49282
+ return isShowTooltip;
49283
+ }
49284
+ function checkIsShowTooltipForEdgeColumn(col, table) {
49285
+ let isShowTooltip = true;
49286
+ const { colStart } = table.getBodyVisibleColRange();
49287
+ let colEnd = table.getBodyVisibleColRange().colEnd;
49288
+ colEnd = Math.min(table.colCount - 1 - table.rightFrozenColCount, colEnd);
49289
+ const chartDimensionLinkage = table.options.chartDimensionLinkage;
49290
+ if (col === colEnd && isShowTooltip) {
49291
+ const widthLimitToShowTooltipForEdgeColumn = chartDimensionLinkage.widthLimitToShowTooltipForEdgeColumn;
49292
+ const { colEnd: colEnd1 } = table.getBodyVisibleColRange(0, -widthLimitToShowTooltipForEdgeColumn);
49293
+ if (colEnd1 === colEnd) {
49294
+ isShowTooltip = true;
49295
+ }
49296
+ else {
49297
+ const { colEnd: colEnd2 } = table.getBodyVisibleColRange(0, 5);
49298
+ if (colEnd2 !== colEnd) {
49299
+ isShowTooltip = true;
49300
+ }
49301
+ else {
49302
+ isShowTooltip = false;
49303
+ }
49304
+ }
49305
+ }
49306
+ else if (col === colStart && isShowTooltip) {
49307
+ const widthLimitToShowTooltipForEdgeColumn = chartDimensionLinkage.widthLimitToShowTooltipForEdgeColumn;
49308
+ const { colStart: colStart1 } = table.getBodyVisibleColRange(widthLimitToShowTooltipForEdgeColumn, 0);
49309
+ if (colStart1 === colStart) {
49310
+ isShowTooltip = true;
49311
+ }
49312
+ else {
49313
+ const { colStart: colStart2 } = table.getBodyVisibleColRange(0, -5);
49314
+ if (colStart2 !== colStart) {
49315
+ isShowTooltip = true;
49316
+ }
49317
+ else {
49318
+ isShowTooltip = false;
49319
+ }
49320
+ }
49321
+ }
49322
+ return isShowTooltip;
49323
+ }
49324
+ function clearChartInstanceListByColumnDirection(col, excludedRow, table, forceRelease = false) {
49325
+ if (isValid$1(chartInstanceListColumnByColumnDirection[col])) {
49326
+ for (const i in chartInstanceListColumnByColumnDirection[col]) {
49327
+ if (isValid$1(excludedRow) && Number(i) === excludedRow) {
49328
+ continue;
49329
+ }
49330
+ const cellGroup = table.scenegraph.getCell(col, Number(i));
49331
+ const chartNode = cellGroup?.getChildren()?.[0];
49332
+ if (isValid$1(chartNode)) {
49333
+ chartNode.addUpdateShapeAndBoundsTag();
49334
+ chartNode.deactivate(table, {
49335
+ forceRelease: forceRelease,
49336
+ releaseChartInstance: true,
49337
+ releaseColumnChartInstance: false,
49338
+ releaseRowChartInstance: false
49339
+ });
49340
+ chartInstanceListColumnByColumnDirection[col][i] = null;
49341
+ }
49342
+ }
49343
+ delete chartInstanceListColumnByColumnDirection[col];
49344
+ }
49345
+ }
49346
+ function clearChartInstanceListByRowDirection(row, excludedCol, table, forceRelease = false) {
49394
49347
  if (isValid$1(chartInstanceListRowByRowDirection[row])) {
49395
49348
  for (const i in chartInstanceListRowByRowDirection[row]) {
49396
49349
  if (isValid$1(excludedCol) && Number(i) === excludedCol) {
@@ -49398,9 +49351,10 @@
49398
49351
  }
49399
49352
  const cellGroup = table.scenegraph.getCell(Number(i), row);
49400
49353
  const chartNode = cellGroup?.getChildren()?.[0];
49401
- chartNode.addUpdateShapeAndBoundsTag();
49402
49354
  if (isValid$1(chartNode)) {
49355
+ chartNode.addUpdateShapeAndBoundsTag();
49403
49356
  chartNode.deactivate(table, {
49357
+ forceRelease: forceRelease,
49404
49358
  releaseChartInstance: true,
49405
49359
  releaseColumnChartInstance: false,
49406
49360
  releaseRowChartInstance: false
@@ -49411,6 +49365,54 @@
49411
49365
  }
49412
49366
  delete chartInstanceListRowByRowDirection[row];
49413
49367
  }
49368
+ function clearDelayRunDimensionHoverTimers() {
49369
+ for (const timer of delayRunDimensionHoverTimer) {
49370
+ clearTimeout(timer);
49371
+ }
49372
+ delayRunDimensionHoverTimer.length = 0;
49373
+ }
49374
+ function clearAllChartInstanceList(table, forceRelease = false) {
49375
+ clearDelayRunDimensionHoverTimers();
49376
+ for (const col in chartInstanceListColumnByColumnDirection) {
49377
+ clearChartInstanceListByColumnDirection(Number(col), undefined, table, forceRelease);
49378
+ }
49379
+ for (const row in chartInstanceListRowByRowDirection) {
49380
+ clearChartInstanceListByRowDirection(Number(row), undefined, table, forceRelease);
49381
+ }
49382
+ }
49383
+ let disabledShowTooltipToAllChartInstances = false;
49384
+ function isDisabledShowTooltipToAllChartInstances() {
49385
+ return disabledShowTooltipToAllChartInstances;
49386
+ }
49387
+ function disableTooltipToAllChartInstances() {
49388
+ disabledShowTooltipToAllChartInstances = true;
49389
+ clearDelayRunDimensionHoverTimers();
49390
+ for (const col in chartInstanceListColumnByColumnDirection) {
49391
+ for (const row in chartInstanceListColumnByColumnDirection[col]) {
49392
+ chartInstanceListColumnByColumnDirection[col][row].disableTooltip(true);
49393
+ chartInstanceListColumnByColumnDirection[col][row].hideTooltip();
49394
+ }
49395
+ }
49396
+ for (const row in chartInstanceListRowByRowDirection) {
49397
+ for (const col in chartInstanceListRowByRowDirection[row]) {
49398
+ chartInstanceListRowByRowDirection[row][col].disableTooltip(true);
49399
+ chartInstanceListRowByRowDirection[row][col].hideTooltip();
49400
+ }
49401
+ }
49402
+ }
49403
+ function enableTooltipToAllChartInstances() {
49404
+ disabledShowTooltipToAllChartInstances = false;
49405
+ for (const col in chartInstanceListColumnByColumnDirection) {
49406
+ for (const row in chartInstanceListColumnByColumnDirection[col]) {
49407
+ chartInstanceListColumnByColumnDirection[col][row].disableTooltip(false);
49408
+ }
49409
+ }
49410
+ for (const row in chartInstanceListRowByRowDirection) {
49411
+ for (const col in chartInstanceListRowByRowDirection[row]) {
49412
+ chartInstanceListRowByRowDirection[row][col].disableTooltip(false);
49413
+ }
49414
+ }
49415
+ }
49414
49416
 
49415
49417
  function isValidAlignDomain(domain) {
49416
49418
  return domain.length === 2 && isValidNumber$1(domain[0]) && isValidNumber$1(domain[1]) && domain[1] >= domain[0];
@@ -50370,6 +50372,7 @@
50370
50372
  type = 'chart';
50371
50373
  chartInstance;
50372
50374
  activeChartInstance;
50375
+ activeChartInstanceLastViewBox = null;
50373
50376
  activeChartInstanceHoverOnMark = null;
50374
50377
  justShowMarkTooltip = undefined;
50375
50378
  justShowMarkTooltipTimer = Date.now();
@@ -50414,7 +50417,6 @@
50414
50417
  y1: y1 - table.scrollTop,
50415
50418
  y2: y2 - table.scrollTop
50416
50419
  });
50417
- this.activeChartInstance?.release();
50418
50420
  this.attribute.ClassType.globalConfig.uniqueTooltip = false;
50419
50421
  this.activeChartInstance = new this.attribute.ClassType(this.attribute.spec, merge({}, this.attribute.tableChartOption, {
50420
50422
  renderCanvas: this.attribute.canvas,
@@ -50467,7 +50469,7 @@
50467
50469
  }
50468
50470
  }
50469
50471
  },
50470
- componentShowContent: table.options.chartDimensionLinkage &&
50472
+ componentShowContent: table.options.chartDimensionLinkage?.showTooltip &&
50471
50473
  this.attribute.spec.type !== 'scatter'
50472
50474
  ? {
50473
50475
  tooltip: {
@@ -50488,21 +50490,54 @@
50488
50490
  table.internalProps.layoutMap?.updateDataStateToActiveChartInstance?.(this.activeChartInstance);
50489
50491
  this.activeChartInstance.on('click', (params) => {
50490
50492
  if (this.attribute.spec.select?.enable === false) {
50491
- table.scenegraph.updateChartState(null);
50493
+ table.scenegraph.updateChartState(null, undefined);
50492
50494
  }
50493
50495
  else if (Chart.temp) {
50494
- table.scenegraph.updateChartState(params?.datum);
50496
+ table.scenegraph.updateChartState(params?.datum, 'click');
50497
+ }
50498
+ });
50499
+ let brushChangeThrottle;
50500
+ if (table.options.chartDimensionLinkage?.listenBrushChange) {
50501
+ brushChangeThrottle = cancellableThrottle(table.scenegraph.updateChartState.bind(table.scenegraph), table.options.chartDimensionLinkage?.brushChangeDelay ?? 100);
50502
+ this.activeChartInstance.on('brushChange', (params) => {
50503
+ brushChangeThrottle.throttled(params?.value?.inBrushData, 'brush');
50504
+ });
50505
+ }
50506
+ this.activeChartInstance.on('brushStart', (params) => {
50507
+ const brushingChartInstance = getBrushingChartInstance();
50508
+ if (brushingChartInstance !== this.activeChartInstance) {
50509
+ if (brushingChartInstance) {
50510
+ brushingChartInstance.getChart().getComponentsByKey('brush')[0].clearBrushStateAndMask();
50511
+ }
50512
+ setBrushingChartInstance(this.activeChartInstance, col, row);
50495
50513
  }
50496
50514
  });
50497
50515
  this.activeChartInstance.on('brushEnd', (params) => {
50498
- table.scenegraph.updateChartState(params?.value?.inBrushData);
50516
+ brushChangeThrottle?.cancel();
50517
+ table.scenegraph.updateChartState(params?.value?.inBrushData, 'brush');
50499
50518
  Chart.temp = 0;
50500
50519
  setTimeout(() => {
50501
50520
  Chart.temp = 1;
50502
50521
  }, 0);
50503
50522
  });
50504
- if (table.options.chartDimensionLinkage) {
50523
+ if (table.options.chartDimensionLinkage?.showTooltip) {
50524
+ if (this.attribute.spec.type === 'pie') {
50525
+ this.activeChartInstance.on('pointerover', { markName: 'pie' }, (params) => {
50526
+ const categoryField = this.attribute.spec.categoryField;
50527
+ const datum = { [categoryField]: params?.datum?.[categoryField] };
50528
+ generateChartInstanceListByViewRange(datum, table, false);
50529
+ });
50530
+ this.activeChartInstance.on('pointerout', { markName: 'pie' }, (params) => {
50531
+ const categoryField = this.attribute.spec.categoryField;
50532
+ const datum = { [categoryField]: params?.datum?.[categoryField] };
50533
+ generateChartInstanceListByViewRange(datum, table, true);
50534
+ });
50535
+ }
50505
50536
  this.activeChartInstance.on('dimensionHover', (params) => {
50537
+ if (isDisabledShowTooltipToAllChartInstances()) {
50538
+ return;
50539
+ }
50540
+ this.activeChartInstance.disableTooltip(false);
50506
50541
  const dimensionInfo = params?.dimensionInfo[0];
50507
50542
  const canvasXY = params?.event?.canvas;
50508
50543
  const viewport = params?.event?.viewport;
@@ -50553,13 +50588,11 @@
50553
50588
  }
50554
50589
  else if (prev_justShowMarkTooltip === false && justShowMarkTooltip === true) {
50555
50590
  delayRunDimensionHover = false;
50556
- clearTimeout(this.delayRunDimensionHoverTimer);
50557
- this.delayRunDimensionHoverTimer = undefined;
50591
+ this.clearDelayRunDimensionHoverTimer();
50558
50592
  }
50559
50593
  else if (prev_justShowMarkTooltip === true && justShowMarkTooltip === true) {
50560
50594
  delayRunDimensionHover = false;
50561
- clearTimeout(this.delayRunDimensionHoverTimer);
50562
- this.delayRunDimensionHoverTimer = undefined;
50595
+ this.clearDelayRunDimensionHoverTimer();
50563
50596
  }
50564
50597
  if (params.action === 'enter' ||
50565
50598
  params.action === 'move' ||
@@ -50575,8 +50608,11 @@
50575
50608
  }
50576
50609
  }
50577
50610
  else {
50578
- clearTimeout(this.delayRunDimensionHoverTimer);
50611
+ this.clearDelayRunDimensionHoverTimer();
50579
50612
  this.delayRunDimensionHoverTimer = setTimeout(() => {
50613
+ if (isDisabledShowTooltipToAllChartInstances()) {
50614
+ return;
50615
+ }
50580
50616
  if (indicatorsAsCol) {
50581
50617
  generateChartInstanceListByRowDirection(row, dimensionValue, null, canvasXY, table, justShowMarkTooltip, false);
50582
50618
  }
@@ -50637,23 +50673,31 @@
50637
50673
  });
50638
50674
  }
50639
50675
  table._bindChartEvent?.(this.activeChartInstance);
50676
+ if (isDisabledShowTooltipToAllChartInstances()) {
50677
+ this.activeChartInstance.disableTooltip(true);
50678
+ }
50640
50679
  }
50641
50680
  static temp = 1;
50642
- deactivate(table, { releaseChartInstance = true, releaseColumnChartInstance = true, releaseRowChartInstance = true } = {}) {
50681
+ clearDelayRunDimensionHoverTimer() {
50682
+ clearTimeout(this.delayRunDimensionHoverTimer);
50683
+ this.delayRunDimensionHoverTimer = undefined;
50684
+ }
50685
+ deactivate(table, { forceRelease = false, releaseChartInstance = true, releaseColumnChartInstance = true, releaseRowChartInstance = true, releaseAllChartInstance = false } = {}) {
50643
50686
  this.activeChartInstanceHoverOnMark = null;
50644
50687
  this.justShowMarkTooltip = undefined;
50645
50688
  this.justShowMarkTooltipTimer = Date.now();
50646
- clearTimeout(this.delayRunDimensionHoverTimer);
50647
- this.delayRunDimensionHoverTimer = undefined;
50689
+ this.clearDelayRunDimensionHoverTimer();
50648
50690
  if (releaseChartInstance) {
50649
- this.activeChartInstance?.updateViewBox({
50650
- x1: -1000,
50651
- x2: -800,
50652
- y1: -1000,
50653
- y2: -800
50654
- }, false, false);
50655
- this.activeChartInstance?.release();
50656
- this.activeChartInstance = null;
50691
+ if (forceRelease || !getBrushingChartInstance() || getBrushingChartInstance() !== this.activeChartInstance) {
50692
+ this.activeChartInstance?.updateViewBox({
50693
+ x1: -1000,
50694
+ x2: -800,
50695
+ y1: -1000,
50696
+ y2: -800
50697
+ }, false, false);
50698
+ this.activeChartInstance?.release();
50699
+ this.activeChartInstance = null;
50700
+ }
50657
50701
  const { col, row } = this.parent;
50658
50702
  table.internalProps.layoutMap.isAxisCell(table.rowHeaderLevelCount - 1, row) &&
50659
50703
  table.scenegraph.getCell(table.rowHeaderLevelCount - 1, row).firstChild?.hideLabelHoverOnAxis?.();
@@ -50673,11 +50717,16 @@
50673
50717
  table.scenegraph.getCell(table.rowHeaderLevelCount - 1, row).firstChild?.hideLabelHoverOnAxis?.();
50674
50718
  }
50675
50719
  }
50676
- if (releaseColumnChartInstance) {
50677
- clearChartInstanceListByColumnDirection(this.parent.col, this.attribute.spec.type === 'scatter' ? this.parent.row : undefined, table);
50720
+ if (releaseAllChartInstance) {
50721
+ clearAllChartInstanceList(table, forceRelease);
50678
50722
  }
50679
- if (releaseRowChartInstance) {
50680
- clearChartInstanceListByRowDirection(this.parent.row, this.attribute.spec.type === 'scatter' ? this.parent.col : undefined, table);
50723
+ else {
50724
+ if (releaseColumnChartInstance) {
50725
+ clearChartInstanceListByColumnDirection(this.parent.col, this.attribute.spec.type === 'scatter' ? this.parent.row : undefined, table, forceRelease);
50726
+ }
50727
+ if (releaseRowChartInstance) {
50728
+ clearChartInstanceListByRowDirection(this.parent.row, this.attribute.spec.type === 'scatter' ? this.parent.col : undefined, table, forceRelease);
50729
+ }
50681
50730
  }
50682
50731
  }
50683
50732
  updateData(data) {
@@ -50688,12 +50737,19 @@
50688
50737
  const padding = this.attribute.cellPadding;
50689
50738
  const table = this.stage.table;
50690
50739
  const { x1, y1, x2, y2 } = cellGroup.globalAABBBounds;
50691
- return {
50740
+ const viewBox = {
50692
50741
  x1: Math.ceil(x1 + padding[3] + table.scrollLeft + (table.options.viewBox?.x1 ?? 0)),
50693
50742
  x2: Math.ceil(x1 + cellGroup.attribute.width - padding[1] + table.scrollLeft + (table.options.viewBox?.x1 ?? 0)),
50694
50743
  y1: Math.ceil(y1 + padding[0] + table.scrollTop + (table.options.viewBox?.y1 ?? 0)),
50695
50744
  y2: Math.ceil(y1 + cellGroup.attribute.height - padding[2] + table.scrollTop + (table.options.viewBox?.y1 ?? 0))
50696
50745
  };
50746
+ if (this.activeChartInstance) {
50747
+ this.activeChartInstanceLastViewBox = viewBox;
50748
+ }
50749
+ else {
50750
+ this.activeChartInstanceLastViewBox = null;
50751
+ }
50752
+ return viewBox;
50697
50753
  }
50698
50754
  }
50699
50755
  function getTableBounds(col, row, table) {
@@ -50962,7 +51018,6 @@
50962
51018
  drawShape(chart, context, x, y, drawContext, params, fillCb, strokeCb) {
50963
51019
  const groupAttribute = getTheme(chart, params?.theme).group;
50964
51020
  const { dataId, data, spec } = chart.attribute;
50965
- chart.getViewBox();
50966
51021
  const { width = groupAttribute.width, height = groupAttribute.height } = chart.attribute;
50967
51022
  const { table } = chart.getRootNode();
50968
51023
  const { cacheCanvas, activeChartInstance } = chart;
@@ -50985,13 +51040,20 @@
50985
51040
  activeChartInstance.updateSpecSync(spec, false, { reuse: false, morph: false });
50986
51041
  }
50987
51042
  }
51043
+ const lastViewBox = chart.activeChartInstanceLastViewBox;
50988
51044
  const viewBox = chart.getViewBox();
50989
- activeChartInstance.updateViewBox({
50990
- x1: 0,
50991
- x2: viewBox.x2 - viewBox.x1,
50992
- y1: 0,
50993
- y2: viewBox.y2 - viewBox.y1
50994
- }, false, false);
51045
+ if (!(lastViewBox &&
51046
+ viewBox.x1 === lastViewBox.x1 &&
51047
+ viewBox.x2 === lastViewBox.x2 &&
51048
+ viewBox.y1 === lastViewBox.y1 &&
51049
+ viewBox.y2 === lastViewBox.y2)) {
51050
+ activeChartInstance.updateViewBox({
51051
+ x1: 0,
51052
+ x2: viewBox.x2 - viewBox.x1,
51053
+ y1: 0,
51054
+ y2: viewBox.y2 - viewBox.y1
51055
+ }, false, false);
51056
+ }
50995
51057
  const chartStage = activeChartInstance.getStage();
50996
51058
  chartStage.needRender = true;
50997
51059
  const matrix = chart.globalTransMatrix.clone();
@@ -57107,9 +57169,10 @@
57107
57169
  updateTableAxes(scenegraph.rightFrozenGroup, scenegraph.table);
57108
57170
  updateTableAxes(scenegraph.bottomFrozenGroup, scenegraph.table);
57109
57171
  }
57110
- function updateChartState(scenegraph, datum) {
57172
+ function updateChartState(scenegraph, datum, selectedDataMode) {
57111
57173
  const table = scenegraph.table;
57112
57174
  if (table.isPivotChart()) {
57175
+ table._selectedDataMode = selectedDataMode;
57113
57176
  const preSelectItemsCount = table._selectedDataItemsInChart.length;
57114
57177
  if ((datum === null || datum === undefined || datum?.length === 0 || Object.keys(datum).length === 0) &&
57115
57178
  preSelectItemsCount === 0) {
@@ -58376,38 +58439,73 @@
58376
58439
  resetResidentHoverIcon(col, row) {
58377
58440
  resetResidentHoverIcon(col, row, this);
58378
58441
  }
58379
- deactivateChart(col, row) {
58442
+ deactivateChart(col, row, forceRelease = false) {
58380
58443
  if (col === -1 || row === -1) {
58444
+ if (forceRelease) {
58445
+ const brushingChartInstanceCellPos = getBrushingChartInstanceCellPos();
58446
+ const brushingChartInstance = getBrushingChartInstance();
58447
+ if (brushingChartInstanceCellPos && brushingChartInstance) {
58448
+ const cellGroup = this.getCell(brushingChartInstanceCellPos.col, brushingChartInstanceCellPos.row);
58449
+ if (cellGroup?.firstChild?.deactivate) {
58450
+ clearBrushingChartInstance();
58451
+ cellGroup?.firstChild?.deactivate?.(this.table, {
58452
+ forceRelease: true,
58453
+ releaseChartInstance: true,
58454
+ releaseColumnChartInstance: true,
58455
+ releaseRowChartInstance: true,
58456
+ releaseAllChartInstance: true
58457
+ });
58458
+ }
58459
+ }
58460
+ }
58381
58461
  return;
58382
58462
  }
58383
58463
  const cellGroup = this.getCell(col, row);
58384
58464
  if (cellGroup?.firstChild?.deactivate) {
58465
+ if (forceRelease) {
58466
+ clearBrushingChartInstance();
58467
+ cellGroup?.firstChild?.deactivate?.(this.table, {
58468
+ forceRelease: true,
58469
+ releaseChartInstance: true,
58470
+ releaseColumnChartInstance: true,
58471
+ releaseRowChartInstance: true,
58472
+ releaseAllChartInstance: true
58473
+ });
58474
+ return;
58475
+ }
58385
58476
  const chartNode = cellGroup?.firstChild;
58386
58477
  const chartType = chartNode.attribute.spec.type;
58387
- cellGroup?.firstChild?.deactivate?.(this.table, this.table.options.chartDimensionLinkage
58478
+ cellGroup?.firstChild?.deactivate?.(this.table, this.table.options.chartDimensionLinkage?.showTooltip
58388
58479
  ? {
58389
- releaseChartInstance: chartType === 'scatter'
58390
- ? (col !== this.table.stateManager.hover.cellPos.col &&
58391
- row !== this.table.stateManager.hover.cellPos.row) ||
58480
+ releaseChartInstance: chartType === 'pie'
58481
+ ? false
58482
+ : chartType === 'scatter'
58483
+ ? (col !== this.table.stateManager.hover.cellPos.col &&
58484
+ row !== this.table.stateManager.hover.cellPos.row) ||
58485
+ this.table.stateManager.hover.cellPos.row < this.table.frozenRowCount ||
58486
+ this.table.stateManager.hover.cellPos.row >
58487
+ this.table.rowCount - 1 - this.table.bottomFrozenRowCount ||
58488
+ this.table.stateManager.hover.cellPos.col < this.table.frozenColCount ||
58489
+ this.table.stateManager.hover.cellPos.col > this.table.colCount - 1 - this.table.rightFrozenColCount
58490
+ : this.table.options.indicatorsAsCol
58491
+ ? row !== this.table.stateManager.hover.cellPos.row ||
58492
+ this.table.stateManager.hover.cellPos.col < this.table.frozenColCount ||
58493
+ this.table.stateManager.hover.cellPos.col > this.table.colCount - 1 - this.table.rightFrozenColCount
58494
+ : col !== this.table.stateManager.hover.cellPos.col ||
58495
+ this.table.stateManager.hover.cellPos.row < this.table.frozenRowCount ||
58496
+ this.table.stateManager.hover.cellPos.row >
58497
+ this.table.rowCount - 1 - this.table.bottomFrozenRowCount,
58498
+ releaseColumnChartInstance: chartType === 'pie'
58499
+ ? false
58500
+ : col !== this.table.stateManager.hover.cellPos.col ||
58392
58501
  this.table.stateManager.hover.cellPos.row < this.table.frozenRowCount ||
58393
58502
  this.table.stateManager.hover.cellPos.row >
58394
- this.table.rowCount - 1 - this.table.bottomFrozenRowCount ||
58503
+ this.table.rowCount - 1 - this.table.bottomFrozenRowCount,
58504
+ releaseRowChartInstance: chartType === 'pie'
58505
+ ? false
58506
+ : row !== this.table.stateManager.hover.cellPos.row ||
58395
58507
  this.table.stateManager.hover.cellPos.col < this.table.frozenColCount ||
58396
58508
  this.table.stateManager.hover.cellPos.col > this.table.colCount - 1 - this.table.rightFrozenColCount
58397
- : this.table.options.indicatorsAsCol
58398
- ? row !== this.table.stateManager.hover.cellPos.row ||
58399
- this.table.stateManager.hover.cellPos.col < this.table.frozenColCount ||
58400
- this.table.stateManager.hover.cellPos.col > this.table.colCount - 1 - this.table.rightFrozenColCount
58401
- : col !== this.table.stateManager.hover.cellPos.col ||
58402
- this.table.stateManager.hover.cellPos.row < this.table.frozenRowCount ||
58403
- this.table.stateManager.hover.cellPos.row >
58404
- this.table.rowCount - 1 - this.table.bottomFrozenRowCount,
58405
- releaseColumnChartInstance: col !== this.table.stateManager.hover.cellPos.col ||
58406
- this.table.stateManager.hover.cellPos.row < this.table.frozenRowCount ||
58407
- this.table.stateManager.hover.cellPos.row > this.table.rowCount - 1 - this.table.bottomFrozenRowCount,
58408
- releaseRowChartInstance: row !== this.table.stateManager.hover.cellPos.row ||
58409
- this.table.stateManager.hover.cellPos.col < this.table.frozenColCount ||
58410
- this.table.stateManager.hover.cellPos.col > this.table.colCount - 1 - this.table.rightFrozenColCount
58411
58509
  }
58412
58510
  : undefined);
58413
58511
  }
@@ -58464,8 +58562,17 @@
58464
58562
  updateChartSizeForResizeRowHeight(row) {
58465
58563
  updateChartSizeForResizeRowHeight(this, row);
58466
58564
  }
58467
- updateChartState(datum) {
58468
- this.table.isPivotChart() && updateChartState(this, datum);
58565
+ updateChartState(datum, selectedDataMode) {
58566
+ if (this.table.isPivotChart()) {
58567
+ if (datum === null || datum === undefined || datum?.length === 0 || Object.keys(datum).length === 0) {
58568
+ const brushingChartInstance = getBrushingChartInstance();
58569
+ if (brushingChartInstance) {
58570
+ brushingChartInstance.getChart().getComponentsByKey('brush')[0].clearBrushStateAndMask();
58571
+ }
58572
+ this.table.options.chartDimensionLinkage?.clearChartState?.();
58573
+ }
58574
+ updateChartState(this, datum, selectedDataMode);
58575
+ }
58469
58576
  }
58470
58577
  updateCheckboxCellState(col, row, checked) {
58471
58578
  if (this.table.transpose) {
@@ -63752,7 +63859,8 @@
63752
63859
  return;
63753
63860
  }
63754
63861
  if (table.isPivotChart() && eventArgsSet?.eventArgs?.target.type !== 'chart') {
63755
- table.scenegraph.updateChartState(null);
63862
+ table.scenegraph.updateChartState(null, undefined);
63863
+ table.scenegraph.deactivateChart(-1, -1, true);
63756
63864
  }
63757
63865
  if (eventArgsSet.eventArgs?.target !== stateManager.residentHoverIcon?.icon) {
63758
63866
  stateManager.hideMenu();
@@ -63821,7 +63929,8 @@
63821
63929
  else {
63822
63930
  if (!eventManager.checkCellFillhandle(eventArgsSet) &&
63823
63931
  (eventManager.checkColumnResize(eventArgsSet, true) || eventManager.checkRowResize(eventArgsSet, true))) {
63824
- table.scenegraph.updateChartState(null);
63932
+ table.scenegraph.updateChartState(null, undefined);
63933
+ table.scenegraph.deactivateChart(-1, -1, true);
63825
63934
  stateManager.updateInteractionState(InteractionState.grabing);
63826
63935
  return;
63827
63936
  }
@@ -64066,7 +64175,8 @@
64066
64175
  !eventManager.checkCellFillhandle(eventArgsSet) &&
64067
64176
  !stateManager.columnResize.resizing &&
64068
64177
  eventManager.checkColumnResize(eventArgsSet, true)) {
64069
- table.scenegraph.updateChartState(null);
64178
+ table.scenegraph.updateChartState(null, undefined);
64179
+ table.scenegraph.deactivateChart(-1, -1, true);
64070
64180
  stateManager.updateInteractionState(InteractionState.grabing);
64071
64181
  const { eventArgs } = eventArgsSet;
64072
64182
  if (!eventArgs?.targetCell) {
@@ -64113,7 +64223,8 @@
64113
64223
  }
64114
64224
  stateManager.endSelectCells(true, isHasSelected);
64115
64225
  stateManager.updateCursor();
64116
- table.scenegraph.updateChartState(null);
64226
+ table.scenegraph.updateChartState(null, undefined);
64227
+ table.scenegraph.deactivateChart(-1, -1, true);
64117
64228
  }
64118
64229
  else if (table.eventManager.isDraging && stateManager.isSelecting()) {
64119
64230
  stateManager.endSelectCells();
@@ -64304,6 +64415,10 @@
64304
64415
  const legend = e.path.find(node => node.name === 'legend');
64305
64416
  if (!legend) {
64306
64417
  table.editorManager?.completeEdit();
64418
+ const { cellPos } = table.stateManager.hover;
64419
+ const prevHoverCellCol = cellPos.col;
64420
+ const prevHoverCellRow = cellPos.row;
64421
+ table.scenegraph.deactivateChart(prevHoverCellCol, prevHoverCellRow, true);
64307
64422
  if (table.eventManager._enableTableScroll) {
64308
64423
  handleWhell(e, stateManager);
64309
64424
  }
@@ -64497,6 +64612,9 @@
64497
64612
  if (stateManager.interactionState !== InteractionState.scrolling) {
64498
64613
  stateManager.updateInteractionState(InteractionState.scrolling);
64499
64614
  }
64615
+ scenegraph.table.stateManager.hideMenu();
64616
+ scenegraph.table.editorManager?.completeEdit();
64617
+ table.scenegraph.deactivateChart(-1, -1, true);
64500
64618
  const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);
64501
64619
  throttleVerticalWheel(ratio, e);
64502
64620
  });
@@ -64508,6 +64626,9 @@
64508
64626
  if (stateManager.interactionState !== InteractionState.scrolling) {
64509
64627
  stateManager.updateInteractionState(InteractionState.scrolling);
64510
64628
  }
64629
+ scenegraph.table.stateManager.hideMenu();
64630
+ scenegraph.table.editorManager?.completeEdit();
64631
+ table.scenegraph.deactivateChart(-1, -1, true);
64511
64632
  const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);
64512
64633
  throttleHorizontalWheel(ratio);
64513
64634
  });
@@ -64813,6 +64934,8 @@
64813
64934
  stateManager.endSelectCells(true, isHasSelected);
64814
64935
  }
64815
64936
  });
64937
+ table.scenegraph.updateChartState(null, undefined);
64938
+ table.scenegraph.deactivateChart(-1, -1, true);
64816
64939
  }
64817
64940
  };
64818
64941
  eventManager.globalEventListeners.push({
@@ -65656,7 +65779,6 @@
65656
65779
  cutOperationTime = 0;
65657
65780
  lastClipboardContent = '';
65658
65781
  cutCellRange = null;
65659
- cutRanges = null;
65660
65782
  copySourceRange = null;
65661
65783
  constructor(table) {
65662
65784
  this.table = table;
@@ -66176,10 +66298,6 @@
66176
66298
  this.handleCopy(e, true);
66177
66299
  this.cutWaitPaste = true;
66178
66300
  this.cutCellRange = this.table.getSelectedCellInfos();
66179
- this.cutRanges = this.table.stateManager.select.ranges?.map(r => ({
66180
- start: { col: r.start.col, row: r.start.row },
66181
- end: { col: r.end.col, row: r.end.row }
66182
- }));
66183
66301
  if (this.clipboardCheckTimer) {
66184
66302
  clearTimeout(this.clipboardCheckTimer);
66185
66303
  }
@@ -66187,7 +66305,6 @@
66187
66305
  if (this.cutWaitPaste) {
66188
66306
  this.cutWaitPaste = false;
66189
66307
  this.cutCellRange = null;
66190
- this.cutRanges = null;
66191
66308
  this.clipboardCheckTimer = null;
66192
66309
  }
66193
66310
  }, 30000);
@@ -66207,7 +66324,6 @@
66207
66324
  if (this.cutWaitPaste) {
66208
66325
  this.cutWaitPaste = false;
66209
66326
  this.cutCellRange = null;
66210
- this.cutRanges = null;
66211
66327
  if (this.clipboardCheckTimer) {
66212
66328
  clearTimeout(this.clipboardCheckTimer);
66213
66329
  this.clipboardCheckTimer = null;
@@ -66323,11 +66439,17 @@
66323
66439
  }
66324
66440
  clearCutArea(table) {
66325
66441
  try {
66326
- const ranges = this.cutRanges;
66327
- if (!ranges || ranges.length === 0) {
66442
+ const selectCells = this.cutCellRange;
66443
+ if (!selectCells || selectCells.length === 0) {
66328
66444
  return;
66329
66445
  }
66330
- table.changeCellValuesByIds(ranges, '');
66446
+ for (let i = 0; i < selectCells.length; i++) {
66447
+ for (let j = 0; j < selectCells[i].length; j++) {
66448
+ if (selectCells[i][j]) {
66449
+ table.changeCellValue(selectCells[i][j].col, selectCells[i][j].row, undefined);
66450
+ }
66451
+ }
66452
+ }
66331
66453
  }
66332
66454
  catch (error) {
66333
66455
  }
@@ -69849,15 +69971,6 @@
69849
69971
  this.customCellStyle = customCellStyle;
69850
69972
  this.customCellStyleArrangement = customCellStyleArrangement;
69851
69973
  }
69852
- clearCustomCellStyleArrangement() {
69853
- this.customCellStyleArrangement = [];
69854
- }
69855
- addCustomCellStyleArrangement(cellPosition, customStyleId) {
69856
- this.customCellStyleArrangement.push({
69857
- cellPosition,
69858
- customStyleId
69859
- });
69860
- }
69861
69974
  getCustomCellStyle(col, row) {
69862
69975
  const customStyleIds = this.getCustomCellStyleIds(col, row);
69863
69976
  if (customStyleIds.length) {
@@ -70386,7 +70499,7 @@
70386
70499
  return TABLE_EVENT_TYPE;
70387
70500
  }
70388
70501
  options;
70389
- version = "1.22.11-alpha.7";
70502
+ version = "1.22.11-alpha.8";
70390
70503
  pagination;
70391
70504
  id = `VTable${Date.now()}`;
70392
70505
  headerStyleCache;
@@ -76424,10 +76537,9 @@
76424
76537
  return { addRecordRule };
76425
76538
  }
76426
76539
 
76427
- function listTableChangeCellValue(col, row, value, workOnEditableCell, triggerEvent, table, silentChangeCellValuesEvent) {
76540
+ function listTableChangeCellValue(col, row, value, workOnEditableCell, triggerEvent, table) {
76428
76541
  if ((workOnEditableCell && table.isHasEditorDefine(col, row)) || workOnEditableCell === false) {
76429
- const recordShowIndex = table.getRecordShowIndexByCell(col, row);
76430
- const recordIndex = recordShowIndex >= 0 ? table.dataSource.getIndexKey(recordShowIndex) : undefined;
76542
+ const recordIndex = table.getRecordShowIndexByCell(col, row);
76431
76543
  const { field } = table.internalProps.layoutMap.getBody(col, row);
76432
76544
  const beforeChangeValue = table.getCellRawValue(col, row);
76433
76545
  const oldValue = table.getCellOriginValue(col, row);
@@ -76435,7 +76547,7 @@
76435
76547
  table.internalProps.layoutMap.updateColumnTitle(col, row, value);
76436
76548
  }
76437
76549
  else {
76438
- table.dataSource.changeFieldValue(value, recordShowIndex, field, col, row, table);
76550
+ table.dataSource.changeFieldValue(value, recordIndex, field, col, row, table);
76439
76551
  }
76440
76552
  const range = table.getCellRange(col, row);
76441
76553
  const aggregators = table.internalProps.layoutMap.getAggregatorsByCell(col, row);
@@ -76488,24 +76600,18 @@
76488
76600
  }
76489
76601
  const changedValue = table.getCellOriginValue(col, row);
76490
76602
  if (oldValue !== changedValue && triggerEvent) {
76491
- const changeValue = {
76603
+ table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {
76492
76604
  col,
76493
76605
  row,
76494
- recordIndex,
76495
- field,
76496
76606
  rawValue: beforeChangeValue,
76497
76607
  currentValue: oldValue,
76498
76608
  changedValue
76499
- };
76500
- table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, changeValue);
76501
- if (!silentChangeCellValuesEvent) {
76502
- table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUES, { values: [changeValue] });
76503
- }
76609
+ });
76504
76610
  }
76505
76611
  table.scenegraph.updateNextFrame();
76506
76612
  }
76507
76613
  }
76508
- async function listTableChangeCellValues(startCol, startRow, values, workOnEditableCell, triggerEvent, table, silentChangeCellValuesEvent) {
76614
+ async function listTableChangeCellValues(startCol, startRow, values, workOnEditableCell, triggerEvent, table) {
76509
76615
  const changedCellResults = [];
76510
76616
  let pasteColEnd = startCol;
76511
76617
  let pasteRowEnd = startRow;
@@ -76532,7 +76638,6 @@
76532
76638
  oldRowValues.push(oldValue);
76533
76639
  }
76534
76640
  }
76535
- const resultChangeValues = [];
76536
76641
  for (let i = 0; i < values.length; i++) {
76537
76642
  if (startRow + i > table.rowCount - 1) {
76538
76643
  break;
@@ -76572,8 +76677,7 @@
76572
76677
  if (isCanChange) {
76573
76678
  changedCellResults[i][j] = true;
76574
76679
  const value = rowValues[j];
76575
- const recordShowIndex = table.getRecordShowIndexByCell(startCol + j, startRow + i);
76576
- const recordIndex = recordShowIndex >= 0 ? table.dataSource.getIndexKey(recordShowIndex) : undefined;
76680
+ const recordIndex = table.getRecordShowIndexByCell(startCol + j, startRow + i);
76577
76681
  const { field } = table.internalProps.layoutMap.getBody(startCol + j, startRow + i);
76578
76682
  const beforeChangeValue = beforeChangeValues[i][j];
76579
76683
  const oldValue = oldValues[i][j];
@@ -76581,21 +76685,17 @@
76581
76685
  table.internalProps.layoutMap.updateColumnTitle(startCol + j, startRow + i, value);
76582
76686
  }
76583
76687
  else {
76584
- table.dataSource.changeFieldValue(value, recordShowIndex, field, startCol + j, startRow + i, table);
76688
+ table.dataSource.changeFieldValue(value, recordIndex, field, startCol + j, startRow + i, table);
76585
76689
  }
76586
76690
  const changedValue = table.getCellOriginValue(startCol + j, startRow + i);
76587
76691
  if (oldValue !== changedValue && triggerEvent) {
76588
- const changeValue = {
76692
+ table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, {
76589
76693
  col: startCol + j,
76590
76694
  row: startRow + i,
76591
- recordIndex,
76592
- field,
76593
76695
  rawValue: beforeChangeValue,
76594
76696
  currentValue: oldValue,
76595
76697
  changedValue
76596
- };
76597
- table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, changeValue);
76598
- resultChangeValues.push(changeValue);
76698
+ });
76599
76699
  }
76600
76700
  }
76601
76701
  else {
@@ -76604,9 +76704,6 @@
76604
76704
  }
76605
76705
  pasteColEnd = Math.max(pasteColEnd, thisRowPasteColEnd);
76606
76706
  }
76607
- if (!silentChangeCellValuesEvent) {
76608
- table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUES, { values: resultChangeValues });
76609
- }
76610
76707
  const startRange = table.getCellRange(startCol, startRow);
76611
76708
  const range = table.getCellRange(pasteColEnd, pasteRowEnd);
76612
76709
  const aggregators = table.internalProps.layoutMap.getAggregatorsByCellRange(startRange.start.col, startRange.start.row, range.end.col, range.end.row);
@@ -76679,68 +76776,6 @@
76679
76776
  table.scenegraph.updateNextFrame();
76680
76777
  return changedCellResults;
76681
76778
  }
76682
- async function listTableChangeCellValuesByIds(ranges, value, workOnEditableCell, triggerEvent, table, silentChangeCellValuesEvent) {
76683
- const resultChangeValues = [];
76684
- const processed = new Set();
76685
- const nextValue = (value ?? '');
76686
- for (let i = 0; i < (ranges?.length ?? 0); i++) {
76687
- const range = ranges[i];
76688
- const startCol = Math.min(range.start.col, range.end.col);
76689
- const endCol = Math.max(range.start.col, range.end.col);
76690
- const startRow = Math.min(range.start.row, range.end.row);
76691
- const endRow = Math.max(range.start.row, range.end.row);
76692
- if (startCol > endCol || startRow > endRow) {
76693
- continue;
76694
- }
76695
- const values = [];
76696
- const oldValues = [];
76697
- for (let row = startRow; row <= endRow; row++) {
76698
- const rowValues = [];
76699
- const rowOldValues = [];
76700
- for (let col = startCol; col <= endCol; col++) {
76701
- rowValues.push(nextValue);
76702
- rowOldValues.push(table.getCellOriginValue(col, row));
76703
- }
76704
- values.push(rowValues);
76705
- oldValues.push(rowOldValues);
76706
- }
76707
- const changedCellResults = await listTableChangeCellValues(startCol, startRow, values, workOnEditableCell, triggerEvent, table, true);
76708
- for (let r = 0; r < values.length; r++) {
76709
- for (let c = 0; c < values[r].length; c++) {
76710
- const col = startCol + c;
76711
- const row = startRow + r;
76712
- const key = `${col},${row}`;
76713
- if (processed.has(key)) {
76714
- continue;
76715
- }
76716
- processed.add(key);
76717
- if (!triggerEvent || !changedCellResults?.[r]?.[c]) {
76718
- continue;
76719
- }
76720
- const oldValue = oldValues[r][c];
76721
- const changedValue = table.getCellOriginValue(col, row);
76722
- if (oldValue === changedValue) {
76723
- continue;
76724
- }
76725
- const recordShowIndex = table.getRecordShowIndexByCell(col, row);
76726
- const recordIndex = recordShowIndex >= 0 ? table.dataSource.getIndexKey(recordShowIndex) : undefined;
76727
- const { field } = table.internalProps.layoutMap.getBody(col, row);
76728
- resultChangeValues.push({
76729
- col,
76730
- row,
76731
- recordIndex,
76732
- field,
76733
- rawValue: oldValue,
76734
- currentValue: oldValue,
76735
- changedValue
76736
- });
76737
- }
76738
- }
76739
- }
76740
- if (!silentChangeCellValuesEvent && triggerEvent) {
76741
- table.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUES, { values: resultChangeValues });
76742
- }
76743
- }
76744
76779
  function getCellUpdateType(col, row, table, oldCellUpdateType) {
76745
76780
  if (oldCellUpdateType === 'group') {
76746
76781
  return oldCellUpdateType;
@@ -76794,13 +76829,7 @@
76794
76829
  table.scenegraph.createSceneGraph();
76795
76830
  }
76796
76831
  else if (table.sortState) {
76797
- const syncToOriginalRecords = !!table.options?.syncRecordOperationsToSourceRecords;
76798
- if (syncToOriginalRecords) {
76799
- table.dataSource.addRecord(record, table.dataSource.records.length, true);
76800
- }
76801
- else {
76802
- table.dataSource.addRecordForSorted(record);
76803
- }
76832
+ table.dataSource.addRecordForSorted(record);
76804
76833
  table.stateManager.checkedState.clear();
76805
76834
  sortRecords(table);
76806
76835
  table.refreshRowColCount();
@@ -76813,16 +76842,8 @@
76813
76842
  recordIndex = table.dataSource.sourceLength;
76814
76843
  }
76815
76844
  const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;
76816
- const syncToOriginalRecords = !!table.options?.syncRecordOperationsToSourceRecords;
76817
- table.dataSource.addRecord(record, recordIndex, syncToOriginalRecords);
76845
+ table.dataSource.addRecord(record, recordIndex);
76818
76846
  adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, 1);
76819
- if (syncToOriginalRecords) {
76820
- table.refreshRowColCount();
76821
- table.internalProps.layoutMap.clearCellRangeMap();
76822
- table.scenegraph.clearCells();
76823
- table.scenegraph.createSceneGraph();
76824
- return true;
76825
- }
76826
76847
  const oldRowCount = table.rowCount;
76827
76848
  table.refreshRowColCount();
76828
76849
  if (table.scenegraph.proxy.totalActualBodyRowCount === 0) {
@@ -76934,13 +76955,7 @@
76934
76955
  table.scenegraph.createSceneGraph();
76935
76956
  }
76936
76957
  else if (table.sortState) {
76937
- const syncToOriginalRecords = !!table.options?.syncRecordOperationsToSourceRecords;
76938
- if (syncToOriginalRecords) {
76939
- table.dataSource.addRecords(records, table.dataSource.records.length, true);
76940
- }
76941
- else {
76942
- table.dataSource.addRecordsForSorted(records);
76943
- }
76958
+ table.dataSource.addRecordsForSorted(records);
76944
76959
  sortRecords(table);
76945
76960
  table.refreshRowColCount();
76946
76961
  table.scenegraph.clearCells();
@@ -76955,16 +76970,8 @@
76955
76970
  recordIndex = 0;
76956
76971
  }
76957
76972
  const headerCount = table.transpose ? table.rowHeaderLevelCount : table.columnHeaderLevelCount;
76958
- const syncToOriginalRecords = !!table.options?.syncRecordOperationsToSourceRecords;
76959
- table.dataSource.addRecords(records, recordIndex, syncToOriginalRecords);
76973
+ table.dataSource.addRecords(records, recordIndex);
76960
76974
  adjustCheckBoxStateMapWithAddRecordIndex(table, recordIndex, records.length);
76961
- if (syncToOriginalRecords) {
76962
- table.refreshRowColCount();
76963
- table.internalProps.layoutMap.clearCellRangeMap();
76964
- table.scenegraph.clearCells();
76965
- table.scenegraph.createSceneGraph();
76966
- return true;
76967
- }
76968
76975
  const oldRowCount = table.transpose ? table.colCount : table.rowCount;
76969
76976
  table.refreshRowColCount();
76970
76977
  if (table.scenegraph.proxy.totalActualBodyRowCount === 0) {
@@ -77080,34 +77087,20 @@
77080
77087
  table.scenegraph.createSceneGraph();
77081
77088
  }
77082
77089
  else if (table.sortState) {
77083
- const syncToOriginalRecords = !!table.options?.syncRecordOperationsToSourceRecords;
77084
- if (syncToOriginalRecords) {
77085
- table.dataSource.deleteRecords(recordIndexs, true);
77086
- }
77087
- else {
77088
- table.dataSource.deleteRecordsForSorted(recordIndexs);
77089
- }
77090
+ table.dataSource.deleteRecordsForSorted(recordIndexs);
77090
77091
  sortRecords(table);
77091
77092
  table.refreshRowColCount();
77092
77093
  table.scenegraph.clearCells();
77093
77094
  table.scenegraph.createSceneGraph();
77094
77095
  }
77095
77096
  else {
77096
- const syncToOriginalRecords = !!table.options?.syncRecordOperationsToSourceRecords;
77097
- const deletedRecordIndexs = table.dataSource.deleteRecords(recordIndexs, syncToOriginalRecords);
77097
+ const deletedRecordIndexs = table.dataSource.deleteRecords(recordIndexs);
77098
77098
  if (deletedRecordIndexs.length === 0) {
77099
77099
  return;
77100
77100
  }
77101
77101
  for (let index = 0; index < deletedRecordIndexs.length; index++) {
77102
77102
  adjustCheckBoxStateMapWithDeleteRecordIndex(table, deletedRecordIndexs[index], 1);
77103
77103
  }
77104
- if (syncToOriginalRecords) {
77105
- table.refreshRowColCount();
77106
- table.internalProps.layoutMap.clearCellRangeMap();
77107
- table.scenegraph.clearCells();
77108
- table.scenegraph.createSceneGraph();
77109
- return;
77110
- }
77111
77104
  const oldRowCount = table.transpose ? table.colCount : table.rowCount;
77112
77105
  table.refreshRowColCount();
77113
77106
  const newRowCount = table.transpose ? table.colCount : table.rowCount;
@@ -77225,32 +77218,18 @@
77225
77218
  table.scenegraph.createSceneGraph();
77226
77219
  }
77227
77220
  else if (table.sortState) {
77228
- const syncToOriginalRecords = !!table.options?.syncRecordOperationsToSourceRecords;
77229
- if (syncToOriginalRecords) {
77230
- table.dataSource.updateRecords(records, recordIndexs, true);
77231
- }
77232
- else {
77233
- table.dataSource.updateRecordsForSorted(records, recordIndexs);
77234
- }
77221
+ table.dataSource.updateRecordsForSorted(records, recordIndexs);
77235
77222
  sortRecords(table);
77236
77223
  table.refreshRowColCount();
77237
77224
  table.scenegraph.clearCells();
77238
77225
  table.scenegraph.createSceneGraph();
77239
77226
  }
77240
77227
  else {
77241
- const syncToOriginalRecords = !!table.options?.syncRecordOperationsToSourceRecords;
77242
- const updateRecordIndexs = table.dataSource.updateRecords(records, recordIndexs, syncToOriginalRecords);
77228
+ const updateRecordIndexs = table.dataSource.updateRecords(records, recordIndexs);
77243
77229
  if (updateRecordIndexs.length === 0) {
77244
77230
  return;
77245
77231
  }
77246
- if (syncToOriginalRecords) {
77247
- table.refreshRowColCount();
77248
- table.internalProps.layoutMap.clearCellRangeMap();
77249
- table.scenegraph.clearCells();
77250
- table.scenegraph.createSceneGraph();
77251
- return;
77252
- }
77253
- const bodyRowIndex = updateRecordIndexs.map((index) => table.getBodyRowIndexByRecordIndex(index));
77232
+ const bodyRowIndex = updateRecordIndexs.map(index => table.getBodyRowIndexByRecordIndex(index));
77254
77233
  const recordIndexsMinToMax = bodyRowIndex.sort((a, b) => a - b);
77255
77234
  if (table.pagination) {
77256
77235
  const { perPageCount, currentPage } = table.pagination;
@@ -78647,182 +78626,17 @@
78647
78626
  }
78648
78627
  return isValid$1(editorDefine);
78649
78628
  }
78650
- changeCellValue(col, row, value, workOnEditableCell = false, triggerEvent = true, silentChangeCellValuesEvent) {
78651
- return listTableChangeCellValue(col, row, value, workOnEditableCell, triggerEvent, this, silentChangeCellValuesEvent);
78652
- }
78653
- changeCellValues(startCol, startRow, values, workOnEditableCell = false, triggerEvent = true, silentChangeCellValuesEvent) {
78654
- return listTableChangeCellValues(startCol, startRow, values, workOnEditableCell, triggerEvent, this, silentChangeCellValuesEvent);
78655
- }
78656
- changeCellValuesByIds(ranges, value, workOnEditableCell = false, triggerEvent = true, silentChangeCellValuesEvent) {
78657
- return listTableChangeCellValuesByIds(ranges, value, workOnEditableCell, triggerEvent, this, silentChangeCellValuesEvent);
78658
- }
78659
- changeSourceCellValue(recordIndex, field, value) {
78660
- const tableIndex = this.getTableIndexByRecordIndex(recordIndex);
78661
- const cellAddr = this.getCellAddrByFieldRecord(field, recordIndex);
78662
- if (tableIndex < 0 || cellAddr.col < 0 || cellAddr.row < 0) {
78663
- return;
78664
- }
78665
- this.dataSource.changeFieldValue(value, tableIndex, field, cellAddr.col, cellAddr.row, this);
78666
- const beforeChangeValue = this.getCellRawValue(cellAddr.col, cellAddr.row);
78667
- const oldValue = this.getCellOriginValue(cellAddr.col, cellAddr.row);
78668
- const changedValue = this.getCellOriginValue(cellAddr.col, cellAddr.row);
78669
- if (oldValue !== changedValue) {
78670
- const changeValue = {
78671
- col: cellAddr.col,
78672
- row: cellAddr.row,
78673
- recordIndex,
78674
- field,
78675
- rawValue: beforeChangeValue,
78676
- currentValue: oldValue,
78677
- changedValue
78678
- };
78679
- this.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, changeValue);
78680
- this.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUES, { values: [changeValue] });
78681
- }
78682
- }
78683
- changeCellValueByRecord(recordIndex, field, value, options) {
78684
- const triggerEvent = options?.triggerEvent ?? true;
78685
- const silentChangeCellValuesEvent = options?.silentChangeCellValuesEvent;
78686
- const autoRefresh = options?.autoRefresh ?? true;
78687
- const records = this.dataSource.dataSourceObj?.records;
78688
- let record;
78689
- let oldValue;
78690
- if (Array.isArray(records) && (typeof field === 'string' || typeof field === 'number')) {
78691
- record = Array.isArray(recordIndex) ? getValueFromDeepArray(records, recordIndex) : records[recordIndex];
78692
- oldValue = record?.[field];
78693
- }
78694
- this.dataSource.changeFieldValueByRecordIndex(value, recordIndex, field, this);
78695
- if (!triggerEvent) {
78696
- return;
78697
- }
78698
- const changedValue = record && (typeof field === 'string' || typeof field === 'number') ? record?.[field] : value;
78699
- if (oldValue !== changedValue) {
78700
- const cellAddr = this.getCellAddrByFieldRecord(field, recordIndex);
78701
- const changeValue = {
78702
- col: cellAddr?.col ?? -1,
78703
- row: cellAddr?.row ?? -1,
78704
- recordIndex,
78705
- field,
78706
- rawValue: oldValue,
78707
- currentValue: oldValue,
78708
- changedValue
78709
- };
78710
- this.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, changeValue);
78711
- if (!silentChangeCellValuesEvent) {
78712
- this.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUES, { values: [changeValue] });
78713
- }
78714
- }
78715
- if (autoRefresh) {
78716
- this.refreshAfterSourceChange();
78717
- }
78718
- }
78719
- changeCellValueBySource(recordIndex, field, value, triggerEvent = true, silentChangeCellValuesEvent) {
78720
- return this.changeCellValueByRecord(recordIndex, field, value, {
78721
- triggerEvent,
78722
- silentChangeCellValuesEvent,
78723
- autoRefresh: true
78724
- });
78725
- }
78726
- changeCellValuesByRecords(changeValues, options) {
78727
- const triggerEvent = options?.triggerEvent ?? true;
78728
- const silentChangeCellValuesEvent = options?.silentChangeCellValuesEvent;
78729
- const autoRefresh = options?.autoRefresh ?? true;
78730
- const resultChangeValues = [];
78731
- for (let i = 0; i < changeValues.length; i++) {
78732
- const { recordIndex, field, value } = changeValues[i];
78733
- const records = this.dataSource.dataSourceObj?.records;
78734
- let record;
78735
- let oldValue;
78736
- if (Array.isArray(records) && (typeof field === 'string' || typeof field === 'number')) {
78737
- record = Array.isArray(recordIndex) ? getValueFromDeepArray(records, recordIndex) : records[recordIndex];
78738
- oldValue = record?.[field];
78739
- }
78740
- this.dataSource.changeFieldValueByRecordIndex(value, recordIndex, field, this);
78741
- if (triggerEvent) {
78742
- const changedValue = record && (typeof field === 'string' || typeof field === 'number') ? record?.[field] : value;
78743
- if (oldValue !== changedValue) {
78744
- const changeValue = {
78745
- col: (this.getCellAddrByFieldRecord(field, recordIndex)?.col ?? -1),
78746
- row: (this.getCellAddrByFieldRecord(field, recordIndex)?.row ?? -1),
78747
- recordIndex,
78748
- field,
78749
- rawValue: oldValue,
78750
- currentValue: oldValue,
78751
- changedValue
78752
- };
78753
- this.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUE, changeValue);
78754
- resultChangeValues.push(changeValue);
78755
- }
78756
- }
78757
- }
78758
- if (!silentChangeCellValuesEvent && resultChangeValues.length && triggerEvent) {
78759
- this.fireListeners(TABLE_EVENT_TYPE.CHANGE_CELL_VALUES, { values: resultChangeValues });
78760
- }
78761
- if (autoRefresh) {
78762
- this.refreshAfterSourceChange();
78763
- }
78764
- }
78765
- changeCellValuesBySource(changeValues, triggerEvent = true, silentChangeCellValuesEvent) {
78766
- return this.changeCellValuesByRecords(changeValues, {
78767
- triggerEvent,
78768
- silentChangeCellValuesEvent,
78769
- autoRefresh: true
78770
- });
78629
+ changeCellValue(col, row, value, workOnEditableCell = false, triggerEvent = true) {
78630
+ return listTableChangeCellValue(col, row, value, workOnEditableCell, triggerEvent, this);
78771
78631
  }
78772
- refreshAfterSourceChange(options) {
78773
- const reapplyFilter = options?.reapplyFilter ?? true;
78774
- const reapplySort = options?.reapplySort ?? true;
78775
- const clearRowHeightCache = options?.clearRowHeightCache ?? true;
78776
- this.scenegraph.clearCells();
78777
- if (this.sortState && reapplySort) {
78778
- this.dataSource.clearSortedIndexMap?.();
78779
- this.dataSource.sortedIndexMap?.clear?.();
78780
- }
78781
- if (reapplyFilter) {
78782
- if (this.sortState && reapplySort) {
78783
- this.dataSource.updateFilterRulesForSorted(this.dataSource.dataConfig?.filterRules);
78784
- sortRecords(this);
78785
- }
78786
- else {
78787
- this.dataSource.updateFilterRules(this.dataSource.dataConfig?.filterRules);
78788
- }
78789
- }
78790
- else if (this.sortState && reapplySort) {
78791
- sortRecords(this);
78792
- }
78793
- const traverseColumns = (columns) => {
78794
- for (let i = 0; i < (columns?.length ?? 0); i++) {
78795
- const column = columns[i];
78796
- const aggregators = column?.vtable_aggregator;
78797
- if (aggregators) {
78798
- if (Array.isArray(aggregators)) {
78799
- for (let j = 0; j < aggregators.length; j++) {
78800
- aggregators[j]?.recalculate?.();
78801
- }
78802
- }
78803
- else {
78804
- aggregators?.recalculate?.();
78805
- }
78806
- }
78807
- if (column?.columns) {
78808
- traverseColumns(column.columns);
78809
- }
78810
- }
78811
- };
78812
- traverseColumns(this.internalProps.columns);
78813
- this.refreshRowColCount();
78814
- this.internalProps.layoutMap.clearCellRangeMap();
78815
- this.internalProps.useOneRowHeightFillAll = false;
78816
- this.stateManager.initCheckedState(this.records);
78817
- this.scenegraph.createSceneGraph(!clearRowHeightCache);
78818
- this.internalProps.emptyTip?.resetVisible();
78819
- this.resize();
78632
+ changeCellValues(startCol, startRow, values, workOnEditableCell = false, triggerEvent = true) {
78633
+ return listTableChangeCellValues(startCol, startRow, values, workOnEditableCell, triggerEvent, this);
78820
78634
  }
78821
- addRecord(record, recordIndex, triggerEvent = true) {
78635
+ addRecord(record, recordIndex) {
78822
78636
  const success = listTableAddRecord(record, recordIndex, this);
78823
78637
  adjustHeightResizedRowMapWithAddRecordIndex(this, recordIndex, [record]);
78824
78638
  this.internalProps.emptyTip?.resetVisible();
78825
- if (triggerEvent && success) {
78639
+ if (success) {
78826
78640
  this.fireListeners(TABLE_EVENT_TYPE.ADD_RECORD, {
78827
78641
  records: [record],
78828
78642
  recordIndex,
@@ -78830,13 +78644,13 @@
78830
78644
  });
78831
78645
  }
78832
78646
  }
78833
- addRecords(records, recordIndex, triggerEvent = true) {
78647
+ addRecords(records, recordIndex) {
78834
78648
  const success = listTableAddRecords(records, recordIndex, this);
78835
78649
  if (typeof recordIndex === 'number') {
78836
78650
  adjustHeightResizedRowMapWithAddRecordIndex(this, recordIndex, records);
78837
78651
  }
78838
78652
  this.internalProps.emptyTip?.resetVisible();
78839
- if (triggerEvent && success) {
78653
+ if (success) {
78840
78654
  this.fireListeners(TABLE_EVENT_TYPE.ADD_RECORD, {
78841
78655
  records,
78842
78656
  recordIndex,
@@ -78844,20 +78658,7 @@
78844
78658
  });
78845
78659
  }
78846
78660
  }
78847
- deleteRecords(recordIndexs, triggerEvent = true) {
78848
- const deletedRecords = [];
78849
- if (recordIndexs?.length > 0) {
78850
- recordIndexs.forEach(index => {
78851
- let record = null;
78852
- if (typeof index === 'number') {
78853
- record = this.dataSource.get(index);
78854
- }
78855
- else {
78856
- record = [];
78857
- }
78858
- deletedRecords.push(record);
78859
- });
78860
- }
78661
+ deleteRecords(recordIndexs) {
78861
78662
  listTableDeleteRecords(recordIndexs, this);
78862
78663
  adjustHeightResizedRowMapWithDeleteRecordIndex(this, recordIndexs);
78863
78664
  this.internalProps.emptyTip?.resetVisible();
@@ -78865,26 +78666,21 @@
78865
78666
  for (let i = 0; i < recordIndexs.length; i++) {
78866
78667
  rowIndexs.push(this.getBodyRowIndexByRecordIndex(recordIndexs[i]) + this.columnHeaderLevelCount);
78867
78668
  }
78868
- if (triggerEvent) {
78869
- this.fireListeners(TABLE_EVENT_TYPE.DELETE_RECORD, {
78870
- recordIndexs,
78871
- records: deletedRecords,
78872
- rowIndexs,
78873
- deletedCount: Array.isArray(recordIndexs[0])
78874
- ? recordIndexs.length
78875
- : recordIndexs.length
78876
- });
78877
- }
78669
+ this.fireListeners(TABLE_EVENT_TYPE.DELETE_RECORD, {
78670
+ recordIndexs,
78671
+ rowIndexs,
78672
+ deletedCount: Array.isArray(recordIndexs[0])
78673
+ ? recordIndexs.length
78674
+ : recordIndexs.length
78675
+ });
78878
78676
  }
78879
- updateRecords(records, recordIndexs, triggerEvent = true) {
78677
+ updateRecords(records, recordIndexs) {
78880
78678
  listTableUpdateRecords(records, recordIndexs, this);
78881
- if (triggerEvent) {
78882
- this.fireListeners(TABLE_EVENT_TYPE.UPDATE_RECORD, {
78883
- records,
78884
- recordIndexs,
78885
- updateCount: records.length
78886
- });
78887
- }
78679
+ this.fireListeners(TABLE_EVENT_TYPE.UPDATE_RECORD, {
78680
+ records,
78681
+ recordIndexs,
78682
+ updateCount: records.length
78683
+ });
78888
78684
  }
78889
78685
  _hasCustomRenderOrLayout() {
78890
78686
  const { headerObjects } = this.internalProps.layoutMap;
@@ -87781,53 +87577,93 @@
87781
87577
  return null;
87782
87578
  }
87783
87579
  _generateChartState() {
87580
+ const select_filter = (datum) => {
87581
+ if (this._table._selectedDataItemsInChart.length >= 1) {
87582
+ const match = this._table._selectedDataItemsInChart.find(item => {
87583
+ for (const itemKey in item) {
87584
+ if (typeof item[itemKey] !== 'object' && item[itemKey] !== datum[itemKey]) {
87585
+ return false;
87586
+ }
87587
+ }
87588
+ return true;
87589
+ });
87590
+ return !!match;
87591
+ }
87592
+ else if (this._table._selectedDimensionInChart?.length) {
87593
+ const match = this._table._selectedDimensionInChart.every(item => {
87594
+ if (typeof item.value !== 'object' && datum[item.key] !== item.value) {
87595
+ return false;
87596
+ }
87597
+ return true;
87598
+ });
87599
+ return !!match;
87600
+ }
87601
+ return false;
87602
+ };
87603
+ const selected_reverse = (datum) => {
87604
+ if (this._table._selectedDataItemsInChart.length >= 1) {
87605
+ const match = this._table._selectedDataItemsInChart.find(item => {
87606
+ for (const itemKey in item) {
87607
+ if (typeof item[itemKey] !== 'object' && item[itemKey] !== datum[itemKey]) {
87608
+ return false;
87609
+ }
87610
+ }
87611
+ return true;
87612
+ });
87613
+ return !match;
87614
+ }
87615
+ else if (this._table._selectedDimensionInChart?.length) {
87616
+ const match = this._table._selectedDimensionInChart.every(item => {
87617
+ if (typeof item.value !== 'object' && datum[item.key] !== item.value) {
87618
+ return false;
87619
+ }
87620
+ return true;
87621
+ });
87622
+ return !match;
87623
+ }
87624
+ return false;
87625
+ };
87784
87626
  const state = {
87785
87627
  vtable_selected: {
87786
87628
  filter: (datum) => {
87787
- if (this._table._selectedDataItemsInChart.length >= 1) {
87788
- const match = this._table._selectedDataItemsInChart.find(item => {
87789
- for (const itemKey in item) {
87790
- if (typeof item[itemKey] !== 'object' && item[itemKey] !== datum[itemKey]) {
87791
- return false;
87792
- }
87793
- }
87794
- return true;
87795
- });
87796
- return !!match;
87629
+ if (this._table.options.chartDimensionLinkage?.selectedStateFilter) {
87630
+ return this._table.options.chartDimensionLinkage.selectedStateFilter(datum);
87797
87631
  }
87798
- else if (this._table._selectedDimensionInChart?.length) {
87799
- const match = this._table._selectedDimensionInChart.every(item => {
87800
- if (typeof item.value !== 'object' && datum[item.key] !== item.value) {
87801
- return false;
87802
- }
87803
- return true;
87804
- });
87805
- return !!match;
87632
+ if (this._table._selectedDataMode === 'click') {
87633
+ return select_filter(datum);
87806
87634
  }
87807
87635
  return false;
87808
87636
  }
87809
87637
  },
87810
87638
  vtable_selected_reverse: {
87811
87639
  filter: (datum) => {
87812
- if (this._table._selectedDataItemsInChart.length >= 1) {
87813
- const match = this._table._selectedDataItemsInChart.find(item => {
87814
- for (const itemKey in item) {
87815
- if (typeof item[itemKey] !== 'object' && item[itemKey] !== datum[itemKey]) {
87816
- return false;
87817
- }
87818
- }
87819
- return true;
87820
- });
87821
- return !match;
87640
+ if (this._table.options.chartDimensionLinkage?.selectedReverseStateFilter) {
87641
+ return this._table.options.chartDimensionLinkage.selectedReverseStateFilter(datum);
87822
87642
  }
87823
- else if (this._table._selectedDimensionInChart?.length) {
87824
- const match = this._table._selectedDimensionInChart.every(item => {
87825
- if (typeof item.value !== 'object' && datum[item.key] !== item.value) {
87826
- return false;
87827
- }
87828
- return true;
87829
- });
87830
- return !match;
87643
+ if (this._table._selectedDataMode === 'click') {
87644
+ return selected_reverse(datum);
87645
+ }
87646
+ return false;
87647
+ }
87648
+ },
87649
+ inBrush: {
87650
+ filter: (datum) => {
87651
+ if (this._table.options.chartDimensionLinkage?.inBrushStateFilter) {
87652
+ return this._table.options.chartDimensionLinkage.inBrushStateFilter(datum);
87653
+ }
87654
+ if (this._table._selectedDataMode === 'brush') {
87655
+ return select_filter(datum);
87656
+ }
87657
+ return false;
87658
+ }
87659
+ },
87660
+ outOfBrush: {
87661
+ filter: (datum) => {
87662
+ if (this._table.options.chartDimensionLinkage?.outOfBrushStateFilter) {
87663
+ return this._table.options.chartDimensionLinkage.outOfBrushStateFilter(datum);
87664
+ }
87665
+ if (this._table._selectedDataMode === 'brush') {
87666
+ return selected_reverse(datum);
87831
87667
  }
87832
87668
  return false;
87833
87669
  }
@@ -92099,6 +91935,7 @@
92099
91935
  pivotSortState;
92100
91936
  dataset;
92101
91937
  _selectedDataItemsInChart = [];
91938
+ _selectedDataMode = 'click';
92102
91939
  _selectedDimensionInChart = [];
92103
91940
  _chartEventMap = {};
92104
91941
  _axes;
@@ -93288,6 +93125,12 @@
93288
93125
  const headerNodes = layoutMap.getCellHeaderPathsWithTreeNode(col, row);
93289
93126
  return headerNodes;
93290
93127
  }
93128
+ disableTooltipToAllChartInstances() {
93129
+ disableTooltipToAllChartInstances();
93130
+ }
93131
+ enableTooltipToAllChartInstances() {
93132
+ enableTooltipToAllChartInstances();
93133
+ }
93291
93134
  }
93292
93135
 
93293
93136
  class Circle extends Circle$1 {
@@ -93849,7 +93692,7 @@
93849
93692
  }
93850
93693
 
93851
93694
  registerForVrender();
93852
- const version = "1.22.11-alpha.7";
93695
+ const version = "1.22.11-alpha.8";
93853
93696
  function getIcons() {
93854
93697
  return get$2();
93855
93698
  }