@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.
- package/README.md +213 -0
- package/README.zh-CN.md +215 -0
- package/cjs/Gantt.d.ts +200 -0
- package/cjs/Gantt.js +582 -0
- package/cjs/Gantt.js.map +1 -0
- package/cjs/components/Menu.d.ts +1 -0
- package/cjs/components/Menu.js +1 -0
- package/cjs/components/Menu.js.map +1 -0
- package/cjs/components/MenuElementStyle.d.ts +1 -0
- package/cjs/components/MenuElementStyle.js +12 -0
- package/cjs/components/MenuElementStyle.js.map +1 -0
- package/cjs/data/DataSource.d.ts +9 -0
- package/cjs/data/DataSource.js +76 -0
- package/cjs/data/DataSource.js.map +1 -0
- package/cjs/env.d.ts +19 -0
- package/cjs/env.js +48 -0
- package/cjs/env.js.map +1 -0
- package/cjs/event/EventHandler.d.ts +47 -0
- package/cjs/event/EventHandler.js +128 -0
- package/cjs/event/EventHandler.js.map +1 -0
- package/cjs/event/EventTarget.d.ts +12 -0
- package/cjs/event/EventTarget.js +67 -0
- package/cjs/event/EventTarget.js.map +1 -0
- package/cjs/event/event-manager.d.ts +34 -0
- package/cjs/event/event-manager.js +369 -0
- package/cjs/event/event-manager.js.map +1 -0
- package/cjs/event/scroll.d.ts +8 -0
- package/cjs/event/scroll.js +112 -0
- package/cjs/event/scroll.js.map +1 -0
- package/cjs/event/touch.d.ts +2 -0
- package/cjs/event/touch.js +86 -0
- package/cjs/event/touch.js.map +1 -0
- package/cjs/gantt-helper.d.ts +63 -0
- package/cjs/gantt-helper.js +712 -0
- package/cjs/gantt-helper.js.map +1 -0
- package/cjs/index.d.ts +10 -0
- package/cjs/index.js +60 -0
- package/cjs/index.js.map +1 -0
- package/cjs/plugins/index.d.ts +2 -0
- package/cjs/plugins/index.js +15 -0
- package/cjs/plugins/index.js.map +1 -0
- package/cjs/plugins/interface.d.ts +10 -0
- package/cjs/plugins/interface.js +6 -0
- package/cjs/plugins/interface.js.map +1 -0
- package/cjs/plugins/plugin-manager.d.ts +16 -0
- package/cjs/plugins/plugin-manager.js +63 -0
- package/cjs/plugins/plugin-manager.js.map +1 -0
- package/cjs/register.d.ts +1 -0
- package/cjs/register.js +1 -0
- package/cjs/register.js.map +1 -0
- package/cjs/scenegraph/dependency-link.d.ts +48 -0
- package/cjs/scenegraph/dependency-link.js +480 -0
- package/cjs/scenegraph/dependency-link.js.map +1 -0
- package/cjs/scenegraph/drag-order-line.d.ts +12 -0
- package/cjs/scenegraph/drag-order-line.js +49 -0
- package/cjs/scenegraph/drag-order-line.js.map +1 -0
- package/cjs/scenegraph/frame-border.d.ts +10 -0
- package/cjs/scenegraph/frame-border.js +58 -0
- package/cjs/scenegraph/frame-border.js.map +1 -0
- package/cjs/scenegraph/gantt-node.d.ts +22 -0
- package/cjs/scenegraph/gantt-node.js +66 -0
- package/cjs/scenegraph/gantt-node.js.map +1 -0
- package/cjs/scenegraph/graphic/group-contribution-render.d.ts +12 -0
- package/cjs/scenegraph/graphic/group-contribution-render.js +37 -0
- package/cjs/scenegraph/graphic/group-contribution-render.js.map +1 -0
- package/cjs/scenegraph/graphic/index.d.ts +3 -0
- package/cjs/scenegraph/graphic/index.js +13 -0
- package/cjs/scenegraph/graphic/index.js.map +1 -0
- package/cjs/scenegraph/grid.d.ts +34 -0
- package/cjs/scenegraph/grid.js +316 -0
- package/cjs/scenegraph/grid.js.map +1 -0
- package/cjs/scenegraph/mark-line.d.ts +13 -0
- package/cjs/scenegraph/mark-line.js +109 -0
- package/cjs/scenegraph/mark-line.js.map +1 -0
- package/cjs/scenegraph/scenegraph.d.ts +59 -0
- package/cjs/scenegraph/scenegraph.js +240 -0
- package/cjs/scenegraph/scenegraph.js.map +1 -0
- package/cjs/scenegraph/scroll-bar.d.ts +19 -0
- package/cjs/scenegraph/scroll-bar.js +150 -0
- package/cjs/scenegraph/scroll-bar.js.map +1 -0
- package/cjs/scenegraph/task-bar.d.ts +40 -0
- package/cjs/scenegraph/task-bar.js +476 -0
- package/cjs/scenegraph/task-bar.js.map +1 -0
- package/cjs/scenegraph/task-creation-button.d.ts +13 -0
- package/cjs/scenegraph/task-creation-button.js +86 -0
- package/cjs/scenegraph/task-creation-button.js.map +1 -0
- package/cjs/scenegraph/timeline-header.d.ts +14 -0
- package/cjs/scenegraph/timeline-header.js +190 -0
- package/cjs/scenegraph/timeline-header.js.map +1 -0
- package/cjs/scenegraph/tooltip.d.ts +9 -0
- package/cjs/scenegraph/tooltip.js +59 -0
- package/cjs/scenegraph/tooltip.js.map +1 -0
- package/cjs/state/gantt-table-sync.d.ts +8 -0
- package/cjs/state/gantt-table-sync.js +96 -0
- package/cjs/state/gantt-table-sync.js.map +1 -0
- package/cjs/state/state-manager.d.ts +127 -0
- package/cjs/state/state-manager.js +634 -0
- package/cjs/state/state-manager.js.map +1 -0
- package/cjs/sub-tasks-inline-helper.d.ts +1 -0
- package/cjs/sub-tasks-inline-helper.js +1 -0
- package/cjs/sub-tasks-inline-helper.js.map +1 -0
- package/cjs/themes.d.ts +1 -0
- package/cjs/themes.js +1 -0
- package/cjs/themes.js.map +1 -0
- package/cjs/tools/debounce.d.ts +1 -0
- package/cjs/tools/debounce.js +51 -0
- package/cjs/tools/debounce.js.map +1 -0
- package/cjs/tools/dom.d.ts +1 -0
- package/cjs/tools/dom.js +11 -0
- package/cjs/tools/dom.js.map +1 -0
- package/cjs/tools/index.d.ts +2 -0
- package/cjs/tools/index.js +30 -0
- package/cjs/tools/index.js.map +1 -0
- package/cjs/tools/inertia.d.ts +15 -0
- package/cjs/tools/inertia.js +40 -0
- package/cjs/tools/inertia.js.map +1 -0
- package/cjs/tools/isx.d.ts +16 -0
- package/cjs/tools/isx.js +117 -0
- package/cjs/tools/isx.js.map +1 -0
- package/cjs/tools/pixel-ratio.d.ts +2 -0
- package/cjs/tools/pixel-ratio.js +16 -0
- package/cjs/tools/pixel-ratio.js.map +1 -0
- package/cjs/tools/util.d.ts +19 -0
- package/cjs/tools/util.js +404 -0
- package/cjs/tools/util.js.map +1 -0
- package/cjs/ts-types/EVENT_TYPE.d.ts +19 -0
- package/cjs/ts-types/EVENT_TYPE.js +22 -0
- package/cjs/ts-types/EVENT_TYPE.js.map +1 -0
- package/cjs/ts-types/common.d.ts +11 -0
- package/cjs/ts-types/common.js +10 -0
- package/cjs/ts-types/common.js.map +1 -0
- package/cjs/ts-types/events.d.ts +132 -0
- package/cjs/ts-types/events.js +6 -0
- package/cjs/ts-types/events.js.map +1 -0
- package/cjs/ts-types/gantt-engine.d.ts +344 -0
- package/cjs/ts-types/gantt-engine.js +18 -0
- package/cjs/ts-types/gantt-engine.js.map +1 -0
- package/cjs/ts-types/index.d.ts +5 -0
- package/cjs/ts-types/index.js +23 -0
- package/cjs/ts-types/index.js.map +1 -0
- package/cjs/ts-types/zoom-scale.d.ts +32 -0
- package/cjs/ts-types/zoom-scale.js +6 -0
- package/cjs/ts-types/zoom-scale.js.map +1 -0
- package/cjs/vrender.d.ts +1 -0
- package/cjs/vrender.js +60 -0
- package/cjs/vrender.js.map +1 -0
- package/cjs/vtable.d.ts +1 -0
- package/cjs/vtable.js +35 -0
- package/cjs/vtable.js.map +1 -0
- package/cjs/zoom-scale/DataZoomIntegration.d.ts +50 -0
- package/cjs/zoom-scale/DataZoomIntegration.js +261 -0
- package/cjs/zoom-scale/DataZoomIntegration.js.map +1 -0
- package/cjs/zoom-scale/ZoomScaleManager.d.ts +55 -0
- package/cjs/zoom-scale/ZoomScaleManager.js +328 -0
- package/cjs/zoom-scale/ZoomScaleManager.js.map +1 -0
- package/cjs/zoom-scale/index.d.ts +4 -0
- package/cjs/zoom-scale/index.js +24 -0
- package/cjs/zoom-scale/index.js.map +1 -0
- package/dist/vtable-gantt.js +76328 -0
- package/dist/vtable-gantt.min.js +15 -0
- package/es/Gantt.d.ts +200 -0
- package/es/Gantt.js +584 -0
- package/es/Gantt.js.map +1 -0
- package/es/components/Menu.d.ts +1 -0
- package/es/components/Menu.js +1 -0
- package/es/components/Menu.js.map +1 -0
- package/es/components/MenuElementStyle.d.ts +1 -0
- package/es/components/MenuElementStyle.js +6 -0
- package/es/components/MenuElementStyle.js.map +1 -0
- package/es/data/DataSource.d.ts +9 -0
- package/es/data/DataSource.js +63 -0
- package/es/data/DataSource.js.map +1 -0
- package/es/env.d.ts +19 -0
- package/es/env.js +42 -0
- package/es/env.js.map +1 -0
- package/es/event/EventHandler.d.ts +47 -0
- package/es/event/EventHandler.js +119 -0
- package/es/event/EventHandler.js.map +1 -0
- package/es/event/EventTarget.d.ts +12 -0
- package/es/event/EventTarget.js +58 -0
- package/es/event/EventTarget.js.map +1 -0
- package/es/event/event-manager.d.ts +34 -0
- package/es/event/event-manager.js +376 -0
- package/es/event/event-manager.js.map +1 -0
- package/es/event/scroll.d.ts +8 -0
- package/es/event/scroll.js +104 -0
- package/es/event/scroll.js.map +1 -0
- package/es/event/touch.d.ts +2 -0
- package/es/event/touch.js +78 -0
- package/es/event/touch.js.map +1 -0
- package/es/gantt-helper.d.ts +63 -0
- package/es/gantt-helper.js +683 -0
- package/es/gantt-helper.js.map +1 -0
- package/es/index.d.ts +10 -0
- package/es/index.js +16 -0
- package/es/index.js.map +1 -0
- package/es/plugins/index.d.ts +2 -0
- package/es/plugins/index.js +2 -0
- package/es/plugins/index.js.map +1 -0
- package/es/plugins/interface.d.ts +10 -0
- package/es/plugins/interface.js +2 -0
- package/es/plugins/interface.js.map +1 -0
- package/es/plugins/plugin-manager.d.ts +16 -0
- package/es/plugins/plugin-manager.js +55 -0
- package/es/plugins/plugin-manager.js.map +1 -0
- package/es/register.d.ts +1 -0
- package/es/register.js +1 -0
- package/es/register.js.map +1 -0
- package/es/scenegraph/dependency-link.d.ts +48 -0
- package/es/scenegraph/dependency-link.js +462 -0
- package/es/scenegraph/dependency-link.js.map +1 -0
- package/es/scenegraph/drag-order-line.d.ts +12 -0
- package/es/scenegraph/drag-order-line.js +40 -0
- package/es/scenegraph/drag-order-line.js.map +1 -0
- package/es/scenegraph/frame-border.d.ts +10 -0
- package/es/scenegraph/frame-border.js +51 -0
- package/es/scenegraph/frame-border.js.map +1 -0
- package/es/scenegraph/gantt-node.d.ts +22 -0
- package/es/scenegraph/gantt-node.js +64 -0
- package/es/scenegraph/gantt-node.js.map +1 -0
- package/es/scenegraph/graphic/group-contribution-render.d.ts +12 -0
- package/es/scenegraph/graphic/group-contribution-render.js +32 -0
- package/es/scenegraph/graphic/group-contribution-render.js.map +1 -0
- package/es/scenegraph/graphic/index.d.ts +3 -0
- package/es/scenegraph/graphic/index.js +8 -0
- package/es/scenegraph/graphic/index.js.map +1 -0
- package/es/scenegraph/grid.d.ts +34 -0
- package/es/scenegraph/grid.js +306 -0
- package/es/scenegraph/grid.js.map +1 -0
- package/es/scenegraph/mark-line.d.ts +13 -0
- package/es/scenegraph/mark-line.js +101 -0
- package/es/scenegraph/mark-line.js.map +1 -0
- package/es/scenegraph/scenegraph.d.ts +59 -0
- package/es/scenegraph/scenegraph.js +250 -0
- package/es/scenegraph/scenegraph.js.map +1 -0
- package/es/scenegraph/scroll-bar.d.ts +19 -0
- package/es/scenegraph/scroll-bar.js +144 -0
- package/es/scenegraph/scroll-bar.js.map +1 -0
- package/es/scenegraph/task-bar.d.ts +40 -0
- package/es/scenegraph/task-bar.js +475 -0
- package/es/scenegraph/task-bar.js.map +1 -0
- package/es/scenegraph/task-creation-button.d.ts +13 -0
- package/es/scenegraph/task-creation-button.js +78 -0
- package/es/scenegraph/task-creation-button.js.map +1 -0
- package/es/scenegraph/timeline-header.d.ts +14 -0
- package/es/scenegraph/timeline-header.js +186 -0
- package/es/scenegraph/timeline-header.js.map +1 -0
- package/es/scenegraph/tooltip.d.ts +9 -0
- package/es/scenegraph/tooltip.js +51 -0
- package/es/scenegraph/tooltip.js.map +1 -0
- package/es/state/gantt-table-sync.d.ts +8 -0
- package/es/state/gantt-table-sync.js +87 -0
- package/es/state/gantt-table-sync.js.map +1 -0
- package/es/state/state-manager.d.ts +127 -0
- package/es/state/state-manager.js +631 -0
- package/es/state/state-manager.js.map +1 -0
- package/es/sub-tasks-inline-helper.d.ts +1 -0
- package/es/sub-tasks-inline-helper.js +1 -0
- package/es/sub-tasks-inline-helper.js.map +1 -0
- package/es/themes.d.ts +1 -0
- package/es/themes.js +1 -0
- package/es/themes.js.map +1 -0
- package/es/tools/debounce.d.ts +1 -0
- package/es/tools/debounce.js +45 -0
- package/es/tools/debounce.js.map +1 -0
- package/es/tools/dom.d.ts +1 -0
- package/es/tools/dom.js +5 -0
- package/es/tools/dom.js.map +1 -0
- package/es/tools/index.d.ts +2 -0
- package/es/tools/index.js +4 -0
- package/es/tools/index.js.map +1 -0
- package/es/tools/inertia.d.ts +15 -0
- package/es/tools/inertia.js +31 -0
- package/es/tools/inertia.js.map +1 -0
- package/es/tools/isx.d.ts +16 -0
- package/es/tools/isx.js +80 -0
- package/es/tools/isx.js.map +1 -0
- package/es/tools/pixel-ratio.d.ts +2 -0
- package/es/tools/pixel-ratio.js +12 -0
- package/es/tools/pixel-ratio.js.map +1 -0
- package/es/tools/util.d.ts +19 -0
- package/es/tools/util.js +390 -0
- package/es/tools/util.js.map +1 -0
- package/es/ts-types/EVENT_TYPE.d.ts +19 -0
- package/es/ts-types/EVENT_TYPE.js +18 -0
- package/es/ts-types/EVENT_TYPE.js.map +1 -0
- package/es/ts-types/common.d.ts +11 -0
- package/es/ts-types/common.js +6 -0
- package/es/ts-types/common.js.map +1 -0
- package/es/ts-types/events.d.ts +132 -0
- package/es/ts-types/events.js +2 -0
- package/es/ts-types/events.js.map +1 -0
- package/es/ts-types/gantt-engine.d.ts +344 -0
- package/es/ts-types/gantt-engine.js +21 -0
- package/es/ts-types/gantt-engine.js.map +1 -0
- package/es/ts-types/index.d.ts +5 -0
- package/es/ts-types/index.js +10 -0
- package/es/ts-types/index.js.map +1 -0
- package/es/ts-types/zoom-scale.d.ts +32 -0
- package/es/ts-types/zoom-scale.js +2 -0
- package/es/ts-types/zoom-scale.js.map +1 -0
- package/es/vrender.d.ts +1 -0
- package/es/vrender.js +2 -0
- package/es/vrender.js.map +1 -0
- package/es/vtable.d.ts +1 -0
- package/es/vtable.js +2 -0
- package/es/vtable.js.map +1 -0
- package/es/zoom-scale/DataZoomIntegration.d.ts +50 -0
- package/es/zoom-scale/DataZoomIntegration.js +253 -0
- package/es/zoom-scale/DataZoomIntegration.js.map +1 -0
- package/es/zoom-scale/ZoomScaleManager.d.ts +55 -0
- package/es/zoom-scale/ZoomScaleManager.js +322 -0
- package/es/zoom-scale/ZoomScaleManager.js.map +1 -0
- package/es/zoom-scale/index.d.ts +4 -0
- package/es/zoom-scale/index.js +4 -0
- package/es/zoom-scale/index.js.map +1 -0
- 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":";;;AAAA,yDAAgE;AAKhE,MAAa,kBAAkB;IAK7B,YAAY,KAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IACD,eAAe;;QACb,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,2BAA2B,EAAE;YAChE,IAAI,CAAC,KAAK,GAAG,IAAI,eAAK,CAAC;gBACrB,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,GAAG;aACZ,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,IAAI,eAAK,CAAC;gBACrB,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,KAAK,EAAE,GAAG;gBACV,MAAM,EAAE,GAAG;gBACX,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAC,QAAQ;gBAC9E,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAC,SAAS;gBAChF,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAC,SAAS;gBAC7E,YAAY,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAC,YAAY,mCAAI,CAAC;gBAC3F,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAC,eAAe;aAClF,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,GAAG,IAAA,oBAAU,EAAC;gBAC7B,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAC,SAAS;gBAC7E,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAC,SAAS;gBAEhF,MAAM,EAAE;oBACN,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;oBACf,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE;iBAClB;aACF,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,IAAI,CAAC,cAAc,GAAG,IAAA,oBAAU,EAAC;gBAC/B,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAC,SAAS;gBAC7E,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,0BAA0B,CAAC,SAAS;gBAEhF,MAAM,EAAE;oBACN,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;oBACf,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;iBAClB;aACF,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC7C;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IACD,IAAI,CAAC,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,MAAc;QACtD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,2BAA2B,EAAE;YAChE,IAAI,CAAC,KAAK,CAAC,WAAW,CACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,2BAA2B,CAAC;gBAC3D,KAAK;gBACL,MAAM;gBACN,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;aAClC,CAAC,CAAC,aAAa,CACjB,CAAC;SACH;aAAM;YACL,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,QAAQ,EAAE;gBACzC,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;gBAChD,EAAE,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE;aAChE,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE;gBACvC,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE;gBAChD,EAAE,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE;aAChE,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,2BAA2B,EAAE;YAChE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;SAC7B;IACH,CAAC;CACF;AA1FD,gDA0FC","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"]}
|