@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,86 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.TaskCreationButton = void 0;
6
+
7
+ const vrender_1 = require("@visactor/vtable/es/vrender");
8
+
9
+ class TaskCreationButton {
10
+ constructor(scene) {
11
+ this._scene = scene, this.createAddButton();
12
+ }
13
+ createAddButton() {
14
+ var _a;
15
+ this._scene._gantt.parsedOptions.taskBarCreationCustomLayout ? this.group = new vrender_1.Group({
16
+ x: 0,
17
+ y: 0,
18
+ width: 100,
19
+ height: 100
20
+ }) : (this.group = new vrender_1.Group({
21
+ x: 0,
22
+ y: 0,
23
+ width: 100,
24
+ height: 100,
25
+ lineDash: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineDash,
26
+ cursor: "pointer",
27
+ lineWidth: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineWidth,
28
+ stroke: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineColor,
29
+ cornerRadius: null !== (_a = this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.cornerRadius) && void 0 !== _a ? _a : 0,
30
+ fill: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.backgroundColor
31
+ }), this.lineVertical = (0, vrender_1.createLine)({
32
+ pickable: !1,
33
+ stroke: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineColor,
34
+ lineWidth: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineWidth,
35
+ points: [ {
36
+ x: 50,
37
+ y: 0
38
+ }, {
39
+ x: 50,
40
+ y: 100
41
+ } ]
42
+ }), this.group.appendChild(this.lineVertical), this.lineHorizontal = (0, vrender_1.createLine)({
43
+ pickable: !1,
44
+ stroke: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineColor,
45
+ lineWidth: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineWidth,
46
+ points: [ {
47
+ x: 0,
48
+ y: 50
49
+ }, {
50
+ x: 100,
51
+ y: 50
52
+ } ]
53
+ }), this.group.appendChild(this.lineHorizontal)), this.group.name = "task-creation-button",
54
+ this._scene.taskBar.group.addChild(this.group);
55
+ }
56
+ show(x, y, width, height) {
57
+ if (this._scene._gantt.parsedOptions.taskBarCreationCustomLayout) this.group.appendChild(this._scene._gantt.parsedOptions.taskBarCreationCustomLayout({
58
+ width: width,
59
+ height: height,
60
+ ganttInstance: this._scene._gantt
61
+ }).rootContainer); else {
62
+ const lineSize = Math.min(width, height) / 6;
63
+ this.lineHorizontal.setAttribute("points", [ {
64
+ x: (width - 4 * lineSize) / 2,
65
+ y: height / 2
66
+ }, {
67
+ x: (width - 4 * lineSize) / 2 + 4 * lineSize,
68
+ y: height / 2
69
+ } ]), this.lineVertical.setAttribute("points", [ {
70
+ x: width / 2,
71
+ y: (height - 4 * lineSize) / 2
72
+ }, {
73
+ x: width / 2,
74
+ y: (height - 4 * lineSize) / 2 + 4 * lineSize
75
+ } ]);
76
+ }
77
+ this.group.setAttribute("x", x), this.group.setAttribute("y", y), this.group.setAttribute("width", width),
78
+ this.group.setAttribute("height", height), this.group.setAttribute("visibleAll", !0);
79
+ }
80
+ hide() {
81
+ this.group.setAttribute("visibleAll", !1), this._scene._gantt.parsedOptions.taskBarCreationCustomLayout && this.group.removeAllChild();
82
+ }
83
+ }
84
+
85
+ exports.TaskCreationButton = TaskCreationButton;
86
+ //# sourceMappingURL=task-creation-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/scenegraph/task-creation-button.ts"],"names":[],"mappings":"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","file":"task-creation-button.js","sourcesContent":["import { createLine, Group } from '@visactor/vtable/es/vrender';\nimport type { IRect, IGroupGraphicAttribute, IRectGraphicAttribute, ILine } from '@visactor/vtable/es/vrender';\n\nimport type { Scenegraph } from './scenegraph';\n\nexport class TaskCreationButton {\n _scene: Scenegraph;\n group: Group;\n lineVertical: ILine;\n lineHorizontal: ILine;\n constructor(scene: Scenegraph) {\n this._scene = scene;\n this.createAddButton();\n }\n createAddButton() {\n if (this._scene._gantt.parsedOptions.taskBarCreationCustomLayout) {\n this.group = new Group({\n x: 0,\n y: 0,\n width: 100,\n height: 100\n });\n } else {\n this.group = new Group({\n x: 0,\n y: 0,\n width: 100,\n height: 100,\n lineDash: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineDash,\n cursor: 'pointer',\n lineWidth: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineWidth,\n stroke: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineColor,\n cornerRadius: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.cornerRadius ?? 0,\n fill: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.backgroundColor\n });\n\n this.lineVertical = createLine({\n pickable: false,\n stroke: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineColor,\n lineWidth: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineWidth,\n // lineDash: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineDash,\n points: [\n { x: 50, y: 0 },\n { x: 50, y: 100 }\n ]\n });\n this.group.appendChild(this.lineVertical);\n this.lineHorizontal = createLine({\n pickable: false,\n stroke: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineColor,\n lineWidth: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineWidth,\n // lineDash: this._scene._gantt.parsedOptions.taskBarCreationButtonStyle.lineDash,\n points: [\n { x: 0, y: 50 },\n { x: 100, y: 50 }\n ]\n });\n this.group.appendChild(this.lineHorizontal);\n }\n this.group.name = 'task-creation-button';\n this._scene.taskBar.group.addChild(this.group);\n }\n show(x: number, y: number, width: number, height: number) {\n if (this._scene._gantt.parsedOptions.taskBarCreationCustomLayout) {\n this.group.appendChild(\n this._scene._gantt.parsedOptions.taskBarCreationCustomLayout({\n width,\n height,\n ganttInstance: this._scene._gantt\n }).rootContainer\n );\n } else {\n const lineSize = Math.min(width, height) / 6;\n this.lineHorizontal.setAttribute('points', [\n { x: (width - lineSize * 4) / 2, y: height / 2 },\n { x: (width - lineSize * 4) / 2 + lineSize * 4, y: height / 2 }\n ]);\n\n this.lineVertical.setAttribute('points', [\n { x: width / 2, y: (height - lineSize * 4) / 2 },\n { x: width / 2, y: (height - lineSize * 4) / 2 + lineSize * 4 }\n ]);\n }\n this.group.setAttribute('x', x);\n this.group.setAttribute('y', y);\n this.group.setAttribute('width', width);\n this.group.setAttribute('height', height);\n this.group.setAttribute('visibleAll', true);\n }\n hide() {\n this.group.setAttribute('visibleAll', false);\n if (this._scene._gantt.parsedOptions.taskBarCreationCustomLayout) {\n this.group.removeAllChild();\n }\n }\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import type { Scenegraph } from './scenegraph';
2
+ import { Group } from '@visactor/vtable/es/vrender';
3
+ export declare class TimelineHeader {
4
+ group: Group;
5
+ _scene: Scenegraph;
6
+ constructor(scene: Scenegraph);
7
+ initNodes(): void;
8
+ setX(x: number): void;
9
+ setY(y: number): void;
10
+ resize(): void;
11
+ refresh(): void;
12
+ showMarklineIcon(target: any): undefined;
13
+ hideMarklineIconHover(target: any): undefined;
14
+ }
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.TimelineHeader = void 0;
6
+
7
+ const vutils_1 = require("@visactor/vutils"), gantt_helper_1 = require("../gantt-helper"), util_1 = require("../tools/util"), vrender_1 = require("@visactor/vtable/es/vrender"), DEFAULT_MARKLINE_CREATION_ICON = '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1471" width="24" height="24"> <path d="M840.05 153.35a27.61875 27.61875 0 0 0-22.95-4.95c-56.25 13.05-218.25 39.6-289.8 2.25-115.65-60.75-241.65-31.95-299.7-13.05V95.75a27.05625 27.05625 0 0 0-27-27 27.05625 27.05625 0 0 0-27 27v834.75c0 14.85 12.15 27 27 27s27-12.15 27-27V611.9c44.1-13.95 199.35-56.25 293.85 1.8 45.9 28.35 96.75 37.8 143.55 37.8 89.1 0 164.7-34.2 169.65-36.45a27.9 27.9 0 0 0 15.75-24.75V174.5a27.5625 27.5625 0 0 0-10.35-21.15z" fill="#f54319" p-id="1472"></path></svg>';
8
+
9
+ class TimelineHeader {
10
+ constructor(scene) {
11
+ this._scene = scene, this.initNodes();
12
+ }
13
+ initNodes() {
14
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
15
+ const {_scene: scene} = this, dateHeader = new vrender_1.Group({
16
+ x: 0,
17
+ y: 0,
18
+ width: scene._gantt.getAllDateColsWidth(),
19
+ height: scene._gantt.getAllHeaderRowsHeight(),
20
+ clip: !0,
21
+ pickable: !1
22
+ });
23
+ this.group = dateHeader, dateHeader.name = "date-header-container", scene.ganttGroup.addChild(this.group);
24
+ const {unit: minUnit, step: step} = scene._gantt.parsedOptions.reverseSortedTimelineScales[0];
25
+ let y = 0;
26
+ for (let i = 0; i < scene._gantt.timeLineHeaderLevel; i++) {
27
+ const {timelineDates: timelineDates, customLayout: customLayout, visible: visible} = scene._gantt.parsedOptions.sortedTimelineScales[i];
28
+ if (!1 === visible) continue;
29
+ const rowHeader = new vrender_1.Group({
30
+ x: 0,
31
+ y: y,
32
+ width: scene._gantt.getAllDateColsWidth(),
33
+ height: scene._gantt.parsedOptions.timeLineHeaderRowHeights[i],
34
+ clip: !1
35
+ });
36
+ y += rowHeader.attribute.height, rowHeader.name = "row-header", dateHeader.addChild(rowHeader);
37
+ for (let j = 0; j < (null == timelineDates ? void 0 : timelineDates.length); j++) {
38
+ const {days: days, endDate: endDate, startDate: startDate, title: title, dateIndex: dateIndex, unit: unit} = timelineDates[j], x = Math.ceil((0,
39
+ util_1.computeCountToTimeScale)(startDate, scene._gantt.parsedOptions.minDate, minUnit, step) * scene._gantt.parsedOptions.timelineColWidth), width = Math.ceil((0,
40
+ util_1.computeCountToTimeScale)(endDate, scene._gantt.parsedOptions.minDate, minUnit, step, 1) * scene._gantt.parsedOptions.timelineColWidth) - x, date = new vrender_1.Group({
41
+ x: x,
42
+ y: 0,
43
+ width: width,
44
+ height: rowHeader.attribute.height,
45
+ clip: !1,
46
+ fill: scene._gantt.parsedOptions.timelineHeaderBackgroundColor
47
+ });
48
+ let rootContainer;
49
+ date.name = "date-header-cell";
50
+ let renderDefaultText = !0;
51
+ const height = rowHeader.attribute.height;
52
+ if (customLayout) {
53
+ let customLayoutObj;
54
+ if ("function" == typeof customLayout) {
55
+ customLayoutObj = customLayout({
56
+ width: width,
57
+ height: height,
58
+ index: j,
59
+ startDate: startDate,
60
+ endDate: endDate,
61
+ days: days,
62
+ dateIndex: dateIndex,
63
+ title: title,
64
+ ganttInstance: this._scene._gantt
65
+ });
66
+ } else customLayoutObj = customLayout;
67
+ customLayoutObj && (rootContainer = customLayoutObj.rootContainer, renderDefaultText = null !== (_a = customLayoutObj.renderDefaultText) && void 0 !== _a && _a,
68
+ rootContainer.name = "task-bar-custom-render"), rootContainer && date.appendChild(rootContainer);
69
+ }
70
+ if (renderDefaultText) {
71
+ const {padding: padding, textAlign: textAlign, textBaseline: textBaseline, textOverflow: textOverflow, fontSize: fontSize, fontWeight: fontWeight, color: color, strokeColor: strokeColor, textStick: textStick} = scene._gantt.parsedOptions.timelineHeaderStyles[i], position = (0,
72
+ gantt_helper_1.getTextPos)((0, util_1.toBoxArray)(padding), textAlign, textBaseline, width, height), text = new vrender_1.Text({
73
+ x: position.x,
74
+ y: position.y,
75
+ maxLineWidth: width,
76
+ heightLimit: height,
77
+ pickable: !0,
78
+ text: title.toLocaleString(),
79
+ fontSize: fontSize,
80
+ fontWeight: fontWeight,
81
+ fill: color,
82
+ stroke: strokeColor,
83
+ lineWidth: 2,
84
+ textAlign: textAlign,
85
+ textBaseline: textBaseline,
86
+ ellipsis: "clip" === textOverflow ? "" : "ellipsis" === textOverflow ? "..." : (0,
87
+ vutils_1.isValid)(textOverflow) ? textOverflow : void 0
88
+ });
89
+ text.attribute.textStick = textStick, date.appendChild(text), text.name = "date-header-cell-text";
90
+ }
91
+ if (i === scene._gantt.timeLineHeaderLevel - 1 && scene._gantt.parsedOptions.markLineCreateOptions && scene._gantt.parsedOptions.markLineCreateOptions.markLineCreatable) {
92
+ const markLineStyle = scene._gantt.parsedOptions.markLineCreateOptions.markLineCreationStyle || {}, size = markLineStyle.size || 24, iconSize = markLineStyle.iconSize || 18, marklineCreateIcon = markLineStyle.svg || DEFAULT_MARKLINE_CREATION_ICON, marklineCreateGroup = new vrender_1.Group({
93
+ x: width / 2 - size / 2,
94
+ y: height / 2 - size / 2,
95
+ width: size,
96
+ height: size,
97
+ visible: !0
98
+ });
99
+ marklineCreateGroup.name = "markline-hover-group", marklineCreateGroup.data = timelineDates[j];
100
+ const marklineCreateInnerGroup = new vrender_1.Group({
101
+ x: 0,
102
+ y: 0,
103
+ width: size,
104
+ height: size,
105
+ cornerRadius: size / 2,
106
+ fill: markLineStyle.fill || "#ccc",
107
+ cursor: "pointer",
108
+ display: "flex",
109
+ justifyContent: "center",
110
+ alignItems: "center",
111
+ visibleAll: !1
112
+ });
113
+ marklineCreateInnerGroup.name = "markline-hover-inner-group", marklineCreateGroup.add(marklineCreateInnerGroup);
114
+ const icon = new vrender_1.Image({
115
+ width: iconSize,
116
+ height: iconSize,
117
+ image: marklineCreateIcon,
118
+ cursor: "pointer",
119
+ pickable: !0
120
+ });
121
+ icon.name = "markline-hover-icon", marklineCreateInnerGroup.appendChild(icon), date.add(marklineCreateGroup);
122
+ }
123
+ if (rowHeader.addChild(date), j > 0) {
124
+ const line = (0, vrender_1.createLine)({
125
+ pickable: !1,
126
+ stroke: null === (_b = scene._gantt.parsedOptions.timelineHeaderVerticalLineStyle) || void 0 === _b ? void 0 : _b.lineColor,
127
+ lineWidth: null === (_c = scene._gantt.parsedOptions.timelineHeaderVerticalLineStyle) || void 0 === _c ? void 0 : _c.lineWidth,
128
+ lineDash: null === (_d = scene._gantt.parsedOptions.timelineHeaderVerticalLineStyle) || void 0 === _d ? void 0 : _d.lineDash,
129
+ points: [ {
130
+ x: 1 & (null === (_e = scene._gantt.parsedOptions.timelineHeaderVerticalLineStyle) || void 0 === _e ? void 0 : _e.lineWidth) ? .5 : 0,
131
+ y: 0
132
+ }, {
133
+ x: 1 & (null === (_f = scene._gantt.parsedOptions.timelineHeaderVerticalLineStyle) || void 0 === _f ? void 0 : _f.lineWidth) ? .5 : 0,
134
+ y: rowHeader.attribute.height
135
+ } ]
136
+ });
137
+ date.appendChild(line);
138
+ }
139
+ }
140
+ if (i > 0) {
141
+ const line = (0, vrender_1.createLine)({
142
+ pickable: !1,
143
+ stroke: null === (_g = scene._gantt.parsedOptions.timelineHeaderHorizontalLineStyle) || void 0 === _g ? void 0 : _g.lineColor,
144
+ lineWidth: null === (_h = scene._gantt.parsedOptions.timelineHeaderHorizontalLineStyle) || void 0 === _h ? void 0 : _h.lineWidth,
145
+ lineDash: null === (_j = scene._gantt.parsedOptions.timelineHeaderHorizontalLineStyle) || void 0 === _j ? void 0 : _j.lineDash,
146
+ points: [ {
147
+ x: 0,
148
+ y: 1 & (null === (_k = scene._gantt.parsedOptions.timelineHeaderHorizontalLineStyle) || void 0 === _k ? void 0 : _k.lineWidth) ? .5 : 0
149
+ }, {
150
+ x: scene._gantt.getAllDateColsWidth(),
151
+ y: 1 & (null === (_l = scene._gantt.parsedOptions.timelineHeaderHorizontalLineStyle) || void 0 === _l ? void 0 : _l.lineWidth) ? .5 : 0
152
+ } ]
153
+ });
154
+ rowHeader.addChild(line);
155
+ }
156
+ }
157
+ }
158
+ setX(x) {
159
+ this.group.setAttribute("x", x);
160
+ }
161
+ setY(y) {
162
+ this.group.setAttribute("y", y);
163
+ }
164
+ resize() {
165
+ var _a, _b, _c, _d;
166
+ this.group.setAttribute("width", null !== (_b = null === (_a = this.group.attribute) || void 0 === _a ? void 0 : _a.width) && void 0 !== _b ? _b : 0),
167
+ this.group.setAttribute("height", null !== (_d = null === (_c = this.group.attribute) || void 0 === _c ? void 0 : _c.height) && void 0 !== _d ? _d : 0);
168
+ }
169
+ refresh() {
170
+ var _a;
171
+ null === (_a = this.group) || void 0 === _a || _a.parent.removeChild(this.group),
172
+ this.initNodes();
173
+ }
174
+ showMarklineIcon(target) {
175
+ let innerGroup;
176
+ return target.children.forEach((child => {
177
+ "date-header-cell-text" === child.name && child.setAttribute("visible", !1), "markline-hover-group" === child.name && (innerGroup = child.firstChild,
178
+ innerGroup.setAttribute("visibleAll", !0));
179
+ })), innerGroup;
180
+ }
181
+ hideMarklineIconHover(target) {
182
+ let innerGroup;
183
+ return target.children.forEach((child => {
184
+ "date-header-cell-text" === child.name && child.setAttribute("visible", !0), "markline-hover-group" === child.name && (innerGroup = child.firstChild,
185
+ innerGroup.setAttribute("visibleAll", !1));
186
+ })), innerGroup;
187
+ }
188
+ }
189
+
190
+ exports.TimelineHeader = TimelineHeader;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/scenegraph/timeline-header.ts"],"names":[],"mappings":"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","file":"timeline-header.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport { getTextPos } from '../gantt-helper';\nimport { computeCountToTimeScale, toBoxArray } from '../tools/util';\nimport type { Scenegraph } from './scenegraph';\nimport { Group, Text, createLine, Image } from '@visactor/vtable/es/vrender';\n\nconst DEFAULT_MARKLINE_CREATION_ICON = `<svg viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" p-id=\"1471\" width=\"24\" height=\"24\"> <path d=\"M840.05 153.35a27.61875 27.61875 0 0 0-22.95-4.95c-56.25 13.05-218.25 39.6-289.8 2.25-115.65-60.75-241.65-31.95-299.7-13.05V95.75a27.05625 27.05625 0 0 0-27-27 27.05625 27.05625 0 0 0-27 27v834.75c0 14.85 12.15 27 27 27s27-12.15 27-27V611.9c44.1-13.95 199.35-56.25 293.85 1.8 45.9 28.35 96.75 37.8 143.55 37.8 89.1 0 164.7-34.2 169.65-36.45a27.9 27.9 0 0 0 15.75-24.75V174.5a27.5625 27.5625 0 0 0-10.35-21.15z\" fill=\"#f54319\" p-id=\"1472\"></path></svg>`;\nexport class TimelineHeader {\n group: Group;\n _scene: Scenegraph;\n constructor(scene: Scenegraph) {\n this._scene = scene;\n this.initNodes();\n }\n initNodes() {\n const { _scene: scene } = this;\n const dateHeader = new Group({\n x: 0,\n y: 0,\n width: scene._gantt.getAllDateColsWidth(), //width - 2,\n height: scene._gantt.getAllHeaderRowsHeight(),\n clip: true,\n pickable: false\n // fill: 'purple',\n // stroke: 'green',\n // lineWidth: 2\n });\n this.group = dateHeader;\n dateHeader.name = 'date-header-container';\n scene.ganttGroup.addChild(this.group);\n const { unit: minUnit, step } = scene._gantt.parsedOptions.reverseSortedTimelineScales[0];\n let y = 0;\n for (let i = 0; i < scene._gantt.timeLineHeaderLevel; i++) {\n const { timelineDates, customLayout, visible } = scene._gantt.parsedOptions.sortedTimelineScales[i];\n if (visible === false) {\n continue;\n }\n const rowHeader = new Group({\n x: 0,\n y,\n width: scene._gantt.getAllDateColsWidth(),\n height: scene._gantt.parsedOptions.timeLineHeaderRowHeights[i],\n clip: false\n });\n y += rowHeader.attribute.height;\n rowHeader.name = 'row-header';\n dateHeader.addChild(rowHeader);\n\n for (let j = 0; j < timelineDates?.length; j++) {\n const { days, endDate, startDate, title, dateIndex, unit } = timelineDates[j];\n const x = Math.ceil(\n computeCountToTimeScale(startDate, scene._gantt.parsedOptions.minDate, minUnit, step) *\n scene._gantt.parsedOptions.timelineColWidth\n );\n const right_x = Math.ceil(\n computeCountToTimeScale(endDate, scene._gantt.parsedOptions.minDate, minUnit, step, 1) *\n scene._gantt.parsedOptions.timelineColWidth\n );\n const width = right_x - x;\n const date = new Group({\n x,\n y: 0,\n width,\n height: rowHeader.attribute.height,\n clip: false,\n fill: scene._gantt.parsedOptions.timelineHeaderBackgroundColor\n });\n date.name = 'date-header-cell';\n let rootContainer;\n let renderDefaultText = true;\n\n const height = rowHeader.attribute.height;\n if (customLayout) {\n let customLayoutObj;\n if (typeof customLayout === 'function') {\n const arg = {\n width,\n height,\n index: j,\n startDate,\n endDate,\n days,\n dateIndex,\n title,\n ganttInstance: this._scene._gantt\n };\n customLayoutObj = customLayout(arg);\n } else {\n customLayoutObj = customLayout;\n }\n if (customLayoutObj) {\n // if (customLayoutObj.rootContainer) {\n // customLayoutObj.rootContainer = decodeReactDom(customLayoutObj.rootContainer);\n // }\n rootContainer = customLayoutObj.rootContainer;\n renderDefaultText = customLayoutObj.renderDefaultText ?? false;\n rootContainer.name = 'task-bar-custom-render';\n }\n rootContainer && date.appendChild(rootContainer);\n }\n if (renderDefaultText) {\n const {\n padding,\n textAlign,\n textBaseline,\n textOverflow,\n fontSize,\n fontWeight,\n color,\n strokeColor,\n textStick\n } = scene._gantt.parsedOptions.timelineHeaderStyles[i];\n\n const position = getTextPos(toBoxArray(padding), textAlign, textBaseline, width, height);\n const text = new Text({\n x: position.x,\n y: position.y,\n maxLineWidth: width,\n heightLimit: height,\n // clip: true,\n pickable: true,\n text: title.toLocaleString(),\n fontSize: fontSize,\n fontWeight: fontWeight,\n fill: color,\n stroke: strokeColor,\n lineWidth: 2,\n textAlign,\n textBaseline,\n ellipsis:\n textOverflow === 'clip'\n ? ''\n : textOverflow === 'ellipsis'\n ? '...'\n : isValid(textOverflow)\n ? textOverflow\n : undefined\n });\n (text.attribute as any).textStick = textStick;\n date.appendChild(text);\n text.name = 'date-header-cell-text';\n }\n if (\n i === scene._gantt.timeLineHeaderLevel - 1 &&\n scene._gantt.parsedOptions.markLineCreateOptions &&\n scene._gantt.parsedOptions.markLineCreateOptions.markLineCreatable\n ) {\n const markLineStyle = scene._gantt.parsedOptions.markLineCreateOptions.markLineCreationStyle || {};\n const size = markLineStyle.size || 24;\n const iconSize = markLineStyle.iconSize || 18;\n const marklineCreateIcon = markLineStyle.svg || DEFAULT_MARKLINE_CREATION_ICON;\n // 是否开启里程碑功能\n const marklineCreateGroup = new Group({\n x: width / 2 - size / 2,\n y: height / 2 - size / 2,\n width: size,\n height: size,\n visible: true\n });\n marklineCreateGroup.name = 'markline-hover-group';\n (marklineCreateGroup as any).data = timelineDates[j];\n const marklineCreateInnerGroup = new Group({\n x: 0,\n y: 0,\n width: size,\n height: size,\n cornerRadius: size / 2,\n fill: markLineStyle.fill || '#ccc',\n cursor: 'pointer',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n visibleAll: false\n });\n marklineCreateInnerGroup.name = 'markline-hover-inner-group';\n marklineCreateGroup.add(marklineCreateInnerGroup);\n const icon = new Image({\n width: iconSize,\n height: iconSize,\n image: marklineCreateIcon,\n cursor: 'pointer',\n pickable: true\n });\n icon.name = 'markline-hover-icon';\n marklineCreateInnerGroup.appendChild(icon);\n date.add(marklineCreateGroup);\n }\n rowHeader.addChild(date);\n\n if (j > 0) {\n const line = createLine({\n pickable: false,\n stroke: scene._gantt.parsedOptions.timelineHeaderVerticalLineStyle?.lineColor,\n lineWidth: scene._gantt.parsedOptions.timelineHeaderVerticalLineStyle?.lineWidth,\n lineDash: scene._gantt.parsedOptions.timelineHeaderVerticalLineStyle?.lineDash,\n points: [\n { x: scene._gantt.parsedOptions.timelineHeaderVerticalLineStyle?.lineWidth & 1 ? 0.5 : 0, y: 0 },\n {\n x: scene._gantt.parsedOptions.timelineHeaderVerticalLineStyle?.lineWidth & 1 ? 0.5 : 0,\n y: rowHeader.attribute.height\n }\n ]\n });\n date.appendChild(line);\n }\n }\n //创建表头分割线 水平分割线 TODO\n if (i > 0) {\n const line = createLine({\n pickable: false,\n stroke: scene._gantt.parsedOptions.timelineHeaderHorizontalLineStyle?.lineColor,\n lineWidth: scene._gantt.parsedOptions.timelineHeaderHorizontalLineStyle?.lineWidth,\n lineDash: scene._gantt.parsedOptions.timelineHeaderHorizontalLineStyle?.lineDash,\n points: [\n { x: 0, y: scene._gantt.parsedOptions.timelineHeaderHorizontalLineStyle?.lineWidth & 1 ? 0.5 : 0 },\n {\n x: scene._gantt.getAllDateColsWidth(),\n y: scene._gantt.parsedOptions.timelineHeaderHorizontalLineStyle?.lineWidth & 1 ? 0.5 : 0\n }\n ]\n });\n rowHeader.addChild(line);\n }\n }\n }\n setX(x: number) {\n this.group.setAttribute('x', x);\n }\n setY(y: number) {\n this.group.setAttribute('y', y);\n }\n resize() {\n this.group.setAttribute('width', this.group.attribute?.width ?? 0);\n this.group.setAttribute('height', this.group.attribute?.height ?? 0);\n }\n\n refresh() {\n this.group?.parent.removeChild(this.group);\n this.initNodes();\n }\n showMarklineIcon(target: any) {\n let innerGroup;\n target.children.forEach((child: any) => {\n if (child.name === 'date-header-cell-text') {\n child.setAttribute('visible', false);\n }\n if (child.name === 'markline-hover-group') {\n innerGroup = child.firstChild;\n innerGroup.setAttribute('visibleAll', true);\n }\n });\n return innerGroup;\n }\n hideMarklineIconHover(target: any) {\n let innerGroup;\n target.children.forEach((child: any) => {\n if (child.name === 'date-header-cell-text') {\n child.setAttribute('visible', true);\n }\n if (child.name === 'markline-hover-group') {\n innerGroup = child.firstChild;\n innerGroup.setAttribute('visibleAll', false);\n }\n });\n return innerGroup;\n }\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import type { IRectGraphicAttribute, IGraphic, Group } from '@visactor/vtable/es/vrender';
2
+ import type { Scenegraph } from './scenegraph';
3
+ export declare class ToolTip {
4
+ _scene: Scenegraph;
5
+ group: Group;
6
+ constructor(scene: Scenegraph);
7
+ show(graphic: IGraphic<Partial<IRectGraphicAttribute>>): void;
8
+ hide(): void;
9
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.ToolTip = void 0;
6
+
7
+ const vrender_1 = require("@visactor/vtable/es/vrender");
8
+
9
+ class ToolTip {
10
+ constructor(scene) {
11
+ this._scene = scene, this.group = new vrender_1.PopTip({
12
+ position: "top",
13
+ content: "",
14
+ contentStyle: {
15
+ fill: "#fff"
16
+ },
17
+ visible: !1,
18
+ panel: {
19
+ background: "#14161c",
20
+ cornerRadius: 4
21
+ }
22
+ }), scene.ganttGroup.addChild(this.group);
23
+ }
24
+ show(graphic) {
25
+ var _a, _b, _c;
26
+ const options = (null === (_a = this._scene._gantt.parsedOptions.markLineCreateOptions) || void 0 === _a ? void 0 : _a.markLineCreationHoverToolTip) || {}, matrix = graphic.globalTransMatrix, targetWidth = graphic.attribute.width, targetHeight = graphic.attribute.height;
27
+ let x, y;
28
+ const position = options.position || "top";
29
+ "top" === position ? (x = matrix.e + targetWidth / 2 - 2, y = matrix.f) : "bottom" === position && (x = matrix.e + targetWidth / 2 - 2,
30
+ y = matrix.f + targetHeight);
31
+ const contentStyle = (null === (_b = options.style) || void 0 === _b ? void 0 : _b.contentStyle) || {
32
+ fill: "#fff"
33
+ }, pannelStyle = (null === (_c = options.style) || void 0 === _c ? void 0 : _c.panelStyle) || {
34
+ background: "#14161c",
35
+ cornerRadius: 4
36
+ };
37
+ this.group.setAttributes({
38
+ content: options.tipContent,
39
+ position: position,
40
+ visibleAll: !0,
41
+ visible: !0,
42
+ contentStyle: contentStyle,
43
+ panel: Object.assign(Object.assign({}, pannelStyle), {
44
+ visible: !0
45
+ }),
46
+ x: x,
47
+ y: y
48
+ });
49
+ }
50
+ hide() {
51
+ this.group.setAttributes({
52
+ visibleAll: !1,
53
+ visible: !1
54
+ });
55
+ }
56
+ }
57
+
58
+ exports.ToolTip = ToolTip;
59
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/scenegraph/tooltip.ts"],"names":[],"mappings":";;;AAAA,yDAAqD;AAKrD,MAAa,OAAO;IAGlB,YAAY,KAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,IAAI,gBAAM,CAAC;YACtB,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,EAAE;YACX,YAAY,EAAE;gBACZ,IAAI,EAAE,MAAM;aACb;YACD,OAAO,EAAE,KAAK;YACd,KAAK,EAAE;gBACL,UAAU,EAAE,SAAS;gBACrB,YAAY,EAAE,CAAC;aAChB;SACK,CAAC,CAAC;QACV,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,CAAC,OAAiD;;QACpD,MAAM,OAAO,GAAG,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,qBAAqB,0CAAE,4BAA4B,KAAI,EAAE,CAAC;QAC3G,MAAM,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACzC,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;QAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,CAAC;QACN,IAAI,CAAC,CAAC;QACN,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC3C,IAAI,QAAQ,KAAK,KAAK,EAAE;YACtB,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;SACd;aAAM,IAAI,QAAQ,KAAK,QAAQ,EAAE;YAChC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC;SAC7B;QACD,MAAM,YAAY,GAAG,CAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,YAAY,KAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACrE,MAAM,WAAW,GAAG,CAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,UAAU,KAAI,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;QAC5F,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YACvB,OAAO,EAAE,OAAO,CAAC,UAAU;YAC3B,QAAQ;YACR,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,IAAI;YACb,YAAY;YACZ,KAAK,kCACA,WAAW,KACd,OAAO,EAAE,IAAI,GACd;YACD,CAAC;YACD,CAAC;SACK,CAAC,CAAC;IACZ,CAAC;IAED,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;YACvB,UAAU,EAAE,KAAK;YACjB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;CACF;AAzDD,0BAyDC","file":"tooltip.js","sourcesContent":["import { PopTip } from '@visactor/vtable/es/vrender';\nimport type { IRectGraphicAttribute, IGraphic, Group } from '@visactor/vtable/es/vrender';\n\nimport type { Scenegraph } from './scenegraph';\n\nexport class ToolTip {\n _scene: Scenegraph;\n group: Group;\n constructor(scene: Scenegraph) {\n this._scene = scene;\n this.group = new PopTip({\n position: 'top',\n content: '',\n contentStyle: {\n fill: '#fff'\n },\n visible: false,\n panel: {\n background: '#14161c',\n cornerRadius: 4\n }\n } as any);\n scene.ganttGroup.addChild(this.group);\n }\n show(graphic: IGraphic<Partial<IRectGraphicAttribute>>) {\n const options = this._scene._gantt.parsedOptions.markLineCreateOptions?.markLineCreationHoverToolTip || {};\n const matrix = graphic.globalTransMatrix;\n const targetWidth = graphic.attribute.width;\n const targetHeight = graphic.attribute.height;\n let x;\n let y;\n const position = options.position || 'top';\n if (position === 'top') {\n x = matrix.e + targetWidth / 2 - 2;\n y = matrix.f;\n } else if (position === 'bottom') {\n x = matrix.e + targetWidth / 2 - 2;\n y = matrix.f + targetHeight;\n }\n const contentStyle = options.style?.contentStyle || { fill: '#fff' };\n const pannelStyle = options.style?.panelStyle || { background: '#14161c', cornerRadius: 4 };\n this.group.setAttributes({\n content: options.tipContent,\n position,\n visibleAll: true,\n visible: true,\n contentStyle,\n panel: {\n ...pannelStyle,\n visible: true\n },\n x,\n y\n } as any);\n }\n\n hide() {\n this.group.setAttributes({\n visibleAll: false,\n visible: false\n });\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import type { Gantt } from '../Gantt';
2
+ export declare function syncScrollStateToTable(gantt: Gantt): void;
3
+ export declare function syncScrollStateFromTable(gantt: Gantt): void;
4
+ export declare function syncEditCellFromTable(gantt: Gantt): void;
5
+ export declare function syncTreeChangeFromTable(gantt: Gantt): void;
6
+ export declare function syncSortFromTable(gantt: Gantt): void;
7
+ export declare function syncDragOrderFromTable(gantt: Gantt): void;
8
+ export declare function syncTableWidthFromTable(gantt: Gantt): void;
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: !0
5
+ }), exports.syncTableWidthFromTable = exports.syncDragOrderFromTable = exports.syncSortFromTable = exports.syncTreeChangeFromTable = exports.syncEditCellFromTable = exports.syncScrollStateFromTable = exports.syncScrollStateToTable = void 0;
6
+
7
+ const gantt_helper_1 = require("../gantt-helper"), ts_types_1 = require("../ts-types");
8
+
9
+ function syncScrollStateToTable(gantt) {
10
+ const {scroll: scroll} = gantt.stateManager, {verticalBarPos: verticalBarPos} = scroll;
11
+ gantt.taskListTableInstance.stateManager.setScrollTop(verticalBarPos, void 0, !1);
12
+ }
13
+
14
+ function syncScrollStateFromTable(gantt) {
15
+ var _a;
16
+ gantt.taskListTableInstance && (null === (_a = gantt.taskListTableInstance) || void 0 === _a || _a.on("scroll", (args => {
17
+ if ("vertical" === args.scrollDirection) {
18
+ const {scroll: scroll} = gantt.taskListTableInstance.stateManager, {verticalBarPos: verticalBarPos} = scroll;
19
+ gantt.stateManager.scroll.verticalBarPos !== verticalBarPos && gantt.stateManager.setScrollTop(verticalBarPos, !1);
20
+ }
21
+ })));
22
+ }
23
+
24
+ function syncEditCellFromTable(gantt) {
25
+ var _a;
26
+ null === (_a = gantt.taskListTableInstance) || void 0 === _a || _a.on("change_cell_value", (args => {
27
+ const {col: col, row: row} = args;
28
+ gantt.taskListTableInstance.isHeader(col, row) || gantt._refreshTaskBar(row - gantt.taskListTableInstance.columnHeaderLevelCount);
29
+ }));
30
+ }
31
+
32
+ function syncTreeChangeFromTable(gantt) {
33
+ var _a;
34
+ null === (_a = gantt.taskListTableInstance) || void 0 === _a || _a.on("tree_hierarchy_state_change", (args => {
35
+ var _a, _b;
36
+ const {row: row, hierarchyState: hierarchyState} = args;
37
+ if (gantt.parsedOptions.tasksShowMode === ts_types_1.TasksShowMode.Project_Sub_Tasks_Inline) {
38
+ const recordIndex = row - gantt.taskListTableInstance.columnHeaderLevelCount, record = gantt.getRecordByIndex(recordIndex);
39
+ record && record.type === ts_types_1.TaskType.PROJECT && (null === (_a = record.children) || void 0 === _a ? void 0 : _a.length) > 0 && (record.hierarchyState = hierarchyState);
40
+ }
41
+ gantt._syncPropsFromTable(), gantt.scenegraph.refreshTaskBarsAndGrid(), !gantt.taskListTableInstance.checkHasColumnAutoWidth() || "auto" !== (null === (_b = gantt.options.taskListTable) || void 0 === _b ? void 0 : _b.tableWidth) && -1 !== gantt.taskTableWidth || _syncTableSize(gantt);
42
+ const left = gantt.stateManager.scroll.horizontalBarPos, top = gantt.stateManager.scroll.verticalBarPos;
43
+ gantt.scenegraph.setX(-left), gantt.scenegraph.setY(-top);
44
+ }));
45
+ }
46
+
47
+ function syncSortFromTable(gantt) {
48
+ var _a;
49
+ null === (_a = gantt.taskListTableInstance) || void 0 === _a || _a.on("after_sort", (args => {
50
+ gantt.scenegraph.refreshTaskBars();
51
+ const left = gantt.stateManager.scroll.horizontalBarPos, top = gantt.stateManager.scroll.verticalBarPos;
52
+ gantt.scenegraph.setX(-left), gantt.scenegraph.setY(-top);
53
+ }));
54
+ }
55
+
56
+ function syncDragOrderFromTable(gantt) {
57
+ var _a, _b, _c, _d;
58
+ null === (_a = gantt.taskListTableInstance) || void 0 === _a || _a.on("change_header_position", (args => {
59
+ gantt.parsedOptions.tasksShowMode === ts_types_1.TasksShowMode.Sub_Tasks_Arrange || gantt.parsedOptions.tasksShowMode === ts_types_1.TasksShowMode.Sub_Tasks_Compact || gantt.parsedOptions.tasksShowMode === ts_types_1.TasksShowMode.Sub_Tasks_Separate || gantt.parsedOptions.tasksShowMode === ts_types_1.TasksShowMode.Project_Sub_Tasks_Inline ? gantt.scenegraph.refreshTaskBarsAndGrid() : gantt.scenegraph.refreshTaskBars(),
60
+ gantt.scenegraph.dragOrderLine.hideDragLine();
61
+ const left = gantt.stateManager.scroll.horizontalBarPos, top = gantt.stateManager.scroll.verticalBarPos;
62
+ gantt.scenegraph.setX(-left), gantt.scenegraph.setY(-top);
63
+ })), null === (_b = gantt.taskListTableInstance) || void 0 === _b || _b.on("change_header_position_start", (args => {
64
+ const {col: col, row: row, x: x, y: y, backX: backX, lineX: lineX, backY: backY, lineY: lineY, event: event} = args;
65
+ gantt.scenegraph.dragOrderLine.showDragLine(lineY), gantt.scenegraph.updateNextFrame();
66
+ })), null === (_c = gantt.taskListTableInstance) || void 0 === _c || _c.on("changing_header_position", (args => {
67
+ const {col: col, row: row, x: x, y: y, backX: backX, lineX: lineX, backY: backY, lineY: lineY, event: event} = args;
68
+ gantt.scenegraph.dragOrderLine.showDragLine(lineY), gantt.scenegraph.updateNextFrame();
69
+ })), null === (_d = gantt.taskListTableInstance) || void 0 === _d || _d.on("change_header_position_fail", (args => {
70
+ gantt.scenegraph.dragOrderLine.hideDragLine(), gantt.scenegraph.updateNextFrame();
71
+ }));
72
+ }
73
+
74
+ function syncTableWidthFromTable(gantt) {
75
+ var _a;
76
+ null === (_a = gantt.taskListTableInstance) || void 0 === _a || _a.on("resize_column", (args => {
77
+ _syncTableSize(gantt);
78
+ }));
79
+ }
80
+
81
+ function _syncTableSize(gantt) {
82
+ var _a, _b, _c, _d, _e, _f, _g, _h;
83
+ const oldTaskTableWidth = gantt.taskTableWidth;
84
+ gantt.taskTableWidth = gantt.taskListTableInstance.getAllColsWidth() + gantt.parsedOptions.outerFrameStyle.borderLineWidth,
85
+ (null === (_b = null === (_a = gantt.options) || void 0 === _a ? void 0 : _a.taskListTable) || void 0 === _b ? void 0 : _b.maxTableWidth) && (gantt.taskTableWidth = Math.min(null === (_d = null === (_c = gantt.options) || void 0 === _c ? void 0 : _c.taskListTable) || void 0 === _d ? void 0 : _d.maxTableWidth, gantt.taskTableWidth)),
86
+ (null === (_f = null === (_e = gantt.options) || void 0 === _e ? void 0 : _e.taskListTable) || void 0 === _f ? void 0 : _f.minTableWidth) && (gantt.taskTableWidth = Math.max(null === (_h = null === (_g = gantt.options) || void 0 === _g ? void 0 : _g.taskListTable) || void 0 === _h ? void 0 : _h.minTableWidth, gantt.taskTableWidth)),
87
+ oldTaskTableWidth !== gantt.taskTableWidth && (gantt.element.style.left = gantt.taskTableWidth ? `${gantt.taskTableWidth}px` : "0px",
88
+ gantt.taskListTableInstance.setCanvasSize(gantt.taskTableWidth, gantt.tableNoFrameHeight + 2 * gantt.parsedOptions.outerFrameStyle.borderLineWidth),
89
+ gantt._updateSize(), (0, gantt_helper_1.updateSplitLineAndResizeLine)(gantt), gantt.zoomScaleManager && gantt.zoomScaleManager.handleTableWidthChange());
90
+ }
91
+
92
+ //# sourceMappingURL=gantt-table-sync.js.map
93
+ exports.syncScrollStateToTable = syncScrollStateToTable, exports.syncScrollStateFromTable = syncScrollStateFromTable,
94
+ exports.syncEditCellFromTable = syncEditCellFromTable, exports.syncTreeChangeFromTable = syncTreeChangeFromTable,
95
+ exports.syncSortFromTable = syncSortFromTable, exports.syncDragOrderFromTable = syncDragOrderFromTable,
96
+ exports.syncTableWidthFromTable = syncTableWidthFromTable;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/state/gantt-table-sync.ts"],"names":[],"mappings":"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","file":"gantt-table-sync.js","sourcesContent":["import type { Gantt } from '../Gantt';\nimport { updateSplitLineAndResizeLine } from '../gantt-helper';\nimport { TasksShowMode, TaskType } from '../ts-types';\n\nexport function syncScrollStateToTable(gantt: Gantt) {\n const { scroll } = gantt.stateManager;\n const { verticalBarPos } = scroll;\n gantt.taskListTableInstance.stateManager.setScrollTop(verticalBarPos, undefined, false);\n}\n\nexport function syncScrollStateFromTable(gantt: Gantt) {\n if (gantt.taskListTableInstance) {\n gantt.taskListTableInstance?.on('scroll', (args: any) => {\n if (args.scrollDirection === 'vertical') {\n const { scroll } = gantt.taskListTableInstance.stateManager;\n const { verticalBarPos } = scroll;\n if (gantt.stateManager.scroll.verticalBarPos !== verticalBarPos) {\n gantt.stateManager.setScrollTop(verticalBarPos, false);\n }\n }\n });\n }\n}\nexport function syncEditCellFromTable(gantt: Gantt) {\n gantt.taskListTableInstance?.on('change_cell_value', (args: any) => {\n const { col, row } = args;\n if (!gantt.taskListTableInstance.isHeader(col, row)) {\n gantt._refreshTaskBar(row - gantt.taskListTableInstance.columnHeaderLevelCount);\n }\n // const record = gantt.getRecordByIndex(row - gantt.taskListTableInstance.columnHeaderLevelCount);\n // debugger;\n });\n}\n\nexport function syncTreeChangeFromTable(gantt: Gantt) {\n gantt.taskListTableInstance?.on('tree_hierarchy_state_change', (args: any) => {\n // Get the changed record and its hierarchy state from the event args\n const { row, hierarchyState } = args;\n\n if (gantt.parsedOptions.tasksShowMode === TasksShowMode.Project_Sub_Tasks_Inline) {\n // For Project_Sub_Tasks_Inline mode, we need to ensure the record's hierarchy state is updated\n // before refreshing the task bars\n const recordIndex = row - gantt.taskListTableInstance.columnHeaderLevelCount;\n const record = gantt.getRecordByIndex(recordIndex);\n\n if (record && record.type === TaskType.PROJECT && record.children?.length > 0) {\n // Update the record's hierarchyState explicitly to ensure it's synchronized\n // console.log(\n // `Updating hierarchyState for record at index ${recordIndex} from ${record.hierarchyState} to ${hierarchyState}`\n // );\n record.hierarchyState = hierarchyState;\n }\n }\n\n gantt._syncPropsFromTable();\n gantt.scenegraph.refreshTaskBarsAndGrid();\n\n if (\n gantt.taskListTableInstance.checkHasColumnAutoWidth() &&\n (gantt.options.taskListTable?.tableWidth === 'auto' || gantt.taskTableWidth === -1)\n ) {\n // 和监听resize_column事件处理逻辑一致\n _syncTableSize(gantt);\n }\n\n const left = gantt.stateManager.scroll.horizontalBarPos;\n const top = gantt.stateManager.scroll.verticalBarPos;\n gantt.scenegraph.setX(-left);\n gantt.scenegraph.setY(-top);\n });\n}\nexport function syncSortFromTable(gantt: Gantt) {\n gantt.taskListTableInstance?.on('after_sort', (args: any) => {\n gantt.scenegraph.refreshTaskBars();\n const left = gantt.stateManager.scroll.horizontalBarPos;\n const top = gantt.stateManager.scroll.verticalBarPos;\n gantt.scenegraph.setX(-left);\n gantt.scenegraph.setY(-top);\n });\n}\nexport function syncDragOrderFromTable(gantt: Gantt) {\n gantt.taskListTableInstance?.on('change_header_position', (args: any) => {\n if (\n gantt.parsedOptions.tasksShowMode === TasksShowMode.Sub_Tasks_Arrange ||\n gantt.parsedOptions.tasksShowMode === TasksShowMode.Sub_Tasks_Compact ||\n gantt.parsedOptions.tasksShowMode === TasksShowMode.Sub_Tasks_Separate ||\n gantt.parsedOptions.tasksShowMode === TasksShowMode.Project_Sub_Tasks_Inline\n ) {\n gantt.scenegraph.refreshTaskBarsAndGrid();\n } else {\n gantt.scenegraph.refreshTaskBars();\n }\n gantt.scenegraph.dragOrderLine.hideDragLine();\n const left = gantt.stateManager.scroll.horizontalBarPos;\n const top = gantt.stateManager.scroll.verticalBarPos;\n gantt.scenegraph.setX(-left);\n gantt.scenegraph.setY(-top);\n });\n gantt.taskListTableInstance?.on('change_header_position_start', (args: any) => {\n const { col, row, x, y, backX, lineX, backY, lineY, event } = args;\n\n gantt.scenegraph.dragOrderLine.showDragLine(lineY);\n gantt.scenegraph.updateNextFrame();\n });\n gantt.taskListTableInstance?.on('changing_header_position', (args: any) => {\n const { col, row, x, y, backX, lineX, backY, lineY, event } = args;\n gantt.scenegraph.dragOrderLine.showDragLine(lineY);\n gantt.scenegraph.updateNextFrame();\n });\n gantt.taskListTableInstance?.on('change_header_position_fail', (args: any) => {\n gantt.scenegraph.dragOrderLine.hideDragLine();\n gantt.scenegraph.updateNextFrame();\n });\n}\n\nexport function syncTableWidthFromTable(gantt: Gantt) {\n gantt.taskListTableInstance?.on('resize_column', (args: any) => {\n _syncTableSize(gantt);\n });\n}\n\nfunction _syncTableSize(gantt: Gantt) {\n const oldTaskTableWidth: number = gantt.taskTableWidth;\n\n gantt.taskTableWidth =\n gantt.taskListTableInstance.getAllColsWidth() + (gantt.parsedOptions.outerFrameStyle.borderLineWidth as number);\n\n if (gantt.options?.taskListTable?.maxTableWidth) {\n gantt.taskTableWidth = Math.min(gantt.options?.taskListTable?.maxTableWidth, gantt.taskTableWidth);\n }\n if (gantt.options?.taskListTable?.minTableWidth) {\n gantt.taskTableWidth = Math.max(gantt.options?.taskListTable?.minTableWidth, gantt.taskTableWidth);\n }\n if (oldTaskTableWidth === gantt.taskTableWidth) {\n return;\n }\n gantt.element.style.left = gantt.taskTableWidth ? `${gantt.taskTableWidth}px` : '0px';\n gantt.taskListTableInstance.setCanvasSize(\n gantt.taskTableWidth,\n gantt.tableNoFrameHeight + (gantt.parsedOptions.outerFrameStyle.borderLineWidth as number) * 2\n );\n gantt._updateSize();\n updateSplitLineAndResizeLine(gantt);\n\n if (gantt.zoomScaleManager) {\n gantt.zoomScaleManager.handleTableWidthChange();\n }\n}\n"]}