@visactor/vtable 0.23.2-alpha.0 → 0.23.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/cjs/ListTable.js +10 -6
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/PivotChart.js +4 -3
  4. package/cjs/PivotChart.js.map +1 -1
  5. package/cjs/PivotTable.js +5 -3
  6. package/cjs/PivotTable.js.map +1 -1
  7. package/cjs/body-helper/body-helper.d.ts +1 -0
  8. package/cjs/body-helper/body-helper.js +4 -0
  9. package/cjs/body-helper/body-helper.js.map +1 -1
  10. package/cjs/components/tooltip/TooltipHandler.d.ts +1 -0
  11. package/cjs/components/tooltip/TooltipHandler.js +36 -33
  12. package/cjs/components/tooltip/TooltipHandler.js.map +1 -1
  13. package/cjs/core/BaseTable.d.ts +11 -2
  14. package/cjs/core/BaseTable.js +39 -15
  15. package/cjs/core/BaseTable.js.map +1 -1
  16. package/cjs/core/TABLE_EVENT_TYPE.d.ts +1 -0
  17. package/cjs/core/TABLE_EVENT_TYPE.js.map +1 -1
  18. package/cjs/event/event.d.ts +3 -2
  19. package/cjs/event/event.js +10 -8
  20. package/cjs/event/event.js.map +1 -1
  21. package/cjs/event/listener/container-dom.js +3 -3
  22. package/cjs/event/listener/container-dom.js.map +1 -1
  23. package/cjs/event/listener/scroll-bar.js +9 -3
  24. package/cjs/event/listener/scroll-bar.js.map +1 -1
  25. package/cjs/event/listener/table-group.js +17 -17
  26. package/cjs/event/listener/table-group.js.map +1 -1
  27. package/cjs/event/listener/touch.js +20 -18
  28. package/cjs/event/listener/touch.js.map +1 -1
  29. package/cjs/header-helper/header-helper.d.ts +1 -0
  30. package/cjs/header-helper/header-helper.js +4 -0
  31. package/cjs/header-helper/header-helper.js.map +1 -1
  32. package/cjs/index.d.ts +1 -1
  33. package/cjs/index.js +1 -1
  34. package/cjs/index.js.map +1 -1
  35. package/cjs/layout/chart-helper/get-axis-config.d.ts +2 -0
  36. package/cjs/layout/chart-helper/get-axis-config.js +9 -6
  37. package/cjs/layout/chart-helper/get-axis-config.js.map +1 -1
  38. package/cjs/layout/chart-helper/get-chart-spec.js +2 -2
  39. package/cjs/layout/chart-helper/get-chart-spec.js.map +1 -1
  40. package/cjs/layout/pivot-header-layout.d.ts +1 -0
  41. package/cjs/layout/pivot-header-layout.js +3 -2
  42. package/cjs/layout/pivot-header-layout.js.map +1 -1
  43. package/cjs/layout/simple-header-layout.d.ts +1 -0
  44. package/cjs/layout/simple-header-layout.js +1 -1
  45. package/cjs/layout/simple-header-layout.js.map +1 -1
  46. package/cjs/plugins/custom-cell-style.d.ts +1 -0
  47. package/cjs/plugins/custom-cell-style.js +7 -0
  48. package/cjs/plugins/custom-cell-style.js.map +1 -1
  49. package/cjs/scenegraph/component/table-component.js +2 -2
  50. package/cjs/scenegraph/component/table-component.js.map +1 -1
  51. package/cjs/scenegraph/group-creater/cell-helper.js +6 -6
  52. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  53. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +1 -1
  54. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  55. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js +13 -5
  56. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  57. package/cjs/scenegraph/group-creater/cell-type/text-cell.js +1 -1
  58. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  59. package/cjs/scenegraph/group-creater/column-helper.js +1 -1
  60. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  61. package/cjs/scenegraph/group-creater/progress/proxy.js +3 -2
  62. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  63. package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js +10 -6
  64. package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
  65. package/cjs/scenegraph/layout/compute-col-width.js +8 -5
  66. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  67. package/cjs/scenegraph/layout/compute-row-height.js +12 -8
  68. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  69. package/cjs/scenegraph/layout/update-height.js +2 -2
  70. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  71. package/cjs/scenegraph/layout/update-row.js +59 -14
  72. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  73. package/cjs/scenegraph/layout/update-width.js +12 -12
  74. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  75. package/cjs/scenegraph/scenegraph.js +5 -5
  76. package/cjs/scenegraph/scenegraph.js.map +1 -1
  77. package/cjs/scenegraph/stick-text/index.js +1 -1
  78. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  79. package/cjs/scenegraph/utils/get-hierarchy-offset.js +5 -3
  80. package/cjs/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  81. package/cjs/scenegraph/utils/text-measure.d.ts +1 -0
  82. package/cjs/scenegraph/utils/text-measure.js +11 -1
  83. package/cjs/scenegraph/utils/text-measure.js.map +1 -1
  84. package/cjs/state/state.js +21 -18
  85. package/cjs/state/state.js.map +1 -1
  86. package/cjs/tools/global.d.ts +2 -2
  87. package/cjs/tools/global.js +2 -2
  88. package/cjs/tools/global.js.map +1 -1
  89. package/cjs/ts-types/base-table.d.ts +6 -1
  90. package/cjs/ts-types/base-table.js.map +1 -1
  91. package/cjs/ts-types/events.d.ts +10 -2
  92. package/cjs/ts-types/events.js.map +1 -1
  93. package/cjs/ts-types/table-engine.d.ts +4 -0
  94. package/cjs/ts-types/table-engine.js.map +1 -1
  95. package/cjs/vrender.js.map +1 -1
  96. package/dist/vtable.js +1142 -1246
  97. package/dist/vtable.min.js +2 -2
  98. package/es/ListTable.js +9 -6
  99. package/es/ListTable.js.map +1 -1
  100. package/es/PivotChart.js +4 -2
  101. package/es/PivotChart.js.map +1 -1
  102. package/es/PivotTable.js +5 -2
  103. package/es/PivotTable.js.map +1 -1
  104. package/es/body-helper/body-helper.d.ts +1 -0
  105. package/es/body-helper/body-helper.js +4 -0
  106. package/es/body-helper/body-helper.js.map +1 -1
  107. package/es/components/tooltip/TooltipHandler.d.ts +1 -0
  108. package/es/components/tooltip/TooltipHandler.js +36 -33
  109. package/es/components/tooltip/TooltipHandler.js.map +1 -1
  110. package/es/core/BaseTable.d.ts +11 -2
  111. package/es/core/BaseTable.js +40 -16
  112. package/es/core/BaseTable.js.map +1 -1
  113. package/es/core/TABLE_EVENT_TYPE.d.ts +1 -0
  114. package/es/core/TABLE_EVENT_TYPE.js.map +1 -1
  115. package/es/event/event.d.ts +3 -2
  116. package/es/event/event.js +10 -8
  117. package/es/event/event.js.map +1 -1
  118. package/es/event/listener/container-dom.js +3 -3
  119. package/es/event/listener/container-dom.js.map +1 -1
  120. package/es/event/listener/scroll-bar.js +10 -2
  121. package/es/event/listener/scroll-bar.js.map +1 -1
  122. package/es/event/listener/table-group.js +17 -17
  123. package/es/event/listener/table-group.js.map +1 -1
  124. package/es/event/listener/touch.js +19 -15
  125. package/es/event/listener/touch.js.map +1 -1
  126. package/es/header-helper/header-helper.d.ts +1 -0
  127. package/es/header-helper/header-helper.js +4 -0
  128. package/es/header-helper/header-helper.js.map +1 -1
  129. package/es/index.d.ts +1 -1
  130. package/es/index.js +1 -1
  131. package/es/index.js.map +1 -1
  132. package/es/layout/chart-helper/get-axis-config.d.ts +2 -0
  133. package/es/layout/chart-helper/get-axis-config.js +9 -6
  134. package/es/layout/chart-helper/get-axis-config.js.map +1 -1
  135. package/es/layout/chart-helper/get-chart-spec.js +4 -2
  136. package/es/layout/chart-helper/get-chart-spec.js.map +1 -1
  137. package/es/layout/pivot-header-layout.d.ts +1 -0
  138. package/es/layout/pivot-header-layout.js +3 -2
  139. package/es/layout/pivot-header-layout.js.map +1 -1
  140. package/es/layout/simple-header-layout.d.ts +1 -0
  141. package/es/layout/simple-header-layout.js +1 -1
  142. package/es/layout/simple-header-layout.js.map +1 -1
  143. package/es/plugins/custom-cell-style.d.ts +1 -0
  144. package/es/plugins/custom-cell-style.js +7 -0
  145. package/es/plugins/custom-cell-style.js.map +1 -1
  146. package/es/scenegraph/component/table-component.js +2 -2
  147. package/es/scenegraph/component/table-component.js.map +1 -1
  148. package/es/scenegraph/group-creater/cell-helper.js +6 -6
  149. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  150. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +1 -1
  151. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  152. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js +13 -4
  153. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  154. package/es/scenegraph/group-creater/cell-type/text-cell.js +1 -1
  155. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  156. package/es/scenegraph/group-creater/column-helper.js +1 -1
  157. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  158. package/es/scenegraph/group-creater/progress/proxy.js +4 -1
  159. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  160. package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js +5 -3
  161. package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
  162. package/es/scenegraph/layout/compute-col-width.js +8 -5
  163. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  164. package/es/scenegraph/layout/compute-row-height.js +14 -9
  165. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  166. package/es/scenegraph/layout/update-height.js +2 -2
  167. package/es/scenegraph/layout/update-height.js.map +1 -1
  168. package/es/scenegraph/layout/update-row.js +59 -15
  169. package/es/scenegraph/layout/update-row.js.map +1 -1
  170. package/es/scenegraph/layout/update-width.js +12 -12
  171. package/es/scenegraph/layout/update-width.js.map +1 -1
  172. package/es/scenegraph/scenegraph.js +4 -6
  173. package/es/scenegraph/scenegraph.js.map +1 -1
  174. package/es/scenegraph/stick-text/index.js +1 -1
  175. package/es/scenegraph/stick-text/index.js.map +1 -1
  176. package/es/scenegraph/utils/get-hierarchy-offset.js +6 -2
  177. package/es/scenegraph/utils/get-hierarchy-offset.js.map +1 -1
  178. package/es/scenegraph/utils/text-measure.d.ts +1 -0
  179. package/es/scenegraph/utils/text-measure.js +9 -1
  180. package/es/scenegraph/utils/text-measure.js.map +1 -1
  181. package/es/state/state.js +21 -18
  182. package/es/state/state.js.map +1 -1
  183. package/es/tools/global.d.ts +2 -2
  184. package/es/tools/global.js +2 -2
  185. package/es/tools/global.js.map +1 -1
  186. package/es/ts-types/base-table.d.ts +6 -1
  187. package/es/ts-types/base-table.js.map +1 -1
  188. package/es/ts-types/events.d.ts +10 -2
  189. package/es/ts-types/events.js.map +1 -1
  190. package/es/ts-types/table-engine.d.ts +4 -0
  191. package/es/ts-types/table-engine.js.map +1 -1
  192. package/es/vrender.js.map +1 -1
  193. package/package.json +4 -4
@@ -59,43 +59,11 @@ class TooltipHandler {
59
59
  }
60
60
  _bindTableEvent(table) {
61
61
  table.on(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSEENTER_CELL, (e => {
62
- var _a;
63
62
  if ((0, util_1.isMobile)()) return;
64
63
  const {x1: left, x2: right, y1: top, y2: bottom} = table.stateManager.menu.bounds;
65
64
  if (table.stateManager.menu.isShow && "number" == typeof e.x && "number" == typeof e.y && e.x > left && e.x < right && e.y > top && e.y < bottom) return;
66
65
  const {col: col, row: row} = e;
67
- let tooltipOption;
68
- const headerDescription = table.getHeaderDescription(col, row);
69
- if (headerDescription) {
70
- const rect = table.getCellRangeRelativeRect({
71
- col: col,
72
- row: row
73
- });
74
- tooltipOption = {
75
- content: headerDescription,
76
- referencePosition: {
77
- placement: ts_types_1.Placement.bottom,
78
- rect: rect
79
- },
80
- style: {
81
- arrowMark: !1
82
- }
83
- };
84
- } else if (null === (_a = table.internalProps.tooltip) || void 0 === _a ? void 0 : _a.isShowOverflowTextTooltip) {
85
- const overflowText = table.getCellOverflowText(col, row), rect = table.getCellRangeRelativeRect({
86
- col: col,
87
- row: row
88
- });
89
- overflowText && (tooltipOption = {
90
- content: headerDescription ? `${headerDescription}\n ${overflowText}` : overflowText,
91
- referencePosition: {
92
- placement: ts_types_1.Placement.bottom,
93
- rect: rect
94
- },
95
- style: table.theme.tooltipStyle
96
- });
97
- }
98
- tooltipOption && this._bindToCell(e.col, e.row, tooltipOption);
66
+ this.showTooltip(col, row);
99
67
  })), table.on(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSEMOVE_CELL, (e => {
100
68
  var _a, _b;
101
69
  if (!(0, util_1.isMobile)()) {
@@ -115,6 +83,41 @@ class TooltipHandler {
115
83
  this._unbindFromCell();
116
84
  }));
117
85
  }
86
+ showTooltip(col, row) {
87
+ var _a;
88
+ let tooltipOption;
89
+ const table = this._table, headerDescription = table.getHeaderDescription(col, row);
90
+ if (headerDescription) {
91
+ const rect = table.getCellRangeRelativeRect({
92
+ col: col,
93
+ row: row
94
+ });
95
+ tooltipOption = {
96
+ content: headerDescription,
97
+ referencePosition: {
98
+ placement: ts_types_1.Placement.bottom,
99
+ rect: rect
100
+ },
101
+ style: {
102
+ arrowMark: !1
103
+ }
104
+ };
105
+ } else if (null === (_a = table.internalProps.tooltip) || void 0 === _a ? void 0 : _a.isShowOverflowTextTooltip) {
106
+ const overflowText = table.getCellOverflowText(col, row), rect = table.getCellRangeRelativeRect({
107
+ col: col,
108
+ row: row
109
+ });
110
+ overflowText && (tooltipOption = {
111
+ content: headerDescription ? `${headerDescription}\n ${overflowText}` : overflowText,
112
+ referencePosition: {
113
+ placement: ts_types_1.Placement.bottom,
114
+ rect: rect
115
+ },
116
+ style: table.theme.tooltipStyle
117
+ });
118
+ }
119
+ tooltipOption ? this._bindToCell(col, row, tooltipOption) : this._unbindFromCell();
120
+ }
118
121
  _getTooltipInstanceInfo(col, row) {
119
122
  const table = this._table, tooltipInstances = this._tooltipInstances;
120
123
  return tooltipInstances && tooltipInstances["bubble-tooltip"] || tooltipInstances && (tooltipInstances["bubble-tooltip"] = TOOLTIP_INSTANCE_FACTORY["bubble-tooltip"](table));
@@ -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;YAMvB,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,KAAK,CAAC,KAAK,CAAC,YAAY;qBAChC,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;YAM7C,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,IAAI,CAAC,eAAe,EAAE,CAAC;QAQzB,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;AApND,wCAoNC","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: table.theme.tooltipStyle\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 this._unbindFromCell();\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 this.showTooltip(col, row);\n // if (e.related) {\n // if (this._isBindCell(col, row)) {\n // return;\n // }\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 this._unbindFromCell();\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 showTooltip(col: number, row: number) {\n let tooltipOption;\n const table = this._table;\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: table.theme.tooltipStyle\n };\n }\n }\n if (tooltipOption) {\n this._bindToCell(col, row, tooltipOption);\n } else {\n this._unbindFromCell();\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,5 +1,5 @@
1
1
  import { type CellAddress, type CellRange, type TableEventHandlersEventArgumentMap, type TableEventHandlersReturnMap, type TableKeyboardOptions, type DropDownMenuHighlightInfo, type MenuListItem, type WidthModeDef, type ICustomRender, type ICellHeaderPaths, type HeaderData, type FullExtendStyle, type FieldDef, type ColumnTypeOption, type SortState, type IPagination, type ICustomLayout, type CellInfo, type CellStyle, type DropDownMenuOptions, type FieldData, type MaybePromiseOrUndefined, type MousePointerCellEvent, type DropDownMenuEventInfo, type HierarchyState, type FieldKeyDef, type CellLocation, type LayoutObjectId, type HeightModeDef, type ITableThemeDefine } from '../ts-types';
2
- import type { AnyFunction, CellAddressWithBound, ColumnIconOption, ColumnSeriesNumber, IRowSeriesNumber, ColumnStyleOption, TableEventOptions } from '../ts-types';
2
+ import type { AnyFunction, CellAddressWithBound, ColumnIconOption, ColumnSeriesNumber, IRowSeriesNumber, ColumnStyleOption, TableEventOptions, WidthAdaptiveModeDef, HeightAdaptiveModeDef } from '../ts-types';
3
3
  import { TABLE_EVENT_TYPE } from './TABLE_EVENT_TYPE';
4
4
  import { EventTarget } from '../event/EventTarget';
5
5
  import { NumberMap } from '../tools/NumberMap';
@@ -9,13 +9,14 @@ import { Scenegraph } from '../scenegraph/scenegraph';
9
9
  import { StateManager } from '../state/state';
10
10
  import { EventManager } from '../event/event';
11
11
  import type { CachedDataSource, DataSource } from '../data';
12
- import { type ITextSize } from '@visactor/vutils';
12
+ import { AABBBounds, type ITextSize } from '@visactor/vutils';
13
13
  import type { ColumnData, ColumnDefine, ColumnsDefine, IndicatorData, SeriesNumberColumnData } from '../ts-types/list-table/layout-map/api';
14
14
  import type { TooltipOptions } from '../ts-types/tooltip';
15
15
  import type { BaseTableAPI, BaseTableConstructorOptions, IBaseTableProtected } from '../ts-types/base-table';
16
16
  import { DataSet } from '@visactor/vdataset';
17
17
  import { NumberRangeMap } from '../layout/row-height-map';
18
18
  import { CustomCellStylePlugin } from '../plugins/custom-cell-style';
19
+ import type { ITextGraphicAttribute } from './../vrender';
19
20
  export declare abstract class BaseTable extends EventTarget implements BaseTableAPI {
20
21
  internalProps: IBaseTableProtected;
21
22
  showFrozenIcon: boolean;
@@ -34,6 +35,8 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
34
35
  _heightMode: HeightModeDef;
35
36
  _autoFillWidth: boolean;
36
37
  _autoFillHeight: boolean;
38
+ _widthAdaptiveMode: WidthAdaptiveModeDef;
39
+ _heightAdaptiveMode: HeightAdaptiveModeDef;
37
40
  customRender?: ICustomRender;
38
41
  canvasWidth?: number;
39
42
  canvasHeight?: number;
@@ -121,6 +124,10 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
121
124
  set autoFillWidth(autoFillWidth: boolean);
122
125
  get autoFillHeight(): boolean;
123
126
  set autoFillHeight(autoFillHeight: boolean);
127
+ get widthAdaptiveMode(): WidthAdaptiveModeDef;
128
+ set widthAdaptiveMode(widthAdaptiveMode: WidthAdaptiveModeDef);
129
+ get heightAdaptiveMode(): HeightAdaptiveModeDef;
130
+ set heightAdaptiveMode(heightAdaptiveMode: HeightAdaptiveModeDef);
124
131
  _colWidthDefineToPxWidth(width: string | number): number;
125
132
  private _getColWidthLimits;
126
133
  _adjustColWidth(col: number, orgWidth: number): number;
@@ -135,6 +142,7 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
135
142
  getRowsHeight(startRow: number, endRow: number): number;
136
143
  getColWidthDefined(col: number): string | number;
137
144
  getColWidthDefinedNumber(col: number): number;
145
+ isAutoRowHeight(row: number): boolean;
138
146
  getColWidth(col: number): number;
139
147
  _setColWidth(col: number, width: string | number, clearCache?: boolean, skipCheckFrozen?: boolean): void;
140
148
  _clearColRangeWidthsMap(col?: number): void;
@@ -361,6 +369,7 @@ export declare abstract class BaseTable extends EventTarget implements BaseTable
361
369
  fontWeight: string | number;
362
370
  fontFamily: string;
363
371
  }): ITextSize;
372
+ measureTextBounds(attribute: ITextGraphicAttribute): AABBBounds;
364
373
  getCustomRender(col: number, row: number): ICustomRender;
365
374
  getCustomLayout(col: number, row: number): ICustomLayout;
366
375
  hasAutoImageColumn(): HeaderData | ColumnData;
@@ -45,13 +45,14 @@ class BaseTable extends EventTarget_1.EventTarget {
45
45
  }
46
46
  constructor(container, options = {}) {
47
47
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
48
- if (super(), this.showFrozenIcon = !0, this.version = "0.23.2-alpha.0", this.id = `VTable${Date.now()}`,
48
+ if (super(), this.showFrozenIcon = !0, this.version = "0.23.3", this.id = `VTable${Date.now()}`,
49
49
  this.isReleased = !1, this._chartEventMap = {}, this.throttleInvalidate = (0, util_1.throttle2)(this.render.bind(this), 200),
50
50
  !container && "node" !== options.mode) throw new Error("vtable's container is undefined");
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, eventOptions: eventOptions, rowSeriesNumber: rowSeriesNumber, 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;
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, widthAdaptiveMode: widthAdaptiveMode = "only-body", heightAdaptiveMode: heightAdaptiveMode = "only-body", keyboardOptions: keyboardOptions, eventOptions: eventOptions, rowSeriesNumber: rowSeriesNumber, 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;
52
52
  this.container = container, this.options = options, this._widthMode = widthMode,
53
- this._heightMode = heightMode, this._autoFillWidth = autoFillWidth, this._autoFillHeight = autoFillHeight,
54
- this.customRender = customRender, this.padding = {
53
+ this._heightMode = heightMode, this._widthAdaptiveMode = widthAdaptiveMode, this._heightAdaptiveMode = heightAdaptiveMode,
54
+ this._autoFillWidth = autoFillWidth, this._autoFillHeight = autoFillHeight, this.customRender = customRender,
55
+ this.padding = {
55
56
  top: 0,
56
57
  right: 0,
57
58
  left: 0,
@@ -281,6 +282,18 @@ class BaseTable extends EventTarget_1.EventTarget {
281
282
  set autoFillHeight(autoFillHeight) {
282
283
  autoFillHeight !== this._autoFillHeight && (this._autoFillHeight = autoFillHeight);
283
284
  }
285
+ get widthAdaptiveMode() {
286
+ return this._widthAdaptiveMode;
287
+ }
288
+ set widthAdaptiveMode(widthAdaptiveMode) {
289
+ widthAdaptiveMode !== this._widthAdaptiveMode && (this._widthAdaptiveMode = widthAdaptiveMode);
290
+ }
291
+ get heightAdaptiveMode() {
292
+ return this._heightAdaptiveMode;
293
+ }
294
+ set heightAdaptiveMode(heightAdaptiveMode) {
295
+ heightAdaptiveMode !== this._heightAdaptiveMode && (this._heightAdaptiveMode = heightAdaptiveMode);
296
+ }
284
297
  _colWidthDefineToPxWidth(width) {
285
298
  return "auto" === width ? 0 : (0, tableHelper_1._toPxWidth)(this, width);
286
299
  }
@@ -356,7 +369,7 @@ class BaseTable extends EventTarget_1.EventTarget {
356
369
  }
357
370
  getDefaultRowHeight(row) {
358
371
  var _a, _b;
359
- 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;
372
+ return this.isColumnHeader(0, row) || this.isCornerHeader(0, row) || this.isSeriesNumberInHeader(0, row) ? Array.isArray(this.defaultHeaderRowHeight) ? null !== (_a = this.defaultHeaderRowHeight[row]) && void 0 !== _a ? _a : this.internalProps.defaultRowHeight : this.defaultHeaderRowHeight : this.isBottomFrozenRow(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;
360
373
  }
361
374
  _setRowHeight(row, height, clearCache) {
362
375
  this.rowHeightsMap.put(row, Math.round(height)), clearCache && this._clearRowRangeHeightsMap(row);
@@ -383,6 +396,9 @@ class BaseTable extends EventTarget_1.EventTarget {
383
396
  const width = this.getColWidthDefined(col);
384
397
  return this._adjustColWidth(col, this._colWidthDefineToPxWidth(width));
385
398
  }
399
+ isAutoRowHeight(row) {
400
+ return "autoHeight" === this.heightMode || row >= 0 && row < this.columnHeaderLevelCount && "auto" === this.getDefaultRowHeight(row);
401
+ }
386
402
  getColWidth(col) {
387
403
  var _a;
388
404
  const width = null !== (_a = this.colWidthsMap.get(col)) && void 0 !== _a ? _a : this.getDefaultColumnWidth(col);
@@ -680,7 +696,7 @@ class BaseTable extends EventTarget_1.EventTarget {
680
696
  this.release();
681
697
  }
682
698
  release() {
683
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
699
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
684
700
  const internalProps = this.internalProps;
685
701
  null === (_b = null === (_a = internalProps.tooltipHandler) || void 0 === _a ? void 0 : _a.release) || void 0 === _b || _b.call(_a),
686
702
  null === (_d = null === (_c = internalProps.menuHandler) || void 0 === _c ? void 0 : _c.release) || void 0 === _d || _d.call(_c),
@@ -693,15 +709,16 @@ class BaseTable extends EventTarget_1.EventTarget {
693
709
  return null === (_a = null == releaseObj ? void 0 : releaseObj.release) || void 0 === _a ? void 0 : _a.call(releaseObj);
694
710
  })), internalProps.releaseList = null), this.scenegraph.stage.release(), this.scenegraph.proxy.release();
695
711
  const {parentElement: parentElement} = internalProps.element;
696
- parentElement && parentElement.removeChild(internalProps.element), this.isReleased = !0;
712
+ parentElement && parentElement.removeChild(internalProps.element), null === (_p = null === (_o = null === (_m = this.editorManager) || void 0 === _m ? void 0 : _m.editingEditor) || void 0 === _o ? void 0 : _o.onEnd) || void 0 === _p || _p.call(_o),
713
+ this.isReleased = !0;
697
714
  }
698
715
  fireListeners(type, event) {
699
716
  return super.fireListeners(type, event);
700
717
  }
701
718
  updateOption(options) {
702
- var _a, _b, _c, _d, _e;
719
+ var _a, _b, _c, _d, _e, _f, _g, _h;
703
720
  this.options = options;
704
- const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth = 80, keyboardOptions: keyboardOptions, eventOptions: eventOptions, rowSeriesNumber: rowSeriesNumber, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, pixelRatio: pixelRatio, widthMode: widthMode, heightMode: heightMode, autoFillWidth: autoFillWidth, autoFillHeight: autoFillHeight, customRender: customRender, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount, overscrollBehavior: overscrollBehavior, limitMinWidth: limitMinWidth} = options;
721
+ const {frozenColCount: frozenColCount = 0, defaultRowHeight: defaultRowHeight = 40, defaultHeaderRowHeight: defaultHeaderRowHeight, defaultColWidth: defaultColWidth = 80, defaultHeaderColWidth: defaultHeaderColWidth = 80, keyboardOptions: keyboardOptions, eventOptions: eventOptions, rowSeriesNumber: rowSeriesNumber, columnResizeMode: columnResizeMode, dragHeaderMode: dragHeaderMode, showFrozenIcon: showFrozenIcon, allowFrozenColCount: allowFrozenColCount, padding: padding, hover: hover, menu: menu, select: click, pixelRatio: pixelRatio, widthMode: widthMode, heightMode: heightMode, autoFillWidth: autoFillWidth, autoFillHeight: autoFillHeight, widthAdaptiveMode: widthAdaptiveMode, heightAdaptiveMode: heightAdaptiveMode, customRender: customRender, renderChartAsync: renderChartAsync, renderChartAsyncBatchCount: renderChartAsyncBatchCount, overscrollBehavior: overscrollBehavior, limitMinWidth: limitMinWidth} = options;
705
722
  pixelRatio && pixelRatio !== this.internalProps.pixelRatio && (this.internalProps.pixelRatio = pixelRatio),
706
723
  padding && ("number" == typeof padding ? (this.padding.top = padding, this.padding.left = padding,
707
724
  this.padding.bottom = padding, this.padding.right = padding) : (padding.top && (this.padding.top = padding.top),
@@ -709,10 +726,13 @@ class BaseTable extends EventTarget_1.EventTarget {
709
726
  padding.right && (this.padding.right = padding.right))), this.showFrozenIcon = "boolean" != typeof showFrozenIcon || showFrozenIcon,
710
727
  "number" == typeof allowFrozenColCount && allowFrozenColCount <= 0 && (this.showFrozenIcon = !1),
711
728
  this.widthMode = null != widthMode ? widthMode : "standard", this.heightMode = null != heightMode ? heightMode : "standard",
729
+ this._widthAdaptiveMode = null != widthAdaptiveMode ? widthAdaptiveMode : "only-body",
730
+ this._heightAdaptiveMode = null != heightAdaptiveMode ? heightAdaptiveMode : "only-body",
712
731
  this.autoFillWidth = null != autoFillWidth && autoFillWidth, this.autoFillHeight = null != autoFillHeight && autoFillHeight,
713
732
  this.customRender = customRender;
714
733
  const internalProps = this.internalProps;
715
734
  "node" !== env_1.Env.mode && (0, tableHelper_1.updateRootElementPadding)(internalProps.element, this.padding),
735
+ this.columnWidthComputeMode = null !== (_a = options.columnWidthComputeMode) && void 0 !== _a ? _a : "normal",
716
736
  internalProps.frozenColCount = frozenColCount, internalProps.defaultRowHeight = defaultRowHeight,
717
737
  internalProps.defaultHeaderRowHeight = null != defaultHeaderRowHeight ? defaultHeaderRowHeight : defaultRowHeight,
718
738
  internalProps.defaultColWidth = defaultColWidth, internalProps.defaultHeaderColWidth = null != defaultHeaderColWidth ? defaultHeaderColWidth : defaultColWidth,
@@ -725,13 +745,13 @@ class BaseTable extends EventTarget_1.EventTarget {
725
745
  internalProps._rowRangeHeightsMap = new Map, internalProps._colRangeWidthsMap = new Map,
726
746
  internalProps._widthResizedColMap = new Set, this.colWidthsMap = new NumberMap_1.NumberMap,
727
747
  this.colContentWidthsMap = new NumberMap_1.NumberMap, this.colWidthsLimit = {},
728
- internalProps.stick.changedCells.clear(), internalProps.theme = themes_1.default.of(null !== (_a = options.theme) && void 0 !== _a ? _a : themes_1.default.DEFAULT),
748
+ internalProps.stick.changedCells.clear(), internalProps.theme = themes_1.default.of(null !== (_b = options.theme) && void 0 !== _b ? _b : themes_1.default.DEFAULT),
729
749
  internalProps.theme.isPivot = this.isPivotTable(), this.scenegraph.updateStageBackground(),
730
- internalProps.autoWrapText = options.autoWrapText, internalProps.allowFrozenColCount = null !== (_b = options.allowFrozenColCount) && void 0 !== _b ? _b : 0,
731
- internalProps.limitMaxAutoWidth = null !== (_c = options.limitMaxAutoWidth) && void 0 !== _c ? _c : 450,
750
+ internalProps.autoWrapText = options.autoWrapText, internalProps.allowFrozenColCount = null !== (_c = options.allowFrozenColCount) && void 0 !== _c ? _c : 0,
751
+ internalProps.limitMaxAutoWidth = null !== (_d = options.limitMaxAutoWidth) && void 0 !== _d ? _d : 450,
732
752
  internalProps.limitMinWidth = null != limitMinWidth ? "number" == typeof limitMinWidth ? limitMinWidth : limitMinWidth ? 10 : 0 : 10,
733
- this._vDataSet = new vdataset_1.DataSet, null === (_d = internalProps.legends) || void 0 === _d || _d.release(),
734
- null === (_e = internalProps.title) || void 0 === _e || _e.release(), internalProps.layoutMap.release(),
753
+ this._vDataSet = new vdataset_1.DataSet, null === (_e = internalProps.legends) || void 0 === _e || _e.release(),
754
+ null === (_f = internalProps.title) || void 0 === _f || _f.release(), internalProps.layoutMap.release(),
735
755
  this.scenegraph.clearCells(), this.scenegraph.updateComponent(), this.stateManager.updateOptionSetState(),
736
756
  this._updateSize(), this.eventManager.updateEventBinder(), options.legends && (internalProps.legends = (0,
737
757
  create_legend_1.createLegend)(options.legends, this), this.scenegraph.tableGroup.setAttributes({
@@ -745,7 +765,8 @@ class BaseTable extends EventTarget_1.EventTarget {
745
765
  internalProps.menu = Object.assign({
746
766
  renderMode: "html"
747
767
  }, options.menu), "html" !== internalProps.menu.renderMode || internalProps.menuHandler || (internalProps.menuHandler = new MenuHandler_1.MenuHandler(this)),
748
- this.clearCellStyleCache(), this.clearColWidthCache(), this.clearRowHeightCache();
768
+ this.clearCellStyleCache(), this.clearColWidthCache(), this.clearRowHeightCache(),
769
+ internalProps.customMergeCell = options.customMergeCell, this.customCellStylePlugin.updateCustomCell(null !== (_g = options.customCellStyle) && void 0 !== _g ? _g : [], null !== (_h = options.customCellStyleArrangement) && void 0 !== _h ? _h : []);
749
770
  }
750
771
  renderWithRecreateCells() {
751
772
  const oldHoverState = {
@@ -1495,6 +1516,9 @@ class BaseTable extends EventTarget_1.EventTarget {
1495
1516
  measureText(text, font) {
1496
1517
  return text_measure_1.textMeasure.measureText(text, font);
1497
1518
  }
1519
+ measureTextBounds(attribute) {
1520
+ return (0, text_measure_1.measureTextBounds)(attribute);
1521
+ }
1498
1522
  getCustomRender(col, row) {
1499
1523
  let customRender;
1500
1524
  if ("body" !== this.getCellLocation(col, row)) {