@visactor/vtable 0.16.4-alpha.2 → 0.17.1

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 (217) hide show
  1. package/cjs/ListTable.d.ts +1 -0
  2. package/cjs/ListTable.js +13 -2
  3. package/cjs/ListTable.js.map +1 -1
  4. package/cjs/PivotChart.d.ts +1 -0
  5. package/cjs/PivotChart.js +20 -2
  6. package/cjs/PivotChart.js.map +1 -1
  7. package/cjs/PivotTable.d.ts +1 -0
  8. package/cjs/PivotTable.js +20 -2
  9. package/cjs/PivotTable.js.map +1 -1
  10. package/cjs/core/BaseTable.d.ts +1 -0
  11. package/cjs/core/BaseTable.js +39 -41
  12. package/cjs/core/BaseTable.js.map +1 -1
  13. package/cjs/core/tableHelper.d.ts +1 -1
  14. package/cjs/core/tableHelper.js +6 -5
  15. package/cjs/core/tableHelper.js.map +1 -1
  16. package/cjs/dataset/dataset.js +3 -8
  17. package/cjs/dataset/dataset.js.map +1 -1
  18. package/cjs/edit/edit-manager.js +0 -3
  19. package/cjs/edit/edit-manager.js.map +1 -1
  20. package/cjs/event/EventHandler.d.ts +1 -0
  21. package/cjs/event/EventHandler.js +1 -1
  22. package/cjs/event/EventHandler.js.map +1 -1
  23. package/cjs/event/event.d.ts +10 -0
  24. package/cjs/event/event.js +2 -1
  25. package/cjs/event/event.js.map +1 -1
  26. package/cjs/event/listener/container-dom.js +30 -4
  27. package/cjs/event/listener/container-dom.js.map +1 -1
  28. package/cjs/event/listener/scroll-bar.js +19 -5
  29. package/cjs/event/listener/scroll-bar.js.map +1 -1
  30. package/cjs/event/listener/table-group.js +45 -34
  31. package/cjs/event/listener/table-group.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/pivot-header-layout.d.ts +1 -0
  36. package/cjs/layout/pivot-header-layout.js +35 -18
  37. package/cjs/layout/pivot-header-layout.js.map +1 -1
  38. package/cjs/layout/pivot-layout-helper.d.ts +1 -1
  39. package/cjs/layout/pivot-layout-helper.js +12 -5
  40. package/cjs/layout/pivot-layout-helper.js.map +1 -1
  41. package/cjs/layout/simple-header-layout.js +9 -9
  42. package/cjs/layout/simple-header-layout.js.map +1 -1
  43. package/cjs/scenegraph/component/cell-content.d.ts +2 -3
  44. package/cjs/scenegraph/component/cell-content.js +3 -3
  45. package/cjs/scenegraph/component/cell-content.js.map +1 -1
  46. package/cjs/scenegraph/component/custom.js +10 -10
  47. package/cjs/scenegraph/component/custom.js.map +1 -1
  48. package/cjs/scenegraph/component/table-component.js.map +1 -1
  49. package/cjs/scenegraph/graphic/text.d.ts +1 -1
  50. package/cjs/scenegraph/graphic/text.js +1 -1
  51. package/cjs/scenegraph/graphic/text.js.map +1 -1
  52. package/cjs/scenegraph/group-creater/cell-helper.js +2 -1
  53. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  54. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js +3 -2
  55. package/cjs/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  56. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +1 -1
  57. package/cjs/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  58. package/cjs/scenegraph/icon/icon-update.d.ts +2 -0
  59. package/cjs/scenegraph/icon/icon-update.js +16 -2
  60. package/cjs/scenegraph/icon/icon-update.js.map +1 -1
  61. package/cjs/scenegraph/layout/compute-col-width.d.ts +1 -0
  62. package/cjs/scenegraph/layout/compute-col-width.js +12 -8
  63. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  64. package/cjs/scenegraph/layout/compute-row-height.js +16 -8
  65. package/cjs/scenegraph/layout/compute-row-height.js.map +1 -1
  66. package/cjs/scenegraph/layout/update-col.js +6 -5
  67. package/cjs/scenegraph/layout/update-col.js.map +1 -1
  68. package/cjs/scenegraph/layout/update-row.js +7 -6
  69. package/cjs/scenegraph/layout/update-row.js.map +1 -1
  70. package/cjs/scenegraph/scenegraph.d.ts +2 -0
  71. package/cjs/scenegraph/scenegraph.js +43 -59
  72. package/cjs/scenegraph/scenegraph.js.map +1 -1
  73. package/cjs/scenegraph/select/update-select-border.js +12 -6
  74. package/cjs/scenegraph/select/update-select-border.js.map +1 -1
  75. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  76. package/cjs/scenegraph/utils/text-icon-layout.js +13 -10
  77. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  78. package/cjs/scenegraph/utils/text-pos.js.map +1 -1
  79. package/cjs/state/hover/is-cell-hover.d.ts +1 -1
  80. package/cjs/state/hover/is-cell-hover.js +5 -4
  81. package/cjs/state/hover/is-cell-hover.js.map +1 -1
  82. package/cjs/state/select/update-position.js +65 -65
  83. package/cjs/state/select/update-position.js.map +1 -1
  84. package/cjs/state/spark-line/index.js +9 -5
  85. package/cjs/state/spark-line/index.js.map +1 -1
  86. package/cjs/state/state.js +2 -4
  87. package/cjs/state/state.js.map +1 -1
  88. package/cjs/themes/DARK.js +1 -1
  89. package/cjs/themes/DARK.js.map +1 -1
  90. package/cjs/themes/component.d.ts +27 -0
  91. package/cjs/themes/component.js +29 -2
  92. package/cjs/themes/component.js.map +1 -1
  93. package/cjs/themes/theme.d.ts +2 -0
  94. package/cjs/themes/theme.js +9 -1
  95. package/cjs/themes/theme.js.map +1 -1
  96. package/cjs/tools/NumberMap.d.ts +4 -0
  97. package/cjs/tools/NumberMap.js +16 -0
  98. package/cjs/tools/NumberMap.js.map +1 -1
  99. package/cjs/ts-types/base-table.d.ts +3 -0
  100. package/cjs/ts-types/base-table.js.map +1 -1
  101. package/cjs/ts-types/customElement.d.ts +1 -1
  102. package/cjs/ts-types/customElement.js.map +1 -1
  103. package/cjs/ts-types/table-engine.d.ts +3 -0
  104. package/cjs/ts-types/table-engine.js.map +1 -1
  105. package/cjs/ts-types/theme.d.ts +2 -0
  106. package/cjs/ts-types/theme.js.map +1 -1
  107. package/dist/vtable.js +21833 -23055
  108. package/dist/vtable.min.js +2 -2
  109. package/es/ListTable.d.ts +1 -0
  110. package/es/ListTable.js +12 -2
  111. package/es/ListTable.js.map +1 -1
  112. package/es/PivotChart.d.ts +1 -0
  113. package/es/PivotChart.js +20 -2
  114. package/es/PivotChart.js.map +1 -1
  115. package/es/PivotTable.d.ts +1 -0
  116. package/es/PivotTable.js +20 -2
  117. package/es/PivotTable.js.map +1 -1
  118. package/es/core/BaseTable.d.ts +1 -0
  119. package/es/core/BaseTable.js +41 -44
  120. package/es/core/BaseTable.js.map +1 -1
  121. package/es/core/tableHelper.d.ts +1 -1
  122. package/es/core/tableHelper.js +6 -5
  123. package/es/core/tableHelper.js.map +1 -1
  124. package/es/dataset/dataset.js +3 -8
  125. package/es/dataset/dataset.js.map +1 -1
  126. package/es/edit/edit-manager.js +0 -3
  127. package/es/edit/edit-manager.js.map +1 -1
  128. package/es/event/EventHandler.d.ts +1 -0
  129. package/es/event/EventHandler.js +1 -1
  130. package/es/event/EventHandler.js.map +1 -1
  131. package/es/event/event.d.ts +10 -0
  132. package/es/event/event.js +2 -1
  133. package/es/event/event.js.map +1 -1
  134. package/es/event/listener/container-dom.js +30 -4
  135. package/es/event/listener/container-dom.js.map +1 -1
  136. package/es/event/listener/scroll-bar.js +20 -4
  137. package/es/event/listener/scroll-bar.js.map +1 -1
  138. package/es/event/listener/table-group.js +45 -34
  139. package/es/event/listener/table-group.js.map +1 -1
  140. package/es/index.d.ts +1 -1
  141. package/es/index.js +1 -1
  142. package/es/index.js.map +1 -1
  143. package/es/layout/pivot-header-layout.d.ts +1 -0
  144. package/es/layout/pivot-header-layout.js +35 -18
  145. package/es/layout/pivot-header-layout.js.map +1 -1
  146. package/es/layout/pivot-layout-helper.d.ts +1 -1
  147. package/es/layout/pivot-layout-helper.js +12 -5
  148. package/es/layout/pivot-layout-helper.js.map +1 -1
  149. package/es/layout/simple-header-layout.js +9 -9
  150. package/es/layout/simple-header-layout.js.map +1 -1
  151. package/es/scenegraph/component/cell-content.d.ts +2 -3
  152. package/es/scenegraph/component/cell-content.js +3 -5
  153. package/es/scenegraph/component/cell-content.js.map +1 -1
  154. package/es/scenegraph/component/custom.js +10 -12
  155. package/es/scenegraph/component/custom.js.map +1 -1
  156. package/es/scenegraph/component/table-component.js.map +1 -1
  157. package/es/scenegraph/graphic/text.d.ts +1 -1
  158. package/es/scenegraph/graphic/text.js +1 -1
  159. package/es/scenegraph/graphic/text.js.map +1 -1
  160. package/es/scenegraph/group-creater/cell-helper.js +2 -1
  161. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  162. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js +3 -2
  163. package/es/scenegraph/group-creater/cell-type/checkbox-cell.js.map +1 -1
  164. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js +2 -2
  165. package/es/scenegraph/group-creater/progress/update-position/dynamic-set-y.js.map +1 -1
  166. package/es/scenegraph/icon/icon-update.d.ts +2 -0
  167. package/es/scenegraph/icon/icon-update.js +13 -0
  168. package/es/scenegraph/icon/icon-update.js.map +1 -1
  169. package/es/scenegraph/layout/compute-col-width.d.ts +1 -0
  170. package/es/scenegraph/layout/compute-col-width.js +9 -6
  171. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  172. package/es/scenegraph/layout/compute-row-height.js +17 -11
  173. package/es/scenegraph/layout/compute-row-height.js.map +1 -1
  174. package/es/scenegraph/layout/update-col.js +6 -5
  175. package/es/scenegraph/layout/update-col.js.map +1 -1
  176. package/es/scenegraph/layout/update-row.js +7 -6
  177. package/es/scenegraph/layout/update-row.js.map +1 -1
  178. package/es/scenegraph/scenegraph.d.ts +2 -0
  179. package/es/scenegraph/scenegraph.js +45 -61
  180. package/es/scenegraph/scenegraph.js.map +1 -1
  181. package/es/scenegraph/select/update-select-border.js +12 -6
  182. package/es/scenegraph/select/update-select-border.js.map +1 -1
  183. package/es/scenegraph/stick-text/index.js.map +1 -1
  184. package/es/scenegraph/utils/text-icon-layout.js +13 -12
  185. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  186. package/es/scenegraph/utils/text-pos.js.map +1 -1
  187. package/es/state/hover/is-cell-hover.d.ts +1 -1
  188. package/es/state/hover/is-cell-hover.js +5 -4
  189. package/es/state/hover/is-cell-hover.js.map +1 -1
  190. package/es/state/select/update-position.js +65 -65
  191. package/es/state/select/update-position.js.map +1 -1
  192. package/es/state/spark-line/index.js +9 -5
  193. package/es/state/spark-line/index.js.map +1 -1
  194. package/es/state/state.js +2 -4
  195. package/es/state/state.js.map +1 -1
  196. package/es/themes/DARK.js +1 -1
  197. package/es/themes/DARK.js.map +1 -1
  198. package/es/themes/component.d.ts +27 -0
  199. package/es/themes/component.js +28 -0
  200. package/es/themes/component.js.map +1 -1
  201. package/es/themes/theme.d.ts +2 -0
  202. package/es/themes/theme.js +9 -2
  203. package/es/themes/theme.js.map +1 -1
  204. package/es/tools/NumberMap.d.ts +4 -0
  205. package/es/tools/NumberMap.js +16 -0
  206. package/es/tools/NumberMap.js.map +1 -1
  207. package/es/ts-types/base-table.d.ts +3 -0
  208. package/es/ts-types/base-table.js.map +1 -1
  209. package/es/ts-types/customElement.d.ts +1 -1
  210. package/es/ts-types/customElement.js.map +1 -1
  211. package/es/ts-types/table-engine.d.ts +3 -0
  212. package/es/ts-types/table-engine.js.map +1 -1
  213. package/es/ts-types/theme.d.ts +2 -0
  214. package/es/ts-types/theme.js.map +1 -1
  215. package/package.json +7 -7
  216. package/cjs/scenegraph/component/menu.d.ts +0 -41
  217. package/es/scenegraph/component/menu.d.ts +0 -41
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/scenegraph/utils/text-pos.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAOzC,MAAM,UAAU,UAAU,CACxB,OAAiB,EACjB,SAA0B,EAC1B,YAAgC,EAChC,KAAa,EACb,MAAc;IAEd,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,KAAK,EAAE;QAChD,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KACxC;SAAM,IAAI,SAAS,KAAK,QAAQ,EAAE;QACjC,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;KACvE;IACD,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,IAAI,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,YAAY,IAAI,YAAY,KAAK,aAAa,EAAE;QAChG,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KACzC;SAAM,IAAI,YAAY,KAAK,QAAQ,EAAE;QACpC,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KAC7F;IAED,OAAO;QACL,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,KAAK;KACT,CAAC;AACJ,CAAC;AAMD,MAAM,UAAU,cAAc,CAAC,KAAmB,EAAE,IAAW,EAAE,GAAW,EAAE,GAAW,EAAE,KAAqB;IAC9G,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAE/E,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAa,CAAC;IACrD,IAAI,CAAC,aAAa,CAChB,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAChH,CAAC;AACJ,CAAC","file":"text-pos.js","sourcesContent":["/* eslint-disable no-undef */\nimport type { IFullThemeSpec } from '@visactor/vrender';\nimport type { Group } from '../graphic/group';\nimport type { WrapText } from '../graphic/text';\nimport { getProp } from './get-prop';\nimport { getQuadProps } from './padding';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\n/**\n * @description: 获取对应样式和容器尺寸下的文字位置\n * @return {*}\n */\nexport function getTextPos(\n padding: number[],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n width: number,\n height: number\n) {\n let textX = padding[3] || 10;\n if (textAlign === 'right' || textAlign === 'end') {\n textX = width - 0 - (padding[1] || 10);\n } else if (textAlign === 'center') {\n textX = 0 + (width - 0 + (padding[3] || 10) - (padding[1] || 10)) / 2;\n }\n let textY = 0 + (padding[0] || 10);\n if (textBaseline === 'bottom' || textBaseline === 'alphabetic' || textBaseline === 'ideographic') {\n textY = height - 0 - (padding[2] || 10);\n } else if (textBaseline === 'middle') {\n textY = 0 + (height - 0 - (padding[0] || 10) - (padding[2] || 10)) / 2 + (padding[0] || 10);\n }\n\n return {\n x: textX,\n y: textY\n };\n}\n\n/**\n * @description: 更新单元格中的文字位置\n * @return {*}\n */\nexport function updateTextPose(table: BaseTableAPI, cell: Group, col: number, row: number, theme: IFullThemeSpec) {\n const headerStyle = table._getCellStyle(col, row);\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, table));\n // const text = cell.getChildAt(1) as WrapText;\n const text = cell.getChildByName('text') as WrapText;\n text.setAttributes(\n getTextPos(padding, theme.text.textAlign, theme.text.textBaseline, cell.attribute.width, cell.attribute.height)\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/scenegraph/utils/text-pos.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAOzC,MAAM,UAAU,UAAU,CACxB,OAAiB,EACjB,SAA0B,EAC1B,YAAgC,EAChC,KAAa,EACb,MAAc;IAEd,IAAI,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,KAAK,EAAE;QAChD,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KACxC;SAAM,IAAI,SAAS,KAAK,QAAQ,EAAE;QACjC,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;KACvE;IACD,IAAI,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,IAAI,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,YAAY,IAAI,YAAY,KAAK,aAAa,EAAE;QAChG,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KACzC;SAAM,IAAI,YAAY,KAAK,QAAQ,EAAE;QACpC,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KAC7F;IAED,OAAO;QACL,CAAC,EAAE,KAAK;QACR,CAAC,EAAE,KAAK;KACT,CAAC;AACJ,CAAC;AAMD,MAAM,UAAU,cAAc,CAAC,KAAmB,EAAE,IAAW,EAAE,GAAW,EAAE,GAAW,EAAE,KAAqB;IAC9G,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAS,CAAC;IACjD,IAAI,CAAC,aAAa,CAChB,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAChH,CAAC;AACJ,CAAC","file":"text-pos.js","sourcesContent":["/* eslint-disable no-undef */\nimport type { IFullThemeSpec, Text } from '@visactor/vrender';\nimport type { Group } from '../graphic/group';\nimport { getProp } from './get-prop';\nimport { getQuadProps } from './padding';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\n/**\n * @description: 获取对应样式和容器尺寸下的文字位置\n * @return {*}\n */\nexport function getTextPos(\n padding: number[],\n textAlign: CanvasTextAlign,\n textBaseline: CanvasTextBaseline,\n width: number,\n height: number\n) {\n let textX = padding[3] || 10;\n if (textAlign === 'right' || textAlign === 'end') {\n textX = width - 0 - (padding[1] || 10);\n } else if (textAlign === 'center') {\n textX = 0 + (width - 0 + (padding[3] || 10) - (padding[1] || 10)) / 2;\n }\n let textY = 0 + (padding[0] || 10);\n if (textBaseline === 'bottom' || textBaseline === 'alphabetic' || textBaseline === 'ideographic') {\n textY = height - 0 - (padding[2] || 10);\n } else if (textBaseline === 'middle') {\n textY = 0 + (height - 0 - (padding[0] || 10) - (padding[2] || 10)) / 2 + (padding[0] || 10);\n }\n\n return {\n x: textX,\n y: textY\n };\n}\n\n/**\n * @description: 更新单元格中的文字位置\n * @return {*}\n */\nexport function updateTextPose(table: BaseTableAPI, cell: Group, col: number, row: number, theme: IFullThemeSpec) {\n const headerStyle = table._getCellStyle(col, row);\n const padding = getQuadProps(getProp('padding', headerStyle, col, row, table));\n const text = cell.getChildByName('text') as Text;\n text.setAttributes(\n getTextPos(padding, theme.text.textAlign, theme.text.textBaseline, cell.attribute.width, cell.attribute.height)\n );\n}\n"]}
@@ -2,4 +2,4 @@ import type { StateManager } from '../state';
2
2
  import type { Group } from '../../scenegraph/graphic/group';
3
3
  import type { BaseTableAPI } from '../../ts-types/base-table';
4
4
  export declare function getCellHoverColor(cellGroup: Group, table: BaseTableAPI): string | undefined;
5
- export declare function isCellHover(state: StateManager, col: number, row: number): string | undefined;
5
+ export declare function isCellHover(state: StateManager, col: number, row: number, cellGroup: Group): string | undefined;
@@ -8,16 +8,17 @@ export function getCellHoverColor(cellGroup, table) {
8
8
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
9
9
  let colorKey, hoverStyle;
10
10
  if ("cell" === cellGroup.role && isValid(cellGroup.mergeStartCol) && isValid(cellGroup.mergeStartRow) && isValid(cellGroup.mergeEndCol) && isValid(cellGroup.mergeEndRow)) for (let col = cellGroup.mergeStartCol; col <= cellGroup.mergeEndCol; col++) for (let row = cellGroup.mergeStartRow; row <= cellGroup.mergeEndRow; row++) {
11
- const key = isCellHover(table.stateManager, col, row);
11
+ const key = isCellHover(table.stateManager, col, row, cellGroup);
12
12
  !key || colorKey && "cellBgColor" !== key || (colorKey = key);
13
- } else "cell" === cellGroup.role && (colorKey = isCellHover(table.stateManager, cellGroup.col, cellGroup.row));
13
+ } else "cell" === cellGroup.role && (colorKey = isCellHover(table.stateManager, cellGroup.col, cellGroup.row, cellGroup));
14
14
  if (!colorKey) return;
15
15
  const layout = table.internalProps.layoutMap;
16
16
  layout.isCornerHeader(cellGroup.col, cellGroup.row) ? hoverStyle = (null === (_a = table.theme.cornerHeaderStyle) || void 0 === _a ? void 0 : _a.hover) || (null === (_b = table.theme.headerStyle) || void 0 === _b ? void 0 : _b.hover) : layout.isColumnHeader(cellGroup.col, cellGroup.row) ? hoverStyle = null === (_c = table.theme.headerStyle) || void 0 === _c ? void 0 : _c.hover : layout.isRowHeader(cellGroup.col, cellGroup.row) ? hoverStyle = null === (_d = table.theme.rowHeaderStyle) || void 0 === _d ? void 0 : _d.hover : layout.isBottomFrozenRow(cellGroup.col, cellGroup.row) ? hoverStyle = (null === (_e = table.theme.bottomFrozenStyle) || void 0 === _e ? void 0 : _e.hover) || (table.isListTable() ? null === (_f = table.theme.bodyStyle) || void 0 === _f ? void 0 : _f.hover : null === (_g = table.theme.headerStyle) || void 0 === _g ? void 0 : _g.hover) : layout.isRightFrozenColumn(cellGroup.col, cellGroup.row) ? hoverStyle = (null === (_h = table.theme.rightFrozenStyle) || void 0 === _h ? void 0 : _h.hover) || (table.isListTable() ? null === (_j = table.theme.bodyStyle) || void 0 === _j ? void 0 : _j.hover : null === (_k = table.theme.rowHeaderStyle) || void 0 === _k ? void 0 : _k.hover) : table.isHeader(cellGroup.col, cellGroup.row) || (hoverStyle = null === (_l = table.theme.bodyStyle) || void 0 === _l ? void 0 : _l.hover);
17
17
  return getProp(colorKey, hoverStyle, cellGroup.col, cellGroup.row, table);
18
18
  }
19
19
 
20
- export function isCellHover(state, col, row) {
20
+ export function isCellHover(state, col, row, cellGroup) {
21
+ var _a;
21
22
  const {highlightScope: highlightScope, disableHeader: disableHeader, cellPos: cellPos} = state.hover, table = state.table, isHeader = table.isHeader(col, row);
22
23
  if (isHeader && disableHeader) return;
23
24
  let hoverMode;
@@ -26,7 +27,7 @@ export function isCellHover(state, col, row) {
26
27
  let cellDisable;
27
28
  if (isHeader) {
28
29
  const define = table.getHeaderDefine(col, row);
29
- cellDisable = null == define ? void 0 : define.disableHeaderHover;
30
+ cellDisable = null == define ? void 0 : define.disableHeaderHover, cellGroup.firstChild && "axis" === cellGroup.firstChild.name && (null === (_a = table.options.hover) || void 0 === _a ? void 0 : _a.disableAxisHover) && (cellDisable = !0);
30
31
  } else {
31
32
  const define = table.getBodyColumnDefine(col, row);
32
33
  cellDisable = null == define ? void 0 : define.disableHover;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/state/hover/is-cell-hover.ts"],"names":[],"mappings":"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","file":"is-cell-hover.js","sourcesContent":["import type { StateManager } from '../state';\nimport type { Group } from '../../scenegraph/graphic/group';\nimport { getProp } from '../../scenegraph/utils/get-prop';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport { HighlightScope } from '../../ts-types';\nimport { isValid } from '@visactor/vutils';\n\nexport function getCellHoverColor(cellGroup: Group, table: BaseTableAPI): string | undefined {\n let colorKey;\n if (\n cellGroup.role === 'cell' &&\n isValid(cellGroup.mergeStartCol) &&\n isValid(cellGroup.mergeStartRow) &&\n isValid(cellGroup.mergeEndCol) &&\n isValid(cellGroup.mergeEndRow)\n ) {\n for (let col = cellGroup.mergeStartCol; col <= cellGroup.mergeEndCol; col++) {\n for (let row = cellGroup.mergeStartRow; row <= cellGroup.mergeEndRow; row++) {\n const key = isCellHover(table.stateManager, col, row);\n if (key && (!colorKey || key === 'cellBgColor')) {\n colorKey = key;\n }\n }\n }\n } else if (cellGroup.role === 'cell') {\n colorKey = isCellHover(table.stateManager, cellGroup.col, cellGroup.row);\n }\n\n if (!colorKey) {\n return undefined;\n }\n\n let hoverStyle;\n const layout = table.internalProps.layoutMap;\n if (layout.isCornerHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.cornerHeaderStyle?.hover || table.theme.headerStyle?.hover;\n } else if (layout.isColumnHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.headerStyle?.hover;\n } else if (layout.isRowHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.rowHeaderStyle?.hover;\n } else if (layout.isBottomFrozenRow(cellGroup.col, cellGroup.row)) {\n hoverStyle =\n table.theme.bottomFrozenStyle?.hover ||\n (table.isListTable() ? table.theme.bodyStyle?.hover : table.theme.headerStyle?.hover);\n } else if (layout.isRightFrozenColumn(cellGroup.col, cellGroup.row)) {\n hoverStyle =\n table.theme.rightFrozenStyle?.hover ||\n (table.isListTable() ? table.theme.bodyStyle?.hover : table.theme.rowHeaderStyle?.hover);\n } else if (!table.isHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.bodyStyle?.hover;\n }\n const fillColor = getProp(colorKey, hoverStyle, cellGroup.col, cellGroup.row, table);\n return fillColor;\n}\n\nexport function isCellHover(state: StateManager, col: number, row: number): string | undefined {\n const { highlightScope, disableHeader, cellPos } = state.hover;\n const table = state.table;\n\n const isHeader = table.isHeader(col, row);\n if (isHeader && disableHeader) {\n return undefined;\n }\n\n let hoverMode;\n if (highlightScope === HighlightScope.single && cellPos.col === col && cellPos.row === row) {\n hoverMode = 'cellBgColor';\n } else if (highlightScope === HighlightScope.column && cellPos.col === col) {\n hoverMode = 'inlineColumnBgColor';\n } else if (highlightScope === HighlightScope.row && cellPos.row === row) {\n hoverMode = 'inlineRowBgColor';\n } else if (highlightScope === HighlightScope.cross) {\n if (cellPos.col === col && cellPos.row === row) {\n hoverMode = 'cellBgColor';\n } else if (cellPos.col === col) {\n hoverMode = 'inlineColumnBgColor';\n } else if (cellPos.row === row) {\n hoverMode = 'inlineRowBgColor';\n }\n }\n\n if (hoverMode) {\n let cellDisable;\n if (isHeader) {\n const define = table.getHeaderDefine(col, row);\n cellDisable = define?.disableHeaderHover;\n } else {\n const define = table.getBodyColumnDefine(col, row);\n cellDisable = define?.disableHover;\n }\n\n if (cellDisable) {\n hoverMode = undefined;\n }\n }\n\n return hoverMode;\n}\n"]}
1
+ {"version":3,"sources":["../src/state/hover/is-cell-hover.ts"],"names":[],"mappings":"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","file":"is-cell-hover.js","sourcesContent":["import type { StateManager } from '../state';\nimport type { Group } from '../../scenegraph/graphic/group';\nimport { getProp } from '../../scenegraph/utils/get-prop';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\nimport { HighlightScope } from '../../ts-types';\nimport { isValid } from '@visactor/vutils';\n\nexport function getCellHoverColor(cellGroup: Group, table: BaseTableAPI): string | undefined {\n let colorKey;\n if (\n cellGroup.role === 'cell' &&\n isValid(cellGroup.mergeStartCol) &&\n isValid(cellGroup.mergeStartRow) &&\n isValid(cellGroup.mergeEndCol) &&\n isValid(cellGroup.mergeEndRow)\n ) {\n for (let col = cellGroup.mergeStartCol; col <= cellGroup.mergeEndCol; col++) {\n for (let row = cellGroup.mergeStartRow; row <= cellGroup.mergeEndRow; row++) {\n const key = isCellHover(table.stateManager, col, row, cellGroup);\n if (key && (!colorKey || key === 'cellBgColor')) {\n colorKey = key;\n }\n }\n }\n } else if (cellGroup.role === 'cell') {\n colorKey = isCellHover(table.stateManager, cellGroup.col, cellGroup.row, cellGroup);\n }\n\n if (!colorKey) {\n return undefined;\n }\n\n let hoverStyle;\n const layout = table.internalProps.layoutMap;\n if (layout.isCornerHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.cornerHeaderStyle?.hover || table.theme.headerStyle?.hover;\n } else if (layout.isColumnHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.headerStyle?.hover;\n } else if (layout.isRowHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.rowHeaderStyle?.hover;\n } else if (layout.isBottomFrozenRow(cellGroup.col, cellGroup.row)) {\n hoverStyle =\n table.theme.bottomFrozenStyle?.hover ||\n (table.isListTable() ? table.theme.bodyStyle?.hover : table.theme.headerStyle?.hover);\n } else if (layout.isRightFrozenColumn(cellGroup.col, cellGroup.row)) {\n hoverStyle =\n table.theme.rightFrozenStyle?.hover ||\n (table.isListTable() ? table.theme.bodyStyle?.hover : table.theme.rowHeaderStyle?.hover);\n } else if (!table.isHeader(cellGroup.col, cellGroup.row)) {\n hoverStyle = table.theme.bodyStyle?.hover;\n }\n const fillColor = getProp(colorKey, hoverStyle, cellGroup.col, cellGroup.row, table);\n return fillColor;\n}\n\nexport function isCellHover(state: StateManager, col: number, row: number, cellGroup: Group): string | undefined {\n const { highlightScope, disableHeader, cellPos } = state.hover;\n const table = state.table;\n\n const isHeader = table.isHeader(col, row);\n if (isHeader && disableHeader) {\n return undefined;\n }\n\n let hoverMode;\n if (highlightScope === HighlightScope.single && cellPos.col === col && cellPos.row === row) {\n hoverMode = 'cellBgColor';\n } else if (highlightScope === HighlightScope.column && cellPos.col === col) {\n hoverMode = 'inlineColumnBgColor';\n } else if (highlightScope === HighlightScope.row && cellPos.row === row) {\n hoverMode = 'inlineRowBgColor';\n } else if (highlightScope === HighlightScope.cross) {\n if (cellPos.col === col && cellPos.row === row) {\n hoverMode = 'cellBgColor';\n } else if (cellPos.col === col) {\n hoverMode = 'inlineColumnBgColor';\n } else if (cellPos.row === row) {\n hoverMode = 'inlineRowBgColor';\n }\n }\n\n if (hoverMode) {\n let cellDisable;\n if (isHeader) {\n const define = table.getHeaderDefine(col, row);\n cellDisable = define?.disableHeaderHover;\n\n if (cellGroup.firstChild && cellGroup.firstChild.name === 'axis' && table.options.hover?.disableAxisHover) {\n cellDisable = true;\n }\n } else {\n const define = table.getBodyColumnDefine(col, row);\n cellDisable = define?.disableHover;\n }\n\n if (cellDisable) {\n hoverMode = undefined;\n }\n }\n\n return hoverMode;\n}\n"]}
@@ -3,7 +3,7 @@ import { InteractionState } from "../../ts-types";
3
3
  export function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectAll) {
4
4
  const {table: table, interactionState: interactionState} = state, {scenegraph: scenegraph} = table, {highlightScope: highlightScope, disableHeader: disableHeader, cellPos: cellPos} = state.select;
5
5
  if ((disableHeader && table.isHeader(col, row) || "none" === highlightScope) && (col = -1,
6
- row = -1), -1 !== col && -1 !== row && state.select.ranges.length > 0) if (interactionState === InteractionState.grabing) {
6
+ row = -1), -1 !== col && -1 !== row) if (interactionState === InteractionState.grabing && state.select.ranges.length > 0) {
7
7
  const currentRange = state.select.ranges[state.select.ranges.length - 1];
8
8
  col > currentRange.start.col && col > currentRange.end.col && table._makeVisibleCell(col + 1, row),
9
9
  row > currentRange.start.row && row > currentRange.end.row && table._makeVisibleCell(col, row + 1),
@@ -23,80 +23,80 @@ export function updateSelectPosition(state, col, row, isShift, isCtrl, isSelectA
23
23
  });
24
24
  const currentRange = state.select.ranges[state.select.ranges.length - 1];
25
25
  scenegraph.updateCellSelectBorder(currentRange.start.col, currentRange.start.row, currentRange.end.col, currentRange.end.row);
26
- } else if (-1 === cellPos.col || -1 === cellPos.row || -1 !== col && -1 !== row) {
27
- if (interactionState === InteractionState.default) {
26
+ } else if (-1 === cellPos.col || -1 === cellPos.row || -1 !== col && -1 !== row) if (interactionState !== InteractionState.default || table.stateManager.isResizeCol()) {
27
+ if (interactionState === InteractionState.grabing && !table.stateManager.isResizeCol()) {
28
+ -1 === cellPos.col && (cellPos.col = col), -1 === cellPos.row && (cellPos.row = row);
28
29
  const currentRange = state.select.ranges[state.select.ranges.length - 1];
29
- if (isShift && currentRange) {
30
- if ("cell" !== state.select.headerSelectMode && table.isColumnHeader(col, row)) {
31
- const startCol = Math.min(currentRange.start.col, currentRange.end.col, col), endCol = Math.max(currentRange.start.col, currentRange.end.col, col), startRow = Math.min(currentRange.start.row, currentRange.end.row, row), endRow = table.rowCount - 1;
32
- currentRange.start = {
33
- col: startCol,
34
- row: startRow
35
- }, currentRange.end = {
36
- col: endCol,
37
- row: endRow
38
- };
39
- } else if ("cell" !== state.select.headerSelectMode && table.isRowHeader(col, row)) {
40
- const startCol = Math.min(currentRange.start.col, currentRange.end.col, col), endCol = table.colCount - 1, startRow = Math.min(currentRange.start.row, currentRange.end.row, row), endRow = Math.max(currentRange.start.row, currentRange.end.row, row);
41
- currentRange.start = {
42
- col: startCol,
43
- row: startRow
44
- }, currentRange.end = {
45
- col: endCol,
46
- row: endRow
47
- };
48
- } else currentRange.end = {
49
- col: col,
50
- row: row
30
+ currentRange.end = {
31
+ col: col,
32
+ row: row
33
+ }, cellPos.col = col, cellPos.row = row, scenegraph.updateCellSelectBorder(currentRange.start.col, currentRange.start.row, col, row);
34
+ }
35
+ } else {
36
+ const currentRange = state.select.ranges[state.select.ranges.length - 1];
37
+ if (isShift && currentRange) {
38
+ if ("cell" !== state.select.headerSelectMode && table.isColumnHeader(col, row)) {
39
+ const startCol = Math.min(currentRange.start.col, currentRange.end.col, col), endCol = Math.max(currentRange.start.col, currentRange.end.col, col), startRow = Math.min(currentRange.start.row, currentRange.end.row, row), endRow = table.rowCount - 1;
40
+ currentRange.start = {
41
+ col: startCol,
42
+ row: startRow
43
+ }, currentRange.end = {
44
+ col: endCol,
45
+ row: endRow
46
+ };
47
+ } else if ("cell" !== state.select.headerSelectMode && table.isRowHeader(col, row)) {
48
+ const startCol = Math.min(currentRange.start.col, currentRange.end.col, col), endCol = table.colCount - 1, startRow = Math.min(currentRange.start.row, currentRange.end.row, row), endRow = Math.max(currentRange.start.row, currentRange.end.row, row);
49
+ currentRange.start = {
50
+ col: startCol,
51
+ row: startRow
52
+ }, currentRange.end = {
53
+ col: endCol,
54
+ row: endRow
51
55
  };
52
- scenegraph.deleteLastSelectedRangeComponents(), scenegraph.updateCellSelectBorder(currentRange.start.col, currentRange.start.row, currentRange.end.col, currentRange.end.row);
53
- } else {
54
- if (-1 === cellPos.col || -1 === cellPos.row || isCtrl || (state.select.ranges = [],
55
- scenegraph.deleteAllSelectBorder()), "cell" !== state.select.headerSelectMode && table.isColumnHeader(col, row)) {
56
- const cellRange = table.getCellRange(col, row);
57
- state.select.ranges.push({
58
- start: {
59
- col: cellRange.start.col,
60
- row: row
61
- },
62
- end: {
63
- col: cellRange.end.col,
64
- row: table.rowCount - 1
65
- }
66
- });
67
- } else if ("cell" !== state.select.headerSelectMode && table.isRowHeader(col, row)) {
68
- const cellRange = table.getCellRange(col, row);
69
- state.select.ranges.push({
70
- start: {
71
- col: col,
72
- row: cellRange.start.row
73
- },
74
- end: {
75
- col: table.colCount - 1,
76
- row: cellRange.end.row
77
- }
78
- });
79
- } else state.select.ranges.push({
56
+ } else currentRange.end = {
57
+ col: col,
58
+ row: row
59
+ };
60
+ scenegraph.deleteLastSelectedRangeComponents(), scenegraph.updateCellSelectBorder(currentRange.start.col, currentRange.start.row, currentRange.end.col, currentRange.end.row);
61
+ } else {
62
+ if (-1 === cellPos.col || -1 === cellPos.row || isCtrl || (state.select.ranges = [],
63
+ scenegraph.deleteAllSelectBorder()), "cell" !== state.select.headerSelectMode && table.isColumnHeader(col, row)) {
64
+ const cellRange = table.getCellRange(col, row);
65
+ state.select.ranges.push({
80
66
  start: {
81
- col: col,
67
+ col: cellRange.start.col,
82
68
  row: row
83
69
  },
84
70
  end: {
71
+ col: cellRange.end.col,
72
+ row: table.rowCount - 1
73
+ }
74
+ });
75
+ } else if ("cell" !== state.select.headerSelectMode && table.isRowHeader(col, row)) {
76
+ const cellRange = table.getCellRange(col, row);
77
+ state.select.ranges.push({
78
+ start: {
85
79
  col: col,
86
- row: row
80
+ row: cellRange.start.row
81
+ },
82
+ end: {
83
+ col: table.colCount - 1,
84
+ row: cellRange.end.row
87
85
  }
88
86
  });
89
- cellPos.col = col, cellPos.row = row;
90
- const currentRange = state.select.ranges[state.select.ranges.length - 1];
91
- scenegraph.updateCellSelectBorder(currentRange.start.col, currentRange.start.row, currentRange.end.col, currentRange.end.row);
92
- }
93
- } else if (interactionState === InteractionState.grabing) {
94
- -1 === cellPos.col && (cellPos.col = col), -1 === cellPos.row && (cellPos.row = row);
87
+ } else state.select.ranges.push({
88
+ start: {
89
+ col: col,
90
+ row: row
91
+ },
92
+ end: {
93
+ col: col,
94
+ row: row
95
+ }
96
+ });
97
+ cellPos.col = col, cellPos.row = row;
95
98
  const currentRange = state.select.ranges[state.select.ranges.length - 1];
96
- currentRange.end = {
97
- col: col,
98
- row: row
99
- }, cellPos.col = col, cellPos.row = row, scenegraph.updateCellSelectBorder(currentRange.start.col, currentRange.start.row, col, row);
99
+ scenegraph.updateCellSelectBorder(currentRange.start.col, currentRange.start.row, currentRange.end.col, currentRange.end.row);
100
100
  }
101
101
  } else cellPos.col = -1, cellPos.row = -1, state.select.ranges = [], scenegraph.deleteAllSelectBorder();
102
102
  scenegraph.updateNextFrame();
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/state/select/update-position.ts"],"names":[],"mappings":"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","file":"update-position.js","sourcesContent":["import type { Scenegraph } from '../../scenegraph/scenegraph';\nimport { InteractionState } from '../../ts-types';\nimport type { StateManager } from '../state';\n/**\n * @description: 更新select位置\n * @param {StateManager} state\n * @param {number} col\n * @param {number} row\n * @return {*}\n */\nexport function updateSelectPosition(\n state: StateManager,\n col: number,\n row: number,\n isShift: boolean,\n isCtrl: boolean,\n isSelectAll: boolean\n) {\n const { table, interactionState } = state;\n const { scenegraph } = table;\n const { highlightScope, disableHeader, cellPos } = state.select;\n if ((disableHeader && table.isHeader(col, row)) || highlightScope === 'none') {\n col = -1;\n row = -1;\n }\n // 如果这里不继续进行 会造成问题drag select first cell seleted repeatly https://github.com/VisActor/VTable/issues/611\n // if (cellPos.col === col && cellPos.row === row) {\n // return;\n // }\n /** 完整显示选中单元格 自动滚动效果*/\n if (col !== -1 && row !== -1 && state.select.ranges.length > 0) {\n if (interactionState === InteractionState.grabing) {\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (col > currentRange.start.col && col > currentRange.end.col) {\n //向右扩展\n table._makeVisibleCell(col + 1, row);\n }\n if (row > currentRange.start.row && row > currentRange.end.row) {\n //向右扩展\n table._makeVisibleCell(col, row + 1);\n }\n if (col < currentRange.start.col && col < currentRange.end.col) {\n //向右扩展\n table._makeVisibleCell(col - 1, row);\n }\n if (row < currentRange.start.row && row < currentRange.end.row) {\n //向右扩展\n table._makeVisibleCell(col, row - 1);\n }\n } else {\n table._makeVisibleCell(col, row);\n }\n }\n if (isSelectAll) {\n state.select.ranges = [];\n scenegraph.deleteAllSelectBorder();\n state.select.ranges.push({\n start: { col: 0, row: 0 },\n end: { col: table.colCount - 1, row: table.rowCount - 1 }\n });\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n scenegraph.updateCellSelectBorder(\n currentRange.start.col,\n currentRange.start.row,\n currentRange.end.col,\n currentRange.end.row\n );\n } else if (cellPos.col !== -1 && cellPos.row !== -1 && (col === -1 || row === -1)) {\n // 输入-1清空选中状态\n // clearMultiSelect(scenegraph, ranges, highlightScope, singleStyle);\n cellPos.col = -1;\n cellPos.row = -1;\n state.select.ranges = [];\n // 隐藏select border\n scenegraph.deleteAllSelectBorder();\n } else if (interactionState === InteractionState.default) {\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (isShift && currentRange) {\n if (state.select.headerSelectMode !== 'cell' && table.isColumnHeader(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = Math.max(currentRange.start.col, currentRange.end.col, col);\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = table.rowCount - 1;\n\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n } else if (state.select.headerSelectMode !== 'cell' && table.isRowHeader(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = table.colCount - 1;\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = Math.max(currentRange.start.row, currentRange.end.row, row);\n\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n } else {\n currentRange.end = { col, row };\n }\n scenegraph.deleteLastSelectedRangeComponents();\n scenegraph.updateCellSelectBorder(\n currentRange.start.col,\n currentRange.start.row,\n currentRange.end.col,\n currentRange.end.row\n );\n // } else if (isCtrl) {\n // cellPos.col = col;\n // cellPos.row = row;\n // state.select.ranges.push({\n // start: { col: cellPos.col, row: cellPos.row },\n // end: { col: cellPos.col, row: cellPos.row },\n // });\n // // 单选或多选的开始,只选中第一个单元格\n // // updateCellSelect(scenegraph, col, row, ranges, highlightScope, singleStyle);\n // scenegraph.setCellNormalStyle(col, row);\n // // 更新select border\n // // calculateAndUpdateMultiSelectBorder(scenegraph, col, row, col, row, state.select.ranges);\n // // 更新select border\n // scenegraph.updateCellSelectBorder(cellPos.col, cellPos.row, cellPos.col, cellPos.row);\n } else {\n // 单选或多选开始\n if (cellPos.col !== -1 && cellPos.row !== -1 && !isCtrl) {\n state.select.ranges = [];\n scenegraph.deleteAllSelectBorder();\n }\n if (state.select.headerSelectMode !== 'cell' && table.isColumnHeader(col, row)) {\n const cellRange = table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row },\n end: { col: cellRange.end.col, row: table.rowCount - 1 }\n });\n } else if (state.select.headerSelectMode !== 'cell' && table.isRowHeader(col, row)) {\n const cellRange = table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col, row: cellRange.start.row },\n end: { col: table.colCount - 1, row: cellRange.end.row }\n });\n } else {\n state.select.ranges.push({\n start: { col, row },\n end: { col, row }\n });\n }\n cellPos.col = col;\n cellPos.row = row;\n // scenegraph.setCellNormalStyle(col, row);\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n scenegraph.updateCellSelectBorder(\n currentRange.start.col,\n currentRange.start.row,\n currentRange.end.col,\n currentRange.end.row\n );\n }\n } else if (interactionState === InteractionState.grabing) {\n // 可能有cellPosStart从-1开始grabing的情况\n if (cellPos.col === -1) {\n cellPos.col = col;\n }\n if (cellPos.row === -1) {\n cellPos.row = row;\n }\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n currentRange.end = {\n col,\n row\n };\n cellPos.col = col;\n cellPos.row = row;\n scenegraph.updateCellSelectBorder(currentRange.start.col, currentRange.start.row, col, row);\n }\n scenegraph.updateNextFrame();\n}\nexport function selectEnd(scenegraph: Scenegraph) {\n scenegraph.moveSelectingRangeComponentsToSelectedRangeComponents();\n}\n"]}
1
+ {"version":3,"sources":["../src/state/select/update-position.ts"],"names":[],"mappings":"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","file":"update-position.js","sourcesContent":["import type { Scenegraph } from '../../scenegraph/scenegraph';\nimport { InteractionState } from '../../ts-types';\nimport type { StateManager } from '../state';\n/**\n * @description: 更新select位置\n * @param {StateManager} state\n * @param {number} col\n * @param {number} row\n * @return {*}\n */\nexport function updateSelectPosition(\n state: StateManager,\n col: number,\n row: number,\n isShift: boolean,\n isCtrl: boolean,\n isSelectAll: boolean\n) {\n const { table, interactionState } = state;\n const { scenegraph } = table;\n const { highlightScope, disableHeader, cellPos } = state.select;\n if ((disableHeader && table.isHeader(col, row)) || highlightScope === 'none') {\n col = -1;\n row = -1;\n }\n // 如果这里不继续进行 会造成问题drag select first cell seleted repeatly https://github.com/VisActor/VTable/issues/611\n // if (cellPos.col === col && cellPos.row === row) {\n // return;\n // }\n /** 完整显示选中单元格 自动滚动效果*/\n if (col !== -1 && row !== -1) {\n if (interactionState === InteractionState.grabing && state.select.ranges.length > 0) {\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (col > currentRange.start.col && col > currentRange.end.col) {\n //向右扩展\n table._makeVisibleCell(col + 1, row);\n }\n if (row > currentRange.start.row && row > currentRange.end.row) {\n //向右扩展\n table._makeVisibleCell(col, row + 1);\n }\n if (col < currentRange.start.col && col < currentRange.end.col) {\n //向右扩展\n table._makeVisibleCell(col - 1, row);\n }\n if (row < currentRange.start.row && row < currentRange.end.row) {\n //向右扩展\n table._makeVisibleCell(col, row - 1);\n }\n } else {\n table._makeVisibleCell(col, row);\n }\n }\n if (isSelectAll) {\n state.select.ranges = [];\n scenegraph.deleteAllSelectBorder();\n state.select.ranges.push({\n start: { col: 0, row: 0 },\n end: { col: table.colCount - 1, row: table.rowCount - 1 }\n });\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n scenegraph.updateCellSelectBorder(\n currentRange.start.col,\n currentRange.start.row,\n currentRange.end.col,\n currentRange.end.row\n );\n } else if (cellPos.col !== -1 && cellPos.row !== -1 && (col === -1 || row === -1)) {\n // 输入-1清空选中状态\n // clearMultiSelect(scenegraph, ranges, highlightScope, singleStyle);\n cellPos.col = -1;\n cellPos.row = -1;\n state.select.ranges = [];\n // 隐藏select border\n scenegraph.deleteAllSelectBorder();\n } else if (interactionState === InteractionState.default && !table.stateManager.isResizeCol()) {\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n if (isShift && currentRange) {\n if (state.select.headerSelectMode !== 'cell' && table.isColumnHeader(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = Math.max(currentRange.start.col, currentRange.end.col, col);\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = table.rowCount - 1;\n\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n } else if (state.select.headerSelectMode !== 'cell' && table.isRowHeader(col, row)) {\n const startCol = Math.min(currentRange.start.col, currentRange.end.col, col);\n const endCol = table.colCount - 1;\n const startRow = Math.min(currentRange.start.row, currentRange.end.row, row);\n const endRow = Math.max(currentRange.start.row, currentRange.end.row, row);\n\n currentRange.start = { col: startCol, row: startRow };\n currentRange.end = { col: endCol, row: endRow };\n } else {\n currentRange.end = { col, row };\n }\n scenegraph.deleteLastSelectedRangeComponents();\n scenegraph.updateCellSelectBorder(\n currentRange.start.col,\n currentRange.start.row,\n currentRange.end.col,\n currentRange.end.row\n );\n // } else if (isCtrl) {\n // cellPos.col = col;\n // cellPos.row = row;\n // state.select.ranges.push({\n // start: { col: cellPos.col, row: cellPos.row },\n // end: { col: cellPos.col, row: cellPos.row },\n // });\n // // 单选或多选的开始,只选中第一个单元格\n // // updateCellSelect(scenegraph, col, row, ranges, highlightScope, singleStyle);\n // scenegraph.setCellNormalStyle(col, row);\n // // 更新select border\n // // calculateAndUpdateMultiSelectBorder(scenegraph, col, row, col, row, state.select.ranges);\n // // 更新select border\n // scenegraph.updateCellSelectBorder(cellPos.col, cellPos.row, cellPos.col, cellPos.row);\n } else {\n // 单选或多选开始\n if (cellPos.col !== -1 && cellPos.row !== -1 && !isCtrl) {\n state.select.ranges = [];\n scenegraph.deleteAllSelectBorder();\n }\n if (state.select.headerSelectMode !== 'cell' && table.isColumnHeader(col, row)) {\n const cellRange = table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col: cellRange.start.col, row },\n end: { col: cellRange.end.col, row: table.rowCount - 1 }\n });\n } else if (state.select.headerSelectMode !== 'cell' && table.isRowHeader(col, row)) {\n const cellRange = table.getCellRange(col, row);\n state.select.ranges.push({\n start: { col, row: cellRange.start.row },\n end: { col: table.colCount - 1, row: cellRange.end.row }\n });\n } else {\n state.select.ranges.push({\n start: { col, row },\n end: { col, row }\n });\n }\n cellPos.col = col;\n cellPos.row = row;\n // scenegraph.setCellNormalStyle(col, row);\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n scenegraph.updateCellSelectBorder(\n currentRange.start.col,\n currentRange.start.row,\n currentRange.end.col,\n currentRange.end.row\n );\n }\n } else if (interactionState === InteractionState.grabing && !table.stateManager.isResizeCol()) {\n // 可能有cellPosStart从-1开始grabing的情况\n if (cellPos.col === -1) {\n cellPos.col = col;\n }\n if (cellPos.row === -1) {\n cellPos.row = row;\n }\n const currentRange = state.select.ranges[state.select.ranges.length - 1];\n currentRange.end = {\n col,\n row\n };\n cellPos.col = col;\n cellPos.row = row;\n scenegraph.updateCellSelectBorder(currentRange.start.col, currentRange.start.row, col, row);\n }\n scenegraph.updateNextFrame();\n}\nexport function selectEnd(scenegraph: Scenegraph) {\n scenegraph.moveSelectingRangeComponentsToSelectedRangeComponents();\n}\n"]}
@@ -30,18 +30,22 @@ export function updateChartHover(col, row, x, y, table) {
30
30
  }, defined)) {
31
31
  const highlightLine = sparkline.getChildByName("highlight-line");
32
32
  if (highlightLine) highlightLine.setAttributes({
33
- x: pointX,
33
+ points: [ {
34
+ x: pointX,
35
+ y: max
36
+ }, {
37
+ x: pointX,
38
+ y: min
39
+ } ],
34
40
  visible: !0,
35
41
  pickable: !0
36
42
  }); else {
37
43
  const highlightLine = createLine({
38
- x: pointX,
39
- y: 0,
40
44
  points: [ {
41
- x: 0,
45
+ x: pointX,
42
46
  y: max
43
47
  }, {
44
- x: 0,
48
+ x: pointX,
45
49
  y: min
46
50
  } ],
47
51
  lineWidth: null === (_a = line.hover) || void 0 === _a ? void 0 : _a.strokeWidth,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/state/spark-line/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { createLine, createSymbol } from '@visactor/vrender';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport type { MousePointerSparklineEvent } from '../../ts-types';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\nexport function clearChartHover(col: number, row: number, table: BaseTableAPI) {\n const cellGroup = table.scenegraph.getCell(col, row);\n const sparkline = cellGroup.getChildByName('sparkline');\n const highlightLine = sparkline?.getChildByName('highlight-line');\n const highlightSymbol = sparkline?.getChildByName('highlight-symbol');\n if (highlightLine) {\n highlightLine.setAttributes({\n visible: false,\n pickable: false\n });\n }\n if (highlightSymbol) {\n highlightSymbol.setAttributes({\n visible: false,\n pickable: false\n });\n }\n\n table.scenegraph.updateNextFrame();\n}\n\nexport function updateChartHover(col: number, row: number, x: number, y: number, table: BaseTableAPI): boolean {\n const cellGroup = table.scenegraph.getCell(col, row);\n const sparkline = cellGroup.getChildByName('sparkline');\n const line = sparkline?.getChildByName('sparkline-line');\n const symbol = sparkline?.getChildByName('sparkline-symbol-group');\n if (!line) {\n return false;\n }\n const bandwidth = (line as any).bandwidth;\n const min = (line as any).min;\n const max = (line as any).max;\n const points = line.attribute.points;\n x = x - sparkline.globalAABBBounds.x1;\n y = y - sparkline.globalAABBBounds.y1;\n\n let chartPoint;\n for (let i = 0; i < points.length; i++) {\n const { x: pointX, y: pointY, defined, rawData } = points[i];\n\n if (Math.abs(x - pointX) < bandwidth / 2) {\n chartPoint = {\n point: points[i],\n points,\n pointsBandWidth: bandwidth,\n pointData: rawData\n };\n if (defined) {\n // 添加highlight line\n const highlightLine = sparkline.getChildByName('highlight-line');\n if (highlightLine) {\n highlightLine.setAttributes({\n x: pointX,\n visible: true,\n pickable: true\n });\n } else {\n const highlightLine = createLine({\n x: pointX,\n y: 0,\n points: [\n { x: 0, y: max },\n { x: 0, y: min }\n ],\n lineWidth: line.hover?.strokeWidth,\n stroke: line.hover?.stroke\n });\n highlightLine.name = 'highlight-line';\n sparkline.addChild(highlightLine);\n }\n\n // 添加highlight symbol\n const highlightSymbol = sparkline.getChildByName('highlight-symbol');\n if (highlightSymbol) {\n highlightSymbol.setAttributes({\n x: pointX,\n y: pointY,\n visible: true,\n pickable: true\n });\n } else {\n const highlightSymbol = createSymbol({\n x: pointX,\n y: pointY,\n stroke: symbol.hover.stroke,\n lineWidth: symbol.hover.strokeWidth,\n fill: symbol.hover.fill,\n size: symbol.hover.size * 2, // 之前配置的是圆半径\n symbolType: 'circle'\n });\n highlightSymbol.name = 'highlight-symbol';\n sparkline.addChild(highlightSymbol);\n }\n break;\n }\n }\n }\n table.scenegraph.updateNextFrame();\n\n if (chartPoint) {\n const eventInfo: Omit<MousePointerSparklineEvent, 'target'> = {\n col,\n row,\n field: table.getHeaderField(col, row),\n value: table.getCellValue(col, row),\n dataValue: table.getCellOriginValue(col, row),\n cellHeaderPaths: table.internalProps.layoutMap.getCellHeaderPaths(col, row),\n title: table.getBodyColumnDefine(col, row).title,\n cellRange: table.getCellRelativeRect(col, row),\n sparkline: {\n pointData: chartPoint.pointData\n },\n scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth\n };\n table.fireListeners(TABLE_EVENT_TYPE.MOUSEOVER_CHART_SYMBOL, eventInfo as MousePointerSparklineEvent);\n }\n return true;\n}\n"]}
1
+ {"version":3,"sources":["../src/state/spark-line/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { createLine, createSymbol } from '@visactor/vrender';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport type { MousePointerSparklineEvent } from '../../ts-types';\nimport type { BaseTableAPI } from '../../ts-types/base-table';\n\nexport function clearChartHover(col: number, row: number, table: BaseTableAPI) {\n const cellGroup = table.scenegraph.getCell(col, row);\n const sparkline = cellGroup.getChildByName('sparkline');\n const highlightLine = sparkline?.getChildByName('highlight-line');\n const highlightSymbol = sparkline?.getChildByName('highlight-symbol');\n if (highlightLine) {\n highlightLine.setAttributes({\n visible: false,\n pickable: false\n });\n }\n if (highlightSymbol) {\n highlightSymbol.setAttributes({\n visible: false,\n pickable: false\n });\n }\n\n table.scenegraph.updateNextFrame();\n}\n\nexport function updateChartHover(col: number, row: number, x: number, y: number, table: BaseTableAPI): boolean {\n const cellGroup = table.scenegraph.getCell(col, row);\n const sparkline = cellGroup.getChildByName('sparkline');\n const line = sparkline?.getChildByName('sparkline-line');\n const symbol = sparkline?.getChildByName('sparkline-symbol-group');\n if (!line) {\n return false;\n }\n const bandwidth = (line as any).bandwidth;\n const min = (line as any).min;\n const max = (line as any).max;\n const points = line.attribute.points;\n x = x - sparkline.globalAABBBounds.x1;\n y = y - sparkline.globalAABBBounds.y1;\n\n let chartPoint;\n for (let i = 0; i < points.length; i++) {\n const { x: pointX, y: pointY, defined, rawData } = points[i];\n\n if (Math.abs(x - pointX) < bandwidth / 2) {\n chartPoint = {\n point: points[i],\n points,\n pointsBandWidth: bandwidth,\n pointData: rawData\n };\n if (defined) {\n // 添加highlight line\n const highlightLine = sparkline.getChildByName('highlight-line');\n if (highlightLine) {\n highlightLine.setAttributes({\n // x: pointX,\n points: [\n { x: pointX, y: max },\n { x: pointX, y: min }\n ],\n visible: true,\n pickable: true\n });\n } else {\n const highlightLine = createLine({\n // x: 0,\n // y: 0,\n points: [\n { x: pointX, y: max },\n { x: pointX, y: min }\n ],\n lineWidth: line.hover?.strokeWidth,\n stroke: line.hover?.stroke\n });\n highlightLine.name = 'highlight-line';\n sparkline.addChild(highlightLine);\n }\n\n // 添加highlight symbol\n const highlightSymbol = sparkline.getChildByName('highlight-symbol');\n if (highlightSymbol) {\n highlightSymbol.setAttributes({\n x: pointX,\n y: pointY,\n visible: true,\n pickable: true\n });\n } else {\n const highlightSymbol = createSymbol({\n x: pointX,\n y: pointY,\n stroke: symbol.hover.stroke,\n lineWidth: symbol.hover.strokeWidth,\n fill: symbol.hover.fill,\n size: symbol.hover.size * 2, // 之前配置的是圆半径\n symbolType: 'circle'\n });\n highlightSymbol.name = 'highlight-symbol';\n sparkline.addChild(highlightSymbol);\n }\n break;\n }\n }\n }\n table.scenegraph.updateNextFrame();\n\n if (chartPoint) {\n const eventInfo: Omit<MousePointerSparklineEvent, 'target'> = {\n col,\n row,\n field: table.getHeaderField(col, row),\n value: table.getCellValue(col, row),\n dataValue: table.getCellOriginValue(col, row),\n cellHeaderPaths: table.internalProps.layoutMap.getCellHeaderPaths(col, row),\n title: table.getBodyColumnDefine(col, row).title,\n cellRange: table.getCellRelativeRect(col, row),\n sparkline: {\n pointData: chartPoint.pointData\n },\n scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth\n };\n table.fireListeners(TABLE_EVENT_TYPE.MOUSEOVER_CHART_SYMBOL, eventInfo as MousePointerSparklineEvent);\n }\n return true;\n}\n"]}
package/es/state/state.js CHANGED
@@ -412,14 +412,12 @@ export class StateManager {
412
412
  row: row,
413
413
  icon: icon
414
414
  }, this.table.scenegraph.setIconHoverStyle(this.residentHoverIcon.icon, this.residentHoverIcon.col, this.residentHoverIcon.row, cellGroup),
415
- icon.oldVisibleTime = icon.attribute.visibleTime, icon.setAttribute("visibleTime", "always"),
416
- icon.setAttribute("opacity", 1));
415
+ this.table.scenegraph.residentHoverIcon(col, row));
417
416
  }
418
417
  hideMenu() {
419
418
  this.table.fireListeners(TABLE_EVENT_TYPE.DROPDOWN_MENU_CLEAR, null), this.table.fireListeners(TABLE_EVENT_TYPE.HIDE_MENU, null),
420
419
  this.menu.isShow = !1, this.table.scenegraph.component.menu.detach(), this.residentHoverIcon && (this.table.scenegraph.setIconNormalStyle(this.residentHoverIcon.icon, this.residentHoverIcon.col, this.residentHoverIcon.row),
421
- this.residentHoverIcon.icon.setAttribute("visibleTime", this.residentHoverIcon.icon.oldVisibleTime),
422
- this.residentHoverIcon.icon.setAttribute("opacity", "always" === this.residentHoverIcon.icon.attribute.visibleTime ? 1 : 0),
420
+ this.table.scenegraph.resetResidentHoverIcon(this.residentHoverIcon.col, this.residentHoverIcon.row),
423
421
  this.residentHoverIcon = null);
424
422
  }
425
423
  setDropDownMenuHighlight(cells) {