@visactor/vtable 0.20.4-alpha.2 → 0.21.0-alpha.0

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 (263) hide show
  1. package/cjs/ListTable.d.ts +9 -2
  2. package/cjs/ListTable.js +25 -9
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.d.ts +7 -1
  5. package/cjs/PivotChart.js +7 -7
  6. package/cjs/PivotChart.js.map +1 -1
  7. package/cjs/PivotTable.d.ts +9 -2
  8. package/cjs/PivotTable.js +26 -11
  9. package/cjs/PivotTable.js.map +1 -1
  10. package/cjs/body-helper/style/Style.d.ts +3 -0
  11. package/cjs/body-helper/style/Style.js +16 -9
  12. package/cjs/body-helper/style/Style.js.map +1 -1
  13. package/cjs/core/BaseTable.d.ts +16 -2
  14. package/cjs/core/BaseTable.js +18 -10
  15. package/cjs/core/BaseTable.js.map +1 -1
  16. package/cjs/core/tableHelper.js +3 -1
  17. package/cjs/core/tableHelper.js.map +1 -1
  18. package/cjs/event/listener/container-dom.js +58 -12
  19. package/cjs/event/listener/container-dom.js.map +1 -1
  20. package/cjs/event/listener/table-group.js +2 -1
  21. package/cjs/event/listener/table-group.js.map +1 -1
  22. package/cjs/header-helper/style/Style.d.ts +3 -0
  23. package/cjs/header-helper/style/Style.js +15 -8
  24. package/cjs/header-helper/style/Style.js.map +1 -1
  25. package/cjs/index.d.ts +3 -2
  26. package/cjs/index.js +16 -2
  27. package/cjs/index.js.map +1 -1
  28. package/cjs/layout/pivot-header-layout.d.ts +3 -2
  29. package/cjs/layout/pivot-header-layout.js +24 -18
  30. package/cjs/layout/pivot-header-layout.js.map +1 -1
  31. package/cjs/layout/row-height-map.d.ts +1 -0
  32. package/cjs/layout/row-height-map.js +25 -1
  33. package/cjs/layout/row-height-map.js.map +1 -1
  34. package/cjs/layout/simple-header-layout.d.ts +3 -2
  35. package/cjs/layout/simple-header-layout.js +16 -12
  36. package/cjs/layout/simple-header-layout.js.map +1 -1
  37. package/cjs/plugins/custom-cell-style.d.ts +19 -0
  38. package/cjs/plugins/custom-cell-style.js +63 -0
  39. package/cjs/plugins/custom-cell-style.js.map +1 -0
  40. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js +29 -7
  41. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  42. package/cjs/scenegraph/graphic/contributions/index.js +4 -2
  43. package/cjs/scenegraph/graphic/contributions/index.js.map +1 -1
  44. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js +5 -2
  45. package/cjs/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  46. package/cjs/scenegraph/graphic/contributions/text-contribution-render.d.ts +12 -0
  47. package/cjs/scenegraph/graphic/contributions/text-contribution-render.js +72 -0
  48. package/cjs/scenegraph/graphic/contributions/text-contribution-render.js.map +1 -0
  49. package/cjs/scenegraph/group-creater/cell-helper.js +11 -4
  50. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  51. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +22 -19
  52. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  53. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +21 -18
  54. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  55. package/cjs/scenegraph/group-creater/cell-type/image-cell.d.ts +6 -0
  56. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +42 -31
  57. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  58. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js +21 -18
  59. package/cjs/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  60. package/cjs/scenegraph/group-creater/cell-type/text-cell.js +11 -10
  61. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  62. package/cjs/scenegraph/group-creater/cell-type/video-cell.js +19 -15
  63. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  64. package/cjs/scenegraph/group-creater/progress/default-width-height.d.ts +3 -0
  65. package/cjs/scenegraph/group-creater/progress/default-width-height.js +24 -0
  66. package/cjs/scenegraph/group-creater/progress/default-width-height.js.map +1 -0
  67. package/cjs/scenegraph/group-creater/progress/proxy.d.ts +8 -4
  68. package/cjs/scenegraph/group-creater/progress/proxy.js +50 -10
  69. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  70. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.d.ts +1 -1
  71. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +14 -16
  72. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
  73. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.d.ts +1 -1
  74. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +28 -30
  75. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  76. package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js +1 -1
  77. package/cjs/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
  78. package/cjs/scenegraph/group-creater/progress/update-position/util.js.map +1 -1
  79. package/cjs/scenegraph/layout/compute-col-width.js +1 -1
  80. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  81. package/cjs/scenegraph/layout/compute-row-height.js +3 -2
  82. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  83. package/cjs/scenegraph/layout/move-cell.d.ts +1 -2
  84. package/cjs/scenegraph/layout/move-cell.js +3 -16
  85. package/cjs/scenegraph/layout/move-cell.js.map +1 -1
  86. package/cjs/scenegraph/layout/update-width.js +3 -3
  87. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  88. package/cjs/scenegraph/scenegraph.d.ts +6 -5
  89. package/cjs/scenegraph/scenegraph.js +23 -15
  90. package/cjs/scenegraph/scenegraph.js.map +1 -1
  91. package/cjs/scenegraph/stick-text/index.js +71 -35
  92. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  93. package/cjs/scenegraph/utils/cell-border-stroke-width.d.ts +3 -0
  94. package/cjs/scenegraph/utils/cell-border-stroke-width.js +16 -0
  95. package/cjs/scenegraph/utils/cell-border-stroke-width.js.map +1 -0
  96. package/cjs/scenegraph/utils/get-prop.js +3 -3
  97. package/cjs/scenegraph/utils/get-prop.js.map +1 -1
  98. package/cjs/scenegraph/utils/text-icon-layout.js +11 -5
  99. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  100. package/cjs/scenegraph/utils/text-measure.d.ts +4 -2
  101. package/cjs/scenegraph/utils/text-measure.js +20 -5
  102. package/cjs/scenegraph/utils/text-measure.js.map +1 -1
  103. package/cjs/state/cell-move/index.js +6 -6
  104. package/cjs/state/cell-move/index.js.map +1 -1
  105. package/cjs/state/state.js +2 -2
  106. package/cjs/state/state.js.map +1 -1
  107. package/cjs/themes/ARCO.js +2 -1
  108. package/cjs/themes/theme.d.ts +3 -0
  109. package/cjs/themes/theme.js +21 -1
  110. package/cjs/themes/theme.js.map +1 -1
  111. package/cjs/tools/NumberMap.d.ts +1 -0
  112. package/cjs/tools/NumberMap.js +21 -0
  113. package/cjs/tools/NumberMap.js.map +1 -1
  114. package/cjs/tools/isx.d.ts +1 -1
  115. package/cjs/tools/util.d.ts +1 -1
  116. package/cjs/ts-types/base-table.d.ts +17 -2
  117. package/cjs/ts-types/base-table.js.map +1 -1
  118. package/cjs/ts-types/column/style.d.ts +2 -0
  119. package/cjs/ts-types/column/style.js.map +1 -1
  120. package/cjs/ts-types/common.d.ts +14 -2
  121. package/cjs/ts-types/common.js.map +1 -1
  122. package/cjs/ts-types/customElement.d.ts +2 -0
  123. package/cjs/ts-types/customElement.js.map +1 -1
  124. package/cjs/ts-types/style-define.d.ts +2 -0
  125. package/cjs/ts-types/style-define.js.map +1 -1
  126. package/cjs/ts-types/table-engine.d.ts +1 -1
  127. package/cjs/ts-types/table-engine.js.map +1 -1
  128. package/cjs/ts-types/theme.d.ts +3 -0
  129. package/cjs/ts-types/theme.js.map +1 -1
  130. package/cjs/vrender.js.map +1 -1
  131. package/dist/vtable.js +4771 -2179
  132. package/dist/vtable.min.js +2 -2
  133. package/es/ListTable.d.ts +9 -2
  134. package/es/ListTable.js +25 -9
  135. package/es/ListTable.js.map +1 -1
  136. package/es/PivotChart.d.ts +7 -1
  137. package/es/PivotChart.js +7 -7
  138. package/es/PivotChart.js.map +1 -1
  139. package/es/PivotTable.d.ts +9 -2
  140. package/es/PivotTable.js +27 -12
  141. package/es/PivotTable.js.map +1 -1
  142. package/es/body-helper/style/Style.d.ts +3 -0
  143. package/es/body-helper/style/Style.js +16 -9
  144. package/es/body-helper/style/Style.js.map +1 -1
  145. package/es/core/BaseTable.d.ts +16 -2
  146. package/es/core/BaseTable.js +19 -9
  147. package/es/core/BaseTable.js.map +1 -1
  148. package/es/core/tableHelper.js +3 -1
  149. package/es/core/tableHelper.js.map +1 -1
  150. package/es/event/listener/container-dom.js +57 -13
  151. package/es/event/listener/container-dom.js.map +1 -1
  152. package/es/event/listener/table-group.js +1 -1
  153. package/es/event/listener/table-group.js.map +1 -1
  154. package/es/header-helper/style/Style.d.ts +3 -0
  155. package/es/header-helper/style/Style.js +15 -8
  156. package/es/header-helper/style/Style.js.map +1 -1
  157. package/es/index.d.ts +3 -2
  158. package/es/index.js +4 -2
  159. package/es/index.js.map +1 -1
  160. package/es/layout/pivot-header-layout.d.ts +3 -2
  161. package/es/layout/pivot-header-layout.js +24 -18
  162. package/es/layout/pivot-header-layout.js.map +1 -1
  163. package/es/layout/row-height-map.d.ts +1 -0
  164. package/es/layout/row-height-map.js +25 -1
  165. package/es/layout/row-height-map.js.map +1 -1
  166. package/es/layout/simple-header-layout.d.ts +3 -2
  167. package/es/layout/simple-header-layout.js +16 -12
  168. package/es/layout/simple-header-layout.js.map +1 -1
  169. package/es/plugins/custom-cell-style.d.ts +19 -0
  170. package/es/plugins/custom-cell-style.js +55 -0
  171. package/es/plugins/custom-cell-style.js.map +1 -0
  172. package/es/scenegraph/graphic/contributions/group-contribution-render.js +29 -6
  173. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  174. package/es/scenegraph/graphic/contributions/index.js +5 -2
  175. package/es/scenegraph/graphic/contributions/index.js.map +1 -1
  176. package/es/scenegraph/graphic/contributions/rect-contribution-render.js +5 -2
  177. package/es/scenegraph/graphic/contributions/rect-contribution-render.js.map +1 -1
  178. package/es/scenegraph/graphic/contributions/text-contribution-render.d.ts +12 -0
  179. package/es/scenegraph/graphic/contributions/text-contribution-render.js +69 -0
  180. package/es/scenegraph/graphic/contributions/text-contribution-render.js.map +1 -0
  181. package/es/scenegraph/group-creater/cell-helper.js +11 -4
  182. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  183. package/es/scenegraph/group-creater/cell-type/chart-cell.js +23 -18
  184. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  185. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +22 -17
  186. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  187. package/es/scenegraph/group-creater/cell-type/image-cell.d.ts +6 -0
  188. package/es/scenegraph/group-creater/cell-type/image-cell.js +42 -29
  189. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  190. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js +22 -17
  191. package/es/scenegraph/group-creater/cell-type/spark-line-cell.js.map +1 -1
  192. package/es/scenegraph/group-creater/cell-type/text-cell.js +11 -9
  193. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  194. package/es/scenegraph/group-creater/cell-type/video-cell.js +20 -14
  195. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  196. package/es/scenegraph/group-creater/progress/default-width-height.d.ts +3 -0
  197. package/es/scenegraph/group-creater/progress/default-width-height.js +18 -0
  198. package/es/scenegraph/group-creater/progress/default-width-height.js.map +1 -0
  199. package/es/scenegraph/group-creater/progress/proxy.d.ts +8 -4
  200. package/es/scenegraph/group-creater/progress/proxy.js +51 -11
  201. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  202. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.d.ts +1 -1
  203. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js +14 -16
  204. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-x.js.map +1 -1
  205. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.d.ts +1 -1
  206. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +28 -31
  207. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  208. package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js +1 -1
  209. package/es/scenegraph/group-creater/progress/update-position/update-auto-row.js.map +1 -1
  210. package/es/scenegraph/group-creater/progress/update-position/util.js.map +1 -1
  211. package/es/scenegraph/layout/compute-col-width.js +1 -1
  212. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  213. package/es/scenegraph/layout/compute-row-height.js +3 -1
  214. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  215. package/es/scenegraph/layout/move-cell.d.ts +1 -2
  216. package/es/scenegraph/layout/move-cell.js +3 -16
  217. package/es/scenegraph/layout/move-cell.js.map +1 -1
  218. package/es/scenegraph/layout/update-width.js +3 -3
  219. package/es/scenegraph/layout/update-width.js.map +1 -1
  220. package/es/scenegraph/scenegraph.d.ts +6 -5
  221. package/es/scenegraph/scenegraph.js +22 -15
  222. package/es/scenegraph/scenegraph.js.map +1 -1
  223. package/es/scenegraph/stick-text/index.js +71 -35
  224. package/es/scenegraph/stick-text/index.js.map +1 -1
  225. package/es/scenegraph/utils/cell-border-stroke-width.d.ts +3 -0
  226. package/es/scenegraph/utils/cell-border-stroke-width.js +10 -0
  227. package/es/scenegraph/utils/cell-border-stroke-width.js.map +1 -0
  228. package/es/scenegraph/utils/get-prop.js +3 -3
  229. package/es/scenegraph/utils/get-prop.js.map +1 -1
  230. package/es/scenegraph/utils/text-icon-layout.js +11 -5
  231. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  232. package/es/scenegraph/utils/text-measure.d.ts +4 -2
  233. package/es/scenegraph/utils/text-measure.js +19 -5
  234. package/es/scenegraph/utils/text-measure.js.map +1 -1
  235. package/es/state/cell-move/index.js +6 -6
  236. package/es/state/cell-move/index.js.map +1 -1
  237. package/es/state/state.js +2 -2
  238. package/es/state/state.js.map +1 -1
  239. package/es/themes/ARCO.js +2 -1
  240. package/es/themes/theme.d.ts +3 -0
  241. package/es/themes/theme.js +21 -1
  242. package/es/themes/theme.js.map +1 -1
  243. package/es/tools/NumberMap.d.ts +1 -0
  244. package/es/tools/NumberMap.js +21 -0
  245. package/es/tools/NumberMap.js.map +1 -1
  246. package/es/tools/isx.d.ts +1 -1
  247. package/es/tools/util.d.ts +1 -1
  248. package/es/ts-types/base-table.d.ts +17 -2
  249. package/es/ts-types/base-table.js.map +1 -1
  250. package/es/ts-types/column/style.d.ts +2 -0
  251. package/es/ts-types/column/style.js.map +1 -1
  252. package/es/ts-types/common.d.ts +14 -2
  253. package/es/ts-types/common.js.map +1 -1
  254. package/es/ts-types/customElement.d.ts +2 -0
  255. package/es/ts-types/customElement.js.map +1 -1
  256. package/es/ts-types/style-define.d.ts +2 -0
  257. package/es/ts-types/style-define.js.map +1 -1
  258. package/es/ts-types/table-engine.d.ts +1 -1
  259. package/es/ts-types/table-engine.js.map +1 -1
  260. package/es/ts-types/theme.d.ts +3 -0
  261. package/es/ts-types/theme.js.map +1 -1
  262. package/es/vrender.js.map +1 -1
  263. package/package.json +11 -11
@@ -12,46 +12,47 @@ export function handleTextStick(table) {
12
12
  });
13
13
  }));
14
14
  })), changedCells.clear();
15
- const {scrollTop: scrollTop, scrollLeft: scrollLeft, frozenRowCount: frozenRowCount, frozenColCount: frozenColCount} = table, frozenRowsHeight = table.getFrozenRowsHeight(), frozenColsWidth = table.getFrozenColsWidth(), {row: rowTop} = table.getRowAt(scrollTop + frozenRowsHeight + 1), {col: colLeft} = table.getColAt(scrollLeft + frozenColsWidth + 1), rowStart = Math.max(rowTop, table.frozenRowCount), colStart = Math.max(colLeft, table.frozenColCount), rowEnd = table.getAllRowsHeight() > table.tableNoFrameHeight ? table.getRowAt(scrollTop + table.tableNoFrameHeight - 1).row : table.rowCount - 1, colEnd = table.getAllColsWidth() > table.tableNoFrameWidth ? table.getColAt(scrollLeft + table.tableNoFrameWidth - 1).col : table.colCount - 1;
15
+ const {scrollTop: scrollTop, scrollLeft: scrollLeft, frozenRowCount: frozenRowCount, frozenColCount: frozenColCount} = table, frozenRowsHeight = table.getFrozenRowsHeight(), frozenColsWidth = table.getFrozenColsWidth(), {row: rowTop} = table.getRowAt(scrollTop + frozenRowsHeight + 1), {col: colLeft} = table.getColAt(scrollLeft + frozenColsWidth + 1), rowStart = Math.max(rowTop, table.frozenRowCount), colStart = Math.max(colLeft, table.frozenColCount), rowEnd = table.getAllRowsHeight() > table.tableNoFrameHeight ? table.getRowAt(scrollTop + table.tableNoFrameHeight - table.getBottomFrozenRowsHeight() - 1).row : table.rowCount - table.bottomFrozenRowCount - 1, colEnd = table.getAllColsWidth() > table.tableNoFrameWidth ? table.getColAt(scrollLeft + table.tableNoFrameWidth - table.getRightFrozenColsWidth() - 1).col : table.colCount - table.rightFrozenColCount - 1;
16
16
  if (!(colEnd < 0 || rowEnd < 0)) {
17
17
  for (let row = 0; row < frozenRowCount && !(colEnd < colStart); row++) [ colStart, colEnd ].forEach((col => {
18
- var _a;
19
- if (null === (_a = table._getCellStyle(col, row)) || void 0 === _a ? void 0 : _a.textStick) {
20
- adjustCellContentHorizontalLayout(table.scenegraph.getCell(col, row), frozenColsWidth + table.tableX, table.tableNoFrameWidth - table.getRightFrozenColsWidth() + table.tableX, changedCells, table);
18
+ const style = table._getCellStyle(col, row);
19
+ if (null == style ? void 0 : style.textStick) {
20
+ adjustCellContentHorizontalLayout(table.scenegraph.getCell(col, row), frozenColsWidth + table.tableX, table.tableNoFrameWidth - table.getRightFrozenColsWidth() + table.tableX, changedCells, null == style ? void 0 : style.textStickBaseOnAlign, table);
21
21
  }
22
22
  }));
23
23
  for (let col = 0; col < frozenColCount && !(rowEnd < rowStart); col++) [ rowStart, rowEnd ].forEach((row => {
24
- var _a;
25
- if ((null === (_a = table._getCellStyle(col, row)) || void 0 === _a ? void 0 : _a.textStick) && "tree" !== table.internalProps.layoutMap.rowHierarchyType) {
26
- adjustCellContentVerticalLayout(table.scenegraph.getCell(col, row), frozenRowsHeight + table.tableY, table.tableNoFrameHeight - table.getBottomFrozenRowsHeight() + table.tableY, changedCells, table);
24
+ const style = table._getCellStyle(col, row);
25
+ if ((null == style ? void 0 : style.textStick) && "tree" !== table.internalProps.layoutMap.rowHierarchyType) {
26
+ adjustCellContentVerticalLayout(table.scenegraph.getCell(col, row), frozenRowsHeight + table.tableY, table.tableNoFrameHeight - table.getBottomFrozenRowsHeight() + table.tableY, changedCells, null == style ? void 0 : style.textStickBaseOnAlign, table);
27
27
  }
28
28
  }));
29
29
  for (let col = colStart; col <= colEnd && !(rowEnd < rowStart); col++) [ rowStart, rowEnd ].forEach((row => {
30
- var _a;
31
- if (null === (_a = table._getCellStyle(col, row)) || void 0 === _a ? void 0 : _a.textStick) {
32
- adjustCellContentVerticalLayout(table.scenegraph.getCell(col, row), frozenRowsHeight + table.tableY, table.tableNoFrameHeight - table.getBottomFrozenRowsHeight() + table.tableY, changedCells, table);
30
+ const style = table._getCellStyle(col, row);
31
+ if (null == style ? void 0 : style.textStick) {
32
+ adjustCellContentVerticalLayout(table.scenegraph.getCell(col, row), frozenRowsHeight + table.tableY, table.tableNoFrameHeight - table.getBottomFrozenRowsHeight() + table.tableY, changedCells, null == style ? void 0 : style.textStickBaseOnAlign, table);
33
33
  }
34
34
  }));
35
35
  for (let row = rowStart; row < rowEnd && !(colEnd < colStart); row++) [ colStart, colEnd ].forEach((col => {
36
36
  var _a;
37
+ const style = table._getCellStyle(col, row);
37
38
  if (null === (_a = table._getCellStyle(col, row)) || void 0 === _a ? void 0 : _a.textStick) {
38
- adjustCellContentHorizontalLayout(table.scenegraph.getCell(col, row), frozenColsWidth + table.tableX, table.tableNoFrameWidth - table.getRightFrozenColsWidth() + table.tableX, changedCells, table);
39
+ adjustCellContentHorizontalLayout(table.scenegraph.getCell(col, row), frozenColsWidth + table.tableX, table.tableNoFrameWidth - table.getRightFrozenColsWidth() + table.tableX, changedCells, null == style ? void 0 : style.textStickBaseOnAlign, table);
39
40
  }
40
41
  }));
41
42
  }
42
43
  }
43
44
 
44
- function adjustCellContentVerticalLayout(cellGroup, minTop, maxTop, changedCells, table) {
45
+ function adjustCellContentVerticalLayout(cellGroup, minTop, maxTop, changedCells, textStickBaseOnAlign, table) {
45
46
  if (isNumber(cellGroup.mergeStartCol) && isNumber(cellGroup.mergeStartRow) && isNumber(cellGroup.mergeEndCol) && isNumber(cellGroup.mergeEndRow)) {
46
47
  const {colStart: colStart, colEnd: colEnd, rowStart: rowStart, rowEnd: rowEnd} = getCellMergeRange(cellGroup, table.scenegraph);
47
48
  for (let col = colStart; col <= colEnd; col++) for (let row = rowStart; row <= rowEnd; row++) {
48
- dealVertical(table.scenegraph.getCell(col, row), minTop, maxTop, changedCells);
49
+ dealVertical(table.scenegraph.getCell(col, row), minTop, maxTop, changedCells, textStickBaseOnAlign);
49
50
  }
50
- } else dealVertical(cellGroup, minTop, maxTop, changedCells);
51
+ } else dealVertical(cellGroup, minTop, maxTop, changedCells, textStickBaseOnAlign);
51
52
  }
52
53
 
53
- function dealVertical(cellGroup, minTop, maxTop, changedCells) {
54
- var _a, _b, _c, _d, _e, _f, _g, _h;
54
+ function dealVertical(cellGroup, minTop, maxTop, changedCells, textStickBaseOnAlign) {
55
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
55
56
  const graphic = cellGroup.getChildByName("text", !0) || cellGroup.getChildByName("image", !0);
56
57
  if (!graphic) return;
57
58
  if ("image" === graphic.type) {
@@ -59,15 +60,30 @@ function dealVertical(cellGroup, minTop, maxTop, changedCells) {
59
60
  if (!url || !graphic.resources) return;
60
61
  if ("success" !== graphic.resources.get(url).state) return;
61
62
  }
63
+ const textBaseline = null !== (_a = graphic.textBaseline) && void 0 !== _a ? _a : "top";
62
64
  graphic.AABBBounds.width();
63
65
  const textTop = graphic.globalAABBBounds.y1, textBottom = graphic.globalAABBBounds.y2;
64
- if (textTop < minTop) {
66
+ if ("middle" === textBaseline && textStickBaseOnAlign) {
67
+ const cellTop = cellGroup.globalAABBBounds.y1 + (null !== (_c = null === (_b = cellGroup.firstChild) || void 0 === _b ? void 0 : _b.attribute.dy) && void 0 !== _c ? _c : 0), cellBottom = cellTop + (null !== (_e = null !== (_d = cellGroup.contentHeight) && void 0 !== _d ? _d : cellGroup.attribute.height) && void 0 !== _e ? _e : 0);
68
+ if (cellTop < minTop || cellBottom > maxTop) {
69
+ const visibleCellTop = Math.max(cellTop, minTop), visibleCellBottom = Math.min(cellBottom, maxTop), delta = graphic.globalTransMatrix.f - (visibleCellBottom + visibleCellTop) / 2;
70
+ !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) && changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {
71
+ col: cellGroup.col,
72
+ row: cellGroup.row,
73
+ dx: null !== (_g = null === (_f = cellGroup.firstChild) || void 0 === _f ? void 0 : _f.attribute.dx) && void 0 !== _g ? _g : 0,
74
+ dy: null !== (_j = null === (_h = cellGroup.firstChild) || void 0 === _h ? void 0 : _h.attribute.dy) && void 0 !== _j ? _j : 0
75
+ }), cellGroup.forEachChildren((child => {
76
+ var _a;
77
+ child.setAttribute("dy", (null !== (_a = child.attribute.dy) && void 0 !== _a ? _a : 0) - delta + 2);
78
+ }));
79
+ }
80
+ } else if (textTop < minTop) {
65
81
  const deltaHeight = textTop - minTop;
66
82
  !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) && changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {
67
83
  col: cellGroup.col,
68
84
  row: cellGroup.row,
69
- dx: null !== (_b = null === (_a = cellGroup.firstChild) || void 0 === _a ? void 0 : _a.attribute.dx) && void 0 !== _b ? _b : 0,
70
- dy: null !== (_d = null === (_c = cellGroup.firstChild) || void 0 === _c ? void 0 : _c.attribute.dy) && void 0 !== _d ? _d : 0
85
+ dx: null !== (_l = null === (_k = cellGroup.firstChild) || void 0 === _k ? void 0 : _k.attribute.dx) && void 0 !== _l ? _l : 0,
86
+ dy: null !== (_o = null === (_m = cellGroup.firstChild) || void 0 === _m ? void 0 : _m.attribute.dy) && void 0 !== _o ? _o : 0
71
87
  }), cellGroup.forEachChildren((child => {
72
88
  var _a;
73
89
  child.setAttribute("dy", (null !== (_a = child.attribute.dy) && void 0 !== _a ? _a : 0) - deltaHeight + 2);
@@ -77,8 +93,8 @@ function dealVertical(cellGroup, minTop, maxTop, changedCells) {
77
93
  !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) && changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {
78
94
  col: cellGroup.col,
79
95
  row: cellGroup.row,
80
- dx: null !== (_f = null === (_e = cellGroup.firstChild) || void 0 === _e ? void 0 : _e.attribute.dx) && void 0 !== _f ? _f : 0,
81
- dy: null !== (_h = null === (_g = cellGroup.firstChild) || void 0 === _g ? void 0 : _g.attribute.dy) && void 0 !== _h ? _h : 0
96
+ dx: null !== (_q = null === (_p = cellGroup.firstChild) || void 0 === _p ? void 0 : _p.attribute.dx) && void 0 !== _q ? _q : 0,
97
+ dy: null !== (_s = null === (_r = cellGroup.firstChild) || void 0 === _r ? void 0 : _r.attribute.dy) && void 0 !== _s ? _s : 0
82
98
  }), cellGroup.forEachChildren((child => {
83
99
  var _a;
84
100
  child.setAttribute("dy", (null !== (_a = child.attribute.dy) && void 0 !== _a ? _a : 0) - deltaHeight);
@@ -86,28 +102,48 @@ function dealVertical(cellGroup, minTop, maxTop, changedCells) {
86
102
  }
87
103
  }
88
104
 
89
- function adjustCellContentHorizontalLayout(cellGroup, minLeft, maxLeft, changedCells, table) {
105
+ function adjustCellContentHorizontalLayout(cellGroup, minLeft, maxLeft, changedCells, textStickBaseOnAlign, table) {
90
106
  if (isNumber(cellGroup.mergeStartCol) && isNumber(cellGroup.mergeStartRow) && isNumber(cellGroup.mergeEndCol) && isNumber(cellGroup.mergeEndRow)) {
91
107
  const {colStart: colStart, colEnd: colEnd, rowStart: rowStart, rowEnd: rowEnd} = getCellMergeRange(cellGroup, table.scenegraph);
92
108
  for (let col = colStart; col <= colEnd; col++) for (let row = rowStart; row <= rowEnd; row++) {
93
- dealHorizontal(table.scenegraph.getCell(col, row), minLeft, maxLeft, changedCells);
109
+ dealHorizontal(table.scenegraph.getCell(col, row), minLeft, maxLeft, changedCells, textStickBaseOnAlign);
94
110
  }
95
- } else dealHorizontal(cellGroup, minLeft, maxLeft, changedCells);
111
+ } else dealHorizontal(cellGroup, minLeft, maxLeft, changedCells, textStickBaseOnAlign);
96
112
  }
97
113
 
98
- function dealHorizontal(cellGroup, minLeft, maxLeft, changedCells) {
99
- var _a, _b, _c, _d, _e, _f, _g, _h;
100
- const text = cellGroup.getChildByName("text", !0);
101
- if (!text) return;
102
- text.AABBBounds.width();
103
- const textLeft = text.globalAABBBounds.x1, textRight = text.globalAABBBounds.x2;
104
- if (textLeft < minLeft) {
114
+ function dealHorizontal(cellGroup, minLeft, maxLeft, changedCells, textStickBaseOnAlign) {
115
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
116
+ const graphic = cellGroup.getChildByName("text", !0) || cellGroup.getChildByName("image", !0);
117
+ if (!graphic) return;
118
+ if ("image" === graphic.type) {
119
+ const {image: url} = graphic.attribute;
120
+ if (!url || !graphic.resources) return;
121
+ if ("success" !== graphic.resources.get(url).state) return;
122
+ }
123
+ const textAlign = null !== (_b = null !== (_a = graphic.attribute.textAlign) && void 0 !== _a ? _a : graphic.textAlign) && void 0 !== _b ? _b : "left";
124
+ graphic.AABBBounds.width();
125
+ const textLeft = graphic.globalAABBBounds.x1, textRight = graphic.globalAABBBounds.x2;
126
+ if ("center" === textAlign && textStickBaseOnAlign) {
127
+ const cellLeft = cellGroup.globalAABBBounds.x1 + (null !== (_d = null === (_c = cellGroup.firstChild) || void 0 === _c ? void 0 : _c.attribute.dx) && void 0 !== _d ? _d : 0), cellRight = cellLeft + (null !== (_f = null !== (_e = cellGroup.contentWidth) && void 0 !== _e ? _e : cellGroup.attribute.width) && void 0 !== _f ? _f : 0);
128
+ if (cellLeft < minLeft || cellRight > maxLeft) {
129
+ const visibleCellLeft = Math.max(cellLeft, minLeft), visibleCellRight = Math.min(cellRight, maxLeft), delta = graphic.globalTransMatrix.e - (visibleCellRight + visibleCellLeft) / 2;
130
+ !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) && changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {
131
+ col: cellGroup.col,
132
+ row: cellGroup.row,
133
+ dx: null !== (_h = null === (_g = cellGroup.firstChild) || void 0 === _g ? void 0 : _g.attribute.dx) && void 0 !== _h ? _h : 0,
134
+ dy: null !== (_k = null === (_j = cellGroup.firstChild) || void 0 === _j ? void 0 : _j.attribute.dy) && void 0 !== _k ? _k : 0
135
+ }), cellGroup.forEachChildren((child => {
136
+ var _a;
137
+ child.setAttribute("dx", (null !== (_a = child.attribute.dx) && void 0 !== _a ? _a : 0) - delta + 2);
138
+ }));
139
+ }
140
+ } else if (textLeft < minLeft) {
105
141
  const deltaWidth = textLeft - minLeft;
106
142
  !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) && changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {
107
143
  col: cellGroup.col,
108
144
  row: cellGroup.row,
109
- dx: null !== (_b = null === (_a = cellGroup.firstChild) || void 0 === _a ? void 0 : _a.attribute.dx) && void 0 !== _b ? _b : 0,
110
- dy: null !== (_d = null === (_c = cellGroup.firstChild) || void 0 === _c ? void 0 : _c.attribute.dy) && void 0 !== _d ? _d : 0
145
+ dx: null !== (_m = null === (_l = cellGroup.firstChild) || void 0 === _l ? void 0 : _l.attribute.dx) && void 0 !== _m ? _m : 0,
146
+ dy: null !== (_p = null === (_o = cellGroup.firstChild) || void 0 === _o ? void 0 : _o.attribute.dy) && void 0 !== _p ? _p : 0
111
147
  }), cellGroup.forEachChildren((child => {
112
148
  var _a;
113
149
  child.setAttribute("dx", (null !== (_a = child.attribute.dx) && void 0 !== _a ? _a : 0) - deltaWidth + 2);
@@ -117,8 +153,8 @@ function dealHorizontal(cellGroup, minLeft, maxLeft, changedCells) {
117
153
  !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) && changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {
118
154
  col: cellGroup.col,
119
155
  row: cellGroup.row,
120
- dx: null !== (_f = null === (_e = cellGroup.firstChild) || void 0 === _e ? void 0 : _e.attribute.dx) && void 0 !== _f ? _f : 0,
121
- dy: null !== (_h = null === (_g = cellGroup.firstChild) || void 0 === _g ? void 0 : _g.attribute.dy) && void 0 !== _h ? _h : 0
156
+ dx: null !== (_r = null === (_q = cellGroup.firstChild) || void 0 === _q ? void 0 : _q.attribute.dx) && void 0 !== _r ? _r : 0,
157
+ dy: null !== (_t = null === (_s = cellGroup.firstChild) || void 0 === _s ? void 0 : _s.attribute.dy) && void 0 !== _t ? _t : 0
122
158
  }), cellGroup.forEachChildren((child => {
123
159
  var _a;
124
160
  child.setAttribute("dx", (null !== (_a = child.attribute.dx) && void 0 !== _a ? _a : 0) - deltaWidth);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/stick-text/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { IGraphic, Image, Text } from './../../vrender';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { Group } from '../graphic/group';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport type { ITextStyleOption, StickCell } from '../../ts-types';\nimport { isNumber } from '@visactor/vutils';\nimport { getCellMergeRange } from '../../tools/merge-range';\n\nexport function handleTextStick(table: BaseTableAPI) {\n // reset\n const { changedCells } = table.internalProps.stick; // changedCells only cache one time\n changedCells.forEach((cellPos: StickCell) => {\n const cellGroup = table.scenegraph.getCell(cellPos.col, cellPos.row);\n cellGroup.forEachChildren((child: IGraphic) => {\n child.setAttributes({\n dx: cellPos.dx,\n dy: cellPos.dy\n });\n });\n });\n changedCells.clear();\n\n const { scrollTop, scrollLeft, frozenRowCount, frozenColCount } = table;\n const frozenRowsHeight = table.getFrozenRowsHeight();\n const frozenColsWidth = table.getFrozenColsWidth();\n // 计算非冻结\n const { row: rowTop } = table.getRowAt(scrollTop + frozenRowsHeight + 1);\n const { col: colLeft } = table.getColAt(scrollLeft + frozenColsWidth + 1);\n const rowStart = Math.max(rowTop, table.frozenRowCount);\n const colStart = Math.max(colLeft, table.frozenColCount);\n const rowEnd =\n table.getAllRowsHeight() > table.tableNoFrameHeight\n ? table.getRowAt(scrollTop + table.tableNoFrameHeight - 1).row\n : table.rowCount - 1;\n const colEnd =\n table.getAllColsWidth() > table.tableNoFrameWidth\n ? table.getColAt(scrollLeft + table.tableNoFrameWidth - 1).col\n : table.colCount - 1;\n if (colEnd < 0 || rowEnd < 0) {\n return;\n }\n\n // column header\n for (let row = 0; row < frozenRowCount; row++) {\n if (colEnd < colStart) {\n break;\n }\n [colStart, colEnd].forEach((col: number) => {\n if (table._getCellStyle(col, row)?.textStick) {\n const cellGroup = table.scenegraph.getCell(col, row);\n // adjust cell Horizontal\n adjustCellContentHorizontalLayout(\n cellGroup,\n frozenColsWidth + table.tableX,\n table.tableNoFrameWidth - table.getRightFrozenColsWidth() + table.tableX,\n changedCells,\n table\n );\n }\n });\n }\n\n // row header\n for (let col = 0; col < frozenColCount; col++) {\n if (rowEnd < rowStart) {\n break;\n }\n [rowStart, rowEnd].forEach((row: number) => {\n if (\n table._getCellStyle(col, row)?.textStick &&\n (table.internalProps.layoutMap as PivotHeaderLayoutMap).rowHierarchyType !== 'tree'\n ) {\n const cellGroup = table.scenegraph.getCell(col, row);\n // adjust cell vertical\n adjustCellContentVerticalLayout(\n cellGroup,\n frozenRowsHeight + table.tableY,\n table.tableNoFrameHeight - table.getBottomFrozenRowsHeight() + table.tableY,\n changedCells,\n table\n );\n }\n });\n }\n\n // body\n for (let col = colStart; col <= colEnd; col++) {\n if (rowEnd < rowStart) {\n break;\n }\n [rowStart, rowEnd].forEach((row: number) => {\n if (table._getCellStyle(col, row)?.textStick) {\n const cellGroup = table.scenegraph.getCell(col, row);\n // adjust cell vertical\n adjustCellContentVerticalLayout(\n cellGroup,\n frozenRowsHeight + table.tableY,\n table.tableNoFrameHeight - table.getBottomFrozenRowsHeight() + table.tableY,\n changedCells,\n table\n );\n }\n });\n }\n for (let row = rowStart; row < rowEnd; row++) {\n if (colEnd < colStart) {\n break;\n }\n [colStart, colEnd].forEach((col: number) => {\n if (table._getCellStyle(col, row)?.textStick) {\n const cellGroup = table.scenegraph.getCell(col, row);\n // adjust cell Horizontal\n adjustCellContentHorizontalLayout(\n cellGroup,\n frozenColsWidth + table.tableX,\n table.tableNoFrameWidth - table.getRightFrozenColsWidth() + table.tableX,\n changedCells,\n table\n );\n }\n });\n }\n}\n\n/*\n * adjust cell content vertical layout\n * @param {Group} cellGroup\n * @param {number} scrollTop\n */\nfunction adjustCellContentVerticalLayout(\n cellGroup: Group,\n minTop: number,\n maxTop: number,\n changedCells: Map<string, StickCell>,\n table: BaseTableAPI\n) {\n if (\n isNumber(cellGroup.mergeStartCol) &&\n isNumber(cellGroup.mergeStartRow) &&\n isNumber(cellGroup.mergeEndCol) &&\n isNumber(cellGroup.mergeEndRow)\n ) {\n const { colStart, colEnd, rowStart, rowEnd } = getCellMergeRange(cellGroup, table.scenegraph);\n for (let col = colStart; col <= colEnd; col++) {\n for (let row = rowStart; row <= rowEnd; row++) {\n const singleCellGroup = table.scenegraph.getCell(col, row);\n dealVertical(singleCellGroup, minTop, maxTop, changedCells);\n }\n }\n } else {\n dealVertical(cellGroup, minTop, maxTop, changedCells);\n }\n}\n\nfunction dealVertical(cellGroup: Group, minTop: number, maxTop: number, changedCells: Map<string, StickCell>) {\n // get text element\n const graphic =\n (cellGroup.getChildByName('text', true) as Text) || (cellGroup.getChildByName('image', true) as Image);\n if (!graphic) {\n return;\n }\n if (graphic.type === 'image') {\n const { image: url } = graphic.attribute;\n if (!url || !graphic.resources) {\n return;\n }\n const res = graphic.resources.get(url as any);\n if (res.state !== 'success') {\n return;\n }\n }\n\n graphic.AABBBounds.width();\n const textTop = graphic.globalAABBBounds.y1;\n const textBottom = graphic.globalAABBBounds.y2;\n // const textCellTop = graphic.AABBBounds.y1;\n // const textCellBottom = graphic.AABBBounds.y2;\n // if (textCellTop < cellGroup.attribute.height || textCellBottom < 0) {\n // return;\n // }\n\n if (textTop < minTop) {\n const deltaHeight = textTop - minTop;\n // text is out of view, move all elements down\n !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) &&\n changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {\n col: cellGroup.col,\n row: cellGroup.row,\n dx: (cellGroup.firstChild as IGraphic)?.attribute.dx ?? 0,\n dy: (cellGroup.firstChild as IGraphic)?.attribute.dy ?? 0\n });\n cellGroup.forEachChildren((child: IGraphic) => {\n child.setAttribute('dy', (child.attribute.dy ?? 0) - deltaHeight + 2); // 2 is the buffer\n });\n } else if (textBottom > maxTop) {\n const deltaHeight = textBottom - maxTop;\n // text is out of view, move all elements down\n !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) &&\n changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {\n col: cellGroup.col,\n row: cellGroup.row,\n dx: (cellGroup.firstChild as IGraphic)?.attribute.dx ?? 0,\n dy: (cellGroup.firstChild as IGraphic)?.attribute.dy ?? 0\n });\n cellGroup.forEachChildren((child: IGraphic) => {\n child.setAttribute('dy', (child.attribute.dy ?? 0) - deltaHeight); // 2 is the buffer\n });\n }\n}\n\n/*\n * adjust cell content horizontal layout\n * @param {Group} cellGroup\n * @param {number} scrollLeft\n */\nfunction adjustCellContentHorizontalLayout(\n cellGroup: Group,\n minLeft: number,\n maxLeft: number,\n changedCells: Map<string, StickCell>,\n table: BaseTableAPI\n) {\n if (\n isNumber(cellGroup.mergeStartCol) &&\n isNumber(cellGroup.mergeStartRow) &&\n isNumber(cellGroup.mergeEndCol) &&\n isNumber(cellGroup.mergeEndRow)\n ) {\n const { colStart, colEnd, rowStart, rowEnd } = getCellMergeRange(cellGroup, table.scenegraph);\n for (let col = colStart; col <= colEnd; col++) {\n for (let row = rowStart; row <= rowEnd; row++) {\n const singleCellGroup = table.scenegraph.getCell(col, row);\n dealHorizontal(singleCellGroup, minLeft, maxLeft, changedCells);\n }\n }\n } else {\n dealHorizontal(cellGroup, minLeft, maxLeft, changedCells);\n }\n}\n\nfunction dealHorizontal(cellGroup: Group, minLeft: number, maxLeft: number, changedCells: Map<string, StickCell>) {\n // get text element\n const text = cellGroup.getChildByName('text', true) as Text;\n if (!text) {\n return;\n }\n text.AABBBounds.width();\n const textLeft = text.globalAABBBounds.x1;\n const textRight = text.globalAABBBounds.x2;\n if (textLeft < minLeft) {\n const deltaWidth = textLeft - minLeft;\n // text is out of view, move all elements right\n !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) &&\n changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {\n col: cellGroup.col,\n row: cellGroup.row,\n dx: (cellGroup.firstChild as IGraphic)?.attribute.dx ?? 0,\n dy: (cellGroup.firstChild as IGraphic)?.attribute.dy ?? 0\n });\n cellGroup.forEachChildren((child: IGraphic) => {\n child.setAttribute('dx', (child.attribute.dx ?? 0) - deltaWidth + 2); // 2 is the buffer\n });\n } else if (textRight > maxLeft) {\n const deltaWidth = textRight - maxLeft;\n // text is out of view, move all elements down\n !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) &&\n changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {\n col: cellGroup.col,\n row: cellGroup.row,\n dx: (cellGroup.firstChild as IGraphic)?.attribute.dx ?? 0,\n dy: (cellGroup.firstChild as IGraphic)?.attribute.dy ?? 0\n });\n cellGroup.forEachChildren((child: IGraphic) => {\n child.setAttribute('dx', (child.attribute.dx ?? 0) - deltaWidth); // 2 is the buffer\n });\n }\n}\n\nexport function checkHaveTextStick(table: BaseTableAPI) {\n const headerObjects = table.internalProps.layoutMap.headerObjects;\n const columnObjects = table.internalProps.layoutMap.columnObjects;\n for (let i = 0; i < headerObjects.length; i++) {\n const header = headerObjects[i];\n if (header && (header.style as ITextStyleOption)?.textStick) {\n return true;\n }\n }\n for (let i = 0; i < columnObjects.length; i++) {\n const column = columnObjects[i];\n if (column && (column.style as ITextStyleOption)?.textStick) {\n return true;\n }\n }\n return false;\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/stick-text/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { IGraphic, Image, Text } from './../../vrender';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport type { Group } from '../graphic/group';\nimport type { PivotHeaderLayoutMap } from '../../layout/pivot-header-layout';\nimport type { ITextStyleOption, StickCell } from '../../ts-types';\nimport { isNumber, min } from '@visactor/vutils';\nimport { getCellMergeRange } from '../../tools/merge-range';\n\nexport function handleTextStick(table: BaseTableAPI) {\n // reset\n const { changedCells } = table.internalProps.stick; // changedCells only cache one time\n changedCells.forEach((cellPos: StickCell) => {\n const cellGroup = table.scenegraph.getCell(cellPos.col, cellPos.row);\n cellGroup.forEachChildren((child: IGraphic) => {\n child.setAttributes({\n dx: cellPos.dx,\n dy: cellPos.dy\n });\n });\n });\n changedCells.clear();\n\n const { scrollTop, scrollLeft, frozenRowCount, frozenColCount } = table;\n const frozenRowsHeight = table.getFrozenRowsHeight();\n const frozenColsWidth = table.getFrozenColsWidth();\n // 计算非冻结\n const { row: rowTop } = table.getRowAt(scrollTop + frozenRowsHeight + 1);\n const { col: colLeft } = table.getColAt(scrollLeft + frozenColsWidth + 1);\n const rowStart = Math.max(rowTop, table.frozenRowCount);\n const colStart = Math.max(colLeft, table.frozenColCount);\n const rowEnd =\n table.getAllRowsHeight() > table.tableNoFrameHeight\n ? table.getRowAt(scrollTop + table.tableNoFrameHeight - table.getBottomFrozenRowsHeight() - 1).row\n : table.rowCount - table.bottomFrozenRowCount - 1;\n const colEnd =\n table.getAllColsWidth() > table.tableNoFrameWidth\n ? table.getColAt(scrollLeft + table.tableNoFrameWidth - table.getRightFrozenColsWidth() - 1).col\n : table.colCount - table.rightFrozenColCount - 1;\n if (colEnd < 0 || rowEnd < 0) {\n return;\n }\n\n // column header\n for (let row = 0; row < frozenRowCount; row++) {\n if (colEnd < colStart) {\n break;\n }\n [colStart, colEnd].forEach((col: number) => {\n const style = table._getCellStyle(col, row);\n if (style?.textStick) {\n const cellGroup = table.scenegraph.getCell(col, row);\n // adjust cell Horizontal\n adjustCellContentHorizontalLayout(\n cellGroup,\n frozenColsWidth + table.tableX,\n table.tableNoFrameWidth - table.getRightFrozenColsWidth() + table.tableX,\n changedCells,\n style?.textStickBaseOnAlign,\n table\n );\n }\n });\n }\n\n // row header\n for (let col = 0; col < frozenColCount; col++) {\n if (rowEnd < rowStart) {\n break;\n }\n [rowStart, rowEnd].forEach((row: number) => {\n const style = table._getCellStyle(col, row);\n if (style?.textStick && (table.internalProps.layoutMap as PivotHeaderLayoutMap).rowHierarchyType !== 'tree') {\n const cellGroup = table.scenegraph.getCell(col, row);\n // adjust cell vertical\n adjustCellContentVerticalLayout(\n cellGroup,\n frozenRowsHeight + table.tableY,\n table.tableNoFrameHeight - table.getBottomFrozenRowsHeight() + table.tableY,\n changedCells,\n style?.textStickBaseOnAlign,\n table\n );\n }\n });\n }\n\n // body\n for (let col = colStart; col <= colEnd; col++) {\n if (rowEnd < rowStart) {\n break;\n }\n [rowStart, rowEnd].forEach((row: number) => {\n const style = table._getCellStyle(col, row);\n if (style?.textStick) {\n const cellGroup = table.scenegraph.getCell(col, row);\n // adjust cell vertical\n adjustCellContentVerticalLayout(\n cellGroup,\n frozenRowsHeight + table.tableY,\n table.tableNoFrameHeight - table.getBottomFrozenRowsHeight() + table.tableY,\n changedCells,\n style?.textStickBaseOnAlign,\n table\n );\n }\n });\n }\n for (let row = rowStart; row < rowEnd; row++) {\n if (colEnd < colStart) {\n break;\n }\n [colStart, colEnd].forEach((col: number) => {\n const style = table._getCellStyle(col, row);\n if (table._getCellStyle(col, row)?.textStick) {\n const cellGroup = table.scenegraph.getCell(col, row);\n // adjust cell Horizontal\n adjustCellContentHorizontalLayout(\n cellGroup,\n frozenColsWidth + table.tableX,\n table.tableNoFrameWidth - table.getRightFrozenColsWidth() + table.tableX,\n changedCells,\n style?.textStickBaseOnAlign,\n table\n );\n }\n });\n }\n}\n\n/*\n * adjust cell content vertical layout\n * @param {Group} cellGroup\n * @param {number} scrollTop\n */\nfunction adjustCellContentVerticalLayout(\n cellGroup: Group,\n minTop: number,\n maxTop: number,\n changedCells: Map<string, StickCell>,\n textStickBaseOnAlign: boolean | undefined,\n table: BaseTableAPI\n) {\n if (\n isNumber(cellGroup.mergeStartCol) &&\n isNumber(cellGroup.mergeStartRow) &&\n isNumber(cellGroup.mergeEndCol) &&\n isNumber(cellGroup.mergeEndRow)\n ) {\n const { colStart, colEnd, rowStart, rowEnd } = getCellMergeRange(cellGroup, table.scenegraph);\n for (let col = colStart; col <= colEnd; col++) {\n for (let row = rowStart; row <= rowEnd; row++) {\n const singleCellGroup = table.scenegraph.getCell(col, row);\n dealVertical(singleCellGroup, minTop, maxTop, changedCells, textStickBaseOnAlign);\n }\n }\n } else {\n dealVertical(cellGroup, minTop, maxTop, changedCells, textStickBaseOnAlign);\n }\n}\n\nfunction dealVertical(\n cellGroup: Group,\n minTop: number,\n maxTop: number,\n changedCells: Map<string, StickCell>,\n textStickBaseOnAlign: boolean | undefined\n) {\n // get text element\n const graphic =\n (cellGroup.getChildByName('text', true) as Text) || (cellGroup.getChildByName('image', true) as Image);\n if (!graphic) {\n return;\n }\n if (graphic.type === 'image') {\n const { image: url } = graphic.attribute;\n if (!url || !graphic.resources) {\n return;\n }\n const res = graphic.resources.get(url as any);\n if (res.state !== 'success') {\n return;\n }\n }\n\n // const textBaseline = (graphic as any).attribute.textBaseline ?? (graphic as any).textBaseline ?? 'top';\n const textBaseline = (graphic as any).textBaseline ?? 'top';\n\n graphic.AABBBounds.width();\n const textTop = graphic.globalAABBBounds.y1;\n const textBottom = graphic.globalAABBBounds.y2;\n\n if (textBaseline === 'middle' && textStickBaseOnAlign) {\n const cellTop = cellGroup.globalAABBBounds.y1 + ((cellGroup.firstChild as IGraphic)?.attribute.dy ?? 0);\n const cellBottom = cellTop + (cellGroup.contentHeight ?? cellGroup.attribute.height ?? 0);\n if (cellTop < minTop || cellBottom > maxTop) {\n const visibleCellTop = Math.max(cellTop, minTop);\n const visibleCellBottom = Math.min(cellBottom, maxTop);\n const delta = graphic.globalTransMatrix.f - (visibleCellBottom + visibleCellTop) / 2;\n !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) &&\n changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {\n col: cellGroup.col,\n row: cellGroup.row,\n dx: (cellGroup.firstChild as IGraphic)?.attribute.dx ?? 0,\n dy: (cellGroup.firstChild as IGraphic)?.attribute.dy ?? 0\n });\n cellGroup.forEachChildren((child: IGraphic) => {\n child.setAttribute('dy', (child.attribute.dy ?? 0) - delta + 2); // 2 is the buffer\n });\n }\n } else if (textTop < minTop) {\n const deltaHeight = textTop - minTop;\n // text is out of view, move all elements down\n !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) &&\n changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {\n col: cellGroup.col,\n row: cellGroup.row,\n dx: (cellGroup.firstChild as IGraphic)?.attribute.dx ?? 0,\n dy: (cellGroup.firstChild as IGraphic)?.attribute.dy ?? 0\n });\n cellGroup.forEachChildren((child: IGraphic) => {\n child.setAttribute('dy', (child.attribute.dy ?? 0) - deltaHeight + 2); // 2 is the buffer\n });\n } else if (textBottom > maxTop) {\n const deltaHeight = textBottom - maxTop;\n // text is out of view, move all elements down\n !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) &&\n changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {\n col: cellGroup.col,\n row: cellGroup.row,\n dx: (cellGroup.firstChild as IGraphic)?.attribute.dx ?? 0,\n dy: (cellGroup.firstChild as IGraphic)?.attribute.dy ?? 0\n });\n cellGroup.forEachChildren((child: IGraphic) => {\n child.setAttribute('dy', (child.attribute.dy ?? 0) - deltaHeight); // 2 is the buffer\n });\n }\n}\n\n/*\n * adjust cell content horizontal layout\n * @param {Group} cellGroup\n * @param {number} scrollLeft\n */\nfunction adjustCellContentHorizontalLayout(\n cellGroup: Group,\n minLeft: number,\n maxLeft: number,\n changedCells: Map<string, StickCell>,\n textStickBaseOnAlign: boolean | undefined,\n table: BaseTableAPI\n) {\n if (\n isNumber(cellGroup.mergeStartCol) &&\n isNumber(cellGroup.mergeStartRow) &&\n isNumber(cellGroup.mergeEndCol) &&\n isNumber(cellGroup.mergeEndRow)\n ) {\n const { colStart, colEnd, rowStart, rowEnd } = getCellMergeRange(cellGroup, table.scenegraph);\n for (let col = colStart; col <= colEnd; col++) {\n for (let row = rowStart; row <= rowEnd; row++) {\n const singleCellGroup = table.scenegraph.getCell(col, row);\n dealHorizontal(singleCellGroup, minLeft, maxLeft, changedCells, textStickBaseOnAlign);\n }\n }\n } else {\n dealHorizontal(cellGroup, minLeft, maxLeft, changedCells, textStickBaseOnAlign);\n }\n}\n\nfunction dealHorizontal(\n cellGroup: Group,\n minLeft: number,\n maxLeft: number,\n changedCells: Map<string, StickCell>,\n textStickBaseOnAlign: boolean | undefined\n) {\n // get text element\n // const text = cellGroup.getChildByName('text', true) as Text;\n // if (!text) {\n // return;\n // }\n\n // get text element\n const graphic =\n (cellGroup.getChildByName('text', true) as Text) || (cellGroup.getChildByName('image', true) as Image);\n if (!graphic) {\n return;\n }\n if (graphic.type === 'image') {\n const { image: url } = graphic.attribute;\n if (!url || !graphic.resources) {\n return;\n }\n const res = graphic.resources.get(url as any);\n if (res.state !== 'success') {\n return;\n }\n }\n const textAlign = (graphic as any).attribute.textAlign ?? (graphic as any).textAlign ?? 'left';\n graphic.AABBBounds.width();\n const textLeft = graphic.globalAABBBounds.x1;\n const textRight = graphic.globalAABBBounds.x2;\n if (textAlign === 'center' && textStickBaseOnAlign) {\n const cellLeft = cellGroup.globalAABBBounds.x1 + ((cellGroup.firstChild as IGraphic)?.attribute.dx ?? 0);\n const cellRight = cellLeft + (cellGroup.contentWidth ?? cellGroup.attribute.width ?? 0);\n if (cellLeft < minLeft || cellRight > maxLeft) {\n const visibleCellLeft = Math.max(cellLeft, minLeft);\n const visibleCellRight = Math.min(cellRight, maxLeft);\n const delta = graphic.globalTransMatrix.e - (visibleCellRight + visibleCellLeft) / 2;\n !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) &&\n changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {\n col: cellGroup.col,\n row: cellGroup.row,\n dx: (cellGroup.firstChild as IGraphic)?.attribute.dx ?? 0,\n dy: (cellGroup.firstChild as IGraphic)?.attribute.dy ?? 0\n });\n cellGroup.forEachChildren((child: IGraphic) => {\n child.setAttribute('dx', (child.attribute.dx ?? 0) - delta + 2); // 2 is the buffer\n });\n }\n } else if (textLeft < minLeft) {\n const deltaWidth = textLeft - minLeft;\n // text is out of view, move all elements right\n !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) &&\n changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {\n col: cellGroup.col,\n row: cellGroup.row,\n dx: (cellGroup.firstChild as IGraphic)?.attribute.dx ?? 0,\n dy: (cellGroup.firstChild as IGraphic)?.attribute.dy ?? 0\n });\n cellGroup.forEachChildren((child: IGraphic) => {\n child.setAttribute('dx', (child.attribute.dx ?? 0) - deltaWidth + 2); // 2 is the buffer\n });\n } else if (textRight > maxLeft) {\n const deltaWidth = textRight - maxLeft;\n // text is out of view, move all elements down\n !changedCells.has(`${cellGroup.col}-${cellGroup.row}`) &&\n changedCells.set(`${cellGroup.col}-${cellGroup.row}`, {\n col: cellGroup.col,\n row: cellGroup.row,\n dx: (cellGroup.firstChild as IGraphic)?.attribute.dx ?? 0,\n dy: (cellGroup.firstChild as IGraphic)?.attribute.dy ?? 0\n });\n cellGroup.forEachChildren((child: IGraphic) => {\n child.setAttribute('dx', (child.attribute.dx ?? 0) - deltaWidth); // 2 is the buffer\n });\n }\n}\n\nexport function checkHaveTextStick(table: BaseTableAPI) {\n const headerObjects = table.internalProps.layoutMap.headerObjects;\n const columnObjects = table.internalProps.layoutMap.columnObjects;\n for (let i = 0; i < headerObjects.length; i++) {\n const header = headerObjects[i];\n if (header && (header.style as ITextStyleOption)?.textStick) {\n return true;\n }\n }\n for (let i = 0; i < columnObjects.length; i++) {\n const column = columnObjects[i];\n if (column && (column.style as ITextStyleOption)?.textStick) {\n return true;\n }\n }\n return false;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { IThemeSpec } from '@visactor/vrender-core';
2
+ import type { BaseTableAPI } from '../../ts-types/base-table';
3
+ export declare function getCellBorderStrokeWidth(col: number, row: number, cellTheme: IThemeSpec, table: BaseTableAPI): any;
@@ -0,0 +1,10 @@
1
+ export function getCellBorderStrokeWidth(col, row, cellTheme, table) {
2
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
3
+ let strokeArrayWidth = null !== (_b = null === (_a = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _a ? void 0 : _a.strokeArrayWidth) && void 0 !== _b ? _b : void 0;
4
+ return table.theme.cellInnerBorder ? (0 === col && (strokeArrayWidth = null != strokeArrayWidth ? strokeArrayWidth : [ null === (_c = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _c ? void 0 : _c.lineWidth, null === (_d = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _d ? void 0 : _d.lineWidth, null === (_e = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _e ? void 0 : _e.lineWidth, null === (_f = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _f ? void 0 : _f.lineWidth ],
5
+ strokeArrayWidth[3] = 0), col === table.colCount - 1 && (strokeArrayWidth = null != strokeArrayWidth ? strokeArrayWidth : [ null === (_g = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _g ? void 0 : _g.lineWidth, null === (_h = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _h ? void 0 : _h.lineWidth, null === (_j = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _j ? void 0 : _j.lineWidth, null === (_k = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _k ? void 0 : _k.lineWidth ],
6
+ strokeArrayWidth[1] = 0), 0 === row && (strokeArrayWidth = null != strokeArrayWidth ? strokeArrayWidth : [ null === (_l = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _l ? void 0 : _l.lineWidth, null === (_m = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _m ? void 0 : _m.lineWidth, null === (_o = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _o ? void 0 : _o.lineWidth, null === (_p = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _p ? void 0 : _p.lineWidth ],
7
+ strokeArrayWidth[0] = 0), row === table.rowCount - 1 && (strokeArrayWidth = null != strokeArrayWidth ? strokeArrayWidth : [ null === (_q = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _q ? void 0 : _q.lineWidth, null === (_r = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _r ? void 0 : _r.lineWidth, null === (_s = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _s ? void 0 : _s.lineWidth, null === (_t = null == cellTheme ? void 0 : cellTheme.group) || void 0 === _t ? void 0 : _t.lineWidth ],
8
+ strokeArrayWidth[2] = 0), strokeArrayWidth) : strokeArrayWidth;
9
+ }
10
+ //# sourceMappingURL=cell-border-stroke-width.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/scenegraph/utils/cell-border-stroke-width.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,wBAAwB,CAAC,GAAW,EAAE,GAAW,EAAE,SAAqB,EAAE,KAAmB;;IAC3G,IAAI,gBAAgB,GAAG,MAAA,MAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAa,0CAAE,gBAAgB,mCAAI,SAAS,CAAC;IAChF,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE;QAChC,OAAO,gBAAgB,CAAC;KACzB;IACD,IAAI,GAAG,KAAK,CAAC,EAAE;QACb,gBAAgB,GAAG,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI;YACrC,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;YAC3B,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;YAC3B,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;YAC3B,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;SAC5B,CAAC;QACF,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KACzB;IACD,IAAI,GAAG,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE;QAC9B,gBAAgB,GAAG,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI;YACrC,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;YAC3B,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;YAC3B,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;YAC3B,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;SAC5B,CAAC;QACF,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KACzB;IACD,IAAI,GAAG,KAAK,CAAC,EAAE;QACb,gBAAgB,GAAG,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI;YACrC,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;YAC3B,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;YAC3B,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;YAC3B,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;SAC5B,CAAC;QACF,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KACzB;IACD,IAAI,GAAG,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,EAAE;QAC9B,gBAAgB,GAAG,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI;YACrC,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;YAC3B,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;YAC3B,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;YAC3B,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,0CAAE,SAAS;SAC5B,CAAC;QACF,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KACzB;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC","file":"cell-border-stroke-width.js","sourcesContent":["import type { IThemeSpec } from '@visactor/vrender-core';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\nexport function getCellBorderStrokeWidth(col: number, row: number, cellTheme: IThemeSpec, table: BaseTableAPI) {\n let strokeArrayWidth = (cellTheme?.group as any)?.strokeArrayWidth ?? undefined;\n if (!table.theme.cellInnerBorder) {\n return strokeArrayWidth;\n }\n if (col === 0) {\n strokeArrayWidth = strokeArrayWidth ?? [\n cellTheme?.group?.lineWidth,\n cellTheme?.group?.lineWidth,\n cellTheme?.group?.lineWidth,\n cellTheme?.group?.lineWidth\n ];\n strokeArrayWidth[3] = 0;\n }\n if (col === table.colCount - 1) {\n strokeArrayWidth = strokeArrayWidth ?? [\n cellTheme?.group?.lineWidth,\n cellTheme?.group?.lineWidth,\n cellTheme?.group?.lineWidth,\n cellTheme?.group?.lineWidth\n ];\n strokeArrayWidth[1] = 0;\n }\n if (row === 0) {\n strokeArrayWidth = strokeArrayWidth ?? [\n cellTheme?.group?.lineWidth,\n cellTheme?.group?.lineWidth,\n cellTheme?.group?.lineWidth,\n cellTheme?.group?.lineWidth\n ];\n strokeArrayWidth[0] = 0;\n }\n if (row === table.rowCount - 1) {\n strokeArrayWidth = strokeArrayWidth ?? [\n cellTheme?.group?.lineWidth,\n cellTheme?.group?.lineWidth,\n cellTheme?.group?.lineWidth,\n cellTheme?.group?.lineWidth\n ];\n strokeArrayWidth[2] = 0;\n }\n\n return strokeArrayWidth;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { isValid } from "@visactor/vutils";
2
2
 
3
3
  export function getProp(name, cellStyle, col, row, _table) {
4
- const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : null;
4
+ const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : void 0;
5
5
  if ("function" == typeof prop) {
6
6
  return prop({
7
7
  col: col,
@@ -16,12 +16,12 @@ export function getProp(name, cellStyle, col, row, _table) {
16
16
  }
17
17
 
18
18
  export function getRawProp(name, cellStyle, col, row, _table) {
19
- const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : null;
19
+ const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : void 0;
20
20
  if ("function" != typeof prop) return prop;
21
21
  }
22
22
 
23
23
  export function getFunctionalProp(name, cellStyle, col, row, _table) {
24
- const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : null;
24
+ const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : void 0;
25
25
  if ("function" == typeof prop) {
26
26
  return prop({
27
27
  col: col,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/utils/get-prop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAI3C,MAAM,UAAU,OAAO,CACrB,IAAY,EACZ,SAAc,EAEd,GAAW,EACX,GAAW,EACX,MAAoB;IAEpB,MAAM,IAAI,GAAG,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAE5E,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,MAAM,GAAG,GAA6B;YACpC,GAAG;YACH,GAAG;YACH,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;YACpC,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;YAC9C,eAAe,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;SACrD,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,IAAY,EACZ,SAAc,EAEd,GAAW,EACX,GAAW,EACX,MAAoB;IAEpB,MAAM,IAAI,GAAG,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,SAAc,EAEd,GAAW,EACX,GAAW,EACX,MAAoB;IAEpB,MAAM,IAAI,GAAG,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5E,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,MAAM,GAAG,GAA6B;YACpC,GAAG;YACH,GAAG;YACH,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;YACpC,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;YAC9C,eAAe,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;SACrD,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IACD,OAAO,SAAS,CAAC;AACnB,CAAC","file":"get-prop.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { StylePropertyFunctionArg } from '../../ts-types';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\nexport function getProp(\n name: string,\n cellStyle: any,\n // commonStyle: any,\n col: number,\n row: number,\n _table: BaseTableAPI\n) {\n const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : null;\n // to do 处理回调函数\n if (typeof prop === 'function') {\n const arg: StylePropertyFunctionArg = {\n col,\n row,\n table: _table,\n value: _table.getCellValue(col, row),\n dataValue: _table.getCellOriginValue(col, row),\n cellHeaderPaths: _table.getCellHeaderPaths(col, row)\n };\n return prop(arg);\n }\n return prop;\n}\n\nexport function getRawProp(\n name: string,\n cellStyle: any,\n // commonStyle: any,\n col: number,\n row: number,\n _table: BaseTableAPI\n) {\n const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : null;\n if (typeof prop === 'function') {\n return undefined;\n }\n return prop;\n}\n\nexport function getFunctionalProp(\n name: string,\n cellStyle: any,\n // commonStyle: any,\n col: number,\n row: number,\n _table: BaseTableAPI\n) {\n const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : null;\n if (typeof prop === 'function') {\n const arg: StylePropertyFunctionArg = {\n col,\n row,\n table: _table,\n value: _table.getCellValue(col, row),\n dataValue: _table.getCellOriginValue(col, row),\n cellHeaderPaths: _table.getCellHeaderPaths(col, row)\n };\n return prop(arg);\n }\n return undefined;\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/utils/get-prop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAI3C,MAAM,UAAU,OAAO,CACrB,IAAY,EACZ,SAAc,EAEd,GAAW,EACX,GAAW,EACX,MAAoB;IAEpB,MAAM,IAAI,GAAG,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjF,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,MAAM,GAAG,GAA6B;YACpC,GAAG;YACH,GAAG;YACH,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;YACpC,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;YAC9C,eAAe,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;SACrD,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,IAAY,EACZ,SAAc,EAEd,GAAW,EACX,GAAW,EACX,MAAoB;IAEpB,MAAM,IAAI,GAAG,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,SAAc,EAEd,GAAW,EACX,GAAW,EACX,MAAoB;IAEpB,MAAM,IAAI,GAAG,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;QAC9B,MAAM,GAAG,GAA6B;YACpC,GAAG;YACH,GAAG;YACH,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;YACpC,SAAS,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;YAC9C,eAAe,EAAE,MAAM,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC;SACrD,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;KAClB;IACD,OAAO,SAAS,CAAC;AACnB,CAAC","file":"get-prop.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { StylePropertyFunctionArg } from '../../ts-types';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\nexport function getProp(\n name: string,\n cellStyle: any,\n // commonStyle: any,\n col: number,\n row: number,\n _table: BaseTableAPI\n) {\n const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : undefined;\n // to do 处理回调函数\n if (typeof prop === 'function') {\n const arg: StylePropertyFunctionArg = {\n col,\n row,\n table: _table,\n value: _table.getCellValue(col, row),\n dataValue: _table.getCellOriginValue(col, row),\n cellHeaderPaths: _table.getCellHeaderPaths(col, row)\n };\n return prop(arg);\n }\n return prop;\n}\n\nexport function getRawProp(\n name: string,\n cellStyle: any,\n // commonStyle: any,\n col: number,\n row: number,\n _table: BaseTableAPI\n) {\n const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : undefined;\n if (typeof prop === 'function') {\n return undefined;\n }\n return prop;\n}\n\nexport function getFunctionalProp(\n name: string,\n cellStyle: any,\n // commonStyle: any,\n col: number,\n row: number,\n _table: BaseTableAPI\n) {\n const prop = cellStyle && isValid(cellStyle[name]) ? cellStyle[name] : undefined;\n if (typeof prop === 'function') {\n const arg: StylePropertyFunctionArg = {\n col,\n row,\n table: _table,\n value: _table.getCellValue(col, row),\n dataValue: _table.getCellOriginValue(col, row),\n cellHeaderPaths: _table.getCellHeaderPaths(col, row)\n };\n return prop(arg);\n }\n return undefined;\n}\n"]}
@@ -74,6 +74,8 @@ export function createCellContent(cellGroup, icons, textStr, padding, autoColWid
74
74
  absoluteRightIconWidth += iconMark.AABBBounds.width() + (null !== (_b = iconMark.attribute.marginLeft) && void 0 !== _b ? _b : 0) + (null !== (_c = iconMark.attribute.marginRight) && void 0 !== _c ? _c : 0),
75
75
  cellGroup.appendChild(iconMark);
76
76
  })), 0 === inlineFrontIcons.length && 0 === inlineEndIcons.length) {
77
+ let _contentOffset = 0;
78
+ isNumber(table.theme._contentOffset) && ("left" === textAlign ? _contentOffset = table.theme._contentOffset : "right" === textAlign && (_contentOffset = -table.theme._contentOffset));
77
79
  const text = convertInternal(textStr).replace(/\r?\n/g, "\n").replace(/\r/g, "\n").split("\n"), attribute = {
78
80
  text: 1 === text.length ? text[0] : text,
79
81
  maxLineWidth: autoColWidth ? 1 / 0 : cellWidth - (padding[1] + padding[3]) - leftIconWidth - rightIconWidth,
@@ -83,7 +85,8 @@ export function createCellContent(cellGroup, icons, textStr, padding, autoColWid
83
85
  autoWrapText: autoWrapText,
84
86
  lineClamp: lineClamp,
85
87
  wordBreak: "break-word",
86
- whiteSpace: 1 !== text.length || autoWrapText ? "normal" : "no-wrap"
88
+ whiteSpace: 1 !== text.length || autoWrapText ? "normal" : "no-wrap",
89
+ dx: _contentOffset
87
90
  }, wrapText = new Text(cellTheme.text ? Object.assign({}, cellTheme.text, attribute) : attribute);
88
91
  wrapText.name = "text", textMark = wrapText;
89
92
  } else {
@@ -127,7 +130,10 @@ export function createCellContent(cellGroup, icons, textStr, padding, autoColWid
127
130
  } else cellGroup.firstChild ? cellGroup.insertBefore(textMark, cellGroup.firstChild) : cellGroup.appendChild(textMark),
128
131
  contentWidth = textMark.AABBBounds.width(), contentHeight = textMark.AABBBounds.height();
129
132
  } else if (isValid(textStr)) {
130
- const text = convertInternal(textStr).replace(/\r?\n/g, "\n").replace(/\r/g, "\n").split("\n"), hierarchyOffset = range ? getHierarchyOffset(range.start.col, range.start.row, table) : getHierarchyOffset(cellGroup.col, cellGroup.row, table), attribute = {
133
+ const text = convertInternal(textStr).replace(/\r?\n/g, "\n").replace(/\r/g, "\n").split("\n"), hierarchyOffset = range ? getHierarchyOffset(range.start.col, range.start.row, table) : getHierarchyOffset(cellGroup.col, cellGroup.row, table);
134
+ let _contentOffset = 0;
135
+ isNumber(table.theme._contentOffset) && ("left" === textAlign ? _contentOffset = table.theme._contentOffset : "right" === textAlign && (_contentOffset = -table.theme._contentOffset));
136
+ const attribute = {
131
137
  text: 1 === text.length ? text[0] : text,
132
138
  maxLineWidth: autoColWidth ? 1 / 0 : cellWidth - (padding[1] + padding[3] + hierarchyOffset),
133
139
  textBaseline: "top",
@@ -136,11 +142,11 @@ export function createCellContent(cellGroup, icons, textStr, padding, autoColWid
136
142
  wordBreak: "break-word",
137
143
  heightLimit: autoRowHeight ? -1 : cellHeight - (padding[0] + padding[2]),
138
144
  pickable: !1,
139
- dx: hierarchyOffset,
145
+ dx: hierarchyOffset + _contentOffset,
140
146
  whiteSpace: 1 !== text.length || autoWrapText ? "normal" : "no-wrap"
141
147
  }, wrapText = new Text(cellTheme.text ? Object.assign({}, cellTheme.text, attribute) : attribute);
142
- wrapText.name = "text", cellGroup.appendChild(wrapText), contentWidth = wrapText.AABBBounds.width(),
143
- contentHeight = wrapText.AABBBounds.height();
148
+ wrapText.name = "text", wrapText.textBaseline = textBaseline, cellGroup.appendChild(wrapText),
149
+ contentWidth = wrapText.AABBBounds.width(), contentHeight = wrapText.AABBBounds.height();
144
150
  }
145
151
  const width = autoColWidth ? leftIconWidth + contentWidth + rightIconWidth : cellWidth - (padding[1] + padding[3]), height = cellHeight - (padding[0] + padding[2]);
146
152
  cellGroup.forEachChildren((child => {