@visactor/vtable 1.26.4 → 1.26.6

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 (195) hide show
  1. package/cjs/ListTable.d.ts +5 -1
  2. package/cjs/ListTable.js +41 -11
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/body-helper/body-helper.d.ts +1 -0
  5. package/cjs/body-helper/body-helper.js +4 -3
  6. package/cjs/body-helper/body-helper.js.map +1 -1
  7. package/cjs/body-helper/style.js +2 -1
  8. package/cjs/components/legend/discrete-legend/discrete-legend.d.ts +1 -1
  9. package/cjs/core/BaseTable.d.ts +1 -0
  10. package/cjs/core/BaseTable.js +37 -27
  11. package/cjs/core/BaseTable.js.map +1 -1
  12. package/cjs/core/row-series-number-helper.d.ts +1 -0
  13. package/cjs/core/row-series-number-helper.js +3 -1
  14. package/cjs/core/row-series-number-helper.js.map +1 -1
  15. package/cjs/data/CachedDataSource.js +5 -3
  16. package/cjs/data/CachedDataSource.js.map +1 -1
  17. package/cjs/data/DataSource.js +1 -2
  18. package/cjs/dataset/DataStatistics.js +2 -1
  19. package/cjs/header-helper/header-helper.d.ts +1 -0
  20. package/cjs/header-helper/header-helper.js +4 -3
  21. package/cjs/header-helper/header-helper.js.map +1 -1
  22. package/cjs/header-helper/style.js +2 -1
  23. package/cjs/index.d.ts +1 -1
  24. package/cjs/index.js +1 -1
  25. package/cjs/index.js.map +1 -1
  26. package/cjs/plugins/custom-cell-style.js +1 -1
  27. package/cjs/plugins/interface.d.ts +2 -1
  28. package/cjs/plugins/interface.js.map +1 -1
  29. package/cjs/plugins/plugin-manager.d.ts +1 -1
  30. package/cjs/plugins/plugin-manager.js +11 -6
  31. package/cjs/plugins/plugin-manager.js.map +1 -1
  32. package/cjs/scenegraph/animation/appear.js +18 -3
  33. package/cjs/scenegraph/animation/appear.js.map +1 -1
  34. package/cjs/scenegraph/component/custom.js +3 -3
  35. package/cjs/scenegraph/component/custom.js.map +1 -1
  36. package/cjs/scenegraph/component/menu.js +4 -4
  37. package/cjs/scenegraph/component/menu.js.map +1 -1
  38. package/cjs/scenegraph/graphic/chart.d.ts +6 -1
  39. package/cjs/scenegraph/graphic/chart.js +38 -4
  40. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  41. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +2 -1
  42. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  43. package/cjs/scenegraph/graphic/group.d.ts +3 -1
  44. package/cjs/scenegraph/graphic/group.js +21 -3
  45. package/cjs/scenegraph/graphic/group.js.map +1 -1
  46. package/cjs/scenegraph/group-creater/cell-helper.js +4 -3
  47. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  48. package/cjs/scenegraph/group-creater/cell-type/button-cell.js +2 -2
  49. package/cjs/scenegraph/group-creater/cell-type/button-cell.js.map +1 -1
  50. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +4 -4
  51. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  52. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +2 -2
  53. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  54. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +2 -2
  55. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  56. package/cjs/scenegraph/group-creater/cell-type/radio-cell.js +2 -2
  57. package/cjs/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
  58. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js +2 -2
  59. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  60. package/cjs/scenegraph/group-creater/cell-type/switch-cell.js +2 -2
  61. package/cjs/scenegraph/group-creater/cell-type/switch-cell.js.map +1 -1
  62. package/cjs/scenegraph/group-creater/cell-type/text-cell.js +6 -6
  63. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  64. package/cjs/scenegraph/group-creater/cell-type/video-cell.js +10 -7
  65. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  66. package/cjs/scenegraph/group-creater/column-helper.js +3 -2
  67. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  68. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +24 -8
  69. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  70. package/cjs/scenegraph/layout/compute-row-height.js +15 -4
  71. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  72. package/cjs/scenegraph/layout/update-row.js +24 -3
  73. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  74. package/cjs/scenegraph/runtime-contributions.d.ts +2 -0
  75. package/cjs/scenegraph/runtime-contributions.js +28 -0
  76. package/cjs/scenegraph/runtime-contributions.js.map +1 -0
  77. package/cjs/scenegraph/scenegraph.d.ts +4 -1
  78. package/cjs/scenegraph/scenegraph.js +81 -35
  79. package/cjs/scenegraph/scenegraph.js.map +1 -1
  80. package/cjs/scenegraph/utils/text-icon-layout.d.ts +4 -0
  81. package/cjs/scenegraph/utils/text-icon-layout.js +27 -9
  82. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  83. package/cjs/scenegraph/utils/text-measure.js.map +1 -1
  84. package/cjs/state/checkbox/checkbox.d.ts +3 -0
  85. package/cjs/state/checkbox/checkbox.js +138 -2
  86. package/cjs/state/checkbox/checkbox.js.map +1 -1
  87. package/cjs/ts-types/base-table.d.ts +5 -1
  88. package/cjs/ts-types/base-table.js.map +1 -1
  89. package/cjs/ts-types/table-engine.d.ts +7 -1
  90. package/cjs/ts-types/table-engine.js.map +1 -1
  91. package/cjs/vrender-app.d.ts +20 -0
  92. package/cjs/vrender-app.js +141 -0
  93. package/cjs/vrender-app.js.map +1 -0
  94. package/cjs/vrender.d.ts +17 -1
  95. package/cjs/vrender.js +36 -15
  96. package/cjs/vrender.js.map +1 -1
  97. package/dist/vtable.js +106194 -96838
  98. package/dist/vtable.min.js +1 -1
  99. package/es/ListTable.d.ts +5 -1
  100. package/es/ListTable.js +41 -11
  101. package/es/ListTable.js.map +1 -1
  102. package/es/body-helper/body-helper.d.ts +1 -0
  103. package/es/body-helper/body-helper.js +4 -3
  104. package/es/body-helper/body-helper.js.map +1 -1
  105. package/es/body-helper/style.js +2 -1
  106. package/es/components/legend/discrete-legend/discrete-legend.d.ts +1 -1
  107. package/es/core/BaseTable.d.ts +1 -0
  108. package/es/core/BaseTable.js +39 -29
  109. package/es/core/BaseTable.js.map +1 -1
  110. package/es/core/row-series-number-helper.d.ts +1 -0
  111. package/es/core/row-series-number-helper.js +3 -1
  112. package/es/core/row-series-number-helper.js.map +1 -1
  113. package/es/data/CachedDataSource.js +5 -3
  114. package/es/data/CachedDataSource.js.map +1 -1
  115. package/es/data/DataSource.js +1 -2
  116. package/es/dataset/DataStatistics.js +2 -1
  117. package/es/header-helper/header-helper.d.ts +1 -0
  118. package/es/header-helper/header-helper.js +4 -3
  119. package/es/header-helper/header-helper.js.map +1 -1
  120. package/es/header-helper/style.js +2 -1
  121. package/es/index.d.ts +1 -1
  122. package/es/index.js +1 -1
  123. package/es/index.js.map +1 -1
  124. package/es/plugins/custom-cell-style.js +1 -1
  125. package/es/plugins/interface.d.ts +2 -1
  126. package/es/plugins/interface.js.map +1 -1
  127. package/es/plugins/plugin-manager.d.ts +1 -1
  128. package/es/plugins/plugin-manager.js +11 -6
  129. package/es/plugins/plugin-manager.js.map +1 -1
  130. package/es/scenegraph/animation/appear.js +18 -3
  131. package/es/scenegraph/animation/appear.js.map +1 -1
  132. package/es/scenegraph/component/custom.js +3 -3
  133. package/es/scenegraph/component/custom.js.map +1 -1
  134. package/es/scenegraph/component/menu.js +4 -4
  135. package/es/scenegraph/component/menu.js.map +1 -1
  136. package/es/scenegraph/graphic/chart.d.ts +6 -1
  137. package/es/scenegraph/graphic/chart.js +39 -3
  138. package/es/scenegraph/graphic/chart.js.map +1 -1
  139. package/es/scenegraph/graphic/contributions/chart-render-helper.js +2 -1
  140. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  141. package/es/scenegraph/graphic/group.d.ts +3 -1
  142. package/es/scenegraph/graphic/group.js +21 -3
  143. package/es/scenegraph/graphic/group.js.map +1 -1
  144. package/es/scenegraph/group-creater/cell-helper.js +4 -3
  145. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  146. package/es/scenegraph/group-creater/cell-type/button-cell.js +2 -2
  147. package/es/scenegraph/group-creater/cell-type/button-cell.js.map +1 -1
  148. package/es/scenegraph/group-creater/cell-type/chart-cell.js +4 -4
  149. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  150. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +2 -2
  151. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  152. package/es/scenegraph/group-creater/cell-type/image-cell.js +2 -2
  153. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  154. package/es/scenegraph/group-creater/cell-type/radio-cell.js +2 -2
  155. package/es/scenegraph/group-creater/cell-type/radio-cell.js.map +1 -1
  156. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js +2 -2
  157. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  158. package/es/scenegraph/group-creater/cell-type/switch-cell.js +2 -2
  159. package/es/scenegraph/group-creater/cell-type/switch-cell.js.map +1 -1
  160. package/es/scenegraph/group-creater/cell-type/text-cell.js +5 -5
  161. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  162. package/es/scenegraph/group-creater/cell-type/video-cell.js +10 -7
  163. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  164. package/es/scenegraph/group-creater/column-helper.js +3 -2
  165. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  166. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +24 -8
  167. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  168. package/es/scenegraph/layout/compute-row-height.js +15 -4
  169. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  170. package/es/scenegraph/layout/update-row.js +25 -2
  171. package/es/scenegraph/layout/update-row.js.map +1 -1
  172. package/es/scenegraph/runtime-contributions.d.ts +2 -0
  173. package/es/scenegraph/runtime-contributions.js +20 -0
  174. package/es/scenegraph/runtime-contributions.js.map +1 -0
  175. package/es/scenegraph/scenegraph.d.ts +4 -1
  176. package/es/scenegraph/scenegraph.js +83 -35
  177. package/es/scenegraph/scenegraph.js.map +1 -1
  178. package/es/scenegraph/utils/text-icon-layout.d.ts +4 -0
  179. package/es/scenegraph/utils/text-icon-layout.js +25 -8
  180. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  181. package/es/scenegraph/utils/text-measure.js.map +1 -1
  182. package/es/state/checkbox/checkbox.d.ts +3 -0
  183. package/es/state/checkbox/checkbox.js +133 -0
  184. package/es/state/checkbox/checkbox.js.map +1 -1
  185. package/es/ts-types/base-table.d.ts +5 -1
  186. package/es/ts-types/base-table.js.map +1 -1
  187. package/es/ts-types/table-engine.d.ts +7 -1
  188. package/es/ts-types/table-engine.js.map +1 -1
  189. package/es/vrender-app.d.ts +20 -0
  190. package/es/vrender-app.js +161 -0
  191. package/es/vrender-app.js.map +1 -0
  192. package/es/vrender.d.ts +17 -1
  193. package/es/vrender.js +27 -8
  194. package/es/vrender.js.map +1 -1
  195. package/package.json +10 -9
@@ -0,0 +1,20 @@
1
+ import { installRuntimeContributionModule } from "@visactor/vrender/entries/runtime-contribution";
2
+
3
+ import { CanvasPickerContribution } from "@visactor/vrender-kits/picker/contributions/constants";
4
+
5
+ import splitModule from "./graphic/contributions";
6
+
7
+ import textMeasureModule from "./utils/text-measure";
8
+
9
+ export function installVTableRuntimeContributions(app) {
10
+ installRuntimeContributionModule(splitModule, {
11
+ app: app,
12
+ targets: [ "graphic-renderer", "draw-contribution", {
13
+ picker: CanvasPickerContribution
14
+ } ]
15
+ }), installRuntimeContributionModule(textMeasureModule, {
16
+ app: app,
17
+ targets: [ "graphic-renderer" ]
18
+ });
19
+ }
20
+ //# sourceMappingURL=runtime-contributions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/scenegraph/runtime-contributions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAC;AAClG,OAAO,EAAE,wBAAwB,EAAE,MAAM,uDAAuD,CAAC;AAEjG,OAAO,WAAW,MAAM,yBAAyB,CAAC;AAClD,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAErD,MAAM,UAAU,iCAAiC,CAAC,GAAU;IAC1D,gCAAgC,CAAC,WAAW,EAAE;QAC5C,GAAG;QACH,OAAO,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;KACzF,CAAC,CAAC;IAEH,gCAAgC,CAAC,iBAAiB,EAAE;QAClD,GAAG;QACH,OAAO,EAAE,CAAC,kBAAkB,CAAC;KAC9B,CAAC,CAAC;AACL,CAAC","file":"runtime-contributions.js","sourcesContent":["import type { IApp } from '@visactor/vrender-core';\nimport { installRuntimeContributionModule } from '@visactor/vrender/entries/runtime-contribution';\nimport { CanvasPickerContribution } from '@visactor/vrender-kits/picker/contributions/constants';\n\nimport splitModule from './graphic/contributions';\nimport textMeasureModule from './utils/text-measure';\n\nexport function installVTableRuntimeContributions(app?: IApp): void {\n installRuntimeContributionModule(splitModule, {\n app,\n targets: ['graphic-renderer', 'draw-contribution', { picker: CanvasPickerContribution }]\n });\n\n installRuntimeContributionModule(textMeasureModule, {\n app,\n targets: ['graphic-renderer']\n });\n}\n"]}
@@ -1,4 +1,4 @@
1
- import type { IStage, IRect, IRectGraphicAttribute } from './../vrender';
1
+ import { type IRect, type IRectGraphicAttribute, type IStage } from './../vrender';
2
2
  import type { CellRange, CellSubLocation } from '../ts-types';
3
3
  import { type CellAddress, type SortOrder } from '../ts-types';
4
4
  import type { Group } from './graphic/group';
@@ -49,6 +49,8 @@ export declare class Scenegraph {
49
49
  lastSelectId: string;
50
50
  component: TableComponent;
51
51
  stage: IStage;
52
+ stageOwned: boolean;
53
+ releaseVRenderAppRef?: () => void;
52
54
  table: BaseTableAPI;
53
55
  isPivot: boolean;
54
56
  hasFrozen: boolean;
@@ -81,6 +83,7 @@ export declare class Scenegraph {
81
83
  initSceneGraph(): void;
82
84
  canvasShowMenu(): void;
83
85
  clearCells(): void;
86
+ releaseStage(): void;
84
87
  updateStageBackground(): void;
85
88
  createComponent(): void;
86
89
  updateComponent(): void;
@@ -1,4 +1,6 @@
1
- import { createStage, container, vglobal, registerForVrender } from "./../vrender";
1
+ import { setPoptipTheme, registerForVrender } from "./../vrender";
2
+
3
+ import { createStageFromVRenderApp } from "../vrender-app";
2
4
 
3
5
  import { InternalIconName } from "../ts-types";
4
6
 
@@ -16,8 +18,6 @@ import { getQuadProps } from "./utils/padding";
16
18
 
17
19
  import { createFrameBorder, updateCornerRadius, updateFrameBorder, updateFrameBorderSize } from "./style/frame-border";
18
20
 
19
- import splitModule from "./graphic/contributions";
20
-
21
21
  import { getProp } from "./utils/get-prop";
22
22
 
23
23
  import { dealWithIcon } from "./utils/text-icon-layout";
@@ -54,9 +54,7 @@ import { initSceneGraph } from "./group-creater/init-scenegraph";
54
54
 
55
55
  import { updateContainerChildrenX, updateContainerChildrenY } from "./utils/update-container";
56
56
 
57
- import { setPoptipTheme } from "./../vrender";
58
-
59
- import textMeasureModule from "./utils/text-measure";
57
+ import { installVTableRuntimeContributions } from "./runtime-contributions";
60
58
 
61
59
  import { getIconByXY, hideClickIcon, hideHoverIcon, resetResidentHoverIcon, residentHoverIcon, setIconHoverStyle, setIconNormalStyle, showClickIcon, showHoverIcon, updateFrozenIcon, updateHierarchyIcon, updateSortIcon } from "./icon/icon-update";
62
60
 
@@ -82,22 +80,25 @@ import { getCellEventArgsSet } from "../event/util";
82
80
 
83
81
  import { clearAndReleaseBrushingChartInstance, getBrushingChartInstance, getBrushingChartInstanceCellPos } from "./graphic/active-cell-chart-list";
84
82
 
85
- registerForVrender(), container.load(splitModule), container.load(textMeasureModule);
83
+ registerForVrender(), installVTableRuntimeContributions();
86
84
 
87
85
  export class Scenegraph {
88
86
  constructor(table) {
87
+ var _a, _b;
89
88
  let width, height;
90
- this._needUpdateContainer = !1, this.table = table, this.hasFrozen = !1, this.clear = !0,
91
- this.mergeMap = new Map, this.brushingChartInstance = void 0, this.brushingChartInstanceCellPos = {
89
+ this.stageOwned = !0, this._needUpdateContainer = !1, this.table = table, this.hasFrozen = !1,
90
+ this.clear = !0, this.mergeMap = new Map, this.brushingChartInstance = void 0, this.brushingChartInstanceCellPos = {
92
91
  col: -1,
93
92
  row: -1
94
93
  }, this.chartInstanceListColumnByColumnDirection = {}, this.chartInstanceListRowByRowDirection = {},
95
94
  this.delayRunDimensionHoverTimerForColumnDirection = [], this.delayRunDimensionHoverTimerForRowDirection = [],
96
95
  this.delayRunDimensionHoverTimerForViewRange = [], this.disabledTooltipToAllChartInstances = !1,
97
- setPoptipTheme(this.table.theme.textPopTipStyle), "node" === Env.mode ? (vglobal.setEnv("node", table.options.modeParams),
98
- width = table.canvasWidth, height = table.canvasHeight) : table.options.canvas && table.options.viewBox ? (vglobal.setEnv("browser"),
99
- width = table.options.viewBox.x2 - table.options.viewBox.x1, height = table.options.viewBox.y2 - table.options.viewBox.y1) : (vglobal.setEnv("browser"),
100
- width = table.canvas.width, height = table.canvas.height), this.stage = createStage(Object.assign({
96
+ setPoptipTheme(this.table.theme.textPopTipStyle);
97
+ const mode = null !== (_a = table.options.mode) && void 0 !== _a ? _a : "node" === Env.mode ? "node" : "browser";
98
+ "node" === mode ? (width = table.canvasWidth, height = table.canvasHeight) : table.options.canvas && table.options.viewBox ? (width = table.options.viewBox.x2 - table.options.viewBox.x1,
99
+ height = table.options.viewBox.y2 - table.options.viewBox.y1) : (width = table.canvas.width,
100
+ height = table.canvas.height);
101
+ const {stage: stage, releaseAppRef: releaseAppRef, stageOwned: stageOwned} = createStageFromVRenderApp(Object.assign({
101
102
  canvas: table.canvas,
102
103
  width: width,
103
104
  height: height,
@@ -112,8 +113,19 @@ export class Scenegraph {
112
113
  this.table.options.afterRender && this.table.options.afterRender(stage), this.table.fireListeners("after_render", null);
113
114
  },
114
115
  canvasControled: !table.options.canvas,
115
- viewBox: table.options.viewBox
116
- }, table.options.renderOption)), this.stage.defaultLayer.setTheme({
116
+ viewBox: table.options.viewBox,
117
+ context: {
118
+ appName: "vtable"
119
+ }
120
+ }, table.options.renderOption), {
121
+ mode: mode,
122
+ scope: null !== (_b = table.options.vRenderAppScope) && void 0 !== _b ? _b : "vtable",
123
+ app: table.options.vRenderApp,
124
+ stage: table.options.stage,
125
+ envParams: table.options.modeParams
126
+ });
127
+ this.stage = stage, this.stageOwned = stageOwned, this.releaseVRenderAppRef = releaseAppRef,
128
+ this.stage.defaultLayer.setTheme({
117
129
  group: {
118
130
  boundsPadding: 0,
119
131
  strokeBoundsBuffer: 0,
@@ -296,6 +308,20 @@ export class Scenegraph {
296
308
  delete this.tableGroup.border), null === (_u = this.proxy) || void 0 === _u || _u.release(),
297
309
  null === (_v = this.table.reactCustomLayout) || void 0 === _v || _v.clearCache();
298
310
  }
311
+ releaseStage() {
312
+ var _a, _b, _c;
313
+ const releaseAppRef = this.releaseVRenderAppRef;
314
+ this.releaseVRenderAppRef = void 0;
315
+ try {
316
+ if (this.stageOwned) null === (_a = this.stage) || void 0 === _a || _a.release(); else {
317
+ const tableGroup = this.tableGroup, tableGroupParent = null == tableGroup ? void 0 : tableGroup.parent;
318
+ null === (_b = null == tableGroupParent ? void 0 : tableGroupParent.removeChild) || void 0 === _b || _b.call(tableGroupParent, tableGroup),
319
+ null === (_c = null == tableGroup ? void 0 : tableGroup.release) || void 0 === _c || _c.call(tableGroup, !0);
320
+ }
321
+ } finally {
322
+ null == releaseAppRef || releaseAppRef();
323
+ }
324
+ }
299
325
  updateStageBackground() {
300
326
  this.stage.background = this.table.theme.underlayBackgroundColor, this.stage.renderNextFrame();
301
327
  }
@@ -626,27 +652,49 @@ export class Scenegraph {
626
652
  height: this.tableGroup.attribute.height
627
653
  })));
628
654
  }
629
- this.table.bottomFrozenRowCount > 0 && (this.bottomFrozenGroup.setAttribute("y", this.tableGroup.attribute.height - this.table.getBottomFrozenRowsHeight()),
630
- this.leftBottomCornerGroup.setAttributes({
631
- visible: !0,
632
- y: this.tableGroup.attribute.height - this.table.getBottomFrozenRowsHeight(),
633
- height: this.table.getBottomFrozenRowsHeight(),
634
- width: this.table.getFrozenColsWidth()
635
- }), this.rightBottomCornerGroup.setAttributes({
636
- visible: !0,
637
- y: this.tableGroup.attribute.height - this.table.getBottomFrozenRowsHeight(),
638
- height: this.table.getBottomFrozenRowsHeight()
639
- })), this.table.rightFrozenColCount > 0 && (this.rightFrozenGroup.setAttribute("x", this.tableGroup.attribute.width - this.table.getRightFrozenColsWidth()),
640
- this.rightTopCornerGroup.setAttributes({
641
- visible: !0,
642
- x: this.tableGroup.attribute.width - this.table.getRightFrozenColsWidth(),
643
- width: this.table.getRightFrozenColsWidth(),
644
- height: this.table.getFrozenRowsHeight()
655
+ const hasFrozenCols = this.table.frozenColCount > 0, hasRightFrozenCols = this.table.rightFrozenColCount > 0, hasFrozenRows = this.table.frozenRowCount > 0, hasBottomFrozenRows = this.table.bottomFrozenRowCount > 0;
656
+ if (hasBottomFrozenRows) {
657
+ const bottomFrozenRowsHeight = this.table.getBottomFrozenRowsHeight(), topFrozenBottom = Math.max(this.colHeaderGroup.attribute.y + this.colHeaderGroup.attribute.height, this.cornerHeaderGroup.attribute.y + this.cornerHeaderGroup.attribute.height, this.rightTopCornerGroup.attribute.y + this.rightTopCornerGroup.attribute.height), middleContentBottom = Math.max(this.rowHeaderGroup.attribute.y + this.rowHeaderGroup.attribute.height, this.bodyGroup.attribute.y + this.bodyGroup.attribute.height, this.rightFrozenGroup.attribute.y + this.rightFrozenGroup.attribute.height, topFrozenBottom), bottomFrozenY = Math.min(this.tableGroup.attribute.height - bottomFrozenRowsHeight, middleContentBottom);
658
+ this.bottomFrozenGroup.setAttribute("y", bottomFrozenY), this.leftBottomCornerGroup.setAttributes({
659
+ visible: hasFrozenCols,
660
+ y: bottomFrozenY,
661
+ height: bottomFrozenRowsHeight,
662
+ width: hasFrozenCols ? this.table.getFrozenColsWidth() : 0
663
+ }), this.rightBottomCornerGroup.setAttributes({
664
+ visible: hasRightFrozenCols,
665
+ x: 0,
666
+ y: bottomFrozenY,
667
+ width: 0,
668
+ height: bottomFrozenRowsHeight
669
+ });
670
+ } else this.leftBottomCornerGroup.setAttributes({
671
+ visible: !1,
672
+ width: 0,
673
+ height: 0
645
674
  }), this.rightBottomCornerGroup.setAttributes({
646
- visible: !0,
647
- x: this.tableGroup.attribute.width - this.table.getRightFrozenColsWidth(),
648
- width: this.table.getRightFrozenColsWidth()
649
- })), this.updateDomContainer();
675
+ visible: !1,
676
+ width: 0,
677
+ height: 0
678
+ });
679
+ if (hasRightFrozenCols) {
680
+ const rightFrozenColsWidth = this.table.getRightFrozenColsWidth(), middleContentRight = Math.max(this.colHeaderGroup.attribute.x + this.colHeaderGroup.attribute.width, this.bodyGroup.attribute.x + this.bodyGroup.attribute.width, this.bottomFrozenGroup.attribute.x + this.bottomFrozenGroup.attribute.width), rightFrozenX = Math.min(this.tableGroup.attribute.width - rightFrozenColsWidth, middleContentRight);
681
+ this.rightFrozenGroup.setAttribute("x", rightFrozenX), this.rightTopCornerGroup.setAttributes({
682
+ visible: hasFrozenRows,
683
+ x: rightFrozenX,
684
+ width: hasFrozenRows ? rightFrozenColsWidth : 0,
685
+ height: hasFrozenRows ? this.table.getFrozenRowsHeight() : 0
686
+ }), this.rightBottomCornerGroup.setAttributes({
687
+ visible: hasBottomFrozenRows,
688
+ x: rightFrozenX,
689
+ width: hasBottomFrozenRows ? rightFrozenColsWidth : 0,
690
+ height: hasBottomFrozenRows ? this.table.getBottomFrozenRowsHeight() : 0
691
+ });
692
+ } else this.rightTopCornerGroup.setAttributes({
693
+ visible: !1,
694
+ width: 0,
695
+ height: 0
696
+ });
697
+ this.updateDomContainer();
650
698
  }
651
699
  updateRowHeight(row, detaY, skipTableHeightMap) {
652
700
  detaY = Math.round(detaY), updateRowHeight(this, row, detaY, skipTableHeightMap),