@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,634 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.StateManager = void 0;
6
+
7
+ const vutils_1 = require("@visactor/vutils"), ts_types_1 = require("../ts-types"), gantt_table_sync_1 = require("./gantt-table-sync"), gantt_helper_1 = require("../gantt-helper"), debounce_1 = require("../tools/debounce"), task_bar_1 = require("../scenegraph/task-bar"), inertia_1 = require("../tools/inertia"), util_1 = require("../tools/util");
8
+
9
+ class StateManager {
10
+ constructor(gantt) {
11
+ var _a;
12
+ this.interactionState = ts_types_1.InteractionState.default, this.resetInteractionState = (0,
13
+ debounce_1.debounce)((() => {
14
+ this.updateInteractionState(ts_types_1.InteractionState.default);
15
+ }), 100), this._gantt = gantt, this.scroll = {
16
+ horizontalBarPos: 0,
17
+ verticalBarPos: 0
18
+ }, this.moveTaskBar = {
19
+ targetStartX: null,
20
+ targetStartY: null,
21
+ deltaX: 0,
22
+ deltaY: 0,
23
+ startOffsetY: null,
24
+ startX: null,
25
+ startY: null,
26
+ moving: !1,
27
+ target: null,
28
+ moveTaskBarXSpeed: 0,
29
+ moveTaskBarXInertia: new inertia_1.Inertia
30
+ }, this.hoverTaskBar = {
31
+ targetStartX: null,
32
+ startX: null,
33
+ target: null
34
+ }, this.marklineIcon = {
35
+ target: null
36
+ }, this.selectedTaskBar = {
37
+ target: null
38
+ }, this.resizeTaskBar = {
39
+ startOffsetY: null,
40
+ targetStartX: null,
41
+ targetEndX: null,
42
+ startX: null,
43
+ startY: null,
44
+ target: null,
45
+ resizing: !1,
46
+ onIconName: ""
47
+ }, this.adjustProgressBar = {
48
+ startX: null,
49
+ startY: null,
50
+ target: null,
51
+ adjusting: !1,
52
+ originalProgress: 0
53
+ }, this.resizeTableWidth = {
54
+ lastX: null,
55
+ resizing: !1
56
+ }, this.selectedDenpendencyLink = {
57
+ link: null
58
+ }, this.creatingDenpendencyLink = {
59
+ startClickedPoint: null,
60
+ startX: null,
61
+ startY: null,
62
+ startOffsetY: null,
63
+ targetStartX: null,
64
+ creating: !1,
65
+ firstTaskBarPosition: "left",
66
+ secondTaskBarPosition: "left",
67
+ secondTaskBarNode: null,
68
+ lastHighLightLinkPoint: null
69
+ }, this.updateVerticalScrollBar = this.updateVerticalScrollBar.bind(this), this.updateHorizontalScrollBar = this.updateHorizontalScrollBar.bind(this),
70
+ (0, gantt_table_sync_1.syncScrollStateFromTable)(this._gantt), (0, gantt_table_sync_1.syncEditCellFromTable)(this._gantt),
71
+ (0, gantt_table_sync_1.syncDragOrderFromTable)(this._gantt), (0, gantt_table_sync_1.syncTreeChangeFromTable)(this._gantt),
72
+ (0, gantt_table_sync_1.syncSortFromTable)(this._gantt), "auto" !== (null === (_a = this._gantt.options.taskListTable) || void 0 === _a ? void 0 : _a.tableWidth) && -1 !== this._gantt.taskTableWidth || (0,
73
+ gantt_table_sync_1.syncTableWidthFromTable)(this._gantt);
74
+ }
75
+ setScrollTop(top, triggerEvent = !0) {
76
+ const totalHeight = this._gantt.getAllRowsHeight();
77
+ top = Math.max(0, Math.min(top, totalHeight - this._gantt.scenegraph.height)), top = Math.ceil(top);
78
+ const oldVerticalBarPos = this.scroll.verticalBarPos;
79
+ this.scroll.verticalBarPos = top, (0, vutils_1.isValid)(this.scroll.verticalBarPos) && !isNaN(this.scroll.verticalBarPos) || (this.scroll.verticalBarPos = 0),
80
+ this._gantt.scenegraph.setY(-top);
81
+ const yRatio = top / (totalHeight - this._gantt.scenegraph.height);
82
+ this._gantt.scenegraph.scrollbarComponent.updateVerticalScrollBarPos(yRatio), oldVerticalBarPos !== top && triggerEvent && ((0,
83
+ gantt_table_sync_1.syncScrollStateToTable)(this._gantt), this._gantt.fireListeners(ts_types_1.GANTT_EVENT_TYPE.SCROLL, {
84
+ scrollTop: this.scroll.verticalBarPos,
85
+ scrollLeft: this.scroll.horizontalBarPos,
86
+ scrollDirection: "vertical",
87
+ scrollRatioY: yRatio
88
+ }));
89
+ }
90
+ get scrollLeft() {
91
+ return this.scroll.horizontalBarPos;
92
+ }
93
+ get scrollTop() {
94
+ return this.scroll.verticalBarPos;
95
+ }
96
+ setScrollLeft(left, triggerEvent = !0) {
97
+ const totalWidth = this._gantt.getAllDateColsWidth();
98
+ left = Math.max(0, Math.min(left, totalWidth - this._gantt.scenegraph.width)), left = Math.ceil(left);
99
+ const oldHorizontalBarPos = this.scroll.horizontalBarPos;
100
+ this.scroll.horizontalBarPos = left, (0, vutils_1.isValid)(this.scroll.horizontalBarPos) && !isNaN(this.scroll.horizontalBarPos) || (this.scroll.horizontalBarPos = 0),
101
+ this._gantt.scenegraph.setX(-left);
102
+ const xRatio = left / (totalWidth - this._gantt.scenegraph.width);
103
+ this._gantt.scenegraph.scrollbarComponent.updateHorizontalScrollBarPos(xRatio),
104
+ oldHorizontalBarPos !== left && triggerEvent && this._gantt.fireListeners(ts_types_1.GANTT_EVENT_TYPE.SCROLL, {
105
+ scrollTop: this.scroll.verticalBarPos,
106
+ scrollLeft: this.scroll.horizontalBarPos,
107
+ scrollDirection: "horizontal",
108
+ scrollRatioX: xRatio
109
+ });
110
+ }
111
+ updateInteractionState(mode) {
112
+ if (this.interactionState === mode) return;
113
+ const oldState = this.interactionState;
114
+ this.interactionState = mode, oldState === ts_types_1.InteractionState.scrolling && ts_types_1.InteractionState.default;
115
+ }
116
+ updateVerticalScrollBar(yRatio) {
117
+ const totalHeight = this._gantt.getAllRowsHeight();
118
+ this.scroll.verticalBarPos;
119
+ this.scroll.verticalBarPos = Math.ceil(yRatio * (totalHeight - this._gantt.scenegraph.height)),
120
+ (0, vutils_1.isValid)(this.scroll.verticalBarPos) && !isNaN(this.scroll.verticalBarPos) || (this.scroll.verticalBarPos = 0),
121
+ this._gantt.scenegraph.setY(-this.scroll.verticalBarPos, 1 === yRatio), (0, gantt_table_sync_1.syncScrollStateToTable)(this._gantt),
122
+ this._gantt.fireListeners(ts_types_1.GANTT_EVENT_TYPE.SCROLL, {
123
+ scrollTop: this.scroll.verticalBarPos,
124
+ scrollLeft: this.scroll.horizontalBarPos,
125
+ scrollDirection: "vertical",
126
+ scrollRatioY: yRatio
127
+ });
128
+ }
129
+ updateHorizontalScrollBar(xRatio) {
130
+ const totalWidth = this._gantt.getAllDateColsWidth();
131
+ this.scroll.horizontalBarPos;
132
+ this.scroll.horizontalBarPos = Math.ceil(xRatio * (totalWidth - this._gantt.scenegraph.width)),
133
+ (0, vutils_1.isValid)(this.scroll.horizontalBarPos) && !isNaN(this.scroll.horizontalBarPos) || (this.scroll.horizontalBarPos = 0),
134
+ this._gantt.scenegraph.setX(-this.scroll.horizontalBarPos, 1 === xRatio), this._gantt.fireListeners(ts_types_1.GANTT_EVENT_TYPE.SCROLL, {
135
+ scrollTop: this.scroll.verticalBarPos,
136
+ scrollLeft: this.scroll.horizontalBarPos,
137
+ scrollDirection: "horizontal",
138
+ scrollRatioY: xRatio
139
+ });
140
+ }
141
+ startMoveTaskBar(target, x, y, offsetY) {
142
+ "task-bar-hover-shadow" === target.name && (target = target.parent), this.moveTaskBar.moving = !0,
143
+ this.moveTaskBar.target = target, this.moveTaskBar.targetStartX = target.attribute.x,
144
+ this.moveTaskBar.targetStartY = target.attribute.y, this.moveTaskBar.startX = x,
145
+ this.moveTaskBar.startY = y, this.moveTaskBar.startOffsetY = offsetY, target.setAttribute("zIndex", 1e4);
146
+ }
147
+ isMoveingTaskBar() {
148
+ return this.moveTaskBar.moving;
149
+ }
150
+ endMoveTaskBar() {
151
+ this.moveTaskBar.moveTaskBarXInertia.isInertiaScrolling() && this.moveTaskBar.moveTaskBarXInertia.endInertia();
152
+ const deltaX = this.moveTaskBar.deltaX, deltaY = this.moveTaskBar.deltaY, target = this.moveTaskBar.target;
153
+ if (Math.abs(deltaX) >= 1 || Math.abs(deltaY) >= 1) {
154
+ 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 === ts_types_1.TaskType.MILESTONE ? milestoneTaskbarHeight / 2 : 0), startDateColIndex = (0,
155
+ gantt_helper_1.getDateIndexByX)(testDateX - this._gantt.stateManager.scroll.horizontalBarPos, this._gantt), timelineStartDate = this._gantt.parsedOptions.reverseSortedTimelineScales[0].timelineDates[startDateColIndex];
156
+ if (!timelineStartDate) return;
157
+ const newStartDate = timelineStartDate.startDate, newEndDate = new Date(newStartDate.getTime() + ((0,
158
+ util_1.createDateAtMidnight)(oldEndDate).getTime() - (0, util_1.createDateAtMidnight)(oldStartDate).getTime()));
159
+ let dateChanged;
160
+ if ((0, util_1.createDateAtMidnight)(oldStartDate).getTime() !== newStartDate.getTime()) {
161
+ dateChanged = (0, util_1.createDateAtMidnight)(oldStartDate).getTime() > newStartDate.getTime() ? "left" : "right",
162
+ this._gantt._updateStartEndDateToTaskRecord(newStartDate, newEndDate, taskIndex, sub_task_index);
163
+ const newRecord = this._gantt.getRecordByIndex(taskIndex, sub_task_index);
164
+ this._gantt.hasListeners(ts_types_1.GANTT_EVENT_TYPE.CHANGE_DATE_RANGE) && this._gantt.fireListeners(ts_types_1.GANTT_EVENT_TYPE.CHANGE_DATE_RANGE, {
165
+ startDate: newRecord[this._gantt.parsedOptions.startDateField],
166
+ endDate: newRecord[this._gantt.parsedOptions.endDateField],
167
+ oldStartDate: oldStartDate,
168
+ oldEndDate: oldEndDate,
169
+ index: taskIndex,
170
+ record: newRecord
171
+ });
172
+ const newRowIndex = (0, gantt_helper_1.getTaskIndexsByTaskY)(targetEndY, this._gantt).task_index;
173
+ this._gantt.hasListeners(ts_types_1.GANTT_EVENT_TYPE.MOVE_END_TASK_BAR) && this._gantt.fireListeners(ts_types_1.GANTT_EVENT_TYPE.MOVE_END_TASK_BAR, {
174
+ startDate: newRecord[this._gantt.parsedOptions.startDateField],
175
+ endDate: newRecord[this._gantt.parsedOptions.endDateField],
176
+ oldStartDate: oldStartDate,
177
+ oldEndDate: oldEndDate,
178
+ oldRowIndex: oldRowIndex,
179
+ newRowIndex: newRowIndex,
180
+ index: taskIndex,
181
+ record: newRecord
182
+ });
183
+ } else {
184
+ const newRecord = this._gantt.getRecordByIndex(taskIndex, sub_task_index), newRowIndex = (0,
185
+ gantt_helper_1.getTaskIndexsByTaskY)(targetEndY, this._gantt).task_index;
186
+ this._gantt.hasListeners(ts_types_1.GANTT_EVENT_TYPE.MOVE_END_TASK_BAR) && this._gantt.fireListeners(ts_types_1.GANTT_EVENT_TYPE.MOVE_END_TASK_BAR, {
187
+ startDate: newRecord[this._gantt.parsedOptions.startDateField],
188
+ endDate: newRecord[this._gantt.parsedOptions.endDateField],
189
+ oldStartDate: oldStartDate,
190
+ oldEndDate: oldEndDate,
191
+ oldRowIndex: oldRowIndex,
192
+ newRowIndex: newRowIndex,
193
+ index: newRowIndex,
194
+ record: newRecord
195
+ });
196
+ }
197
+ if (this._gantt.parsedOptions.tasksShowMode === ts_types_1.TasksShowMode.Sub_Tasks_Arrange || this._gantt.parsedOptions.tasksShowMode === ts_types_1.TasksShowMode.Sub_Tasks_Compact) {
198
+ const indexs = (0, gantt_helper_1.getTaskIndexsByTaskY)(targetEndY, this._gantt);
199
+ this._gantt._dragOrderTaskRecord(target.task_index, target.sub_task_index, indexs.task_index, indexs.sub_task_index),
200
+ (0, gantt_helper_1.clearRecordShowIndex)(this._gantt.records), this._gantt.taskListTableInstance.renderWithRecreateCells(),
201
+ this._gantt._syncPropsFromTable(), this._gantt.scenegraph.refreshTaskBarsAndGrid();
202
+ } else if (this._gantt.parsedOptions.tasksShowMode !== ts_types_1.TasksShowMode.Tasks_Separate && Math.abs(Math.round(deltaY / this._gantt.parsedOptions.rowHeight)) >= 1) {
203
+ const indexs = (0, gantt_helper_1.getTaskIndexsByTaskY)(targetEndY, this._gantt);
204
+ this._gantt._dragOrderTaskRecord(target.task_index, target.sub_task_index, indexs.task_index, indexs.sub_task_index),
205
+ this._gantt.parsedOptions.tasksShowMode === ts_types_1.TasksShowMode.Sub_Tasks_Separate ? (this._gantt.taskListTableInstance.renderWithRecreateCells(),
206
+ this._gantt.scenegraph.refreshTaskBarsAndGrid()) : (this._gantt.scenegraph.taskBar.refresh(),
207
+ this._gantt.scenegraph.dependencyLink.refresh());
208
+ } else {
209
+ let newX = startDateColIndex >= 1 ? this._gantt.getDateColsWidth(0, startDateColIndex - 1) : 0;
210
+ if (target.record.type === ts_types_1.TaskType.MILESTONE) {
211
+ newX -= this._gantt.parsedOptions.taskBarMilestoneStyle.width / 2;
212
+ }
213
+ if (moveTaskBar(target, newX - target.attribute.x, targetEndY - target.attribute.y, this),
214
+ "right" === dateChanged) {
215
+ let insertAfterNode = target;
216
+ 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;
217
+ insertAfterNode !== target && insertAfterNode.parent.insertAfter(target, insertAfterNode);
218
+ } else if ("left" === dateChanged) {
219
+ let insertBeforeNode = target;
220
+ 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;
221
+ insertBeforeNode !== target && insertBeforeNode.parent.insertBefore(target, insertBeforeNode);
222
+ }
223
+ }
224
+ this._gantt.scenegraph.updateNextFrame();
225
+ }
226
+ this.moveTaskBar.moving = !1, this.selectedTaskBar.target !== target && target.setAttribute("zIndex", 0),
227
+ target.updateTextPosition(), this.moveTaskBar.target = null, this.moveTaskBar.deltaX = 0,
228
+ this.moveTaskBar.deltaY = 0, this.moveTaskBar.moveTaskBarXSpeed = 0;
229
+ }
230
+ dealTaskBarMove(e) {
231
+ var _a, _b, _c, _d, _e, _f;
232
+ const gantt = this._gantt;
233
+ let target = this.moveTaskBar.target;
234
+ target.setAttribute("zIndex", 1e4);
235
+ const x1 = gantt.eventManager.lastDragPointerXYOnWindow.x, dx = e.x - x1, y1 = gantt.eventManager.lastDragPointerXYOnWindow.y, dy = e.y - y1;
236
+ if (this.moveTaskBar.deltaX += dx, this.moveTaskBar.deltaY += dy, moveTaskBar(target, dx, dy, this),
237
+ target.attribute.x <= gantt.stateManager.scrollLeft && dx < 0) if (gantt.parsedOptions.moveTaskBarToExtendDateRange && 0 === gantt.stateManager.scrollLeft) {
238
+ null === (_a = this.moveTaskBar.moveTaskBarXInertia) || void 0 === _a || _a.endInertia();
239
+ 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];
240
+ gantt.parsedOptions.minDate = (0, util_1.getStartDateByTimeUnit)(new Date(gantt.parsedOptions.reverseSortedTimelineScales[0].timelineDates[0].startDate.getTime() - timeDiff / 2), minTimeUnit, startOfWeek),
241
+ gantt.parsedOptions._minDateTime = null === (_b = gantt.parsedOptions.minDate) || void 0 === _b ? void 0 : _b.getTime(),
242
+ gantt._generateTimeLineDateMap(), gantt._updateSize(), gantt.scenegraph.refreshAll(),
243
+ target = this.moveTaskBar.target = gantt.scenegraph.taskBar.getTaskBarNodeByIndex(this.moveTaskBar.target.task_index, this.moveTaskBar.target.sub_task_index),
244
+ gantt.scrollLeft = gantt.parsedOptions.timelineColWidth - 1, gantt.eventManager.lastDragPointerXYOnWindow.x = e.x,
245
+ "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);
246
+ } else this.moveTaskBar.moveTaskBarXSpeed = -gantt.parsedOptions.timelineColWidth / 100,
247
+ this.moveTaskBar.moveTaskBarXInertia.startInertia(this.moveTaskBar.moveTaskBarXSpeed, 0, 1),
248
+ this.moveTaskBar.moveTaskBarXInertia.setScrollHandle(((dx, dy) => {
249
+ this.moveTaskBar.deltaX += dx, this.moveTaskBar.deltaY += dy, moveTaskBar(target, dx, dy, this),
250
+ gantt.stateManager.setScrollLeft(target.attribute.x), 0 === gantt.stateManager.scrollLeft && this.moveTaskBar.moveTaskBarXInertia.endInertia();
251
+ })); 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()) {
252
+ null === (_d = this.moveTaskBar.moveTaskBarXInertia) || void 0 === _d || _d.endInertia();
253
+ 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];
254
+ if (gantt.parsedOptions.maxDate = (0, util_1.getEndDateByTimeUnit)(gantt.parsedOptions.minDate, new Date(timelineDates[timelineDates.length - 1].endDate.getTime() + timeDiff / 2), minTimeUnit, step),
255
+ gantt.parsedOptions._maxDateTime = null === (_e = gantt.parsedOptions.maxDate) || void 0 === _e ? void 0 : _e.getTime(),
256
+ gantt._generateTimeLineDateMap(), gantt._updateSize(), gantt.scenegraph.refreshAll(),
257
+ target = this.moveTaskBar.target = gantt.scenegraph.taskBar.getTaskBarNodeByIndex(this.moveTaskBar.target.task_index, this.moveTaskBar.target.sub_task_index),
258
+ gantt.scrollLeft += 1, gantt.eventManager.lastDragPointerXYOnWindow.x = e.x, "milestone" === (null === (_f = target.record) || void 0 === _f ? void 0 : _f.type)) {
259
+ const newX = gantt.scrollLeft + gantt.tableNoFrameWidth - target.attribute.width;
260
+ moveTaskBar(target, newX - target.attribute.x, 0, this);
261
+ } else target.setAttribute("x", gantt.scrollLeft + gantt.tableNoFrameWidth - target.attribute.width);
262
+ } else this.moveTaskBar.moveTaskBarXSpeed = gantt.parsedOptions.timelineColWidth / 100,
263
+ this.moveTaskBar.moveTaskBarXInertia.startInertia(this.moveTaskBar.moveTaskBarXSpeed, 0, 1),
264
+ this.moveTaskBar.moveTaskBarXInertia.setScrollHandle(((dx, dy) => {
265
+ this.moveTaskBar.deltaX += dx, this.moveTaskBar.deltaY += dy, moveTaskBar(target, dx, dy, this),
266
+ gantt.stateManager.setScrollLeft(target.attribute.x + target.attribute.width - gantt.tableNoFrameWidth),
267
+ gantt.stateManager.scrollLeft === gantt.getAllDateColsWidth() - gantt.tableNoFrameWidth && this.moveTaskBar.moveTaskBarXInertia.endInertia();
268
+ })); else this.moveTaskBar.moveTaskBarXInertia.isInertiaScrolling() ? this.moveTaskBar.moveTaskBarXInertia.endInertia() : this.moveTaskBar.moveTaskBarXSpeed = 0;
269
+ gantt.scenegraph.updateNextFrame();
270
+ }
271
+ startResizeTaskBar(target, x, y, startOffsetY, onIconName) {
272
+ this.resizeTaskBar.onIconName = onIconName, this.resizeTaskBar.resizing = !0, this.resizeTaskBar.target = target,
273
+ this.resizeTaskBar.targetStartX = target.attribute.x, this.resizeTaskBar.targetEndX = target.attribute.x + target.attribute.width,
274
+ this.resizeTaskBar.startX = x, this.resizeTaskBar.startY = y, this.resizeTaskBar.startOffsetY = startOffsetY;
275
+ }
276
+ isResizingTaskBar() {
277
+ return this.resizeTaskBar.resizing;
278
+ }
279
+ endResizeTaskBar(x) {
280
+ const direction = this._gantt.stateManager.resizeTaskBar.onIconName, deltaX = x - this.resizeTaskBar.startX;
281
+ if (Math.abs(deltaX) >= 1) {
282
+ const colIndex = (0, gantt_helper_1.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];
283
+ if (!timelineDate) return;
284
+ 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);
285
+ let dateChanged = !1;
286
+ if ("left" === direction ? (this._gantt._updateStartDateToTaskRecord(targetDate, taskIndex, sub_task_index),
287
+ targetDate.getTime() !== new Date(oldStartDate).getTime() && (dateChanged = !0)) : (this._gantt._updateEndDateToTaskRecord(targetDate, taskIndex, sub_task_index),
288
+ targetDate.getTime() !== new Date(oldEndDate).getTime() && (dateChanged = !0)),
289
+ this._gantt.parsedOptions.tasksShowMode === ts_types_1.TasksShowMode.Sub_Tasks_Arrange || this._gantt.parsedOptions.tasksShowMode === ts_types_1.TasksShowMode.Sub_Tasks_Compact) this._gantt.taskListTableInstance.renderWithRecreateCells(),
290
+ this._gantt._syncPropsFromTable(), this._gantt.scenegraph.refreshTaskBarsAndGrid(); else {
291
+ if ("left" === direction) {
292
+ const newX = colIndex >= 1 ? this._gantt.getDateColsWidth(0, colIndex - 1) : 0;
293
+ taskBarGroup.setAttribute("x", newX), taskBarGroup.setAttribute("width", this.resizeTaskBar.targetEndX - newX);
294
+ } else if ("right" === direction) {
295
+ const newEndX = this._gantt.getDateColsWidth(0, colIndex);
296
+ taskBarGroup.setAttribute("width", newEndX - this.resizeTaskBar.targetStartX);
297
+ }
298
+ if (clipGroupBox.setAttribute("width", taskBarGroup.attribute.width), null == rect || rect.setAttribute("width", taskBarGroup.attribute.width),
299
+ null == progressRect || progressRect.setAttribute("width", progress / 100 * taskBarGroup.attribute.width),
300
+ textLabel) {
301
+ const {textAlign: textAlign, textBaseline: textBaseline, padding: padding} = this._gantt.parsedOptions.taskBarLabelStyle, position = (0,
302
+ gantt_helper_1.getTextPos)((0, util_1.toBoxArray)(padding), textAlign, textBaseline, taskBarGroup.attribute.width, taskBarGroup.attribute.height);
303
+ textLabel.setAttribute("maxLineWidth", taskBarGroup.attribute.width - 2 * task_bar_1.TASKBAR_HOVER_ICON_WIDTH),
304
+ textLabel.setAttribute("x", position.x);
305
+ }
306
+ this._gantt.scenegraph.refreshRecordLinkNodes(taskIndex, sub_task_index, taskBarGroup, 0),
307
+ this.showTaskBarHover(), reCreateCustomNode(this._gantt, taskBarGroup, taskIndex, sub_task_index),
308
+ taskBarGroup.setAttribute("zIndex", 0);
309
+ }
310
+ if (taskBarGroup.updateTextPosition(), this.resizeTaskBar.resizing = !1, this.resizeTaskBar.target = null,
311
+ dateChanged && this._gantt.hasListeners(ts_types_1.GANTT_EVENT_TYPE.CHANGE_DATE_RANGE)) {
312
+ const newRecord = this._gantt.getRecordByIndex(taskIndex, sub_task_index);
313
+ this._gantt.fireListeners(ts_types_1.GANTT_EVENT_TYPE.CHANGE_DATE_RANGE, {
314
+ startDate: newRecord[this._gantt.parsedOptions.startDateField],
315
+ endDate: newRecord[this._gantt.parsedOptions.endDateField],
316
+ oldStartDate: oldStartDate,
317
+ oldEndDate: oldEndDate,
318
+ index: taskIndex,
319
+ record: newRecord
320
+ });
321
+ }
322
+ this._gantt.scenegraph.updateNextFrame();
323
+ }
324
+ }
325
+ dealTaskBarResize(e) {
326
+ const x1 = this._gantt.eventManager.lastDragPointerXYOnWindow.x, dx = e.x - x1, taskBarGroup = this._gantt.stateManager.resizeTaskBar.target;
327
+ let diffWidth = "left" === this._gantt.stateManager.resizeTaskBar.onIconName ? -dx : dx;
328
+ const taskBarSize = Math.max(1, taskBarGroup.attribute.width + diffWidth);
329
+ diffWidth = taskBarSize - taskBarGroup.attribute.width, resizeTaskBar(taskBarGroup, "left" === this._gantt.stateManager.resizeTaskBar.onIconName ? -diffWidth : 0, taskBarSize, this),
330
+ this._gantt.scenegraph.updateNextFrame();
331
+ }
332
+ startAdjustProgressBar(target, x, y) {
333
+ if (!target || !target.record) return;
334
+ const progressField = this._gantt.parsedOptions.progressField;
335
+ if (!progressField || void 0 === target.record[progressField] || null === target.record[progressField]) return;
336
+ const {progress: progress} = this._gantt.getTaskInfoByTaskListIndex(target.task_index, target.sub_task_index);
337
+ this.adjustProgressBar.target = target, this.adjustProgressBar.adjusting = !0, this.adjustProgressBar.startX = x,
338
+ this.adjustProgressBar.startY = y, this.adjustProgressBar.originalProgress = progress;
339
+ }
340
+ isAdjustingProgressBar() {
341
+ return this.adjustProgressBar.adjusting;
342
+ }
343
+ endAdjustProgressBar(x) {
344
+ const target = this.adjustProgressBar.target;
345
+ if (!target) return;
346
+ const taskBarWidth = target.attribute.width, deltaX = x - this.adjustProgressBar.startX, newProgress = Math.max(0, Math.min(100, this.adjustProgressBar.originalProgress + deltaX / taskBarWidth * 100));
347
+ if (Math.abs(newProgress - this.adjustProgressBar.originalProgress) >= .1) {
348
+ const taskIndex = target.task_index, subTaskIndex = target.sub_task_index, progressField = this._gantt.parsedOptions.progressField;
349
+ progressField && target.record && (target.record[progressField] = Math.round(10 * newProgress) / 10),
350
+ this.shouldSyncProgressToTable(taskIndex, subTaskIndex) && this._gantt._updateProgressToTaskRecord(Math.round(10 * newProgress) / 10, taskIndex, subTaskIndex),
351
+ this._gantt.scenegraph.taskBar.updateTaskBarNode(taskIndex, subTaskIndex);
352
+ const newRecord = this._gantt.getRecordByIndex(taskIndex, subTaskIndex);
353
+ this._gantt.hasListeners(ts_types_1.GANTT_EVENT_TYPE.PROGRESS_UPDATE) && this._gantt.fireListeners(ts_types_1.GANTT_EVENT_TYPE.PROGRESS_UPDATE, {
354
+ federatedEvent: null,
355
+ event: null,
356
+ index: taskIndex,
357
+ sub_task_index: subTaskIndex,
358
+ progress: Math.round(10 * newProgress) / 10,
359
+ oldProgress: Math.round(10 * this.adjustProgressBar.originalProgress) / 10,
360
+ record: newRecord
361
+ });
362
+ }
363
+ this.adjustProgressBar.adjusting = !1, this.adjustProgressBar.target = null, this.adjustProgressBar.startX = null,
364
+ this.adjustProgressBar.startY = null, this.adjustProgressBar.originalProgress = 0;
365
+ }
366
+ shouldSyncProgressToTable(taskIndex, subTaskIndex) {
367
+ const tasksShowMode = this._gantt.parsedOptions.tasksShowMode;
368
+ if (tasksShowMode === ts_types_1.TasksShowMode.Tasks_Separate) return !0;
369
+ if (!(0, vutils_1.isValid)(subTaskIndex)) return !0;
370
+ switch (tasksShowMode) {
371
+ case ts_types_1.TasksShowMode.Sub_Tasks_Inline:
372
+ case ts_types_1.TasksShowMode.Sub_Tasks_Arrange:
373
+ case ts_types_1.TasksShowMode.Sub_Tasks_Compact:
374
+ return !1;
375
+
376
+ case ts_types_1.TasksShowMode.Sub_Tasks_Separate:
377
+ return !0;
378
+
379
+ case ts_types_1.TasksShowMode.Project_Sub_Tasks_Inline:
380
+ const parentRecord = this._gantt.getRecordByIndex(taskIndex);
381
+ return !(!parentRecord || parentRecord.type !== ts_types_1.TaskType.PROJECT) && "expand" === parentRecord.hierarchyState;
382
+
383
+ default:
384
+ return !1;
385
+ }
386
+ }
387
+ dealAdjustProgressBar(e) {
388
+ const target = this.adjustProgressBar.target;
389
+ if (!target || !this.adjustProgressBar.adjusting) return;
390
+ const taskBarWidth = target.attribute.width;
391
+ if (!taskBarWidth || taskBarWidth <= 0) return;
392
+ const deltaX = e.x - this.adjustProgressBar.startX, newProgress = Math.max(0, Math.min(100, this.adjustProgressBar.originalProgress + deltaX / taskBarWidth * 100));
393
+ if (target.progressRect && target.progressRect.setAttribute("width", taskBarWidth * newProgress / 100),
394
+ this._gantt.scenegraph.taskBar.hoverBarProgressHandle && this._gantt.scenegraph.taskBar.hoverBarProgressHandle.attribute.visibleAll && this._gantt.scenegraph.taskBar.hoverBarProgressHandle.setAttribute("x", taskBarWidth * newProgress / 100 - 6),
395
+ target.textLabel && target.record && this._gantt.parsedOptions.taskBarLabelText) {
396
+ const progressField = this._gantt.parsedOptions.progressField, tempRecord = Object.assign(Object.assign({}, target.record), {
397
+ [progressField]: Math.round(10 * newProgress) / 10
398
+ }), newText = (0, util_1.parseStringTemplate)(this._gantt.parsedOptions.taskBarLabelText, tempRecord);
399
+ target.textLabel.setAttribute("text", newText);
400
+ }
401
+ this._gantt.scenegraph && this._gantt.scenegraph.stage && this._gantt.scenegraph.stage.renderNextFrame();
402
+ }
403
+ startCreateDependencyLine(target, x, y, startOffsetY, position) {
404
+ this.resizeTaskBar.resizing = !1, this.creatingDenpendencyLink.creating = !0, this.creatingDenpendencyLink.startClickedPoint = target,
405
+ this.creatingDenpendencyLink.startX = x, this.creatingDenpendencyLink.startY = y,
406
+ this.creatingDenpendencyLink.startOffsetY = startOffsetY, this.creatingDenpendencyLink.firstTaskBarPosition = position,
407
+ this.highlightLinkPointNode(target);
408
+ }
409
+ isCreatingDependencyLine() {
410
+ return this.creatingDenpendencyLink.creating;
411
+ }
412
+ endCreateDependencyLine(offsetY) {
413
+ 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 = {
414
+ linkedFromTaskKey: this._gantt.getRecordByIndex(fromTaskIndex, from_sub_task_id)[taskKeyField],
415
+ linkedToTaskKey: this._gantt.getRecordByIndex(toTaskIndex, to_sub_task_id)[taskKeyField],
416
+ type: "left" === this.creatingDenpendencyLink.firstTaskBarPosition && "left" === this.creatingDenpendencyLink.secondTaskBarPosition ? ts_types_1.DependencyType.StartToStart : "right" === this.creatingDenpendencyLink.firstTaskBarPosition && "left" === this.creatingDenpendencyLink.secondTaskBarPosition ? ts_types_1.DependencyType.FinishToStart : "right" === this.creatingDenpendencyLink.firstTaskBarPosition && "right" === this.creatingDenpendencyLink.secondTaskBarPosition ? ts_types_1.DependencyType.FinishToFinish : ts_types_1.DependencyType.StartToFinish
417
+ };
418
+ return this._gantt.addLink(link), this.hideTaskBarSelectedBorder(), this._gantt.scenegraph.updateNextFrame(),
419
+ this.creatingDenpendencyLink.creating = !1, link;
420
+ }
421
+ dealCreateDependencyLine(e) {
422
+ 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;
423
+ this._gantt.scenegraph.taskBar.updateCreatingDependencyLine(x, y, x + dx, y + dy),
424
+ this._gantt.scenegraph.updateNextFrame();
425
+ }
426
+ startResizeTableWidth(e) {
427
+ this.resizeTableWidth.resizing = !0, this.resizeTableWidth.lastX = e.pageX;
428
+ }
429
+ isResizingTableWidth() {
430
+ return this.resizeTableWidth.resizing;
431
+ }
432
+ endResizeTableWidth() {
433
+ this.resizeTableWidth.resizing = !1, this._gantt.zoomScaleManager && this._gantt.zoomScaleManager.handleTableWidthChange();
434
+ }
435
+ dealResizeTableWidth(e) {
436
+ var _a, _b;
437
+ if (!this.resizeTableWidth.resizing) return;
438
+ const deltaX = e.pageX - this.resizeTableWidth.lastX;
439
+ if (Math.abs(deltaX) >= 1) {
440
+ let width = this._gantt.taskTableWidth + deltaX;
441
+ 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);
442
+ deltaX > 0 && width > maxWidth && (width = maxWidth), deltaX < 0 && width < minWidth && (width = minWidth),
443
+ this._gantt.taskTableWidth = width, this._gantt.element.style.left = this._gantt.taskTableWidth ? `${this._gantt.taskTableWidth}px` : "0px",
444
+ this._gantt.verticalSplitResizeLine.style.left = this._gantt.taskTableWidth ? this._gantt.taskTableWidth - 7 + "px" : "0px",
445
+ this._gantt._resize(), this.resizeTableWidth.lastX = e.pageX, this._gantt.zoomScaleManager && !this.resizeTableWidth.updateTimeout && (this.resizeTableWidth.updateTimeout = setTimeout((() => {
446
+ this._gantt.zoomScaleManager && this._gantt.zoomScaleManager.handleTableWidthChange(),
447
+ this.resizeTableWidth.updateTimeout = null;
448
+ }), 50));
449
+ }
450
+ }
451
+ showTaskBarHover() {
452
+ const target = this._gantt.stateManager.hoverTaskBar.target;
453
+ if (target) {
454
+ const x = target.attribute.x, y = target.attribute.y, width = target.attribute.width, height = target.attribute.height;
455
+ this._gantt.scenegraph.taskBar.showHoverBar(x, y, width, height, target), this._gantt.scenegraph.updateNextFrame();
456
+ }
457
+ }
458
+ hideTaskBarHover(e) {
459
+ this._gantt.stateManager.hoverTaskBar.target = null, this._gantt.scenegraph.taskBar.hideHoverBar(),
460
+ this._gantt.scenegraph.updateNextFrame();
461
+ }
462
+ showTaskBarSelectedBorder(target) {
463
+ var _a;
464
+ null === (_a = this._gantt.stateManager.selectedTaskBar.target) || void 0 === _a || _a.setAttribute("zIndex", 0),
465
+ this._gantt.stateManager.selectedTaskBar.target = target;
466
+ const linkCreatable = this._gantt.parsedOptions.dependencyLinkCreatable;
467
+ target.setAttribute("zIndex", 1e4);
468
+ const x = target.attribute.x, y = target.attribute.y, width = target.attribute.width, height = target.attribute.height;
469
+ this._gantt.scenegraph.taskBar.createSelectedBorder(x, y, width, height, target, linkCreatable),
470
+ this._gantt.scenegraph.updateNextFrame();
471
+ }
472
+ hideTaskBarSelectedBorder() {
473
+ var _a;
474
+ null === (_a = this._gantt.stateManager.selectedTaskBar.target) || void 0 === _a || _a.setAttribute("zIndex", 0),
475
+ this._gantt.stateManager.selectedTaskBar.target = null, this._gantt.scenegraph.taskBar.removeSelectedBorder(),
476
+ this._gantt.scenegraph.updateNextFrame();
477
+ }
478
+ showSecondTaskBarSelectedBorder() {
479
+ const target = this._gantt.stateManager.creatingDenpendencyLink.secondTaskBarNode, x = target.attribute.x, y = target.attribute.y, width = target.attribute.width, height = target.attribute.height;
480
+ this._gantt.scenegraph.taskBar.createSelectedBorder(x, y, width, height, target, !0),
481
+ this._gantt.scenegraph.updateNextFrame();
482
+ }
483
+ hideSecondTaskBarSelectedBorder() {
484
+ this._gantt.stateManager.creatingDenpendencyLink.secondTaskBarNode = null, this._gantt.scenegraph.taskBar.removeSecondSelectedBorder(),
485
+ this._gantt.scenegraph.updateNextFrame();
486
+ }
487
+ showDependencyLinkSelectedLine() {
488
+ const link = this._gantt.stateManager.selectedDenpendencyLink.link;
489
+ this._gantt.scenegraph.dependencyLink.createSelectedLinkLine(link);
490
+ const {taskKeyField: taskKeyField, dependencyLinks: dependencyLinks} = this._gantt.parsedOptions, {linkedToTaskKey: linkedToTaskKey, linkedFromTaskKey: linkedFromTaskKey, type: type} = link;
491
+ let linkFrom_index, linkFrom_sub_task_index, linkTo_index, linkTo_sub_task_index;
492
+ const linkedToTaskRecord = (0, gantt_helper_1.findRecordByTaskKey)(this._gantt.records, taskKeyField, linkedToTaskKey), linkedFromTaskRecord = (0,
493
+ gantt_helper_1.findRecordByTaskKey)(this._gantt.records, taskKeyField, linkedFromTaskKey);
494
+ this._gantt.parsedOptions.tasksShowMode === ts_types_1.TasksShowMode.Sub_Tasks_Inline || this._gantt.parsedOptions.tasksShowMode === ts_types_1.TasksShowMode.Sub_Tasks_Separate || this._gantt.parsedOptions.tasksShowMode === ts_types_1.TasksShowMode.Sub_Tasks_Arrange || this._gantt.parsedOptions.tasksShowMode === ts_types_1.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 === ts_types_1.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 === ts_types_1.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 !== ts_types_1.TasksShowMode.Tasks_Separate && state._gantt.parsedOptions.tasksShowMode !== ts_types_1.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 === ts_types_1.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 = (0,
625
+ gantt_helper_1.getTextPos)((0, util_1.toBoxArray)(padding), textAlign, textBaseline, newWidth, target.attribute.height);
626
+ textLabel.setAttribute("maxLineWidth", newWidth - 2 * task_bar_1.TASKBAR_HOVER_ICON_WIDTH),
627
+ textLabel.setAttribute("x", position.x);
628
+ }
629
+ target.updateTextPosition(), state.showTaskBarHover(), reCreateCustomNode(state._gantt, target, taskIndex, sub_task_index),
630
+ state._gantt.scenegraph.refreshRecordLinkNodes(taskIndex, sub_task_index, target, 0);
631
+ }
632
+
633
+ //# sourceMappingURL=state-manager.js.map
634
+ exports.StateManager = StateManager;