@visactor/vtable 1.6.0-alpha.1 → 1.6.0-alpha.3

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 (247) hide show
  1. package/cjs/ListTable-all.js +5 -5
  2. package/cjs/ListTable-all.js.map +1 -1
  3. package/cjs/ListTable.d.ts +0 -5
  4. package/cjs/ListTable.js +278 -34
  5. package/cjs/ListTable.js.map +1 -1
  6. package/cjs/PivotTable.d.ts +0 -2
  7. package/cjs/PivotTable.js +1 -1
  8. package/cjs/PivotTable.js.map +1 -1
  9. package/cjs/components/legend/discrete-legend/discrete-legend.js +7 -1
  10. package/cjs/components/legend/discrete-legend/discrete-legend.js.map +1 -1
  11. package/cjs/components/react/react-custom-layout.d.ts +3 -1
  12. package/cjs/components/react/react-custom-layout.js +7 -3
  13. package/cjs/components/react/react-custom-layout.js.map +1 -1
  14. package/cjs/core/BaseTable.d.ts +8 -6
  15. package/cjs/core/BaseTable.js +93 -15
  16. package/cjs/core/BaseTable.js.map +1 -1
  17. package/cjs/core/style.js +1 -1
  18. package/cjs/core/style.js.map +1 -1
  19. package/cjs/core/tableHelper.d.ts +3 -1
  20. package/cjs/core/tableHelper.js +22 -12
  21. package/cjs/core/tableHelper.js.map +1 -1
  22. package/cjs/data/CachedDataSource.d.ts +1 -10
  23. package/cjs/data/CachedDataSource.js +3 -102
  24. package/cjs/data/CachedDataSource.js.map +1 -1
  25. package/cjs/dataset/dataset-pivot-table.js +1 -0
  26. package/cjs/dataset/dataset-pivot-table.js.map +1 -1
  27. package/cjs/dataset/dataset.js +1 -0
  28. package/cjs/edit/edit-manager.js +5 -9
  29. package/cjs/edit/edit-manager.js.map +1 -1
  30. package/cjs/event/event.js +4 -6
  31. package/cjs/event/event.js.map +1 -1
  32. package/cjs/event/listener/container-dom.js +43 -19
  33. package/cjs/event/listener/container-dom.js.map +1 -1
  34. package/cjs/event/listener/table-group.js +6 -4
  35. package/cjs/event/listener/table-group.js.map +1 -1
  36. package/cjs/index.d.ts +3 -3
  37. package/cjs/index.js +1 -1
  38. package/cjs/index.js.map +1 -1
  39. package/cjs/layout/layout-helper.js +2 -2
  40. package/cjs/layout/layout-helper.js.map +1 -1
  41. package/cjs/layout/pivot-header-layout.js +11 -5
  42. package/cjs/layout/pivot-header-layout.js.map +1 -1
  43. package/cjs/layout/row-height-map.js +0 -1
  44. package/cjs/layout/simple-header-layout.d.ts +2 -1
  45. package/cjs/layout/simple-header-layout.js +88 -2
  46. package/cjs/layout/simple-header-layout.js.map +1 -1
  47. package/cjs/plugins/icons.js +1 -1
  48. package/cjs/plugins/themes.js +1 -1
  49. package/cjs/scenegraph/component/table-component.js +18 -14
  50. package/cjs/scenegraph/component/table-component.js.map +1 -1
  51. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +26 -10
  52. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  53. package/cjs/scenegraph/graphic/group.js +1 -1
  54. package/cjs/scenegraph/graphic/group.js.map +1 -1
  55. package/cjs/scenegraph/group-creater/cell-helper.d.ts +1 -2
  56. package/cjs/scenegraph/group-creater/cell-helper.js +10 -29
  57. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  58. package/cjs/scenegraph/group-creater/column-helper.js +2 -9
  59. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  60. package/cjs/scenegraph/group-creater/init-scenegraph.js +2 -2
  61. package/cjs/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  62. package/cjs/scenegraph/layout/update-height.js +1 -1
  63. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  64. package/cjs/scenegraph/layout/update-width.js +1 -1
  65. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  66. package/cjs/scenegraph/refresh-node/update-chart.d.ts +2 -1
  67. package/cjs/scenegraph/refresh-node/update-chart.js +18 -4
  68. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -1
  69. package/cjs/scenegraph/scenegraph.d.ts +2 -1
  70. package/cjs/scenegraph/scenegraph.js +13 -8
  71. package/cjs/scenegraph/scenegraph.js.map +1 -1
  72. package/cjs/scenegraph/select/create-select-border.js +2 -2
  73. package/cjs/scenegraph/select/create-select-border.js.map +1 -1
  74. package/cjs/scenegraph/utils/cell-border-stroke-width.js +9 -14
  75. package/cjs/scenegraph/utils/cell-border-stroke-width.js.map +1 -1
  76. package/cjs/scenegraph/utils/get-cell-merge.js +1 -1
  77. package/cjs/scenegraph/utils/get-cell-merge.js.map +1 -1
  78. package/cjs/scenegraph/utils/get-hierarchy-offset.js +8 -6
  79. package/cjs/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  80. package/cjs/scenegraph/utils/text-icon-layout.js +6 -5
  81. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  82. package/cjs/state/cell-move/index.js +14 -11
  83. package/cjs/state/cell-move/index.js.map +1 -1
  84. package/cjs/state/select/is-cell-select-highlight.js +6 -0
  85. package/cjs/state/select/is-cell-select-highlight.js.map +1 -1
  86. package/cjs/state/state.d.ts +2 -2
  87. package/cjs/state/state.js +12 -10
  88. package/cjs/state/state.js.map +1 -1
  89. package/cjs/themes/theme.d.ts +0 -2
  90. package/cjs/themes/theme.js +18 -13
  91. package/cjs/themes/theme.js.map +1 -1
  92. package/cjs/tools/helper.js.map +1 -1
  93. package/cjs/tools/style.d.ts +2 -1
  94. package/cjs/tools/style.js +9 -3
  95. package/cjs/tools/style.js.map +1 -1
  96. package/cjs/ts-types/base-table.d.ts +5 -10
  97. package/cjs/ts-types/base-table.js.map +1 -1
  98. package/cjs/ts-types/new-data-set.d.ts +0 -1
  99. package/cjs/ts-types/new-data-set.js.map +1 -1
  100. package/cjs/ts-types/pivot-table/dimension/basic-dimension.d.ts +1 -0
  101. package/cjs/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  102. package/cjs/ts-types/table-engine.d.ts +48 -12
  103. package/cjs/ts-types/table-engine.js.map +1 -1
  104. package/cjs/ts-types/theme.d.ts +4 -1
  105. package/cjs/ts-types/theme.js.map +1 -1
  106. package/cjs/vrender.js +1 -2
  107. package/cjs/vrender.js.map +1 -1
  108. package/dist/vtable.js +3421 -3838
  109. package/dist/vtable.min.js +2 -2
  110. package/es/ListTable-all.js +3 -5
  111. package/es/ListTable-all.js.map +1 -1
  112. package/es/ListTable.d.ts +0 -5
  113. package/es/ListTable.js +280 -37
  114. package/es/ListTable.js.map +1 -1
  115. package/es/PivotTable.d.ts +0 -2
  116. package/es/PivotTable.js +1 -1
  117. package/es/PivotTable.js.map +1 -1
  118. package/es/components/legend/discrete-legend/discrete-legend.js +7 -1
  119. package/es/components/legend/discrete-legend/discrete-legend.js.map +1 -1
  120. package/es/components/react/react-custom-layout.d.ts +3 -1
  121. package/es/components/react/react-custom-layout.js +7 -3
  122. package/es/components/react/react-custom-layout.js.map +1 -1
  123. package/es/core/BaseTable.d.ts +8 -6
  124. package/es/core/BaseTable.js +98 -20
  125. package/es/core/BaseTable.js.map +1 -1
  126. package/es/core/style.js +1 -1
  127. package/es/core/style.js.map +1 -1
  128. package/es/core/tableHelper.d.ts +3 -1
  129. package/es/core/tableHelper.js +21 -9
  130. package/es/core/tableHelper.js.map +1 -1
  131. package/es/data/CachedDataSource.d.ts +1 -10
  132. package/es/data/CachedDataSource.js +0 -103
  133. package/es/data/CachedDataSource.js.map +1 -1
  134. package/es/dataset/dataset-pivot-table.js +1 -0
  135. package/es/dataset/dataset-pivot-table.js.map +1 -1
  136. package/es/dataset/dataset.js +2 -1
  137. package/es/edit/edit-manager.js +5 -9
  138. package/es/edit/edit-manager.js.map +1 -1
  139. package/es/event/event.js +4 -6
  140. package/es/event/event.js.map +1 -1
  141. package/es/event/listener/container-dom.js +39 -18
  142. package/es/event/listener/container-dom.js.map +1 -1
  143. package/es/event/listener/table-group.js +6 -4
  144. package/es/event/listener/table-group.js.map +1 -1
  145. package/es/index.d.ts +3 -3
  146. package/es/index.js +1 -1
  147. package/es/index.js.map +1 -1
  148. package/es/layout/layout-helper.js +2 -2
  149. package/es/layout/layout-helper.js.map +1 -1
  150. package/es/layout/pivot-header-layout.js +11 -5
  151. package/es/layout/pivot-header-layout.js.map +1 -1
  152. package/es/layout/row-height-map.js +1 -2
  153. package/es/layout/simple-header-layout.d.ts +2 -1
  154. package/es/layout/simple-header-layout.js +87 -3
  155. package/es/layout/simple-header-layout.js.map +1 -1
  156. package/es/plugins/icons.js +1 -1
  157. package/es/plugins/themes.js +1 -1
  158. package/es/scenegraph/component/table-component.js +18 -14
  159. package/es/scenegraph/component/table-component.js.map +1 -1
  160. package/es/scenegraph/graphic/contributions/chart-render-helper.js +26 -10
  161. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  162. package/es/scenegraph/graphic/group.js +1 -1
  163. package/es/scenegraph/graphic/group.js.map +1 -1
  164. package/es/scenegraph/group-creater/cell-helper.d.ts +1 -2
  165. package/es/scenegraph/group-creater/cell-helper.js +8 -23
  166. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  167. package/es/scenegraph/group-creater/column-helper.js +2 -8
  168. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  169. package/es/scenegraph/group-creater/init-scenegraph.js +2 -2
  170. package/es/scenegraph/group-creater/init-scenegraph.js.map +1 -1
  171. package/es/scenegraph/layout/update-height.js +1 -1
  172. package/es/scenegraph/layout/update-height.js.map +1 -1
  173. package/es/scenegraph/layout/update-width.js +1 -1
  174. package/es/scenegraph/layout/update-width.js.map +1 -1
  175. package/es/scenegraph/refresh-node/update-chart.d.ts +2 -1
  176. package/es/scenegraph/refresh-node/update-chart.js +14 -1
  177. package/es/scenegraph/refresh-node/update-chart.js.map +1 -1
  178. package/es/scenegraph/scenegraph.d.ts +2 -1
  179. package/es/scenegraph/scenegraph.js +15 -10
  180. package/es/scenegraph/scenegraph.js.map +1 -1
  181. package/es/scenegraph/select/create-select-border.js +2 -2
  182. package/es/scenegraph/select/create-select-border.js.map +1 -1
  183. package/es/scenegraph/utils/cell-border-stroke-width.js +6 -9
  184. package/es/scenegraph/utils/cell-border-stroke-width.js.map +1 -1
  185. package/es/scenegraph/utils/get-cell-merge.js +1 -1
  186. package/es/scenegraph/utils/get-cell-merge.js.map +1 -1
  187. package/es/scenegraph/utils/get-hierarchy-offset.js +9 -7
  188. package/es/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  189. package/es/scenegraph/utils/text-icon-layout.js +7 -4
  190. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  191. package/es/state/cell-move/index.js +14 -11
  192. package/es/state/cell-move/index.js.map +1 -1
  193. package/es/state/select/is-cell-select-highlight.js +6 -0
  194. package/es/state/select/is-cell-select-highlight.js.map +1 -1
  195. package/es/state/state.d.ts +2 -2
  196. package/es/state/state.js +12 -10
  197. package/es/state/state.js.map +1 -1
  198. package/es/themes/theme.d.ts +0 -2
  199. package/es/themes/theme.js +18 -13
  200. package/es/themes/theme.js.map +1 -1
  201. package/es/tools/helper.js.map +1 -1
  202. package/es/tools/style.d.ts +2 -1
  203. package/es/tools/style.js +7 -2
  204. package/es/tools/style.js.map +1 -1
  205. package/es/ts-types/base-table.d.ts +5 -10
  206. package/es/ts-types/base-table.js.map +1 -1
  207. package/es/ts-types/new-data-set.d.ts +0 -1
  208. package/es/ts-types/new-data-set.js.map +1 -1
  209. package/es/ts-types/pivot-table/dimension/basic-dimension.d.ts +1 -0
  210. package/es/ts-types/pivot-table/dimension/basic-dimension.js.map +1 -1
  211. package/es/ts-types/table-engine.d.ts +48 -12
  212. package/es/ts-types/table-engine.js.map +1 -1
  213. package/es/ts-types/theme.d.ts +4 -1
  214. package/es/ts-types/theme.js.map +1 -1
  215. package/es/vrender.js +2 -3
  216. package/es/vrender.js.map +1 -1
  217. package/package.json +3 -3
  218. package/cjs/core/group-helper.d.ts +0 -6
  219. package/cjs/core/group-helper.js +0 -22
  220. package/cjs/core/group-helper.js.map +0 -1
  221. package/cjs/core/record-helper.d.ts +0 -8
  222. package/cjs/core/record-helper.js +0 -337
  223. package/cjs/core/record-helper.js.map +0 -1
  224. package/cjs/core/style-helper.d.ts +0 -3
  225. package/cjs/core/style-helper.js +0 -110
  226. package/cjs/core/style-helper.js.map +0 -1
  227. package/cjs/layout/cell-range/simple-cell-range.d.ts +0 -4
  228. package/cjs/layout/cell-range/simple-cell-range.js +0 -106
  229. package/cjs/layout/cell-range/simple-cell-range.js.map +0 -1
  230. package/cjs/plugins/list-tree-stick-cell.d.ts +0 -16
  231. package/cjs/plugins/list-tree-stick-cell.js +0 -171
  232. package/cjs/plugins/list-tree-stick-cell.js.map +0 -1
  233. package/es/core/group-helper.d.ts +0 -6
  234. package/es/core/group-helper.js +0 -14
  235. package/es/core/group-helper.js.map +0 -1
  236. package/es/core/record-helper.d.ts +0 -8
  237. package/es/core/record-helper.js +0 -332
  238. package/es/core/record-helper.js.map +0 -1
  239. package/es/core/style-helper.d.ts +0 -3
  240. package/es/core/style-helper.js +0 -86
  241. package/es/core/style-helper.js.map +0 -1
  242. package/es/layout/cell-range/simple-cell-range.d.ts +0 -4
  243. package/es/layout/cell-range/simple-cell-range.js +0 -99
  244. package/es/layout/cell-range/simple-cell-range.js.map +0 -1
  245. package/es/plugins/list-tree-stick-cell.d.ts +0 -16
  246. package/es/plugins/list-tree-stick-cell.js +0 -169
  247. package/es/plugins/list-tree-stick-cell.js.map +0 -1
@@ -21,7 +21,13 @@ class DiscreteTableLegend {
21
21
  }), legend = new vrender_components_1.DiscreteLegend((0, vutils_1.merge)({}, attrs, {
22
22
  defaultSelected: this.selectedData
23
23
  }));
24
- legend.name = "legend", this.legendComponent = legend, this.table.scenegraph.stage.defaultLayer.appendChild(legend),
24
+ legend.name = "legend", this.legendComponent = legend, !1 === this.visible && (legend.setAttributes({
25
+ maxWidth: 0,
26
+ width: 0,
27
+ maxHeight: 0,
28
+ height: 0,
29
+ clip: !0
30
+ }), legend.hideAll()), this.table.scenegraph.stage.defaultLayer.appendChild(legend),
25
31
  this.adjustTableSize(attrs);
26
32
  }
27
33
  resize() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/legend/discrete-legend/discrete-legend.ts"],"names":[],"mappings":"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","file":"discrete-legend.js","sourcesContent":["import { cloneDeep, get, merge } from '@visactor/vutils';\nimport type { IDiscreteTableLegendOption } from '../../../ts-types/component/legend';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport { DiscreteLegend, LegendEvent } from '@visactor/vrender-components';\nimport { getLegendAttributes } from './get-discrete-legend-attributes';\nimport { TABLE_EVENT_TYPE } from '../../../core/TABLE_EVENT_TYPE';\nimport { getQuadProps } from '../../../scenegraph/utils/padding';\nimport type { IOrientType } from '../../../ts-types/component/util';\n\nexport class DiscreteTableLegend {\n table: BaseTableAPI;\n option: IDiscreteTableLegendOption;\n orient: IOrientType;\n visible: boolean;\n position: 'start' | 'middle' | 'end';\n selectedData: (string | number)[];\n legendComponent: DiscreteLegend;\n\n constructor(option: IDiscreteTableLegendOption, table: BaseTableAPI) {\n this.table = table;\n this.option = cloneDeep(option);\n this.orient = option.orient ?? 'left';\n this.visible = option.visible ?? true;\n this.position = option.position ?? 'middle';\n this.selectedData = option.defaultSelected ?? null;\n\n this.createComponent();\n this.initEvent();\n }\n\n createComponent() {\n const attrs = this.getLegendAttributes({\n width: this.table.tableNoFrameWidth,\n height: this.table.tableNoFrameHeight\n });\n const legend = new DiscreteLegend(\n merge({}, attrs, {\n defaultSelected: this.selectedData\n })\n );\n legend.name = 'legend';\n this.legendComponent = legend;\n this.table.scenegraph.stage.defaultLayer.appendChild(legend);\n\n this.adjustTableSize(attrs);\n }\n\n resize() {\n if (!this.legendComponent) {\n return;\n }\n\n this.legendComponent.setAttributes({\n width: this.table.tableNoFrameWidth,\n height: this.table.tableNoFrameHeight\n });\n\n this.adjustTableSize(this.legendComponent.attribute);\n }\n\n adjustTableSize(attrs: any) {\n // 调整位置\n let width = isFinite(this.legendComponent.AABBBounds.width()) ? this.legendComponent.AABBBounds.width() : 0;\n let height = isFinite(this.legendComponent.AABBBounds.height()) ? this.legendComponent.AABBBounds.height() : 0;\n if (width <= 0 || height <= 0) {\n return;\n }\n const rectWidth = this.table.tableNoFrameWidth;\n const rectHeight = this.table.tableNoFrameHeight;\n const padding = getQuadProps(attrs.padding ?? this.option.padding ?? 10);\n\n let x = 0;\n let y = 0;\n if (this.orient === 'left') {\n x = padding[3];\n y = 0;\n width += padding[1] + padding[3];\n } else if (this.orient === 'top') {\n x = 0;\n y = padding[0];\n height += padding[0] + padding[2];\n } else if (this.orient === 'right') {\n x = rectWidth - width - padding[1];\n y = 0;\n width += padding[1] + padding[3];\n } else if (this.orient === 'bottom') {\n x = 0;\n y = rectHeight - height - padding[2];\n height += padding[0] + padding[2];\n }\n\n const layout = this.orient === 'bottom' || this.orient === 'top' ? 'horizontal' : 'vertical';\n const position = this.position;\n // const { width: rectWidth, height: rectHeight } = fullSpace;\n let offsetX = 0;\n let offsetY = 0;\n if (layout === 'horizontal') {\n if (position === 'middle') {\n offsetX = (rectWidth - width) / 2;\n } else if (position === 'end') {\n offsetX = rectWidth - width - padding[1];\n } else {\n offsetX = padding[3];\n }\n } else {\n if (position === 'middle') {\n offsetY = (rectHeight - height) / 2;\n } else if (position === 'end') {\n offsetY = rectHeight - height - padding[2];\n } else {\n offsetY = padding[0];\n }\n }\n\n this.legendComponent.setAttributes({\n dx: offsetX,\n dy: offsetY,\n x,\n y\n });\n\n // update table size\n if (this.orient === 'left') {\n this.table.tableNoFrameWidth = this.table.tableNoFrameWidth - Math.ceil(width);\n this.table.tableX += Math.ceil(width);\n } else if (this.orient === 'top') {\n this.table.tableNoFrameHeight = this.table.tableNoFrameHeight - Math.ceil(height);\n this.table.tableY += Math.ceil(height);\n } else if (this.orient === 'right') {\n this.table.tableNoFrameWidth = this.table.tableNoFrameWidth - Math.ceil(width);\n } else if (this.orient === 'bottom') {\n this.table.tableNoFrameHeight = this.table.tableNoFrameHeight - Math.ceil(height);\n }\n }\n\n getLegendAttributes(rect: any) {\n const layout = this.orient === 'bottom' || this.orient === 'top' ? 'horizontal' : 'vertical';\n const attrs = {\n layout,\n items: this.getLegendItems(),\n // zIndex: this.layoutZIndex,\n maxWidth: rect.width,\n maxHeight: rect.height,\n ...getLegendAttributes(this.option, rect)\n };\n return attrs;\n }\n\n getLegendItems() {\n return this.option.data;\n }\n\n initEvent() {\n if (this.legendComponent) {\n this.legendComponent.addEventListener(LegendEvent.legendItemClick, (e: any) => {\n const selectedData = get(e, 'detail.currentSelected');\n this.table.fireListeners(TABLE_EVENT_TYPE.LEGEND_ITEM_CLICK, { model: this, value: selectedData, event: e });\n });\n\n this.legendComponent.addEventListener(LegendEvent.legendItemHover, (e: any) => {\n const detail = get(e, 'detail');\n this.table.fireListeners(TABLE_EVENT_TYPE.LEGEND_ITEM_HOVER, { model: this, value: detail, event: e });\n });\n\n this.legendComponent.addEventListener(LegendEvent.legendItemUnHover, (e: any) => {\n const detail = get(e, 'detail');\n this.table.fireListeners(TABLE_EVENT_TYPE.LEGEND_ITEM_UNHOVER, { model: this, value: detail, event: e });\n });\n\n // wait for vrender-vcomponent version update\n this.legendComponent.addEventListener('legendItemAttributeUpdate', (e: any) => {\n this.table.scenegraph.updateNextFrame();\n });\n }\n }\n\n getLegendBounds() {\n const width = isFinite(this.legendComponent.AABBBounds.width()) ? this.legendComponent.AABBBounds.width() : 0;\n const height = isFinite(this.legendComponent.AABBBounds.height()) ? this.legendComponent.AABBBounds.height() : 0;\n\n return {\n width: width,\n height: height\n };\n }\n release() {\n this.legendComponent && this.table.scenegraph.stage.defaultLayer.removeChild(this.legendComponent);\n this.legendComponent = null;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/components/legend/discrete-legend/discrete-legend.ts"],"names":[],"mappings":"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","file":"discrete-legend.js","sourcesContent":["import { cloneDeep, get, merge } from '@visactor/vutils';\nimport type { IDiscreteTableLegendOption } from '../../../ts-types/component/legend';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimport { DiscreteLegend, LegendEvent } from '@visactor/vrender-components';\nimport { getLegendAttributes } from './get-discrete-legend-attributes';\nimport { TABLE_EVENT_TYPE } from '../../../core/TABLE_EVENT_TYPE';\nimport { getQuadProps } from '../../../scenegraph/utils/padding';\nimport type { IOrientType } from '../../../ts-types/component/util';\n\nexport class DiscreteTableLegend {\n table: BaseTableAPI;\n option: IDiscreteTableLegendOption;\n orient: IOrientType;\n visible: boolean;\n position: 'start' | 'middle' | 'end';\n selectedData: (string | number)[];\n legendComponent: DiscreteLegend;\n\n constructor(option: IDiscreteTableLegendOption, table: BaseTableAPI) {\n this.table = table;\n this.option = cloneDeep(option);\n this.orient = option.orient ?? 'left';\n this.visible = option.visible ?? true;\n this.position = option.position ?? 'middle';\n this.selectedData = option.defaultSelected ?? null;\n\n this.createComponent();\n this.initEvent();\n }\n\n createComponent() {\n const attrs = this.getLegendAttributes({\n width: this.table.tableNoFrameWidth,\n height: this.table.tableNoFrameHeight\n });\n const legend = new DiscreteLegend(\n merge({}, attrs, {\n defaultSelected: this.selectedData\n })\n );\n legend.name = 'legend';\n this.legendComponent = legend;\n if (this.visible === false) {\n legend.setAttributes({\n maxWidth: 0,\n width: 0,\n maxHeight: 0,\n height: 0,\n clip: true\n // visible: false\n });\n legend.hideAll();\n }\n this.table.scenegraph.stage.defaultLayer.appendChild(legend);\n\n this.adjustTableSize(attrs);\n }\n\n resize() {\n if (!this.legendComponent) {\n return;\n }\n\n this.legendComponent.setAttributes({\n width: this.table.tableNoFrameWidth,\n height: this.table.tableNoFrameHeight\n });\n\n this.adjustTableSize(this.legendComponent.attribute);\n }\n\n adjustTableSize(attrs: any) {\n // 调整位置\n let width = isFinite(this.legendComponent.AABBBounds.width()) ? this.legendComponent.AABBBounds.width() : 0;\n let height = isFinite(this.legendComponent.AABBBounds.height()) ? this.legendComponent.AABBBounds.height() : 0;\n if (width <= 0 || height <= 0) {\n return;\n }\n const rectWidth = this.table.tableNoFrameWidth;\n const rectHeight = this.table.tableNoFrameHeight;\n const padding = getQuadProps(attrs.padding ?? this.option.padding ?? 10);\n\n let x = 0;\n let y = 0;\n if (this.orient === 'left') {\n x = padding[3];\n y = 0;\n width += padding[1] + padding[3];\n } else if (this.orient === 'top') {\n x = 0;\n y = padding[0];\n height += padding[0] + padding[2];\n } else if (this.orient === 'right') {\n x = rectWidth - width - padding[1];\n y = 0;\n width += padding[1] + padding[3];\n } else if (this.orient === 'bottom') {\n x = 0;\n y = rectHeight - height - padding[2];\n height += padding[0] + padding[2];\n }\n\n const layout = this.orient === 'bottom' || this.orient === 'top' ? 'horizontal' : 'vertical';\n const position = this.position;\n // const { width: rectWidth, height: rectHeight } = fullSpace;\n let offsetX = 0;\n let offsetY = 0;\n if (layout === 'horizontal') {\n if (position === 'middle') {\n offsetX = (rectWidth - width) / 2;\n } else if (position === 'end') {\n offsetX = rectWidth - width - padding[1];\n } else {\n offsetX = padding[3];\n }\n } else {\n if (position === 'middle') {\n offsetY = (rectHeight - height) / 2;\n } else if (position === 'end') {\n offsetY = rectHeight - height - padding[2];\n } else {\n offsetY = padding[0];\n }\n }\n\n this.legendComponent.setAttributes({\n dx: offsetX,\n dy: offsetY,\n x,\n y\n });\n\n // update table size\n if (this.orient === 'left') {\n this.table.tableNoFrameWidth = this.table.tableNoFrameWidth - Math.ceil(width);\n this.table.tableX += Math.ceil(width);\n } else if (this.orient === 'top') {\n this.table.tableNoFrameHeight = this.table.tableNoFrameHeight - Math.ceil(height);\n this.table.tableY += Math.ceil(height);\n } else if (this.orient === 'right') {\n this.table.tableNoFrameWidth = this.table.tableNoFrameWidth - Math.ceil(width);\n } else if (this.orient === 'bottom') {\n this.table.tableNoFrameHeight = this.table.tableNoFrameHeight - Math.ceil(height);\n }\n }\n\n getLegendAttributes(rect: any) {\n const layout = this.orient === 'bottom' || this.orient === 'top' ? 'horizontal' : 'vertical';\n const attrs = {\n layout,\n items: this.getLegendItems(),\n // zIndex: this.layoutZIndex,\n maxWidth: rect.width,\n maxHeight: rect.height,\n ...getLegendAttributes(this.option, rect)\n };\n return attrs;\n }\n\n getLegendItems() {\n return this.option.data;\n }\n\n initEvent() {\n if (this.legendComponent) {\n this.legendComponent.addEventListener(LegendEvent.legendItemClick, (e: any) => {\n const selectedData = get(e, 'detail.currentSelected');\n this.table.fireListeners(TABLE_EVENT_TYPE.LEGEND_ITEM_CLICK, { model: this, value: selectedData, event: e });\n });\n\n this.legendComponent.addEventListener(LegendEvent.legendItemHover, (e: any) => {\n const detail = get(e, 'detail');\n this.table.fireListeners(TABLE_EVENT_TYPE.LEGEND_ITEM_HOVER, { model: this, value: detail, event: e });\n });\n\n this.legendComponent.addEventListener(LegendEvent.legendItemUnHover, (e: any) => {\n const detail = get(e, 'detail');\n this.table.fireListeners(TABLE_EVENT_TYPE.LEGEND_ITEM_UNHOVER, { model: this, value: detail, event: e });\n });\n\n // wait for vrender-vcomponent version update\n this.legendComponent.addEventListener('legendItemAttributeUpdate', (e: any) => {\n this.table.scenegraph.updateNextFrame();\n });\n }\n }\n\n getLegendBounds() {\n const width = isFinite(this.legendComponent.AABBBounds.width()) ? this.legendComponent.AABBBounds.width() : 0;\n const height = isFinite(this.legendComponent.AABBBounds.height()) ? this.legendComponent.AABBBounds.height() : 0;\n\n return {\n width: width,\n height: height\n };\n }\n release() {\n this.legendComponent && this.table.scenegraph.stage.defaultLayer.removeChild(this.legendComponent);\n this.legendComponent = null;\n }\n}\n"]}
@@ -6,16 +6,18 @@ export declare function emptyCustomLayout(args: CustomRenderFunctionArg): {
6
6
  renderDefault: boolean;
7
7
  };
8
8
  export declare class ReactCustomLayout {
9
+ removeAllContainer: () => void;
9
10
  table: BaseTableAPI;
10
11
  customLayoutFuncCache: Map<string, ICustomLayoutFuc>;
11
12
  reactRemoveGraphicCache: Map<string, (col: number, row: number) => void>;
12
13
  headerCustomLayoutFuncCache: Map<string, ICustomLayoutFuc>;
13
14
  headerReactRemoveGraphicCache: Map<string, (col: number, row: number) => void>;
14
- constructor(table: BaseTableAPI);
15
+ constructor(removeAllContainer: () => void, table: BaseTableAPI);
15
16
  hasReactCreateGraphic(componentId: string, isHeaderCustomLayout?: boolean): boolean;
16
17
  setReactCreateGraphic(componentId: string, createGraphic: ICustomLayoutFuc, isHeaderCustomLayout?: boolean): void;
17
18
  setReactRemoveGraphic(componentId: string, removeGraphic: (col: number, row: number) => void, isHeaderCustomLayout?: boolean): void;
18
19
  updateCustomCell(componentId: string, isHeaderCustomLayout?: boolean): void;
19
20
  getCustomLayoutFunc(col: number, row: number): ICustomLayoutFuc | typeof emptyCustomLayout;
20
21
  removeCustomCell(col: number, row: number): void;
22
+ clearCache(): void;
21
23
  }
@@ -16,9 +16,10 @@ function emptyCustomLayout(args) {
16
16
  exports.emptyCustomLayout = emptyCustomLayout;
17
17
 
18
18
  class ReactCustomLayout {
19
- constructor(table) {
20
- this.table = table, this.customLayoutFuncCache = new Map, this.reactRemoveGraphicCache = new Map,
21
- this.headerCustomLayoutFuncCache = new Map, this.headerReactRemoveGraphicCache = new Map;
19
+ constructor(removeAllContainer, table) {
20
+ this.removeAllContainer = removeAllContainer, this.table = table, this.customLayoutFuncCache = new Map,
21
+ this.reactRemoveGraphicCache = new Map, this.headerCustomLayoutFuncCache = new Map,
22
+ this.headerReactRemoveGraphicCache = new Map;
22
23
  }
23
24
  hasReactCreateGraphic(componentId, isHeaderCustomLayout) {
24
25
  return isHeaderCustomLayout ? this.headerCustomLayoutFuncCache.has(componentId) : this.customLayoutFuncCache.has(componentId);
@@ -63,6 +64,9 @@ class ReactCustomLayout {
63
64
  }
64
65
  removeFun && removeFun(col, row);
65
66
  }
67
+ clearCache() {
68
+ this.removeAllContainer();
69
+ }
66
70
  }
67
71
 
68
72
  function getUpdateCustomCellRangeInListTable(componentId, table, isHeaderCustomLayout) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/react/react-custom-layout.ts"],"names":[],"mappings":";;;AAAA,6CAAwC;AAMxC,SAAgB,iBAAiB,CAAC,IAA6B;IAC7D,MAAM,KAAK,GAAG,IAAI,eAAK,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO;QACL,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,IAAI;KACpB,CAAC;AACJ,CAAC;AAND,8CAMC;AAED,MAAa,iBAAiB;IAO5B,YAAY,KAAmB;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,qBAAqB,GAAG,IAAI,GAAG,EAAE,CAAC;QAEvC,IAAI,CAAC,uBAAuB,GAAG,IAAI,GAAG,EAAE,CAAC;QACzC,IAAI,CAAC,2BAA2B,GAAG,IAAI,GAAG,EAAE,CAAC;QAE7C,IAAI,CAAC,6BAA6B,GAAG,IAAI,GAAG,EAAE,CAAC;IACjD,CAAC;IAED,qBAAqB,CAAC,WAAmB,EAAE,oBAA8B;QACvE,IAAI,oBAAoB,EAAE;YACxB,OAAO,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;SAC1D;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;IAED,qBAAqB,CACnB,WAAmB,EACnB,aAA+B,EAE/B,oBAA8B;QAE9B,IAAI,oBAAoB,EAAE;YACxB,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;SAClE;aAAM;YACL,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;SAC5D;IAEH,CAAC;IAED,qBAAqB,CACnB,WAAmB,EACnB,aAAiD,EACjD,oBAA8B;QAE9B,IAAI,oBAAoB,EAAE;YACxB,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;SACpE;aAAM;YACL,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;SAC9D;IACH,CAAC;IAED,gBAAgB,CAAC,WAAmB,EAAE,oBAA8B;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAazB,IAAI,KAAK,CAAC,YAAY,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,oCAAoC,CAAC,WAAW,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;YAC9F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;oBAC3D,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;wBAC3D,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;qBAC9C;iBACF;aACF;SACF;aAAM;YACL,MAAM,KAAK,GAAG,mCAAmC,CAAC,WAAW,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;YAC5F,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;gBAC3D,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;oBAC3D,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;iBAC9C;aACF;SACF;QAED,KAAK,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;IACtC,CAAC;IAED,mBAAmB,CAAC,GAAW,EAAE,GAAW;;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,QAAQ,EAAE;YACZ,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAQ,CAAC;YACpE,OAAO,MAAA,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,WAAW,CAAC,mCAAI,iBAAiB,CAAC;SAC/E;QACD,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAQ,CAAC;QACxE,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,iBAAiB,CAAC;IAC1E,CAAC;IAED,gBAAgB,CAAC,GAAW,EAAE,GAAW;QAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,SAAS,CAAC;QACd,IAAI,QAAQ,EAAE;YACZ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACpD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAa,CAAC;YACtC,SAAS,GAAG,IAAI,CAAC,6BAA6B,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;SACjE;aAAM;YACL,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACxD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAa,CAAC;YACtC,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;SAC3D;QACD,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACrB;IACH,CAAC;CACF;AAjHD,8CAiHC;AAED,SAAS,mCAAmC,CAAC,WAAmB,EAAE,KAAmB,EAAE,oBAA8B;IACnH,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,IAAI,oBAAoB,EAAE;QACxB,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,SAAkC,CAAC;QACzE,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC;QACxD,IAAI,QAAgB,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACtC,IAAK,YAAY,CAAC,MAAc,CAAC,WAAW,KAAK,WAAW,EAAE;gBAC5D,QAAQ,GAAG,YAAY,CAAC,EAAY,CAAC;gBACrC,MAAM;aACP;SACF;QAED,MAAM,SAAS,GAAG,SAAS,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;KAuDd;IACD,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC;IACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACtC,IAAK,YAAY,CAAC,MAAc,CAAC,WAAW,KAAK,WAAW,EAAE;YAC5D,OAAO;gBACL,KAAK,EAAE;oBACL,GAAG,EAAE,eAAe,GAAG,CAAC;oBACxB,GAAG,EAAE,KAAK,CAAC,sBAAsB;iBAClC;gBACD,GAAG,EAAE;oBACH,GAAG,EAAE,eAAe,GAAG,CAAC;oBACxB,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC;iBACxB;aACF,CAAC;SACH;KACF;IAED,OAAO;QACL,KAAK,EAAE;YACL,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,CAAC;SACP;QACD,GAAG,EAAE;YACH,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC;YACvB,GAAG,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC;SACxB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oCAAoC,CAC3C,WAAmB,EACnB,KAAmB,EACnB,oBAA8B;IAE9B,MAAM,eAAe,GAAG,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,SAAS,GAAG,KAAK,CAAC,aAAa,CAAC,SAAiC,CAAC;IACxE,IAAI,oBAAoB,EAAE;QACxB,MAAM,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;QACpC,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,YAAY,EAAE;gBACjB,SAAS;aACV;YACD,IAAK,YAAY,CAAC,MAAc,CAAC,WAAW,KAAK,WAAW,EAAE;gBAC5D,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAAY,CAAC,CAAC;aAC3C;SACF;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,SAAS,GAAG,SAAS,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;KACF;SAAM;QACL,IAAI,WAAmB,CAAC;QACxB,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YACtC,IAAK,YAAY,CAAC,MAAc,CAAC,WAAW,KAAK,WAAW,EAAE;gBAC5D,WAAW,GAAG,CAAC,CAAC;gBAChB,MAAM;aACP;SACF;QAED,IAAI,eAAe,EAAE;YACnB,KACE,IAAI,MAAM,GAAG,SAAS,CAAC,mBAAmB,GAAG,WAAW,EACxD,MAAM,GAAG,SAAS,CAAC,QAAQ,EAC3B,MAAM,IAAI,aAAa,CAAC,MAAM,EAC9B;gBACA,MAAM,KAAK,GAAG;oBACZ,KAAK,EAAE;wBACL,GAAG,EAAE,MAAM,GAAG,eAAe;wBAC7B,GAAG,EAAE,SAAS,CAAC,sBAAsB;qBACtC;oBACD,GAAG,EAAE;wBACH,GAAG,EAAE,MAAM,GAAG,eAAe;wBAC7B,GAAG,EAAE,SAAS,CAAC,QAAQ,GAAG,CAAC;qBAC5B;iBACF,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpB;SACF;aAAM;YACL,KACE,IAAI,GAAG,GAAG,SAAS,CAAC,sBAAsB,GAAG,WAAW,EACxD,GAAG,GAAG,SAAS,CAAC,QAAQ,EACxB,GAAG,IAAI,aAAa,CAAC,MAAM,EAC3B;gBACA,MAAM,KAAK,GAAG;oBACZ,KAAK,EAAE;wBACL,GAAG,EAAE,SAAS,CAAC,mBAAmB,GAAG,eAAe;wBACpD,GAAG,EAAE,GAAG;qBACT;oBACD,GAAG,EAAE;wBACH,GAAG,EAAE,SAAS,CAAC,QAAQ,GAAG,CAAC;wBAC3B,GAAG,EAAE,GAAG;qBACT;iBACF,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpB;SACF;KACF;IAED,OAAO,MAAM,CAAC;AAQhB,CAAC","file":"react-custom-layout.js","sourcesContent":["import { Group } from './../../vrender';\nimport type { CustomRenderFunctionArg, ICustomLayoutFuc } from '../../ts-types';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport type { SimpleHeaderLayoutMap } from '../../layout';\n\nexport function emptyCustomLayout(args: CustomRenderFunctionArg) {\n const group = new Group({});\n return {\n rootContainer: group,\n renderDefault: true\n };\n}\n\nexport class ReactCustomLayout {\n table: BaseTableAPI;\n customLayoutFuncCache: Map<string, ICustomLayoutFuc>;\n reactRemoveGraphicCache: Map<string, (col: number, row: number) => void>;\n headerCustomLayoutFuncCache: Map<string, ICustomLayoutFuc>;\n headerReactRemoveGraphicCache: Map<string, (col: number, row: number) => void>;\n // reactContainerCache: Map<number, Map<string, any>>;\n constructor(table: BaseTableAPI) {\n this.table = table;\n this.customLayoutFuncCache = new Map();\n // this.reactContainerCache = new Map();\n this.reactRemoveGraphicCache = new Map();\n this.headerCustomLayoutFuncCache = new Map();\n // this.headerCeactContainerCache = new Map();\n this.headerReactRemoveGraphicCache = new Map();\n }\n\n hasReactCreateGraphic(componentId: string, isHeaderCustomLayout?: boolean) {\n if (isHeaderCustomLayout) {\n return this.headerCustomLayoutFuncCache.has(componentId);\n }\n return this.customLayoutFuncCache.has(componentId);\n }\n\n setReactCreateGraphic(\n componentId: string,\n createGraphic: ICustomLayoutFuc,\n // containerCache: Map<string, any>,\n isHeaderCustomLayout?: boolean\n ) {\n if (isHeaderCustomLayout) {\n this.headerCustomLayoutFuncCache.set(componentId, createGraphic);\n } else {\n this.customLayoutFuncCache.set(componentId, createGraphic);\n }\n // this.reactContainerCache.set(componentId, containerCache);\n }\n\n setReactRemoveGraphic(\n componentId: string,\n removeGraphic: (col: number, row: number) => void,\n isHeaderCustomLayout?: boolean\n ) {\n if (isHeaderCustomLayout) {\n this.headerReactRemoveGraphicCache.set(componentId, removeGraphic);\n } else {\n this.reactRemoveGraphicCache.set(componentId, removeGraphic);\n }\n }\n\n updateCustomCell(componentId: string, isHeaderCustomLayout?: boolean) {\n const table = this.table;\n // const col = componentId;\n // // to do: deal with transpose table\n // if (isHeaderCustomLayout) {\n // for (let row = 0; row < table.columnHeaderLevelCount; row++) {\n // table.scenegraph.updateCellContent(col, row);\n // }\n // } else {\n // for (let row = table.columnHeaderLevelCount; row < table.rowCount; row++) {\n // table.scenegraph.updateCellContent(col, row);\n // }\n // }\n\n if (table.isPivotTable()) {\n const ranges = getUpdateCustomCellRangeInPivotTable(componentId, table, isHeaderCustomLayout);\n for (let i = 0; i < ranges.length; i++) {\n const range = ranges[i];\n for (let col = range.start.col; col <= range.end.col; col++) {\n for (let row = range.start.row; row <= range.end.row; row++) {\n table.scenegraph.updateCellContent(col, row);\n }\n }\n }\n } else {\n const range = getUpdateCustomCellRangeInListTable(componentId, table, isHeaderCustomLayout);\n for (let col = range.start.col; col <= range.end.col; col++) {\n for (let row = range.start.row; row <= range.end.row; row++) {\n table.scenegraph.updateCellContent(col, row);\n }\n }\n }\n // table.scenegraph.updateNextFrame();\n table.scenegraph.renderSceneGraph(); // use sync render for faster update\n }\n\n getCustomLayoutFunc(col: number, row: number) {\n const isHeader = this.table.isHeader(col, row);\n if (isHeader) {\n const { componentId } = this.table.getHeaderDefine(col, row) as any;\n return this.headerCustomLayoutFuncCache.get(componentId) ?? emptyCustomLayout;\n }\n const { componentId } = this.table.getBodyColumnDefine(col, row) as any;\n return this.customLayoutFuncCache.get(componentId) || emptyCustomLayout;\n }\n\n removeCustomCell(col: number, row: number) {\n // const { startInTotal } = this.table.getBodyColumnDefine(col, row) as any;\n const isHeader = this.table.isHeader(col, row);\n let removeFun;\n if (isHeader) {\n const define = this.table.getHeaderDefine(col, row);\n const { componentId } = define as any;\n removeFun = this.headerReactRemoveGraphicCache.get(componentId);\n } else {\n const define = this.table.getBodyColumnDefine(col, row);\n const { componentId } = define as any;\n removeFun = this.reactRemoveGraphicCache.get(componentId);\n }\n if (removeFun) {\n removeFun(col, row);\n }\n }\n}\n\nfunction getUpdateCustomCellRangeInListTable(componentId: string, table: BaseTableAPI, isHeaderCustomLayout?: boolean) {\n const rowSeriesNumber = table.internalProps.rowSeriesNumber ? 1 : 0;\n if (isHeaderCustomLayout) {\n const layoutMap = table.internalProps.layoutMap as SimpleHeaderLayoutMap;\n const { headerObjects } = table.internalProps.layoutMap;\n let headerId: number;\n for (let i = 0; i < headerObjects.length; i++) {\n const headerObject = headerObjects[i];\n if ((headerObject.define as any).componentId === componentId) {\n headerId = headerObject.id as number;\n break;\n }\n }\n\n const startCell = layoutMap.getHeaderCellAdressById(headerId);\n const range = layoutMap.getCellRange(startCell.col, startCell.row);\n return range;\n\n // let startCol = -1;\n // let endCol = -1;\n // let startRow = -1;\n // let endRow = -1;\n // for (let i = 0; i < _headerCellIds.length; i++) {\n // const row = _headerCellIds[i];\n // let rowHasObject = false;\n // for (let j = 0; j < row.length; j++) {\n // if (row[j] === headerId) {\n // rowHasObject = true;\n // if (transpose) {\n // // return { col: i, row: j };\n // startCol === -1 && (startCol = i);\n // startRow === -1 && (startRow = j);\n // } else {\n // // return { col: j + this.leftRowSeriesNumberColumnCount, row: i };\n // startCol === -1 && (startCol = j);\n // startRow === -1 && (startRow = i);\n // }\n // } else {\n // if (transpose) {\n // // endCol === -1 && startCol !== -1 && (endCol = i);\n // endRow === -1 && startRow !== -1 && (endRow = j - 1);\n // } else {\n // endCol === -1 && startCol !== -1 && (endCol = j - 1);\n // // endRow === -1 && startRow !== -1 && (endRow = i);\n // }\n // }\n\n // if (startCol !== -1 && endCol !== -1 && startRow !== -1 && endRow !== -1) {\n // break;\n // }\n // }\n\n // if (!rowHasObject) {\n // if (transpose) {\n // endCol === -1 && startCol !== -1 && (endCol = i - 1);\n // } else {\n // endRow === -1 && startRow !== -1 && (endRow = i - 1);\n // }\n // }\n\n // if (startCol !== -1 && endCol !== -1 && startRow !== -1 && endRow !== -1) {\n // break;\n // }\n // }\n\n // return {\n // startCol: startCol + rowSeriesNumber,\n // endCol: endCol + rowSeriesNumber,\n // startRow,\n // endRow\n // };\n }\n const { columnObjects } = table.internalProps.layoutMap;\n for (let i = 0; i < columnObjects.length; i++) {\n const columnObject = columnObjects[i];\n if ((columnObject.define as any).componentId === componentId) {\n return {\n start: {\n col: rowSeriesNumber + i,\n row: table.columnHeaderLevelCount\n },\n end: {\n col: rowSeriesNumber + i,\n row: table.rowCount - 1\n }\n };\n }\n }\n\n return {\n start: {\n col: 0,\n row: 0\n },\n end: {\n col: table.colCount - 1,\n row: table.rowCount - 1\n }\n };\n}\n\nfunction getUpdateCustomCellRangeInPivotTable(\n componentId: string,\n table: BaseTableAPI,\n isHeaderCustomLayout?: boolean\n) {\n const rowSeriesNumber = table.internalProps.rowSeriesNumber ? 1 : 0;\n const ranges = [];\n const layoutMap = table.internalProps.layoutMap as PivotHeaderLayoutMap;\n if (isHeaderCustomLayout) {\n const { headerObjects } = layoutMap;\n const headerIds: number[] = [];\n for (let i = 0; i < headerObjects.length; i++) {\n const headerObject = headerObjects[i];\n if (!headerObject) {\n continue;\n }\n if ((headerObject.define as any).componentId === componentId) {\n headerIds.push(headerObject.id as number);\n }\n }\n\n for (let i = 0; i < headerIds.length; i++) {\n const headerId = headerIds[i];\n const startCell = layoutMap.getHeaderCellAdressById(headerId);\n const range = layoutMap.getCellRange(startCell.col, startCell.row);\n ranges.push(range);\n }\n } else {\n let columnIndex: number;\n const { columnObjects, indicatorsAsCol } = layoutMap;\n for (let i = 0; i < columnObjects.length; i++) {\n const columnObject = columnObjects[i];\n if ((columnObject.define as any).componentId === componentId) {\n columnIndex = i;\n break;\n }\n }\n\n if (indicatorsAsCol) {\n for (\n let column = layoutMap.rowHeaderLevelCount + columnIndex;\n column < layoutMap.colCount;\n column += columnObjects.length\n ) {\n const range = {\n start: {\n col: column + rowSeriesNumber,\n row: layoutMap.columnHeaderLevelCount\n },\n end: {\n col: column + rowSeriesNumber,\n row: layoutMap.rowCount - 1\n }\n };\n ranges.push(range);\n }\n } else {\n for (\n let row = layoutMap.columnHeaderLevelCount + columnIndex;\n row < layoutMap.rowCount;\n row += columnObjects.length\n ) {\n const range = {\n start: {\n col: layoutMap.rowHeaderLevelCount + rowSeriesNumber,\n row: row\n },\n end: {\n col: layoutMap.colCount - 1,\n row: row\n }\n };\n ranges.push(range);\n }\n }\n }\n\n return ranges;\n\n // return {\n // startCol: 0,\n // endCol: table.colCount - 1,\n // startRow: 0,\n // endRow: table.rowCount - 1\n // };\n}\n"]}
1
+ {"version":3,"sources":["../src/components/react/react-custom-layout.ts"],"names":[],"mappings":"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","file":"react-custom-layout.js","sourcesContent":["import { Group } from './../../vrender';\nimport type { CustomRenderFunctionArg, ICustomLayoutFuc } from '../../ts-types';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport type { SimpleHeaderLayoutMap } from '../../layout';\n\nexport function emptyCustomLayout(args: CustomRenderFunctionArg) {\n const group = new Group({});\n return {\n rootContainer: group,\n renderDefault: true\n };\n}\n\nexport class ReactCustomLayout {\n removeAllContainer: () => void;\n table: BaseTableAPI;\n customLayoutFuncCache: Map<string, ICustomLayoutFuc>;\n reactRemoveGraphicCache: Map<string, (col: number, row: number) => void>;\n headerCustomLayoutFuncCache: Map<string, ICustomLayoutFuc>;\n headerReactRemoveGraphicCache: Map<string, (col: number, row: number) => void>;\n // reactContainerCache: Map<number, Map<string, any>>;\n constructor(removeAllContainer: () => void, table: BaseTableAPI) {\n this.removeAllContainer = removeAllContainer;\n this.table = table;\n this.customLayoutFuncCache = new Map();\n // this.reactContainerCache = new Map();\n this.reactRemoveGraphicCache = new Map();\n this.headerCustomLayoutFuncCache = new Map();\n // this.headerCeactContainerCache = new Map();\n this.headerReactRemoveGraphicCache = new Map();\n }\n\n hasReactCreateGraphic(componentId: string, isHeaderCustomLayout?: boolean) {\n if (isHeaderCustomLayout) {\n return this.headerCustomLayoutFuncCache.has(componentId);\n }\n return this.customLayoutFuncCache.has(componentId);\n }\n\n setReactCreateGraphic(\n componentId: string,\n createGraphic: ICustomLayoutFuc,\n // containerCache: Map<string, any>,\n isHeaderCustomLayout?: boolean\n ) {\n if (isHeaderCustomLayout) {\n this.headerCustomLayoutFuncCache.set(componentId, createGraphic);\n } else {\n this.customLayoutFuncCache.set(componentId, createGraphic);\n }\n // this.reactContainerCache.set(componentId, containerCache);\n }\n\n setReactRemoveGraphic(\n componentId: string,\n removeGraphic: (col: number, row: number) => void,\n isHeaderCustomLayout?: boolean\n ) {\n if (isHeaderCustomLayout) {\n this.headerReactRemoveGraphicCache.set(componentId, removeGraphic);\n } else {\n this.reactRemoveGraphicCache.set(componentId, removeGraphic);\n }\n }\n\n updateCustomCell(componentId: string, isHeaderCustomLayout?: boolean) {\n const table = this.table;\n // const col = componentId;\n // // to do: deal with transpose table\n // if (isHeaderCustomLayout) {\n // for (let row = 0; row < table.columnHeaderLevelCount; row++) {\n // table.scenegraph.updateCellContent(col, row);\n // }\n // } else {\n // for (let row = table.columnHeaderLevelCount; row < table.rowCount; row++) {\n // table.scenegraph.updateCellContent(col, row);\n // }\n // }\n\n if (table.isPivotTable()) {\n const ranges = getUpdateCustomCellRangeInPivotTable(componentId, table, isHeaderCustomLayout);\n for (let i = 0; i < ranges.length; i++) {\n const range = ranges[i];\n for (let col = range.start.col; col <= range.end.col; col++) {\n for (let row = range.start.row; row <= range.end.row; row++) {\n table.scenegraph.updateCellContent(col, row);\n }\n }\n }\n } else {\n const range = getUpdateCustomCellRangeInListTable(componentId, table, isHeaderCustomLayout);\n for (let col = range.start.col; col <= range.end.col; col++) {\n for (let row = range.start.row; row <= range.end.row; row++) {\n table.scenegraph.updateCellContent(col, row);\n }\n }\n }\n // table.scenegraph.updateNextFrame();\n table.scenegraph.renderSceneGraph(); // use sync render for faster update\n }\n\n getCustomLayoutFunc(col: number, row: number) {\n const isHeader = this.table.isHeader(col, row);\n if (isHeader) {\n const { componentId } = this.table.getHeaderDefine(col, row) as any;\n return this.headerCustomLayoutFuncCache.get(componentId) ?? emptyCustomLayout;\n }\n const { componentId } = this.table.getBodyColumnDefine(col, row) as any;\n return this.customLayoutFuncCache.get(componentId) || emptyCustomLayout;\n }\n\n removeCustomCell(col: number, row: number) {\n // const { startInTotal } = this.table.getBodyColumnDefine(col, row) as any;\n const isHeader = this.table.isHeader(col, row);\n let removeFun;\n if (isHeader) {\n const define = this.table.getHeaderDefine(col, row);\n const { componentId } = define as any;\n removeFun = this.headerReactRemoveGraphicCache.get(componentId);\n } else {\n const define = this.table.getBodyColumnDefine(col, row);\n const { componentId } = define as any;\n removeFun = this.reactRemoveGraphicCache.get(componentId);\n }\n if (removeFun) {\n removeFun(col, row);\n }\n }\n\n clearCache() {\n this.removeAllContainer();\n }\n}\n\nfunction getUpdateCustomCellRangeInListTable(componentId: string, table: BaseTableAPI, isHeaderCustomLayout?: boolean) {\n const rowSeriesNumber = table.internalProps.rowSeriesNumber ? 1 : 0;\n if (isHeaderCustomLayout) {\n const layoutMap = table.internalProps.layoutMap as SimpleHeaderLayoutMap;\n const { headerObjects } = table.internalProps.layoutMap;\n let headerId: number;\n for (let i = 0; i < headerObjects.length; i++) {\n const headerObject = headerObjects[i];\n if ((headerObject.define as any).componentId === componentId) {\n headerId = headerObject.id as number;\n break;\n }\n }\n\n const startCell = layoutMap.getHeaderCellAdressById(headerId);\n const range = layoutMap.getCellRange(startCell.col, startCell.row);\n return range;\n\n // let startCol = -1;\n // let endCol = -1;\n // let startRow = -1;\n // let endRow = -1;\n // for (let i = 0; i < _headerCellIds.length; i++) {\n // const row = _headerCellIds[i];\n // let rowHasObject = false;\n // for (let j = 0; j < row.length; j++) {\n // if (row[j] === headerId) {\n // rowHasObject = true;\n // if (transpose) {\n // // return { col: i, row: j };\n // startCol === -1 && (startCol = i);\n // startRow === -1 && (startRow = j);\n // } else {\n // // return { col: j + this.leftRowSeriesNumberColumnCount, row: i };\n // startCol === -1 && (startCol = j);\n // startRow === -1 && (startRow = i);\n // }\n // } else {\n // if (transpose) {\n // // endCol === -1 && startCol !== -1 && (endCol = i);\n // endRow === -1 && startRow !== -1 && (endRow = j - 1);\n // } else {\n // endCol === -1 && startCol !== -1 && (endCol = j - 1);\n // // endRow === -1 && startRow !== -1 && (endRow = i);\n // }\n // }\n\n // if (startCol !== -1 && endCol !== -1 && startRow !== -1 && endRow !== -1) {\n // break;\n // }\n // }\n\n // if (!rowHasObject) {\n // if (transpose) {\n // endCol === -1 && startCol !== -1 && (endCol = i - 1);\n // } else {\n // endRow === -1 && startRow !== -1 && (endRow = i - 1);\n // }\n // }\n\n // if (startCol !== -1 && endCol !== -1 && startRow !== -1 && endRow !== -1) {\n // break;\n // }\n // }\n\n // return {\n // startCol: startCol + rowSeriesNumber,\n // endCol: endCol + rowSeriesNumber,\n // startRow,\n // endRow\n // };\n }\n const { columnObjects } = table.internalProps.layoutMap;\n for (let i = 0; i < columnObjects.length; i++) {\n const columnObject = columnObjects[i];\n if ((columnObject.define as any).componentId === componentId) {\n return {\n start: {\n col: rowSeriesNumber + i,\n row: table.columnHeaderLevelCount\n },\n end: {\n col: rowSeriesNumber + i,\n row: table.rowCount - 1\n }\n };\n }\n }\n\n return {\n start: {\n col: 0,\n row: 0\n },\n end: {\n col: table.colCount - 1,\n row: table.rowCount - 1\n }\n };\n}\n\nfunction getUpdateCustomCellRangeInPivotTable(\n componentId: string,\n table: BaseTableAPI,\n isHeaderCustomLayout?: boolean\n) {\n const rowSeriesNumber = table.internalProps.rowSeriesNumber ? 1 : 0;\n const ranges = [];\n const layoutMap = table.internalProps.layoutMap as PivotHeaderLayoutMap;\n if (isHeaderCustomLayout) {\n const { headerObjects } = layoutMap;\n const headerIds: number[] = [];\n for (let i = 0; i < headerObjects.length; i++) {\n const headerObject = headerObjects[i];\n if (!headerObject) {\n continue;\n }\n if ((headerObject.define as any).componentId === componentId) {\n headerIds.push(headerObject.id as number);\n }\n }\n\n for (let i = 0; i < headerIds.length; i++) {\n const headerId = headerIds[i];\n const startCell = layoutMap.getHeaderCellAdressById(headerId);\n const range = layoutMap.getCellRange(startCell.col, startCell.row);\n ranges.push(range);\n }\n } else {\n let columnIndex: number;\n const { columnObjects, indicatorsAsCol } = layoutMap;\n for (let i = 0; i < columnObjects.length; i++) {\n const columnObject = columnObjects[i];\n if ((columnObject.define as any).componentId === componentId) {\n columnIndex = i;\n break;\n }\n }\n\n if (indicatorsAsCol) {\n for (\n let column = layoutMap.rowHeaderLevelCount + columnIndex;\n column < layoutMap.colCount;\n column += columnObjects.length\n ) {\n const range = {\n start: {\n col: column + rowSeriesNumber,\n row: layoutMap.columnHeaderLevelCount\n },\n end: {\n col: column + rowSeriesNumber,\n row: layoutMap.rowCount - 1\n }\n };\n ranges.push(range);\n }\n } else {\n for (\n let row = layoutMap.columnHeaderLevelCount + columnIndex;\n row < layoutMap.rowCount;\n row += columnObjects.length\n ) {\n const range = {\n start: {\n col: layoutMap.rowHeaderLevelCount + rowSeriesNumber,\n row: row\n },\n end: {\n col: layoutMap.colCount - 1,\n row: row\n }\n };\n ranges.push(range);\n }\n }\n }\n\n return ranges;\n\n // return {\n // startCol: 0,\n // endCol: table.colCount - 1,\n // startRow: 0,\n // endRow: table.rowCount - 1\n // };\n}\n"]}
@@ -19,6 +19,7 @@ import { CustomCellStylePlugin } from '../plugins/custom-cell-style';
19
19
  import type { ITextGraphicAttribute } from './../vrender';
20
20
  import { ReactCustomLayout } from '../components/react/react-custom-layout';
21
21
  import type { ISortedMapItem } from '../data/DataSource';
22
+ import type { EditManeger } from '../edit/edit-manager';
22
23
  export declare abstract class BaseTable extends EventTarget implements BaseTableAPI {
23
24
  internalProps: IBaseTableProtected;
24
25
  showFrozenIcon: boolean;
@@ -46,16 +47,17 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
46
47
  scenegraph: Scenegraph;
47
48
  stateManager: StateManager;
48
49
  eventManager: EventManager;
50
+ editorManager: EditManeger;
49
51
  _pixelRatio: number;
52
+ canvasSizeSeted?: boolean;
50
53
  static get EVENT_TYPE(): typeof TABLE_EVENT_TYPE;
51
54
  readonly options: BaseTableConstructorOptions;
52
55
  version: string;
53
56
  pagination?: IPagination | undefined;
54
57
  id: string;
55
- headerStyleCache: Map<string, any>;
56
- bodyStyleCache: Map<string, any>;
57
- bodyMergeTitleCache: Map<string, any>;
58
- bodyBottomStyleCache: Map<string, any>;
58
+ headerStyleCache: any;
59
+ bodyStyleCache: any;
60
+ bodyBottomStyleCache: any;
59
61
  container: HTMLElement;
60
62
  isReleased: boolean;
61
63
  _chartEventMap: Record<string, {
@@ -71,6 +73,7 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
71
73
  getContainer(): HTMLElement;
72
74
  getElement(): HTMLElement;
73
75
  get canvas(): HTMLCanvasElement;
76
+ setCanvasSize(canvasWidth: number, canvasHeight: number): void;
74
77
  resize(): void;
75
78
  get rowCount(): number;
76
79
  set rowCount(rowCount: number);
@@ -398,12 +401,11 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
398
401
  get leftRowSeriesNumberCount(): number;
399
402
  setMinMaxLimitWidth(setWidth?: boolean): void;
400
403
  setSortedIndexMap(field: FieldDef, filedMap: ISortedMapItem): void;
401
- checkReactCustomLayout(): void;
404
+ checkReactCustomLayout(removeAllContainer: () => void): void;
402
405
  get bodyDomContainer(): HTMLElement;
403
406
  get headerDomContainer(): HTMLElement;
404
407
  showMoverLine(col: number, row: number): void;
405
408
  hideMoverLine(col: number, row: number): void;
406
409
  disableScroll(): void;
407
410
  enableScroll(): void;
408
- getGroupTitleLevel(col: number, row: number): number | undefined;
409
411
  }
@@ -33,17 +33,19 @@ Object.defineProperty(exports, "__esModule", {
33
33
  value: !0
34
34
  }), exports.BaseTable = void 0;
35
35
 
36
- const columnStyleContents = __importStar(require("../body-helper/style")), style_1 = require("./style"), style = __importStar(require("../tools/style")), ts_types_1 = require("../ts-types"), helper_1 = require("../tools/helper"), TABLE_EVENT_TYPE_1 = require("./TABLE_EVENT_TYPE"), EventHandler_1 = require("../event/EventHandler"), EventTarget_1 = require("../event/EventTarget"), NumberMap_1 = require("../tools/NumberMap"), Rect_1 = require("../tools/Rect"), util_1 = require("../tools/util"), themes_1 = __importDefault(require("../themes")), env_1 = require("../tools/env"), scenegraph_1 = require("../scenegraph/scenegraph"), state_1 = require("../state/state"), event_1 = require("../event/event"), body_helper_1 = require("../body-helper/body-helper"), header_helper_1 = require("../header-helper/header-helper"), vutils_1 = require("@visactor/vutils"), text_measure_1 = require("../scenegraph/utils/text-measure"), get_prop_1 = require("../scenegraph/utils/get-prop"), icons_1 = require("../plugins/icons"), tableHelper_1 = require("./tableHelper"), FouseInput_1 = require("./FouseInput"), pixel_ratio_1 = require("../tools/pixel-ratio"), chart_render_helper_1 = require("../scenegraph/graphic/contributions/chart-render-helper"), row_height_map_1 = require("../layout/row-height-map"), row_series_number_helper_1 = require("./row-series-number-helper"), custom_cell_style_1 = require("../plugins/custom-cell-style"), update_select_border_1 = require("../scenegraph/select/update-select-border"), react_custom_layout_1 = require("../components/react/react-custom-layout"), layout_helper_1 = require("../layout/layout-helper"), factory_1 = require("./factory"), get_cell_position_1 = require("./utils/get-cell-position"), style_helper_1 = require("./style-helper"), {toBoxArray: toBoxArray} = helper_1.style, {isTouchEvent: isTouchEvent} = helper_1.event, rangeReg = /^\$(\d+)\$(\d+)$/;
36
+ const columnStyleContents = __importStar(require("../body-helper/style")), headerStyleContents = __importStar(require("../header-helper/style")), style_1 = require("./style"), style = __importStar(require("../tools/style")), ts_types_1 = require("../ts-types"), helper_1 = require("../tools/helper"), TABLE_EVENT_TYPE_1 = require("./TABLE_EVENT_TYPE"), EventHandler_1 = require("../event/EventHandler"), EventTarget_1 = require("../event/EventTarget"), NumberMap_1 = require("../tools/NumberMap"), Rect_1 = require("../tools/Rect"), util_1 = require("../tools/util"), themes_1 = __importDefault(require("../themes")), env_1 = require("../tools/env"), scenegraph_1 = require("../scenegraph/scenegraph"), state_1 = require("../state/state"), event_1 = require("../event/event"), body_helper_1 = require("../body-helper/body-helper"), header_helper_1 = require("../header-helper/header-helper"), vutils_1 = require("@visactor/vutils"), text_measure_1 = require("../scenegraph/utils/text-measure"), get_prop_1 = require("../scenegraph/utils/get-prop"), icons_1 = require("../plugins/icons"), tableHelper_1 = require("./tableHelper"), FouseInput_1 = require("./FouseInput"), pixel_ratio_1 = require("../tools/pixel-ratio"), chart_render_helper_1 = require("../scenegraph/graphic/contributions/chart-render-helper"), get_axis_config_1 = require("../layout/chart-helper/get-axis-config"), row_height_map_1 = require("../layout/row-height-map"), row_series_number_helper_1 = require("./row-series-number-helper"), custom_cell_style_1 = require("../plugins/custom-cell-style"), update_select_border_1 = require("../scenegraph/select/update-select-border"), react_custom_layout_1 = require("../components/react/react-custom-layout"), layout_helper_1 = require("../layout/layout-helper"), factory_1 = require("./factory"), get_cell_position_1 = require("./utils/get-cell-position"), {toBoxArray: toBoxArray} = helper_1.style, {isTouchEvent: isTouchEvent} = helper_1.event, rangeReg = /^\$(\d+)\$(\d+)$/;
37
37
 
38
38
  (0, style_1.importStyle)();
39
39
 
40
+ const EMPTY_STYLE = {};
41
+
40
42
  class BaseTable extends EventTarget_1.EventTarget {
41
43
  static get EVENT_TYPE() {
42
44
  return TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE;
43
45
  }
44
46
  constructor(container, options = {}) {
45
47
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
46
- if (super(), this.showFrozenIcon = !0, this.version = "1.6.0-alpha.1", this.id = `VTable${Date.now()}`,
48
+ if (super(), this.showFrozenIcon = !0, this.version = "1.6.0-alpha.3", this.id = `VTable${Date.now()}`,
47
49
  this.isReleased = !1, this._chartEventMap = {}, this.throttleInvalidate = (0, util_1.throttle2)(this.render.bind(this), 200),
48
50
  !container && "node" !== options.mode) throw new Error("vtable's container is undefined");
49
51
  const {frozenColCount: frozenColCount = 0, frozenRowCount: frozenRowCount, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth, widthMode: widthMode = "standard", heightMode: heightMode = "standard", autoFillWidth: autoFillWidth = !1, autoFillHeight: autoFillHeight = !1, widthAdaptiveMode: widthAdaptiveMode = "only-body", heightAdaptiveMode: heightAdaptiveMode = "only-body", keyboardOptions: keyboardOptions, eventOptions: eventOptions, rowSeriesNumber: rowSeriesNumber, columnResizeMode: columnResizeMode, rowResizeMode: rowResizeMode = "none", dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, customRender: customRender, pixelRatio: pixelRatio = pixel_ratio_1.defaultPixelRatio, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount, mode: mode, modeParams: modeParams, canvasWidth: canvasWidth, canvasHeight: canvasHeight, overscrollBehavior: overscrollBehavior, limitMinWidth: limitMinWidth, limitMinHeight: limitMinHeight, clearDOM: clearDOM = !0} = options;
@@ -58,7 +60,8 @@ class BaseTable extends EventTarget_1.EventTarget {
58
60
  }, padding && ("number" == typeof padding ? (this.padding.top = padding, this.padding.left = padding,
59
61
  this.padding.bottom = padding, this.padding.right = padding) : (padding.top && (this.padding.top = padding.top),
60
62
  padding.bottom && (this.padding.bottom = padding.bottom), padding.left && (this.padding.left = padding.left),
61
- padding.right && (this.padding.right = padding.right))), this.tableNoFrameWidth = 0,
63
+ padding.right && (this.padding.right = padding.right))), (0, vutils_1.isValid)(canvasHeight) && (0,
64
+ vutils_1.isValid)(canvasWidth) && (this.canvasSizeSeted = !0), this.tableNoFrameWidth = 0,
62
65
  this.tableNoFrameHeight = 0, this.canvasWidth = canvasWidth, this.canvasHeight = canvasHeight,
63
66
  this.columnWidthComputeMode = null !== (_a = options.columnWidthComputeMode) && void 0 !== _a ? _a : "normal";
64
67
  const internalProps = this.internalProps = {};
@@ -132,8 +135,8 @@ class BaseTable extends EventTarget_1.EventTarget {
132
135
  const MenuHandler = factory_1.Factory.getComponent("menuHandler");
133
136
  internalProps.menuHandler = new MenuHandler(this);
134
137
  }
135
- this.headerStyleCache = new Map, this.bodyStyleCache = new Map, this.bodyMergeTitleCache = new Map,
136
- this.bodyBottomStyleCache = new Map, internalProps.stick = {
138
+ this.headerStyleCache = new Map, this.bodyStyleCache = new Map, this.bodyBottomStyleCache = new Map,
139
+ internalProps.stick = {
137
140
  changedCells: new Map
138
141
  }, internalProps.customMergeCell = options.customMergeCell, this.customCellStylePlugin = new custom_cell_style_1.CustomCellStylePlugin(this, null !== (_k = options.customCellStyle) && void 0 !== _k ? _k : [], null !== (_l = options.customCellStyleArrangement) && void 0 !== _l ? _l : []);
139
142
  }
@@ -146,6 +149,9 @@ class BaseTable extends EventTarget_1.EventTarget {
146
149
  get canvas() {
147
150
  return this.internalProps.canvas;
148
151
  }
152
+ setCanvasSize(canvasWidth, canvasHeight) {
153
+ this.canvasWidth = canvasWidth, this.canvasHeight = canvasHeight, this.resize();
154
+ }
149
155
  resize() {
150
156
  var _a;
151
157
  this._updateSize(), null === (_a = this.internalProps.legends) || void 0 === _a || _a.forEach((legend => {
@@ -352,7 +358,7 @@ class BaseTable extends EventTarget_1.EventTarget {
352
358
  if ("browser" === env_1.Env.mode) {
353
359
  const element = this.getElement();
354
360
  let widthWithoutPadding = 0, heightWithoutPadding = 0;
355
- if (element.parentElement) {
361
+ if (this.canvasSizeSeted) widthWithoutPadding = this.canvasWidth, heightWithoutPadding = this.canvasHeight; else if (element.parentElement) {
356
362
  const computedStyle = element.parentElement.style || window.getComputedStyle(element.parentElement);
357
363
  widthWithoutPadding = element.parentElement.offsetWidth - parseInt(computedStyle.paddingLeft || "0px", 10) - parseInt(computedStyle.paddingRight || "0px", 10),
358
364
  heightWithoutPadding = element.parentElement.offsetHeight - parseInt(computedStyle.paddingTop || "0px", 10) - parseInt(computedStyle.paddingBottom || "0px", 20);
@@ -369,7 +375,7 @@ class BaseTable extends EventTarget_1.EventTarget {
369
375
  this.internalProps.bodyDomContainer.style.height = `${heightP}px`), this.internalProps.headerDomContainer && (this.internalProps.headerDomContainer.style.width = `${widthP}px`,
370
376
  this.internalProps.headerDomContainer.style.height = `${heightP}px`);
371
377
  } else "node" === env_1.Env.mode && (widthP = this.canvasWidth - 1, heightP = this.canvasHeight - 1);
372
- const width = Math.floor(widthP - style.getScrollBarSize(this.getTheme().scrollStyle)), height = Math.floor(heightP - style.getScrollBarSize(this.getTheme().scrollStyle));
378
+ const width = Math.floor(widthP - style.getVerticalScrollBarSize(this.getTheme().scrollStyle)), height = Math.floor(heightP - style.getHorizontalScrollBarSize(this.getTheme().scrollStyle));
373
379
  if (null === (_f = this.internalProps.theme) || void 0 === _f ? void 0 : _f.frameStyle) {
374
380
  const lineWidths = toBoxArray(null !== (_h = null === (_g = this.internalProps.theme.frameStyle) || void 0 === _g ? void 0 : _g.borderLineWidth) && void 0 !== _h ? _h : [ null ]), shadowWidths = toBoxArray(null !== (_k = null === (_j = this.internalProps.theme.frameStyle) || void 0 === _j ? void 0 : _j.shadowBlur) && void 0 !== _k ? _k : [ 0 ]);
375
381
  (null === (_l = this.theme.frameStyle) || void 0 === _l ? void 0 : _l.innerBorder) ? (this.tableX = 0,
@@ -428,7 +434,8 @@ class BaseTable extends EventTarget_1.EventTarget {
428
434
  clearCache && this._clearRowRangeHeightsMap(row);
429
435
  }
430
436
  setRowHeight(row, height) {
431
- this.scenegraph.setRowHeight(row, height), this.internalProps._heightResizedRowMap.add(row);
437
+ this.scenegraph.setRowHeight(row, height), this.scenegraph.updateChartSizeForResizeRowHeight(row),
438
+ this.internalProps._heightResizedRowMap.add(row);
432
439
  }
433
440
  getRowsHeight(startRow, endRow) {
434
441
  var _a, _b;
@@ -474,7 +481,8 @@ class BaseTable extends EventTarget_1.EventTarget {
474
481
  clearCache && this._clearColRangeWidthsMap(col), skipCheckFrozen || this.stateManager.checkFrozen();
475
482
  }
476
483
  setColWidth(col, width) {
477
- this.scenegraph.setColWidth(col, width), this.internalProps._widthResizedColMap.add(col);
484
+ this.scenegraph.setColWidth(col, width), this.scenegraph.updateChartSizeForResizeColWidth(col),
485
+ this.internalProps._widthResizedColMap.add(col);
478
486
  }
479
487
  _clearColRangeWidthsMap(col) {
480
488
  if ("number" != typeof col) this._colRangeWidthsMap.clear(); else {
@@ -1173,11 +1181,81 @@ class BaseTable extends EventTarget_1.EventTarget {
1173
1181
  return null === (_a = this.internalProps.dataSource) || void 0 === _a ? void 0 : _a.hasField(index, field);
1174
1182
  }
1175
1183
  _getCellStyle(col, row) {
1176
- return (0, style_helper_1.getCellStyle)(col, row, this);
1184
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
1185
+ const customCellStyle = this.customCellStylePlugin.getCustomCellStyle(col, row), {layoutMap: layoutMap} = this.internalProps;
1186
+ if (layoutMap.isHeader(col, row)) {
1187
+ let cacheKey;
1188
+ if (!this.isPivotTable() || this.isBottomFrozenRow(row) || this.isRightFrozenColumn(col)) cacheKey = `${col}-${row}`; else {
1189
+ const define = this.getHeaderDefine(col, row), isCorner = this.isCornerHeader(col, row);
1190
+ cacheKey = (null == define ? void 0 : define.dimensionKey) ? isCorner ? `dim-cor-${define.dimensionKey}` : `dim-${define.dimensionKey}` : (null == define ? void 0 : define.indicatorKey) ? `ind-${define.indicatorKey}` : `${col}-${row}`;
1191
+ }
1192
+ let cacheStyle = this.headerStyleCache.get(cacheKey);
1193
+ if (cacheStyle) return customCellStyle ? (0, custom_cell_style_1.mergeStyle)(cacheStyle, customCellStyle) : cacheStyle;
1194
+ const hd = layoutMap.getHeader(col, row);
1195
+ let paddingForAxis;
1196
+ if (this.isPivotChart() && (0, get_axis_config_1.isTopOrBottomAxis)(col, row, layoutMap) && layoutMap.isAxisCell(col, row)) {
1197
+ paddingForAxis = null !== (_b = null === (_a = layoutMap.getBody(col, this.rowHeaderLevelCount).style) || void 0 === _a ? void 0 : _a.padding) && void 0 !== _b ? _b : this.theme.bodyStyle.padding;
1198
+ } else if (this.isPivotChart() && (0, get_axis_config_1.isLeftOrRightAxis)(col, row, layoutMap) && layoutMap.isAxisCell(col, row)) {
1199
+ paddingForAxis = null !== (_d = null === (_c = layoutMap.getBody(this.columnHeaderLevelCount, row).style) || void 0 === _c ? void 0 : _c.padding) && void 0 !== _d ? _d : this.theme.bodyStyle.padding;
1200
+ }
1201
+ if ((!hd || hd.isEmpty) && (layoutMap.isLeftBottomCorner(col, row) || layoutMap.isRightBottomCorner(col, row) || layoutMap.isCornerHeader(col, row) || layoutMap.isRightTopCorner(col, row))) return EMPTY_STYLE;
1202
+ const styleClass = this.internalProps.headerHelper.getStyleClass((null == hd ? void 0 : hd.headerType) || "text");
1203
+ if (layoutMap.isBottomFrozenRow(col, row) && this.theme.bottomFrozenStyle) cacheStyle = headerStyleContents.of(paddingForAxis ? {
1204
+ padding: paddingForAxis
1205
+ } : {}, this.theme.bottomFrozenStyle, {
1206
+ col: col,
1207
+ row: row,
1208
+ table: this,
1209
+ value: this.getCellValue(col, row),
1210
+ dataValue: this.getCellOriginValue(col, row),
1211
+ cellHeaderPaths: this.getCellHeaderPaths(col, row)
1212
+ }, styleClass, this.options.autoWrapText, this.theme); else if (layoutMap.isRightFrozenColumn(col, row) && this.theme.rightFrozenStyle) cacheStyle = headerStyleContents.of(paddingForAxis ? {
1213
+ padding: paddingForAxis
1214
+ } : {}, this.theme.rightFrozenStyle, {
1215
+ col: col,
1216
+ row: row,
1217
+ table: this,
1218
+ value: this.getCellValue(col, row),
1219
+ dataValue: this.getCellOriginValue(col, row),
1220
+ cellHeaderPaths: this.getCellHeaderPaths(col, row)
1221
+ }, styleClass, this.options.autoWrapText, this.theme); else {
1222
+ const style = (null == hd ? void 0 : hd.style) || {};
1223
+ paddingForAxis && (style.padding = paddingForAxis), cacheStyle = headerStyleContents.of(style, layoutMap.isColumnHeader(col, row) || layoutMap.isBottomFrozenRow(col, row) ? this.theme.headerStyle : layoutMap.isRowHeader(col, row) || layoutMap.isRightFrozenColumn(col, row) ? this.theme.rowHeaderStyle : this.theme.cornerHeaderStyle, {
1224
+ col: col,
1225
+ row: row,
1226
+ table: this,
1227
+ value: this.getCellValue(col, row),
1228
+ dataValue: this.getCellOriginValue(col, row),
1229
+ cellHeaderPaths: this.getCellHeaderPaths(col, row)
1230
+ }, styleClass, this.options.autoWrapText, this.theme);
1231
+ }
1232
+ return this.headerStyleCache.set(cacheKey, cacheStyle), customCellStyle ? (0, custom_cell_style_1.mergeStyle)(cacheStyle, customCellStyle) : cacheStyle;
1233
+ }
1234
+ let bgColorFunc, cacheKey;
1235
+ (null === (_f = null === (_e = this.internalProps) || void 0 === _e ? void 0 : _e.dataConfig) || void 0 === _f ? void 0 : _f.mappingRules) && !this.isHeader(col, row) && (null === (_j = null === (_h = null === (_g = this.internalProps) || void 0 === _g ? void 0 : _g.dataConfig) || void 0 === _h ? void 0 : _h.mappingRules) || void 0 === _j || _j.forEach(((mappingRule, i) => {
1236
+ mappingRule.bgColor && this.internalProps.layoutMap.getIndicatorKey(col, row) === mappingRule.bgColor.indicatorKey && (bgColorFunc = mappingRule.bgColor.mapping);
1237
+ })));
1238
+ const cellType = this.getCellType(col, row);
1239
+ let cacheStyle;
1240
+ if (cacheKey = this.isSeriesNumberInBody(col, row) ? `${col}-series-` + cellType : this.isListTable() && !this.transpose || this.isPivotTable() && this.internalProps.layoutMap.indicatorsAsCol ? col + cellType : row + cellType,
1241
+ cacheStyle = layoutMap.isBottomFrozenRow(row) ? this.bodyBottomStyleCache.get(cacheKey) : this.bodyStyleCache.get(cacheKey),
1242
+ cacheStyle) return customCellStyle ? (0, custom_cell_style_1.mergeStyle)(cacheStyle, customCellStyle) : cacheStyle;
1243
+ const column = layoutMap.getBody(col, row), styleClass = this.internalProps.bodyHelper.getStyleClass(this.getCellType(col, row)), style = null == column ? void 0 : column.style;
1244
+ return cacheStyle = columnStyleContents.of(style, layoutMap.isBottomFrozenRow(row) && this.theme.bottomFrozenStyle ? this.theme.bottomFrozenStyle : layoutMap.isRightFrozenColumn(col) && this.theme.rightFrozenStyle ? this.theme.rightFrozenStyle : this.theme.bodyStyle, {
1245
+ col: col,
1246
+ row: row,
1247
+ table: this,
1248
+ value: this.getCellValue(col, row),
1249
+ dataValue: this.getCellOriginValue(col, row),
1250
+ cellHeaderPaths: this.getCellHeaderPaths(col, row)
1251
+ }, styleClass, this.options.autoWrapText, this.theme), bgColorFunc && (cacheStyle = (0,
1252
+ custom_cell_style_1.mergeStyle)(cacheStyle, {
1253
+ bgColor: bgColorFunc
1254
+ })), (0, vutils_1.isFunction)(style) || (layoutMap.isBottomFrozenRow(row) ? this.bodyBottomStyleCache.set(cacheKey, cacheStyle) : this.bodyStyleCache.set(cacheKey, cacheStyle)),
1255
+ customCellStyle ? (0, custom_cell_style_1.mergeStyle)(cacheStyle, customCellStyle) : cacheStyle;
1177
1256
  }
1178
1257
  clearCellStyleCache() {
1179
- this.headerStyleCache.clear(), this.bodyStyleCache.clear(), this.bodyMergeTitleCache.clear(),
1180
- this.bodyBottomStyleCache.clear();
1258
+ this.headerStyleCache.clear(), this.bodyStyleCache.clear(), this.bodyBottomStyleCache.clear();
1181
1259
  }
1182
1260
  clearRowHeightCache() {
1183
1261
  this.internalProps._rowHeightsMap.clear(), this._clearRowRangeHeightsMap();
@@ -1652,6 +1730,7 @@ class BaseTable extends EventTarget_1.EventTarget {
1652
1730
  var _a, _b;
1653
1731
  const internalProps = this.internalProps;
1654
1732
  for (let col = 0; col < internalProps.layoutMap.columnWidths.length; col++) {
1733
+ if (this.internalProps._widthResizedColMap.has(col)) continue;
1655
1734
  const {width: width, minWidth: minWidth, maxWidth: maxWidth} = null !== (_b = null === (_a = internalProps.layoutMap.columnWidths) || void 0 === _a ? void 0 : _a[col]) && void 0 !== _b ? _b : {};
1656
1735
  setWidth && width && ("string" == typeof width && "auto" !== width || "number" == typeof width && width > 0) && this._setColWidth(col, width),
1657
1736
  minWidth && ("number" == typeof minWidth && minWidth > 0 || "string" == typeof minWidth) && this.setMinColWidth(col, minWidth),
@@ -1662,8 +1741,8 @@ class BaseTable extends EventTarget_1.EventTarget {
1662
1741
  var _a;
1663
1742
  null === (_a = this.dataSource) || void 0 === _a || _a.setSortedIndexMap(field, filedMap);
1664
1743
  }
1665
- checkReactCustomLayout() {
1666
- this.reactCustomLayout || (this.reactCustomLayout = new react_custom_layout_1.ReactCustomLayout(this));
1744
+ checkReactCustomLayout(removeAllContainer) {
1745
+ this.reactCustomLayout || (this.reactCustomLayout = new react_custom_layout_1.ReactCustomLayout(removeAllContainer, this));
1667
1746
  }
1668
1747
  get bodyDomContainer() {
1669
1748
  return this.internalProps.bodyDomContainer;
@@ -1683,7 +1762,6 @@ class BaseTable extends EventTarget_1.EventTarget {
1683
1762
  enableScroll() {
1684
1763
  this.eventManager.enableScroll();
1685
1764
  }
1686
- getGroupTitleLevel(col, row) {}
1687
1765
  }
1688
1766
 
1689
1767
  exports.BaseTable = BaseTable;