@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,631 @@
1
+ import { isValid } from "@visactor/vutils";
2
+
3
+ import { InteractionState, GANTT_EVENT_TYPE, DependencyType, TasksShowMode, TaskType } from "../ts-types";
4
+
5
+ import { syncEditCellFromTable, syncScrollStateFromTable, syncScrollStateToTable, syncDragOrderFromTable, syncTreeChangeFromTable, syncSortFromTable, syncTableWidthFromTable } from "./gantt-table-sync";
6
+
7
+ import { clearRecordShowIndex, findRecordByTaskKey, getDateIndexByX, getTaskIndexsByTaskY, getTextPos } from "../gantt-helper";
8
+
9
+ import { debounce } from "../tools/debounce";
10
+
11
+ import { TASKBAR_HOVER_ICON_WIDTH } from "../scenegraph/task-bar";
12
+
13
+ import { Inertia } from "../tools/inertia";
14
+
15
+ import { createDateAtMidnight, getEndDateByTimeUnit, getStartDateByTimeUnit, toBoxArray, parseStringTemplate } from "../tools/util";
16
+
17
+ export class StateManager {
18
+ constructor(gantt) {
19
+ var _a;
20
+ this.interactionState = InteractionState.default, this.resetInteractionState = debounce((() => {
21
+ this.updateInteractionState(InteractionState.default);
22
+ }), 100), this._gantt = gantt, this.scroll = {
23
+ horizontalBarPos: 0,
24
+ verticalBarPos: 0
25
+ }, this.moveTaskBar = {
26
+ targetStartX: null,
27
+ targetStartY: null,
28
+ deltaX: 0,
29
+ deltaY: 0,
30
+ startOffsetY: null,
31
+ startX: null,
32
+ startY: null,
33
+ moving: !1,
34
+ target: null,
35
+ moveTaskBarXSpeed: 0,
36
+ moveTaskBarXInertia: new Inertia
37
+ }, this.hoverTaskBar = {
38
+ targetStartX: null,
39
+ startX: null,
40
+ target: null
41
+ }, this.marklineIcon = {
42
+ target: null
43
+ }, this.selectedTaskBar = {
44
+ target: null
45
+ }, this.resizeTaskBar = {
46
+ startOffsetY: null,
47
+ targetStartX: null,
48
+ targetEndX: null,
49
+ startX: null,
50
+ startY: null,
51
+ target: null,
52
+ resizing: !1,
53
+ onIconName: ""
54
+ }, this.adjustProgressBar = {
55
+ startX: null,
56
+ startY: null,
57
+ target: null,
58
+ adjusting: !1,
59
+ originalProgress: 0
60
+ }, this.resizeTableWidth = {
61
+ lastX: null,
62
+ resizing: !1
63
+ }, this.selectedDenpendencyLink = {
64
+ link: null
65
+ }, this.creatingDenpendencyLink = {
66
+ startClickedPoint: null,
67
+ startX: null,
68
+ startY: null,
69
+ startOffsetY: null,
70
+ targetStartX: null,
71
+ creating: !1,
72
+ firstTaskBarPosition: "left",
73
+ secondTaskBarPosition: "left",
74
+ secondTaskBarNode: null,
75
+ lastHighLightLinkPoint: null
76
+ }, this.updateVerticalScrollBar = this.updateVerticalScrollBar.bind(this), this.updateHorizontalScrollBar = this.updateHorizontalScrollBar.bind(this),
77
+ syncScrollStateFromTable(this._gantt), syncEditCellFromTable(this._gantt), syncDragOrderFromTable(this._gantt),
78
+ syncTreeChangeFromTable(this._gantt), syncSortFromTable(this._gantt), "auto" !== (null === (_a = this._gantt.options.taskListTable) || void 0 === _a ? void 0 : _a.tableWidth) && -1 !== this._gantt.taskTableWidth || syncTableWidthFromTable(this._gantt);
79
+ }
80
+ setScrollTop(top, triggerEvent = !0) {
81
+ const totalHeight = this._gantt.getAllRowsHeight();
82
+ top = Math.max(0, Math.min(top, totalHeight - this._gantt.scenegraph.height)), top = Math.ceil(top);
83
+ const oldVerticalBarPos = this.scroll.verticalBarPos;
84
+ this.scroll.verticalBarPos = top, isValid(this.scroll.verticalBarPos) && !isNaN(this.scroll.verticalBarPos) || (this.scroll.verticalBarPos = 0),
85
+ this._gantt.scenegraph.setY(-top);
86
+ const yRatio = top / (totalHeight - this._gantt.scenegraph.height);
87
+ this._gantt.scenegraph.scrollbarComponent.updateVerticalScrollBarPos(yRatio), oldVerticalBarPos !== top && triggerEvent && (syncScrollStateToTable(this._gantt),
88
+ this._gantt.fireListeners(GANTT_EVENT_TYPE.SCROLL, {
89
+ scrollTop: this.scroll.verticalBarPos,
90
+ scrollLeft: this.scroll.horizontalBarPos,
91
+ scrollDirection: "vertical",
92
+ scrollRatioY: yRatio
93
+ }));
94
+ }
95
+ get scrollLeft() {
96
+ return this.scroll.horizontalBarPos;
97
+ }
98
+ get scrollTop() {
99
+ return this.scroll.verticalBarPos;
100
+ }
101
+ setScrollLeft(left, triggerEvent = !0) {
102
+ const totalWidth = this._gantt.getAllDateColsWidth();
103
+ left = Math.max(0, Math.min(left, totalWidth - this._gantt.scenegraph.width)), left = Math.ceil(left);
104
+ const oldHorizontalBarPos = this.scroll.horizontalBarPos;
105
+ this.scroll.horizontalBarPos = left, isValid(this.scroll.horizontalBarPos) && !isNaN(this.scroll.horizontalBarPos) || (this.scroll.horizontalBarPos = 0),
106
+ this._gantt.scenegraph.setX(-left);
107
+ const xRatio = left / (totalWidth - this._gantt.scenegraph.width);
108
+ this._gantt.scenegraph.scrollbarComponent.updateHorizontalScrollBarPos(xRatio),
109
+ oldHorizontalBarPos !== left && triggerEvent && this._gantt.fireListeners(GANTT_EVENT_TYPE.SCROLL, {
110
+ scrollTop: this.scroll.verticalBarPos,
111
+ scrollLeft: this.scroll.horizontalBarPos,
112
+ scrollDirection: "horizontal",
113
+ scrollRatioX: xRatio
114
+ });
115
+ }
116
+ updateInteractionState(mode) {
117
+ if (this.interactionState === mode) return;
118
+ const oldState = this.interactionState;
119
+ this.interactionState = mode, oldState === InteractionState.scrolling && InteractionState.default;
120
+ }
121
+ updateVerticalScrollBar(yRatio) {
122
+ const totalHeight = this._gantt.getAllRowsHeight();
123
+ this.scroll.verticalBarPos;
124
+ this.scroll.verticalBarPos = Math.ceil(yRatio * (totalHeight - this._gantt.scenegraph.height)),
125
+ isValid(this.scroll.verticalBarPos) && !isNaN(this.scroll.verticalBarPos) || (this.scroll.verticalBarPos = 0),
126
+ this._gantt.scenegraph.setY(-this.scroll.verticalBarPos, 1 === yRatio), syncScrollStateToTable(this._gantt),
127
+ this._gantt.fireListeners(GANTT_EVENT_TYPE.SCROLL, {
128
+ scrollTop: this.scroll.verticalBarPos,
129
+ scrollLeft: this.scroll.horizontalBarPos,
130
+ scrollDirection: "vertical",
131
+ scrollRatioY: yRatio
132
+ });
133
+ }
134
+ updateHorizontalScrollBar(xRatio) {
135
+ const totalWidth = this._gantt.getAllDateColsWidth();
136
+ this.scroll.horizontalBarPos;
137
+ this.scroll.horizontalBarPos = Math.ceil(xRatio * (totalWidth - this._gantt.scenegraph.width)),
138
+ isValid(this.scroll.horizontalBarPos) && !isNaN(this.scroll.horizontalBarPos) || (this.scroll.horizontalBarPos = 0),
139
+ this._gantt.scenegraph.setX(-this.scroll.horizontalBarPos, 1 === xRatio), this._gantt.fireListeners(GANTT_EVENT_TYPE.SCROLL, {
140
+ scrollTop: this.scroll.verticalBarPos,
141
+ scrollLeft: this.scroll.horizontalBarPos,
142
+ scrollDirection: "horizontal",
143
+ scrollRatioY: xRatio
144
+ });
145
+ }
146
+ startMoveTaskBar(target, x, y, offsetY) {
147
+ "task-bar-hover-shadow" === target.name && (target = target.parent), this.moveTaskBar.moving = !0,
148
+ this.moveTaskBar.target = target, this.moveTaskBar.targetStartX = target.attribute.x,
149
+ this.moveTaskBar.targetStartY = target.attribute.y, this.moveTaskBar.startX = x,
150
+ this.moveTaskBar.startY = y, this.moveTaskBar.startOffsetY = offsetY, target.setAttribute("zIndex", 1e4);
151
+ }
152
+ isMoveingTaskBar() {
153
+ return this.moveTaskBar.moving;
154
+ }
155
+ endMoveTaskBar() {
156
+ this.moveTaskBar.moveTaskBarXInertia.isInertiaScrolling() && this.moveTaskBar.moveTaskBarXInertia.endInertia();
157
+ const deltaX = this.moveTaskBar.deltaX, deltaY = this.moveTaskBar.deltaY, target = this.moveTaskBar.target;
158
+ if (Math.abs(deltaX) >= 1 || Math.abs(deltaY) >= 1) {
159
+ const oldRowIndex = target.task_index, taskIndex = target.task_index, sub_task_index = target.sub_task_index, {startDate: oldStartDate, endDate: oldEndDate} = this._gantt.getTaskInfoByTaskListIndex(taskIndex, sub_task_index), targetEndY = this.moveTaskBar.targetStartY + this._gantt.parsedOptions.rowHeight * Math.round(deltaY / this._gantt.parsedOptions.rowHeight), milestoneTaskbarHeight = this._gantt.parsedOptions.taskBarMilestoneStyle.width, testDateX = this.moveTaskBar.target.attribute.x + (target.record.type === TaskType.MILESTONE ? milestoneTaskbarHeight / 2 : 0), startDateColIndex = getDateIndexByX(testDateX - this._gantt.stateManager.scroll.horizontalBarPos, this._gantt), timelineStartDate = this._gantt.parsedOptions.reverseSortedTimelineScales[0].timelineDates[startDateColIndex];
160
+ if (!timelineStartDate) return;
161
+ const newStartDate = timelineStartDate.startDate, newEndDate = new Date(newStartDate.getTime() + (createDateAtMidnight(oldEndDate).getTime() - createDateAtMidnight(oldStartDate).getTime()));
162
+ let dateChanged;
163
+ if (createDateAtMidnight(oldStartDate).getTime() !== newStartDate.getTime()) {
164
+ dateChanged = createDateAtMidnight(oldStartDate).getTime() > newStartDate.getTime() ? "left" : "right",
165
+ this._gantt._updateStartEndDateToTaskRecord(newStartDate, newEndDate, taskIndex, sub_task_index);
166
+ const newRecord = this._gantt.getRecordByIndex(taskIndex, sub_task_index);
167
+ this._gantt.hasListeners(GANTT_EVENT_TYPE.CHANGE_DATE_RANGE) && this._gantt.fireListeners(GANTT_EVENT_TYPE.CHANGE_DATE_RANGE, {
168
+ startDate: newRecord[this._gantt.parsedOptions.startDateField],
169
+ endDate: newRecord[this._gantt.parsedOptions.endDateField],
170
+ oldStartDate: oldStartDate,
171
+ oldEndDate: oldEndDate,
172
+ index: taskIndex,
173
+ record: newRecord
174
+ });
175
+ const newRowIndex = getTaskIndexsByTaskY(targetEndY, this._gantt).task_index;
176
+ this._gantt.hasListeners(GANTT_EVENT_TYPE.MOVE_END_TASK_BAR) && this._gantt.fireListeners(GANTT_EVENT_TYPE.MOVE_END_TASK_BAR, {
177
+ startDate: newRecord[this._gantt.parsedOptions.startDateField],
178
+ endDate: newRecord[this._gantt.parsedOptions.endDateField],
179
+ oldStartDate: oldStartDate,
180
+ oldEndDate: oldEndDate,
181
+ oldRowIndex: oldRowIndex,
182
+ newRowIndex: newRowIndex,
183
+ index: taskIndex,
184
+ record: newRecord
185
+ });
186
+ } else {
187
+ const newRecord = this._gantt.getRecordByIndex(taskIndex, sub_task_index), newRowIndex = getTaskIndexsByTaskY(targetEndY, this._gantt).task_index;
188
+ this._gantt.hasListeners(GANTT_EVENT_TYPE.MOVE_END_TASK_BAR) && this._gantt.fireListeners(GANTT_EVENT_TYPE.MOVE_END_TASK_BAR, {
189
+ startDate: newRecord[this._gantt.parsedOptions.startDateField],
190
+ endDate: newRecord[this._gantt.parsedOptions.endDateField],
191
+ oldStartDate: oldStartDate,
192
+ oldEndDate: oldEndDate,
193
+ oldRowIndex: oldRowIndex,
194
+ newRowIndex: newRowIndex,
195
+ index: newRowIndex,
196
+ record: newRecord
197
+ });
198
+ }
199
+ if (this._gantt.parsedOptions.tasksShowMode === TasksShowMode.Sub_Tasks_Arrange || this._gantt.parsedOptions.tasksShowMode === TasksShowMode.Sub_Tasks_Compact) {
200
+ const indexs = getTaskIndexsByTaskY(targetEndY, this._gantt);
201
+ this._gantt._dragOrderTaskRecord(target.task_index, target.sub_task_index, indexs.task_index, indexs.sub_task_index),
202
+ clearRecordShowIndex(this._gantt.records), this._gantt.taskListTableInstance.renderWithRecreateCells(),
203
+ this._gantt._syncPropsFromTable(), this._gantt.scenegraph.refreshTaskBarsAndGrid();
204
+ } else if (this._gantt.parsedOptions.tasksShowMode !== TasksShowMode.Tasks_Separate && Math.abs(Math.round(deltaY / this._gantt.parsedOptions.rowHeight)) >= 1) {
205
+ const indexs = getTaskIndexsByTaskY(targetEndY, this._gantt);
206
+ this._gantt._dragOrderTaskRecord(target.task_index, target.sub_task_index, indexs.task_index, indexs.sub_task_index),
207
+ this._gantt.parsedOptions.tasksShowMode === TasksShowMode.Sub_Tasks_Separate ? (this._gantt.taskListTableInstance.renderWithRecreateCells(),
208
+ this._gantt.scenegraph.refreshTaskBarsAndGrid()) : (this._gantt.scenegraph.taskBar.refresh(),
209
+ this._gantt.scenegraph.dependencyLink.refresh());
210
+ } else {
211
+ let newX = startDateColIndex >= 1 ? this._gantt.getDateColsWidth(0, startDateColIndex - 1) : 0;
212
+ if (target.record.type === TaskType.MILESTONE) {
213
+ newX -= this._gantt.parsedOptions.taskBarMilestoneStyle.width / 2;
214
+ }
215
+ if (moveTaskBar(target, newX - target.attribute.x, targetEndY - target.attribute.y, this),
216
+ "right" === dateChanged) {
217
+ let insertAfterNode = target;
218
+ for (;insertAfterNode.nextSibling && insertAfterNode.nextSibling.attribute.y === target.attribute.y && insertAfterNode.nextSibling.record[this._gantt.parsedOptions.startDateField] <= target.record[this._gantt.parsedOptions.startDateField]; ) insertAfterNode = insertAfterNode.nextSibling;
219
+ insertAfterNode !== target && insertAfterNode.parent.insertAfter(target, insertAfterNode);
220
+ } else if ("left" === dateChanged) {
221
+ let insertBeforeNode = target;
222
+ for (;insertBeforeNode.previousSibling && insertBeforeNode.previousSibling.attribute.y === target.attribute.y && insertBeforeNode.previousSibling.record[this._gantt.parsedOptions.startDateField] >= target.record[this._gantt.parsedOptions.startDateField]; ) insertBeforeNode = insertBeforeNode.previousSibling;
223
+ insertBeforeNode !== target && insertBeforeNode.parent.insertBefore(target, insertBeforeNode);
224
+ }
225
+ }
226
+ this._gantt.scenegraph.updateNextFrame();
227
+ }
228
+ this.moveTaskBar.moving = !1, this.selectedTaskBar.target !== target && target.setAttribute("zIndex", 0),
229
+ target.updateTextPosition(), this.moveTaskBar.target = null, this.moveTaskBar.deltaX = 0,
230
+ this.moveTaskBar.deltaY = 0, this.moveTaskBar.moveTaskBarXSpeed = 0;
231
+ }
232
+ dealTaskBarMove(e) {
233
+ var _a, _b, _c, _d, _e, _f;
234
+ const gantt = this._gantt;
235
+ let target = this.moveTaskBar.target;
236
+ target.setAttribute("zIndex", 1e4);
237
+ const x1 = gantt.eventManager.lastDragPointerXYOnWindow.x, dx = e.x - x1, y1 = gantt.eventManager.lastDragPointerXYOnWindow.y, dy = e.y - y1;
238
+ if (this.moveTaskBar.deltaX += dx, this.moveTaskBar.deltaY += dy, moveTaskBar(target, dx, dy, this),
239
+ target.attribute.x <= gantt.stateManager.scrollLeft && dx < 0) if (gantt.parsedOptions.moveTaskBarToExtendDateRange && 0 === gantt.stateManager.scrollLeft) {
240
+ null === (_a = this.moveTaskBar.moveTaskBarXInertia) || void 0 === _a || _a.endInertia();
241
+ const timeDiff = gantt.parsedOptions.reverseSortedTimelineScales[0].timelineDates[1].startDate.getTime() - gantt.parsedOptions.reverseSortedTimelineScales[0].timelineDates[0].startDate.getTime(), {unit: minTimeUnit, startOfWeek: startOfWeek} = gantt.parsedOptions.reverseSortedTimelineScales[0];
242
+ gantt.parsedOptions.minDate = getStartDateByTimeUnit(new Date(gantt.parsedOptions.reverseSortedTimelineScales[0].timelineDates[0].startDate.getTime() - timeDiff / 2), minTimeUnit, startOfWeek),
243
+ gantt.parsedOptions._minDateTime = null === (_b = gantt.parsedOptions.minDate) || void 0 === _b ? void 0 : _b.getTime(),
244
+ gantt._generateTimeLineDateMap(), gantt._updateSize(), gantt.scenegraph.refreshAll(),
245
+ target = this.moveTaskBar.target = gantt.scenegraph.taskBar.getTaskBarNodeByIndex(this.moveTaskBar.target.task_index, this.moveTaskBar.target.sub_task_index),
246
+ gantt.scrollLeft = gantt.parsedOptions.timelineColWidth - 1, gantt.eventManager.lastDragPointerXYOnWindow.x = e.x,
247
+ "milestone" === (null === (_c = target.record) || void 0 === _c ? void 0 : _c.type) ? moveTaskBar(target, gantt.scrollLeft - target.attribute.x, 0, this) : target.setAttribute("x", gantt.scrollLeft);
248
+ } else this.moveTaskBar.moveTaskBarXSpeed = -gantt.parsedOptions.timelineColWidth / 100,
249
+ this.moveTaskBar.moveTaskBarXInertia.startInertia(this.moveTaskBar.moveTaskBarXSpeed, 0, 1),
250
+ this.moveTaskBar.moveTaskBarXInertia.setScrollHandle(((dx, dy) => {
251
+ this.moveTaskBar.deltaX += dx, this.moveTaskBar.deltaY += dy, moveTaskBar(target, dx, dy, this),
252
+ gantt.stateManager.setScrollLeft(target.attribute.x), 0 === gantt.stateManager.scrollLeft && this.moveTaskBar.moveTaskBarXInertia.endInertia();
253
+ })); else if (target.attribute.x + target.attribute.width >= gantt.stateManager.scrollLeft + gantt.tableNoFrameWidth && dx > 0) if (gantt.parsedOptions.moveTaskBarToExtendDateRange && gantt.stateManager.scrollLeft + gantt.tableNoFrameWidth === gantt.getAllDateColsWidth()) {
254
+ null === (_d = this.moveTaskBar.moveTaskBarXInertia) || void 0 === _d || _d.endInertia();
255
+ const timelineDates = gantt.parsedOptions.reverseSortedTimelineScales[0].timelineDates, timeDiff = timelineDates[1].startDate.getTime() - timelineDates[0].startDate.getTime(), {unit: minTimeUnit, startOfWeek: startOfWeek, step: step} = gantt.parsedOptions.reverseSortedTimelineScales[0];
256
+ if (gantt.parsedOptions.maxDate = getEndDateByTimeUnit(gantt.parsedOptions.minDate, new Date(timelineDates[timelineDates.length - 1].endDate.getTime() + timeDiff / 2), minTimeUnit, step),
257
+ gantt.parsedOptions._maxDateTime = null === (_e = gantt.parsedOptions.maxDate) || void 0 === _e ? void 0 : _e.getTime(),
258
+ gantt._generateTimeLineDateMap(), gantt._updateSize(), gantt.scenegraph.refreshAll(),
259
+ target = this.moveTaskBar.target = gantt.scenegraph.taskBar.getTaskBarNodeByIndex(this.moveTaskBar.target.task_index, this.moveTaskBar.target.sub_task_index),
260
+ gantt.scrollLeft += 1, gantt.eventManager.lastDragPointerXYOnWindow.x = e.x, "milestone" === (null === (_f = target.record) || void 0 === _f ? void 0 : _f.type)) {
261
+ const newX = gantt.scrollLeft + gantt.tableNoFrameWidth - target.attribute.width;
262
+ moveTaskBar(target, newX - target.attribute.x, 0, this);
263
+ } else target.setAttribute("x", gantt.scrollLeft + gantt.tableNoFrameWidth - target.attribute.width);
264
+ } else this.moveTaskBar.moveTaskBarXSpeed = gantt.parsedOptions.timelineColWidth / 100,
265
+ this.moveTaskBar.moveTaskBarXInertia.startInertia(this.moveTaskBar.moveTaskBarXSpeed, 0, 1),
266
+ this.moveTaskBar.moveTaskBarXInertia.setScrollHandle(((dx, dy) => {
267
+ this.moveTaskBar.deltaX += dx, this.moveTaskBar.deltaY += dy, moveTaskBar(target, dx, dy, this),
268
+ gantt.stateManager.setScrollLeft(target.attribute.x + target.attribute.width - gantt.tableNoFrameWidth),
269
+ gantt.stateManager.scrollLeft === gantt.getAllDateColsWidth() - gantt.tableNoFrameWidth && this.moveTaskBar.moveTaskBarXInertia.endInertia();
270
+ })); else this.moveTaskBar.moveTaskBarXInertia.isInertiaScrolling() ? this.moveTaskBar.moveTaskBarXInertia.endInertia() : this.moveTaskBar.moveTaskBarXSpeed = 0;
271
+ gantt.scenegraph.updateNextFrame();
272
+ }
273
+ startResizeTaskBar(target, x, y, startOffsetY, onIconName) {
274
+ this.resizeTaskBar.onIconName = onIconName, this.resizeTaskBar.resizing = !0, this.resizeTaskBar.target = target,
275
+ this.resizeTaskBar.targetStartX = target.attribute.x, this.resizeTaskBar.targetEndX = target.attribute.x + target.attribute.width,
276
+ this.resizeTaskBar.startX = x, this.resizeTaskBar.startY = y, this.resizeTaskBar.startOffsetY = startOffsetY;
277
+ }
278
+ isResizingTaskBar() {
279
+ return this.resizeTaskBar.resizing;
280
+ }
281
+ endResizeTaskBar(x) {
282
+ const direction = this._gantt.stateManager.resizeTaskBar.onIconName, deltaX = x - this.resizeTaskBar.startX;
283
+ if (Math.abs(deltaX) >= 1) {
284
+ const colIndex = getDateIndexByX(("left" === direction ? this.resizeTaskBar.target.attribute.x : this.resizeTaskBar.target.attribute.x + this.resizeTaskBar.target.attribute.width) - this._gantt.stateManager.scroll.horizontalBarPos, this._gantt), timelineDate = this._gantt.parsedOptions.reverseSortedTimelineScales[0].timelineDates[colIndex];
285
+ if (!timelineDate) return;
286
+ const targetDate = "left" === direction ? timelineDate.startDate : timelineDate.endDate, taskBarGroup = this.resizeTaskBar.target, clipGroupBox = taskBarGroup.clipGroupBox, rect = taskBarGroup.barRect, progressRect = taskBarGroup.progressRect, textLabel = taskBarGroup.textLabel, taskIndex = taskBarGroup.task_index, sub_task_index = taskBarGroup.sub_task_index, {taskDays: taskDays, progress: progress, startDate: oldStartDate, endDate: oldEndDate} = this._gantt.getTaskInfoByTaskListIndex(taskIndex, sub_task_index);
287
+ let dateChanged = !1;
288
+ if ("left" === direction ? (this._gantt._updateStartDateToTaskRecord(targetDate, taskIndex, sub_task_index),
289
+ targetDate.getTime() !== new Date(oldStartDate).getTime() && (dateChanged = !0)) : (this._gantt._updateEndDateToTaskRecord(targetDate, taskIndex, sub_task_index),
290
+ targetDate.getTime() !== new Date(oldEndDate).getTime() && (dateChanged = !0)),
291
+ this._gantt.parsedOptions.tasksShowMode === TasksShowMode.Sub_Tasks_Arrange || this._gantt.parsedOptions.tasksShowMode === TasksShowMode.Sub_Tasks_Compact) this._gantt.taskListTableInstance.renderWithRecreateCells(),
292
+ this._gantt._syncPropsFromTable(), this._gantt.scenegraph.refreshTaskBarsAndGrid(); else {
293
+ if ("left" === direction) {
294
+ const newX = colIndex >= 1 ? this._gantt.getDateColsWidth(0, colIndex - 1) : 0;
295
+ taskBarGroup.setAttribute("x", newX), taskBarGroup.setAttribute("width", this.resizeTaskBar.targetEndX - newX);
296
+ } else if ("right" === direction) {
297
+ const newEndX = this._gantt.getDateColsWidth(0, colIndex);
298
+ taskBarGroup.setAttribute("width", newEndX - this.resizeTaskBar.targetStartX);
299
+ }
300
+ if (clipGroupBox.setAttribute("width", taskBarGroup.attribute.width), null == rect || rect.setAttribute("width", taskBarGroup.attribute.width),
301
+ null == progressRect || progressRect.setAttribute("width", progress / 100 * taskBarGroup.attribute.width),
302
+ textLabel) {
303
+ const {textAlign: textAlign, textBaseline: textBaseline, padding: padding} = this._gantt.parsedOptions.taskBarLabelStyle, position = getTextPos(toBoxArray(padding), textAlign, textBaseline, taskBarGroup.attribute.width, taskBarGroup.attribute.height);
304
+ textLabel.setAttribute("maxLineWidth", taskBarGroup.attribute.width - 2 * TASKBAR_HOVER_ICON_WIDTH),
305
+ textLabel.setAttribute("x", position.x);
306
+ }
307
+ this._gantt.scenegraph.refreshRecordLinkNodes(taskIndex, sub_task_index, taskBarGroup, 0),
308
+ this.showTaskBarHover(), reCreateCustomNode(this._gantt, taskBarGroup, taskIndex, sub_task_index),
309
+ taskBarGroup.setAttribute("zIndex", 0);
310
+ }
311
+ if (taskBarGroup.updateTextPosition(), this.resizeTaskBar.resizing = !1, this.resizeTaskBar.target = null,
312
+ dateChanged && this._gantt.hasListeners(GANTT_EVENT_TYPE.CHANGE_DATE_RANGE)) {
313
+ const newRecord = this._gantt.getRecordByIndex(taskIndex, sub_task_index);
314
+ this._gantt.fireListeners(GANTT_EVENT_TYPE.CHANGE_DATE_RANGE, {
315
+ startDate: newRecord[this._gantt.parsedOptions.startDateField],
316
+ endDate: newRecord[this._gantt.parsedOptions.endDateField],
317
+ oldStartDate: oldStartDate,
318
+ oldEndDate: oldEndDate,
319
+ index: taskIndex,
320
+ record: newRecord
321
+ });
322
+ }
323
+ this._gantt.scenegraph.updateNextFrame();
324
+ }
325
+ }
326
+ dealTaskBarResize(e) {
327
+ const x1 = this._gantt.eventManager.lastDragPointerXYOnWindow.x, dx = e.x - x1, taskBarGroup = this._gantt.stateManager.resizeTaskBar.target;
328
+ let diffWidth = "left" === this._gantt.stateManager.resizeTaskBar.onIconName ? -dx : dx;
329
+ const taskBarSize = Math.max(1, taskBarGroup.attribute.width + diffWidth);
330
+ diffWidth = taskBarSize - taskBarGroup.attribute.width, resizeTaskBar(taskBarGroup, "left" === this._gantt.stateManager.resizeTaskBar.onIconName ? -diffWidth : 0, taskBarSize, this),
331
+ this._gantt.scenegraph.updateNextFrame();
332
+ }
333
+ startAdjustProgressBar(target, x, y) {
334
+ if (!target || !target.record) return;
335
+ const progressField = this._gantt.parsedOptions.progressField;
336
+ if (!progressField || void 0 === target.record[progressField] || null === target.record[progressField]) return;
337
+ const {progress: progress} = this._gantt.getTaskInfoByTaskListIndex(target.task_index, target.sub_task_index);
338
+ this.adjustProgressBar.target = target, this.adjustProgressBar.adjusting = !0, this.adjustProgressBar.startX = x,
339
+ this.adjustProgressBar.startY = y, this.adjustProgressBar.originalProgress = progress;
340
+ }
341
+ isAdjustingProgressBar() {
342
+ return this.adjustProgressBar.adjusting;
343
+ }
344
+ endAdjustProgressBar(x) {
345
+ const target = this.adjustProgressBar.target;
346
+ if (!target) return;
347
+ const taskBarWidth = target.attribute.width, deltaX = x - this.adjustProgressBar.startX, newProgress = Math.max(0, Math.min(100, this.adjustProgressBar.originalProgress + deltaX / taskBarWidth * 100));
348
+ if (Math.abs(newProgress - this.adjustProgressBar.originalProgress) >= .1) {
349
+ const taskIndex = target.task_index, subTaskIndex = target.sub_task_index, progressField = this._gantt.parsedOptions.progressField;
350
+ progressField && target.record && (target.record[progressField] = Math.round(10 * newProgress) / 10),
351
+ this.shouldSyncProgressToTable(taskIndex, subTaskIndex) && this._gantt._updateProgressToTaskRecord(Math.round(10 * newProgress) / 10, taskIndex, subTaskIndex),
352
+ this._gantt.scenegraph.taskBar.updateTaskBarNode(taskIndex, subTaskIndex);
353
+ const newRecord = this._gantt.getRecordByIndex(taskIndex, subTaskIndex);
354
+ this._gantt.hasListeners(GANTT_EVENT_TYPE.PROGRESS_UPDATE) && this._gantt.fireListeners(GANTT_EVENT_TYPE.PROGRESS_UPDATE, {
355
+ federatedEvent: null,
356
+ event: null,
357
+ index: taskIndex,
358
+ sub_task_index: subTaskIndex,
359
+ progress: Math.round(10 * newProgress) / 10,
360
+ oldProgress: Math.round(10 * this.adjustProgressBar.originalProgress) / 10,
361
+ record: newRecord
362
+ });
363
+ }
364
+ this.adjustProgressBar.adjusting = !1, this.adjustProgressBar.target = null, this.adjustProgressBar.startX = null,
365
+ this.adjustProgressBar.startY = null, this.adjustProgressBar.originalProgress = 0;
366
+ }
367
+ shouldSyncProgressToTable(taskIndex, subTaskIndex) {
368
+ const tasksShowMode = this._gantt.parsedOptions.tasksShowMode;
369
+ if (tasksShowMode === TasksShowMode.Tasks_Separate) return !0;
370
+ if (!isValid(subTaskIndex)) return !0;
371
+ switch (tasksShowMode) {
372
+ case TasksShowMode.Sub_Tasks_Inline:
373
+ case TasksShowMode.Sub_Tasks_Arrange:
374
+ case TasksShowMode.Sub_Tasks_Compact:
375
+ return !1;
376
+
377
+ case TasksShowMode.Sub_Tasks_Separate:
378
+ return !0;
379
+
380
+ case TasksShowMode.Project_Sub_Tasks_Inline:
381
+ const parentRecord = this._gantt.getRecordByIndex(taskIndex);
382
+ return !(!parentRecord || parentRecord.type !== TaskType.PROJECT) && "expand" === parentRecord.hierarchyState;
383
+
384
+ default:
385
+ return !1;
386
+ }
387
+ }
388
+ dealAdjustProgressBar(e) {
389
+ const target = this.adjustProgressBar.target;
390
+ if (!target || !this.adjustProgressBar.adjusting) return;
391
+ const taskBarWidth = target.attribute.width;
392
+ if (!taskBarWidth || taskBarWidth <= 0) return;
393
+ const deltaX = e.x - this.adjustProgressBar.startX, newProgress = Math.max(0, Math.min(100, this.adjustProgressBar.originalProgress + deltaX / taskBarWidth * 100));
394
+ if (target.progressRect && target.progressRect.setAttribute("width", taskBarWidth * newProgress / 100),
395
+ this._gantt.scenegraph.taskBar.hoverBarProgressHandle && this._gantt.scenegraph.taskBar.hoverBarProgressHandle.attribute.visibleAll && this._gantt.scenegraph.taskBar.hoverBarProgressHandle.setAttribute("x", taskBarWidth * newProgress / 100 - 6),
396
+ target.textLabel && target.record && this._gantt.parsedOptions.taskBarLabelText) {
397
+ const progressField = this._gantt.parsedOptions.progressField, tempRecord = Object.assign(Object.assign({}, target.record), {
398
+ [progressField]: Math.round(10 * newProgress) / 10
399
+ }), newText = parseStringTemplate(this._gantt.parsedOptions.taskBarLabelText, tempRecord);
400
+ target.textLabel.setAttribute("text", newText);
401
+ }
402
+ this._gantt.scenegraph && this._gantt.scenegraph.stage && this._gantt.scenegraph.stage.renderNextFrame();
403
+ }
404
+ startCreateDependencyLine(target, x, y, startOffsetY, position) {
405
+ this.resizeTaskBar.resizing = !1, this.creatingDenpendencyLink.creating = !0, this.creatingDenpendencyLink.startClickedPoint = target,
406
+ this.creatingDenpendencyLink.startX = x, this.creatingDenpendencyLink.startY = y,
407
+ this.creatingDenpendencyLink.startOffsetY = startOffsetY, this.creatingDenpendencyLink.firstTaskBarPosition = position,
408
+ this.highlightLinkPointNode(target);
409
+ }
410
+ isCreatingDependencyLine() {
411
+ return this.creatingDenpendencyLink.creating;
412
+ }
413
+ endCreateDependencyLine(offsetY) {
414
+ const taskKeyField = this._gantt.parsedOptions.taskKeyField, fromTaskIndex = this.selectedTaskBar.target.task_index, from_sub_task_id = this.selectedTaskBar.target.sub_task_index, toTaskIndex = this.creatingDenpendencyLink.secondTaskBarNode.task_index, to_sub_task_id = this.creatingDenpendencyLink.secondTaskBarNode.sub_task_index, link = {
415
+ linkedFromTaskKey: this._gantt.getRecordByIndex(fromTaskIndex, from_sub_task_id)[taskKeyField],
416
+ linkedToTaskKey: this._gantt.getRecordByIndex(toTaskIndex, to_sub_task_id)[taskKeyField],
417
+ type: "left" === this.creatingDenpendencyLink.firstTaskBarPosition && "left" === this.creatingDenpendencyLink.secondTaskBarPosition ? DependencyType.StartToStart : "right" === this.creatingDenpendencyLink.firstTaskBarPosition && "left" === this.creatingDenpendencyLink.secondTaskBarPosition ? DependencyType.FinishToStart : "right" === this.creatingDenpendencyLink.firstTaskBarPosition && "right" === this.creatingDenpendencyLink.secondTaskBarPosition ? DependencyType.FinishToFinish : DependencyType.StartToFinish
418
+ };
419
+ return this._gantt.addLink(link), this.hideTaskBarSelectedBorder(), this._gantt.scenegraph.updateNextFrame(),
420
+ this.creatingDenpendencyLink.creating = !1, link;
421
+ }
422
+ dealCreateDependencyLine(e) {
423
+ const x1 = this.creatingDenpendencyLink.startX, y1 = this.creatingDenpendencyLink.startY, dx = e.x - x1, dy = e.y - y1, startClickedPoint = this.creatingDenpendencyLink.startClickedPoint, x = startClickedPoint.attribute.x + startClickedPoint.attribute.width / 2, y = startClickedPoint.attribute.y + startClickedPoint.attribute.height / 2;
424
+ this._gantt.scenegraph.taskBar.updateCreatingDependencyLine(x, y, x + dx, y + dy),
425
+ this._gantt.scenegraph.updateNextFrame();
426
+ }
427
+ startResizeTableWidth(e) {
428
+ this.resizeTableWidth.resizing = !0, this.resizeTableWidth.lastX = e.pageX;
429
+ }
430
+ isResizingTableWidth() {
431
+ return this.resizeTableWidth.resizing;
432
+ }
433
+ endResizeTableWidth() {
434
+ this.resizeTableWidth.resizing = !1, this._gantt.zoomScaleManager && this._gantt.zoomScaleManager.handleTableWidthChange();
435
+ }
436
+ dealResizeTableWidth(e) {
437
+ var _a, _b;
438
+ if (!this.resizeTableWidth.resizing) return;
439
+ const deltaX = e.pageX - this.resizeTableWidth.lastX;
440
+ if (Math.abs(deltaX) >= 1) {
441
+ let width = this._gantt.taskTableWidth + deltaX;
442
+ const maxWidth = Math.min(this._gantt.taskListTableInstance.getAllColsWidth() + this._gantt.parsedOptions.outerFrameStyle.borderLineWidth, null !== (_a = this._gantt.options.taskListTable.maxTableWidth) && void 0 !== _a ? _a : 1e5), minWidth = Math.max(this._gantt.parsedOptions.outerFrameStyle.borderLineWidth, null !== (_b = this._gantt.options.taskListTable.minTableWidth) && void 0 !== _b ? _b : 0);
443
+ deltaX > 0 && width > maxWidth && (width = maxWidth), deltaX < 0 && width < minWidth && (width = minWidth),
444
+ this._gantt.taskTableWidth = width, this._gantt.element.style.left = this._gantt.taskTableWidth ? `${this._gantt.taskTableWidth}px` : "0px",
445
+ this._gantt.verticalSplitResizeLine.style.left = this._gantt.taskTableWidth ? this._gantt.taskTableWidth - 7 + "px" : "0px",
446
+ this._gantt._resize(), this.resizeTableWidth.lastX = e.pageX, this._gantt.zoomScaleManager && !this.resizeTableWidth.updateTimeout && (this.resizeTableWidth.updateTimeout = setTimeout((() => {
447
+ this._gantt.zoomScaleManager && this._gantt.zoomScaleManager.handleTableWidthChange(),
448
+ this.resizeTableWidth.updateTimeout = null;
449
+ }), 50));
450
+ }
451
+ }
452
+ showTaskBarHover() {
453
+ const target = this._gantt.stateManager.hoverTaskBar.target;
454
+ if (target) {
455
+ const x = target.attribute.x, y = target.attribute.y, width = target.attribute.width, height = target.attribute.height;
456
+ this._gantt.scenegraph.taskBar.showHoverBar(x, y, width, height, target), this._gantt.scenegraph.updateNextFrame();
457
+ }
458
+ }
459
+ hideTaskBarHover(e) {
460
+ this._gantt.stateManager.hoverTaskBar.target = null, this._gantt.scenegraph.taskBar.hideHoverBar(),
461
+ this._gantt.scenegraph.updateNextFrame();
462
+ }
463
+ showTaskBarSelectedBorder(target) {
464
+ var _a;
465
+ null === (_a = this._gantt.stateManager.selectedTaskBar.target) || void 0 === _a || _a.setAttribute("zIndex", 0),
466
+ this._gantt.stateManager.selectedTaskBar.target = target;
467
+ const linkCreatable = this._gantt.parsedOptions.dependencyLinkCreatable;
468
+ target.setAttribute("zIndex", 1e4);
469
+ const x = target.attribute.x, y = target.attribute.y, width = target.attribute.width, height = target.attribute.height;
470
+ this._gantt.scenegraph.taskBar.createSelectedBorder(x, y, width, height, target, linkCreatable),
471
+ this._gantt.scenegraph.updateNextFrame();
472
+ }
473
+ hideTaskBarSelectedBorder() {
474
+ var _a;
475
+ null === (_a = this._gantt.stateManager.selectedTaskBar.target) || void 0 === _a || _a.setAttribute("zIndex", 0),
476
+ this._gantt.stateManager.selectedTaskBar.target = null, this._gantt.scenegraph.taskBar.removeSelectedBorder(),
477
+ this._gantt.scenegraph.updateNextFrame();
478
+ }
479
+ showSecondTaskBarSelectedBorder() {
480
+ const target = this._gantt.stateManager.creatingDenpendencyLink.secondTaskBarNode, x = target.attribute.x, y = target.attribute.y, width = target.attribute.width, height = target.attribute.height;
481
+ this._gantt.scenegraph.taskBar.createSelectedBorder(x, y, width, height, target, !0),
482
+ this._gantt.scenegraph.updateNextFrame();
483
+ }
484
+ hideSecondTaskBarSelectedBorder() {
485
+ this._gantt.stateManager.creatingDenpendencyLink.secondTaskBarNode = null, this._gantt.scenegraph.taskBar.removeSecondSelectedBorder(),
486
+ this._gantt.scenegraph.updateNextFrame();
487
+ }
488
+ showDependencyLinkSelectedLine() {
489
+ const link = this._gantt.stateManager.selectedDenpendencyLink.link;
490
+ this._gantt.scenegraph.dependencyLink.createSelectedLinkLine(link);
491
+ const {taskKeyField: taskKeyField, dependencyLinks: dependencyLinks} = this._gantt.parsedOptions, {linkedToTaskKey: linkedToTaskKey, linkedFromTaskKey: linkedFromTaskKey, type: type} = link;
492
+ let linkFrom_index, linkFrom_sub_task_index, linkTo_index, linkTo_sub_task_index;
493
+ const linkedToTaskRecord = findRecordByTaskKey(this._gantt.records, taskKeyField, linkedToTaskKey), linkedFromTaskRecord = findRecordByTaskKey(this._gantt.records, taskKeyField, linkedFromTaskKey);
494
+ this._gantt.parsedOptions.tasksShowMode === TasksShowMode.Sub_Tasks_Inline || this._gantt.parsedOptions.tasksShowMode === TasksShowMode.Sub_Tasks_Separate || this._gantt.parsedOptions.tasksShowMode === TasksShowMode.Sub_Tasks_Arrange || this._gantt.parsedOptions.tasksShowMode === TasksShowMode.Sub_Tasks_Compact ? (linkFrom_index = linkedFromTaskRecord.index[0],
495
+ linkFrom_sub_task_index = linkedFromTaskRecord.index[1], linkTo_index = linkedToTaskRecord.index[0],
496
+ linkTo_sub_task_index = linkedToTaskRecord.index[1]) : (linkFrom_index = this._gantt.getTaskShowIndexByRecordIndex(linkedFromTaskRecord.index),
497
+ linkTo_index = this._gantt.getTaskShowIndexByRecordIndex(linkedToTaskRecord.index));
498
+ const fromTaskNode = this._gantt.scenegraph.taskBar.getTaskBarNodeByIndex(linkFrom_index, linkFrom_sub_task_index);
499
+ this._gantt.scenegraph.taskBar.createSelectedBorder(fromTaskNode.attribute.x, fromTaskNode.attribute.y, fromTaskNode.attribute.width, fromTaskNode.attribute.height, fromTaskNode, !1);
500
+ const toTaskNode = this._gantt.scenegraph.taskBar.getTaskBarNodeByIndex(linkTo_index, linkTo_sub_task_index);
501
+ this._gantt.scenegraph.taskBar.createSelectedBorder(toTaskNode.attribute.x, toTaskNode.attribute.y, toTaskNode.attribute.width, toTaskNode.attribute.height, toTaskNode, !1),
502
+ this._gantt.scenegraph.updateNextFrame();
503
+ }
504
+ hideDependencyLinkSelectedLine() {
505
+ this._gantt.stateManager.selectedDenpendencyLink.link = null, this._gantt.scenegraph.dependencyLink.removeSelectedLinkLine(),
506
+ this._gantt.scenegraph.taskBar.removeSelectedBorder(), this._gantt.scenegraph.updateNextFrame();
507
+ }
508
+ highlightLinkPointNode(linkPointGroup) {
509
+ if ((null == linkPointGroup ? void 0 : linkPointGroup.children.length) > 0) {
510
+ const circle = linkPointGroup.children[0];
511
+ circle.setAttribute("fill", this._gantt.parsedOptions.dependencyLinkLineCreatingPointStyle.fillColor),
512
+ circle.setAttribute("stroke", this._gantt.parsedOptions.dependencyLinkLineCreatingPointStyle.strokeColor),
513
+ circle.setAttribute("radius", this._gantt.parsedOptions.dependencyLinkLineCreatingPointStyle.radius),
514
+ circle.setAttribute("lineWidth", this._gantt.parsedOptions.dependencyLinkLineCreatingPointStyle.strokeWidth),
515
+ this._gantt.scenegraph.updateNextFrame();
516
+ }
517
+ }
518
+ unhighlightLinkPointNode(linkPointGroup) {
519
+ if ((null == linkPointGroup ? void 0 : linkPointGroup.children.length) > 0) {
520
+ const circle = linkPointGroup.children[0];
521
+ circle.setAttribute("fill", this._gantt.parsedOptions.dependencyLinkLineCreatePointStyle.fillColor),
522
+ circle.setAttribute("stroke", this._gantt.parsedOptions.dependencyLinkLineCreatePointStyle.strokeColor),
523
+ circle.setAttribute("radius", this._gantt.parsedOptions.dependencyLinkLineCreatePointStyle.radius),
524
+ circle.setAttribute("lineWidth", this._gantt.parsedOptions.dependencyLinkLineCreatePointStyle.strokeWidth),
525
+ this._gantt.scenegraph.updateNextFrame();
526
+ }
527
+ }
528
+ showMarklineIconHover() {
529
+ var _a, _b;
530
+ const target = this._gantt.stateManager.marklineIcon.target;
531
+ if (target) {
532
+ const marklineGroup = this._gantt.scenegraph.timelineHeader.showMarklineIcon(target.parent);
533
+ marklineGroup && (null === (_b = null === (_a = this._gantt.parsedOptions.markLineCreateOptions) || void 0 === _a ? void 0 : _a.markLineCreationHoverToolTip) || void 0 === _b ? void 0 : _b.tipContent) && this._gantt.scenegraph.showToolTip(marklineGroup),
534
+ this._gantt.scenegraph.updateNextFrame();
535
+ }
536
+ }
537
+ hideMarklineIconHover() {
538
+ this._gantt.scenegraph.timelineHeader.hideMarklineIconHover(this._gantt.stateManager.marklineIcon.target.parent),
539
+ this._gantt.scenegraph.hideToolTip(), this._gantt.stateManager.marklineIcon.target = null,
540
+ this._gantt.scenegraph.updateNextFrame();
541
+ }
542
+ updateProjectTaskTimes(taskPath) {
543
+ var _a, _b;
544
+ if (!taskPath || 0 === taskPath.length || !this._gantt || !this._gantt.records) return;
545
+ const startDateField = this._gantt.parsedOptions.startDateField, endDateField = this._gantt.parsedOptions.endDateField, pathCopy = [ ...taskPath ];
546
+ for (;pathCopy.length > 0; ) {
547
+ const parentPath = [ ...pathCopy ], childIndex = parentPath.pop();
548
+ let parentRecord = this._gantt.records;
549
+ const currentPath = [];
550
+ for (const index of parentPath) {
551
+ if (currentPath.push(index), !parentRecord[index] || !parentRecord[index].children) return;
552
+ parentRecord = parentRecord[index].children;
553
+ }
554
+ const parent = 0 === parentPath.length ? this._gantt.records[childIndex] : parentRecord[childIndex];
555
+ if (parent && parent.type === TaskType.PROJECT && parent.children && parent.children.length > 0) {
556
+ let earliestStart = null, latestEnd = null;
557
+ for (const child of parent.children) if (child[startDateField] && child[endDateField]) {
558
+ const childStartDate = new Date(child[startDateField]), childEndDate = new Date(child[endDateField]);
559
+ (!earliestStart || childStartDate < earliestStart) && (earliestStart = childStartDate),
560
+ (!latestEnd || childEndDate > latestEnd) && (latestEnd = childEndDate);
561
+ }
562
+ if (earliestStart && latestEnd) {
563
+ const currentStartDate = parent[startDateField] ? new Date(parent[startDateField]) : null, currentEndDate = parent[endDateField] ? new Date(parent[endDateField]) : null;
564
+ if (!currentStartDate || !currentEndDate || earliestStart.getTime() !== currentStartDate.getTime() || latestEnd.getTime() !== currentEndDate.getTime()) {
565
+ const dateFormat = null !== (_a = this._gantt.parsedOptions.dateFormat) && void 0 !== _a ? _a : this._gantt.parseTimeFormat(parent[startDateField] || parent.children[0][startDateField]), formatDateValue = date => this._gantt.formatDate ? this._gantt.formatDate(date, dateFormat) : date.toISOString().split("T")[0];
566
+ parent[startDateField] = formatDateValue(earliestStart), parent[endDateField] = formatDateValue(latestEnd);
567
+ }
568
+ }
569
+ }
570
+ pathCopy.pop();
571
+ }
572
+ null === (_b = this._gantt.scenegraph) || void 0 === _b || _b.refreshAll();
573
+ }
574
+ }
575
+
576
+ function reCreateCustomNode(gantt, taskBarGroup, taskIndex, sub_task_index) {
577
+ const taskBarCustomLayout = gantt.parsedOptions.taskBarCustomLayout;
578
+ if (taskBarCustomLayout) {
579
+ let customLayoutObj;
580
+ if ("function" == typeof taskBarCustomLayout) {
581
+ const {startDate: startDate, endDate: endDate, taskDays: taskDays, progress: progress, taskRecord: taskRecord} = gantt.getTaskInfoByTaskListIndex(taskIndex, sub_task_index);
582
+ customLayoutObj = taskBarCustomLayout({
583
+ width: taskBarGroup.attribute.width,
584
+ height: taskBarGroup.attribute.height,
585
+ index: taskIndex,
586
+ startDate: startDate,
587
+ endDate: endDate,
588
+ taskDays: taskDays,
589
+ progress: progress,
590
+ taskRecord: taskRecord,
591
+ ganttInstance: gantt
592
+ });
593
+ } else customLayoutObj = taskBarCustomLayout;
594
+ if (customLayoutObj) {
595
+ const rootContainer = customLayoutObj.rootContainer;
596
+ rootContainer.name = "task-bar-custom-render";
597
+ const barGroup = taskBarGroup.children.find((node => "task-bar-group" === node.name));
598
+ if (barGroup) {
599
+ const oldCustomIndex = barGroup.children.findIndex((node => "task-bar-custom-render" === node.name)), oldCustomNode = barGroup.children[oldCustomIndex];
600
+ oldCustomNode && (barGroup.removeChild(oldCustomNode), barGroup.insertInto(rootContainer, oldCustomIndex));
601
+ }
602
+ }
603
+ }
604
+ }
605
+
606
+ function moveTaskBar(target, dx, dy, state) {
607
+ const taskIndex = target.task_index, sub_task_index = target.sub_task_index, isMilestone = target.record.type === TaskType.MILESTONE, oldX = target.attribute.x, oldY = target.attribute.y;
608
+ if (dx && target.setAttribute("x", Math.max(0, target.attribute.x + dx)), state._gantt.parsedOptions.tasksShowMode !== TasksShowMode.Tasks_Separate && state._gantt.parsedOptions.tasksShowMode !== TasksShowMode.Project_Sub_Tasks_Inline ? dy && target.setAttribute("y", target.attribute.y + dy) : dy = 0,
609
+ isMilestone && (target.setAttribute("anchor", [ target.attribute.x + target.attribute.width / 2, target.attribute.y + target.attribute.height / 2 ]),
610
+ target.milestoneTextContainer)) {
611
+ const deltaX = target.attribute.x - oldX, deltaY = target.attribute.y - oldY, currentX = target.milestoneTextContainer.attribute.x, currentY = target.milestoneTextContainer.attribute.y;
612
+ target.milestoneTextContainer.setAttribute("x", currentX + deltaX), target.milestoneTextContainer.setAttribute("y", currentY + deltaY);
613
+ }
614
+ target.updateTextPosition(), state._gantt.scenegraph.refreshRecordLinkNodes(taskIndex, sub_task_index, target, dy);
615
+ }
616
+
617
+ function resizeTaskBar(target, dx, newWidth, state) {
618
+ const progressField = state._gantt.parsedOptions.progressField, clipGroupBox = target.clipGroupBox, rect = target.barRect, progressRect = target.progressRect, textLabel = target.textLabel, taskIndex = target.task_index, sub_task_index = target.sub_task_index, record = target.record, progress = record[progressField], isMilestone = record.type === TaskType.MILESTONE;
619
+ if (target.setAttribute("zIndex", 1e4), dx && target.setAttribute("x", target.attribute.x + dx),
620
+ isMilestone && target.setAttribute("anchor", [ target.attribute.x + target.attribute.width / 2, target.attribute.y + target.attribute.height / 2 ]),
621
+ newWidth && target.setAttribute("width", newWidth), clipGroupBox.setAttribute("width", target.attribute.width),
622
+ null == rect || rect.setAttribute("width", target.attribute.width), null == progressRect || progressRect.setAttribute("width", progress / 100 * target.attribute.width),
623
+ textLabel) {
624
+ const {textAlign: textAlign, textBaseline: textBaseline, padding: padding} = state._gantt.parsedOptions.taskBarLabelStyle, position = getTextPos(toBoxArray(padding), textAlign, textBaseline, newWidth, target.attribute.height);
625
+ textLabel.setAttribute("maxLineWidth", newWidth - 2 * TASKBAR_HOVER_ICON_WIDTH),
626
+ textLabel.setAttribute("x", position.x);
627
+ }
628
+ target.updateTextPosition(), state.showTaskBarHover(), reCreateCustomNode(state._gantt, target, taskIndex, sub_task_index),
629
+ state._gantt.scenegraph.refreshRecordLinkNodes(taskIndex, sub_task_index, target, 0);
630
+ }
631
+ //# sourceMappingURL=state-manager.js.map