tg-ganttchart 0.0.12 → 0.0.14
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.
|
@@ -3375,7 +3375,7 @@ if (typeof window !== 'undefined') {
|
|
|
3375
3375
|
// Indicate to webpack that this file can be concatenated
|
|
3376
3376
|
/* harmony default export */ var setPublicPath = (null);
|
|
3377
3377
|
|
|
3378
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/GanttElastic.standalone.vue?vue&type=template&id=
|
|
3378
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/GanttElastic.standalone.vue?vue&type=template&id=ba4781dc
|
|
3379
3379
|
var render = function render() {
|
|
3380
3380
|
var _vm = this,
|
|
3381
3381
|
_c = _vm._self._c;
|
|
@@ -3384,6 +3384,32 @@ var render = function render() {
|
|
|
3384
3384
|
"tasks": _vm.tasks,
|
|
3385
3385
|
"options": _vm.options,
|
|
3386
3386
|
"dynamicStyle": _vm.dynamicStyle
|
|
3387
|
+
},
|
|
3388
|
+
on: {
|
|
3389
|
+
"task-updated": function ($event) {
|
|
3390
|
+
return _vm.$emit('task-updated', $event);
|
|
3391
|
+
},
|
|
3392
|
+
"gantt-task-updated": function ($event) {
|
|
3393
|
+
return _vm.$emit('gantt-task-updated', $event);
|
|
3394
|
+
},
|
|
3395
|
+
"view-mode-changed": function ($event) {
|
|
3396
|
+
return _vm.$emit('view-mode-changed', $event);
|
|
3397
|
+
},
|
|
3398
|
+
"gantt-view-mode-changed": function ($event) {
|
|
3399
|
+
return _vm.$emit('gantt-view-mode-changed', $event);
|
|
3400
|
+
},
|
|
3401
|
+
"tasks-changed": function ($event) {
|
|
3402
|
+
return _vm.$emit('tasks-changed', $event);
|
|
3403
|
+
},
|
|
3404
|
+
"options-changed": function ($event) {
|
|
3405
|
+
return _vm.$emit('options-changed', $event);
|
|
3406
|
+
},
|
|
3407
|
+
"dynamic-style-changed": function ($event) {
|
|
3408
|
+
return _vm.$emit('dynamic-style-changed', $event);
|
|
3409
|
+
},
|
|
3410
|
+
"mounted": function ($event) {
|
|
3411
|
+
return _vm.$emit('mounted', $event);
|
|
3412
|
+
}
|
|
3387
3413
|
}
|
|
3388
3414
|
}, [_vm.components.header ? _c(_vm.components.header, {
|
|
3389
3415
|
tag: "component",
|
|
@@ -3401,8 +3427,8 @@ var render = function render() {
|
|
|
3401
3427
|
};
|
|
3402
3428
|
var staticRenderFns = [];
|
|
3403
3429
|
|
|
3404
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/GanttElastic.vue?vue&type=template&id=
|
|
3405
|
-
var
|
|
3430
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/GanttElastic.vue?vue&type=template&id=95091692
|
|
3431
|
+
var GanttElasticvue_type_template_id_95091692_render = function render() {
|
|
3406
3432
|
var _vm = this,
|
|
3407
3433
|
_c = _vm._self._c,
|
|
3408
3434
|
_setup = _vm._self._setupProxy;
|
|
@@ -3431,7 +3457,7 @@ var GanttElasticvue_type_template_id_100984c8_render = function render() {
|
|
|
3431
3457
|
}
|
|
3432
3458
|
}), _vm._t("footer")], 2);
|
|
3433
3459
|
};
|
|
3434
|
-
var
|
|
3460
|
+
var GanttElasticvue_type_template_id_95091692_staticRenderFns = [];
|
|
3435
3461
|
|
|
3436
3462
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js
|
|
3437
3463
|
var es_array_push = __webpack_require__(4114);
|
|
@@ -3674,8 +3700,8 @@ var component = normalizeComponent(
|
|
|
3674
3700
|
)
|
|
3675
3701
|
|
|
3676
3702
|
/* harmony default export */ var GanttViewFilter = (component.exports);
|
|
3677
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/MainView.vue?vue&type=template&id=
|
|
3678
|
-
var
|
|
3703
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/MainView.vue?vue&type=template&id=79e1eba9
|
|
3704
|
+
var MainViewvue_type_template_id_79e1eba9_render = function render() {
|
|
3679
3705
|
var _vm = this,
|
|
3680
3706
|
_c = _vm._self._c;
|
|
3681
3707
|
return _c('div', {
|
|
@@ -3784,10 +3810,10 @@ var MainViewvue_type_template_id_33392d22_render = function render() {
|
|
|
3784
3810
|
}
|
|
3785
3811
|
})])]);
|
|
3786
3812
|
};
|
|
3787
|
-
var
|
|
3813
|
+
var MainViewvue_type_template_id_79e1eba9_staticRenderFns = [];
|
|
3788
3814
|
|
|
3789
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/TaskList/TaskList.vue?vue&type=template&id=
|
|
3790
|
-
var
|
|
3815
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/TaskList/TaskList.vue?vue&type=template&id=b705a4ea
|
|
3816
|
+
var TaskListvue_type_template_id_b705a4ea_render = function render() {
|
|
3791
3817
|
var _vm = this,
|
|
3792
3818
|
_c = _vm._self._c;
|
|
3793
3819
|
return _c('div', {
|
|
@@ -3816,17 +3842,36 @@ var TaskListvue_type_template_id_74ce1216_render = function render() {
|
|
|
3816
3842
|
style: {
|
|
3817
3843
|
..._vm.root.style['task-list-items'],
|
|
3818
3844
|
height: _vm.root.state.options.rowsHeight + 'px'
|
|
3845
|
+
},
|
|
3846
|
+
on: {
|
|
3847
|
+
"scroll": _vm.onScroll
|
|
3819
3848
|
}
|
|
3820
|
-
},
|
|
3849
|
+
}, [_c('div', {
|
|
3850
|
+
style: {
|
|
3851
|
+
height: _vm.totalHeight + 'px',
|
|
3852
|
+
position: 'relative'
|
|
3853
|
+
}
|
|
3854
|
+
}, [_c('div', {
|
|
3855
|
+
style: {
|
|
3856
|
+
transform: `translateY(${_vm.offsetY}px)`,
|
|
3857
|
+
position: 'absolute',
|
|
3858
|
+
top: 0,
|
|
3859
|
+
left: 0,
|
|
3860
|
+
right: 0
|
|
3861
|
+
}
|
|
3862
|
+
}, _vm._l(_vm.visibleTasks, function (task) {
|
|
3821
3863
|
return _c('task-list-item', {
|
|
3822
3864
|
key: task.id,
|
|
3865
|
+
style: {
|
|
3866
|
+
height: _vm.taskHeight + 'px'
|
|
3867
|
+
},
|
|
3823
3868
|
attrs: {
|
|
3824
3869
|
"task": task
|
|
3825
3870
|
}
|
|
3826
3871
|
});
|
|
3827
|
-
}), 1)], 1)]);
|
|
3872
|
+
}), 1)])])], 1)]);
|
|
3828
3873
|
};
|
|
3829
|
-
var
|
|
3874
|
+
var TaskListvue_type_template_id_b705a4ea_staticRenderFns = [];
|
|
3830
3875
|
|
|
3831
3876
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/TaskList/TaskListHeader.vue?vue&type=template&id=2ecc0032
|
|
3832
3877
|
var TaskListHeadervue_type_template_id_2ecc0032_render = function render() {
|
|
@@ -3879,8 +3924,8 @@ var TaskListHeadervue_type_template_id_2ecc0032_render = function render() {
|
|
|
3879
3924
|
};
|
|
3880
3925
|
var TaskListHeadervue_type_template_id_2ecc0032_staticRenderFns = [];
|
|
3881
3926
|
|
|
3882
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Expander.vue?vue&type=template&id=
|
|
3883
|
-
var
|
|
3927
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Expander.vue?vue&type=template&id=4831d194
|
|
3928
|
+
var Expandervue_type_template_id_4831d194_render = function render() {
|
|
3884
3929
|
var _vm = this,
|
|
3885
3930
|
_c = _vm._self._c;
|
|
3886
3931
|
return _c('div', {
|
|
@@ -3917,7 +3962,7 @@ var Expandervue_type_template_id_ac398cf4_render = function render() {
|
|
|
3917
3962
|
}
|
|
3918
3963
|
})]) : _vm._e()]);
|
|
3919
3964
|
};
|
|
3920
|
-
var
|
|
3965
|
+
var Expandervue_type_template_id_4831d194_staticRenderFns = [];
|
|
3921
3966
|
|
|
3922
3967
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Expander.vue?vue&type=script&lang=js
|
|
3923
3968
|
|
|
@@ -3974,7 +4019,9 @@ var Expandervue_type_template_id_ac398cf4_staticRenderFns = [];
|
|
|
3974
4019
|
}
|
|
3975
4020
|
let collapsed = 0;
|
|
3976
4021
|
for (let i = 0, len = this.tasks.length; i < len; i++) {
|
|
3977
|
-
if (
|
|
4022
|
+
// Use original task if available (for virtual scrolling), otherwise use the task itself
|
|
4023
|
+
const originalTask = this.tasks[i]._originalTask || this.tasks[i];
|
|
4024
|
+
if (originalTask.collapsed) {
|
|
3978
4025
|
collapsed++;
|
|
3979
4026
|
}
|
|
3980
4027
|
}
|
|
@@ -3999,7 +4046,9 @@ var Expandervue_type_template_id_ac398cf4_staticRenderFns = [];
|
|
|
3999
4046
|
}
|
|
4000
4047
|
const collapsed = !this.collapsed;
|
|
4001
4048
|
this.tasks.forEach(task => {
|
|
4002
|
-
task
|
|
4049
|
+
// Use original task if available (for virtual scrolling), otherwise use the task itself
|
|
4050
|
+
const originalTask = task._originalTask || task;
|
|
4051
|
+
originalTask.collapsed = collapsed;
|
|
4003
4052
|
});
|
|
4004
4053
|
|
|
4005
4054
|
// Force reactivity update
|
|
@@ -4020,8 +4069,8 @@ var Expandervue_type_template_id_ac398cf4_staticRenderFns = [];
|
|
|
4020
4069
|
;
|
|
4021
4070
|
var Expander_component = normalizeComponent(
|
|
4022
4071
|
components_Expandervue_type_script_lang_js,
|
|
4023
|
-
|
|
4024
|
-
|
|
4072
|
+
Expandervue_type_template_id_4831d194_render,
|
|
4073
|
+
Expandervue_type_template_id_4831d194_staticRenderFns,
|
|
4025
4074
|
false,
|
|
4026
4075
|
null,
|
|
4027
4076
|
null,
|
|
@@ -4550,6 +4599,7 @@ var TaskListItem_component = normalizeComponent(
|
|
|
4550
4599
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/TaskList/TaskList.vue?vue&type=script&lang=js
|
|
4551
4600
|
|
|
4552
4601
|
|
|
4602
|
+
|
|
4553
4603
|
/* harmony default export */ var TaskListvue_type_script_lang_js = ({
|
|
4554
4604
|
name: 'TaskList',
|
|
4555
4605
|
components: {
|
|
@@ -4558,7 +4608,104 @@ var TaskListItem_component = normalizeComponent(
|
|
|
4558
4608
|
},
|
|
4559
4609
|
inject: ['root'],
|
|
4560
4610
|
data() {
|
|
4561
|
-
return {
|
|
4611
|
+
return {
|
|
4612
|
+
scrollTop: 0,
|
|
4613
|
+
containerHeight: 0,
|
|
4614
|
+
bufferSize: 5,
|
|
4615
|
+
// Number of extra items to render above and below viewport
|
|
4616
|
+
lastScrollTime: 0,
|
|
4617
|
+
scrollThrottleDelay: 16 // ~60fps
|
|
4618
|
+
};
|
|
4619
|
+
},
|
|
4620
|
+
computed: {
|
|
4621
|
+
/**
|
|
4622
|
+
* Get all tasks that should be visible
|
|
4623
|
+
*/
|
|
4624
|
+
allVisibleTasks() {
|
|
4625
|
+
return this.root.visibleTasks || [];
|
|
4626
|
+
},
|
|
4627
|
+
/**
|
|
4628
|
+
* Get task height
|
|
4629
|
+
*/
|
|
4630
|
+
taskHeight() {
|
|
4631
|
+
return this.root.state.options.row.height + this.root.state.options.chart.grid.horizontal.gap * 2;
|
|
4632
|
+
},
|
|
4633
|
+
/**
|
|
4634
|
+
* Get total height of all tasks
|
|
4635
|
+
*/
|
|
4636
|
+
totalHeight() {
|
|
4637
|
+
return this.allVisibleTasks.length * this.taskHeight;
|
|
4638
|
+
},
|
|
4639
|
+
/**
|
|
4640
|
+
* Get visible range for virtual scrolling
|
|
4641
|
+
*/
|
|
4642
|
+
visibleRange() {
|
|
4643
|
+
const start = Math.max(0, Math.floor(this.scrollTop / this.taskHeight) - this.bufferSize);
|
|
4644
|
+
const end = Math.min(this.allVisibleTasks.length, Math.ceil((this.scrollTop + this.containerHeight) / this.taskHeight) + this.bufferSize);
|
|
4645
|
+
return {
|
|
4646
|
+
start,
|
|
4647
|
+
end
|
|
4648
|
+
};
|
|
4649
|
+
},
|
|
4650
|
+
/**
|
|
4651
|
+
* Get visible tasks for virtual scrolling
|
|
4652
|
+
* This respects the expand/collapse state from the root component
|
|
4653
|
+
*/
|
|
4654
|
+
visibleTasks() {
|
|
4655
|
+
// First get all tasks that should be visible based on expand/collapse state
|
|
4656
|
+
const allVisibleTasks = this.root.visibleTasks || [];
|
|
4657
|
+
|
|
4658
|
+
// If we have virtual scrolling enabled and enough tasks, apply viewport culling
|
|
4659
|
+
if (allVisibleTasks.length > 100 && this.containerHeight > 0) {
|
|
4660
|
+
const {
|
|
4661
|
+
start,
|
|
4662
|
+
end
|
|
4663
|
+
} = this.visibleRange;
|
|
4664
|
+
return allVisibleTasks.slice(start, end).map((task, index) => {
|
|
4665
|
+
// Create a wrapper object that preserves the original task reference
|
|
4666
|
+
return {
|
|
4667
|
+
...task,
|
|
4668
|
+
virtualIndex: start + index,
|
|
4669
|
+
_originalTask: task // Keep reference to original task for expander
|
|
4670
|
+
};
|
|
4671
|
+
});
|
|
4672
|
+
}
|
|
4673
|
+
|
|
4674
|
+
// For smaller datasets or when virtual scrolling is not needed, return all visible tasks
|
|
4675
|
+
return allVisibleTasks.map((task, index) => ({
|
|
4676
|
+
...task,
|
|
4677
|
+
virtualIndex: index,
|
|
4678
|
+
_originalTask: task // Keep reference to original task for expander
|
|
4679
|
+
}));
|
|
4680
|
+
},
|
|
4681
|
+
/**
|
|
4682
|
+
* Get offset for virtual scrolling
|
|
4683
|
+
*/
|
|
4684
|
+
offsetY() {
|
|
4685
|
+
return this.visibleRange.start * this.taskHeight;
|
|
4686
|
+
}
|
|
4687
|
+
},
|
|
4688
|
+
methods: {
|
|
4689
|
+
/**
|
|
4690
|
+
* Handle scroll event with throttling
|
|
4691
|
+
*/
|
|
4692
|
+
onScroll(event) {
|
|
4693
|
+
const now = Date.now();
|
|
4694
|
+
if (now - this.lastScrollTime < this.scrollThrottleDelay) {
|
|
4695
|
+
return;
|
|
4696
|
+
}
|
|
4697
|
+
this.lastScrollTime = now;
|
|
4698
|
+
this.scrollTop = event.target.scrollTop;
|
|
4699
|
+
this.containerHeight = event.target.clientHeight;
|
|
4700
|
+
},
|
|
4701
|
+
/**
|
|
4702
|
+
* Update container height when component updates
|
|
4703
|
+
*/
|
|
4704
|
+
updateContainerHeight() {
|
|
4705
|
+
if (this.$refs.taskListItems) {
|
|
4706
|
+
this.containerHeight = this.$refs.taskListItems.clientHeight;
|
|
4707
|
+
}
|
|
4708
|
+
}
|
|
4562
4709
|
},
|
|
4563
4710
|
/**
|
|
4564
4711
|
* Mounted
|
|
@@ -4567,6 +4714,30 @@ var TaskListItem_component = normalizeComponent(
|
|
|
4567
4714
|
this.root.state.refs.taskListWrapper = this.$refs.taskListWrapper;
|
|
4568
4715
|
this.root.state.refs.taskList = this.$refs.taskList;
|
|
4569
4716
|
this.root.state.refs.taskListItems = this.$refs.taskListItems;
|
|
4717
|
+
|
|
4718
|
+
// Initialize container height
|
|
4719
|
+
this.$nextTick(() => {
|
|
4720
|
+
this.updateContainerHeight();
|
|
4721
|
+
});
|
|
4722
|
+
},
|
|
4723
|
+
/**
|
|
4724
|
+
* Watch for changes in visible tasks to update virtual scrolling
|
|
4725
|
+
*/
|
|
4726
|
+
watch: {
|
|
4727
|
+
'root.visibleTasks': {
|
|
4728
|
+
handler() {
|
|
4729
|
+
this.$nextTick(() => {
|
|
4730
|
+
this.updateContainerHeight();
|
|
4731
|
+
});
|
|
4732
|
+
},
|
|
4733
|
+
deep: true
|
|
4734
|
+
}
|
|
4735
|
+
},
|
|
4736
|
+
/**
|
|
4737
|
+
* Updated lifecycle hook
|
|
4738
|
+
*/
|
|
4739
|
+
updated() {
|
|
4740
|
+
this.updateContainerHeight();
|
|
4570
4741
|
}
|
|
4571
4742
|
});
|
|
4572
4743
|
;// ./src/components/TaskList/TaskList.vue?vue&type=script&lang=js
|
|
@@ -4581,8 +4752,8 @@ var TaskListItem_component = normalizeComponent(
|
|
|
4581
4752
|
;
|
|
4582
4753
|
var TaskList_component = normalizeComponent(
|
|
4583
4754
|
TaskList_TaskListvue_type_script_lang_js,
|
|
4584
|
-
|
|
4585
|
-
|
|
4755
|
+
TaskListvue_type_template_id_b705a4ea_render,
|
|
4756
|
+
TaskListvue_type_template_id_b705a4ea_staticRenderFns,
|
|
4586
4757
|
false,
|
|
4587
4758
|
null,
|
|
4588
4759
|
null,
|
|
@@ -4591,8 +4762,8 @@ var TaskList_component = normalizeComponent(
|
|
|
4591
4762
|
)
|
|
4592
4763
|
|
|
4593
4764
|
/* harmony default export */ var TaskList = (TaskList_component.exports);
|
|
4594
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Chart.vue?vue&type=template&id=
|
|
4595
|
-
var
|
|
4765
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Chart.vue?vue&type=template&id=0856b85c
|
|
4766
|
+
var Chartvue_type_template_id_0856b85c_render = function render() {
|
|
4596
4767
|
var _vm = this,
|
|
4597
4768
|
_c = _vm._self._c;
|
|
4598
4769
|
return _c('div', {
|
|
@@ -4667,7 +4838,7 @@ var Chartvue_type_template_id_2bc7fe5e_render = function render() {
|
|
|
4667
4838
|
})], 1);
|
|
4668
4839
|
})], 2)])])])]);
|
|
4669
4840
|
};
|
|
4670
|
-
var
|
|
4841
|
+
var Chartvue_type_template_id_0856b85c_staticRenderFns = [];
|
|
4671
4842
|
|
|
4672
4843
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Grid.vue?vue&type=template&id=244ea0ee
|
|
4673
4844
|
var Gridvue_type_template_id_244ea0ee_render = function render() {
|
|
@@ -5876,8 +6047,8 @@ var DependencyLines_component = normalizeComponent(
|
|
|
5876
6047
|
)
|
|
5877
6048
|
|
|
5878
6049
|
/* harmony default export */ var DependencyLines = (DependencyLines_component.exports);
|
|
5879
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Task.vue?vue&type=template&id=
|
|
5880
|
-
var
|
|
6050
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Task.vue?vue&type=template&id=23849415
|
|
6051
|
+
var Taskvue_type_template_id_23849415_render = function render() {
|
|
5881
6052
|
var _vm = this,
|
|
5882
6053
|
_c = _vm._self._c;
|
|
5883
6054
|
return _c('g', {
|
|
@@ -5989,16 +6160,17 @@ var Taskvue_type_template_id_2c01a3c8_render = function render() {
|
|
|
5989
6160
|
"clip-path": 'url(#' + _vm.clipPathId + ')'
|
|
5990
6161
|
}
|
|
5991
6162
|
}), _c('rect', {
|
|
5992
|
-
staticClass: "gantt-elastic__chart-row-extend-handle",
|
|
6163
|
+
staticClass: "gantt-elastic__chart-row-extend-handle gantt-elastic__drag-handle",
|
|
5993
6164
|
staticStyle: {
|
|
5994
6165
|
"pointer-events": "all",
|
|
5995
|
-
"z-index": "
|
|
6166
|
+
"z-index": "50",
|
|
6167
|
+
"cursor": "ew-resize !important"
|
|
5996
6168
|
},
|
|
5997
6169
|
style: _vm.root.style['chart-row-extend-handle'],
|
|
5998
6170
|
attrs: {
|
|
5999
|
-
"x": "
|
|
6171
|
+
"x": "0",
|
|
6000
6172
|
"y": "0",
|
|
6001
|
-
"width":
|
|
6173
|
+
"width": 12,
|
|
6002
6174
|
"height": _vm.task.height
|
|
6003
6175
|
},
|
|
6004
6176
|
on: {
|
|
@@ -6012,16 +6184,17 @@ var Taskvue_type_template_id_2c01a3c8_render = function render() {
|
|
|
6012
6184
|
}
|
|
6013
6185
|
}
|
|
6014
6186
|
}), _c('rect', {
|
|
6015
|
-
staticClass: "gantt-elastic__chart-row-extend-handle",
|
|
6187
|
+
staticClass: "gantt-elastic__chart-row-extend-handle gantt-elastic__drag-handle",
|
|
6016
6188
|
staticStyle: {
|
|
6017
6189
|
"pointer-events": "all",
|
|
6018
|
-
"z-index": "
|
|
6190
|
+
"z-index": "50",
|
|
6191
|
+
"cursor": "ew-resize !important"
|
|
6019
6192
|
},
|
|
6020
6193
|
style: _vm.root.style['chart-row-extend-handle'],
|
|
6021
6194
|
attrs: {
|
|
6022
|
-
"x": _vm.task.width -
|
|
6195
|
+
"x": _vm.task.width - 12,
|
|
6023
6196
|
"y": "0",
|
|
6024
|
-
"width":
|
|
6197
|
+
"width": 12,
|
|
6025
6198
|
"height": _vm.task.height
|
|
6026
6199
|
},
|
|
6027
6200
|
on: {
|
|
@@ -6040,7 +6213,7 @@ var Taskvue_type_template_id_2c01a3c8_render = function render() {
|
|
|
6040
6213
|
}
|
|
6041
6214
|
}) : _vm._e()], 1);
|
|
6042
6215
|
};
|
|
6043
|
-
var
|
|
6216
|
+
var Taskvue_type_template_id_23849415_staticRenderFns = [];
|
|
6044
6217
|
|
|
6045
6218
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Text.vue?vue&type=template&id=634f40aa
|
|
6046
6219
|
var Textvue_type_template_id_634f40aa_render = function render() {
|
|
@@ -6391,13 +6564,13 @@ var ProgressBar_component = normalizeComponent(
|
|
|
6391
6564
|
event.stopPropagation();
|
|
6392
6565
|
|
|
6393
6566
|
// Debug logging
|
|
6394
|
-
console.log('Starting drag:', {
|
|
6395
|
-
|
|
6396
|
-
|
|
6397
|
-
|
|
6398
|
-
|
|
6399
|
-
|
|
6400
|
-
});
|
|
6567
|
+
// console.log('Starting drag:', {
|
|
6568
|
+
// type: type,
|
|
6569
|
+
// taskId: this.task.id,
|
|
6570
|
+
// taskType: this.task.type,
|
|
6571
|
+
// originalStart: this.task.startTime,
|
|
6572
|
+
// originalEnd: this.task.endTime
|
|
6573
|
+
// });
|
|
6401
6574
|
|
|
6402
6575
|
// Safety checks
|
|
6403
6576
|
if (!this.root || !this.root.state || !this.root.state.options || !this.root.state.options.times) {
|
|
@@ -6521,15 +6694,15 @@ var ProgressBar_component = normalizeComponent(
|
|
|
6521
6694
|
|
|
6522
6695
|
// Debug logging for epic tasks
|
|
6523
6696
|
if (this.task.type === 'epic') {
|
|
6524
|
-
console.log('Epic task drag:', {
|
|
6525
|
-
|
|
6526
|
-
|
|
6527
|
-
|
|
6528
|
-
|
|
6529
|
-
|
|
6530
|
-
|
|
6531
|
-
|
|
6532
|
-
});
|
|
6697
|
+
// console.log('Epic task drag:', {
|
|
6698
|
+
// dragType: this.dragType,
|
|
6699
|
+
// originalStart: this.originalStartTime,
|
|
6700
|
+
// originalEnd: this.originalEndTime,
|
|
6701
|
+
// newStart: newStartTime,
|
|
6702
|
+
// newEnd: newEndTime,
|
|
6703
|
+
// startChanged: newStartTime !== this.originalStartTime,
|
|
6704
|
+
// endChanged: newEndTime !== this.originalEndTime
|
|
6705
|
+
// });
|
|
6533
6706
|
}
|
|
6534
6707
|
|
|
6535
6708
|
// Update task data
|
|
@@ -6538,15 +6711,15 @@ var ProgressBar_component = normalizeComponent(
|
|
|
6538
6711
|
this.task.duration = newEndTime - newStartTime;
|
|
6539
6712
|
|
|
6540
6713
|
// Debug logging
|
|
6541
|
-
console.log('Updating task time:', {
|
|
6542
|
-
|
|
6543
|
-
|
|
6544
|
-
|
|
6545
|
-
|
|
6546
|
-
|
|
6547
|
-
|
|
6548
|
-
|
|
6549
|
-
});
|
|
6714
|
+
// console.log('Updating task time:', {
|
|
6715
|
+
// taskId: this.task.id,
|
|
6716
|
+
// newStartTime,
|
|
6717
|
+
// newEndTime,
|
|
6718
|
+
// duration: this.task.duration,
|
|
6719
|
+
// root: !!this.root,
|
|
6720
|
+
// timeToPixelOffsetX: !!(this.root && this.root.timeToPixelOffsetX),
|
|
6721
|
+
// timePerPixel: this.root && this.root.state && this.root.state.options && this.root.state.options.times && this.root.state.options.times.timePerPixel
|
|
6722
|
+
// });
|
|
6550
6723
|
|
|
6551
6724
|
// Update task position and width using the correct method
|
|
6552
6725
|
if (this.root && this.root.timeToPixelOffsetX) {
|
|
@@ -6590,15 +6763,15 @@ var ProgressBar_component = normalizeComponent(
|
|
|
6590
6763
|
});
|
|
6591
6764
|
|
|
6592
6765
|
// Log the update for debugging
|
|
6593
|
-
console.log('Task drag completed:', {
|
|
6594
|
-
|
|
6595
|
-
|
|
6596
|
-
|
|
6597
|
-
|
|
6598
|
-
|
|
6599
|
-
|
|
6600
|
-
|
|
6601
|
-
});
|
|
6766
|
+
// console.log('Task drag completed:', {
|
|
6767
|
+
// id: this.task.id,
|
|
6768
|
+
// dragType: this.dragType,
|
|
6769
|
+
// startDate: startDate.toLocaleDateString(),
|
|
6770
|
+
// endDate: endDate.toLocaleDateString(),
|
|
6771
|
+
// duration: `${durationDays} days`,
|
|
6772
|
+
// startTime: this.task.startTime,
|
|
6773
|
+
// endTime: this.task.endTime
|
|
6774
|
+
// });
|
|
6602
6775
|
},
|
|
6603
6776
|
/**
|
|
6604
6777
|
* Show context menu for task actions
|
|
@@ -7048,8 +7221,8 @@ var ProgressBar_component = normalizeComponent(
|
|
|
7048
7221
|
;
|
|
7049
7222
|
var Task_component = normalizeComponent(
|
|
7050
7223
|
Row_Taskvue_type_script_lang_js,
|
|
7051
|
-
|
|
7052
|
-
|
|
7224
|
+
Taskvue_type_template_id_23849415_render,
|
|
7225
|
+
Taskvue_type_template_id_23849415_staticRenderFns,
|
|
7053
7226
|
false,
|
|
7054
7227
|
null,
|
|
7055
7228
|
null,
|
|
@@ -7058,8 +7231,8 @@ var Task_component = normalizeComponent(
|
|
|
7058
7231
|
)
|
|
7059
7232
|
|
|
7060
7233
|
/* harmony default export */ var Task = (Task_component.exports);
|
|
7061
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Milestone.vue?vue&type=template&id=
|
|
7062
|
-
var
|
|
7234
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Milestone.vue?vue&type=template&id=c9bfeb4a
|
|
7235
|
+
var Milestonevue_type_template_id_c9bfeb4a_render = function render() {
|
|
7063
7236
|
var _vm = this,
|
|
7064
7237
|
_c = _vm._self._c;
|
|
7065
7238
|
return _c('g', {
|
|
@@ -7171,16 +7344,17 @@ var Milestonevue_type_template_id_4cea99c4_render = function render() {
|
|
|
7171
7344
|
"clip-path": 'url(#' + _vm.clipPathId + ')'
|
|
7172
7345
|
}
|
|
7173
7346
|
}), _c('rect', {
|
|
7174
|
-
staticClass: "gantt-elastic__chart-row-extend-handle",
|
|
7347
|
+
staticClass: "gantt-elastic__chart-row-extend-handle gantt-elastic__drag-handle",
|
|
7175
7348
|
staticStyle: {
|
|
7176
7349
|
"pointer-events": "all",
|
|
7177
|
-
"z-index": "
|
|
7350
|
+
"z-index": "50",
|
|
7351
|
+
"cursor": "ew-resize !important"
|
|
7178
7352
|
},
|
|
7179
7353
|
style: _vm.root.style['chart-row-extend-handle'],
|
|
7180
7354
|
attrs: {
|
|
7181
|
-
"x": "
|
|
7355
|
+
"x": "0",
|
|
7182
7356
|
"y": "0",
|
|
7183
|
-
"width":
|
|
7357
|
+
"width": 12,
|
|
7184
7358
|
"height": _vm.task.height
|
|
7185
7359
|
},
|
|
7186
7360
|
on: {
|
|
@@ -7194,16 +7368,17 @@ var Milestonevue_type_template_id_4cea99c4_render = function render() {
|
|
|
7194
7368
|
}
|
|
7195
7369
|
}
|
|
7196
7370
|
}), _c('rect', {
|
|
7197
|
-
staticClass: "gantt-elastic__chart-row-extend-handle",
|
|
7371
|
+
staticClass: "gantt-elastic__chart-row-extend-handle gantt-elastic__drag-handle",
|
|
7198
7372
|
staticStyle: {
|
|
7199
7373
|
"pointer-events": "all",
|
|
7200
|
-
"z-index": "
|
|
7374
|
+
"z-index": "50",
|
|
7375
|
+
"cursor": "ew-resize !important"
|
|
7201
7376
|
},
|
|
7202
7377
|
style: _vm.root.style['chart-row-extend-handle'],
|
|
7203
7378
|
attrs: {
|
|
7204
|
-
"x": _vm.task.width -
|
|
7379
|
+
"x": _vm.task.width - 12,
|
|
7205
7380
|
"y": "0",
|
|
7206
|
-
"width":
|
|
7381
|
+
"width": 12,
|
|
7207
7382
|
"height": _vm.task.height
|
|
7208
7383
|
},
|
|
7209
7384
|
on: {
|
|
@@ -7222,7 +7397,7 @@ var Milestonevue_type_template_id_4cea99c4_render = function render() {
|
|
|
7222
7397
|
}
|
|
7223
7398
|
}) : _vm._e()], 1);
|
|
7224
7399
|
};
|
|
7225
|
-
var
|
|
7400
|
+
var Milestonevue_type_template_id_c9bfeb4a_staticRenderFns = [];
|
|
7226
7401
|
|
|
7227
7402
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Milestone.vue?vue&type=script&lang=js
|
|
7228
7403
|
|
|
@@ -7304,8 +7479,8 @@ var Milestonevue_type_template_id_4cea99c4_staticRenderFns = [];
|
|
|
7304
7479
|
;
|
|
7305
7480
|
var Milestone_component = normalizeComponent(
|
|
7306
7481
|
Row_Milestonevue_type_script_lang_js,
|
|
7307
|
-
|
|
7308
|
-
|
|
7482
|
+
Milestonevue_type_template_id_c9bfeb4a_render,
|
|
7483
|
+
Milestonevue_type_template_id_c9bfeb4a_staticRenderFns,
|
|
7309
7484
|
false,
|
|
7310
7485
|
null,
|
|
7311
7486
|
null,
|
|
@@ -7314,8 +7489,8 @@ var Milestone_component = normalizeComponent(
|
|
|
7314
7489
|
)
|
|
7315
7490
|
|
|
7316
7491
|
/* harmony default export */ var Milestone = (Milestone_component.exports);
|
|
7317
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Project.vue?vue&type=template&id=
|
|
7318
|
-
var
|
|
7492
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Project.vue?vue&type=template&id=72239142
|
|
7493
|
+
var Projectvue_type_template_id_72239142_render = function render() {
|
|
7319
7494
|
var _vm = this,
|
|
7320
7495
|
_c = _vm._self._c;
|
|
7321
7496
|
return _c('g', {
|
|
@@ -7427,16 +7602,17 @@ var Projectvue_type_template_id_5dcaf9ef_render = function render() {
|
|
|
7427
7602
|
"clip-path": 'url(#' + _vm.clipPathId + ')'
|
|
7428
7603
|
}
|
|
7429
7604
|
}), _c('rect', {
|
|
7430
|
-
staticClass: "gantt-elastic__chart-row-extend-handle",
|
|
7605
|
+
staticClass: "gantt-elastic__chart-row-extend-handle gantt-elastic__drag-handle",
|
|
7431
7606
|
staticStyle: {
|
|
7432
7607
|
"pointer-events": "all",
|
|
7433
|
-
"z-index": "
|
|
7608
|
+
"z-index": "50",
|
|
7609
|
+
"cursor": "ew-resize !important"
|
|
7434
7610
|
},
|
|
7435
7611
|
style: _vm.root.style['chart-row-extend-handle'],
|
|
7436
7612
|
attrs: {
|
|
7437
|
-
"x": "
|
|
7613
|
+
"x": "0",
|
|
7438
7614
|
"y": "0",
|
|
7439
|
-
"width":
|
|
7615
|
+
"width": 12,
|
|
7440
7616
|
"height": _vm.task.height
|
|
7441
7617
|
},
|
|
7442
7618
|
on: {
|
|
@@ -7450,16 +7626,17 @@ var Projectvue_type_template_id_5dcaf9ef_render = function render() {
|
|
|
7450
7626
|
}
|
|
7451
7627
|
}
|
|
7452
7628
|
}), _c('rect', {
|
|
7453
|
-
staticClass: "gantt-elastic__chart-row-extend-handle",
|
|
7629
|
+
staticClass: "gantt-elastic__chart-row-extend-handle gantt-elastic__drag-handle",
|
|
7454
7630
|
staticStyle: {
|
|
7455
7631
|
"pointer-events": "all",
|
|
7456
|
-
"z-index": "
|
|
7632
|
+
"z-index": "50",
|
|
7633
|
+
"cursor": "ew-resize !important"
|
|
7457
7634
|
},
|
|
7458
7635
|
style: _vm.root.style['chart-row-extend-handle'],
|
|
7459
7636
|
attrs: {
|
|
7460
|
-
"x": _vm.task.width -
|
|
7637
|
+
"x": _vm.task.width - 12,
|
|
7461
7638
|
"y": "0",
|
|
7462
|
-
"width":
|
|
7639
|
+
"width": 12,
|
|
7463
7640
|
"height": _vm.task.height
|
|
7464
7641
|
},
|
|
7465
7642
|
on: {
|
|
@@ -7478,7 +7655,7 @@ var Projectvue_type_template_id_5dcaf9ef_render = function render() {
|
|
|
7478
7655
|
}
|
|
7479
7656
|
}) : _vm._e()], 1);
|
|
7480
7657
|
};
|
|
7481
|
-
var
|
|
7658
|
+
var Projectvue_type_template_id_72239142_staticRenderFns = [];
|
|
7482
7659
|
|
|
7483
7660
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Project.vue?vue&type=script&lang=js
|
|
7484
7661
|
|
|
@@ -7578,8 +7755,8 @@ var Projectvue_type_template_id_5dcaf9ef_staticRenderFns = [];
|
|
|
7578
7755
|
;
|
|
7579
7756
|
var Project_component = normalizeComponent(
|
|
7580
7757
|
Row_Projectvue_type_script_lang_js,
|
|
7581
|
-
|
|
7582
|
-
|
|
7758
|
+
Projectvue_type_template_id_72239142_render,
|
|
7759
|
+
Projectvue_type_template_id_72239142_staticRenderFns,
|
|
7583
7760
|
false,
|
|
7584
7761
|
null,
|
|
7585
7762
|
null,
|
|
@@ -7588,8 +7765,8 @@ var Project_component = normalizeComponent(
|
|
|
7588
7765
|
)
|
|
7589
7766
|
|
|
7590
7767
|
/* harmony default export */ var Project = (Project_component.exports);
|
|
7591
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Epic.vue?vue&type=template&id=
|
|
7592
|
-
var
|
|
7768
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Epic.vue?vue&type=template&id=80ad2e9c
|
|
7769
|
+
var Epicvue_type_template_id_80ad2e9c_render = function render() {
|
|
7593
7770
|
var _vm = this,
|
|
7594
7771
|
_c = _vm._self._c;
|
|
7595
7772
|
return _c('g', {
|
|
@@ -7703,16 +7880,17 @@ var Epicvue_type_template_id_6e337196_render = function render() {
|
|
|
7703
7880
|
"clip-path": 'url(#' + _vm.clipPathId + ')'
|
|
7704
7881
|
}
|
|
7705
7882
|
}) : _vm._e(), _c('rect', {
|
|
7706
|
-
staticClass: "gantt-elastic__chart-row-extend-handle",
|
|
7883
|
+
staticClass: "gantt-elastic__chart-row-extend-handle gantt-elastic__drag-handle",
|
|
7707
7884
|
staticStyle: {
|
|
7708
7885
|
"pointer-events": "all",
|
|
7709
|
-
"z-index": "
|
|
7886
|
+
"z-index": "50",
|
|
7887
|
+
"cursor": "ew-resize !important"
|
|
7710
7888
|
},
|
|
7711
7889
|
style: _vm.root.style['chart-row-extend-handle'],
|
|
7712
7890
|
attrs: {
|
|
7713
|
-
"x": "
|
|
7891
|
+
"x": "0",
|
|
7714
7892
|
"y": "0",
|
|
7715
|
-
"width":
|
|
7893
|
+
"width": 12,
|
|
7716
7894
|
"height": _vm.task.height
|
|
7717
7895
|
},
|
|
7718
7896
|
on: {
|
|
@@ -7726,16 +7904,17 @@ var Epicvue_type_template_id_6e337196_render = function render() {
|
|
|
7726
7904
|
}
|
|
7727
7905
|
}
|
|
7728
7906
|
}), _c('rect', {
|
|
7729
|
-
staticClass: "gantt-elastic__chart-row-extend-handle",
|
|
7907
|
+
staticClass: "gantt-elastic__chart-row-extend-handle gantt-elastic__drag-handle",
|
|
7730
7908
|
staticStyle: {
|
|
7731
7909
|
"pointer-events": "all",
|
|
7732
|
-
"z-index": "
|
|
7910
|
+
"z-index": "50",
|
|
7911
|
+
"cursor": "ew-resize !important"
|
|
7733
7912
|
},
|
|
7734
7913
|
style: _vm.root.style['chart-row-extend-handle'],
|
|
7735
7914
|
attrs: {
|
|
7736
|
-
"x": _vm.task.width -
|
|
7915
|
+
"x": _vm.task.width - 12,
|
|
7737
7916
|
"y": "0",
|
|
7738
|
-
"width":
|
|
7917
|
+
"width": 12,
|
|
7739
7918
|
"height": _vm.task.height
|
|
7740
7919
|
},
|
|
7741
7920
|
on: {
|
|
@@ -7754,7 +7933,7 @@ var Epicvue_type_template_id_6e337196_render = function render() {
|
|
|
7754
7933
|
}
|
|
7755
7934
|
}) : _vm._e()], 1);
|
|
7756
7935
|
};
|
|
7757
|
-
var
|
|
7936
|
+
var Epicvue_type_template_id_80ad2e9c_staticRenderFns = [];
|
|
7758
7937
|
|
|
7759
7938
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Epic.vue?vue&type=script&lang=js
|
|
7760
7939
|
|
|
@@ -7854,8 +8033,8 @@ var Epicvue_type_template_id_6e337196_staticRenderFns = [];
|
|
|
7854
8033
|
;
|
|
7855
8034
|
var Epic_component = normalizeComponent(
|
|
7856
8035
|
Row_Epicvue_type_script_lang_js,
|
|
7857
|
-
|
|
7858
|
-
|
|
8036
|
+
Epicvue_type_template_id_80ad2e9c_render,
|
|
8037
|
+
Epicvue_type_template_id_80ad2e9c_staticRenderFns,
|
|
7859
8038
|
false,
|
|
7860
8039
|
null,
|
|
7861
8040
|
null,
|
|
@@ -7864,8 +8043,8 @@ var Epic_component = normalizeComponent(
|
|
|
7864
8043
|
)
|
|
7865
8044
|
|
|
7866
8045
|
/* harmony default export */ var Epic = (Epic_component.exports);
|
|
7867
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Subtask.vue?vue&type=template&id=
|
|
7868
|
-
var
|
|
8046
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Subtask.vue?vue&type=template&id=52219a35
|
|
8047
|
+
var Subtaskvue_type_template_id_52219a35_render = function render() {
|
|
7869
8048
|
var _vm = this,
|
|
7870
8049
|
_c = _vm._self._c;
|
|
7871
8050
|
return _c('g', {
|
|
@@ -7977,16 +8156,17 @@ var Subtaskvue_type_template_id_339b7174_render = function render() {
|
|
|
7977
8156
|
"clip-path": 'url(#' + _vm.clipPathId + ')'
|
|
7978
8157
|
}
|
|
7979
8158
|
}), _c('rect', {
|
|
7980
|
-
staticClass: "gantt-elastic__chart-row-extend-handle",
|
|
8159
|
+
staticClass: "gantt-elastic__chart-row-extend-handle gantt-elastic__drag-handle",
|
|
7981
8160
|
staticStyle: {
|
|
7982
8161
|
"pointer-events": "all",
|
|
7983
|
-
"z-index": "
|
|
8162
|
+
"z-index": "50",
|
|
8163
|
+
"cursor": "ew-resize !important"
|
|
7984
8164
|
},
|
|
7985
8165
|
style: _vm.root.style['chart-row-extend-handle'],
|
|
7986
8166
|
attrs: {
|
|
7987
|
-
"x": "
|
|
8167
|
+
"x": "0",
|
|
7988
8168
|
"y": "0",
|
|
7989
|
-
"width":
|
|
8169
|
+
"width": 12,
|
|
7990
8170
|
"height": _vm.task.height
|
|
7991
8171
|
},
|
|
7992
8172
|
on: {
|
|
@@ -8000,16 +8180,17 @@ var Subtaskvue_type_template_id_339b7174_render = function render() {
|
|
|
8000
8180
|
}
|
|
8001
8181
|
}
|
|
8002
8182
|
}), _c('rect', {
|
|
8003
|
-
staticClass: "gantt-elastic__chart-row-extend-handle",
|
|
8183
|
+
staticClass: "gantt-elastic__chart-row-extend-handle gantt-elastic__drag-handle",
|
|
8004
8184
|
staticStyle: {
|
|
8005
8185
|
"pointer-events": "all",
|
|
8006
|
-
"z-index": "
|
|
8186
|
+
"z-index": "50",
|
|
8187
|
+
"cursor": "ew-resize !important"
|
|
8007
8188
|
},
|
|
8008
8189
|
style: _vm.root.style['chart-row-extend-handle'],
|
|
8009
8190
|
attrs: {
|
|
8010
|
-
"x": _vm.task.width -
|
|
8191
|
+
"x": _vm.task.width - 12,
|
|
8011
8192
|
"y": "0",
|
|
8012
|
-
"width":
|
|
8193
|
+
"width": 12,
|
|
8013
8194
|
"height": _vm.task.height
|
|
8014
8195
|
},
|
|
8015
8196
|
on: {
|
|
@@ -8028,7 +8209,7 @@ var Subtaskvue_type_template_id_339b7174_render = function render() {
|
|
|
8028
8209
|
}
|
|
8029
8210
|
}) : _vm._e()], 1);
|
|
8030
8211
|
};
|
|
8031
|
-
var
|
|
8212
|
+
var Subtaskvue_type_template_id_52219a35_staticRenderFns = [];
|
|
8032
8213
|
|
|
8033
8214
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Subtask.vue?vue&type=script&lang=js
|
|
8034
8215
|
|
|
@@ -8100,8 +8281,8 @@ var Subtaskvue_type_template_id_339b7174_staticRenderFns = [];
|
|
|
8100
8281
|
;
|
|
8101
8282
|
var Subtask_component = normalizeComponent(
|
|
8102
8283
|
Row_Subtaskvue_type_script_lang_js,
|
|
8103
|
-
|
|
8104
|
-
|
|
8284
|
+
Subtaskvue_type_template_id_52219a35_render,
|
|
8285
|
+
Subtaskvue_type_template_id_52219a35_staticRenderFns,
|
|
8105
8286
|
false,
|
|
8106
8287
|
null,
|
|
8107
8288
|
null,
|
|
@@ -8110,8 +8291,8 @@ var Subtask_component = normalizeComponent(
|
|
|
8110
8291
|
)
|
|
8111
8292
|
|
|
8112
8293
|
/* harmony default export */ var Subtask = (Subtask_component.exports);
|
|
8113
|
-
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Story.vue?vue&type=template&id=
|
|
8114
|
-
var
|
|
8294
|
+
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Story.vue?vue&type=template&id=5d688d0c
|
|
8295
|
+
var Storyvue_type_template_id_5d688d0c_render = function render() {
|
|
8115
8296
|
var _vm = this,
|
|
8116
8297
|
_c = _vm._self._c;
|
|
8117
8298
|
return _c('g', {
|
|
@@ -8223,16 +8404,17 @@ var Storyvue_type_template_id_3d0395f2_render = function render() {
|
|
|
8223
8404
|
"clip-path": 'url(#' + _vm.clipPathId + ')'
|
|
8224
8405
|
}
|
|
8225
8406
|
}), _c('rect', {
|
|
8226
|
-
staticClass: "gantt-elastic__chart-row-extend-handle",
|
|
8407
|
+
staticClass: "gantt-elastic__chart-row-extend-handle gantt-elastic__drag-handle",
|
|
8227
8408
|
staticStyle: {
|
|
8228
8409
|
"pointer-events": "all",
|
|
8229
|
-
"z-index": "
|
|
8410
|
+
"z-index": "50",
|
|
8411
|
+
"cursor": "ew-resize !important"
|
|
8230
8412
|
},
|
|
8231
8413
|
style: _vm.root.style['chart-row-extend-handle'],
|
|
8232
8414
|
attrs: {
|
|
8233
|
-
"x": "
|
|
8415
|
+
"x": "0",
|
|
8234
8416
|
"y": "0",
|
|
8235
|
-
"width":
|
|
8417
|
+
"width": 12,
|
|
8236
8418
|
"height": _vm.task.height
|
|
8237
8419
|
},
|
|
8238
8420
|
on: {
|
|
@@ -8246,16 +8428,17 @@ var Storyvue_type_template_id_3d0395f2_render = function render() {
|
|
|
8246
8428
|
}
|
|
8247
8429
|
}
|
|
8248
8430
|
}), _c('rect', {
|
|
8249
|
-
staticClass: "gantt-elastic__chart-row-extend-handle",
|
|
8431
|
+
staticClass: "gantt-elastic__chart-row-extend-handle gantt-elastic__drag-handle",
|
|
8250
8432
|
staticStyle: {
|
|
8251
8433
|
"pointer-events": "all",
|
|
8252
|
-
"z-index": "
|
|
8434
|
+
"z-index": "50",
|
|
8435
|
+
"cursor": "ew-resize !important"
|
|
8253
8436
|
},
|
|
8254
8437
|
style: _vm.root.style['chart-row-extend-handle'],
|
|
8255
8438
|
attrs: {
|
|
8256
|
-
"x": _vm.task.width -
|
|
8439
|
+
"x": _vm.task.width - 12,
|
|
8257
8440
|
"y": "0",
|
|
8258
|
-
"width":
|
|
8441
|
+
"width": 12,
|
|
8259
8442
|
"height": _vm.task.height
|
|
8260
8443
|
},
|
|
8261
8444
|
on: {
|
|
@@ -8274,7 +8457,7 @@ var Storyvue_type_template_id_3d0395f2_render = function render() {
|
|
|
8274
8457
|
}
|
|
8275
8458
|
}) : _vm._e()], 1);
|
|
8276
8459
|
};
|
|
8277
|
-
var
|
|
8460
|
+
var Storyvue_type_template_id_5d688d0c_staticRenderFns = [];
|
|
8278
8461
|
|
|
8279
8462
|
;// ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/components/Chart/Row/Story.vue?vue&type=script&lang=js
|
|
8280
8463
|
|
|
@@ -8366,8 +8549,8 @@ var Storyvue_type_template_id_3d0395f2_staticRenderFns = [];
|
|
|
8366
8549
|
;
|
|
8367
8550
|
var Story_component = normalizeComponent(
|
|
8368
8551
|
Row_Storyvue_type_script_lang_js,
|
|
8369
|
-
|
|
8370
|
-
|
|
8552
|
+
Storyvue_type_template_id_5d688d0c_render,
|
|
8553
|
+
Storyvue_type_template_id_5d688d0c_staticRenderFns,
|
|
8371
8554
|
false,
|
|
8372
8555
|
null,
|
|
8373
8556
|
null,
|
|
@@ -8425,6 +8608,7 @@ var Story_component = normalizeComponent(
|
|
|
8425
8608
|
*/
|
|
8426
8609
|
handleTaskUpdated(updatedTask) {
|
|
8427
8610
|
// Emit event to parent component
|
|
8611
|
+
console.log("task-updated --Chart");
|
|
8428
8612
|
this.$emit('task-updated', updatedTask);
|
|
8429
8613
|
|
|
8430
8614
|
// Update the task in the root state
|
|
@@ -8476,8 +8660,8 @@ var Story_component = normalizeComponent(
|
|
|
8476
8660
|
;
|
|
8477
8661
|
var Chart_component = normalizeComponent(
|
|
8478
8662
|
Chart_Chartvue_type_script_lang_js,
|
|
8479
|
-
|
|
8480
|
-
|
|
8663
|
+
Chartvue_type_template_id_0856b85c_render,
|
|
8664
|
+
Chartvue_type_template_id_0856b85c_staticRenderFns,
|
|
8481
8665
|
false,
|
|
8482
8666
|
null,
|
|
8483
8667
|
null,
|
|
@@ -8573,6 +8757,7 @@ let ignoreScrollEvents = false;
|
|
|
8573
8757
|
*/
|
|
8574
8758
|
handleTaskUpdated(updatedTask) {
|
|
8575
8759
|
// Emit event to parent component
|
|
8760
|
+
console.log("task-updated --MainView");
|
|
8576
8761
|
this.$emit('task-updated', updatedTask);
|
|
8577
8762
|
},
|
|
8578
8763
|
/**
|
|
@@ -8691,8 +8876,8 @@ let ignoreScrollEvents = false;
|
|
|
8691
8876
|
;
|
|
8692
8877
|
var MainView_component = normalizeComponent(
|
|
8693
8878
|
components_MainViewvue_type_script_lang_js,
|
|
8694
|
-
|
|
8695
|
-
|
|
8879
|
+
MainViewvue_type_template_id_79e1eba9_render,
|
|
8880
|
+
MainViewvue_type_template_id_79e1eba9_staticRenderFns,
|
|
8696
8881
|
false,
|
|
8697
8882
|
null,
|
|
8698
8883
|
null,
|
|
@@ -11341,12 +11526,99 @@ const GanttElastic = {
|
|
|
11341
11526
|
unwatchOutputTasks: null,
|
|
11342
11527
|
unwatchOutputOptions: null,
|
|
11343
11528
|
unwatchOutputStyle: null
|
|
11344
|
-
}
|
|
11529
|
+
},
|
|
11530
|
+
// Performance optimization properties
|
|
11531
|
+
updateQueue: [],
|
|
11532
|
+
updateTimeout: null,
|
|
11533
|
+
lastUpdateTime: 0,
|
|
11534
|
+
updateThrottleDelay: 16,
|
|
11535
|
+
// ~60fps
|
|
11536
|
+
isUpdating: false
|
|
11345
11537
|
};
|
|
11346
11538
|
},
|
|
11347
11539
|
methods: {
|
|
11348
11540
|
mergeDeep,
|
|
11349
11541
|
mergeDeepReactive,
|
|
11542
|
+
/**
|
|
11543
|
+
* Debounced update method to prevent excessive re-renders
|
|
11544
|
+
*/
|
|
11545
|
+
debouncedUpdate(updateFn, context = 'general') {
|
|
11546
|
+
const now = Date.now();
|
|
11547
|
+
|
|
11548
|
+
// Add to update queue
|
|
11549
|
+
this.updateQueue.push({
|
|
11550
|
+
fn: updateFn,
|
|
11551
|
+
context,
|
|
11552
|
+
timestamp: now
|
|
11553
|
+
});
|
|
11554
|
+
|
|
11555
|
+
// Clear existing timeout
|
|
11556
|
+
if (this.updateTimeout) {
|
|
11557
|
+
clearTimeout(this.updateTimeout);
|
|
11558
|
+
}
|
|
11559
|
+
|
|
11560
|
+
// Set new timeout
|
|
11561
|
+
this.updateTimeout = setTimeout(() => {
|
|
11562
|
+
this.processUpdateQueue();
|
|
11563
|
+
}, this.updateThrottleDelay);
|
|
11564
|
+
},
|
|
11565
|
+
/**
|
|
11566
|
+
* Process the update queue
|
|
11567
|
+
*/
|
|
11568
|
+
processUpdateQueue() {
|
|
11569
|
+
if (this.isUpdating || this.updateQueue.length === 0) {
|
|
11570
|
+
return;
|
|
11571
|
+
}
|
|
11572
|
+
this.isUpdating = true;
|
|
11573
|
+
const startTime = performance.now();
|
|
11574
|
+
try {
|
|
11575
|
+
// Group updates by context
|
|
11576
|
+
const groupedUpdates = {};
|
|
11577
|
+
this.updateQueue.forEach(update => {
|
|
11578
|
+
if (!groupedUpdates[update.context]) {
|
|
11579
|
+
groupedUpdates[update.context] = [];
|
|
11580
|
+
}
|
|
11581
|
+
groupedUpdates[update.context].push(update);
|
|
11582
|
+
});
|
|
11583
|
+
|
|
11584
|
+
// Process each group
|
|
11585
|
+
Object.keys(groupedUpdates).forEach(context => {
|
|
11586
|
+
const updates = groupedUpdates[context];
|
|
11587
|
+
const latestUpdate = updates[updates.length - 1]; // Use the latest update
|
|
11588
|
+
latestUpdate.fn();
|
|
11589
|
+
});
|
|
11590
|
+
|
|
11591
|
+
// Clear the queue
|
|
11592
|
+
this.updateQueue = [];
|
|
11593
|
+
|
|
11594
|
+
// Performance monitoring
|
|
11595
|
+
const endTime = performance.now();
|
|
11596
|
+
const duration = endTime - startTime;
|
|
11597
|
+
if (duration > 16) {
|
|
11598
|
+
// Log if update takes longer than one frame
|
|
11599
|
+
console.warn(`Gantt update took ${duration.toFixed(2)}ms for ${Object.keys(groupedUpdates).length} contexts`);
|
|
11600
|
+
}
|
|
11601
|
+
} finally {
|
|
11602
|
+
this.isUpdating = false;
|
|
11603
|
+
}
|
|
11604
|
+
},
|
|
11605
|
+
/**
|
|
11606
|
+
* Performance monitoring method
|
|
11607
|
+
*/
|
|
11608
|
+
logPerformanceMetrics() {
|
|
11609
|
+
const metrics = {
|
|
11610
|
+
totalTasks: this.state.tasks.length,
|
|
11611
|
+
visibleTasks: this.visibleTasks.length,
|
|
11612
|
+
updateQueueLength: this.updateQueue.length,
|
|
11613
|
+
isUpdating: this.isUpdating,
|
|
11614
|
+
memoryUsage: performance.memory ? {
|
|
11615
|
+
used: Math.round(performance.memory.usedJSHeapSize / 1024 / 1024) + 'MB',
|
|
11616
|
+
total: Math.round(performance.memory.totalJSHeapSize / 1024 / 1024) + 'MB'
|
|
11617
|
+
} : 'Not available'
|
|
11618
|
+
};
|
|
11619
|
+
console.log('Gantt Performance Metrics:', metrics);
|
|
11620
|
+
return metrics;
|
|
11621
|
+
},
|
|
11350
11622
|
onViewModeChanged(mode) {
|
|
11351
11623
|
// Update the calendar view mode
|
|
11352
11624
|
this.options.calendar.viewMode = mode;
|
|
@@ -11374,6 +11646,15 @@ const GanttElastic = {
|
|
|
11374
11646
|
}
|
|
11375
11647
|
}
|
|
11376
11648
|
|
|
11649
|
+
// Emit event to parent component
|
|
11650
|
+
this.$emit('view-mode-changed', mode);
|
|
11651
|
+
|
|
11652
|
+
// Also emit to root for plugin usage
|
|
11653
|
+
this.$root.$emit('gantt-view-mode-changed', mode);
|
|
11654
|
+
|
|
11655
|
+
// Log the view mode change for debugging
|
|
11656
|
+
console.log('View mode changed - from GanttElastic:', mode);
|
|
11657
|
+
|
|
11377
11658
|
// Force recalculation by triggering a reactive update
|
|
11378
11659
|
this.$nextTick(() => {
|
|
11379
11660
|
this.$forceUpdate();
|
|
@@ -11399,15 +11680,12 @@ const GanttElastic = {
|
|
|
11399
11680
|
*/
|
|
11400
11681
|
handleTaskUpdated(updatedTask) {
|
|
11401
11682
|
// Emit event to parent component
|
|
11683
|
+
console.log('Task updated -- GanttElastic:');
|
|
11402
11684
|
this.$emit('task-updated', updatedTask);
|
|
11685
|
+
this.$emit('gantt-task-updated', updatedTask);
|
|
11403
11686
|
|
|
11404
|
-
//
|
|
11405
|
-
|
|
11406
|
-
|
|
11407
|
-
// You can add additional logic here like:
|
|
11408
|
-
// - Save to backend
|
|
11409
|
-
// - Update local storage
|
|
11410
|
-
// - Trigger other updates
|
|
11687
|
+
// Also emit to root for plugin usage
|
|
11688
|
+
this.$root.$emit('gantt-task-updated', updatedTask);
|
|
11411
11689
|
},
|
|
11412
11690
|
/**
|
|
11413
11691
|
* Calculate height of scrollbar in current browser
|
|
@@ -12627,7 +12905,9 @@ const GanttElastic = {
|
|
|
12627
12905
|
this.state.options.height = this.getHeight(visibleTasks) - heightCompensation;
|
|
12628
12906
|
this.state.options.allVisibleTasksHeight = this.getTasksHeight(visibleTasks);
|
|
12629
12907
|
this.state.options.outerHeight = this.getHeight(visibleTasks, true) - heightCompensation;
|
|
12630
|
-
|
|
12908
|
+
|
|
12909
|
+
// Calculate task positions only for visible tasks
|
|
12910
|
+
const len = visibleTasks.length;
|
|
12631
12911
|
for (let index = 0; index < len; index++) {
|
|
12632
12912
|
let task = visibleTasks[index];
|
|
12633
12913
|
task.width = task.duration / this.state.options.times.timePerPixel - this.style['grid-line-vertical']['stroke-width'];
|
|
@@ -12675,19 +12955,22 @@ const GanttElastic = {
|
|
|
12675
12955
|
this.state.unwatchTasks = this.$watch('tasks', tasks => {
|
|
12676
12956
|
const notEqual = notEqualDeep(tasks, this.outputTasks);
|
|
12677
12957
|
if (notEqual) {
|
|
12678
|
-
this.
|
|
12958
|
+
this.debouncedUpdate(() => {
|
|
12959
|
+
this.setup('tasks');
|
|
12960
|
+
this.$nextTick(() => {
|
|
12961
|
+
this.recalculateHeight();
|
|
12962
|
+
});
|
|
12963
|
+
}, 'tasks');
|
|
12679
12964
|
}
|
|
12680
|
-
// Recalculate height when tasks change
|
|
12681
|
-
this.$nextTick(() => {
|
|
12682
|
-
this.recalculateHeight();
|
|
12683
|
-
});
|
|
12684
12965
|
}, {
|
|
12685
12966
|
deep: true
|
|
12686
12967
|
});
|
|
12687
12968
|
this.state.unwatchOptions = this.$watch('options', opts => {
|
|
12688
12969
|
const notEqual = notEqualDeep(opts, this.outputOptions);
|
|
12689
12970
|
if (notEqual) {
|
|
12690
|
-
this.
|
|
12971
|
+
this.debouncedUpdate(() => {
|
|
12972
|
+
this.setup('options');
|
|
12973
|
+
}, 'options');
|
|
12691
12974
|
}
|
|
12692
12975
|
}, {
|
|
12693
12976
|
deep: true
|
|
@@ -12751,6 +13034,38 @@ const GanttElastic = {
|
|
|
12751
13034
|
this.$root.$emit('gantt-elastic-mounted', this);
|
|
12752
13035
|
this.$emit('mounted', this);
|
|
12753
13036
|
this.$root.$emit('gantt-elastic-ready', this);
|
|
13037
|
+
|
|
13038
|
+
// Expose methods for plugin usage
|
|
13039
|
+
this.$gantt = {
|
|
13040
|
+
onTaskUpdated: this.handleTaskUpdated,
|
|
13041
|
+
onViewModeChanged: this.onViewModeChanged,
|
|
13042
|
+
getTasks: () => this.state.tasks,
|
|
13043
|
+
updateTask: (taskId, updates) => {
|
|
13044
|
+
const taskIndex = this.state.tasks.findIndex(task => task.id === taskId);
|
|
13045
|
+
if (taskIndex !== -1) {
|
|
13046
|
+
Object.assign(this.state.tasks[taskIndex], updates);
|
|
13047
|
+
this.$forceUpdate();
|
|
13048
|
+
}
|
|
13049
|
+
}
|
|
13050
|
+
};
|
|
13051
|
+
|
|
13052
|
+
/*
|
|
13053
|
+
* PLUGIN USAGE EXAMPLE:
|
|
13054
|
+
*
|
|
13055
|
+
* // Listen to events when using as plugin:
|
|
13056
|
+
* this.$root.$on('gantt-task-updated', (updatedTask) => {
|
|
13057
|
+
* console.log('Task updated:', updatedTask);
|
|
13058
|
+
* });
|
|
13059
|
+
*
|
|
13060
|
+
* this.$root.$on('gantt-view-mode-changed', (mode) => {
|
|
13061
|
+
* console.log('View mode changed:', mode);
|
|
13062
|
+
* });
|
|
13063
|
+
*
|
|
13064
|
+
* // Access gantt methods:
|
|
13065
|
+
* const ganttInstance = this.$refs.ganttChart.$gantt;
|
|
13066
|
+
* ganttInstance.updateTask(1, { label: 'New Task Name' });
|
|
13067
|
+
* const tasks = ganttInstance.getTasks();
|
|
13068
|
+
*/
|
|
12754
13069
|
},
|
|
12755
13070
|
/**
|
|
12756
13071
|
* Emit event when data was changed and before update (you can cleanup dom events here for example)
|
|
@@ -12790,10 +13105,10 @@ const GanttElastic = {
|
|
|
12790
13105
|
/* harmony default export */ var GanttElasticvue_type_script_lang_js = (GanttElastic);
|
|
12791
13106
|
;// ./src/GanttElastic.vue?vue&type=script&lang=js
|
|
12792
13107
|
/* harmony default export */ var src_GanttElasticvue_type_script_lang_js = (GanttElasticvue_type_script_lang_js);
|
|
12793
|
-
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/GanttElastic.vue?vue&type=style&index=0&id=
|
|
13108
|
+
;// ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-12.use[0]!./node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-12.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-12.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./src/GanttElastic.vue?vue&type=style&index=0&id=95091692&prod&lang=css
|
|
12794
13109
|
// extracted by mini-css-extract-plugin
|
|
12795
13110
|
|
|
12796
|
-
;// ./src/GanttElastic.vue?vue&type=style&index=0&id=
|
|
13111
|
+
;// ./src/GanttElastic.vue?vue&type=style&index=0&id=95091692&prod&lang=css
|
|
12797
13112
|
|
|
12798
13113
|
;// ./src/GanttElastic.vue
|
|
12799
13114
|
|
|
@@ -12806,8 +13121,8 @@ const GanttElastic = {
|
|
|
12806
13121
|
|
|
12807
13122
|
var GanttElastic_component = normalizeComponent(
|
|
12808
13123
|
src_GanttElasticvue_type_script_lang_js,
|
|
12809
|
-
|
|
12810
|
-
|
|
13124
|
+
GanttElasticvue_type_template_id_95091692_render,
|
|
13125
|
+
GanttElasticvue_type_template_id_95091692_staticRenderFns,
|
|
12811
13126
|
false,
|
|
12812
13127
|
null,
|
|
12813
13128
|
null,
|