@visactor/vtable 0.15.0 → 0.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/cjs/ListTable.d.ts +1 -0
  2. package/cjs/ListTable.js +32 -14
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.js +25 -14
  5. package/cjs/PivotChart.js.map +1 -1
  6. package/cjs/PivotTable.js +15 -7
  7. package/cjs/PivotTable.js.map +1 -1
  8. package/cjs/components/menu/dom/logic/MenuElement.js +5 -5
  9. package/cjs/components/menu/dom/logic/MenuElement.js.map +1 -1
  10. package/cjs/components/tooltip/TooltipHandler.js +3 -3
  11. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  12. package/cjs/components/tooltip/logic/BubbleTooltipElement.js +2 -2
  13. package/cjs/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  14. package/cjs/core/BaseTable.d.ts +7 -7
  15. package/cjs/core/BaseTable.js +52 -35
  16. package/cjs/core/BaseTable.js.map +1 -1
  17. package/cjs/event/drill.js +3 -3
  18. package/cjs/event/drill.js.map +1 -1
  19. package/cjs/event/event.d.ts +1 -1
  20. package/cjs/event/event.js +19 -19
  21. package/cjs/event/event.js.map +1 -1
  22. package/cjs/event/listener/container-dom.d.ts +2 -2
  23. package/cjs/event/listener/container-dom.js +6 -7
  24. package/cjs/event/listener/container-dom.js.map +1 -1
  25. package/cjs/event/listener/scroll-bar.d.ts +2 -2
  26. package/cjs/event/listener/scroll-bar.js +16 -16
  27. package/cjs/event/listener/scroll-bar.js.map +1 -1
  28. package/cjs/event/listener/table-group.d.ts +3 -3
  29. package/cjs/event/listener/table-group.js +77 -67
  30. package/cjs/event/listener/table-group.js.map +1 -1
  31. package/cjs/event/listener/touch.d.ts +2 -2
  32. package/cjs/event/listener/touch.js +23 -23
  33. package/cjs/event/listener/touch.js.map +1 -1
  34. package/cjs/event/pivot-chart/axis-click.js +1 -1
  35. package/cjs/event/pivot-chart/axis-click.js.map +1 -1
  36. package/cjs/event/scroll.d.ts +4 -4
  37. package/cjs/event/scroll.js.map +1 -1
  38. package/cjs/event/sparkline-event.js +3 -3
  39. package/cjs/event/sparkline-event.js.map +1 -1
  40. package/cjs/header-helper/header-helper.js +2 -2
  41. package/cjs/header-helper/header-helper.js.map +1 -1
  42. package/cjs/index.d.ts +1 -1
  43. package/cjs/index.js +1 -1
  44. package/cjs/index.js.map +1 -1
  45. package/cjs/layout/chart-helper/get-chart-spec.js +2 -6
  46. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  47. package/cjs/layout/pivot-header-layout.js +17 -7
  48. package/cjs/layout/pivot-header-layout.js.map +1 -1
  49. package/cjs/scenegraph/component/cell-mover.js +6 -6
  50. package/cjs/scenegraph/component/cell-mover.js.map +1 -1
  51. package/cjs/scenegraph/component/table-component.js +2 -2
  52. package/cjs/scenegraph/component/table-component.js.map +1 -1
  53. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js +12 -9
  54. package/cjs/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  55. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +1 -1
  56. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  57. package/cjs/scenegraph/group-creater/cell-helper.js +8 -7
  58. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  59. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +2 -2
  60. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  61. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js +7 -8
  62. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  63. package/cjs/scenegraph/group-creater/column-helper.js +3 -3
  64. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  65. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js +3 -3
  66. package/cjs/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  67. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +11 -4
  68. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  69. package/cjs/scenegraph/layout/auto-height.js +1 -1
  70. package/cjs/scenegraph/layout/auto-height.js.map +1 -1
  71. package/cjs/scenegraph/layout/compute-col-width.js +7 -3
  72. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  73. package/cjs/scenegraph/layout/compute-row-height.js +12 -8
  74. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  75. package/cjs/scenegraph/layout/move-cell.js +9 -3
  76. package/cjs/scenegraph/layout/move-cell.js.map +1 -1
  77. package/cjs/scenegraph/layout/update-height.js +1 -1
  78. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  79. package/cjs/scenegraph/layout/update-width.js +11 -7
  80. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  81. package/cjs/scenegraph/scenegraph.d.ts +1 -0
  82. package/cjs/scenegraph/scenegraph.js +20 -10
  83. package/cjs/scenegraph/scenegraph.js.map +1 -1
  84. package/cjs/scenegraph/utils/render-service.js +1 -1
  85. package/cjs/scenegraph/utils/render-service.js.map +1 -1
  86. package/cjs/state/cell-move/index.d.ts +4 -4
  87. package/cjs/state/cell-move/index.js +1 -1
  88. package/cjs/state/cell-move/index.js.map +1 -1
  89. package/cjs/state/frozen/index.js.map +1 -1
  90. package/cjs/state/hover/is-cell-hover.d.ts +2 -2
  91. package/cjs/state/hover/is-cell-hover.js +2 -2
  92. package/cjs/state/hover/is-cell-hover.js.map +1 -1
  93. package/cjs/state/hover/update-position.d.ts +2 -2
  94. package/cjs/state/hover/update-position.js.map +1 -1
  95. package/cjs/state/resize/update-resize-column.d.ts +2 -2
  96. package/cjs/state/resize/update-resize-column.js.map +1 -1
  97. package/cjs/state/select/update-position.d.ts +2 -2
  98. package/cjs/state/select/update-position.js +86 -88
  99. package/cjs/state/select/update-position.js.map +1 -1
  100. package/cjs/state/sort/index.js +2 -2
  101. package/cjs/state/sort/index.js.map +1 -1
  102. package/cjs/state/state.d.ts +1 -1
  103. package/cjs/state/state.js +8 -8
  104. package/cjs/state/state.js.map +1 -1
  105. package/cjs/themes/ARCO.js +1 -2
  106. package/cjs/themes/BRIGHT.js +2 -1
  107. package/cjs/tools/LimitPromiseQueue.js +1 -1
  108. package/cjs/tools/NumberMap.js +1 -1
  109. package/cjs/tools/util.js.map +1 -1
  110. package/cjs/ts-types/base-table.d.ts +6 -6
  111. package/cjs/ts-types/base-table.js +1 -1
  112. package/cjs/ts-types/base-table.js.map +1 -1
  113. package/cjs/ts-types/common.js +1 -1
  114. package/cjs/ts-types/events.d.ts +0 -1
  115. package/cjs/ts-types/events.js.map +1 -1
  116. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  117. package/dist/vtable.js +588 -420
  118. package/dist/vtable.min.js +2 -2
  119. package/es/ListTable.d.ts +1 -0
  120. package/es/ListTable.js +33 -14
  121. package/es/ListTable.js.map +1 -1
  122. package/es/PivotChart.js +26 -13
  123. package/es/PivotChart.js.map +1 -1
  124. package/es/PivotTable.js +17 -6
  125. package/es/PivotTable.js.map +1 -1
  126. package/es/components/menu/dom/logic/MenuElement.js +5 -5
  127. package/es/components/menu/dom/logic/MenuElement.js.map +1 -1
  128. package/es/components/tooltip/TooltipHandler.js +3 -3
  129. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  130. package/es/components/tooltip/logic/BubbleTooltipElement.js +2 -2
  131. package/es/components/tooltip/logic/BubbleTooltipElement.js.map +1 -1
  132. package/es/core/BaseTable.d.ts +7 -7
  133. package/es/core/BaseTable.js +55 -38
  134. package/es/core/BaseTable.js.map +1 -1
  135. package/es/event/drill.js +3 -3
  136. package/es/event/drill.js.map +1 -1
  137. package/es/event/event.d.ts +1 -1
  138. package/es/event/event.js +16 -16
  139. package/es/event/event.js.map +1 -1
  140. package/es/event/listener/container-dom.d.ts +2 -2
  141. package/es/event/listener/container-dom.js +6 -7
  142. package/es/event/listener/container-dom.js.map +1 -1
  143. package/es/event/listener/scroll-bar.d.ts +2 -2
  144. package/es/event/listener/scroll-bar.js +15 -15
  145. package/es/event/listener/scroll-bar.js.map +1 -1
  146. package/es/event/listener/table-group.d.ts +3 -3
  147. package/es/event/listener/table-group.js +77 -66
  148. package/es/event/listener/table-group.js.map +1 -1
  149. package/es/event/listener/touch.d.ts +2 -2
  150. package/es/event/listener/touch.js +21 -21
  151. package/es/event/listener/touch.js.map +1 -1
  152. package/es/event/pivot-chart/axis-click.js +1 -1
  153. package/es/event/pivot-chart/axis-click.js.map +1 -1
  154. package/es/event/scroll.d.ts +4 -4
  155. package/es/event/scroll.js.map +1 -1
  156. package/es/event/sparkline-event.js +3 -3
  157. package/es/event/sparkline-event.js.map +1 -1
  158. package/es/header-helper/header-helper.js +1 -1
  159. package/es/header-helper/header-helper.js.map +1 -1
  160. package/es/index.d.ts +1 -1
  161. package/es/index.js +1 -1
  162. package/es/index.js.map +1 -1
  163. package/es/layout/chart-helper/get-chart-spec.js +2 -6
  164. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  165. package/es/layout/pivot-header-layout.js +17 -7
  166. package/es/layout/pivot-header-layout.js.map +1 -1
  167. package/es/scenegraph/component/cell-mover.js +6 -6
  168. package/es/scenegraph/component/cell-mover.js.map +1 -1
  169. package/es/scenegraph/component/table-component.js +2 -2
  170. package/es/scenegraph/component/table-component.js.map +1 -1
  171. package/es/scenegraph/graphic/contributions/chart-render-helper.js +12 -9
  172. package/es/scenegraph/graphic/contributions/chart-render-helper.js.map +1 -1
  173. package/es/scenegraph/graphic/contributions/group-contribution-render.js +1 -1
  174. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  175. package/es/scenegraph/group-creater/cell-helper.js +7 -7
  176. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  177. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +2 -2
  178. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  179. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js +7 -6
  180. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  181. package/es/scenegraph/group-creater/column-helper.js +3 -3
  182. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  183. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js +3 -3
  184. package/es/scenegraph/group-creater/progress/create-group-for-first-screen.js.map +1 -1
  185. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +11 -4
  186. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  187. package/es/scenegraph/layout/auto-height.js +1 -1
  188. package/es/scenegraph/layout/auto-height.js.map +1 -1
  189. package/es/scenegraph/layout/compute-col-width.js +7 -3
  190. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  191. package/es/scenegraph/layout/compute-row-height.js +12 -8
  192. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  193. package/es/scenegraph/layout/move-cell.js +9 -3
  194. package/es/scenegraph/layout/move-cell.js.map +1 -1
  195. package/es/scenegraph/layout/update-height.js +1 -1
  196. package/es/scenegraph/layout/update-height.js.map +1 -1
  197. package/es/scenegraph/layout/update-width.js +11 -7
  198. package/es/scenegraph/layout/update-width.js.map +1 -1
  199. package/es/scenegraph/scenegraph.d.ts +1 -0
  200. package/es/scenegraph/scenegraph.js +20 -10
  201. package/es/scenegraph/scenegraph.js.map +1 -1
  202. package/es/scenegraph/utils/render-service.js +1 -1
  203. package/es/scenegraph/utils/render-service.js.map +1 -1
  204. package/es/state/cell-move/index.d.ts +4 -4
  205. package/es/state/cell-move/index.js +1 -1
  206. package/es/state/cell-move/index.js.map +1 -1
  207. package/es/state/frozen/index.js.map +1 -1
  208. package/es/state/hover/is-cell-hover.d.ts +2 -2
  209. package/es/state/hover/is-cell-hover.js +2 -2
  210. package/es/state/hover/is-cell-hover.js.map +1 -1
  211. package/es/state/hover/update-position.d.ts +2 -2
  212. package/es/state/hover/update-position.js.map +1 -1
  213. package/es/state/resize/update-resize-column.d.ts +2 -2
  214. package/es/state/resize/update-resize-column.js.map +1 -1
  215. package/es/state/select/update-position.d.ts +2 -2
  216. package/es/state/select/update-position.js +86 -88
  217. package/es/state/select/update-position.js.map +1 -1
  218. package/es/state/sort/index.js +2 -2
  219. package/es/state/sort/index.js.map +1 -1
  220. package/es/state/state.d.ts +1 -1
  221. package/es/state/state.js +6 -6
  222. package/es/state/state.js.map +1 -1
  223. package/es/themes/ARCO.js +1 -2
  224. package/es/themes/BRIGHT.js +2 -1
  225. package/es/tools/LimitPromiseQueue.js +1 -1
  226. package/es/tools/NumberMap.js +1 -1
  227. package/es/tools/util.js.map +1 -1
  228. package/es/ts-types/base-table.d.ts +6 -6
  229. package/es/ts-types/base-table.js +1 -1
  230. package/es/ts-types/base-table.js.map +1 -1
  231. package/es/ts-types/common.js +1 -1
  232. package/es/ts-types/events.d.ts +0 -1
  233. package/es/ts-types/events.js.map +1 -1
  234. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  235. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/tooltip/TooltipHandler.ts"],"names":[],"mappings":";;;AACA,6CAA2C;AAE3C,uCAA0C;AAC1C,+CAAiD;AACjD,2CAA4C;AAG5C,kEAA+D;AAE/D,MAAM,wBAAwB,GAAG;IAI/B,gBAAgB,EAAE,UAAU,KAAmB;QAC7C,OAAO,IAAI,uBAAa,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;CACF,CAAC;AAOF,MAAa,cAAc;IAKzB,YAAY,KAAmB,EAAE,OAAgB;QAC/C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IACD,OAAO;;QACL,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAChD,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE;YAChC,MAAA,MAAA,gBAAgB,CAAC,CAAC,CAAC,0CAAE,OAAO,kDAAI,CAAC;SAClC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IACD,WAAW,CAAC,GAAW,EAAE,GAAW,EAAE,cAA+B;;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACxD,IAAI,IAAI,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE;YACrD,MAAA,IAAI,CAAC,QAAQ,0CAAE,oBAAoB,EAAE,CAAC;YACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;SACzB;QACD,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO;SACR;QAED,MAAM,MAAM,GAAG,QAAQ,IAAI,QAAQ,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/F,IAAI,MAAM,EAAE;YACV,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;SACxD;IACH,CAAC;IACD,KAAK,CAAC,GAAW,EAAE,GAAW,EAAE,cAA8B;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,oBAAW,EAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;YAC/C,OAAO;SACR;QACD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC;IACD,cAAc,CACZ,GAAW,EACX,GAAW,EACX,QAAmC,EACnC,iBAGC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,oBAAW,EAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE;YAC/C,OAAO;SACR;QACD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACpD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QACtE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;IACD,eAAe;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,oBAAoB,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IACD,WAAW,CAAC,GAAW,EAAE,GAAW;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;QAC9B,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAA,oBAAW,EAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;IACD,eAAe,CAAC,KAAmB;QAEjC,KAAK,CAAC,EAAE,CAAC,mCAAgB,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE;;YAE7C,IAAI,IAAA,eAAQ,GAAE,EAAE;gBACd,OAAO;aACR;YAED,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;YACpF,IACE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM;gBAC9B,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ;gBACvB,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ;gBACvB,CAAC,CAAC,CAAC,GAAG,IAAI;gBACV,CAAC,CAAC,CAAC,GAAG,KAAK;gBACX,CAAC,CAAC,CAAC,GAAG,GAAG;gBACT,CAAC,CAAC,CAAC,GAAG,MAAM,EACZ;gBACA,OAAO;aACR;YACD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,CAAC,OAAO,EAAE;gBACb,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;oBAC9B,OAAO;iBACR;aACF;YACD,IAAI,aAAa,CAAC;YAClB,MAAM,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC/D,IAAI,iBAAiB,EAAE;gBACrB,MAAM,IAAI,GAAG,KAAK,CAAC,wBAAwB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1D,aAAa,GAAG;oBACd,OAAO,EAAE,iBAAiB;oBAC1B,iBAAiB,EAAE;wBACjB,SAAS,EAAE,oBAAS,CAAC,MAAM;wBAC3B,IAAI;qBACL;oBACD,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;iBAC5B,CAAC;aACH;iBAAM,IAAI,MAAA,KAAK,CAAC,aAAa,CAAC,OAAO,0CAAE,yBAAyB,EAAE;gBACjE,MAAM,YAAY,GAAG,KAAK,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACzD,MAAM,IAAI,GAAG,KAAK,CAAC,wBAAwB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1D,IAAI,YAAY,EAAE;oBAChB,aAAa,GAAG;wBACd,OAAO,EAAE,iBAAiB;4BACxB,CAAC,CAAC,GAAG,iBAAiB;MAC9B,YAAY,EAAE;4BACN,CAAC,CAAC,YAAY;wBAChB,iBAAiB,EAAE;4BACjB,SAAS,EAAE,oBAAS,CAAC,MAAM;4BAC3B,IAAI;yBACL;wBACD,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;qBAC5B,CAAC;iBACH;aACF;YACD,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;aAC/C;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,mCAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE;;YAE5C,IAAI,IAAA,eAAQ,GAAE,EAAE;gBACd,OAAO;aACR;YACD,IAAI,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,cAAc,0CAAE,iBAAiB,EAAE;gBACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC;gBACnE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;gBACpB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACnD,MAAM,WAAW,GAAG,KAAK,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC/D,IACE,CAAC,CACC,WAAW,CAAC,OAAO;oBACnB,WAAW,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC;oBACzB,WAAW,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC;oBAC1B,WAAW,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;oBACxB,WAAW,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAC5B,EACD;oBAEA,IAAI,CAAC,eAAe,EAAE,CAAC;iBACxB;aACF;YAED,IAAI,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE;gBACtD,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,mCAAgB,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE;YAC7C,IAAI,CAAC,CAAC,OAAO,EAAE;gBACb,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBAClD,OAAO;iBACR;aACF;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,mCAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE;YAC3C,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE;gBAClC,IAAI,CAAC,eAAe,EAAE,CAAC;aACxB;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,mCAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE;YAC9C,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,EAAE,CAAC,mCAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;YAC9B,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,cAAc,MAAI,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,KAAK,CAAA,EAAE;gBAC9C,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;gBACtC,MAAM,IAAI,GAAG,KAAK,CAAC,wBAAwB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC1D,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC;gBAClD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;aAC7E;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,uBAAuB,CAAC,GAAW,EAAE,GAAW;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAKhD,MAAM,WAAW,GAAG,gBAAgB,CAAC;QAErC,MAAM,QAAQ,GACZ,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACnD,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvG,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,QAAQ,CAAC,cAA8B;;QACrC,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,MAAA,IAAI,CAAC,WAAW,0CAAE,cAAc,CAAC,EAAE;YACvF,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAnND,wCAmNC","file":"TooltipHandler.js","sourcesContent":["import type { CellRange, RectProps } from '../../ts-types';\nimport { Placement } from '../../ts-types';\nimport type { BaseTooltip } from './BaseTooltip';\nimport { BubbleTooltip } from './Tooltip';\nimport { cellInRange } from '../../tools/helper';\nimport { isMobile } from '../../tools/util';\n// import { DG_EVENT_TYPE } from '../core/DG_EVENT_TYPE';\nimport type { TooltipOptions } from '../../ts-types/tooltip';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nconst TOOLTIP_INSTANCE_FACTORY = {\n // tooltip(table: BaseTableAPI): BaseTooltip {\n // return new Tooltip(table);\n // },\n 'bubble-tooltip': function (table: BaseTableAPI): BaseTooltip {\n return new BubbleTooltip(table);\n }\n};\ntype AttachInfo = {\n instance?: BaseTooltip;\n range: CellRange;\n tooltipOptions: TooltipOptions;\n};\n\nexport class TooltipHandler {\n private _table: BaseTableAPI;\n private _tooltipInstances?: { [type: string]: BaseTooltip };\n private _attachInfo?: AttachInfo | null;\n private confine?: boolean; //弹出框是否需要限定在canvas区域\n constructor(table: BaseTableAPI, confine: boolean) {\n this._table = table;\n this._tooltipInstances = {};\n this._bindTableEvent(table);\n this.confine = confine;\n }\n release(): void {\n const tooltipInstances = this._tooltipInstances;\n for (const k in tooltipInstances) {\n tooltipInstances[k]?.release?.();\n }\n delete this._tooltipInstances;\n this._attachInfo = null;\n }\n _bindToCell(col: number, row: number, tooltipOptions?: TooltipOptions): void {\n const info = this._attachInfo;\n const instance = this._getTooltipInstanceInfo(col, row);\n if (info && (!instance || info.instance !== instance)) {\n info.instance?.unbindTooltipElement();\n this._attachInfo = null;\n }\n if (!instance) {\n return;\n }\n // const { instance, info: tooltipInstanceInfo } = instanceInfo;\n const attach = instance && instance.bindTooltipElement(col, row, tooltipOptions, this.confine);\n if (attach) {\n const range = this._table.getCellRange(col, row);\n this._attachInfo = { range, instance, tooltipOptions };\n }\n }\n _move(col: number, row: number, tooltipOptions: TooltipOptions): void {\n const info = this._attachInfo;\n if (!info || !cellInRange(info.range, col, row)) {\n return;\n }\n const { instance } = info;\n instance?.moveTooltipElement(col, row, tooltipOptions, this.confine);\n }\n moveToPosition(\n col: number,\n row: number,\n position?: { x: number; y: number },\n referencePosition?: {\n rect: RectProps;\n placement?: Placement;\n }\n ): void {\n const info = this._attachInfo;\n if (!info || !cellInRange(info.range, col, row)) {\n return;\n }\n const { instance } = info;\n this._attachInfo.tooltipOptions.position = position;\n this._attachInfo.tooltipOptions.referencePosition = referencePosition;\n instance?.locateTooltipElement(col, row, position, referencePosition, this.confine);\n }\n _unbindFromCell(): void {\n const info = this._attachInfo;\n if (!info) {\n return;\n }\n const { instance } = info;\n instance?.unbindTooltipElement();\n this._attachInfo = null;\n }\n _isBindCell(col: number, row: number): boolean {\n const info = this._attachInfo;\n if (!info) {\n return false;\n }\n return cellInRange(info.range, col, row);\n }\n _bindTableEvent(table: BaseTableAPI): void {\n // (table.options.hover?.isShowTooltip || table.options.tooltip?.isShowOverflowTextTooltip) &&\n table.on(TABLE_EVENT_TYPE.MOUSEENTER_CELL, e => {\n //移动端不监听mousemove事件 (修改移动端tooltip时加的isMobile判断)\n if (isMobile()) {\n return;\n }\n // dropDownMenu区域不响应\n const { x1: left, x2: right, y1: top, y2: bottom } = table.stateManeger.menu.bounds;\n if (\n table.stateManeger.menu.isShow &&\n typeof e.x === 'number' &&\n typeof e.y === 'number' &&\n e.x > left &&\n e.x < right &&\n e.y > top &&\n e.y < bottom\n ) {\n return;\n }\n const { col, row } = e;\n if (e.related) {\n if (this._isBindCell(col, row)) {\n return;\n }\n }\n let tooltipOption;\n const headerDescription = table.getHeaderDescription(col, row);\n if (headerDescription) {\n const rect = table.getCellRangeRelativeRect({ col, row });\n tooltipOption = {\n content: headerDescription,\n referencePosition: {\n placement: Placement.bottom,\n rect\n },\n style: { arrowMark: false }\n };\n } else if (table.internalProps.tooltip?.isShowOverflowTextTooltip) {\n const overflowText = table.getCellOverflowText(col, row);\n const rect = table.getCellRangeRelativeRect({ col, row });\n if (overflowText) {\n tooltipOption = {\n content: headerDescription\n ? `${headerDescription}\n ${overflowText}`\n : overflowText,\n referencePosition: {\n placement: Placement.bottom,\n rect\n },\n style: { arrowMark: false }\n };\n }\n }\n if (tooltipOption) {\n this._bindToCell(e.col, e.row, tooltipOption);\n }\n });\n table.on(TABLE_EVENT_TYPE.MOUSEMOVE_CELL, e => {\n //移动端不监听mousemove事件 (修改移动端tooltip时加的isMobile判断)\n if (isMobile()) {\n return;\n }\n if (this._attachInfo?.tooltipOptions?.referencePosition) {\n const position = this._attachInfo.tooltipOptions.referencePosition;\n const { event } = e;\n const { left, right, top, bottom } = position.rect;\n const abstractPos = table._getMouseAbstractPoint(event, false);\n if (\n !(\n abstractPos.inTable &&\n abstractPos.x >= left - 5 &&\n abstractPos.x <= right + 5 &&\n abstractPos.y >= top - 5 &&\n abstractPos.y <= bottom + 5\n )\n ) {\n // 这里加5px的判断buffer\n this._unbindFromCell();\n }\n }\n // dropDownMenu区域不响应\n if (this._attachInfo && table.stateManeger.menu.isShow) {\n this._bindToCell(e.col, e.row);\n }\n });\n table.on(TABLE_EVENT_TYPE.MOUSELEAVE_CELL, e => {\n if (e.related) {\n if (this._isBindCell(e.related.col, e.related.row)) {\n return;\n }\n }\n this._unbindFromCell();\n });\n table.on(TABLE_EVENT_TYPE.SELECTED_CELL, e => {\n if (this._isBindCell(e.col, e.row)) {\n this._unbindFromCell();\n }\n });\n table.on(TABLE_EVENT_TYPE.MOUSELEAVE_TABLE, e => {\n this._unbindFromCell();\n });\n table.on(TABLE_EVENT_TYPE.SCROLL, e => {\n const info = this._attachInfo;\n if (info?.tooltipOptions && info?.range?.start) {\n const { col, row } = info.range.start;\n const rect = table.getCellRangeRelativeRect({ col, row });\n info.tooltipOptions.referencePosition.rect = rect;\n this._move(info.range.start.col, info.range.start.row, info.tooltipOptions);\n }\n });\n }\n _getTooltipInstanceInfo(col: number, row: number): BaseTooltip | null {\n const table = this._table;\n const tooltipInstances = this._tooltipInstances;\n // const info = getTooltipInstanceInfo(table, col, row, tooltipOptions);\n // if (!info) {\n // return null;\n // }\n const tooltipType = 'bubble-tooltip';\n // const { tooltipType } = info;\n const instance =\n (tooltipInstances && tooltipInstances[tooltipType]) ||\n (tooltipInstances && (tooltipInstances[tooltipType] = TOOLTIP_INSTANCE_FACTORY[tooltipType](table)));\n return instance;\n }\n isBinded(tooltipOptions: TooltipOptions) {\n if (JSON.stringify(tooltipOptions) === JSON.stringify(this._attachInfo?.tooltipOptions)) {\n return true;\n }\n return false;\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/components/tooltip/TooltipHandler.ts"],"names":[],"mappings":"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","file":"TooltipHandler.js","sourcesContent":["import type { CellRange, RectProps } from '../../ts-types';\nimport { Placement } from '../../ts-types';\nimport type { BaseTooltip } from './BaseTooltip';\nimport { BubbleTooltip } from './Tooltip';\nimport { cellInRange } from '../../tools/helper';\nimport { isMobile } from '../../tools/util';\n// import { DG_EVENT_TYPE } from '../core/DG_EVENT_TYPE';\nimport type { TooltipOptions } from '../../ts-types/tooltip';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nconst TOOLTIP_INSTANCE_FACTORY = {\n // tooltip(table: BaseTableAPI): BaseTooltip {\n // return new Tooltip(table);\n // },\n 'bubble-tooltip': function (table: BaseTableAPI): BaseTooltip {\n return new BubbleTooltip(table);\n }\n};\ntype AttachInfo = {\n instance?: BaseTooltip;\n range: CellRange;\n tooltipOptions: TooltipOptions;\n};\n\nexport class TooltipHandler {\n private _table: BaseTableAPI;\n private _tooltipInstances?: { [type: string]: BaseTooltip };\n private _attachInfo?: AttachInfo | null;\n private confine?: boolean; //弹出框是否需要限定在canvas区域\n constructor(table: BaseTableAPI, confine: boolean) {\n this._table = table;\n this._tooltipInstances = {};\n this._bindTableEvent(table);\n this.confine = confine;\n }\n release(): void {\n const tooltipInstances = this._tooltipInstances;\n for (const k in tooltipInstances) {\n tooltipInstances[k]?.release?.();\n }\n delete this._tooltipInstances;\n this._attachInfo = null;\n }\n _bindToCell(col: number, row: number, tooltipOptions?: TooltipOptions): void {\n const info = this._attachInfo;\n const instance = this._getTooltipInstanceInfo(col, row);\n if (info && (!instance || info.instance !== instance)) {\n info.instance?.unbindTooltipElement();\n this._attachInfo = null;\n }\n if (!instance) {\n return;\n }\n // const { instance, info: tooltipInstanceInfo } = instanceInfo;\n const attach = instance && instance.bindTooltipElement(col, row, tooltipOptions, this.confine);\n if (attach) {\n const range = this._table.getCellRange(col, row);\n this._attachInfo = { range, instance, tooltipOptions };\n }\n }\n _move(col: number, row: number, tooltipOptions: TooltipOptions): void {\n const info = this._attachInfo;\n if (!info || !cellInRange(info.range, col, row)) {\n return;\n }\n const { instance } = info;\n instance?.moveTooltipElement(col, row, tooltipOptions, this.confine);\n }\n moveToPosition(\n col: number,\n row: number,\n position?: { x: number; y: number },\n referencePosition?: {\n rect: RectProps;\n placement?: Placement;\n }\n ): void {\n const info = this._attachInfo;\n if (!info || !cellInRange(info.range, col, row)) {\n return;\n }\n const { instance } = info;\n this._attachInfo.tooltipOptions.position = position;\n this._attachInfo.tooltipOptions.referencePosition = referencePosition;\n instance?.locateTooltipElement(col, row, position, referencePosition, this.confine);\n }\n _unbindFromCell(): void {\n const info = this._attachInfo;\n if (!info) {\n return;\n }\n const { instance } = info;\n instance?.unbindTooltipElement();\n this._attachInfo = null;\n }\n _isBindCell(col: number, row: number): boolean {\n const info = this._attachInfo;\n if (!info) {\n return false;\n }\n return cellInRange(info.range, col, row);\n }\n _bindTableEvent(table: BaseTableAPI): void {\n // (table.options.hover?.isShowTooltip || table.options.tooltip?.isShowOverflowTextTooltip) &&\n table.on(TABLE_EVENT_TYPE.MOUSEENTER_CELL, e => {\n //移动端不监听mousemove事件 (修改移动端tooltip时加的isMobile判断)\n if (isMobile()) {\n return;\n }\n // dropDownMenu区域不响应\n const { x1: left, x2: right, y1: top, y2: bottom } = table.stateManager.menu.bounds;\n if (\n table.stateManager.menu.isShow &&\n typeof e.x === 'number' &&\n typeof e.y === 'number' &&\n e.x > left &&\n e.x < right &&\n e.y > top &&\n e.y < bottom\n ) {\n return;\n }\n const { col, row } = e;\n if (e.related) {\n if (this._isBindCell(col, row)) {\n return;\n }\n }\n let tooltipOption;\n const headerDescription = table.getHeaderDescription(col, row);\n if (headerDescription) {\n const rect = table.getCellRangeRelativeRect({ col, row });\n tooltipOption = {\n content: headerDescription,\n referencePosition: {\n placement: Placement.bottom,\n rect\n },\n style: { arrowMark: false }\n };\n } else if (table.internalProps.tooltip?.isShowOverflowTextTooltip) {\n const overflowText = table.getCellOverflowText(col, row);\n const rect = table.getCellRangeRelativeRect({ col, row });\n if (overflowText) {\n tooltipOption = {\n content: headerDescription\n ? `${headerDescription}\n ${overflowText}`\n : overflowText,\n referencePosition: {\n placement: Placement.bottom,\n rect\n },\n style: { arrowMark: false }\n };\n }\n }\n if (tooltipOption) {\n this._bindToCell(e.col, e.row, tooltipOption);\n }\n });\n table.on(TABLE_EVENT_TYPE.MOUSEMOVE_CELL, e => {\n //移动端不监听mousemove事件 (修改移动端tooltip时加的isMobile判断)\n if (isMobile()) {\n return;\n }\n if (this._attachInfo?.tooltipOptions?.referencePosition) {\n const position = this._attachInfo.tooltipOptions.referencePosition;\n const { event } = e;\n const { left, right, top, bottom } = position.rect;\n const abstractPos = table._getMouseAbstractPoint(event, false);\n if (\n !(\n abstractPos.inTable &&\n abstractPos.x >= left - 5 &&\n abstractPos.x <= right + 5 &&\n abstractPos.y >= top - 5 &&\n abstractPos.y <= bottom + 5\n )\n ) {\n // 这里加5px的判断buffer\n this._unbindFromCell();\n }\n }\n // dropDownMenu区域不响应\n if (this._attachInfo && table.stateManager.menu.isShow) {\n this._bindToCell(e.col, e.row);\n }\n });\n table.on(TABLE_EVENT_TYPE.MOUSELEAVE_CELL, e => {\n if (e.related) {\n if (this._isBindCell(e.related.col, e.related.row)) {\n return;\n }\n }\n this._unbindFromCell();\n });\n table.on(TABLE_EVENT_TYPE.SELECTED_CELL, e => {\n if (this._isBindCell(e.col, e.row)) {\n this._unbindFromCell();\n }\n });\n table.on(TABLE_EVENT_TYPE.MOUSELEAVE_TABLE, e => {\n this._unbindFromCell();\n });\n table.on(TABLE_EVENT_TYPE.SCROLL, e => {\n const info = this._attachInfo;\n if (info?.tooltipOptions && info?.range?.start) {\n const { col, row } = info.range.start;\n const rect = table.getCellRangeRelativeRect({ col, row });\n info.tooltipOptions.referencePosition.rect = rect;\n this._move(info.range.start.col, info.range.start.row, info.tooltipOptions);\n }\n });\n }\n _getTooltipInstanceInfo(col: number, row: number): BaseTooltip | null {\n const table = this._table;\n const tooltipInstances = this._tooltipInstances;\n // const info = getTooltipInstanceInfo(table, col, row, tooltipOptions);\n // if (!info) {\n // return null;\n // }\n const tooltipType = 'bubble-tooltip';\n // const { tooltipType } = info;\n const instance =\n (tooltipInstances && tooltipInstances[tooltipType]) ||\n (tooltipInstances && (tooltipInstances[tooltipType] = TOOLTIP_INSTANCE_FACTORY[tooltipType](table)));\n return instance;\n }\n isBinded(tooltipOptions: TooltipOptions) {\n if (JSON.stringify(tooltipOptions) === JSON.stringify(this._attachInfo?.tooltipOptions)) {\n return true;\n }\n return false;\n }\n}\n"]}
@@ -83,8 +83,8 @@ class BubbleTooltipElement {
83
83
  }
84
84
  rootElement.style.left = `${tooltipX}px`, rootElement.style.top = `${tooltipY}px`,
85
85
  (0, util_1.isMobile)() && (rootElement.style.fontSize = "11px");
86
- const {x1: menuLeft, x2: menuRight, y1: menuTop, y2: menuBottom} = table.stateManeger.menu.bounds, tooltipLeft = tooltipX, tooltipRight = tooltipLeft + rootElementWidth, tooltipTop = tooltipY, tooltipBottom = tooltipLeft + rootElementHeight;
87
- return !(table.stateManeger.menu.isShow && menuLeft < tooltipRight && menuRight > tooltipLeft && menuBottom > tooltipTop && menuTop < tooltipBottom);
86
+ const {x1: menuLeft, x2: menuRight, y1: menuTop, y2: menuBottom} = table.stateManager.menu.bounds, tooltipLeft = tooltipX, tooltipRight = tooltipLeft + rootElementWidth, tooltipTop = tooltipY, tooltipBottom = tooltipLeft + rootElementHeight;
87
+ return !(table.stateManager.menu.isShow && menuLeft < tooltipRight && menuRight > tooltipLeft && menuBottom > tooltipTop && menuTop < tooltipBottom);
88
88
  }
89
89
  return !1;
90
90
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/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?.fontSize &&\n (messageElement.style.fontSize = (tooltipInstanceInfo?.style?.fontSize ?? 12) + 'px');\n tooltipInstanceInfo?.style?.fontFamily &&\n (messageElement.style.fontFamily = tooltipInstanceInfo?.style?.fontFamily);\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, top } = 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\n if (table.isFrozenCell(col, row)) {\n return true;\n } else if (\n bottom < table.getFrozenRowsHeight() ||\n right < table.getFrozenColsWidth() ||\n left > table.tableNoFrameWidth - table.getRightFrozenColsWidth() ||\n top > table.tableNoFrameHeight - table.getBottomFrozenRowsHeight()\n ) {\n // 范围外\n return false;\n }\n const { offsetHeight, offsetWidth } = element;\n if (top > offsetHeight) {\n return false;\n }\n if (left > offsetWidth) {\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;\n const referenceYMiddle = referencePosition.rect.top + referencePosition.rect.height / 2;\n const referenceTop = referencePosition.rect.top;\n const referenceBottom = referencePosition.rect.bottom;\n const referenceLeft = referencePosition.rect.left;\n const referenceRight = referencePosition.rect.right;\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":["../src/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?.fontSize &&\n (messageElement.style.fontSize = (tooltipInstanceInfo?.style?.fontSize ?? 12) + 'px');\n tooltipInstanceInfo?.style?.fontFamily &&\n (messageElement.style.fontFamily = tooltipInstanceInfo?.style?.fontFamily);\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, top } = 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\n if (table.isFrozenCell(col, row)) {\n return true;\n } else if (\n bottom < table.getFrozenRowsHeight() ||\n right < table.getFrozenColsWidth() ||\n left > table.tableNoFrameWidth - table.getRightFrozenColsWidth() ||\n top > table.tableNoFrameHeight - table.getBottomFrozenRowsHeight()\n ) {\n // 范围外\n return false;\n }\n const { offsetHeight, offsetWidth } = element;\n if (top > offsetHeight) {\n return false;\n }\n if (left > offsetWidth) {\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.stateManager.menu.bounds;\n const tooltipLeft = tooltipX;\n const tooltipRight = tooltipLeft + rootElementWidth;\n const tooltipTop = tooltipY;\n const tooltipBottom = tooltipLeft + rootElementHeight;\n if (\n table.stateManager.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;\n const referenceYMiddle = referencePosition.rect.top + referencePosition.rect.height / 2;\n const referenceTop = referencePosition.rect.top;\n const referenceBottom = referencePosition.rect.bottom;\n const referenceLeft = referencePosition.rect.left;\n const referenceRight = referencePosition.rect.right;\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"]}
@@ -6,8 +6,8 @@ import { NumberMap } from '../tools/NumberMap';
6
6
  import { Rect } from '../tools/Rect';
7
7
  import type { TableTheme } from '../themes/theme';
8
8
  import { Scenegraph } from '../scenegraph/scenegraph';
9
- import { StateManeger } from '../state/state';
10
- import { EventManeger } from '../event/event';
9
+ import { StateManager } from '../state/state';
10
+ import { EventManager } from '../event/event';
11
11
  import type { CachedDataSource, DataSource } from '../data';
12
12
  import { type ITextSize } from '@visactor/vutils';
13
13
  import type { ColumnData, ColumnDefine, ColumnsDefine, IndicatorData } from '../ts-types/list-table/layout-map/api';
@@ -38,8 +38,8 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
38
38
  canvasHeight?: number;
39
39
  _vDataSet: DataSet;
40
40
  scenegraph: Scenegraph;
41
- stateManeger?: StateManeger;
42
- eventManeger?: EventManeger;
41
+ stateManager?: StateManager;
42
+ eventManager?: EventManager;
43
43
  _pixelRatio: number;
44
44
  static get EVENT_TYPE(): typeof TABLE_EVENT_TYPE;
45
45
  readonly options: BaseTableConstructorOptions;
@@ -117,16 +117,15 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
117
117
  setPixelRatio(pixelRatio: number): void;
118
118
  _updateSize(): void;
119
119
  get rowHierarchyType(): 'grid' | 'tree';
120
- setColWidths(widths: number[]): void;
121
120
  getColsWidth(startCol: number, endCol: number): number;
122
121
  getRowHeight(row: number): number;
123
122
  getDefaultRowHeight(row: number): number | "auto";
124
- setRowHeight(row: number, height: number, clearCache?: boolean): void;
123
+ _setRowHeight(row: number, height: number, clearCache?: boolean): void;
125
124
  getRowsHeight(startRow: number, endRow: number): number;
126
125
  getColWidthDefined(col: number): string | number;
127
126
  getColWidthDefinedNumber(col: number): number;
128
127
  getColWidth(col: number): number;
129
- setColWidth(col: number, width: string | number, clearCache?: boolean, skipCheckFrozen?: boolean): void;
128
+ _setColWidth(col: number, width: string | number, clearCache?: boolean, skipCheckFrozen?: boolean): void;
130
129
  _clearColRangeWidthsMap(col?: number): void;
131
130
  _clearRowRangeHeightsMap(row?: number): void;
132
131
  _getColContentWidth(col: number): number;
@@ -329,6 +328,7 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
329
328
  hasAutoImageColumn(): ColumnData;
330
329
  _getActiveChartInstance(): any;
331
330
  cellIsInVisualView(col: number, row: number): boolean;
331
+ getCustomMergeValue(col: number, row: number): string | undefined;
332
332
  exportImg(): string;
333
333
  exportCellImg(col: number, row: number): string;
334
334
  exportCellRangeImg(cellRange: CellRange): string;
@@ -45,7 +45,7 @@ class BaseTable extends EventTarget_1.EventTarget {
45
45
  }
46
46
  constructor(container, options = {}) {
47
47
  var _a, _b, _c, _d, _e, _f, _g;
48
- if (super(), this.showFrozenIcon = !0, this.showSort = !0, this.version = "0.15.0",
48
+ if (super(), this.showFrozenIcon = !0, this.showSort = !0, this.version = "0.15.2",
49
49
  this.id = `VTable${Date.now()}`, this.isReleased = !1, this.throttleInvalidate = (0,
50
50
  util_1.throttle2)(this.render.bind(this), 200), !container && "node" !== options.mode) throw new Error("vtable's container is undefined");
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, autoFillHeight: autoFillHeight = !1, keyboardOptions: keyboardOptions, columnResizeMode: columnResizeMode, 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} = options;
@@ -91,7 +91,7 @@ class BaseTable extends EventTarget_1.EventTarget {
91
91
  internalProps.limitMaxAutoWidth = null !== (_d = options.limitMaxAutoWidth) && void 0 !== _d ? _d : 450,
92
92
  internalProps.limitMinWidth = null != limitMinWidth ? "number" == typeof limitMinWidth ? limitMinWidth : limitMinWidth ? 10 : 0 : 10,
93
93
  this._vDataSet = new vdataset_1.DataSet, this.scenegraph = new scenegraph_1.Scenegraph(this),
94
- this.stateManeger = new state_1.StateManeger(this), this.eventManeger = new event_1.EventManeger(this),
94
+ this.stateManager = new state_1.StateManager(this), this.eventManager = new event_1.EventManager(this),
95
95
  options.legends && (internalProps.legends = (0, create_legend_1.createLegend)(options.legends, this),
96
96
  this.scenegraph.tableGroup.setAttributes({
97
97
  x: this.tableX,
@@ -143,12 +143,12 @@ class BaseTable extends EventTarget_1.EventTarget {
143
143
  set frozenColCount(frozenColCount) {
144
144
  frozenColCount >= this.colCount && (frozenColCount = 0), this.internalProps.frozenColCount = frozenColCount,
145
145
  this.options.frozenColCount = frozenColCount, this.tableNoFrameWidth - this.getColsWidth(0, frozenColCount - 1) <= 120 && (this.internalProps.frozenColCount = 0),
146
- this.stateManeger.setFrozenCol(this.internalProps.frozenColCount);
146
+ this.stateManager.setFrozenCol(this.internalProps.frozenColCount);
147
147
  }
148
148
  setFrozenColCount(frozenColCount) {
149
149
  frozenColCount >= this.colCount && (frozenColCount = 0), this.internalProps.frozenColCount = frozenColCount,
150
150
  this.options.frozenColCount = frozenColCount, this.tableNoFrameWidth - this.getColsWidth(0, frozenColCount - 1) <= 120 && (this.internalProps.frozenColCount = 0),
151
- this.stateManeger.setFrozenCol(this.internalProps.frozenColCount);
151
+ this.stateManager.setFrozenCol(this.internalProps.frozenColCount);
152
152
  }
153
153
  _setFrozenColCount(frozenColCount) {
154
154
  frozenColCount >= this.colCount && (frozenColCount = 0), this.internalProps.frozenColCount = frozenColCount;
@@ -313,9 +313,6 @@ class BaseTable extends EventTarget_1.EventTarget {
313
313
  get rowHierarchyType() {
314
314
  return "grid";
315
315
  }
316
- setColWidths(widths) {
317
- widths.forEach(((value, index) => this.setColWidth(index, value)));
318
- }
319
316
  getColsWidth(startCol, endCol) {
320
317
  endCol = Math.min(endCol, this.colCount - 1);
321
318
  const cachedColWidth = this._colRangeWidthsMap.get(`$${startCol}$${endCol}`);
@@ -340,7 +337,7 @@ class BaseTable extends EventTarget_1.EventTarget {
340
337
  var _a, _b;
341
338
  return this.isColumnHeader(0, row) || this.isCornerHeader(0, row) ? Array.isArray(this.defaultHeaderRowHeight) ? null !== (_a = this.defaultHeaderRowHeight[row]) && void 0 !== _a ? _a : this.internalProps.defaultRowHeight : this.defaultHeaderRowHeight : this.isBottomFrozenRow(this.rowHeaderLevelCount, row) ? Array.isArray(this.defaultHeaderRowHeight) ? null !== (_b = this.defaultHeaderRowHeight[this.columnHeaderLevelCount > 0 ? this.columnHeaderLevelCount - this.bottomFrozenRowCount : 0]) && void 0 !== _b ? _b : this.internalProps.defaultRowHeight : this.defaultHeaderRowHeight : this.internalProps.defaultRowHeight;
342
339
  }
343
- setRowHeight(row, height, clearCache) {
340
+ _setRowHeight(row, height, clearCache) {
344
341
  this.rowHeightsMap.put(row, Math.round(height)), clearCache && this._clearRowRangeHeightsMap(row);
345
342
  }
346
343
  getRowsHeight(startRow, endRow) {
@@ -379,9 +376,9 @@ class BaseTable extends EventTarget_1.EventTarget {
379
376
  const width = null !== (_a = this.colWidthsMap.get(col)) && void 0 !== _a ? _a : col < this.rowHeaderLevelCount ? Array.isArray(this.defaultHeaderColWidth) ? null !== (_b = this.defaultHeaderColWidth[col]) && void 0 !== _b ? _b : this.defaultColWidth : this.defaultHeaderColWidth : this.defaultColWidth;
380
377
  return "adaptive" === this.widthMode && "number" == typeof width || this.transpose && "number" == typeof width ? this._colWidthDefineToPxWidth(width) : this._adjustColWidth(col, this._colWidthDefineToPxWidth(width));
381
378
  }
382
- setColWidth(col, width, clearCache, skipCheckFrozen) {
379
+ _setColWidth(col, width, clearCache, skipCheckFrozen) {
383
380
  this.colWidthsMap.put(col, "number" == typeof width ? Math.round(width) : width),
384
- clearCache && this._clearColRangeWidthsMap(col), skipCheckFrozen || this.stateManeger.checkFrozen();
381
+ clearCache && this._clearColRangeWidthsMap(col), skipCheckFrozen || this.stateManager.checkFrozen();
385
382
  }
386
383
  _clearColRangeWidthsMap(col) {
387
384
  if ("number" != typeof col) this._colRangeWidthsMap.clear(); else {
@@ -634,16 +631,16 @@ class BaseTable extends EventTarget_1.EventTarget {
634
631
  return count;
635
632
  }
636
633
  get scrollTop() {
637
- return this.stateManeger.scroll.verticalBarPos;
634
+ return this.stateManager.scroll.verticalBarPos;
638
635
  }
639
636
  set scrollTop(scrollTop) {
640
- this.stateManeger.setScrollTop(scrollTop);
637
+ this.stateManager.setScrollTop(scrollTop);
641
638
  }
642
639
  get scrollLeft() {
643
- return this.stateManeger.scroll.horizontalBarPos;
640
+ return this.stateManager.scroll.horizontalBarPos;
644
641
  }
645
642
  set scrollLeft(scrollLeft) {
646
- this.stateManeger.setScrollLeft(scrollLeft);
643
+ this.stateManager.setScrollLeft(scrollLeft);
647
644
  }
648
645
  getScrollLeft() {
649
646
  return this.scrollLeft;
@@ -713,12 +710,13 @@ class BaseTable extends EventTarget_1.EventTarget {
713
710
  internalProps._widthResizedColMap = new Set, this.colWidthsMap = new NumberMap_1.NumberMap,
714
711
  this.colContentWidthsMap = new NumberMap_1.NumberMap, this.colWidthsLimit = {},
715
712
  internalProps.theme = themes_1.default.of(null !== (_a = options.theme) && void 0 !== _a ? _a : themes_1.default.DEFAULT),
716
- internalProps.autoWrapText = options.autoWrapText, internalProps.allowFrozenColCount = null !== (_b = options.allowFrozenColCount) && void 0 !== _b ? _b : internalProps.colCount,
713
+ this.scenegraph.updateStageBackground(), internalProps.autoWrapText = options.autoWrapText,
714
+ internalProps.allowFrozenColCount = null !== (_b = options.allowFrozenColCount) && void 0 !== _b ? _b : internalProps.colCount,
717
715
  internalProps.limitMaxAutoWidth = null !== (_c = options.limitMaxAutoWidth) && void 0 !== _c ? _c : 450,
718
716
  internalProps.limitMinWidth = null != limitMinWidth ? "number" == typeof limitMinWidth ? limitMinWidth : limitMinWidth ? 10 : 0 : 10,
719
717
  this._vDataSet = new vdataset_1.DataSet, null === (_d = internalProps.legends) || void 0 === _d || _d.release(),
720
718
  null === (_e = internalProps.title) || void 0 === _e || _e.release(), internalProps.layoutMap.release(),
721
- this.scenegraph.clearCells(), this.stateManeger.initState(), this._updateSize(),
719
+ this.scenegraph.clearCells(), this.stateManager.initState(), this._updateSize(),
722
720
  options.legends && (internalProps.legends = (0, create_legend_1.createLegend)(options.legends, this),
723
721
  this.scenegraph.tableGroup.setAttributes({
724
722
  x: this.tableX,
@@ -735,8 +733,13 @@ class BaseTable extends EventTarget_1.EventTarget {
735
733
  this.clearRowHeightCache();
736
734
  }
737
735
  renderWithRecreateCells() {
736
+ const oldHoverState = {
737
+ col: this.stateManager.hover.cellPos.col,
738
+ row: this.stateManager.hover.cellPos.row
739
+ };
738
740
  this.refreshHeader(), this.scenegraph.clearCells(), this.headerStyleCache = new Map,
739
- this.bodyStyleCache = new Map, this.scenegraph.createSceneGraph(), this.render();
741
+ this.bodyStyleCache = new Map, this.scenegraph.createSceneGraph(), this.stateManager.updateHoverPos(oldHoverState.col, oldHoverState.row),
742
+ this.render();
740
743
  }
741
744
  getFrozenRowsHeight() {
742
745
  return this.getRowsHeight(0, this.frozenRowCount - 1);
@@ -884,17 +887,17 @@ class BaseTable extends EventTarget_1.EventTarget {
884
887
  return Math.min(Math.ceil(absoluteX / this.internalProps.defaultColWidth), this.colCount - 1);
885
888
  }
886
889
  clearSelected() {
887
- this.stateManeger.updateSelectPos(-1, -1);
890
+ this.stateManager.updateSelectPos(-1, -1);
888
891
  }
889
892
  selectCell(col, row) {
890
- this.stateManeger.updateSelectPos(col, row), this.stateManeger.endSelectCells();
893
+ this.stateManager.updateSelectPos(col, row), this.stateManager.endSelectCells();
891
894
  }
892
895
  selectCells(cellRanges) {
893
896
  const {scrollLeft: scrollLeft, scrollTop: scrollTop} = this;
894
897
  cellRanges.forEach(((cellRange, index) => {
895
- this.stateManeger.updateSelectPos(cellRange.start.col, cellRange.start.row, !1, index >= 1),
896
- this.stateManeger.updateInteractionState(ts_types_1.InteractionState.grabing), this.stateManeger.updateSelectPos(cellRange.end.col, cellRange.end.row, !1, index >= 1),
897
- this.stateManeger.endSelectCells(!1), this.stateManeger.updateInteractionState(ts_types_1.InteractionState.default);
898
+ cellRange.start.col === cellRange.end.col && cellRange.start.row === cellRange.end.row ? this.stateManager.updateSelectPos(cellRange.start.col, cellRange.start.row, !1, index >= 1) : (this.stateManager.updateSelectPos(cellRange.start.col, cellRange.start.row, !1, index >= 1),
899
+ this.stateManager.updateInteractionState(ts_types_1.InteractionState.grabing), this.stateManager.updateSelectPos(cellRange.end.col, cellRange.end.row, !1, index >= 1)),
900
+ this.stateManager.endSelectCells(!1), this.stateManager.updateInteractionState(ts_types_1.InteractionState.default);
898
901
  })), this.setScrollTop(scrollTop), this.setScrollLeft(scrollLeft);
899
902
  }
900
903
  get allowFrozenColCount() {
@@ -935,9 +938,14 @@ class BaseTable extends EventTarget_1.EventTarget {
935
938
  this.options.theme = theme;
936
939
  }
937
940
  updateTheme(theme) {
941
+ const oldHoverState = {
942
+ col: this.stateManager.hover.cellPos.col,
943
+ row: this.stateManager.hover.cellPos.row
944
+ };
938
945
  this.internalProps.theme = themes_1.default.of(null != theme ? theme : themes_1.default.DEFAULT),
939
- this.options.theme = theme, this.scenegraph.clearCells(), this.headerStyleCache = new Map,
940
- this.bodyStyleCache = new Map, this.scenegraph.createSceneGraph(), this.render();
946
+ this.options.theme = theme, this.scenegraph.updateStageBackground(), this.scenegraph.clearCells(),
947
+ this.headerStyleCache = new Map, this.bodyStyleCache = new Map, this.scenegraph.createSceneGraph(),
948
+ this.stateManager.updateHoverPos(oldHoverState.col, oldHoverState.row), this.render();
941
949
  }
942
950
  getBodyField(col, row) {
943
951
  return this.internalProps.layoutMap.getBody(col, row).field;
@@ -1020,7 +1028,7 @@ class BaseTable extends EventTarget_1.EventTarget {
1020
1028
  col: col,
1021
1029
  row: row,
1022
1030
  table: this,
1023
- value: this.getCellValue(col, row),
1031
+ value: customMerge.text,
1024
1032
  dataValue: this.getCellOriginValue(col, row),
1025
1033
  cellHeaderPaths: this.getCellHeaderPaths(col, row)
1026
1034
  }, styleClass, this.options.autoWrapText);
@@ -1050,10 +1058,10 @@ class BaseTable extends EventTarget_1.EventTarget {
1050
1058
  return description;
1051
1059
  }
1052
1060
  setDropDownMenuHighlight(cells) {
1053
- this.stateManeger.setDropDownMenuHighlight(cells);
1061
+ this.stateManager.setDropDownMenuHighlight(cells);
1054
1062
  }
1055
1063
  _dropDownMenuIsHighlight(colNow, rowNow, index) {
1056
- return this.stateManeger.dropDownMenuIsHighlight(colNow, rowNow, index);
1064
+ return this.stateManager.dropDownMenuIsHighlight(colNow, rowNow, index);
1057
1065
  }
1058
1066
  isHeader(col, row) {
1059
1067
  return this.internalProps.layoutMap && this.internalProps.layoutMap.isHeader(col, row);
@@ -1190,8 +1198,8 @@ class BaseTable extends EventTarget_1.EventTarget {
1190
1198
  return !(limit && limit.min && limit.max) || limit.max !== limit.min;
1191
1199
  }
1192
1200
  _canDragHeaderPosition(col, row) {
1193
- if (this.isHeader(col, row) && this.stateManeger.isSelected(col, row)) {
1194
- const selectRange = this.stateManeger.select.ranges[0];
1201
+ if (this.isHeader(col, row) && this.stateManager.isSelected(col, row)) {
1202
+ const selectRange = this.stateManager.select.ranges[0];
1195
1203
  if (this.isColumnHeader(col, row)) {
1196
1204
  if (selectRange.end.row !== this.rowCount - 1) return !1;
1197
1205
  } else {
@@ -1221,7 +1229,7 @@ class BaseTable extends EventTarget_1.EventTarget {
1221
1229
  showDropDownMenu(col, row, dropDownMenuOptions) {
1222
1230
  let menuType = "dropdown-menu";
1223
1231
  dropDownMenuOptions && (menuType = Array.isArray(dropDownMenuOptions.content) ? "dropdown-menu" : "container"),
1224
- "html" === this.internalProps.menu.renderMode && (this.stateManeger.menu.isShow = !0,
1232
+ "html" === this.internalProps.menu.renderMode && (this.stateManager.menu.isShow = !0,
1225
1233
  this.internalProps.menuHandler._bindToCell(col, row, menuType, dropDownMenuOptions));
1226
1234
  }
1227
1235
  showTooltip(col, row, tooltipOptions) {
@@ -1283,8 +1291,8 @@ class BaseTable extends EventTarget_1.EventTarget {
1283
1291
  }
1284
1292
  getCopyValue() {
1285
1293
  var _a, _b;
1286
- if ((null === (_b = null === (_a = this.stateManeger.select) || void 0 === _a ? void 0 : _a.ranges) || void 0 === _b ? void 0 : _b.length) > 0) {
1287
- const ranges = this.stateManeger.select.ranges;
1294
+ if ((null === (_b = null === (_a = this.stateManager.select) || void 0 === _a ? void 0 : _a.ranges) || void 0 === _b ? void 0 : _b.length) > 0) {
1295
+ const ranges = this.stateManager.select.ranges;
1288
1296
  let minCol = Math.min(ranges[0].start.col, ranges[0].end.col), maxCol = Math.max(ranges[0].start.col, ranges[0].end.col), minRow = Math.min(ranges[0].start.row, ranges[0].end.row), maxRow = Math.max(ranges[0].start.row, ranges[0].end.row);
1289
1297
  ranges.forEach((a => {
1290
1298
  minCol = Math.min(minCol, a.start.col, a.end.col), maxCol = Math.max(maxCol, a.start.col, a.end.col),
@@ -1343,8 +1351,8 @@ class BaseTable extends EventTarget_1.EventTarget {
1343
1351
  }
1344
1352
  getSelectedCellInfos() {
1345
1353
  var _a;
1346
- if (!(null === (_a = this.stateManeger.select) || void 0 === _a ? void 0 : _a.ranges)) return null;
1347
- const ranges = this.stateManeger.select.ranges;
1354
+ if (!(null === (_a = this.stateManager.select) || void 0 === _a ? void 0 : _a.ranges)) return null;
1355
+ const ranges = this.stateManager.select.ranges;
1348
1356
  if (!ranges.length) return [];
1349
1357
  let minCol = Math.min(ranges[0].start.col, ranges[0].end.col), maxCol = Math.max(ranges[0].start.col, ranges[0].end.col), minRow = Math.min(ranges[0].start.row, ranges[0].end.row), maxRow = Math.max(ranges[0].start.row, ranges[0].end.row);
1350
1358
  ranges.forEach((a => {
@@ -1416,13 +1424,22 @@ class BaseTable extends EventTarget_1.EventTarget {
1416
1424
  }
1417
1425
  _getActiveChartInstance() {
1418
1426
  var _a, _b, _c, _d, _e, _f;
1419
- 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);
1427
+ const cellGroup = this.scenegraph.getCell(null === (_b = null === (_a = this.stateManager.hover) || void 0 === _a ? void 0 : _a.cellPos) || void 0 === _b ? void 0 : _b.col, null === (_d = null === (_c = this.stateManager.hover) || void 0 === _c ? void 0 : _c.cellPos) || void 0 === _d ? void 0 : _d.row);
1420
1428
  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;
1421
1429
  }
1422
1430
  cellIsInVisualView(col, row) {
1423
1431
  const drawRange = this.getDrawRange(), rect = this.getCellRelativeRect(col, row);
1424
1432
  return col < this.frozenColCount && row < this.frozenRowCount || rect.top >= drawRange.top && rect.bottom <= drawRange.bottom && rect.left >= drawRange.left && rect.right <= drawRange.right;
1425
1433
  }
1434
+ getCustomMergeValue(col, row) {
1435
+ if (this.internalProps.customMergeCell) {
1436
+ const customMerge = this.getCustomMerge(col, row);
1437
+ if (customMerge) {
1438
+ const {text: text} = customMerge;
1439
+ return text;
1440
+ }
1441
+ }
1442
+ }
1426
1443
  exportImg() {
1427
1444
  return this.scenegraph.stage.toCanvas().toDataURL();
1428
1445
  }