@visactor/vtable 0.9.3-alpha.4 → 0.9.3-alpha.5

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 (241) hide show
  1. package/cjs/ListTable.js +8 -8
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/PivotChart.d.ts +7 -4
  4. package/cjs/PivotChart.js +17 -17
  5. package/cjs/PivotChart.js.map +1 -1
  6. package/cjs/PivotTable.js +7 -7
  7. package/cjs/PivotTable.js.map +1 -1
  8. package/cjs/components/axis/axis.js +5 -4
  9. package/cjs/components/axis/axis.js.map +1 -1
  10. package/cjs/components/axis/get-axis-component-size.d.ts +3 -0
  11. package/cjs/components/axis/get-axis-component-size.js +50 -0
  12. package/cjs/components/axis/get-axis-component-size.js.map +1 -0
  13. package/cjs/components/axis/linear-scale.js +2 -1
  14. package/cjs/components/axis/linear-scale.js.map +1 -1
  15. package/cjs/components/legend/legend.d.ts +1 -1
  16. package/cjs/components/legend/legend.js +1 -1
  17. package/cjs/components/legend/legend.js.map +1 -1
  18. package/cjs/components/menu/dom/BaseMenu.d.ts +1 -1
  19. package/cjs/components/menu/dom/BaseMenu.js +2 -2
  20. package/cjs/components/menu/dom/BaseMenu.js.map +1 -1
  21. package/cjs/components/menu/dom/MenuHandler.d.ts +1 -1
  22. package/cjs/components/menu/dom/MenuHandler.js +5 -5
  23. package/cjs/components/menu/dom/MenuHandler.js.map +1 -1
  24. package/cjs/components/menu/dom/logic/MenuContainer.d.ts +1 -1
  25. package/cjs/components/menu/dom/logic/MenuContainer.js +2 -2
  26. package/cjs/components/menu/dom/logic/MenuContainer.js.map +1 -1
  27. package/cjs/components/menu/dom/logic/MenuElement.d.ts +1 -1
  28. package/cjs/components/menu/dom/logic/MenuElement.js +2 -2
  29. package/cjs/components/menu/dom/logic/MenuElement.js.map +1 -1
  30. package/cjs/components/title/title.d.ts +1 -1
  31. package/cjs/components/title/title.js +1 -1
  32. package/cjs/components/title/title.js.map +1 -1
  33. package/cjs/components/tooltip/BaseTooltip.d.ts +1 -1
  34. package/cjs/components/tooltip/BaseTooltip.js +2 -2
  35. package/cjs/components/tooltip/BaseTooltip.js.map +1 -1
  36. package/cjs/components/tooltip/TooltipHandler.d.ts +1 -1
  37. package/cjs/components/tooltip/TooltipHandler.js +7 -7
  38. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  39. package/cjs/components/tooltip/logic/BubbleTooltipElement.d.ts +1 -1
  40. package/cjs/components/tooltip/logic/BubbleTooltipElement.js +2 -2
  41. package/cjs/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  42. package/cjs/core/BaseTable.d.ts +8 -7
  43. package/cjs/core/BaseTable.js +35 -64
  44. package/cjs/core/BaseTable.js.map +1 -1
  45. package/cjs/core/FouseInput.d.ts +1 -1
  46. package/cjs/core/FouseInput.js +1 -1
  47. package/cjs/core/FouseInput.js.map +1 -1
  48. package/cjs/core/tableHelper.js +3 -3
  49. package/cjs/core/tableHelper.js.map +1 -1
  50. package/cjs/data/CachedDataSource.d.ts +1 -1
  51. package/cjs/data/CachedDataSource.js +2 -2
  52. package/cjs/data/CachedDataSource.js.map +1 -1
  53. package/cjs/data/DataSource.d.ts +1 -1
  54. package/cjs/data/DataSource.js +2 -2
  55. package/cjs/data/DataSource.js.map +1 -1
  56. package/cjs/data/FilterDataSource.js.map +1 -1
  57. package/cjs/event/EventHandler.d.ts +1 -1
  58. package/cjs/event/EventHandler.js +1 -1
  59. package/cjs/event/EventHandler.js.map +1 -1
  60. package/cjs/event/EventTarget.d.ts +3 -3
  61. package/cjs/event/EventTarget.js +5 -5
  62. package/cjs/event/EventTarget.js.map +1 -1
  63. package/cjs/event/drill.js +1 -1
  64. package/cjs/event/drill.js.map +1 -1
  65. package/cjs/event/event.d.ts +1 -1
  66. package/cjs/event/event.js +11 -7
  67. package/cjs/event/event.js.map +1 -1
  68. package/cjs/event/listener/table-group.js +3 -1
  69. package/cjs/event/listener/table-group.js.map +1 -1
  70. package/cjs/event/media-click.js +1 -1
  71. package/cjs/event/media-click.js.map +1 -1
  72. package/cjs/event/pivot-chart/axis-hover.js +2 -2
  73. package/cjs/event/pivot-chart/axis-hover.js.map +1 -1
  74. package/cjs/event/sparkline-event.js +2 -2
  75. package/cjs/event/sparkline-event.js.map +1 -1
  76. package/cjs/index.d.ts +1 -1
  77. package/cjs/index.js +1 -1
  78. package/cjs/index.js.map +1 -1
  79. package/cjs/layout/chart-helper/get-axis-config.d.ts +1 -0
  80. package/cjs/layout/chart-helper/get-axis-config.js +56 -40
  81. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  82. package/cjs/layout/chart-helper/get-chart-spec.js +18 -12
  83. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  84. package/cjs/layout/pivot-header-layout.d.ts +4 -0
  85. package/cjs/layout/pivot-header-layout.js +16 -0
  86. package/cjs/layout/pivot-header-layout.js.map +1 -1
  87. package/cjs/layout/pivot-layout.d.ts +4 -0
  88. package/cjs/layout/pivot-layout.js +16 -0
  89. package/cjs/layout/pivot-layout.js.map +1 -1
  90. package/cjs/layout/simple-header-layout.d.ts +4 -0
  91. package/cjs/layout/simple-header-layout.js +16 -0
  92. package/cjs/layout/simple-header-layout.js.map +1 -1
  93. package/cjs/scenegraph/component/menu.d.ts +1 -1
  94. package/cjs/scenegraph/component/menu.js +1 -1
  95. package/cjs/scenegraph/component/menu.js.map +1 -1
  96. package/cjs/scenegraph/graphic/icon.d.ts +2 -2
  97. package/cjs/scenegraph/graphic/icon.js.map +1 -1
  98. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +7 -7
  99. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  100. package/cjs/scenegraph/group-creater/progress/proxy.js +4 -2
  101. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  102. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +4 -4
  103. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  104. package/cjs/scenegraph/layout/compute-col-width.js +23 -4
  105. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  106. package/cjs/scenegraph/scenegraph.js +1 -1
  107. package/cjs/scenegraph/scenegraph.js.map +1 -1
  108. package/cjs/scenegraph/utils/text-icon-layout.js +1 -1
  109. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  110. package/cjs/state/state.js +5 -2
  111. package/cjs/state/state.js.map +1 -1
  112. package/cjs/ts-types/base-table.d.ts +12 -11
  113. package/cjs/ts-types/base-table.js.map +1 -1
  114. package/cjs/ts-types/component/axis.d.ts +1 -1
  115. package/cjs/ts-types/component/axis.js.map +1 -1
  116. package/cjs/ts-types/events.d.ts +2 -0
  117. package/cjs/ts-types/events.js.map +1 -1
  118. package/cjs/ts-types/list-table/layout-map/api.d.ts +1 -0
  119. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  120. package/dist/vtable.js +604 -443
  121. package/dist/vtable.min.js +3 -3
  122. package/es/ListTable.js +8 -8
  123. package/es/ListTable.js.map +1 -1
  124. package/es/PivotChart.d.ts +7 -4
  125. package/es/PivotChart.js +17 -17
  126. package/es/PivotChart.js.map +1 -1
  127. package/es/PivotTable.js +7 -7
  128. package/es/PivotTable.js.map +1 -1
  129. package/es/components/axis/axis.js +3 -3
  130. package/es/components/axis/axis.js.map +1 -1
  131. package/es/components/axis/get-axis-component-size.d.ts +3 -0
  132. package/es/components/axis/get-axis-component-size.js +44 -0
  133. package/es/components/axis/get-axis-component-size.js.map +1 -0
  134. package/es/components/axis/linear-scale.js +2 -1
  135. package/es/components/axis/linear-scale.js.map +1 -1
  136. package/es/components/legend/legend.d.ts +1 -1
  137. package/es/components/legend/legend.js +1 -1
  138. package/es/components/legend/legend.js.map +1 -1
  139. package/es/components/menu/dom/BaseMenu.d.ts +1 -1
  140. package/es/components/menu/dom/BaseMenu.js +2 -2
  141. package/es/components/menu/dom/BaseMenu.js.map +1 -1
  142. package/es/components/menu/dom/MenuHandler.d.ts +1 -1
  143. package/es/components/menu/dom/MenuHandler.js +5 -5
  144. package/es/components/menu/dom/MenuHandler.js.map +1 -1
  145. package/es/components/menu/dom/logic/MenuContainer.d.ts +1 -1
  146. package/es/components/menu/dom/logic/MenuContainer.js +2 -2
  147. package/es/components/menu/dom/logic/MenuContainer.js.map +1 -1
  148. package/es/components/menu/dom/logic/MenuElement.d.ts +1 -1
  149. package/es/components/menu/dom/logic/MenuElement.js +2 -2
  150. package/es/components/menu/dom/logic/MenuElement.js.map +1 -1
  151. package/es/components/title/title.d.ts +1 -1
  152. package/es/components/title/title.js +1 -1
  153. package/es/components/title/title.js.map +1 -1
  154. package/es/components/tooltip/BaseTooltip.d.ts +1 -1
  155. package/es/components/tooltip/BaseTooltip.js +2 -2
  156. package/es/components/tooltip/BaseTooltip.js.map +1 -1
  157. package/es/components/tooltip/TooltipHandler.d.ts +1 -1
  158. package/es/components/tooltip/TooltipHandler.js +7 -7
  159. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  160. package/es/components/tooltip/logic/BubbleTooltipElement.d.ts +1 -1
  161. package/es/components/tooltip/logic/BubbleTooltipElement.js +2 -2
  162. package/es/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  163. package/es/core/BaseTable.d.ts +8 -7
  164. package/es/core/BaseTable.js +36 -64
  165. package/es/core/BaseTable.js.map +1 -1
  166. package/es/core/FouseInput.d.ts +1 -1
  167. package/es/core/FouseInput.js +1 -1
  168. package/es/core/FouseInput.js.map +1 -1
  169. package/es/core/tableHelper.js +3 -3
  170. package/es/core/tableHelper.js.map +1 -1
  171. package/es/data/CachedDataSource.d.ts +1 -1
  172. package/es/data/CachedDataSource.js +2 -2
  173. package/es/data/CachedDataSource.js.map +1 -1
  174. package/es/data/DataSource.d.ts +1 -1
  175. package/es/data/DataSource.js +2 -2
  176. package/es/data/DataSource.js.map +1 -1
  177. package/es/data/FilterDataSource.js.map +1 -1
  178. package/es/event/EventHandler.d.ts +1 -1
  179. package/es/event/EventHandler.js +1 -1
  180. package/es/event/EventHandler.js.map +1 -1
  181. package/es/event/EventTarget.d.ts +3 -3
  182. package/es/event/EventTarget.js +5 -5
  183. package/es/event/EventTarget.js.map +1 -1
  184. package/es/event/drill.js +1 -1
  185. package/es/event/drill.js.map +1 -1
  186. package/es/event/event.d.ts +1 -1
  187. package/es/event/event.js +12 -6
  188. package/es/event/event.js.map +1 -1
  189. package/es/event/listener/table-group.js +3 -1
  190. package/es/event/listener/table-group.js.map +1 -1
  191. package/es/event/media-click.js +1 -1
  192. package/es/event/media-click.js.map +1 -1
  193. package/es/event/pivot-chart/axis-hover.js +2 -2
  194. package/es/event/pivot-chart/axis-hover.js.map +1 -1
  195. package/es/event/sparkline-event.js +2 -2
  196. package/es/event/sparkline-event.js.map +1 -1
  197. package/es/index.d.ts +1 -1
  198. package/es/index.js +1 -1
  199. package/es/index.js.map +1 -1
  200. package/es/layout/chart-helper/get-axis-config.d.ts +1 -0
  201. package/es/layout/chart-helper/get-axis-config.js +53 -38
  202. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  203. package/es/layout/chart-helper/get-chart-spec.js +19 -13
  204. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  205. package/es/layout/pivot-header-layout.d.ts +4 -0
  206. package/es/layout/pivot-header-layout.js +16 -0
  207. package/es/layout/pivot-header-layout.js.map +1 -1
  208. package/es/layout/pivot-layout.d.ts +4 -0
  209. package/es/layout/pivot-layout.js +16 -0
  210. package/es/layout/pivot-layout.js.map +1 -1
  211. package/es/layout/simple-header-layout.d.ts +4 -0
  212. package/es/layout/simple-header-layout.js +16 -0
  213. package/es/layout/simple-header-layout.js.map +1 -1
  214. package/es/scenegraph/component/menu.d.ts +1 -1
  215. package/es/scenegraph/component/menu.js +1 -1
  216. package/es/scenegraph/component/menu.js.map +1 -1
  217. package/es/scenegraph/graphic/icon.d.ts +2 -2
  218. package/es/scenegraph/graphic/icon.js.map +1 -1
  219. package/es/scenegraph/group-creater/cell-type/image-cell.js +4 -4
  220. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  221. package/es/scenegraph/group-creater/progress/proxy.js +4 -2
  222. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  223. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +4 -4
  224. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  225. package/es/scenegraph/layout/compute-col-width.js +26 -3
  226. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  227. package/es/scenegraph/scenegraph.js +1 -1
  228. package/es/scenegraph/scenegraph.js.map +1 -1
  229. package/es/scenegraph/utils/text-icon-layout.js +1 -1
  230. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  231. package/es/state/state.js +5 -2
  232. package/es/state/state.js.map +1 -1
  233. package/es/ts-types/base-table.d.ts +12 -11
  234. package/es/ts-types/base-table.js.map +1 -1
  235. package/es/ts-types/component/axis.d.ts +1 -1
  236. package/es/ts-types/component/axis.js.map +1 -1
  237. package/es/ts-types/events.d.ts +2 -0
  238. package/es/ts-types/events.js.map +1 -1
  239. package/es/ts-types/list-table/layout-map/api.d.ts +1 -0
  240. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  241. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["components/tooltip/logic/BubbleTooltipElement.ts"],"names":[],"mappings":"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","file":"BubbleTooltipElement.js","sourcesContent":["import { EventHandler } from '../../../event/EventHandler';\nimport type { RectProps } from '../../../ts-types';\nimport { Placement } from '../../../ts-types';\nimport { createElement } from '../../../tools/dom';\nimport { importStyle } from './BubbleTooltipElementStyle';\nimport { isMobile } from '../../../tools/util';\nimport type { TooltipOptions } from '../../../ts-types/tooltip';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimportStyle();\nconst TOOLTIP_CLASS = 'vtable__bubble-tooltip-element';\nconst CONTENT_CLASS = `${TOOLTIP_CLASS}__content`;\nconst TRIANGLE_CLASS = `${TOOLTIP_CLASS}__triangle`;\nconst HIDDEN_CLASS = `${TOOLTIP_CLASS}--hidden`;\nconst SHOWN_CLASS = `${TOOLTIP_CLASS}--shown`;\n\nexport class BubbleTooltipElement {\n private _handler: EventHandler;\n private _rootElement?: HTMLElement;\n private _messageElement?: HTMLElement;\n private _triangleElement?: HTMLElement;\n constructor() {\n this._handler = new EventHandler();\n const rootElement = (this._rootElement = createElement('div', [TOOLTIP_CLASS, HIDDEN_CLASS]));\n const messageElement = createElement('span', [CONTENT_CLASS]);\n const triangle = createElement('span', [TRIANGLE_CLASS]);\n rootElement.appendChild(triangle);\n rootElement.appendChild(messageElement);\n this._messageElement = <HTMLElement>rootElement.querySelector(`.${CONTENT_CLASS}`) || undefined;\n this._triangleElement = <HTMLElement>rootElement.querySelector(`.${TRIANGLE_CLASS}`) || undefined;\n }\n bindToCell(\n table: BaseTableAPI,\n col: number,\n row: number,\n tooltipInstanceInfo: TooltipOptions,\n confine: boolean\n ): boolean {\n const rootElement = this._rootElement;\n const messageElement = this._messageElement;\n const triangle = this._triangleElement;\n\n rootElement?.classList.remove(SHOWN_CLASS);\n rootElement?.classList.add(HIDDEN_CLASS);\n if (this._canBindToCell(table, col, row)) {\n //设置style及类名\n messageElement.setAttribute('style', '');\n triangle.setAttribute('style', '');\n tooltipInstanceInfo?.className && rootElement.classList.add(tooltipInstanceInfo.className);\n tooltipInstanceInfo?.style?.bgColor &&\n (messageElement.style.backgroundColor = tooltipInstanceInfo?.style?.bgColor);\n tooltipInstanceInfo?.style?.bgColor && (triangle.style.backgroundColor = tooltipInstanceInfo?.style?.bgColor);\n triangle.style.display = tooltipInstanceInfo?.style?.arrowMark === true ? 'block' : 'none';\n tooltipInstanceInfo?.style?.font && (messageElement.style.font = tooltipInstanceInfo?.style?.font);\n tooltipInstanceInfo?.style?.color && (messageElement.style.color = tooltipInstanceInfo?.style?.color);\n tooltipInstanceInfo?.style?.padding &&\n (messageElement.style.padding = `${tooltipInstanceInfo?.style?.padding.join('px ')}px`);\n messageElement && (messageElement.textContent = tooltipInstanceInfo?.content);\n const binded = this._bindToCell(\n table,\n col,\n row,\n tooltipInstanceInfo?.position,\n tooltipInstanceInfo?.referencePosition,\n confine,\n tooltipInstanceInfo?.style?.arrowMark\n );\n if (binded) {\n rootElement?.classList.add(SHOWN_CLASS);\n rootElement?.classList.remove(HIDDEN_CLASS);\n return true;\n }\n } else {\n this.unbindFromCell();\n }\n return false;\n }\n dispose(): void {\n this.unbindFromCell();\n\n const rootElement = this._rootElement;\n if (rootElement?.parentElement) {\n rootElement.parentElement.removeChild(rootElement);\n }\n\n this._handler?.dispose?.();\n delete this._rootElement;\n delete this._messageElement;\n }\n move(table: BaseTableAPI, col: number, row: number, tooltipOptions?: TooltipOptions, confine?: boolean): void {\n const rootElement = this._rootElement;\n if (this._canBindToCell(table, col, row)) {\n this._bindToCell(table, col, row, tooltipOptions?.position, tooltipOptions?.referencePosition, confine);\n rootElement?.classList.add(SHOWN_CLASS);\n rootElement?.classList.remove(HIDDEN_CLASS);\n } else {\n this.unbindFromCell();\n }\n }\n unbindFromCell(): void {\n const rootElement = this._rootElement;\n if (rootElement?.parentElement) {\n rootElement.classList.remove(SHOWN_CLASS);\n rootElement.classList.add(HIDDEN_CLASS);\n }\n }\n _canBindToCell(table: BaseTableAPI, col: number, row: number): boolean {\n const rect = table.getCellRangeRelativeRect({ col, row });\n const element = table.getElement();\n const { bottom, left, right } = rect;\n const { frozenRowCount, frozenColCount } = table;\n if (row >= frozenRowCount && frozenRowCount > 0) {\n const frozenRect = table.getCellRangeRelativeRect({ col, row: frozenRowCount - 1 });\n if (bottom < frozenRect.bottom) {\n // 范围外\n return false;\n }\n } else if (bottom < 0) {\n // 范围外\n return false;\n }\n if (col >= frozenColCount && frozenColCount > 0) {\n const frozenRect = table.getCellRangeRelativeRect({ col: frozenColCount - 1, row });\n if (right < frozenRect.right) {\n //整个是被冻结列盖住的 不需要提示toolTip\n return false;\n }\n } else if (left < 0) {\n return false;\n }\n const { offsetHeight, offsetWidth } = element;\n if (offsetHeight < bottom) {\n return false;\n }\n if (offsetWidth < left) {\n return false;\n }\n return true;\n }\n _bindToCell(\n table: BaseTableAPI,\n col: number,\n row: number,\n position?: { x: number; y: number },\n referencePosition?: { rect: RectProps; placement?: Placement },\n confine?: boolean,\n arrowMark?: boolean\n ): boolean {\n const rootElement = this._rootElement;\n const rect = table.getCellRangeRelativeRect({ col, row });\n const element = table.getElement();\n const containerWidth = table.internalProps.element.offsetWidth;\n const { width } = rect;\n if (rootElement) {\n if (rootElement.parentElement !== element) {\n element.appendChild(rootElement);\n }\n rootElement.style.left = `0px`;\n // 边界碰撞检测\n let tooltipY: number;\n let tooltipX: number;\n //设置最宽尺寸\n const maxWidth = Math.min(containerWidth * 0.8, width * 4);\n rootElement.style.maxWidth = `${maxWidth}px`;\n //计算弹出框的宽度\n const rootElementWidth = rootElement.clientWidth; //Math.min(Math.max(rootElement.clientWidth, width), maxWidth);\n const rootElementHeight = rootElement.clientHeight;\n if (position || referencePosition) {\n const tooltipPosition = this.getComputedPosition(\n table,\n col,\n row,\n position,\n referencePosition,\n confine,\n arrowMark\n );\n tooltipX = tooltipPosition.x;\n tooltipY = tooltipPosition.y;\n } else {\n return false;\n }\n\n rootElement.style.left = `${tooltipX}px`;\n rootElement.style.top = `${tooltipY}px`;\n // rootElement.style.width=rootElementWidth+'px';\n if (isMobile()) {\n rootElement.style.fontSize = '11px';\n }\n\n // 判断当前tooltip范围是否与tooltip重合\n const { x1: menuLeft, x2: menuRight, y1: menuTop, y2: menuBottom } = table.stateManeger.menu.bounds;\n const tooltipLeft = tooltipX;\n const tooltipRight = tooltipLeft + rootElementWidth;\n const tooltipTop = tooltipY;\n const tooltipBottom = tooltipLeft + rootElementHeight;\n if (\n table.stateManeger.menu.isShow &&\n menuLeft < tooltipRight &&\n menuRight > tooltipLeft &&\n menuBottom > tooltipTop &&\n menuTop < tooltipBottom\n ) {\n return false;\n }\n return true;\n }\n return false;\n }\n private getComputedPosition(\n table: BaseTableAPI,\n col: number,\n row: number,\n position?: { x: number; y: number },\n referencePosition?: { rect: RectProps; placement?: Placement },\n confine?: boolean,\n arrowMark?: boolean\n ) {\n const rootElement = this._rootElement;\n const rect = table.getCellRangeRelativeRect({ col, row });\n const { width: containerWidth, height: containerHeight } = table.internalProps.element.getBoundingClientRect();\n const { width } = rect;\n // 边界碰撞检测\n let tooltipY: number;\n let tooltipX: number;\n //设置最宽尺寸\n const maxWidth = Math.min(containerWidth * 0.8, width * 4);\n rootElement.style.maxWidth = `${maxWidth}px`;\n //计算弹出框的宽度\n const rootElementWidth = rootElement.clientWidth; //Math.min(Math.max(rootElement.clientWidth, width), maxWidth);\n const rootElementHeight = rootElement.clientHeight;\n // this._triangleElement.setAttribute('style', '');\n const triangleHeight = arrowMark ? 6 : 0;\n if (position) {\n tooltipX = position.x;\n tooltipY = position.y + triangleHeight;\n this._triangleElement.style.left = '50%';\n this._triangleElement.style.marginLeft = '-5px';\n this._triangleElement.style.top = '-5px';\n } else if (referencePosition) {\n let placement = referencePosition.placement ?? Placement.bottom;\n const referenceXMiddle = referencePosition.rect.left + referencePosition.rect.width / 2 + (table as any).tableX;\n const referenceYMiddle = referencePosition.rect.top + referencePosition.rect.height / 2 + (table as any).tableY;\n const referenceTop = referencePosition.rect.top + (table as any).tableY;\n const referenceBottom = referencePosition.rect.bottom + (table as any).tableY;\n const referenceLeft = referencePosition.rect.left + (table as any).tableX;\n const referenceRight = referencePosition.rect.right + (table as any).tableX;\n\n let callCount = 0;\n /** 根据placement计算弹出框的位置 躲避策略[dom的这块先去除 dom可以超出显示]:根据顺时针方向依次检测placement */\n const adjustPosition = () => {\n callCount++;\n if (callCount >= 4) {\n return;\n }\n this.removeStyleFromTriangle();\n if (placement === Placement.top) {\n tooltipX = referenceXMiddle - rootElementWidth / 2;\n tooltipY = referenceTop - rootElementHeight - triangleHeight;\n this._triangleElement.style.left = '50%';\n this._triangleElement.style.marginLeft = '-5px';\n this._triangleElement.style.bottom = '-5px';\n\n // 判断如果超出左右范围则靠边显示\n if (confine && tooltipY < 0) {\n placement = Placement.right;\n adjustPosition();\n }\n } else if (placement === Placement.bottom) {\n tooltipX = referenceXMiddle - rootElementWidth / 2;\n tooltipY = referenceBottom + triangleHeight;\n this._triangleElement.style.left = '50%';\n this._triangleElement.style.marginLeft = '-5px';\n this._triangleElement.style.top = '-5px';\n if (confine && tooltipY + rootElementHeight > containerHeight) {\n placement = Placement.left;\n adjustPosition();\n }\n } else if (placement === Placement.left) {\n tooltipY = referenceYMiddle - rootElementHeight / 2;\n tooltipX = referenceLeft - rootElementWidth - triangleHeight;\n this._triangleElement.style.top = '50%';\n this._triangleElement.style.marginTop = '-5px';\n this._triangleElement.style.right = '-5px';\n if (confine && tooltipX < 0) {\n placement = Placement.top;\n adjustPosition();\n }\n } else if (placement === Placement.right) {\n tooltipY = referenceYMiddle - rootElementHeight / 2;\n tooltipX = referenceRight + triangleHeight;\n this._triangleElement.style.top = '50%';\n this._triangleElement.style.marginTop = '-5px';\n this._triangleElement.style.left = '-5px';\n if (confine && tooltipX + rootElementWidth > containerWidth) {\n placement = Placement.bottom;\n adjustPosition();\n }\n }\n };\n adjustPosition();\n }\n // 判断如果超出左右范围则靠边显示\n if (confine) {\n if (tooltipX < 0) {\n tooltipX = 0;\n } else if (tooltipX + rootElement.offsetWidth > containerWidth) {\n tooltipX = containerWidth - rootElement.offsetWidth;\n }\n }\n return {\n x: tooltipX,\n y: tooltipY\n };\n }\n private removeStyleFromTriangle() {\n this._triangleElement.style.left = '';\n this._triangleElement.style.right = '';\n this._triangleElement.style.top = '';\n this._triangleElement.style.bottom = '';\n this._triangleElement.style.marginLeft = '';\n this._triangleElement.style.marginTop = '';\n }\n _locate(\n table: BaseTableAPI,\n col: number,\n row: number,\n position?: { x: number; y: number },\n referencePosition?: {\n rect: RectProps;\n placement?: Placement;\n },\n confine?: boolean\n ) {\n const tooltipPosition = this.getComputedPosition(table, col, row, position, referencePosition, confine);\n const tooltipX = tooltipPosition.x;\n const tooltipY = tooltipPosition.y;\n this._rootElement.style.left = `${tooltipX}px`;\n this._rootElement.style.top = `${tooltipY}px`;\n }\n}\n"]}
1
+ {"version":3,"sources":["components/tooltip/logic/BubbleTooltipElement.ts"],"names":[],"mappings":"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","file":"BubbleTooltipElement.js","sourcesContent":["import { EventHandler } from '../../../event/EventHandler';\nimport type { RectProps } from '../../../ts-types';\nimport { Placement } from '../../../ts-types';\nimport { createElement } from '../../../tools/dom';\nimport { importStyle } from './BubbleTooltipElementStyle';\nimport { isMobile } from '../../../tools/util';\nimport type { TooltipOptions } from '../../../ts-types/tooltip';\nimport type { BaseTableAPI } from '../../../ts-types/base-table';\nimportStyle();\nconst TOOLTIP_CLASS = 'vtable__bubble-tooltip-element';\nconst CONTENT_CLASS = `${TOOLTIP_CLASS}__content`;\nconst TRIANGLE_CLASS = `${TOOLTIP_CLASS}__triangle`;\nconst HIDDEN_CLASS = `${TOOLTIP_CLASS}--hidden`;\nconst SHOWN_CLASS = `${TOOLTIP_CLASS}--shown`;\n\nexport class BubbleTooltipElement {\n private _handler: EventHandler;\n private _rootElement?: HTMLElement;\n private _messageElement?: HTMLElement;\n private _triangleElement?: HTMLElement;\n constructor() {\n this._handler = new EventHandler();\n const rootElement = (this._rootElement = createElement('div', [TOOLTIP_CLASS, HIDDEN_CLASS]));\n const messageElement = createElement('span', [CONTENT_CLASS]);\n const triangle = createElement('span', [TRIANGLE_CLASS]);\n rootElement.appendChild(triangle);\n rootElement.appendChild(messageElement);\n this._messageElement = <HTMLElement>rootElement.querySelector(`.${CONTENT_CLASS}`) || undefined;\n this._triangleElement = <HTMLElement>rootElement.querySelector(`.${TRIANGLE_CLASS}`) || undefined;\n }\n bindToCell(\n table: BaseTableAPI,\n col: number,\n row: number,\n tooltipInstanceInfo: TooltipOptions,\n confine: boolean\n ): boolean {\n const rootElement = this._rootElement;\n const messageElement = this._messageElement;\n const triangle = this._triangleElement;\n\n rootElement?.classList.remove(SHOWN_CLASS);\n rootElement?.classList.add(HIDDEN_CLASS);\n if (this._canBindToCell(table, col, row)) {\n //设置style及类名\n messageElement.setAttribute('style', '');\n triangle.setAttribute('style', '');\n tooltipInstanceInfo?.className && rootElement.classList.add(tooltipInstanceInfo.className);\n tooltipInstanceInfo?.style?.bgColor &&\n (messageElement.style.backgroundColor = tooltipInstanceInfo?.style?.bgColor);\n tooltipInstanceInfo?.style?.bgColor && (triangle.style.backgroundColor = tooltipInstanceInfo?.style?.bgColor);\n triangle.style.display = tooltipInstanceInfo?.style?.arrowMark === true ? 'block' : 'none';\n tooltipInstanceInfo?.style?.font && (messageElement.style.font = tooltipInstanceInfo?.style?.font);\n tooltipInstanceInfo?.style?.color && (messageElement.style.color = tooltipInstanceInfo?.style?.color);\n tooltipInstanceInfo?.style?.padding &&\n (messageElement.style.padding = `${tooltipInstanceInfo?.style?.padding.join('px ')}px`);\n messageElement && (messageElement.textContent = tooltipInstanceInfo?.content);\n const binded = this._bindToCell(\n table,\n col,\n row,\n tooltipInstanceInfo?.position,\n tooltipInstanceInfo?.referencePosition,\n confine,\n tooltipInstanceInfo?.style?.arrowMark\n );\n if (binded) {\n rootElement?.classList.add(SHOWN_CLASS);\n rootElement?.classList.remove(HIDDEN_CLASS);\n return true;\n }\n } else {\n this.unbindFromCell();\n }\n return false;\n }\n release(): void {\n this.unbindFromCell();\n\n const rootElement = this._rootElement;\n if (rootElement?.parentElement) {\n rootElement.parentElement.removeChild(rootElement);\n }\n\n this._handler?.release?.();\n delete this._rootElement;\n delete this._messageElement;\n }\n move(table: BaseTableAPI, col: number, row: number, tooltipOptions?: TooltipOptions, confine?: boolean): void {\n const rootElement = this._rootElement;\n if (this._canBindToCell(table, col, row)) {\n this._bindToCell(table, col, row, tooltipOptions?.position, tooltipOptions?.referencePosition, confine);\n rootElement?.classList.add(SHOWN_CLASS);\n rootElement?.classList.remove(HIDDEN_CLASS);\n } else {\n this.unbindFromCell();\n }\n }\n unbindFromCell(): void {\n const rootElement = this._rootElement;\n if (rootElement?.parentElement) {\n rootElement.classList.remove(SHOWN_CLASS);\n rootElement.classList.add(HIDDEN_CLASS);\n }\n }\n _canBindToCell(table: BaseTableAPI, col: number, row: number): boolean {\n const rect = table.getCellRangeRelativeRect({ col, row });\n const element = table.getElement();\n const { bottom, left, right } = rect;\n const { frozenRowCount, frozenColCount } = table;\n if (row >= frozenRowCount && frozenRowCount > 0) {\n const frozenRect = table.getCellRangeRelativeRect({ col, row: frozenRowCount - 1 });\n if (bottom < frozenRect.bottom) {\n // 范围外\n return false;\n }\n } else if (bottom < 0) {\n // 范围外\n return false;\n }\n if (col >= frozenColCount && frozenColCount > 0) {\n const frozenRect = table.getCellRangeRelativeRect({ col: frozenColCount - 1, row });\n if (right < frozenRect.right) {\n //整个是被冻结列盖住的 不需要提示toolTip\n return false;\n }\n } else if (left < 0) {\n return false;\n }\n const { offsetHeight, offsetWidth } = element;\n if (offsetHeight < bottom) {\n return false;\n }\n if (offsetWidth < left) {\n return false;\n }\n return true;\n }\n _bindToCell(\n table: BaseTableAPI,\n col: number,\n row: number,\n position?: { x: number; y: number },\n referencePosition?: { rect: RectProps; placement?: Placement },\n confine?: boolean,\n arrowMark?: boolean\n ): boolean {\n const rootElement = this._rootElement;\n const rect = table.getCellRangeRelativeRect({ col, row });\n const element = table.getElement();\n const containerWidth = table.internalProps.element.offsetWidth;\n const { width } = rect;\n if (rootElement) {\n if (rootElement.parentElement !== element) {\n element.appendChild(rootElement);\n }\n rootElement.style.left = `0px`;\n // 边界碰撞检测\n let tooltipY: number;\n let tooltipX: number;\n //设置最宽尺寸\n const maxWidth = Math.min(containerWidth * 0.8, width * 4);\n rootElement.style.maxWidth = `${maxWidth}px`;\n //计算弹出框的宽度\n const rootElementWidth = rootElement.clientWidth; //Math.min(Math.max(rootElement.clientWidth, width), maxWidth);\n const rootElementHeight = rootElement.clientHeight;\n if (position || referencePosition) {\n const tooltipPosition = this.getComputedPosition(\n table,\n col,\n row,\n position,\n referencePosition,\n confine,\n arrowMark\n );\n tooltipX = tooltipPosition.x;\n tooltipY = tooltipPosition.y;\n } else {\n return false;\n }\n\n rootElement.style.left = `${tooltipX}px`;\n rootElement.style.top = `${tooltipY}px`;\n // rootElement.style.width=rootElementWidth+'px';\n if (isMobile()) {\n rootElement.style.fontSize = '11px';\n }\n\n // 判断当前tooltip范围是否与tooltip重合\n const { x1: menuLeft, x2: menuRight, y1: menuTop, y2: menuBottom } = table.stateManeger.menu.bounds;\n const tooltipLeft = tooltipX;\n const tooltipRight = tooltipLeft + rootElementWidth;\n const tooltipTop = tooltipY;\n const tooltipBottom = tooltipLeft + rootElementHeight;\n if (\n table.stateManeger.menu.isShow &&\n menuLeft < tooltipRight &&\n menuRight > tooltipLeft &&\n menuBottom > tooltipTop &&\n menuTop < tooltipBottom\n ) {\n return false;\n }\n return true;\n }\n return false;\n }\n private getComputedPosition(\n table: BaseTableAPI,\n col: number,\n row: number,\n position?: { x: number; y: number },\n referencePosition?: { rect: RectProps; placement?: Placement },\n confine?: boolean,\n arrowMark?: boolean\n ) {\n const rootElement = this._rootElement;\n const rect = table.getCellRangeRelativeRect({ col, row });\n const { width: containerWidth, height: containerHeight } = table.internalProps.element.getBoundingClientRect();\n const { width } = rect;\n // 边界碰撞检测\n let tooltipY: number;\n let tooltipX: number;\n //设置最宽尺寸\n const maxWidth = Math.min(containerWidth * 0.8, width * 4);\n rootElement.style.maxWidth = `${maxWidth}px`;\n //计算弹出框的宽度\n const rootElementWidth = rootElement.clientWidth; //Math.min(Math.max(rootElement.clientWidth, width), maxWidth);\n const rootElementHeight = rootElement.clientHeight;\n // this._triangleElement.setAttribute('style', '');\n const triangleHeight = arrowMark ? 6 : 0;\n if (position) {\n tooltipX = position.x;\n tooltipY = position.y + triangleHeight;\n this._triangleElement.style.left = '50%';\n this._triangleElement.style.marginLeft = '-5px';\n this._triangleElement.style.top = '-5px';\n } else if (referencePosition) {\n let placement = referencePosition.placement ?? Placement.bottom;\n const referenceXMiddle = referencePosition.rect.left + referencePosition.rect.width / 2 + (table as any).tableX;\n const referenceYMiddle = referencePosition.rect.top + referencePosition.rect.height / 2 + (table as any).tableY;\n const referenceTop = referencePosition.rect.top + (table as any).tableY;\n const referenceBottom = referencePosition.rect.bottom + (table as any).tableY;\n const referenceLeft = referencePosition.rect.left + (table as any).tableX;\n const referenceRight = referencePosition.rect.right + (table as any).tableX;\n\n let callCount = 0;\n /** 根据placement计算弹出框的位置 躲避策略[dom的这块先去除 dom可以超出显示]:根据顺时针方向依次检测placement */\n const adjustPosition = () => {\n callCount++;\n if (callCount >= 4) {\n return;\n }\n this.removeStyleFromTriangle();\n if (placement === Placement.top) {\n tooltipX = referenceXMiddle - rootElementWidth / 2;\n tooltipY = referenceTop - rootElementHeight - triangleHeight;\n this._triangleElement.style.left = '50%';\n this._triangleElement.style.marginLeft = '-5px';\n this._triangleElement.style.bottom = '-5px';\n\n // 判断如果超出左右范围则靠边显示\n if (confine && tooltipY < 0) {\n placement = Placement.right;\n adjustPosition();\n }\n } else if (placement === Placement.bottom) {\n tooltipX = referenceXMiddle - rootElementWidth / 2;\n tooltipY = referenceBottom + triangleHeight;\n this._triangleElement.style.left = '50%';\n this._triangleElement.style.marginLeft = '-5px';\n this._triangleElement.style.top = '-5px';\n if (confine && tooltipY + rootElementHeight > containerHeight) {\n placement = Placement.left;\n adjustPosition();\n }\n } else if (placement === Placement.left) {\n tooltipY = referenceYMiddle - rootElementHeight / 2;\n tooltipX = referenceLeft - rootElementWidth - triangleHeight;\n this._triangleElement.style.top = '50%';\n this._triangleElement.style.marginTop = '-5px';\n this._triangleElement.style.right = '-5px';\n if (confine && tooltipX < 0) {\n placement = Placement.top;\n adjustPosition();\n }\n } else if (placement === Placement.right) {\n tooltipY = referenceYMiddle - rootElementHeight / 2;\n tooltipX = referenceRight + triangleHeight;\n this._triangleElement.style.top = '50%';\n this._triangleElement.style.marginTop = '-5px';\n this._triangleElement.style.left = '-5px';\n if (confine && tooltipX + rootElementWidth > containerWidth) {\n placement = Placement.bottom;\n adjustPosition();\n }\n }\n };\n adjustPosition();\n }\n // 判断如果超出左右范围则靠边显示\n if (confine) {\n if (tooltipX < 0) {\n tooltipX = 0;\n } else if (tooltipX + rootElement.offsetWidth > containerWidth) {\n tooltipX = containerWidth - rootElement.offsetWidth;\n }\n }\n return {\n x: tooltipX,\n y: tooltipY\n };\n }\n private removeStyleFromTriangle() {\n this._triangleElement.style.left = '';\n this._triangleElement.style.right = '';\n this._triangleElement.style.top = '';\n this._triangleElement.style.bottom = '';\n this._triangleElement.style.marginLeft = '';\n this._triangleElement.style.marginTop = '';\n }\n _locate(\n table: BaseTableAPI,\n col: number,\n row: number,\n position?: { x: number; y: number },\n referencePosition?: {\n rect: RectProps;\n placement?: Placement;\n },\n confine?: boolean\n ) {\n const tooltipPosition = this.getComputedPosition(table, col, row, position, referencePosition, confine);\n const tooltipX = tooltipPosition.x;\n const tooltipY = tooltipPosition.y;\n this._rootElement.style.left = `${tooltipX}px`;\n this._rootElement.style.top = `${tooltipY}px`;\n }\n}\n"]}
@@ -73,8 +73,8 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
73
73
  set defaultHeaderRowHeight(defaultHeaderRowHeight: number | number[]);
74
74
  get defaultColWidth(): number;
75
75
  set defaultColWidth(defaultColWidth: number);
76
- get defaultHeaderColWidth(): number | number[];
77
- set defaultHeaderColWidth(defaultHeaderColWidth: number | number[]);
76
+ get defaultHeaderColWidth(): (number | 'auto') | (number | 'auto')[];
77
+ set defaultHeaderColWidth(defaultHeaderColWidth: (number | 'auto') | (number | 'auto')[]);
78
78
  get colWidthsMap(): NumberMap<string | number>;
79
79
  set colWidthsMap(colWidthsMap: NumberMap<string | number>);
80
80
  get colContentWidthsMap(): NumberMap<string | number>;
@@ -106,7 +106,6 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
106
106
  get autoFillWidth(): boolean;
107
107
  set autoFillWidth(autoFillWidth: boolean);
108
108
  private _colWidthDefineToPxWidth;
109
- private _calculateAutoColWidthExpr;
110
109
  private _getColWidthLimits;
111
110
  private _adjustColWidth;
112
111
  setPixelRatio(pixelRatio: number): void;
@@ -160,7 +159,7 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
160
159
  getCellAt(absoluteX: number, absoluteY: number): CellAddress;
161
160
  _checkRowCol(col: number, row: number): boolean;
162
161
  _makeVisibleCell(col: number, row: number): void;
163
- invalidate(): void;
162
+ render(): void;
164
163
  _toRelativeRect(absoluteRect: Rect): Rect;
165
164
  getVisibleRect(): Rect;
166
165
  get visibleRowCount(): number;
@@ -174,10 +173,11 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
174
173
  setScrollLeft(num: number): void;
175
174
  setScrollTop(num: number): void;
176
175
  getCellOverflowText(col: number, row: number): string | null;
177
- addDisposable(disposable: {
178
- dispose: () => void;
176
+ addReleaseObj(releaseObj: {
177
+ release: () => void;
179
178
  }): void;
180
- dispose(): void;
179
+ private dispose;
180
+ release(): void;
181
181
  fireListeners<TYPE extends keyof TableEventHandlersEventArgumentMap>(type: TYPE, event: TableEventHandlersEventArgumentMap[TYPE]): TableEventHandlersReturnMap[TYPE][];
182
182
  updateOption(options: BaseTableConstructorOptions): void;
183
183
  getFrozenRowsHeight(): number;
@@ -291,4 +291,5 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
291
291
  getCustomRender(col: number, row: number): ICustomRender;
292
292
  getCustomLayout(col: number, row: number): ICustomLayout;
293
293
  hasAutoImageColumn(): ColumnData;
294
+ _getActiveChartInstance(): any;
294
295
  }
@@ -46,8 +46,8 @@ class BaseTable extends EventTarget_1.EventTarget {
46
46
  constructor(options = {}) {
47
47
  var _a, _b, _c, _d, _e, _f, _g;
48
48
  super(), this.showFrozenIcon = !0, this.showSort = !0, this.bottomFrozenRowCount = 0,
49
- this.rightFrozenColCount = 0, this.version = "0.9.3-alpha.4", this.id = `VTable${Date.now()}`,
50
- this.throttleInvalidate = (0, util_1.throttle2)(this.invalidate.bind(this), 200);
49
+ this.rightFrozenColCount = 0, this.version = "0.9.3-alpha.5", this.id = `VTable${Date.now()}`,
50
+ this.throttleInvalidate = (0, util_1.throttle2)(this.render.bind(this), 200);
51
51
  const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth, widthMode: widthMode = "standard", heightMode: heightMode = "standard", autoFillWidth: autoFillWidth = !1, keyboardOptions: keyboardOptions, parentElement: parentElement, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, customRender: customRender, pixelRatio: pixelRatio = pixel_ratio_1.defaultPixelRatio} = options;
52
52
  this.options = options, this._widthMode = widthMode, this._heightMode = heightMode,
53
53
  this._autoFillWidth = autoFillWidth, this.customRender = customRender, this.padding = {
@@ -245,43 +245,7 @@ class BaseTable extends EventTarget_1.EventTarget {
245
245
  autoFillWidth !== this._autoFillWidth && (this._autoFillWidth = autoFillWidth);
246
246
  }
247
247
  _colWidthDefineToPxWidth(width) {
248
- return (0, tableHelper_1.isAutoDefine)(width) ? (0, tableHelper_1._toPxWidth)(this, this._calculateAutoColWidthExpr()) : (0,
249
- tableHelper_1._toPxWidth)(this, width);
250
- }
251
- _calculateAutoColWidthExpr() {
252
- const fullWidth = this.internalProps.calcWidthContext.full;
253
- let sumMin = 0;
254
- const others = [];
255
- let autoCount = 0;
256
- const hasLimitsOnAuto = [];
257
- for (let col = 0; col < this.internalProps.colCount; col++) {
258
- const def = this.getColWidthDefine(col), limits = this._getColWidthLimits(col);
259
- if ((0, tableHelper_1.isAutoDefine)(def)) limits && (hasLimitsOnAuto.push(limits),
260
- limits.min && (sumMin += limits.min)), autoCount++; else {
261
- let expr = def;
262
- if (limits) {
263
- const orgWidth = (0, tableHelper_1._toPxWidth)(this, expr), newWidth = (0, tableHelper_1._applyColWidthLimits)(limits, orgWidth);
264
- orgWidth !== newWidth && (expr = `${newWidth}px`), sumMin += newWidth;
265
- }
266
- others.push(expr);
267
- }
268
- if (sumMin > fullWidth) return "0px";
269
- }
270
- if (hasLimitsOnAuto.length && others.length) {
271
- const autoPx = (fullWidth - (0, tableHelper_1._toPxWidth)(this, `calc(${others.map((c => "number" == typeof c ? `${c}px` : c)).join(" + ")})`)) / autoCount;
272
- if (hasLimitsOnAuto.forEach((limits => {
273
- limits.min && autoPx < limits.min ? (others.push(limits.minDef), autoCount--) : limits.max && limits.max < autoPx && (others.push(limits.maxDef),
274
- autoCount--);
275
- })), autoCount <= 0) return `${autoPx}px`;
276
- }
277
- if (others.length) {
278
- const strDefs = [];
279
- let num = 0;
280
- return others.forEach((c => {
281
- "number" == typeof c ? num += c : strDefs.push(c);
282
- })), strDefs.push(`${num}px`), `calc((100% - (${strDefs.join(" + ")})) / ${autoCount})`;
283
- }
284
- return 100 / autoCount + "%";
248
+ return "auto" === width ? 0 : (0, tableHelper_1._toPxWidth)(this, width);
285
249
  }
286
250
  _getColWidthLimits(col) {
287
251
  const limit = this.colWidthsLimit[col];
@@ -329,7 +293,6 @@ class BaseTable extends EventTarget_1.EventTarget {
329
293
  widths.forEach(((value, index) => this.setColWidth(index, value)));
330
294
  }
331
295
  getColsWidth(startCol, endCol) {
332
- var _a, _b;
333
296
  endCol = Math.min(endCol, this.colCount - 1);
334
297
  const cachedColWidth = this._colRangeWidthsMap.get(`$${startCol}$${endCol}`);
335
298
  if (null != cachedColWidth) return cachedColWidth;
@@ -337,16 +300,15 @@ class BaseTable extends EventTarget_1.EventTarget {
337
300
  if (null != cachedLowerColWidth) {
338
301
  const width = this.colWidthsMap.get(endCol);
339
302
  let adjustW;
340
- adjustW = width ? "adaptive" === this.widthMode || this.transpose ? Number(width) : this._adjustColWidth(endCol, this._colWidthDefineToPxWidth(width)) : this.isRowHeader(endCol, 0) || this.isCornerHeader(endCol, 0) ? Array.isArray(this.defaultHeaderColWidth) ? null !== (_a = this.defaultHeaderColWidth[endCol]) && void 0 !== _a ? _a : this.internalProps.defaultColWidth : this.defaultHeaderColWidth : this.internalProps.defaultColWidth;
303
+ adjustW = width ? "adaptive" === this.widthMode || this.transpose ? Number(width) : this._adjustColWidth(endCol, this._colWidthDefineToPxWidth(width)) : this.getColWidth(endCol);
341
304
  const addWidth = cachedLowerColWidth + adjustW;
342
305
  return startCol >= 0 && endCol >= 0 && !Number.isNaN(addWidth) && this._colRangeWidthsMap.set(`$${startCol}$${endCol}`, Math.round(addWidth)),
343
306
  Math.round(addWidth);
344
307
  }
345
308
  let w = 0;
346
- for (let col = startCol; col <= endCol; col++) w += this.isRowHeader(col, 0) || this.isCornerHeader(col, 0) ? Array.isArray(this.defaultHeaderColWidth) ? null !== (_b = this.defaultHeaderColWidth[col]) && void 0 !== _b ? _b : this.internalProps.defaultColWidth : this.defaultHeaderColWidth : this.internalProps.defaultColWidth;
309
+ for (let col = startCol; col <= endCol; col++) w += this.getColWidth(col);
347
310
  this.colWidthsMap.each(startCol, endCol, ((width, col) => {
348
- var _a;
349
- w += ("adaptive" === this.widthMode || this.transpose ? Number(width) : this._adjustColWidth(col, this._colWidthDefineToPxWidth(width))) - (this.isRowHeader(col, 0) || this.isCornerHeader(col, 0) ? Array.isArray(this.defaultHeaderColWidth) ? null !== (_a = this.defaultHeaderColWidth[col]) && void 0 !== _a ? _a : this.internalProps.defaultColWidth : this.defaultHeaderColWidth : this.internalProps.defaultColWidth);
311
+ w += ("adaptive" === this.widthMode || this.transpose ? Number(width) : this._adjustColWidth(col, this._colWidthDefineToPxWidth(width))) - this.getColWidth(col);
350
312
  }));
351
313
  for (let col = startCol; col <= endCol; col++) {
352
314
  if (this.colWidthsMap.has(col)) continue;
@@ -581,7 +543,7 @@ class BaseTable extends EventTarget_1.EventTarget {
581
543
  isFrozenCell && isFrozenCell.row || this.getRowsHeight(0, this.frozenRowCount - 1) + rect.height > this.canvas.height || (rect.top < visibleRect.top ? this.scrollTop -= visibleRect.top - rect.top : visibleRect.bottom < rect.bottom && (this.scrollTop -= visibleRect.bottom - rect.bottom));
582
544
  }
583
545
  }
584
- invalidate() {
546
+ render() {
585
547
  this.scenegraph.renderSceneGraph();
586
548
  }
587
549
  _toRelativeRect(absoluteRect) {
@@ -645,22 +607,25 @@ class BaseTable extends EventTarget_1.EventTarget {
645
607
  getCellOverflowText(col, row) {
646
608
  return this.scenegraph.getCellOverflowText(col, row);
647
609
  }
648
- addDisposable(disposable) {
649
- if (!disposable || !disposable.dispose || "function" != typeof disposable.dispose) throw new Error("not disposable!");
650
- (this.internalProps.disposables = this.internalProps.disposables || []).push(disposable);
610
+ addReleaseObj(releaseObj) {
611
+ if (!releaseObj || !releaseObj.release || "function" != typeof releaseObj.release) throw new Error("not releaseObj!");
612
+ (this.internalProps.releaseList = this.internalProps.releaseList || []).push(releaseObj);
651
613
  }
652
614
  dispose() {
615
+ this.release();
616
+ }
617
+ release() {
653
618
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
654
619
  const internalProps = this.internalProps;
655
- null === (_b = null === (_a = internalProps.tooltipHandler) || void 0 === _a ? void 0 : _a.dispose) || void 0 === _b || _b.call(_a),
656
- null === (_d = null === (_c = internalProps.menuHandler) || void 0 === _c ? void 0 : _c.dispose) || void 0 === _d || _d.call(_c),
657
- icons_1.IconCache.clearAll(), null === (_e = super.dispose) || void 0 === _e || _e.call(this),
658
- null === (_g = null === (_f = internalProps.handler) || void 0 === _f ? void 0 : _f.dispose) || void 0 === _g || _g.call(_f),
659
- null === (_j = null === (_h = internalProps.focusControl) || void 0 === _h ? void 0 : _h.dispose) || void 0 === _j || _j.call(_h),
660
- internalProps.disposables && (internalProps.disposables.forEach((disposable => {
620
+ null === (_b = null === (_a = internalProps.tooltipHandler) || void 0 === _a ? void 0 : _a.release) || void 0 === _b || _b.call(_a),
621
+ null === (_d = null === (_c = internalProps.menuHandler) || void 0 === _c ? void 0 : _c.release) || void 0 === _d || _d.call(_c),
622
+ icons_1.IconCache.clearAll(), null === (_e = super.release) || void 0 === _e || _e.call(this),
623
+ null === (_g = null === (_f = internalProps.handler) || void 0 === _f ? void 0 : _f.release) || void 0 === _g || _g.call(_f),
624
+ null === (_j = null === (_h = internalProps.focusControl) || void 0 === _h ? void 0 : _h.release) || void 0 === _j || _j.call(_h),
625
+ internalProps.releaseList && (internalProps.releaseList.forEach((releaseObj => {
661
626
  var _a;
662
- return null === (_a = null == disposable ? void 0 : disposable.dispose) || void 0 === _a ? void 0 : _a.call(disposable);
663
- })), internalProps.disposables = null), this.scenegraph.stage.release();
627
+ return null === (_a = null == releaseObj ? void 0 : releaseObj.release) || void 0 === _a ? void 0 : _a.call(releaseObj);
628
+ })), internalProps.releaseList = null), this.scenegraph.stage.release();
664
629
  const {parentElement: parentElement} = internalProps.element;
665
630
  parentElement && parentElement.removeChild(internalProps.element);
666
631
  }
@@ -692,9 +657,10 @@ class BaseTable extends EventTarget_1.EventTarget {
692
657
  internalProps.theme = themes_1.default.of(null !== (_a = options.theme) && void 0 !== _a ? _a : themes_1.default.DEFAULT),
693
658
  internalProps.autoWrapText = options.autoWrapText, internalProps.allowFrozenColCount = null !== (_b = options.allowFrozenColCount) && void 0 !== _b ? _b : internalProps.colCount,
694
659
  internalProps.limitMaxAutoWidth = null !== (_c = options.limitMaxAutoWidth) && void 0 !== _c ? _c : 450,
695
- this.dataSet = new vdataset_1.DataSet, this.scenegraph.clearCells(), this.stateManeger.initState(),
696
- this._updateSize(), null === (_d = this.internalProps.legends) || void 0 === _d || _d.dispose(),
697
- null === (_e = this.internalProps.title) || void 0 === _e || _e.dispose(), options.legends && (internalProps.legends = new legend_1.TableLegend(options.legends, this),
660
+ this.dataSet = new vdataset_1.DataSet, null === (_d = internalProps.legends) || void 0 === _d || _d.release(),
661
+ null === (_e = internalProps.title) || void 0 === _e || _e.release(), internalProps.layoutMap.release(),
662
+ this.scenegraph.clearCells(), this.stateManeger.initState(), this._updateSize(),
663
+ options.legends && (internalProps.legends = new legend_1.TableLegend(options.legends, this),
698
664
  this.scenegraph.tableGroup.setAttributes({
699
665
  x: this.tableX,
700
666
  y: this.tableY
@@ -867,7 +833,7 @@ class BaseTable extends EventTarget_1.EventTarget {
867
833
  this.pagerConf && ("number" == typeof cof.currentPage && cof.currentPage >= 0 && (this.pagerConf.currentPage = cof.currentPage),
868
834
  cof.perPageCount && (this.pagerConf.perPageCount = cof.perPageCount || this.pagerConf.perPageCount),
869
835
  this.scenegraph.clearCells(), this.dataSource.updatePager(this.pagerConf), this.refreshRowColCount(),
870
- this.scenegraph.createSceneGraph(), this.invalidate());
836
+ this.scenegraph.createSceneGraph(), this.render());
871
837
  }
872
838
  get allowFrozenColCount() {
873
839
  return this.internalProps.allowFrozenColCount;
@@ -886,7 +852,7 @@ class BaseTable extends EventTarget_1.EventTarget {
886
852
  }
887
853
  set dataSource(dataSource) {
888
854
  this.scenegraph.clearCells(), (0, tableHelper_1._setDataSource)(this, dataSource),
889
- this.refreshRowColCount(), this.scenegraph.createSceneGraph(), this.invalidate();
855
+ this.refreshRowColCount(), this.scenegraph.createSceneGraph(), this.render();
890
856
  }
891
857
  get autoWrapText() {
892
858
  return this.internalProps.autoWrapText;
@@ -894,7 +860,7 @@ class BaseTable extends EventTarget_1.EventTarget {
894
860
  set autoWrapText(autoWrapText) {
895
861
  this.internalProps.autoWrapText !== autoWrapText && (this.internalProps.autoWrapText = autoWrapText,
896
862
  this.options.autoWrapText = autoWrapText, this.internalProps.layoutMap && (this.refreshHeader(),
897
- this.invalidate()));
863
+ this.render()));
898
864
  }
899
865
  get theme() {
900
866
  return this.internalProps.theme;
@@ -1002,7 +968,7 @@ class BaseTable extends EventTarget_1.EventTarget {
1002
968
  }
1003
969
  this.refreshRowColCount();
1004
970
  } else (0, tableHelper_1._setRecords)(this, records);
1005
- this.scenegraph.createSceneGraph(), this.invalidate(), console.log("setRecords cost time:", ("undefined" != typeof window ? window.performance.now() : 0) - time);
971
+ this.scenegraph.createSceneGraph(), this.render(), console.log("setRecords cost time:", ("undefined" != typeof window ? window.performance.now() : 0) - time);
1006
972
  }
1007
973
  setRecord(record, col, row) {
1008
974
  const index = this.getRecordIndexByRow(col, row);
@@ -1216,7 +1182,7 @@ class BaseTable extends EventTarget_1.EventTarget {
1216
1182
  const frozenHeight = this.getFrozenRowsHeight(), top = this.getRowsHeight(0, cellAddr.row - 1);
1217
1183
  this.scrollTop = Math.min(top - frozenHeight, this.getAllRowsHeight() - drawRange.height);
1218
1184
  }
1219
- this.invalidate();
1185
+ this.render();
1220
1186
  }
1221
1187
  getCopyValue() {
1222
1188
  const ranges = this.stateManeger.select.ranges;
@@ -1351,6 +1317,11 @@ class BaseTable extends EventTarget_1.EventTarget {
1351
1317
  hasAutoImageColumn() {
1352
1318
  return this.internalProps.layoutMap.columnObjects.find((column => !("image" !== column.columnType || !column.define.imageAutoSizing)));
1353
1319
  }
1320
+ _getActiveChartInstance() {
1321
+ var _a, _b, _c, _d, _e, _f;
1322
+ const cellGroup = this.scenegraph.getCell(null === (_b = null === (_a = this.stateManeger.hover) || void 0 === _a ? void 0 : _a.cellPos) || void 0 === _b ? void 0 : _b.col, null === (_d = null === (_c = this.stateManeger.hover) || void 0 === _c ? void 0 : _c.cellPos) || void 0 === _d ? void 0 : _d.row);
1323
+ return "chart" === (null === (_f = null === (_e = null == cellGroup ? void 0 : cellGroup.getChildren()) || void 0 === _e ? void 0 : _e[0]) || void 0 === _f ? void 0 : _f.type) ? cellGroup.getChildren()[0].activeChartInstance : null;
1324
+ }
1354
1325
  }
1355
1326
 
1356
1327
  exports.BaseTable = BaseTable;