@wimi/vtable-gantt 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/README.md +213 -0
  2. package/README.zh-CN.md +215 -0
  3. package/cjs/Gantt.d.ts +200 -0
  4. package/cjs/Gantt.js +582 -0
  5. package/cjs/Gantt.js.map +1 -0
  6. package/cjs/components/Menu.d.ts +1 -0
  7. package/cjs/components/Menu.js +1 -0
  8. package/cjs/components/Menu.js.map +1 -0
  9. package/cjs/components/MenuElementStyle.d.ts +1 -0
  10. package/cjs/components/MenuElementStyle.js +12 -0
  11. package/cjs/components/MenuElementStyle.js.map +1 -0
  12. package/cjs/data/DataSource.d.ts +9 -0
  13. package/cjs/data/DataSource.js +76 -0
  14. package/cjs/data/DataSource.js.map +1 -0
  15. package/cjs/env.d.ts +19 -0
  16. package/cjs/env.js +48 -0
  17. package/cjs/env.js.map +1 -0
  18. package/cjs/event/EventHandler.d.ts +47 -0
  19. package/cjs/event/EventHandler.js +128 -0
  20. package/cjs/event/EventHandler.js.map +1 -0
  21. package/cjs/event/EventTarget.d.ts +12 -0
  22. package/cjs/event/EventTarget.js +67 -0
  23. package/cjs/event/EventTarget.js.map +1 -0
  24. package/cjs/event/event-manager.d.ts +34 -0
  25. package/cjs/event/event-manager.js +369 -0
  26. package/cjs/event/event-manager.js.map +1 -0
  27. package/cjs/event/scroll.d.ts +8 -0
  28. package/cjs/event/scroll.js +112 -0
  29. package/cjs/event/scroll.js.map +1 -0
  30. package/cjs/event/touch.d.ts +2 -0
  31. package/cjs/event/touch.js +86 -0
  32. package/cjs/event/touch.js.map +1 -0
  33. package/cjs/gantt-helper.d.ts +63 -0
  34. package/cjs/gantt-helper.js +712 -0
  35. package/cjs/gantt-helper.js.map +1 -0
  36. package/cjs/index.d.ts +10 -0
  37. package/cjs/index.js +60 -0
  38. package/cjs/index.js.map +1 -0
  39. package/cjs/plugins/index.d.ts +2 -0
  40. package/cjs/plugins/index.js +15 -0
  41. package/cjs/plugins/index.js.map +1 -0
  42. package/cjs/plugins/interface.d.ts +10 -0
  43. package/cjs/plugins/interface.js +6 -0
  44. package/cjs/plugins/interface.js.map +1 -0
  45. package/cjs/plugins/plugin-manager.d.ts +16 -0
  46. package/cjs/plugins/plugin-manager.js +63 -0
  47. package/cjs/plugins/plugin-manager.js.map +1 -0
  48. package/cjs/register.d.ts +1 -0
  49. package/cjs/register.js +1 -0
  50. package/cjs/register.js.map +1 -0
  51. package/cjs/scenegraph/dependency-link.d.ts +48 -0
  52. package/cjs/scenegraph/dependency-link.js +480 -0
  53. package/cjs/scenegraph/dependency-link.js.map +1 -0
  54. package/cjs/scenegraph/drag-order-line.d.ts +12 -0
  55. package/cjs/scenegraph/drag-order-line.js +49 -0
  56. package/cjs/scenegraph/drag-order-line.js.map +1 -0
  57. package/cjs/scenegraph/frame-border.d.ts +10 -0
  58. package/cjs/scenegraph/frame-border.js +58 -0
  59. package/cjs/scenegraph/frame-border.js.map +1 -0
  60. package/cjs/scenegraph/gantt-node.d.ts +22 -0
  61. package/cjs/scenegraph/gantt-node.js +66 -0
  62. package/cjs/scenegraph/gantt-node.js.map +1 -0
  63. package/cjs/scenegraph/graphic/group-contribution-render.d.ts +12 -0
  64. package/cjs/scenegraph/graphic/group-contribution-render.js +37 -0
  65. package/cjs/scenegraph/graphic/group-contribution-render.js.map +1 -0
  66. package/cjs/scenegraph/graphic/index.d.ts +3 -0
  67. package/cjs/scenegraph/graphic/index.js +13 -0
  68. package/cjs/scenegraph/graphic/index.js.map +1 -0
  69. package/cjs/scenegraph/grid.d.ts +34 -0
  70. package/cjs/scenegraph/grid.js +316 -0
  71. package/cjs/scenegraph/grid.js.map +1 -0
  72. package/cjs/scenegraph/mark-line.d.ts +13 -0
  73. package/cjs/scenegraph/mark-line.js +109 -0
  74. package/cjs/scenegraph/mark-line.js.map +1 -0
  75. package/cjs/scenegraph/scenegraph.d.ts +59 -0
  76. package/cjs/scenegraph/scenegraph.js +240 -0
  77. package/cjs/scenegraph/scenegraph.js.map +1 -0
  78. package/cjs/scenegraph/scroll-bar.d.ts +19 -0
  79. package/cjs/scenegraph/scroll-bar.js +150 -0
  80. package/cjs/scenegraph/scroll-bar.js.map +1 -0
  81. package/cjs/scenegraph/task-bar.d.ts +40 -0
  82. package/cjs/scenegraph/task-bar.js +476 -0
  83. package/cjs/scenegraph/task-bar.js.map +1 -0
  84. package/cjs/scenegraph/task-creation-button.d.ts +13 -0
  85. package/cjs/scenegraph/task-creation-button.js +86 -0
  86. package/cjs/scenegraph/task-creation-button.js.map +1 -0
  87. package/cjs/scenegraph/timeline-header.d.ts +14 -0
  88. package/cjs/scenegraph/timeline-header.js +190 -0
  89. package/cjs/scenegraph/timeline-header.js.map +1 -0
  90. package/cjs/scenegraph/tooltip.d.ts +9 -0
  91. package/cjs/scenegraph/tooltip.js +59 -0
  92. package/cjs/scenegraph/tooltip.js.map +1 -0
  93. package/cjs/state/gantt-table-sync.d.ts +8 -0
  94. package/cjs/state/gantt-table-sync.js +96 -0
  95. package/cjs/state/gantt-table-sync.js.map +1 -0
  96. package/cjs/state/state-manager.d.ts +127 -0
  97. package/cjs/state/state-manager.js +634 -0
  98. package/cjs/state/state-manager.js.map +1 -0
  99. package/cjs/sub-tasks-inline-helper.d.ts +1 -0
  100. package/cjs/sub-tasks-inline-helper.js +1 -0
  101. package/cjs/sub-tasks-inline-helper.js.map +1 -0
  102. package/cjs/themes.d.ts +1 -0
  103. package/cjs/themes.js +1 -0
  104. package/cjs/themes.js.map +1 -0
  105. package/cjs/tools/debounce.d.ts +1 -0
  106. package/cjs/tools/debounce.js +51 -0
  107. package/cjs/tools/debounce.js.map +1 -0
  108. package/cjs/tools/dom.d.ts +1 -0
  109. package/cjs/tools/dom.js +11 -0
  110. package/cjs/tools/dom.js.map +1 -0
  111. package/cjs/tools/index.d.ts +2 -0
  112. package/cjs/tools/index.js +30 -0
  113. package/cjs/tools/index.js.map +1 -0
  114. package/cjs/tools/inertia.d.ts +15 -0
  115. package/cjs/tools/inertia.js +40 -0
  116. package/cjs/tools/inertia.js.map +1 -0
  117. package/cjs/tools/isx.d.ts +16 -0
  118. package/cjs/tools/isx.js +117 -0
  119. package/cjs/tools/isx.js.map +1 -0
  120. package/cjs/tools/pixel-ratio.d.ts +2 -0
  121. package/cjs/tools/pixel-ratio.js +16 -0
  122. package/cjs/tools/pixel-ratio.js.map +1 -0
  123. package/cjs/tools/util.d.ts +19 -0
  124. package/cjs/tools/util.js +404 -0
  125. package/cjs/tools/util.js.map +1 -0
  126. package/cjs/ts-types/EVENT_TYPE.d.ts +19 -0
  127. package/cjs/ts-types/EVENT_TYPE.js +22 -0
  128. package/cjs/ts-types/EVENT_TYPE.js.map +1 -0
  129. package/cjs/ts-types/common.d.ts +11 -0
  130. package/cjs/ts-types/common.js +10 -0
  131. package/cjs/ts-types/common.js.map +1 -0
  132. package/cjs/ts-types/events.d.ts +132 -0
  133. package/cjs/ts-types/events.js +6 -0
  134. package/cjs/ts-types/events.js.map +1 -0
  135. package/cjs/ts-types/gantt-engine.d.ts +344 -0
  136. package/cjs/ts-types/gantt-engine.js +18 -0
  137. package/cjs/ts-types/gantt-engine.js.map +1 -0
  138. package/cjs/ts-types/index.d.ts +5 -0
  139. package/cjs/ts-types/index.js +23 -0
  140. package/cjs/ts-types/index.js.map +1 -0
  141. package/cjs/ts-types/zoom-scale.d.ts +32 -0
  142. package/cjs/ts-types/zoom-scale.js +6 -0
  143. package/cjs/ts-types/zoom-scale.js.map +1 -0
  144. package/cjs/vrender.d.ts +1 -0
  145. package/cjs/vrender.js +60 -0
  146. package/cjs/vrender.js.map +1 -0
  147. package/cjs/vtable.d.ts +1 -0
  148. package/cjs/vtable.js +35 -0
  149. package/cjs/vtable.js.map +1 -0
  150. package/cjs/zoom-scale/DataZoomIntegration.d.ts +50 -0
  151. package/cjs/zoom-scale/DataZoomIntegration.js +261 -0
  152. package/cjs/zoom-scale/DataZoomIntegration.js.map +1 -0
  153. package/cjs/zoom-scale/ZoomScaleManager.d.ts +55 -0
  154. package/cjs/zoom-scale/ZoomScaleManager.js +328 -0
  155. package/cjs/zoom-scale/ZoomScaleManager.js.map +1 -0
  156. package/cjs/zoom-scale/index.d.ts +4 -0
  157. package/cjs/zoom-scale/index.js +24 -0
  158. package/cjs/zoom-scale/index.js.map +1 -0
  159. package/dist/vtable-gantt.js +76328 -0
  160. package/dist/vtable-gantt.min.js +15 -0
  161. package/es/Gantt.d.ts +200 -0
  162. package/es/Gantt.js +584 -0
  163. package/es/Gantt.js.map +1 -0
  164. package/es/components/Menu.d.ts +1 -0
  165. package/es/components/Menu.js +1 -0
  166. package/es/components/Menu.js.map +1 -0
  167. package/es/components/MenuElementStyle.d.ts +1 -0
  168. package/es/components/MenuElementStyle.js +6 -0
  169. package/es/components/MenuElementStyle.js.map +1 -0
  170. package/es/data/DataSource.d.ts +9 -0
  171. package/es/data/DataSource.js +63 -0
  172. package/es/data/DataSource.js.map +1 -0
  173. package/es/env.d.ts +19 -0
  174. package/es/env.js +42 -0
  175. package/es/env.js.map +1 -0
  176. package/es/event/EventHandler.d.ts +47 -0
  177. package/es/event/EventHandler.js +119 -0
  178. package/es/event/EventHandler.js.map +1 -0
  179. package/es/event/EventTarget.d.ts +12 -0
  180. package/es/event/EventTarget.js +58 -0
  181. package/es/event/EventTarget.js.map +1 -0
  182. package/es/event/event-manager.d.ts +34 -0
  183. package/es/event/event-manager.js +376 -0
  184. package/es/event/event-manager.js.map +1 -0
  185. package/es/event/scroll.d.ts +8 -0
  186. package/es/event/scroll.js +104 -0
  187. package/es/event/scroll.js.map +1 -0
  188. package/es/event/touch.d.ts +2 -0
  189. package/es/event/touch.js +78 -0
  190. package/es/event/touch.js.map +1 -0
  191. package/es/gantt-helper.d.ts +63 -0
  192. package/es/gantt-helper.js +683 -0
  193. package/es/gantt-helper.js.map +1 -0
  194. package/es/index.d.ts +10 -0
  195. package/es/index.js +16 -0
  196. package/es/index.js.map +1 -0
  197. package/es/plugins/index.d.ts +2 -0
  198. package/es/plugins/index.js +2 -0
  199. package/es/plugins/index.js.map +1 -0
  200. package/es/plugins/interface.d.ts +10 -0
  201. package/es/plugins/interface.js +2 -0
  202. package/es/plugins/interface.js.map +1 -0
  203. package/es/plugins/plugin-manager.d.ts +16 -0
  204. package/es/plugins/plugin-manager.js +55 -0
  205. package/es/plugins/plugin-manager.js.map +1 -0
  206. package/es/register.d.ts +1 -0
  207. package/es/register.js +1 -0
  208. package/es/register.js.map +1 -0
  209. package/es/scenegraph/dependency-link.d.ts +48 -0
  210. package/es/scenegraph/dependency-link.js +462 -0
  211. package/es/scenegraph/dependency-link.js.map +1 -0
  212. package/es/scenegraph/drag-order-line.d.ts +12 -0
  213. package/es/scenegraph/drag-order-line.js +40 -0
  214. package/es/scenegraph/drag-order-line.js.map +1 -0
  215. package/es/scenegraph/frame-border.d.ts +10 -0
  216. package/es/scenegraph/frame-border.js +51 -0
  217. package/es/scenegraph/frame-border.js.map +1 -0
  218. package/es/scenegraph/gantt-node.d.ts +22 -0
  219. package/es/scenegraph/gantt-node.js +64 -0
  220. package/es/scenegraph/gantt-node.js.map +1 -0
  221. package/es/scenegraph/graphic/group-contribution-render.d.ts +12 -0
  222. package/es/scenegraph/graphic/group-contribution-render.js +32 -0
  223. package/es/scenegraph/graphic/group-contribution-render.js.map +1 -0
  224. package/es/scenegraph/graphic/index.d.ts +3 -0
  225. package/es/scenegraph/graphic/index.js +8 -0
  226. package/es/scenegraph/graphic/index.js.map +1 -0
  227. package/es/scenegraph/grid.d.ts +34 -0
  228. package/es/scenegraph/grid.js +306 -0
  229. package/es/scenegraph/grid.js.map +1 -0
  230. package/es/scenegraph/mark-line.d.ts +13 -0
  231. package/es/scenegraph/mark-line.js +101 -0
  232. package/es/scenegraph/mark-line.js.map +1 -0
  233. package/es/scenegraph/scenegraph.d.ts +59 -0
  234. package/es/scenegraph/scenegraph.js +250 -0
  235. package/es/scenegraph/scenegraph.js.map +1 -0
  236. package/es/scenegraph/scroll-bar.d.ts +19 -0
  237. package/es/scenegraph/scroll-bar.js +144 -0
  238. package/es/scenegraph/scroll-bar.js.map +1 -0
  239. package/es/scenegraph/task-bar.d.ts +40 -0
  240. package/es/scenegraph/task-bar.js +475 -0
  241. package/es/scenegraph/task-bar.js.map +1 -0
  242. package/es/scenegraph/task-creation-button.d.ts +13 -0
  243. package/es/scenegraph/task-creation-button.js +78 -0
  244. package/es/scenegraph/task-creation-button.js.map +1 -0
  245. package/es/scenegraph/timeline-header.d.ts +14 -0
  246. package/es/scenegraph/timeline-header.js +186 -0
  247. package/es/scenegraph/timeline-header.js.map +1 -0
  248. package/es/scenegraph/tooltip.d.ts +9 -0
  249. package/es/scenegraph/tooltip.js +51 -0
  250. package/es/scenegraph/tooltip.js.map +1 -0
  251. package/es/state/gantt-table-sync.d.ts +8 -0
  252. package/es/state/gantt-table-sync.js +87 -0
  253. package/es/state/gantt-table-sync.js.map +1 -0
  254. package/es/state/state-manager.d.ts +127 -0
  255. package/es/state/state-manager.js +631 -0
  256. package/es/state/state-manager.js.map +1 -0
  257. package/es/sub-tasks-inline-helper.d.ts +1 -0
  258. package/es/sub-tasks-inline-helper.js +1 -0
  259. package/es/sub-tasks-inline-helper.js.map +1 -0
  260. package/es/themes.d.ts +1 -0
  261. package/es/themes.js +1 -0
  262. package/es/themes.js.map +1 -0
  263. package/es/tools/debounce.d.ts +1 -0
  264. package/es/tools/debounce.js +45 -0
  265. package/es/tools/debounce.js.map +1 -0
  266. package/es/tools/dom.d.ts +1 -0
  267. package/es/tools/dom.js +5 -0
  268. package/es/tools/dom.js.map +1 -0
  269. package/es/tools/index.d.ts +2 -0
  270. package/es/tools/index.js +4 -0
  271. package/es/tools/index.js.map +1 -0
  272. package/es/tools/inertia.d.ts +15 -0
  273. package/es/tools/inertia.js +31 -0
  274. package/es/tools/inertia.js.map +1 -0
  275. package/es/tools/isx.d.ts +16 -0
  276. package/es/tools/isx.js +80 -0
  277. package/es/tools/isx.js.map +1 -0
  278. package/es/tools/pixel-ratio.d.ts +2 -0
  279. package/es/tools/pixel-ratio.js +12 -0
  280. package/es/tools/pixel-ratio.js.map +1 -0
  281. package/es/tools/util.d.ts +19 -0
  282. package/es/tools/util.js +390 -0
  283. package/es/tools/util.js.map +1 -0
  284. package/es/ts-types/EVENT_TYPE.d.ts +19 -0
  285. package/es/ts-types/EVENT_TYPE.js +18 -0
  286. package/es/ts-types/EVENT_TYPE.js.map +1 -0
  287. package/es/ts-types/common.d.ts +11 -0
  288. package/es/ts-types/common.js +6 -0
  289. package/es/ts-types/common.js.map +1 -0
  290. package/es/ts-types/events.d.ts +132 -0
  291. package/es/ts-types/events.js +2 -0
  292. package/es/ts-types/events.js.map +1 -0
  293. package/es/ts-types/gantt-engine.d.ts +344 -0
  294. package/es/ts-types/gantt-engine.js +21 -0
  295. package/es/ts-types/gantt-engine.js.map +1 -0
  296. package/es/ts-types/index.d.ts +5 -0
  297. package/es/ts-types/index.js +10 -0
  298. package/es/ts-types/index.js.map +1 -0
  299. package/es/ts-types/zoom-scale.d.ts +32 -0
  300. package/es/ts-types/zoom-scale.js +2 -0
  301. package/es/ts-types/zoom-scale.js.map +1 -0
  302. package/es/vrender.d.ts +1 -0
  303. package/es/vrender.js +2 -0
  304. package/es/vrender.js.map +1 -0
  305. package/es/vtable.d.ts +1 -0
  306. package/es/vtable.js +2 -0
  307. package/es/vtable.js.map +1 -0
  308. package/es/zoom-scale/DataZoomIntegration.d.ts +50 -0
  309. package/es/zoom-scale/DataZoomIntegration.js +253 -0
  310. package/es/zoom-scale/DataZoomIntegration.js.map +1 -0
  311. package/es/zoom-scale/ZoomScaleManager.d.ts +55 -0
  312. package/es/zoom-scale/ZoomScaleManager.js +322 -0
  313. package/es/zoom-scale/ZoomScaleManager.js.map +1 -0
  314. package/es/zoom-scale/index.d.ts +4 -0
  315. package/es/zoom-scale/index.js +4 -0
  316. package/es/zoom-scale/index.js.map +1 -0
  317. package/package.json +124 -0
@@ -0,0 +1,104 @@
1
+ import { InteractionState } from "../ts-types";
2
+
3
+ import { throttle } from "../tools/util";
4
+
5
+ export function handleWhell(event, state, gantt, isWheelEvent = !0) {
6
+ var _a, _b;
7
+ let {deltaX: deltaX, deltaY: deltaY} = event;
8
+ if (event.ctrlKey) {
9
+ if (event.preventDefault(), !gantt.zoomScaleManager) return;
10
+ const rect = gantt.element.getBoundingClientRect(), mouseX = event.clientX - rect.left;
11
+ if (0 === deltaY) return;
12
+ const zoomIn = event.deltaY < 0, isTouchpad = Math.abs(event.deltaY) < 100 && event.deltaY % 1 != 0, baseStep = (null === (_a = gantt.parsedOptions.zoom) || void 0 === _a ? void 0 : _a.step) || .015, zoomStep = isTouchpad ? baseStep : 5 * baseStep, factor = zoomIn ? 1 + zoomStep : 1 - zoomStep;
13
+ return void gantt.zoomByFactor(factor, !0, mouseX);
14
+ }
15
+ event.shiftKey && event.deltaY && (deltaX = deltaY, deltaY = 0);
16
+ const [optimizedDeltaX, optimizedDeltaY] = optimizeScrollXY(deltaX, deltaY, {
17
+ horizontal: 1,
18
+ vertical: 1
19
+ });
20
+ optimizedDeltaX && (state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX),
21
+ gantt.scenegraph.scrollbarComponent.showHorizontalScrollBar(!0)), optimizedDeltaY && (state.setScrollTop(state.scroll.verticalBarPos + optimizedDeltaY),
22
+ gantt.scenegraph.scrollbarComponent.showVerticalScrollBar(!0)), isWheelEvent && state.resetInteractionState(),
23
+ (null === (_b = event.nativeEvent) || void 0 === _b ? void 0 : _b.cancelable) && ("none" === state._gantt.parsedOptions.overscrollBehavior || Math.abs(deltaY) >= Math.abs(deltaX) && 0 !== deltaY && isVerticalScrollable(deltaY, state) || Math.abs(deltaY) <= Math.abs(deltaX) && 0 !== deltaX && isHorizontalScrollable(deltaX, state)) && event.preventDefault();
24
+ }
25
+
26
+ function optimizeScrollXY(x, y, ratio) {
27
+ var _a, _b;
28
+ const angle = Math.abs(x / y), deltaX = angle <= .5 ? 0 : x, deltaY = angle > 2 ? 0 : y;
29
+ return [ Math.ceil(deltaX * (null !== (_a = ratio.horizontal) && void 0 !== _a ? _a : 0)), Math.ceil(deltaY * (null !== (_b = ratio.vertical) && void 0 !== _b ? _b : 0)) ];
30
+ }
31
+
32
+ export function isVerticalScrollable(deltaY, state) {
33
+ return 0 != state._gantt.getAllRowsHeight() - state._gantt.scenegraph.height && (!isScrollToTop(deltaY, state) && !isScrollToBottom(deltaY, state));
34
+ }
35
+
36
+ export function isHorizontalScrollable(deltaX, state) {
37
+ return 0 != state._gantt.getAllDateColsWidth() - state._gantt.scenegraph.width && (!isScrollToLeft(deltaX, state) && !isScrollToRight(deltaX, state));
38
+ }
39
+
40
+ function isScrollToTop(deltaY, state) {
41
+ return 0 !== state._gantt.getAllRowsHeight() - state._gantt.scenegraph.height && deltaY <= 0 && state.scroll.verticalBarPos < 1;
42
+ }
43
+
44
+ function isScrollToBottom(deltaY, state) {
45
+ const totalHeight = state._gantt.getAllRowsHeight() - state._gantt.scenegraph.height;
46
+ return 0 !== totalHeight && deltaY >= 0 && Math.abs(state.scroll.verticalBarPos - totalHeight) < 1;
47
+ }
48
+
49
+ function isScrollToLeft(deltaX, state) {
50
+ return 0 !== state._gantt.getAllDateColsWidth() - state._gantt.scenegraph.width && deltaX <= 0 && state.scroll.horizontalBarPos < 1;
51
+ }
52
+
53
+ function isScrollToRight(deltaX, state) {
54
+ const totalWidth = state._gantt.getAllDateColsWidth() - state._gantt.scenegraph.width;
55
+ return 0 !== totalWidth && deltaX >= 0 && Math.abs(state.scroll.horizontalBarPos - totalWidth) < 1;
56
+ }
57
+
58
+ export function bindScrollBarListener(eventManager) {
59
+ const table = eventManager._gantt, stateManager = table.stateManager, scenegraph = table.scenegraph;
60
+ scenegraph.scrollbarComponent.vScrollBar.addEventListener("pointerover", (e => {
61
+ scenegraph.scrollbarComponent.showVerticalScrollBar();
62
+ })), scenegraph.scrollbarComponent.hScrollBar.addEventListener("pointerover", (e => {
63
+ scenegraph.scrollbarComponent.showHorizontalScrollBar();
64
+ })), scenegraph.scrollbarComponent.vScrollBar.addEventListener("pointerout", (e => {
65
+ stateManager.interactionState !== InteractionState.scrolling && scenegraph.scrollbarComponent.hideVerticalScrollBar();
66
+ })), scenegraph.scrollbarComponent.hScrollBar.addEventListener("pointerout", (e => {
67
+ stateManager.interactionState !== InteractionState.scrolling && scenegraph.scrollbarComponent.hideHorizontalScrollBar();
68
+ })), scenegraph.scrollbarComponent.vScrollBar.addEventListener("pointermove", (e => {
69
+ e.stopPropagation();
70
+ })), scenegraph.scrollbarComponent.vScrollBar.addEventListener("scrollDown", (e => {
71
+ scenegraph._gantt.eventManager.isDown = !0;
72
+ })), scenegraph.scrollbarComponent.vScrollBar.addEventListener("pointerup", (() => {
73
+ scenegraph._gantt.eventManager.isDraging = !1, stateManager.interactionState === InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.default);
74
+ })), scenegraph.scrollbarComponent.vScrollBar.addEventListener("pointerupoutside", (() => {
75
+ stateManager.interactionState === InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.default);
76
+ })), scenegraph.scrollbarComponent.vScrollBar.addEventListener("scrollUp", (e => {
77
+ scenegraph._gantt.eventManager.isDraging = !1;
78
+ })), scenegraph.scrollbarComponent.hScrollBar.addEventListener("pointermove", (e => {
79
+ e.stopPropagation();
80
+ })), scenegraph.scrollbarComponent.hScrollBar.addEventListener("pointerdown", (e => {
81
+ e.stopPropagation();
82
+ })), scenegraph.scrollbarComponent.hScrollBar.addEventListener("scrollDown", (e => {
83
+ scenegraph._gantt.eventManager.isDown = !0, stateManager.interactionState !== InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.scrolling);
84
+ })), scenegraph.scrollbarComponent.hScrollBar.addEventListener("pointerup", (() => {
85
+ stateManager.interactionState === InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.default);
86
+ })), scenegraph.scrollbarComponent.hScrollBar.addEventListener("pointerupoutside", (() => {
87
+ stateManager.interactionState === InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.default);
88
+ })), scenegraph.scrollbarComponent.hScrollBar.addEventListener("scrollUp", (e => {
89
+ scenegraph._gantt.eventManager.isDraging = !1;
90
+ }));
91
+ const throttleVerticalWheel = throttle(stateManager.updateVerticalScrollBar, 20), throttleHorizontalWheel = throttle(stateManager.updateHorizontalScrollBar, 20);
92
+ scenegraph.scrollbarComponent.vScrollBar.addEventListener("scrollDrag", (e => {
93
+ scenegraph._gantt.eventManager.isDown && (scenegraph._gantt.eventManager.isDraging = !0),
94
+ stateManager.interactionState !== InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.scrolling);
95
+ const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);
96
+ throttleVerticalWheel(ratio, e);
97
+ })), scenegraph.scrollbarComponent.hScrollBar.addEventListener("scrollDrag", (e => {
98
+ scenegraph._gantt.eventManager.isDown && (scenegraph._gantt.eventManager.isDraging = !0),
99
+ stateManager.fastScrolling = !0, stateManager.interactionState !== InteractionState.scrolling && stateManager.updateInteractionState(InteractionState.scrolling);
100
+ const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);
101
+ throttleHorizontalWheel(ratio);
102
+ }));
103
+ }
104
+ //# sourceMappingURL=scroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/event/scroll.ts"],"names":[],"mappings":"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","file":"scroll.js","sourcesContent":["import type { FederatedPointerEvent, FederatedWheelEvent } from '@visactor/vtable/es/vrender';\n\nimport type { Gantt } from '../Gantt';\nimport { InteractionState } from '../ts-types';\nimport type { EventManager } from './event-manager';\nimport { throttle } from '../tools/util';\nimport type { StateManager } from '../state/state-manager';\n/**\n *\n * @param event\n * @param state\n * @param isWheelEvent 是否是由鼠标或者触摸板原生滚动事件触发进入?\n */\nexport function handleWhell(\n event: FederatedWheelEvent,\n state: StateManager,\n gantt: Gantt,\n isWheelEvent: boolean = true\n) {\n let { deltaX, deltaY } = event;\n // 如果按住Ctrl键,执行缩放操作\n if (event.ctrlKey) {\n event.preventDefault();\n\n // 检查是否启用了智能缩放功能\n if (!gantt.zoomScaleManager) {\n return;\n }\n\n const rect = gantt.element.getBoundingClientRect();\n const mouseX = event.clientX - rect.left;\n\n if (deltaY === 0) {\n return;\n }\n const zoomIn = event.deltaY < 0;\n\n // 区分触控板和鼠标滚轮\n const isTouchpad = Math.abs(event.deltaY) < 100 && event.deltaY % 1 !== 0;\n\n const baseStep = gantt.parsedOptions.zoom?.step || 0.015;\n const zoomStep = isTouchpad ? baseStep : baseStep * 5; // 触控板使用原始数据,鼠标使用五倍数据\n\n const factor = zoomIn ? 1 + zoomStep : 1 - zoomStep;\n\n gantt.zoomByFactor(factor, true, mouseX);\n\n return;\n }\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 if (optimizedDeltaX || optimizedDeltaY) {\n // if (state.interactionState !== InteractionState.scrolling) {\n // state.updateInteractionState(InteractionState.scrolling);\n // }\n }\n\n if (optimizedDeltaX) {\n state.setScrollLeft(state.scroll.horizontalBarPos + optimizedDeltaX);\n gantt.scenegraph.scrollbarComponent.showHorizontalScrollBar(true);\n }\n if (optimizedDeltaY) {\n state.setScrollTop(state.scroll.verticalBarPos + optimizedDeltaY);\n gantt.scenegraph.scrollbarComponent.showVerticalScrollBar(true);\n }\n isWheelEvent && state.resetInteractionState();\n if (\n event.nativeEvent?.cancelable &&\n (state._gantt.parsedOptions.overscrollBehavior === 'none' ||\n (Math.abs(deltaY) >= Math.abs(deltaX) && deltaY !== 0 && isVerticalScrollable(deltaY, state)) ||\n (Math.abs(deltaY) <= Math.abs(deltaX) && 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 ?? 0)), Math.ceil(deltaY * (ratio.vertical ?? 0))];\n}\n\nexport function isVerticalScrollable(deltaY: number, state: StateManager) {\n const totalHeight = state._gantt.getAllRowsHeight() - state._gantt.scenegraph.height;\n if (totalHeight === 0) {\n return false;\n }\n return !isScrollToTop(deltaY, state) && !isScrollToBottom(deltaY, state);\n}\n\nexport function isHorizontalScrollable(deltaX: number, state: StateManager) {\n const totalWidth = state._gantt.getAllDateColsWidth() - state._gantt.scenegraph.width;\n if (totalWidth === 0) {\n return false;\n }\n return !isScrollToLeft(deltaX, state) && !isScrollToRight(deltaX, state);\n}\n\nfunction isScrollToTop(deltaY: number, state: StateManager) {\n const totalHeight = state._gantt.getAllRowsHeight() - state._gantt.scenegraph.height;\n return totalHeight !== 0 && deltaY <= 0 && state.scroll.verticalBarPos < 1;\n}\n\nfunction isScrollToBottom(deltaY: number, state: StateManager) {\n const totalHeight = state._gantt.getAllRowsHeight() - state._gantt.scenegraph.height;\n return totalHeight !== 0 && deltaY >= 0 && Math.abs(state.scroll.verticalBarPos - totalHeight) < 1;\n}\n\nfunction isScrollToLeft(deltaX: number, state: StateManager) {\n const totalWidth = state._gantt.getAllDateColsWidth() - state._gantt.scenegraph.width;\n return totalWidth !== 0 && deltaX <= 0 && state.scroll.horizontalBarPos < 1;\n}\n\nfunction isScrollToRight(deltaX: number, state: StateManager) {\n const totalWidth = state._gantt.getAllDateColsWidth() - state._gantt.scenegraph.width;\n return totalWidth !== 0 && deltaX >= 0 && Math.abs(state.scroll.horizontalBarPos - totalWidth) < 1;\n}\n\nexport function bindScrollBarListener(eventManager: EventManager) {\n const table = eventManager._gantt;\n const stateManager = table.stateManager;\n const scenegraph = table.scenegraph;\n\n // 监听滚动条组件pointover事件\n scenegraph.scrollbarComponent.vScrollBar.addEventListener('pointerover', (e: any) => {\n scenegraph.scrollbarComponent.showVerticalScrollBar();\n });\n scenegraph.scrollbarComponent.hScrollBar.addEventListener('pointerover', (e: any) => {\n scenegraph.scrollbarComponent.showHorizontalScrollBar();\n });\n scenegraph.scrollbarComponent.vScrollBar.addEventListener('pointerout', (e: any) => {\n if (stateManager.interactionState === InteractionState.scrolling) {\n return;\n }\n scenegraph.scrollbarComponent.hideVerticalScrollBar();\n });\n scenegraph.scrollbarComponent.hScrollBar.addEventListener('pointerout', (e: any) => {\n if (stateManager.interactionState === InteractionState.scrolling) {\n return;\n }\n scenegraph.scrollbarComponent.hideHorizontalScrollBar();\n });\n scenegraph.scrollbarComponent.vScrollBar.addEventListener('pointermove', (e: FederatedPointerEvent) => {\n // scenegraph._gantt.stateManager.updateCursor('default');\n e.stopPropagation(); //防止冒泡到stage上 检测到挨着列间隔线判断成可拖拽\n });\n // scenegraph.scrollbarComponent.vScrollBar.addEventListener('pointerdown', (e: FederatedPointerEvent) => {\n // e.stopPropagation(); //防止冒泡到stage上 检测到挨着列间隔线判断成拖拽状态\n // if ((scenegraph._gantt as any).hasListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE)) {\n // scenegraph._gantt.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE, {\n // event: e.nativeEvent\n // });\n // }\n // });\n scenegraph.scrollbarComponent.vScrollBar.addEventListener('scrollDown', (e: FederatedPointerEvent) => {\n // scenegraph._gantt.eventManager.LastBodyPointerXY = { x: e.x, y: e.y };\n scenegraph._gantt.eventManager.isDown = true;\n\n // if ((scenegraph._gantt as any).hasListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE)) {\n // scenegraph._gantt.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE, {\n // event: e.nativeEvent\n // });\n // }\n });\n scenegraph.scrollbarComponent.vScrollBar.addEventListener('pointerup', () => {\n // stateManager.fastScrolling = false;\n scenegraph._gantt.eventManager.isDraging = false;\n if (stateManager.interactionState === InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.default);\n }\n });\n scenegraph.scrollbarComponent.vScrollBar.addEventListener('pointerupoutside', () => {\n // stateManager.fastScrolling = false;\n if (stateManager.interactionState === InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.default);\n }\n });\n scenegraph.scrollbarComponent.vScrollBar.addEventListener('scrollUp', (e: FederatedPointerEvent) => {\n scenegraph._gantt.eventManager.isDraging = false;\n });\n\n scenegraph.scrollbarComponent.hScrollBar.addEventListener('pointermove', (e: FederatedPointerEvent) => {\n // scenegraph._gantt.stateManager.updateCursor('default');\n e.stopPropagation(); //防止冒泡到stage上 检测到挨着列间隔线判断成可拖拽\n });\n scenegraph.scrollbarComponent.hScrollBar.addEventListener('pointerdown', (e: FederatedPointerEvent) => {\n e.stopPropagation(); //防止冒泡到stage上 检测到挨着列间隔线判断成拖拽状态\n // if ((scenegraph._gantt as any).hasListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE)) {\n // scenegraph._gantt.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE, {\n // event: e.nativeEvent\n // });\n // }\n });\n scenegraph.scrollbarComponent.hScrollBar.addEventListener('scrollDown', (e: FederatedPointerEvent) => {\n // scenegraph._gantt.eventManager.LastBodyPointerXY = { x: e.x, y: e.y };\n scenegraph._gantt.eventManager.isDown = true;\n if (stateManager.interactionState !== InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.scrolling);\n }\n\n // if ((scenegraph._gantt as any).hasListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE)) {\n // scenegraph._gantt.fireListeners(TABLE_EVENT_TYPE.MOUSEDOWN_TABLE, {\n // event: e.nativeEvent\n // });\n // }\n });\n scenegraph.scrollbarComponent.hScrollBar.addEventListener('pointerup', () => {\n // stateManager.fastScrolling = false;\n // scenegraph._gantt.eventManager.isDraging = false;\n if (stateManager.interactionState === InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.default);\n }\n });\n scenegraph.scrollbarComponent.hScrollBar.addEventListener('pointerupoutside', () => {\n // stateManager.fastScrolling = false;\n if (stateManager.interactionState === InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.default);\n }\n });\n scenegraph.scrollbarComponent.hScrollBar.addEventListener('scrollUp', (e: FederatedPointerEvent) => {\n scenegraph._gantt.eventManager.isDraging = false;\n });\n const throttleVerticalWheel = throttle(stateManager.updateVerticalScrollBar, 20);\n const throttleHorizontalWheel = throttle(stateManager.updateHorizontalScrollBar, 20);\n\n // 监听滚动条组件scroll事件\n scenegraph.scrollbarComponent.vScrollBar.addEventListener('scrollDrag', (e: any) => {\n if (scenegraph._gantt.eventManager.isDown) {\n scenegraph._gantt.eventManager.isDraging = true;\n }\n // stateManager.fastScrolling = true;\n if (stateManager.interactionState !== InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.scrolling);\n }\n const ratio = e.detail.value[0] / (1 - e.detail.value[1] + e.detail.value[0]);\n throttleVerticalWheel(ratio, e);\n });\n\n scenegraph.scrollbarComponent.hScrollBar.addEventListener('scrollDrag', (e: any) => {\n if (scenegraph._gantt.eventManager.isDown) {\n scenegraph._gantt.eventManager.isDraging = true;\n }\n stateManager.fastScrolling = true;\n if (stateManager.interactionState !== InteractionState.scrolling) {\n stateManager.updateInteractionState(InteractionState.scrolling);\n }\n // stateManager._gantt.scenegraph.proxy.isSkipProgress = true;\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 { EventManager } from './event-manager';
2
+ export declare function bindTouchListener(eventManager: EventManager): void;
@@ -0,0 +1,78 @@
1
+ import { vglobal } from "@visactor/vtable/es/vrender";
2
+
3
+ import { handleWhell, isHorizontalScrollable, isVerticalScrollable } from "./scroll";
4
+
5
+ export function bindTouchListener(eventManager) {
6
+ const gantt = eventManager._gantt, stateManager = gantt.stateManager, scenegraph = gantt.scenegraph;
7
+ if (!1 === vglobal.envContribution.supportsTouchEvents) return;
8
+ vglobal.addEventListener("contextmenu", (e => {
9
+ e.stopPropagation(), e.preventDefault();
10
+ }), {
11
+ capture: !0
12
+ }), eventManager.touchMovePoints = [], gantt.scenegraph.ganttGroup.addEventListener("touchstart", (e => {
13
+ e.target.isChildOf(scenegraph.scrollbarComponent.vScrollBar) || e.target.isChildOf(scenegraph.scrollbarComponent.hScrollBar) || (eventManager.isTouchdown = !0,
14
+ eventManager.touchMovePoints.push({
15
+ x: e.page.x,
16
+ y: e.page.y,
17
+ timestamp: Date.now()
18
+ }));
19
+ }));
20
+ const globalTouchMoveCallback = e => {
21
+ if (eventManager.isLongTouch && e.preventDefault(), eventManager.isTouchdown && isTouchEvent(e) && (eventManager.isTouchMove = !0,
22
+ eventManager.touchMovePoints.length > 4 && eventManager.touchMovePoints.shift(),
23
+ eventManager.touchMovePoints.push({
24
+ x: e.changedTouches[0].pageX,
25
+ y: e.changedTouches[0].pageY,
26
+ timestamp: Date.now()
27
+ }), eventManager._enableTableScroll)) {
28
+ const deltaX = -eventManager.touchMovePoints[eventManager.touchMovePoints.length - 1].x + eventManager.touchMovePoints[eventManager.touchMovePoints.length - 2].x, deltaY = -eventManager.touchMovePoints[eventManager.touchMovePoints.length - 1].y + eventManager.touchMovePoints[eventManager.touchMovePoints.length - 2].y;
29
+ handleWhell(e, stateManager, gantt), e.cancelable && ("none" === gantt.parsedOptions.overscrollBehavior || Math.abs(deltaY) >= Math.abs(deltaX) && 0 !== deltaY && isVerticalScrollable(deltaY, stateManager) || Math.abs(deltaY) <= Math.abs(deltaX) && 0 !== deltaX && isHorizontalScrollable(deltaX, stateManager)) && e.preventDefault();
30
+ }
31
+ };
32
+ vglobal.addEventListener("touchmove", globalTouchMoveCallback, {
33
+ passive: !1
34
+ }), eventManager.globalEventListeners.push({
35
+ name: "touchmove",
36
+ env: "vglobal",
37
+ callback: globalTouchMoveCallback
38
+ });
39
+ const globalTouchEndCallback = e => {
40
+ var _a, _b;
41
+ if (eventManager.touchEnd = !0, eventManager.isLongTouch = !1, eventManager.isTouchdown && isTouchEvent(e)) {
42
+ if ((null === (_a = eventManager.touchMovePoints) || void 0 === _a ? void 0 : _a.length) && (eventManager.touchMovePoints.length > 4 && eventManager.touchMovePoints.shift(),
43
+ eventManager.touchMovePoints.push({
44
+ x: e.changedTouches[0].pageX,
45
+ y: e.changedTouches[0].pageY,
46
+ timestamp: Date.now()
47
+ }), eventManager._enableTableScroll)) {
48
+ const firstPoint = eventManager.touchMovePoints[0], lastPoint = eventManager.touchMovePoints[(null === (_b = eventManager.touchMovePoints) || void 0 === _b ? void 0 : _b.length) - 1], vX = (lastPoint.x - firstPoint.x) / (lastPoint.timestamp - firstPoint.timestamp), vY = (lastPoint.y - firstPoint.y) / (lastPoint.timestamp - firstPoint.timestamp);
49
+ eventManager.inertiaScroll.startInertia(vX, vY, .95), gantt.eventManager.inertiaScroll.setScrollHandle(((dx, dy) => {
50
+ handleWhell({
51
+ deltaX: -dx,
52
+ deltaY: -dy
53
+ }, gantt.stateManager, gantt);
54
+ }));
55
+ }
56
+ eventManager.isTouchdown = !1, eventManager.isTouchMove = !1, eventManager.isDraging = !1,
57
+ eventManager.touchMovePoints = [];
58
+ }
59
+ };
60
+ vglobal.addEventListener("touchend", globalTouchEndCallback), eventManager.globalEventListeners.push({
61
+ name: "touchend",
62
+ env: "vglobal",
63
+ callback: globalTouchEndCallback
64
+ });
65
+ const globalTouchCancelCallback = e => {
66
+ eventManager.touchEnd = !0, eventManager.isLongTouch = !1, eventManager.isTouchdown && (eventManager.isTouchdown = !1,
67
+ eventManager.isTouchMove = !1, eventManager.touchMovePoints = [], eventManager.isDraging = !1);
68
+ };
69
+ vglobal.addEventListener("touchcancel", globalTouchCancelCallback), eventManager.globalEventListeners.push({
70
+ name: "touchcancel",
71
+ env: "vglobal",
72
+ callback: globalTouchCancelCallback
73
+ });
74
+ }
75
+
76
+ function isTouchEvent(e) {
77
+ return !!e.changedTouches;
78
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/event/touch.ts"],"names":[],"mappings":"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","file":"touch.js","sourcesContent":["import { vglobal } from '@visactor/vtable/es/vrender';\nimport type { FederatedPointerEvent } from '@visactor/vtable/es/vrender';\nimport { handleWhell, isHorizontalScrollable, isVerticalScrollable } from './scroll';\nimport type { EventManager } from './event-manager';\n\nexport function bindTouchListener(eventManager: EventManager) {\n const gantt = eventManager._gantt;\n const stateManager = gantt.stateManager;\n const scenegraph = gantt.scenegraph;\n if ((vglobal as any).envContribution.supportsTouchEvents === false) {\n return;\n }\n // 阻止右键事件\n vglobal.addEventListener(\n 'contextmenu',\n e => {\n e.stopPropagation();\n e.preventDefault();\n },\n // 捕获阶段就阻止\n { capture: true }\n );\n // deal width touch scrolling in mobile devices\n eventManager.touchMovePoints = [];\n gantt.scenegraph.ganttGroup.addEventListener('touchstart', (e: FederatedPointerEvent) => {\n if (\n e.target.isChildOf(scenegraph.scrollbarComponent.vScrollBar) ||\n e.target.isChildOf(scenegraph.scrollbarComponent.hScrollBar)\n ) {\n return;\n }\n eventManager.isTouchdown = true;\n eventManager.touchMovePoints.push({\n x: e.page.x,\n y: e.page.y,\n timestamp: Date.now()\n });\n });\n\n const globalTouchMoveCallback = (e: TouchEvent) => {\n if (eventManager.isLongTouch) {\n e.preventDefault();\n }\n if (!eventManager.isTouchdown || !isTouchEvent(e)) {\n return;\n }\n eventManager.isTouchMove = true;\n\n // collect four last touch pisitions\n if (eventManager.touchMovePoints.length > 4) {\n eventManager.touchMovePoints.shift();\n }\n eventManager.touchMovePoints.push({\n x: e.changedTouches[0].pageX,\n y: e.changedTouches[0].pageY,\n timestamp: Date.now()\n });\n if (eventManager._enableTableScroll) {\n const deltaX =\n -eventManager.touchMovePoints[eventManager.touchMovePoints.length - 1].x +\n eventManager.touchMovePoints[eventManager.touchMovePoints.length - 2].x;\n const deltaY =\n -eventManager.touchMovePoints[eventManager.touchMovePoints.length - 1].y +\n eventManager.touchMovePoints[eventManager.touchMovePoints.length - 2].y;\n handleWhell(e as any, stateManager, gantt);\n\n if (\n e.cancelable &&\n (gantt.parsedOptions.overscrollBehavior === 'none' ||\n (Math.abs(deltaY) >= Math.abs(deltaX) && deltaY !== 0 && isVerticalScrollable(deltaY, stateManager)) ||\n (Math.abs(deltaY) <= Math.abs(deltaX) && deltaX !== 0 && isHorizontalScrollable(deltaX, stateManager)))\n ) {\n e.preventDefault();\n }\n }\n };\n vglobal.addEventListener('touchmove', globalTouchMoveCallback, { passive: false });\n eventManager.globalEventListeners.push({\n name: 'touchmove',\n env: 'vglobal',\n callback: globalTouchMoveCallback\n });\n\n const globalTouchEndCallback = (e: TouchEvent) => {\n eventManager.touchEnd = true;\n eventManager.isLongTouch = false;\n if (!eventManager.isTouchdown || !isTouchEvent(e)) {\n return;\n }\n\n if (eventManager.touchMovePoints?.length) {\n if (eventManager.touchMovePoints.length > 4) {\n eventManager.touchMovePoints.shift();\n }\n eventManager.touchMovePoints.push({\n x: e.changedTouches[0].pageX,\n y: e.changedTouches[0].pageY,\n timestamp: Date.now()\n });\n // compute inertia parameter\n\n if (eventManager._enableTableScroll) {\n const firstPoint = eventManager.touchMovePoints[0];\n const lastPoint = eventManager.touchMovePoints[eventManager.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 eventManager.inertiaScroll.startInertia(vX, vY, 0.95);\n gantt.eventManager.inertiaScroll.setScrollHandle((dx: number, dy: number) => {\n handleWhell({ deltaX: -dx, deltaY: -dy } as any, gantt.stateManager, gantt);\n });\n }\n }\n\n eventManager.isTouchdown = false;\n eventManager.isTouchMove = false;\n eventManager.isDraging = false;\n eventManager.touchMovePoints = [];\n };\n vglobal.addEventListener('touchend', globalTouchEndCallback);\n eventManager.globalEventListeners.push({\n name: 'touchend',\n env: 'vglobal',\n callback: globalTouchEndCallback\n });\n\n const globalTouchCancelCallback = (e: TouchEvent) => {\n eventManager.touchEnd = true;\n eventManager.isLongTouch = false;\n\n if (!eventManager.isTouchdown) {\n return;\n }\n eventManager.isTouchdown = false;\n eventManager.isTouchMove = false;\n eventManager.touchMovePoints = [];\n eventManager.isDraging = false;\n };\n vglobal.addEventListener('touchcancel', globalTouchCancelCallback);\n eventManager.globalEventListeners.push({\n name: 'touchcancel',\n env: 'vglobal',\n callback: globalTouchCancelCallback\n });\n}\n\nfunction isTouchEvent(e: TouchEvent | MouseEvent): e is TouchEvent {\n return !!(e as TouchEvent).changedTouches;\n}\n"]}
@@ -0,0 +1,63 @@
1
+ import type { Group } from '@visactor/vtable/es/vrender';
2
+ import type { Gantt } from './Gantt';
3
+ import { type IMarkLine, type IPosition, type IScrollStyle, type ITimelineDateInfo, type ITimelineScale } from './ts-types';
4
+ export declare const defaultTaskBarStyle: {
5
+ barColor: string;
6
+ completedBarColor: string;
7
+ width: number;
8
+ cornerRadius: number;
9
+ borderWidth: number;
10
+ fontFamily: string;
11
+ fontSize: number;
12
+ };
13
+ declare const isNode: boolean;
14
+ export declare const DayTimes: number;
15
+ export declare function getDateIndexByX(x: number, gantt: Gantt): number;
16
+ export declare function generateMarkLine(markLine?: boolean | IMarkLine | IMarkLine[]): IMarkLine[];
17
+ export declare function getHorizontalScrollBarSize(scrollStyle?: IScrollStyle): number;
18
+ export declare function getVerticalScrollBarSize(scrollStyle?: IScrollStyle): number;
19
+ export { isNode };
20
+ export declare function initOptions(gantt: Gantt): void;
21
+ export declare function updateOptionsWhenScaleChanged(gantt: Gantt): void;
22
+ export declare function generateTimeLineDate(currentDate: Date, endDate: Date, scale: ITimelineScale): ITimelineDateInfo[];
23
+ export declare function getTextPos(padding: number[], textAlign: CanvasTextAlign, textBaseline: CanvasTextBaseline, width: number, height: number): {
24
+ x: number;
25
+ y: number;
26
+ };
27
+ export declare function convertProgress(progress: number | string): number;
28
+ export declare function createSplitLineAndResizeLine(gantt: Gantt): void;
29
+ export declare function updateSplitLineAndResizeLine(gantt: Gantt): void;
30
+ export declare function findRecordByTaskKey(records: any[], taskKeyField: string, taskKey: string | number | (string | number)[], childrenField?: string): {
31
+ record: any;
32
+ index: number[];
33
+ } | undefined;
34
+ export declare function clearRecordLinkInfos(records: any[], childrenField?: string): void;
35
+ export declare function clearRecordShowIndex(records: any[], childrenField?: string): void;
36
+ export declare function getTaskIndexsByTaskY(y: number, gantt: Gantt): {
37
+ task_index: number;
38
+ sub_task_index: number;
39
+ };
40
+ export declare function computeRowsCountByRecordDateForCompact(gantt: Gantt, record: any): number;
41
+ export declare function computeRowsCountByRecordDate(gantt: Gantt, record: any): number;
42
+ export declare function getSubTaskRowIndexByRecordDate(record: any, childIndex: number, startDateField: string, endDateField: string): number;
43
+ export declare function formatRecordDateConsiderHasHour(gantt: Gantt, record: any): {
44
+ startDate: Date;
45
+ endDate: Date;
46
+ };
47
+ export declare function updateOptionsWhenRecordChanged(gantt: Gantt): void;
48
+ export declare function updateOptionsWhenDateRangeChanged(gantt: Gantt): void;
49
+ export declare function updateOptionsWhenMarkLineChanged(gantt: Gantt): void;
50
+ export declare function _getTaskInfoByXYForCreateSchedule(eventX: number, eventY: number, gantt: Gantt): {
51
+ startDate: Date;
52
+ endDate: Date;
53
+ taskDays: number;
54
+ progress: number;
55
+ taskRecord: any;
56
+ };
57
+ export declare function getNodeClickPos(marklineIconNode: Group, gantt: Gantt): IPosition;
58
+ export declare function judgeIfHasMarkLine(data: {
59
+ startDate: Date;
60
+ endDate: Date;
61
+ }, markLine: IMarkLine[]): boolean;
62
+ export declare function checkHasChildTasks(gantt: Gantt, taskIndex: number, subTaskIndex?: number): boolean;
63
+ export declare function initProjectTaskTimes(gantt: Gantt): void;