@visactor/vtable 0.9.1-alpha.4 → 0.9.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 (431) hide show
  1. package/cjs/ListTable.js +15 -4
  2. package/cjs/ListTable.js.map +1 -1
  3. package/cjs/PivotTable.d.ts +2 -1
  4. package/cjs/PivotTable.js +15 -3
  5. package/cjs/PivotTable.js.map +1 -1
  6. package/cjs/body-helper/body-helper.d.ts +1 -0
  7. package/cjs/body-helper/body-helper.js +6 -3
  8. package/cjs/body-helper/body-helper.js.map +1 -1
  9. package/cjs/body-helper/style/ProgressBarStyle.js +14 -8
  10. package/cjs/body-helper/style/ProgressBarStyle.js.map +1 -1
  11. package/cjs/body-helper/style/Style.d.ts +3 -0
  12. package/cjs/body-helper/style/Style.js +21 -14
  13. package/cjs/body-helper/style/Style.js.map +1 -1
  14. package/cjs/core/BaseTable.d.ts +4 -1
  15. package/cjs/core/BaseTable.js +31 -20
  16. package/cjs/core/BaseTable.js.map +1 -1
  17. package/cjs/core/tableHelper.js +11 -6
  18. package/cjs/core/tableHelper.js.map +1 -1
  19. package/cjs/data/DataSource.d.ts +4 -1
  20. package/cjs/data/DataSource.js +3 -3
  21. package/cjs/data/DataSource.js.map +1 -1
  22. package/cjs/event/event.d.ts +14 -19
  23. package/cjs/event/event.js +12 -329
  24. package/cjs/event/event.js.map +1 -1
  25. package/cjs/event/listener/container-dom.d.ts +2 -0
  26. package/cjs/event/listener/container-dom.js +42 -0
  27. package/cjs/event/listener/container-dom.js.map +1 -0
  28. package/cjs/event/listener/scroll-bar.d.ts +2 -0
  29. package/cjs/event/listener/scroll-bar.js +44 -0
  30. package/cjs/event/listener/scroll-bar.js.map +1 -0
  31. package/cjs/event/listener/table-group.d.ts +2 -0
  32. package/cjs/event/listener/table-group.js +262 -0
  33. package/cjs/event/listener/table-group.js.map +1 -0
  34. package/cjs/event/listener/touch.d.ts +2 -0
  35. package/cjs/event/listener/touch.js +76 -0
  36. package/cjs/event/listener/touch.js.map +1 -0
  37. package/cjs/event/scroll.d.ts +2 -0
  38. package/cjs/event/scroll.js +32 -4
  39. package/cjs/event/scroll.js.map +1 -1
  40. package/cjs/event/util.d.ts +16 -0
  41. package/cjs/event/util.js +30 -0
  42. package/cjs/event/util.js.map +1 -0
  43. package/cjs/header-helper/header-helper.d.ts +5 -6
  44. package/cjs/header-helper/header-helper.js +19 -22
  45. package/cjs/header-helper/header-helper.js.map +1 -1
  46. package/cjs/icons.js +11 -11
  47. package/cjs/icons.js.map +1 -1
  48. package/cjs/index.d.ts +1 -1
  49. package/cjs/index.js +1 -1
  50. package/cjs/index.js.map +1 -1
  51. package/cjs/layout/index.js +1 -2
  52. package/cjs/layout/pivot-header-layout.d.ts +4 -1
  53. package/cjs/layout/pivot-header-layout.js +15 -14
  54. package/cjs/layout/pivot-header-layout.js.map +1 -1
  55. package/cjs/layout/simple-header-layout.d.ts +13 -1
  56. package/cjs/layout/simple-header-layout.js +12 -1
  57. package/cjs/layout/simple-header-layout.js.map +1 -1
  58. package/cjs/render/layout/container.js +1 -1
  59. package/cjs/render/layout/container.js.map +1 -1
  60. package/cjs/render/layout/element.d.ts +1 -1
  61. package/cjs/render/layout/element.js.map +1 -1
  62. package/cjs/render/layout/rect.d.ts +2 -2
  63. package/cjs/render/layout/rect.js +2 -2
  64. package/cjs/render/layout/rect.js.map +1 -1
  65. package/cjs/scenegraph/component/custom.js +18 -7
  66. package/cjs/scenegraph/component/custom.js.map +1 -1
  67. package/cjs/scenegraph/component/menu.js +2 -2
  68. package/cjs/scenegraph/component/menu.js.map +1 -1
  69. package/cjs/scenegraph/component/table-component.d.ts +3 -3
  70. package/cjs/scenegraph/component/table-component.js +36 -26
  71. package/cjs/scenegraph/component/table-component.js.map +1 -1
  72. package/cjs/scenegraph/graphic/chart.d.ts +1 -0
  73. package/cjs/scenegraph/graphic/chart.js.map +1 -1
  74. package/cjs/scenegraph/graphic/contributions/chart-render.js +7 -2
  75. package/cjs/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  76. package/cjs/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  77. package/cjs/scenegraph/graphic/group.d.ts +4 -0
  78. package/cjs/scenegraph/graphic/group.js +6 -0
  79. package/cjs/scenegraph/graphic/group.js.map +1 -1
  80. package/cjs/scenegraph/graphic/text.js +7 -7
  81. package/cjs/scenegraph/graphic/text.js.map +1 -1
  82. package/cjs/scenegraph/group-creater/cell-helper.d.ts +3 -4
  83. package/cjs/scenegraph/group-creater/cell-helper.js +25 -18
  84. package/cjs/scenegraph/group-creater/cell-helper.js.map +1 -1
  85. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js +6 -4
  86. package/cjs/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  87. package/cjs/scenegraph/group-creater/cell-type/image-cell.js +11 -1
  88. package/cjs/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  89. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js +12 -9
  90. package/cjs/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  91. package/cjs/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -1
  92. package/cjs/scenegraph/group-creater/cell-type/text-cell.js +7 -4
  93. package/cjs/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  94. package/cjs/scenegraph/group-creater/cell-type/video-cell.js +1 -1
  95. package/cjs/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  96. package/cjs/scenegraph/group-creater/column-helper.d.ts +3 -3
  97. package/cjs/scenegraph/group-creater/column-helper.js +22 -11
  98. package/cjs/scenegraph/group-creater/column-helper.js.map +1 -1
  99. package/cjs/scenegraph/group-creater/column.d.ts +0 -6
  100. package/cjs/scenegraph/group-creater/column.js +3 -12
  101. package/cjs/scenegraph/group-creater/column.js.map +1 -1
  102. package/cjs/scenegraph/group-creater/progress/proxy.d.ts +0 -2
  103. package/cjs/scenegraph/group-creater/progress/proxy.js +23 -19
  104. package/cjs/scenegraph/group-creater/progress/proxy.js.map +1 -1
  105. package/cjs/scenegraph/layout/auto-height.js +1 -1
  106. package/cjs/scenegraph/layout/auto-height.js.map +1 -1
  107. package/cjs/scenegraph/layout/auto-width.js +1 -1
  108. package/cjs/scenegraph/layout/auto-width.js.map +1 -1
  109. package/cjs/scenegraph/layout/compute-col-width.d.ts +1 -1
  110. package/cjs/scenegraph/layout/compute-col-width.js +28 -8
  111. package/cjs/scenegraph/layout/compute-col-width.js.map +1 -1
  112. package/cjs/scenegraph/layout/frozen.d.ts +3 -0
  113. package/cjs/scenegraph/layout/frozen.js +66 -0
  114. package/cjs/scenegraph/layout/frozen.js.map +1 -0
  115. package/cjs/scenegraph/layout/move-cell.js +5 -1
  116. package/cjs/scenegraph/layout/move-cell.js.map +1 -1
  117. package/cjs/scenegraph/layout/update-cell.js +3 -3
  118. package/cjs/scenegraph/layout/update-cell.js.map +1 -1
  119. package/cjs/scenegraph/layout/update-height.js +4 -4
  120. package/cjs/scenegraph/layout/update-height.js.map +1 -1
  121. package/cjs/scenegraph/layout/update-row.d.ts +3 -0
  122. package/cjs/scenegraph/layout/update-row.js +81 -0
  123. package/cjs/scenegraph/layout/update-row.js.map +1 -0
  124. package/cjs/scenegraph/layout/update-width.js +5 -5
  125. package/cjs/scenegraph/layout/update-width.js.map +1 -1
  126. package/cjs/scenegraph/refresh-node/update-chart.d.ts +2 -0
  127. package/cjs/scenegraph/refresh-node/update-chart.js +26 -0
  128. package/cjs/scenegraph/refresh-node/update-chart.js.map +1 -0
  129. package/cjs/scenegraph/scenegraph.d.ts +15 -3
  130. package/cjs/scenegraph/scenegraph.js +86 -95
  131. package/cjs/scenegraph/scenegraph.js.map +1 -1
  132. package/cjs/scenegraph/select/create-select-border.js +1 -0
  133. package/cjs/scenegraph/select/create-select-border.js.map +1 -1
  134. package/cjs/scenegraph/stick-text/index.js +52 -40
  135. package/cjs/scenegraph/stick-text/index.js.map +1 -1
  136. package/cjs/scenegraph/style/frame-border.d.ts +1 -1
  137. package/cjs/scenegraph/style/frame-border.js +7 -7
  138. package/cjs/scenegraph/style/frame-border.js.map +1 -1
  139. package/cjs/scenegraph/utils/deal-promise-data.d.ts +2 -0
  140. package/cjs/scenegraph/utils/deal-promise-data.js +14 -0
  141. package/cjs/scenegraph/utils/deal-promise-data.js.map +1 -0
  142. package/cjs/scenegraph/utils/empty-group.d.ts +2 -0
  143. package/cjs/scenegraph/utils/empty-group.js +10 -0
  144. package/cjs/scenegraph/utils/empty-group.js.map +1 -0
  145. package/cjs/scenegraph/utils/get-hierarchy-offset.d.ts +2 -0
  146. package/cjs/scenegraph/utils/get-hierarchy-offset.js +27 -0
  147. package/cjs/scenegraph/utils/get-hierarchy-offset.js.map +1 -0
  148. package/cjs/scenegraph/utils/padding.d.ts +1 -1
  149. package/cjs/scenegraph/utils/padding.js +3 -3
  150. package/cjs/scenegraph/utils/padding.js.map +1 -1
  151. package/cjs/scenegraph/utils/text-icon-layout.d.ts +3 -2
  152. package/cjs/scenegraph/utils/text-icon-layout.js +24 -19
  153. package/cjs/scenegraph/utils/text-icon-layout.js.map +1 -1
  154. package/cjs/scenegraph/utils/text-pos.js +1 -1
  155. package/cjs/scenegraph/utils/text-pos.js.map +1 -1
  156. package/cjs/state/cell-move/adjust-header.js +9 -2
  157. package/cjs/state/cell-move/adjust-header.js.map +1 -1
  158. package/cjs/state/cell-move/index.js +9 -3
  159. package/cjs/state/cell-move/index.js.map +1 -1
  160. package/cjs/state/frozen/index.d.ts +2 -0
  161. package/cjs/state/{pin → frozen}/index.js +2 -2
  162. package/cjs/state/frozen/index.js.map +1 -0
  163. package/cjs/state/state.d.ts +1 -1
  164. package/cjs/state/state.js +16 -12
  165. package/cjs/state/state.js.map +1 -1
  166. package/cjs/themes/ARCO.js +1 -1
  167. package/cjs/themes/ARCO.js.map +1 -1
  168. package/cjs/themes/BRIGHT.js +1 -1
  169. package/cjs/themes/BRIGHT.js.map +1 -1
  170. package/cjs/themes/DARK.js +1 -1
  171. package/cjs/themes/DARK.js.map +1 -1
  172. package/cjs/themes/DEFAULT.js +1 -1
  173. package/cjs/themes/DEFAULT.js.map +1 -1
  174. package/cjs/themes/theme.d.ts +1 -1
  175. package/cjs/themes/theme.js +6 -6
  176. package/cjs/themes/theme.js.map +1 -1
  177. package/cjs/tools/LimitPromiseQueue.js +1 -2
  178. package/cjs/tools/NumberMap.js +1 -1
  179. package/cjs/tools/Rect.js +1 -1
  180. package/cjs/tools/calc.js +1 -1
  181. package/cjs/tools/debounce.js +1 -1
  182. package/cjs/tools/diff-cell.d.ts +10 -0
  183. package/cjs/tools/diff-cell.js +49 -0
  184. package/cjs/tools/diff-cell.js.map +1 -0
  185. package/cjs/tools/dom.js +1 -1
  186. package/cjs/tools/env.js +1 -1
  187. package/cjs/tools/helper.d.ts +11 -0
  188. package/cjs/tools/helper.js +7 -2
  189. package/cjs/tools/helper.js.map +1 -1
  190. package/cjs/tooltip/BaseTooltip.js +1 -1
  191. package/cjs/tooltip/Tooltip.js +2 -1
  192. package/cjs/tooltip/TooltipHandler.js +1 -1
  193. package/cjs/ts-types/base-table.d.ts +8 -2
  194. package/cjs/ts-types/base-table.js +1 -1
  195. package/cjs/ts-types/base-table.js.map +1 -1
  196. package/cjs/ts-types/common.js +1 -1
  197. package/cjs/ts-types/customElement.d.ts +11 -2
  198. package/cjs/ts-types/customElement.js +1 -1
  199. package/cjs/ts-types/customElement.js.map +1 -1
  200. package/cjs/ts-types/customLayout.js +1 -1
  201. package/cjs/ts-types/events.js +1 -1
  202. package/cjs/ts-types/icon.d.ts +4 -5
  203. package/cjs/ts-types/icon.js +6 -6
  204. package/cjs/ts-types/icon.js.map +1 -1
  205. package/cjs/ts-types/list-table/define/basic-define.d.ts +4 -1
  206. package/cjs/ts-types/list-table/define/basic-define.js.map +1 -1
  207. package/cjs/ts-types/list-table/layout-map/api.js.map +1 -1
  208. package/cjs/ts-types/theme.d.ts +1 -1
  209. package/cjs/ts-types/theme.js.map +1 -1
  210. package/dist/vtable.es5.js +53155 -0
  211. package/dist/vtable.es5.min.js +3 -0
  212. package/dist/vtable.js +17155 -21633
  213. package/dist/vtable.min.js +15 -3
  214. package/es/ListTable.js +16 -3
  215. package/es/ListTable.js.map +1 -1
  216. package/es/PivotTable.d.ts +2 -1
  217. package/es/PivotTable.js +16 -2
  218. package/es/PivotTable.js.map +1 -1
  219. package/es/body-helper/body-helper.d.ts +1 -0
  220. package/es/body-helper/body-helper.js +6 -3
  221. package/es/body-helper/body-helper.js.map +1 -1
  222. package/es/body-helper/style/ProgressBarStyle.js +14 -8
  223. package/es/body-helper/style/ProgressBarStyle.js.map +1 -1
  224. package/es/body-helper/style/Style.d.ts +3 -0
  225. package/es/body-helper/style/Style.js +21 -14
  226. package/es/body-helper/style/Style.js.map +1 -1
  227. package/es/core/BaseTable.d.ts +4 -1
  228. package/es/core/BaseTable.js +31 -21
  229. package/es/core/BaseTable.js.map +1 -1
  230. package/es/core/tableHelper.js +11 -7
  231. package/es/core/tableHelper.js.map +1 -1
  232. package/es/data/DataSource.d.ts +4 -1
  233. package/es/data/DataSource.js +4 -2
  234. package/es/data/DataSource.js.map +1 -1
  235. package/es/event/event.d.ts +14 -19
  236. package/es/event/event.js +16 -333
  237. package/es/event/event.js.map +1 -1
  238. package/es/event/listener/container-dom.d.ts +2 -0
  239. package/es/event/listener/container-dom.js +40 -0
  240. package/es/event/listener/container-dom.js.map +1 -0
  241. package/es/event/listener/scroll-bar.d.ts +2 -0
  242. package/es/event/listener/scroll-bar.js +37 -0
  243. package/es/event/listener/scroll-bar.js.map +1 -0
  244. package/es/event/listener/table-group.d.ts +2 -0
  245. package/es/event/listener/table-group.js +265 -0
  246. package/es/event/listener/table-group.js.map +1 -0
  247. package/es/event/listener/touch.d.ts +2 -0
  248. package/es/event/listener/touch.js +67 -0
  249. package/es/event/listener/touch.js.map +1 -0
  250. package/es/event/scroll.d.ts +2 -0
  251. package/es/event/scroll.js +29 -3
  252. package/es/event/scroll.js.map +1 -1
  253. package/es/event/util.d.ts +16 -0
  254. package/es/event/util.js +24 -0
  255. package/es/event/util.js.map +1 -0
  256. package/es/header-helper/header-helper.d.ts +5 -6
  257. package/es/header-helper/header-helper.js +22 -24
  258. package/es/header-helper/header-helper.js.map +1 -1
  259. package/es/icons.js +11 -11
  260. package/es/icons.js.map +1 -1
  261. package/es/index.d.ts +1 -1
  262. package/es/index.js +1 -1
  263. package/es/index.js.map +1 -1
  264. package/es/layout/index.js +1 -2
  265. package/es/layout/pivot-header-layout.d.ts +4 -1
  266. package/es/layout/pivot-header-layout.js +17 -13
  267. package/es/layout/pivot-header-layout.js.map +1 -1
  268. package/es/layout/simple-header-layout.d.ts +13 -1
  269. package/es/layout/simple-header-layout.js +12 -1
  270. package/es/layout/simple-header-layout.js.map +1 -1
  271. package/es/render/layout/container.js +1 -1
  272. package/es/render/layout/container.js.map +1 -1
  273. package/es/render/layout/element.d.ts +1 -1
  274. package/es/render/layout/element.js.map +1 -1
  275. package/es/render/layout/rect.d.ts +2 -2
  276. package/es/render/layout/rect.js +2 -2
  277. package/es/render/layout/rect.js.map +1 -1
  278. package/es/scenegraph/component/custom.js +20 -9
  279. package/es/scenegraph/component/custom.js.map +1 -1
  280. package/es/scenegraph/component/menu.js +2 -2
  281. package/es/scenegraph/component/menu.js.map +1 -1
  282. package/es/scenegraph/component/table-component.d.ts +3 -3
  283. package/es/scenegraph/component/table-component.js +36 -26
  284. package/es/scenegraph/component/table-component.js.map +1 -1
  285. package/es/scenegraph/graphic/chart.d.ts +1 -0
  286. package/es/scenegraph/graphic/chart.js.map +1 -1
  287. package/es/scenegraph/graphic/contributions/chart-render.js +7 -2
  288. package/es/scenegraph/graphic/contributions/chart-render.js.map +1 -1
  289. package/es/scenegraph/graphic/contributions/group-contribution-render.js.map +1 -1
  290. package/es/scenegraph/graphic/group.d.ts +4 -0
  291. package/es/scenegraph/graphic/group.js +6 -0
  292. package/es/scenegraph/graphic/group.js.map +1 -1
  293. package/es/scenegraph/graphic/text.js +7 -7
  294. package/es/scenegraph/graphic/text.js.map +1 -1
  295. package/es/scenegraph/group-creater/cell-helper.d.ts +3 -4
  296. package/es/scenegraph/group-creater/cell-helper.js +28 -17
  297. package/es/scenegraph/group-creater/cell-helper.js.map +1 -1
  298. package/es/scenegraph/group-creater/cell-type/chart-cell.js +6 -4
  299. package/es/scenegraph/group-creater/cell-type/chart-cell.js.map +1 -1
  300. package/es/scenegraph/group-creater/cell-type/image-cell.js +12 -2
  301. package/es/scenegraph/group-creater/cell-type/image-cell.js.map +1 -1
  302. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js +13 -10
  303. package/es/scenegraph/group-creater/cell-type/progress-bar-cell.js.map +1 -1
  304. package/es/scenegraph/group-creater/cell-type/text-cell.d.ts +1 -1
  305. package/es/scenegraph/group-creater/cell-type/text-cell.js +7 -4
  306. package/es/scenegraph/group-creater/cell-type/text-cell.js.map +1 -1
  307. package/es/scenegraph/group-creater/cell-type/video-cell.js +1 -1
  308. package/es/scenegraph/group-creater/cell-type/video-cell.js.map +1 -1
  309. package/es/scenegraph/group-creater/column-helper.d.ts +3 -3
  310. package/es/scenegraph/group-creater/column-helper.js +25 -10
  311. package/es/scenegraph/group-creater/column-helper.js.map +1 -1
  312. package/es/scenegraph/group-creater/column.d.ts +0 -6
  313. package/es/scenegraph/group-creater/column.js +3 -12
  314. package/es/scenegraph/group-creater/column.js.map +1 -1
  315. package/es/scenegraph/group-creater/progress/proxy.d.ts +0 -2
  316. package/es/scenegraph/group-creater/progress/proxy.js +22 -21
  317. package/es/scenegraph/group-creater/progress/proxy.js.map +1 -1
  318. package/es/scenegraph/layout/auto-height.js +1 -1
  319. package/es/scenegraph/layout/auto-height.js.map +1 -1
  320. package/es/scenegraph/layout/auto-width.js +2 -2
  321. package/es/scenegraph/layout/auto-width.js.map +1 -1
  322. package/es/scenegraph/layout/compute-col-width.d.ts +1 -1
  323. package/es/scenegraph/layout/compute-col-width.js +30 -10
  324. package/es/scenegraph/layout/compute-col-width.js.map +1 -1
  325. package/es/scenegraph/layout/frozen.d.ts +3 -0
  326. package/es/scenegraph/layout/frozen.js +58 -0
  327. package/es/scenegraph/layout/frozen.js.map +1 -0
  328. package/es/scenegraph/layout/move-cell.js +5 -1
  329. package/es/scenegraph/layout/move-cell.js.map +1 -1
  330. package/es/scenegraph/layout/update-cell.js +4 -4
  331. package/es/scenegraph/layout/update-cell.js.map +1 -1
  332. package/es/scenegraph/layout/update-height.js +5 -5
  333. package/es/scenegraph/layout/update-height.js.map +1 -1
  334. package/es/scenegraph/layout/update-row.d.ts +3 -0
  335. package/es/scenegraph/layout/update-row.js +73 -0
  336. package/es/scenegraph/layout/update-row.js.map +1 -0
  337. package/es/scenegraph/layout/update-width.js +6 -6
  338. package/es/scenegraph/layout/update-width.js.map +1 -1
  339. package/es/scenegraph/refresh-node/update-chart.d.ts +2 -0
  340. package/es/scenegraph/refresh-node/update-chart.js +20 -0
  341. package/es/scenegraph/refresh-node/update-chart.js.map +1 -0
  342. package/es/scenegraph/scenegraph.d.ts +15 -3
  343. package/es/scenegraph/scenegraph.js +92 -94
  344. package/es/scenegraph/scenegraph.js.map +1 -1
  345. package/es/scenegraph/select/create-select-border.js +1 -0
  346. package/es/scenegraph/select/create-select-border.js.map +1 -1
  347. package/es/scenegraph/stick-text/index.js +52 -40
  348. package/es/scenegraph/stick-text/index.js.map +1 -1
  349. package/es/scenegraph/style/frame-border.d.ts +1 -1
  350. package/es/scenegraph/style/frame-border.js +9 -9
  351. package/es/scenegraph/style/frame-border.js.map +1 -1
  352. package/es/scenegraph/utils/deal-promise-data.d.ts +2 -0
  353. package/es/scenegraph/utils/deal-promise-data.js +8 -0
  354. package/es/scenegraph/utils/deal-promise-data.js.map +1 -0
  355. package/es/scenegraph/utils/empty-group.d.ts +2 -0
  356. package/es/scenegraph/utils/empty-group.js +6 -0
  357. package/es/scenegraph/utils/empty-group.js.map +1 -0
  358. package/es/scenegraph/utils/get-hierarchy-offset.d.ts +2 -0
  359. package/es/scenegraph/utils/get-hierarchy-offset.js +19 -0
  360. package/es/scenegraph/utils/get-hierarchy-offset.js.map +1 -0
  361. package/es/scenegraph/utils/padding.d.ts +1 -1
  362. package/es/scenegraph/utils/padding.js +1 -1
  363. package/es/scenegraph/utils/padding.js.map +1 -1
  364. package/es/scenegraph/utils/text-icon-layout.d.ts +3 -2
  365. package/es/scenegraph/utils/text-icon-layout.js +27 -19
  366. package/es/scenegraph/utils/text-icon-layout.js.map +1 -1
  367. package/es/scenegraph/utils/text-pos.js +2 -2
  368. package/es/scenegraph/utils/text-pos.js.map +1 -1
  369. package/es/state/cell-move/adjust-header.js +9 -2
  370. package/es/state/cell-move/adjust-header.js.map +1 -1
  371. package/es/state/cell-move/index.js +9 -3
  372. package/es/state/cell-move/index.js.map +1 -1
  373. package/es/state/frozen/index.d.ts +2 -0
  374. package/es/state/{pin → frozen}/index.js +1 -1
  375. package/es/state/frozen/index.js.map +1 -0
  376. package/es/state/state.d.ts +1 -1
  377. package/es/state/state.js +16 -12
  378. package/es/state/state.js.map +1 -1
  379. package/es/themes/ARCO.js +1 -1
  380. package/es/themes/ARCO.js.map +1 -1
  381. package/es/themes/BRIGHT.js +1 -1
  382. package/es/themes/BRIGHT.js.map +1 -1
  383. package/es/themes/DARK.js +1 -1
  384. package/es/themes/DARK.js.map +1 -1
  385. package/es/themes/DEFAULT.js +1 -1
  386. package/es/themes/DEFAULT.js.map +1 -1
  387. package/es/themes/theme.d.ts +1 -1
  388. package/es/themes/theme.js +6 -6
  389. package/es/themes/theme.js.map +1 -1
  390. package/es/tools/LimitPromiseQueue.js +1 -2
  391. package/es/tools/NumberMap.js +1 -1
  392. package/es/tools/Rect.js +1 -1
  393. package/es/tools/calc.js +1 -1
  394. package/es/tools/debounce.js +1 -1
  395. package/es/tools/diff-cell.d.ts +10 -0
  396. package/es/tools/diff-cell.js +42 -0
  397. package/es/tools/diff-cell.js.map +1 -0
  398. package/es/tools/dom.js +1 -1
  399. package/es/tools/env.js +1 -1
  400. package/es/tools/helper.d.ts +11 -0
  401. package/es/tools/helper.js +4 -0
  402. package/es/tools/helper.js.map +1 -1
  403. package/es/tooltip/BaseTooltip.js +1 -1
  404. package/es/tooltip/Tooltip.js +2 -1
  405. package/es/tooltip/TooltipHandler.js +1 -1
  406. package/es/ts-types/base-table.d.ts +8 -2
  407. package/es/ts-types/base-table.js +1 -1
  408. package/es/ts-types/base-table.js.map +1 -1
  409. package/es/ts-types/common.js +1 -1
  410. package/es/ts-types/customElement.d.ts +11 -2
  411. package/es/ts-types/customElement.js +1 -1
  412. package/es/ts-types/customElement.js.map +1 -1
  413. package/es/ts-types/customLayout.js +1 -1
  414. package/es/ts-types/events.js +1 -1
  415. package/es/ts-types/icon.d.ts +4 -5
  416. package/es/ts-types/icon.js +6 -6
  417. package/es/ts-types/icon.js.map +1 -1
  418. package/es/ts-types/list-table/define/basic-define.d.ts +4 -1
  419. package/es/ts-types/list-table/define/basic-define.js.map +1 -1
  420. package/es/ts-types/list-table/layout-map/api.js.map +1 -1
  421. package/es/ts-types/theme.d.ts +1 -1
  422. package/es/ts-types/theme.js.map +1 -1
  423. package/package.json +9 -9
  424. package/cjs/scenegraph/component/menu.d.ts +0 -41
  425. package/cjs/scenegraph/graphic/text.d.ts +0 -16
  426. package/cjs/state/pin/index.d.ts +0 -2
  427. package/cjs/state/pin/index.js.map +0 -1
  428. package/es/scenegraph/component/menu.d.ts +0 -41
  429. package/es/scenegraph/graphic/text.d.ts +0 -16
  430. package/es/state/pin/index.d.ts +0 -2
  431. package/es/state/pin/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["event/listener/container-dom.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAG3C,kEAA+D;AAC/D,sCAAwC;AACxC,+CAA6C;AAG7C,SAAgB,wBAAwB,CAAC,YAA0B;IACjE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IACjC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IACxC,MAAM,OAAO,GAAiB,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;IAE1D,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAa,EAAE,EAAE;QACvD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,YAAY,CAAC,cAAc,EAAE,CAAC;IAEhC,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,CAAC,CAAa,EAAE,EAAE;QACxD,IAAA,oBAAW,EAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAGH,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,CAAC,CAAgB,EAAE,EAAE;;QAC7D,IAAI,MAAA,KAAK,CAAC,eAAe,0CAAE,gBAAgB,EAAE;YAE3C,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE;gBAC7C,CAAC,CAAC,cAAc,EAAE,CAAC;gBAEnB,YAAY,CAAC,kBAAkB,EAAE,CAAC;aACnC;SACF;QACD,IAAK,KAAa,CAAC,YAAY,CAAC,mCAAgB,CAAC,OAAO,CAAC,EAAE;YACzD,MAAM,UAAU,GAAiB;gBAC/B,OAAO,EAAE,MAAA,CAAC,CAAC,OAAO,mCAAI,CAAC,CAAC,KAAK;gBAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,KAAK,CAAC,oBAAoB,EAAE;gBACnC,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW;aAClF,CAAC;YACF,KAAK,CAAC,aAAa,CAAC,mCAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;SAC3D;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,CAAgB,EAAE,EAAE;;QAC1D,IAAI,MAAA,KAAK,CAAC,eAAe,0CAAE,YAAY,EAAE;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YAClC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE;gBACjB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,IAAI,gBAAO,CAAC,EAAE,EAAE;oBACb,MAAc,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;iBACrD;qBAAM;oBACJ,CAAS,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;iBACtD;aACF;SACF;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,CAAC,CAAM,EAAE,EAAE;QACvD,CAAC,CAAC,cAAc,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;QAClD,KAAK,CAAC,MAAM,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AA1DD,4DA0DC","file":"container-dom.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport type { EventHandler } from '../EventHandler';\nimport type { KeydownEvent } from '../../ts-types';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport { handleWhell } from '../scroll';\nimport { browser } from '../../tools/helper';\nimport type { EventManeger } from '../event';\n\nexport function bindContainerDomListener(eventManeger: EventManeger) {\n const table = eventManeger.table;\n const stateManeger = table.stateManeger;\n const handler: EventHandler = table.internalProps.handler;\n\n handler.on(table.getElement(), 'blur', (e: MouseEvent) => {\n console.log('blur');\n eventManeger.dealTableHover();\n // eventManeger.dealTableSelect();\n });\n\n handler.on(table.getElement(), 'wheel', (e: WheelEvent) => {\n handleWhell(e, stateManeger);\n });\n\n // 监听键盘事件\n handler.on(table.getElement(), 'keydown', (e: KeyboardEvent) => {\n if (table.keyboardOptions?.selectAllOnCtrlA) {\n // 处理全选\n if (e.key === 'a' && (e.ctrlKey || e.metaKey)) {\n e.preventDefault();\n //全选\n eventManeger.deelTableSelectAll();\n }\n }\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.KEYDOWN)) {\n const cellsEvent: KeydownEvent = {\n keyCode: e.keyCode ?? e.which,\n code: e.code,\n event: e,\n cells: table.getSelectedCellInfos(),\n scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth\n };\n table.fireListeners(TABLE_EVENT_TYPE.KEYDOWN, cellsEvent);\n }\n });\n\n handler.on(table.getElement(), 'copy', (e: KeyboardEvent) => {\n if (table.keyboardOptions?.copySelected) {\n const data = table.getCopyValue();\n if (isValid(data)) {\n e.preventDefault();\n if (browser.IE) {\n (window as any).clipboardData.setData('Text', data); // IE\n } else {\n (e as any).clipboardData.setData('text/plain', data); // Chrome, Firefox\n }\n }\n }\n });\n\n handler.on(table.getElement(), 'contextmenu', (e: any) => {\n e.preventDefault();\n });\n\n handler.on(table.getParentElement(), 'resize', () => {\n table.resize();\n });\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import type { EventManeger } from '../event';
2
+ export declare function bindScrollBarListener(eventManeger: EventManeger): void;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.bindScrollBarListener = void 0;
6
+
7
+ const util_1 = require("../../tools/util"), ts_types_1 = require("../../ts-types");
8
+
9
+ function bindScrollBarListener(eventManeger) {
10
+ const table = eventManeger.table, stateManeger = table.stateManeger, scenegraph = table.scenegraph;
11
+ scenegraph.component.vScrollBar.addEventListener("pointerover", (e => {
12
+ stateManeger.showVerticalScrollBar();
13
+ })), scenegraph.component.hScrollBar.addEventListener("pointerover", (e => {
14
+ stateManeger.showHorizontalScrollBar();
15
+ })), scenegraph.component.vScrollBar.addEventListener("pointerout", (e => {
16
+ stateManeger.interactionState !== ts_types_1.InteractionState.scrolling && stateManeger.hideVerticalScrollBar();
17
+ })), scenegraph.component.hScrollBar.addEventListener("pointerout", (e => {
18
+ stateManeger.interactionState !== ts_types_1.InteractionState.scrolling && stateManeger.hideHorizontalScrollBar();
19
+ })), scenegraph.component.vScrollBar._slider.addEventListener("pointerdown", (() => {
20
+ stateManeger.interactionState !== ts_types_1.InteractionState.scrolling && stateManeger.updateInteractionState(ts_types_1.InteractionState.scrolling);
21
+ })), scenegraph.component.vScrollBar.addEventListener("pointerup", (() => {
22
+ stateManeger.interactionState === ts_types_1.InteractionState.scrolling && stateManeger.updateInteractionState(ts_types_1.InteractionState.default);
23
+ })), scenegraph.component.vScrollBar.addEventListener("pointerupoutside", (() => {
24
+ stateManeger.interactionState === ts_types_1.InteractionState.scrolling && stateManeger.updateInteractionState(ts_types_1.InteractionState.default);
25
+ })), scenegraph.component.hScrollBar._slider.addEventListener("pointerdown", (() => {
26
+ stateManeger.interactionState !== ts_types_1.InteractionState.scrolling && stateManeger.updateInteractionState(ts_types_1.InteractionState.scrolling);
27
+ })), scenegraph.component.hScrollBar.addEventListener("pointerup", (() => {
28
+ stateManeger.interactionState === ts_types_1.InteractionState.scrolling && stateManeger.updateInteractionState(ts_types_1.InteractionState.default);
29
+ })), scenegraph.component.hScrollBar.addEventListener("pointerupoutside", (() => {
30
+ stateManeger.interactionState === ts_types_1.InteractionState.scrolling && stateManeger.updateInteractionState(ts_types_1.InteractionState.default);
31
+ }));
32
+ const throttleVerticalWheel = (0, util_1.throttle)(stateManeger.updateVerticalScrollBar, 20), throttleHorizontalWheel = (0,
33
+ util_1.throttle)(stateManeger.updateHorizontalScrollBar, 20);
34
+ scenegraph.component.vScrollBar.addEventListener("scroll", (e => {
35
+ const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);
36
+ throttleVerticalWheel(ratio, e);
37
+ })), scenegraph.component.hScrollBar.addEventListener("scroll", (e => {
38
+ const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);
39
+ throttleHorizontalWheel(ratio);
40
+ }));
41
+ }
42
+
43
+ exports.bindScrollBarListener = bindScrollBarListener;
44
+ //# sourceMappingURL=scroll-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["event/listener/scroll-bar.ts"],"names":[],"mappings":";;;AAAA,2CAA4C;AAC5C,6CAAkD;AAGlD,SAAgB,qBAAqB,CAAC,YAA0B;IAC9D,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IACjC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;IACxC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IAGpC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAM,EAAE,EAAE;QACzE,YAAY,CAAC,qBAAqB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAM,EAAE,EAAE;QACzE,YAAY,CAAC,uBAAuB,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAM,EAAE,EAAE;QACxE,IAAI,YAAY,CAAC,gBAAgB,KAAK,2BAAgB,CAAC,SAAS,EAAE;YAChE,OAAO;SACR;QACD,YAAY,CAAC,qBAAqB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAM,EAAE,EAAE;QACxE,IAAI,YAAY,CAAC,gBAAgB,KAAK,2BAAgB,CAAC,SAAS,EAAE;YAChE,OAAO;SACR;QACD,YAAY,CAAC,uBAAuB,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEF,UAAU,CAAC,SAAS,CAAC,UAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE;QACpF,IAAI,YAAY,CAAC,gBAAgB,KAAK,2BAAgB,CAAC,SAAS,EAAE;YAChE,YAAY,CAAC,sBAAsB,CAAC,2BAAgB,CAAC,SAAS,CAAC,CAAC;SACjE;IACH,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE;QACjE,IAAI,YAAY,CAAC,gBAAgB,KAAK,2BAAgB,CAAC,SAAS,EAAE;YAChE,YAAY,CAAC,sBAAsB,CAAC,2BAAgB,CAAC,OAAO,CAAC,CAAC;SAC/D;IACH,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACxE,IAAI,YAAY,CAAC,gBAAgB,KAAK,2BAAgB,CAAC,SAAS,EAAE;YAChE,YAAY,CAAC,sBAAsB,CAAC,2BAAgB,CAAC,OAAO,CAAC,CAAC;SAC/D;IACH,CAAC,CAAC,CAAC;IAEF,UAAU,CAAC,SAAS,CAAC,UAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE;QACpF,IAAI,YAAY,CAAC,gBAAgB,KAAK,2BAAgB,CAAC,SAAS,EAAE;YAChE,YAAY,CAAC,sBAAsB,CAAC,2BAAgB,CAAC,SAAS,CAAC,CAAC;SACjE;IACH,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE;QACjE,IAAI,YAAY,CAAC,gBAAgB,KAAK,2BAAgB,CAAC,SAAS,EAAE;YAChE,YAAY,CAAC,sBAAsB,CAAC,2BAAgB,CAAC,OAAO,CAAC,CAAC;SAC/D;IACH,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACxE,IAAI,YAAY,CAAC,gBAAgB,KAAK,2BAAgB,CAAC,SAAS,EAAE;YAChE,YAAY,CAAC,sBAAsB,CAAC,2BAAgB,CAAC,OAAO,CAAC,CAAC;SAC/D;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,qBAAqB,GAAG,IAAA,eAAQ,EAAC,YAAY,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACjF,MAAM,uBAAuB,GAAG,IAAA,eAAQ,EAAC,YAAY,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC;IAGrF,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAM,EAAE,EAAE;QACpE,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAM,EAAE,EAAE;QACpE,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9E,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAtED,sDAsEC","file":"scroll-bar.js","sourcesContent":["import { throttle } from '../../tools/util';\nimport { InteractionState } from '../../ts-types';\nimport type { EventManeger } from '../event';\n\nexport function bindScrollBarListener(eventManeger: EventManeger) {\n const table = eventManeger.table;\n const stateManeger = table.stateManeger;\n const scenegraph = table.scenegraph;\n\n // 监听滚动条组件pointover事件\n scenegraph.component.vScrollBar.addEventListener('pointerover', (e: any) => {\n stateManeger.showVerticalScrollBar();\n });\n scenegraph.component.hScrollBar.addEventListener('pointerover', (e: any) => {\n stateManeger.showHorizontalScrollBar();\n });\n scenegraph.component.vScrollBar.addEventListener('pointerout', (e: any) => {\n if (stateManeger.interactionState === InteractionState.scrolling) {\n return;\n }\n stateManeger.hideVerticalScrollBar();\n });\n scenegraph.component.hScrollBar.addEventListener('pointerout', (e: any) => {\n if (stateManeger.interactionState === InteractionState.scrolling) {\n return;\n }\n stateManeger.hideHorizontalScrollBar();\n });\n // 目前ScrollBar的pointerdown事件回调内有e.stopPropagation,因此无法通过vScrollBar监听,先使用_slider监听\n (scenegraph.component.vScrollBar as any)._slider.addEventListener('pointerdown', () => {\n if (stateManeger.interactionState !== InteractionState.scrolling) {\n stateManeger.updateInteractionState(InteractionState.scrolling);\n }\n });\n scenegraph.component.vScrollBar.addEventListener('pointerup', () => {\n if (stateManeger.interactionState === InteractionState.scrolling) {\n stateManeger.updateInteractionState(InteractionState.default);\n }\n });\n scenegraph.component.vScrollBar.addEventListener('pointerupoutside', () => {\n if (stateManeger.interactionState === InteractionState.scrolling) {\n stateManeger.updateInteractionState(InteractionState.default);\n }\n });\n // 目前ScrollBar的pointerdown事件回调内有e.stopPropagation,因此无法通过hScrollBar监听,先使用_slider监听\n (scenegraph.component.hScrollBar as any)._slider.addEventListener('pointerdown', () => {\n if (stateManeger.interactionState !== InteractionState.scrolling) {\n stateManeger.updateInteractionState(InteractionState.scrolling);\n }\n });\n scenegraph.component.hScrollBar.addEventListener('pointerup', () => {\n if (stateManeger.interactionState === InteractionState.scrolling) {\n stateManeger.updateInteractionState(InteractionState.default);\n }\n });\n scenegraph.component.hScrollBar.addEventListener('pointerupoutside', () => {\n if (stateManeger.interactionState === InteractionState.scrolling) {\n stateManeger.updateInteractionState(InteractionState.default);\n }\n });\n\n const throttleVerticalWheel = throttle(stateManeger.updateVerticalScrollBar, 20);\n const throttleHorizontalWheel = throttle(stateManeger.updateHorizontalScrollBar, 20);\n\n // 监听滚动条组件scroll事件\n scenegraph.component.vScrollBar.addEventListener('scroll', (e: any) => {\n const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);\n throttleVerticalWheel(ratio, e);\n });\n\n scenegraph.component.hScrollBar.addEventListener('scroll', (e: any) => {\n const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);\n throttleHorizontalWheel(ratio);\n });\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import type { EventManeger } from '../event';
2
+ export declare function bindTableGroupListener(eventManeger: EventManeger): void;
@@ -0,0 +1,262 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.bindTableGroupListener = void 0;
6
+
7
+ const ts_types_1 = require("../../ts-types"), util_1 = require("../util"), TABLE_EVENT_TYPE_1 = require("../../core/TABLE_EVENT_TYPE"), vutils_1 = require("@visactor/vutils"), icon_1 = require("../../scenegraph/utils/icon"), helper_1 = require("../../tools/helper"), Rect_1 = require("../../tools/Rect");
8
+
9
+ function bindTableGroupListener(eventManeger) {
10
+ const table = eventManeger.table, stateManeger = table.stateManeger;
11
+ table.scenegraph.tableGroup.addEventListener("pointermove", (e => {
12
+ var _a, _b, _c, _d;
13
+ eventManeger.touchSetTimeout && (clearTimeout(eventManeger.touchSetTimeout), eventManeger.touchSetTimeout = void 0);
14
+ const eventArgsSet = (0, util_1.getCellEventArgsSet)(e);
15
+ if (stateManeger.interactionState !== ts_types_1.InteractionState.scrolling) if (stateManeger.interactionState !== ts_types_1.InteractionState.grabing) {
16
+ if (eventManeger.checkColumnResize(eventArgsSet) ? stateManeger.updateCursor("col-resize") : stateManeger.updateCursor(),
17
+ table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSELEAVE_CELL)) {
18
+ const cellGoup = null === (_a = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target;
19
+ "cell" !== (null == cellGoup ? void 0 : cellGoup.role) || -1 === table.stateManeger.hover.cellPos.col || -1 === table.stateManeger.hover.cellPos.row || cellGoup.col === table.stateManeger.hover.cellPos.col && cellGoup.row === table.stateManeger.hover.cellPos.row || table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSELEAVE_CELL, {
20
+ col: table.stateManeger.hover.cellPos.col,
21
+ row: table.stateManeger.hover.cellPos.row,
22
+ cellRange: table.getCellRangeRelativeRect({
23
+ col: table.stateManeger.hover.cellPos.col,
24
+ row: table.stateManeger.hover.cellPos.row
25
+ }),
26
+ scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth,
27
+ event: e.nativeEvent
28
+ });
29
+ }
30
+ if (table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSEENTER_CELL)) {
31
+ const cellGoup = null === (_b = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _b ? void 0 : _b.target;
32
+ "cell" === (null == cellGoup ? void 0 : cellGoup.role) && (0, vutils_1.isValid)(cellGoup.col) && (0,
33
+ vutils_1.isValid)(cellGoup.row) && (cellGoup.col !== table.stateManeger.hover.cellPos.col || cellGoup.row !== table.stateManeger.hover.cellPos.row) && table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSEENTER_CELL, {
34
+ col: cellGoup.col,
35
+ row: cellGoup.row,
36
+ cellRange: table.getCellRangeRelativeRect({
37
+ col: cellGoup.col,
38
+ row: cellGoup.row
39
+ }),
40
+ scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth,
41
+ event: e.nativeEvent
42
+ });
43
+ }
44
+ if (eventManeger.dealIconHover(eventArgsSet), eventManeger.dealTableHover(eventArgsSet),
45
+ eventArgsSet.eventArgs && table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSEMOVE_CELL)) {
46
+ let icon, position;
47
+ if (null === (_c = eventArgsSet.eventArgs) || void 0 === _c ? void 0 : _c.target) {
48
+ const iconInfo = (0, icon_1.getIconAndPositionFromTarget)(null === (_d = eventArgsSet.eventArgs) || void 0 === _d ? void 0 : _d.target);
49
+ iconInfo && (icon = iconInfo.icon, position = iconInfo.position);
50
+ }
51
+ table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSEMOVE_CELL, {
52
+ col: eventArgsSet.eventArgs.col,
53
+ row: eventArgsSet.eventArgs.row,
54
+ x: eventArgsSet.abstractPos.x,
55
+ y: eventArgsSet.abstractPos.y,
56
+ event: e.nativeEvent,
57
+ targetIcon: icon ? {
58
+ name: icon.name,
59
+ position: position,
60
+ funcType: icon.attribute.funcType
61
+ } : void 0
62
+ });
63
+ }
64
+ } else stateManeger.isResizeCol() ? (eventManeger.dealColumnResize(eventArgsSet),
65
+ eventArgsSet.eventArgs && table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.RESIZE_COLUMN) && table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.RESIZE_COLUMN, {
66
+ col: table.stateManeger.columnResize.col,
67
+ colWidth: table.getColWidth(table.stateManeger.columnResize.col)
68
+ })) : stateManeger.isMoveCol() ? eventManeger.dealColumnMover(eventArgsSet) : eventManeger.dealTableSelect(eventArgsSet);
69
+ })), table.scenegraph.tableGroup.addEventListener("pointerout", (e => {
70
+ var _a;
71
+ const eventArgsSet = (0, util_1.getCellEventArgsSet)(e), cellGoup = null === (_a = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target;
72
+ "table" === (null == cellGoup ? void 0 : cellGoup.role) && eventManeger.dealTableHover();
73
+ })), table.scenegraph.tableGroup.addEventListener("pointerover", (e => {
74
+ var _a;
75
+ const eventArgsSet = (0, util_1.getCellEventArgsSet)(e), cellGoup = null === (_a = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target;
76
+ if (table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSEOVER_CHART_SYMBOL) && "symbol" === cellGoup.type) {
77
+ const cellGroup = e.composedPath().find((p => "cell" === p.roll));
78
+ if (cellGroup) {
79
+ const {col: col, row: row} = cellGroup, eventInfo = {
80
+ col: col,
81
+ row: row,
82
+ field: table.getHeaderField(col, row),
83
+ value: table.getCellValue(col, row),
84
+ dataValue: table.getCellOriginValue(col, row),
85
+ cellHeaderPaths: table.internalProps.layoutMap.getCellHeaderPaths(col, row),
86
+ caption: table.getBodyColumnDefine(col, row).caption,
87
+ cellRange: table.getCellRelativeRect(col, row),
88
+ event: e.nativeEvent,
89
+ sparkline: {
90
+ pointData: void 0
91
+ },
92
+ scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth
93
+ };
94
+ table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSEOVER_CHART_SYMBOL, eventInfo);
95
+ }
96
+ }
97
+ })), table.scenegraph.tableGroup.addEventListener("pointerleave", (e => {
98
+ stateManeger.updateInteractionState(ts_types_1.InteractionState.default), eventManeger.dealTableHover(),
99
+ stateManeger.updateCursor();
100
+ const target = e.target;
101
+ target && !target.isDescendantsOf(table.scenegraph.tableGroup) && table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSELEAVE_TABLE, {
102
+ col: -1,
103
+ row: -1,
104
+ event: e.nativeEvent
105
+ });
106
+ })), table.scenegraph.tableGroup.addEventListener("pointerupoutside", (e => {
107
+ console.log("pointerupoutside"), stateManeger.updateInteractionState(ts_types_1.InteractionState.default),
108
+ eventManeger.dealTableHover(), eventManeger.dealTableSelect();
109
+ })), table.scenegraph.tableGroup.addEventListener("pointerdown", (e => {
110
+ var _a, _b, _c, _d;
111
+ if (0 !== e.button) return;
112
+ const eventArgsSet = (0, util_1.getCellEventArgsSet)(e);
113
+ if (stateManeger.interactionState !== ts_types_1.InteractionState.default) return;
114
+ stateManeger.menu.isShow && eventArgsSet.eventArgs && eventArgsSet.eventArgs.target !== (null === (_a = stateManeger.residentHoverIcon) || void 0 === _a ? void 0 : _a.icon) && stateManeger.hideMenu();
115
+ if (!((null === (_d = null === (_c = null === (_b = null == eventArgsSet ? void 0 : eventArgsSet.eventArgs) || void 0 === _b ? void 0 : _b.target) || void 0 === _c ? void 0 : _c.role) || void 0 === _d ? void 0 : _d.startsWith("icon")) ? eventArgsSet.eventArgs.target : void 0)) if ("touch" === e.pointerType) eventManeger.touchEnd = !1,
116
+ eventManeger.touchSetTimeout = setTimeout((() => {
117
+ eventManeger.isTouchdown = !1, eventManeger.touchMove = !0, (eventManeger.touchEnd || !eventManeger.checkColumnResize(eventArgsSet, !0)) && (eventManeger.touchEnd || !eventManeger.chechColumnMover(eventArgsSet)) ? eventManeger.dealTableSelect(eventArgsSet) && !eventManeger.touchEnd && stateManeger.updateInteractionState(ts_types_1.InteractionState.grabing) : stateManeger.updateInteractionState(ts_types_1.InteractionState.grabing);
118
+ }), 500); else {
119
+ if (eventManeger.checkColumnResize(eventArgsSet, !0)) return void stateManeger.updateInteractionState(ts_types_1.InteractionState.grabing);
120
+ if (eventManeger.chechColumnMover(eventArgsSet)) return void stateManeger.updateInteractionState(ts_types_1.InteractionState.grabing);
121
+ eventManeger.dealTableSelect(eventArgsSet) && stateManeger.updateInteractionState(ts_types_1.InteractionState.grabing);
122
+ }
123
+ if (table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSEDOWN_CELL)) {
124
+ const eventArgsSet = (0, util_1.getCellEventArgsSet)(e);
125
+ eventArgsSet.eventArgs && table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSEDOWN_CELL, {
126
+ col: eventArgsSet.eventArgs.col,
127
+ row: eventArgsSet.eventArgs.row,
128
+ event: e.nativeEvent
129
+ });
130
+ }
131
+ })), table.scenegraph.tableGroup.addEventListener("pointerup", (e => {
132
+ if (0 === e.button) {
133
+ if ("grabing" === stateManeger.interactionState) {
134
+ if (stateManeger.updateInteractionState(ts_types_1.InteractionState.default), stateManeger.isResizeCol()) {
135
+ if (table.stateManeger.endResizeCol(), table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.RESIZE_COLUMN_END)) {
136
+ const columns = [];
137
+ for (let col = 0; col < table.colCount; col++) columns.push(table.getColWidth(col));
138
+ table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.RESIZE_COLUMN_END, {
139
+ col: table.stateManeger.columnResize.col,
140
+ columns: columns
141
+ });
142
+ }
143
+ } else if (stateManeger.isMoveCol()) {
144
+ table.stateManeger.endMoveCol();
145
+ const eventArgsSet = (0, util_1.getCellEventArgsSet)(e);
146
+ eventArgsSet.eventArgs && table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION) && table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION, {
147
+ target: {
148
+ col: eventArgsSet.eventArgs.col,
149
+ row: eventArgsSet.eventArgs.row
150
+ },
151
+ source: {
152
+ col: table.stateManeger.columnMove.colSource,
153
+ row: table.stateManeger.columnMove.colSource
154
+ }
155
+ });
156
+ } else if (stateManeger.isSelecting()) {
157
+ table.stateManeger.endSelectCells();
158
+ const eventArgsSet = (0, util_1.getCellEventArgsSet)(e);
159
+ if (eventArgsSet.eventArgs && table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.DRAG_SELECT_END)) {
160
+ const cellsEvent = {
161
+ event: e.nativeEvent,
162
+ cells: [],
163
+ col: eventArgsSet.eventArgs.target.col,
164
+ row: eventArgsSet.eventArgs.target.row,
165
+ scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth
166
+ };
167
+ cellsEvent.cells = table.getSelectedCellInfos(), table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.DRAG_SELECT_END, cellsEvent);
168
+ }
169
+ }
170
+ } else stateManeger.interactionState === ts_types_1.InteractionState.scrolling && stateManeger.updateInteractionState(ts_types_1.InteractionState.default);
171
+ if (table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSEUP_CELL)) {
172
+ const eventArgsSet = (0, util_1.getCellEventArgsSet)(e);
173
+ eventArgsSet.eventArgs && table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.MOUSEUP_CELL, {
174
+ col: eventArgsSet.eventArgs.col,
175
+ row: eventArgsSet.eventArgs.row,
176
+ event: e.nativeEvent
177
+ });
178
+ }
179
+ }
180
+ })), table.scenegraph.tableGroup.addEventListener("rightdown", (e => {
181
+ var _a, _b;
182
+ const eventArgsSet = (0, util_1.getCellEventArgsSet)(e);
183
+ if (eventArgsSet.eventArgs) {
184
+ stateManeger.triggerContextMenu(eventArgsSet.eventArgs.col, eventArgsSet.eventArgs.row, eventArgsSet.abstractPos.x, eventArgsSet.abstractPos.y);
185
+ const {col: col, row: row} = eventArgsSet.eventArgs;
186
+ if (table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.CONTEXTMENU_CELL)) {
187
+ const cellInfo = table.getCellInfo(col, row);
188
+ let icon, position;
189
+ if (null === (_a = eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target) {
190
+ const iconInfo = (0, icon_1.getIconAndPositionFromTarget)(null === (_b = eventArgsSet.eventArgs) || void 0 === _b ? void 0 : _b.target);
191
+ iconInfo && (icon = iconInfo.icon, position = iconInfo.position);
192
+ }
193
+ const cellsEvent = Object.assign(Object.assign({}, cellInfo), {
194
+ event: e.nativeEvent,
195
+ cells: [],
196
+ targetIcon: icon ? {
197
+ name: icon.name,
198
+ position: position,
199
+ funcType: icon.attribute.funcType
200
+ } : void 0
201
+ });
202
+ (0, helper_1.cellInRanges)(table.stateManeger.select.ranges, col, row) ? cellsEvent.cells = table.getSelectedCellInfos() : cellsEvent.cells = [ [ cellInfo ] ],
203
+ table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.CONTEXTMENU_CELL, cellsEvent);
204
+ }
205
+ }
206
+ })), table.scenegraph.tableGroup.addEventListener("click", (e => {
207
+ var _a, _b;
208
+ if (console.log("click", e), table.stateManeger.columnResize.resizing || table.stateManeger.columnMove.moving) return;
209
+ const eventArgsSet = (0, util_1.getCellEventArgsSet)(e);
210
+ if (eventManeger.dealIconClick(e, eventArgsSet), !(null == eventArgsSet ? void 0 : eventArgsSet.eventArgs)) return;
211
+ const {col: col, row: row} = eventArgsSet.eventArgs;
212
+ if (table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.CLICK_CELL)) {
213
+ const cellInfo = table.getCellInfo(col, row);
214
+ let icon, position;
215
+ if (null === (_a = eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target) {
216
+ const iconInfo = (0, icon_1.getIconAndPositionFromTarget)(null === (_b = eventArgsSet.eventArgs) || void 0 === _b ? void 0 : _b.target);
217
+ iconInfo && (icon = iconInfo.icon, position = iconInfo.position);
218
+ }
219
+ const cellsEvent = Object.assign(Object.assign({}, cellInfo), {
220
+ event: e.nativeEvent,
221
+ cells: [],
222
+ targetIcon: icon ? {
223
+ name: icon.name,
224
+ position: position,
225
+ funcType: icon.attribute.funcType
226
+ } : void 0
227
+ });
228
+ table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.CLICK_CELL, cellsEvent);
229
+ }
230
+ })), table.scenegraph.stage.addEventListener("click", (e => {
231
+ console.log("stage click");
232
+ const target = e.target;
233
+ target && !target.isDescendantsOf(table.scenegraph.tableGroup) && target !== table.scenegraph.tableGroup && (console.log("pointerup outside table"),
234
+ stateManeger.updateInteractionState(ts_types_1.InteractionState.default), eventManeger.dealTableHover(),
235
+ eventManeger.dealTableSelect(), stateManeger.updateCursor());
236
+ })), table.scenegraph.tableGroup.addEventListener("dblclick", (e => {
237
+ var _a, _b;
238
+ const eventArgsSet = (0, util_1.getCellEventArgsSet)(e), bounds = eventArgsSet.eventArgs.targetCell.globalAABBBounds, {col: col, row: row} = eventArgsSet.eventArgs, value = table.getCellValue(col, row);
239
+ if (table.internalProps.focusControl.setFocusRect(new Rect_1.Rect(bounds.x1 + table.scrollLeft, bounds.y1 + table.scrollTop, bounds.x2 - bounds.x1, bounds.y2 - bounds.y1), value),
240
+ table.hasListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.DBLCLICK_CELL)) {
241
+ const cellInfo = table.getCellInfo(col, row);
242
+ let icon, position;
243
+ if (null === (_a = eventArgsSet.eventArgs) || void 0 === _a ? void 0 : _a.target) {
244
+ const iconInfo = (0, icon_1.getIconAndPositionFromTarget)(null === (_b = eventArgsSet.eventArgs) || void 0 === _b ? void 0 : _b.target);
245
+ iconInfo && (icon = iconInfo.icon, position = iconInfo.position);
246
+ }
247
+ const cellsEvent = Object.assign(Object.assign({}, cellInfo), {
248
+ event: e.nativeEvent,
249
+ cells: [],
250
+ targetIcon: icon ? {
251
+ name: icon.name,
252
+ position: position,
253
+ funcType: icon.attribute.funcType
254
+ } : void 0
255
+ });
256
+ table.fireListeners(TABLE_EVENT_TYPE_1.TABLE_EVENT_TYPE.DBLCLICK_CELL, cellsEvent);
257
+ }
258
+ }));
259
+ }
260
+
261
+ exports.bindTableGroupListener = bindTableGroupListener;
262
+ //# sourceMappingURL=table-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["event/listener/table-group.ts"],"names":[],"mappings":"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","file":"table-group.js","sourcesContent":["import type { FederatedPointerEvent } from '@visactor/vrender';\nimport type { MousePointerMultiCellEvent, MousePointerSparklineEvent } from '../../ts-types';\nimport { InteractionState } from '../../ts-types';\nimport type { SceneEvent } from '../util';\nimport { getCellEventArgsSet } from '../util';\nimport { TABLE_EVENT_TYPE } from '../../core/TABLE_EVENT_TYPE';\nimport type { Group } from '../../scenegraph/graphic/group';\nimport { isValid } from '@visactor/vutils';\nimport { getIconAndPositionFromTarget } from '../../scenegraph/utils/icon';\nimport { cellInRanges } from '../../tools/helper';\nimport { Rect } from '../../tools/Rect';\nimport type { EventManeger } from '../event';\n\nexport function bindTableGroupListener(eventManeger: EventManeger) {\n const table = eventManeger.table;\n const stateManeger = table.stateManeger;\n table.scenegraph.tableGroup.addEventListener('pointermove', (e: FederatedPointerEvent) => {\n // console.log('scenegraph pointermove',e.type);\n // const eventArgsSet: SceneEvent = (table as any).getCellEventArgsSet(e);\n if (eventManeger.touchSetTimeout) {\n clearTimeout(eventManeger.touchSetTimeout);\n eventManeger.touchSetTimeout = undefined;\n }\n const eventArgsSet = getCellEventArgsSet(e);\n\n if (stateManeger.interactionState === InteractionState.scrolling) {\n return;\n }\n if (stateManeger.interactionState === InteractionState.grabing) {\n if (stateManeger.isResizeCol()) {\n eventManeger.dealColumnResize(eventArgsSet);\n if (eventArgsSet.eventArgs && (table as any).hasListeners(TABLE_EVENT_TYPE.RESIZE_COLUMN)) {\n table.fireListeners(TABLE_EVENT_TYPE.RESIZE_COLUMN, {\n col: table.stateManeger.columnResize.col,\n colWidth: table.getColWidth(table.stateManeger.columnResize.col)\n });\n }\n } else if (stateManeger.isMoveCol()) {\n eventManeger.dealColumnMover(eventArgsSet);\n } else {\n eventManeger.dealTableSelect(eventArgsSet);\n }\n return;\n }\n // if (stateManeger.menu.isShow && stateManeger.menu.bounds.inPoint(e.x, e.y)) {\n // eventManeger.dealMenuHover(eventArgsSet);\n // return;\n // }\n // 更新列宽调整pointer\n if (eventManeger.checkColumnResize(eventArgsSet)) {\n stateManeger.updateCursor('col-resize');\n } else {\n stateManeger.updateCursor();\n }\n\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.MOUSELEAVE_CELL)) {\n const cellGoup = eventArgsSet?.eventArgs?.target as unknown as Group;\n if (\n cellGoup?.role === 'cell' &&\n table.stateManeger.hover.cellPos.col !== -1 &&\n table.stateManeger.hover.cellPos.row !== -1 &&\n (cellGoup.col !== table.stateManeger.hover.cellPos.col || cellGoup.row !== table.stateManeger.hover.cellPos.row)\n ) {\n table.fireListeners(TABLE_EVENT_TYPE.MOUSELEAVE_CELL, {\n col: table.stateManeger.hover.cellPos.col,\n row: table.stateManeger.hover.cellPos.row,\n cellRange: table.getCellRangeRelativeRect({\n col: table.stateManeger.hover.cellPos.col,\n row: table.stateManeger.hover.cellPos.row\n }),\n scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth,\n event: e.nativeEvent\n });\n }\n }\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.MOUSEENTER_CELL)) {\n const cellGoup = eventArgsSet?.eventArgs?.target as unknown as Group;\n if (\n cellGoup?.role === 'cell' &&\n isValid(cellGoup.col) &&\n isValid(cellGoup.row) &&\n (cellGoup.col !== table.stateManeger.hover.cellPos.col || cellGoup.row !== table.stateManeger.hover.cellPos.row)\n ) {\n table.fireListeners(TABLE_EVENT_TYPE.MOUSEENTER_CELL, {\n col: cellGoup.col,\n row: cellGoup.row,\n cellRange: table.getCellRangeRelativeRect({\n col: cellGoup.col,\n row: cellGoup.row\n }),\n scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth,\n event: e.nativeEvent\n });\n }\n }\n eventManeger.dealIconHover(eventArgsSet);\n eventManeger.dealTableHover(eventArgsSet);\n\n // 触发MOUSEMOVE_CELL\n if (eventArgsSet.eventArgs && (table as any).hasListeners(TABLE_EVENT_TYPE.MOUSEMOVE_CELL)) {\n let icon;\n let position;\n if (eventArgsSet.eventArgs?.target) {\n const iconInfo = getIconAndPositionFromTarget(eventArgsSet.eventArgs?.target);\n if (iconInfo) {\n icon = iconInfo.icon;\n position = iconInfo.position;\n }\n }\n table.fireListeners(TABLE_EVENT_TYPE.MOUSEMOVE_CELL, {\n col: eventArgsSet.eventArgs.col,\n row: eventArgsSet.eventArgs.row,\n x: eventArgsSet.abstractPos.x,\n y: eventArgsSet.abstractPos.y,\n event: e.nativeEvent,\n targetIcon: icon\n ? {\n name: icon.name,\n position: position,\n funcType: (icon as any).attribute.funcType\n }\n : undefined\n });\n }\n });\n\n table.scenegraph.tableGroup.addEventListener('pointerout', (e: FederatedPointerEvent) => {\n const eventArgsSet = getCellEventArgsSet(e);\n const cellGoup = eventArgsSet?.eventArgs?.target as unknown as Group;\n if (cellGoup?.role === 'table') {\n eventManeger.dealTableHover();\n }\n });\n\n table.scenegraph.tableGroup.addEventListener('pointerover', (e: FederatedPointerEvent) => {\n const eventArgsSet = getCellEventArgsSet(e);\n const cellGoup = eventArgsSet?.eventArgs?.target as unknown as Group;\n // console.log('pointerover', cellGoup);\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.MOUSEOVER_CHART_SYMBOL) && cellGoup.type === 'symbol') {\n const cellGroup = e.composedPath().find(p => (p as any).roll === 'cell');\n if (cellGroup) {\n const { col, row } = cellGroup as unknown as Group;\n const eventInfo: MousePointerSparklineEvent = {\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 caption: table.getBodyColumnDefine(col, row).caption,\n cellRange: table.getCellRelativeRect(col, row),\n event: e.nativeEvent,\n sparkline: {\n pointData: undefined // chartPoint.pointData,\n },\n scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth\n };\n table.fireListeners(TABLE_EVENT_TYPE.MOUSEOVER_CHART_SYMBOL, eventInfo);\n }\n }\n //MOUSEENTER_CELL 不能在这里触发 引发在单元格内移动会触发多次的问题【迷你图的单元格中】\n // if ((table as any).hasListeners(DG_EVENT_TYPE.MOUSEENTER_CELL)) {\n // const eventArgsSet = getCellEventArgsSet(e);\n // const cellGoup = eventArgsSet?.eventArgs?.target as unknown as Group;\n // console.log('hover cell', table.stateManeger.hover.cellPos);\n // if (\n // cellGoup?.role === 'cell' &&\n // (cellGoup.col !== table.stateManeger.hover.cellPos.col ||\n // cellGoup.row !== table.stateManeger.hover.cellPos.row)\n // ) {\n // table.fireListeners(DG_EVENT_TYPE.MOUSEENTER_CELL, {\n // col: cellGoup.col,\n // row: cellGoup.row,\n // cellRange: table.getCellRangeRelativeRect({\n // col: cellGoup.col,\n // row: cellGoup.row,\n // }),\n // scaleRatio:\n // table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth,\n // event: e.nativeEvent,\n // });\n // }\n // }\n });\n // table.scenegraph.tableGroup.addEventListener('pointerenter', (e: FederatedPointerEvent) => {\n // console.log('pointerenter', e.target);\n // 触发MOUSEOVER_CELL\n // const eventArgsSet = getCellEventArgsSet(e);\n // if ((eventArgsSet?.eventArgs?.target as unknown as Group)?.role === 'cell') {\n // table.fireListeners(DG_EVENT_TYPE.MOUSEENTER_CELL, {\n // col: (eventArgsSet.eventArgs.target as unknown as Group).col,\n // row: (eventArgsSet.eventArgs.target as unknown as Group).row,\n // cellRange: table.getCellRangeRelativeRect({\n // col: (eventArgsSet.eventArgs.target as unknown as Group).col,\n // row: (eventArgsSet.eventArgs.target as unknown as Group).row,\n // }),\n // scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth,\n // event: e.nativeEvent,\n // });\n // }\n // });\n table.scenegraph.tableGroup.addEventListener('pointerleave', (e: FederatedPointerEvent) => {\n stateManeger.updateInteractionState(InteractionState.default);\n eventManeger.dealTableHover();\n stateManeger.updateCursor();\n const target = e.target;\n if (target && !target.isDescendantsOf(table.scenegraph.tableGroup)) {\n table.fireListeners(TABLE_EVENT_TYPE.MOUSELEAVE_TABLE, {\n col: -1,\n row: -1,\n event: e.nativeEvent\n });\n }\n });\n\n table.scenegraph.tableGroup.addEventListener('pointerupoutside', (e: FederatedPointerEvent) => {\n console.log('pointerupoutside');\n stateManeger.updateInteractionState(InteractionState.default);\n eventManeger.dealTableHover();\n eventManeger.dealTableSelect();\n });\n\n table.scenegraph.tableGroup.addEventListener('pointerdown', (e: FederatedPointerEvent) => {\n if (e.button !== 0) {\n // 只处理左键\n return;\n }\n const eventArgsSet: SceneEvent = getCellEventArgsSet(e);\n\n if (stateManeger.interactionState !== InteractionState.default) {\n return;\n }\n\n // 处理menu\n if (\n stateManeger.menu.isShow &&\n eventArgsSet.eventArgs &&\n (eventArgsSet.eventArgs.target as any) !== stateManeger.residentHoverIcon?.icon\n ) {\n // 点击在menu外,且不是下拉菜单的icon,移除menu\n stateManeger.hideMenu();\n }\n const hitIcon = (eventArgsSet?.eventArgs?.target as any)?.role?.startsWith('icon')\n ? eventArgsSet.eventArgs.target\n : undefined;\n if (!hitIcon) {\n if (e.pointerType === 'touch') {\n eventManeger.touchEnd = false;\n eventManeger.touchSetTimeout = setTimeout(() => {\n eventManeger.isTouchdown = false;\n eventManeger.touchMove = true;\n // 处理列宽调整\n if (!eventManeger.touchEnd && eventManeger.checkColumnResize(eventArgsSet, true)) {\n // eventManeger.startColumnResize(e);\n // eventManeger._resizing = true;\n stateManeger.updateInteractionState(InteractionState.grabing);\n return;\n }\n\n // 处理column mover\n if (!eventManeger.touchEnd && eventManeger.chechColumnMover(eventArgsSet)) {\n stateManeger.updateInteractionState(InteractionState.grabing);\n return;\n }\n\n // 处理单元格选择\n if (eventManeger.dealTableSelect(eventArgsSet) && !eventManeger.touchEnd) {\n // 先执行单选逻辑,再更新为grabing模式\n // stateManeger.interactionState = 'grabing';\n stateManeger.updateInteractionState(InteractionState.grabing);\n // console.log('DRAG_SELECT_START');\n }\n }, 500);\n } else {\n // 处理列宽调整\n if (eventManeger.checkColumnResize(eventArgsSet, true)) {\n // eventManeger.startColumnResize(e);\n // eventManeger._resizing = true;\n stateManeger.updateInteractionState(InteractionState.grabing);\n return;\n }\n\n // 处理column mover\n if (eventManeger.chechColumnMover(eventArgsSet)) {\n stateManeger.updateInteractionState(InteractionState.grabing);\n return;\n }\n\n // 处理单元格选择\n if (eventManeger.dealTableSelect(eventArgsSet)) {\n // 先执行单选逻辑,再更新为grabing模式\n // stateManeger.interactionState = 'grabing';\n stateManeger.updateInteractionState(InteractionState.grabing);\n // console.log('DRAG_SELECT_START');\n }\n }\n }\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.MOUSEDOWN_CELL)) {\n const eventArgsSet: SceneEvent = getCellEventArgsSet(e);\n if (eventArgsSet.eventArgs) {\n table.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_CELL, {\n col: eventArgsSet.eventArgs.col,\n row: eventArgsSet.eventArgs.row,\n event: e.nativeEvent\n });\n }\n }\n });\n\n table.scenegraph.tableGroup.addEventListener('pointerup', (e: FederatedPointerEvent) => {\n // console.log('pointerup');\n if (e.button !== 0) {\n // 只处理左键\n return;\n }\n if (stateManeger.interactionState === 'grabing') {\n // stateManeger.interactionState = 'default';\n stateManeger.updateInteractionState(InteractionState.default);\n // eventManeger._resizing = false;\n if (stateManeger.isResizeCol()) {\n table.stateManeger.endResizeCol();\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.RESIZE_COLUMN_END)) {\n // RESIZE_COLUMN_END事件触发,返回所有列宽\n const columns = [];\n // 返回所有列宽信息\n for (let col = 0; col < table.colCount; col++) {\n columns.push(table.getColWidth(col));\n }\n table.fireListeners(TABLE_EVENT_TYPE.RESIZE_COLUMN_END, {\n col: table.stateManeger.columnResize.col,\n columns\n });\n }\n } else if (stateManeger.isMoveCol()) {\n table.stateManeger.endMoveCol();\n const eventArgsSet: SceneEvent = getCellEventArgsSet(e);\n if (eventArgsSet.eventArgs && (table as any).hasListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION)) {\n table.fireListeners(TABLE_EVENT_TYPE.CHANGE_HEADER_POSITION, {\n target: { col: eventArgsSet.eventArgs.col, row: eventArgsSet.eventArgs.row },\n source: {\n col: table.stateManeger.columnMove.colSource,\n row: table.stateManeger.columnMove.colSource //TODO row\n }\n });\n }\n } else if (stateManeger.isSelecting()) {\n table.stateManeger.endSelectCells();\n const eventArgsSet: SceneEvent = getCellEventArgsSet(e);\n if (eventArgsSet.eventArgs && (table as any).hasListeners(TABLE_EVENT_TYPE.DRAG_SELECT_END)) {\n const cellsEvent: MousePointerMultiCellEvent = {\n event: e.nativeEvent,\n cells: [],\n col: (eventArgsSet.eventArgs.target as unknown as Group).col,\n row: (eventArgsSet.eventArgs.target as unknown as Group).row,\n scaleRatio: table.canvas.getBoundingClientRect().width / table.canvas.offsetWidth\n };\n\n cellsEvent.cells = table.getSelectedCellInfos();\n table.fireListeners(TABLE_EVENT_TYPE.DRAG_SELECT_END, cellsEvent);\n }\n }\n } else if (stateManeger.interactionState === InteractionState.scrolling) {\n stateManeger.updateInteractionState(InteractionState.default);\n // scroll end\n }\n // console.log('DRAG_SELECT_END');\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.MOUSEUP_CELL)) {\n const eventArgsSet: SceneEvent = getCellEventArgsSet(e);\n if (eventArgsSet.eventArgs) {\n table.fireListeners(TABLE_EVENT_TYPE.MOUSEUP_CELL, {\n col: eventArgsSet.eventArgs.col,\n row: eventArgsSet.eventArgs.row,\n event: e.nativeEvent\n });\n }\n }\n });\n\n table.scenegraph.tableGroup.addEventListener('rightdown', (e: FederatedPointerEvent) => {\n const eventArgsSet: SceneEvent = getCellEventArgsSet(e);\n // 右键点击\n if (eventArgsSet.eventArgs) {\n stateManeger.triggerContextMenu(\n eventArgsSet.eventArgs.col,\n eventArgsSet.eventArgs.row,\n eventArgsSet.abstractPos.x,\n eventArgsSet.abstractPos.y\n );\n\n //处理监听的右键事件\n const { col, row } = eventArgsSet.eventArgs;\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.CONTEXTMENU_CELL)) {\n const cellInfo = table.getCellInfo(col, row);\n let icon;\n let position;\n if (eventArgsSet.eventArgs?.target) {\n const iconInfo = getIconAndPositionFromTarget(eventArgsSet.eventArgs?.target);\n if (iconInfo) {\n icon = iconInfo.icon;\n position = iconInfo.position;\n }\n }\n const cellsEvent: MousePointerMultiCellEvent = {\n ...cellInfo,\n event: e.nativeEvent,\n cells: [],\n targetIcon: icon\n ? {\n name: icon.name,\n position: position,\n funcType: (icon as any).attribute.funcType\n }\n : undefined\n };\n if (cellInRanges(table.stateManeger.select.ranges, col, row)) {\n // 用户右键点击已经选中的区域\n // const { start, end } = eventManeger.selection.range;\n cellsEvent.cells = table.getSelectedCellInfos();\n } else {\n // 用户右键点击新单元格\n cellsEvent.cells = [[cellInfo]];\n }\n\n table.fireListeners(TABLE_EVENT_TYPE.CONTEXTMENU_CELL, cellsEvent);\n }\n }\n });\n\n table.scenegraph.tableGroup.addEventListener('click', (e: FederatedPointerEvent) => {\n console.log('click', e);\n if (table.stateManeger.columnResize.resizing || table.stateManeger.columnMove.moving) {\n return;\n }\n const eventArgsSet: SceneEvent = getCellEventArgsSet(e);\n eventManeger.dealIconClick(e, eventArgsSet);\n if (!eventArgsSet?.eventArgs) {\n return;\n }\n const { col, row } = eventArgsSet.eventArgs;\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.CLICK_CELL)) {\n const cellInfo = table.getCellInfo(col, row);\n let icon;\n let position;\n if (eventArgsSet.eventArgs?.target) {\n const iconInfo = getIconAndPositionFromTarget(eventArgsSet.eventArgs?.target);\n if (iconInfo) {\n icon = iconInfo.icon;\n position = iconInfo.position;\n }\n }\n const cellsEvent: MousePointerMultiCellEvent = {\n ...cellInfo,\n event: e.nativeEvent,\n cells: [],\n targetIcon: icon\n ? {\n name: icon.name,\n position: position,\n funcType: (icon as any).attribute.funcType\n }\n : undefined\n };\n\n table.fireListeners(TABLE_EVENT_TYPE.CLICK_CELL, cellsEvent);\n }\n });\n\n // click outside\n table.scenegraph.stage.addEventListener('click', (e: FederatedPointerEvent) => {\n console.log('stage click');\n const target = e.target;\n if (\n target &&\n !target.isDescendantsOf(table.scenegraph.tableGroup) &&\n (target as any) !== table.scenegraph.tableGroup\n ) {\n console.log('pointerup outside table');\n stateManeger.updateInteractionState(InteractionState.default);\n eventManeger.dealTableHover();\n eventManeger.dealTableSelect();\n stateManeger.updateCursor();\n }\n });\n\n table.scenegraph.tableGroup.addEventListener('dblclick', (e: FederatedPointerEvent) => {\n const eventArgsSet: SceneEvent = getCellEventArgsSet(e);\n const bounds = eventArgsSet.eventArgs.targetCell.globalAABBBounds;\n const { col, row } = eventArgsSet.eventArgs;\n const value = table.getCellValue(col, row);\n table.internalProps.focusControl.setFocusRect(\n new Rect(bounds.x1 + table.scrollLeft, bounds.y1 + table.scrollTop, bounds.x2 - bounds.x1, bounds.y2 - bounds.y1),\n value\n );\n // console.log('activeElement',document.activeElement);\n // table.getElement().focus();\n // console.log('activeElement 2',document.activeElement);\n if ((table as any).hasListeners(TABLE_EVENT_TYPE.DBLCLICK_CELL)) {\n const cellInfo = table.getCellInfo(col, row);\n let icon;\n let position;\n if (eventArgsSet.eventArgs?.target) {\n const iconInfo = getIconAndPositionFromTarget(eventArgsSet.eventArgs?.target);\n if (iconInfo) {\n icon = iconInfo.icon;\n position = iconInfo.position;\n }\n }\n const cellsEvent: MousePointerMultiCellEvent = {\n ...cellInfo,\n event: e.nativeEvent,\n cells: [],\n targetIcon: icon\n ? {\n name: icon.name,\n position: position,\n funcType: (icon as any).attribute.funcType\n }\n : undefined\n };\n table.fireListeners(TABLE_EVENT_TYPE.DBLCLICK_CELL, cellsEvent);\n }\n });\n}\n"]}
@@ -0,0 +1,2 @@
1
+ import type { EventManeger } from '../event';
2
+ export declare function bindTouchListener(eventManeger: EventManeger): void;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.bindTouchListener = void 0;
6
+
7
+ const scroll_1 = require("../scroll");
8
+
9
+ function bindTouchListener(eventManeger) {
10
+ const table = eventManeger.table, stateManeger = table.stateManeger, scenegraph = table.scenegraph;
11
+ eventManeger.touchMovePoints = [], table.scenegraph.tableGroup.addEventListener("touchstart", (e => {
12
+ e.target.isChildOf(scenegraph.component.vScrollBar) || e.target.isChildOf(scenegraph.component.vScrollBar) || (eventManeger.isTouchdown = !0,
13
+ eventManeger.touchMovePoints.push({
14
+ x: e.page.x,
15
+ y: e.page.y,
16
+ timestamp: Date.now()
17
+ }));
18
+ })), window.addEventListener("touchmove", (e => {
19
+ if (eventManeger.touchMove && e.preventDefault(), !eventManeger.isTouchdown || !isTouchEvent(e)) return;
20
+ eventManeger.touchMovePoints.length > 4 && eventManeger.touchMovePoints.shift(),
21
+ eventManeger.touchMovePoints.push({
22
+ x: e.changedTouches[0].pageX,
23
+ y: e.changedTouches[0].pageY,
24
+ timestamp: Date.now()
25
+ });
26
+ const deltaX = -eventManeger.touchMovePoints[eventManeger.touchMovePoints.length - 1].x + eventManeger.touchMovePoints[eventManeger.touchMovePoints.length - 2].x, deltaY = -eventManeger.touchMovePoints[eventManeger.touchMovePoints.length - 1].y + eventManeger.touchMovePoints[eventManeger.touchMovePoints.length - 2].y;
27
+ (0, scroll_1.handleWhell)({
28
+ deltaX: deltaX,
29
+ deltaY: deltaY
30
+ }, stateManeger), e.cancelable && (0 !== deltaY && (0, scroll_1.isVerticalScrollable)(deltaY, stateManeger) || 0 !== deltaX && (0,
31
+ scroll_1.isHorizontalScrollable)(deltaX, stateManeger)) && e.preventDefault();
32
+ }), {
33
+ passive: !1
34
+ }), window.addEventListener("touchend", (e => {
35
+ var _a, _b;
36
+ if (eventManeger.touchEnd = !0, eventManeger.touchMove = !1, eventManeger.isTouchdown && isTouchEvent(e)) {
37
+ if (null === (_a = eventManeger.touchMovePoints) || void 0 === _a ? void 0 : _a.length) {
38
+ eventManeger.touchMovePoints.length > 4 && eventManeger.touchMovePoints.shift(),
39
+ eventManeger.touchMovePoints.push({
40
+ x: e.changedTouches[0].pageX,
41
+ y: e.changedTouches[0].pageY,
42
+ timestamp: Date.now()
43
+ });
44
+ const firstPoint = eventManeger.touchMovePoints[0], lastPoint = eventManeger.touchMovePoints[(null === (_b = eventManeger.touchMovePoints) || void 0 === _b ? void 0 : _b.length) - 1];
45
+ startInertia((lastPoint.x - firstPoint.x) / (lastPoint.timestamp - firstPoint.timestamp), (lastPoint.y - firstPoint.y) / (lastPoint.timestamp - firstPoint.timestamp), stateManeger);
46
+ }
47
+ eventManeger.isTouchdown = !1, eventManeger.touchMovePoints = [];
48
+ }
49
+ })), window.addEventListener("touchcancel", (e => {
50
+ eventManeger.touchEnd = !0, eventManeger.touchMove = !1, eventManeger.isTouchdown && (eventManeger.isTouchdown = !1,
51
+ eventManeger.touchMovePoints = []);
52
+ }));
53
+ }
54
+
55
+ function isTouchEvent(e) {
56
+ return !!e.changedTouches;
57
+ }
58
+
59
+ function startInertia(vX, vY, stateManeger) {
60
+ let time = Date.now();
61
+ const inertia = () => {
62
+ const now = Date.now(), dffTime = now - time;
63
+ let stopped = !0;
64
+ const f = Math.pow(.95, dffTime / 16), newVX = f * vX, newVY = f * vY;
65
+ let dx = 0, dy = 0;
66
+ Math.abs(newVX) > .05 && (stopped = !1, dx = (vX + newVX) / 2 * dffTime), Math.abs(newVY) > .05 && (stopped = !1,
67
+ dy = (vY + newVY) / 2 * dffTime), (0, scroll_1.handleWhell)({
68
+ deltaX: -dx,
69
+ deltaY: -dy
70
+ }, stateManeger), stopped || (time = now, vX = newVX, vY = newVY, requestAnimationFrame(inertia));
71
+ };
72
+ requestAnimationFrame(inertia);
73
+ }
74
+
75
+ exports.bindTouchListener = bindTouchListener;
76
+ //# sourceMappingURL=touch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["event/listener/touch.ts"],"names":[],"mappings":"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","file":"touch.js","sourcesContent":["import type { FederatedPointerEvent } from '@visactor/vrender';\nimport { handleWhell, isHorizontalScrollable, isVerticalScrollable } from '../scroll';\nimport type { EventManeger } from '../event';\nimport type { StateManeger } from '../../state/state';\n\nexport function bindTouchListener(eventManeger: EventManeger) {\n const table = eventManeger.table;\n const stateManeger = table.stateManeger;\n const scenegraph = table.scenegraph;\n\n // deal width touch scrolling in mobile devices\n eventManeger.touchMovePoints = [];\n table.scenegraph.tableGroup.addEventListener('touchstart', (e: FederatedPointerEvent) => {\n if (e.target.isChildOf(scenegraph.component.vScrollBar) || e.target.isChildOf(scenegraph.component.vScrollBar)) {\n return;\n }\n eventManeger.isTouchdown = true;\n eventManeger.touchMovePoints.push({\n x: e.page.x,\n y: e.page.y,\n timestamp: Date.now()\n });\n });\n\n window.addEventListener(\n 'touchmove',\n (e: TouchEvent) => {\n if (eventManeger.touchMove) {\n e.preventDefault();\n }\n if (!eventManeger.isTouchdown || !isTouchEvent(e)) {\n return;\n }\n\n // collect four last touch pisitions\n if (eventManeger.touchMovePoints.length > 4) {\n eventManeger.touchMovePoints.shift();\n }\n eventManeger.touchMovePoints.push({\n x: e.changedTouches[0].pageX,\n y: e.changedTouches[0].pageY,\n timestamp: Date.now()\n });\n\n const deltaX =\n -eventManeger.touchMovePoints[eventManeger.touchMovePoints.length - 1].x +\n eventManeger.touchMovePoints[eventManeger.touchMovePoints.length - 2].x;\n const deltaY =\n -eventManeger.touchMovePoints[eventManeger.touchMovePoints.length - 1].y +\n eventManeger.touchMovePoints[eventManeger.touchMovePoints.length - 2].y;\n handleWhell({ deltaX, deltaY } as any, stateManeger);\n\n if (\n e.cancelable &&\n ((deltaY !== 0 && isVerticalScrollable(deltaY, stateManeger)) ||\n (deltaX !== 0 && isHorizontalScrollable(deltaX, stateManeger)))\n ) {\n e.preventDefault();\n }\n },\n { passive: false }\n );\n\n window.addEventListener('touchend', (e: TouchEvent) => {\n eventManeger.touchEnd = true;\n eventManeger.touchMove = false;\n if (!eventManeger.isTouchdown || !isTouchEvent(e)) {\n return;\n }\n if (eventManeger.touchMovePoints?.length) {\n if (eventManeger.touchMovePoints.length > 4) {\n eventManeger.touchMovePoints.shift();\n }\n eventManeger.touchMovePoints.push({\n x: e.changedTouches[0].pageX,\n y: e.changedTouches[0].pageY,\n timestamp: Date.now()\n });\n // compute inertia parameter\n const firstPoint = eventManeger.touchMovePoints[0];\n const lastPoint = eventManeger.touchMovePoints[eventManeger.touchMovePoints?.length - 1];\n const vX = (lastPoint.x - firstPoint.x) / (lastPoint.timestamp - firstPoint.timestamp);\n const vY = (lastPoint.y - firstPoint.y) / (lastPoint.timestamp - firstPoint.timestamp);\n //开始惯性滚动\n startInertia(vX, vY, stateManeger);\n }\n\n eventManeger.isTouchdown = false;\n eventManeger.touchMovePoints = [];\n });\n\n window.addEventListener('touchcancel', (e: TouchEvent) => {\n eventManeger.touchEnd = true;\n eventManeger.touchMove = false;\n if (!eventManeger.isTouchdown) {\n return;\n }\n eventManeger.isTouchdown = false;\n eventManeger.touchMovePoints = [];\n });\n}\n\nfunction isTouchEvent(e: TouchEvent | MouseEvent): e is TouchEvent {\n return !!(e as TouchEvent).changedTouches;\n}\n\n/**\n * @description: start inertia scrolling, speed decrease by 0.95/16ms\n * @param {number} vX\n * @param {number} vY\n * @param {StateManeger} stateManeger\n * @return {*}\n */\nfunction startInertia(vX: number, vY: number, stateManeger: StateManeger) {\n let time = Date.now();\n const friction = 0.95;\n const inertia = () => {\n const now = Date.now();\n const dffTime = now - time;\n let stopped = true;\n const f = Math.pow(friction, dffTime / 16);\n const newVX = f * vX;\n const newVY = f * vY;\n let dx = 0;\n let dy = 0;\n if (Math.abs(newVX) > 0.05) {\n stopped = false;\n dx = ((vX + newVX) / 2) * dffTime;\n }\n if (Math.abs(newVY) > 0.05) {\n stopped = false;\n dy = ((vY + newVY) / 2) * dffTime;\n }\n handleWhell({ deltaX: -dx, deltaY: -dy } as any, stateManeger);\n if (stopped) {\n return;\n }\n time = now;\n vX = newVX;\n vY = newVY;\n\n requestAnimationFrame(inertia);\n };\n requestAnimationFrame(inertia);\n}\n"]}
@@ -1,2 +1,4 @@
1
1
  import type { StateManeger } from '../state/state';
2
2
  export declare function handleWhell(event: WheelEvent, state: StateManeger): void;
3
+ export declare function isVerticalScrollable(deltaY: number, state: StateManeger): boolean;
4
+ export declare function isHorizontalScrollable(deltaX: number, state: StateManeger): boolean;
@@ -9,15 +9,43 @@ function handleWhell(event, state) {
9
9
  });
10
10
  optimizedDeltaX && (state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX),
11
11
  state.showHorizontalScrollBar(!0)), optimizedDeltaY && (state.setScrollTop(state.scroll.verticalBarPos + optimizedDeltaY),
12
- state.showVerticalScrollBar(!0)), event.preventDefault();
12
+ state.showVerticalScrollBar(!0)), event.cancelable && (0 !== deltaY && isVerticalScrollable(deltaY, state) || 0 !== deltaX && isHorizontalScrollable(deltaX, state)) && event.preventDefault();
13
13
  }
14
14
 
15
15
  function optimizeScrollXY(x, y, ratio) {
16
- const angle = Math.abs(x / y), deltaY = angle > 2 ? 0 : y;
17
- return [ (angle <= .5 ? 0 : x) * ratio.horizontal, deltaY * ratio.vertical ];
16
+ const angle = Math.abs(x / y), deltaX = angle <= .5 ? 0 : x, deltaY = angle > 2 ? 0 : y;
17
+ return [ Math.ceil(deltaX * ratio.horizontal), Math.ceil(deltaY * ratio.vertical) ];
18
+ }
19
+
20
+ function isVerticalScrollable(deltaY, state) {
21
+ return !isScrollToTop(deltaY, state) && !isScrollToBottom(deltaY, state);
22
+ }
23
+
24
+ function isHorizontalScrollable(deltaX, state) {
25
+ return !isScrollToLeft(deltaX, state) && !isScrollToRight(deltaX, state);
26
+ }
27
+
28
+ function isScrollToTop(deltaY, state) {
29
+ return 0 !== state.table.getAllRowsHeight() - state.table.scenegraph.height && deltaY <= 0 && state.scroll.verticalBarPos < 1;
30
+ }
31
+
32
+ function isScrollToBottom(deltaY, state) {
33
+ const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;
34
+ return 0 !== totalHeight && deltaY >= 0 && Math.abs(state.scroll.verticalBarPos - totalHeight) < 1;
35
+ }
36
+
37
+ function isScrollToLeft(deltaX, state) {
38
+ return 0 !== state.table.getAllColsWidth() - state.table.scenegraph.width && deltaX <= 0 && state.scroll.horizontalBarPos < 1;
39
+ }
40
+
41
+ function isScrollToRight(deltaX, state) {
42
+ const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;
43
+ return 0 !== totalWidth && deltaX >= 0 && Math.abs(state.scroll.horizontalBarPos - totalWidth) < 1;
18
44
  }
19
45
 
20
46
  //# sourceMappingURL=scroll.js.map
21
47
  Object.defineProperty(exports, "__esModule", {
22
48
  value: !0
23
- }), exports.handleWhell = void 0, exports.handleWhell = handleWhell;
49
+ }), exports.isHorizontalScrollable = exports.isVerticalScrollable = exports.handleWhell = void 0,
50
+ exports.handleWhell = handleWhell, exports.isVerticalScrollable = isVerticalScrollable,
51
+ exports.isHorizontalScrollable = isHorizontalScrollable;
@@ -1 +1 @@
1
- {"version":3,"sources":["event/scroll.ts"],"names":[],"mappings":";;;AAEA,SAAgB,WAAW,CAAC,KAAiB,EAAE,KAAmB;IAChE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAE/B,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE;QAElC,MAAM,GAAG,MAAM,CAAC;QAChB,MAAM,GAAG,CAAC,CAAC;KACZ;IACD,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAE5G,IAAI,eAAe,EAAE;QACnB,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,GAAG,eAAe,CAAC,CAAC;QACrE,KAAK,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;KACrC;IACD,IAAI,eAAe,EAAE;QACnB,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,GAAG,eAAe,CAAC,CAAC;QAClE,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;KACnC;IAED,KAAK,CAAC,cAAc,EAAE,CAAC;AACzB,CAAC;AApBD,kCAoBC;AAaD,SAAS,gBAAgB,CAAC,CAAS,EAAE,CAAS,EAAE,KAAuB;IACrE,MAAM,KAAK,GAAG,CAAC,CAAC;IAChB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAG9B,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9D,CAAC","file":"scroll.js","sourcesContent":["import type { StateManeger } from '../state/state';\n\nexport function handleWhell(event: WheelEvent, state: StateManeger) {\n let { deltaX, deltaY } = event;\n // 如果按住了shift 则进行横向滚动 纵向不滚动\n if (event.shiftKey && event.deltaY) {\n //mac电脑按住shift 鼠标滚动deltaX和deltaY是自动互换的,所以此逻辑只针对windows电脑有效及mac触摸板有效\n deltaX = deltaY;\n deltaY = 0;\n }\n const [optimizedDeltaX, optimizedDeltaY] = optimizeScrollXY(deltaX, deltaY, { horizontal: 1, vertical: 1 });\n\n if (optimizedDeltaX) {\n state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX);\n state.showHorizontalScrollBar(true);\n }\n if (optimizedDeltaY) {\n state.setScrollTop(state.scroll.verticalBarPos + optimizedDeltaY);\n state.showVerticalScrollBar(true);\n }\n\n event.preventDefault();\n}\n\ninterface ScrollSpeedRatio {\n horizontal?: number;\n vertical?: number;\n}\n\n/**\n * 优化滚动方向,对于小角度的滚动,固定为一个方向\n * @param x\n * @param y\n * @param ratio\n */\nfunction optimizeScrollXY(x: number, y: number, ratio: ScrollSpeedRatio): [number, number] {\n const ANGLE = 2; // 调参 根据斜率来调整xy方向的划分\n const angle = Math.abs(x / y);\n\n // 经过滚动优化之后的 x, y\n const deltaX = angle <= 1 / ANGLE ? 0 : x;\n const deltaY = angle > ANGLE ? 0 : y;\n\n return [deltaX * ratio.horizontal, deltaY * ratio.vertical];\n}\n"]}
1
+ {"version":3,"sources":["event/scroll.ts"],"names":[],"mappings":"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","file":"scroll.js","sourcesContent":["import type { StateManeger } from '../state/state';\n\nexport function handleWhell(event: WheelEvent, state: StateManeger) {\n let { deltaX, deltaY } = event;\n // 如果按住了shift 则进行横向滚动 纵向不滚动\n if (event.shiftKey && event.deltaY) {\n //mac电脑按住shift 鼠标滚动deltaX和deltaY是自动互换的,所以此逻辑只针对windows电脑有效及mac触摸板有效\n deltaX = deltaY;\n deltaY = 0;\n }\n const [optimizedDeltaX, optimizedDeltaY] = optimizeScrollXY(deltaX, deltaY, { horizontal: 1, vertical: 1 });\n\n if (optimizedDeltaX) {\n state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX);\n state.showHorizontalScrollBar(true);\n }\n if (optimizedDeltaY) {\n state.setScrollTop(state.scroll.verticalBarPos + optimizedDeltaY);\n state.showVerticalScrollBar(true);\n }\n\n if (\n event.cancelable &&\n ((deltaY !== 0 && isVerticalScrollable(deltaY, state)) || (deltaX !== 0 && isHorizontalScrollable(deltaX, state)))\n ) {\n event.preventDefault();\n }\n}\n\ninterface ScrollSpeedRatio {\n horizontal?: number;\n vertical?: number;\n}\n\n/**\n * 优化滚动方向,对于小角度的滚动,固定为一个方向\n * @param x\n * @param y\n * @param ratio\n */\nfunction optimizeScrollXY(x: number, y: number, ratio: ScrollSpeedRatio): [number, number] {\n const ANGLE = 2; // 调参 根据斜率来调整xy方向的划分\n const angle = Math.abs(x / y);\n\n // 经过滚动优化之后的 x, y\n const deltaX = angle <= 1 / ANGLE ? 0 : x;\n const deltaY = angle > ANGLE ? 0 : y;\n\n return [Math.ceil(deltaX * ratio.horizontal), Math.ceil(deltaY * ratio.vertical)];\n}\n\nexport function isVerticalScrollable(deltaY: number, state: StateManeger) {\n return !isScrollToTop(deltaY, state) && !isScrollToBottom(deltaY, state);\n}\n\nexport function isHorizontalScrollable(deltaX: number, state: StateManeger) {\n return !isScrollToLeft(deltaX, state) && !isScrollToRight(deltaX, state);\n}\n\nfunction isScrollToTop(deltaY: number, state: StateManeger) {\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n return totalHeight !== 0 && deltaY <= 0 && state.scroll.verticalBarPos < 1;\n}\n\nfunction isScrollToBottom(deltaY: number, state: StateManeger) {\n const totalHeight = state.table.getAllRowsHeight() - state.table.scenegraph.height;\n return totalHeight !== 0 && deltaY >= 0 && Math.abs(state.scroll.verticalBarPos - totalHeight) < 1;\n}\n\nfunction isScrollToLeft(deltaX: number, state: StateManeger) {\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;\n return totalWidth !== 0 && deltaX <= 0 && state.scroll.horizontalBarPos < 1;\n}\n\nfunction isScrollToRight(deltaX: number, state: StateManeger) {\n const totalWidth = state.table.getAllColsWidth() - state.table.scenegraph.width;\n return totalWidth !== 0 && deltaX >= 0 && Math.abs(state.scroll.horizontalBarPos - totalWidth) < 1;\n}\n"]}