vxe-gantt 4.4.0 → 4.4.2
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/LICENSE +21 -21
- package/README.en.md +74 -74
- package/README.ja-JP.md +74 -74
- package/README.md +121 -121
- package/README.zh-TW.md +75 -75
- package/es/gantt/src/gantt-chart.js +4 -0
- package/es/gantt/src/gantt-view.js +4 -0
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/gantt/src/gantt-chart.js +4 -0
- package/lib/gantt/src/gantt-chart.min.js +1 -1
- package/lib/gantt/src/gantt-view.js +4 -0
- package/lib/gantt/src/gantt-view.min.js +1 -1
- package/lib/index.umd.js +1773 -1842
- package/lib/index.umd.min.js +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +88 -88
- package/packages/components.ts +22 -22
- package/packages/gantt/index.ts +21 -21
- package/packages/gantt/src/emits.ts +25 -25
- package/packages/gantt/src/gantt-body.ts +291 -291
- package/packages/gantt/src/gantt-chart.ts +499 -495
- package/packages/gantt/src/gantt-footer.ts +51 -51
- package/packages/gantt/src/gantt-header.ts +137 -137
- package/packages/gantt/src/gantt-view.ts +1846 -1841
- package/packages/gantt/src/gantt.ts +2638 -2638
- package/packages/gantt/src/grid-emits.ts +19 -19
- package/packages/gantt/src/static.ts +35 -35
- package/packages/gantt/src/table-emits.ts +125 -125
- package/packages/gantt/src/util.ts +57 -57
- package/packages/index.ts +4 -4
- package/packages/ui/index.ts +119 -119
- package/packages/ui/src/comp.ts +3 -3
- package/packages/ui/src/depend.ts +14 -14
- package/packages/ui/src/dom.ts +196 -196
- package/packages/ui/src/log.ts +8 -8
- package/packages/ui/src/utils.ts +62 -62
- package/packages/ui/src/vn.ts +9 -9
- package/styles/all.scss +3 -3
- package/styles/base.scss +2 -2
- package/styles/components/gantt-module/gantt-chart.scss +261 -261
- package/styles/components/gantt.scss +707 -707
- package/styles/helpers/baseMixin.scss +95 -95
- package/styles/helpers/baseVar.scss +3 -3
- package/styles/helpers/placement.scss +38 -38
- package/styles/theme/base.scss +14 -14
- package/styles/theme/dark.scss +8 -8
- package/styles/theme/light.scss +8 -8
- package/types/all.d.ts +16 -16
- package/types/index.d.ts +4 -4
package/README.zh-TW.md
CHANGED
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
# vxe-gantt
|
|
2
|
-
|
|
3
|
-
[简体中文](README.md) | 繁體中文 | [English](README.en.md) | [日本語](README.ja-JP.md)
|
|
4
|
-
|
|
5
|
-
[](https://github.com/x-extends/vxe-gantt/stargazers)
|
|
6
|
-
[](https://gitee.com/x-extends/vxe-gantt/stargazers)
|
|
7
|
-
[](https://gitcode.com/x-extends/vxe-gantt/stargazers)
|
|
8
|
-
[](https://www.npmjs.com/package/vxe-gantt)
|
|
9
|
-
[](https://github.com/x-extends/vxe-gantt/actions/workflows/webpack.yml)
|
|
10
|
-
[](https://npm-stat.com/charts.html?package=vxe-gantt)
|
|
11
|
-
[](https://github.com/x-extends/vxe-gantt/issues)
|
|
12
|
-
[](https://github.com/x-extends/vxe-gantt/issues?q=is%3Aissue+is%3Aclosed)
|
|
13
|
-
[](https://github.com/x-extends/vxe-gantt/pulls)
|
|
14
|
-
[](https://github.com/x-extends/vxe-gantt/pulls?q=is%3Apr+is%3Aclosed)
|
|
15
|
-
[](LICENSE)
|
|
16
|
-
|
|
17
|
-
一個基於 [Vxe UI](https://github.com/x-extends/vxe-pc-ui) 的企業級甘特圖組件
|
|
18
|
-
|
|
19
|
-
## 浏览器支持
|
|
20
|
-
|
|
21
|
-
 |  |  |  | 
|
|
22
|
-
--- | --- | --- | --- | --- |
|
|
23
|
-
80+ ✔ | 80+ ✔ | 90+ ✔ | 75+ ✔ | 10+ ✔ |
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
## 安装
|
|
27
|
-
|
|
28
|
-
版本:[vue](https://www.npmjs.com/package/vue) 3.x
|
|
29
|
-
|
|
30
|
-
```shell
|
|
31
|
-
npm install vxe-gantt
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
Get on [unpkg](https://unpkg.com/vxe-gantt/) and [cdnjs](https://cdn.jsdelivr.net/npm/vxe-gantt/)
|
|
35
|
-
|
|
36
|
-
### NPM
|
|
37
|
-
|
|
38
|
-
```javascript
|
|
39
|
-
// ...
|
|
40
|
-
import VxeUIBase from 'vxe-pc-ui'
|
|
41
|
-
import 'vxe-pc-ui/lib/style.css'
|
|
42
|
-
|
|
43
|
-
import VxeUITable from 'vxe-table'
|
|
44
|
-
import 'vxe-table/lib/style.css'
|
|
45
|
-
|
|
46
|
-
import VxeUIGantt from 'vxe-gantt'
|
|
47
|
-
import 'vxe-gantt/lib/style.css'
|
|
48
|
-
// ...
|
|
49
|
-
|
|
50
|
-
createApp(App).use(VxeUIBase).use(VxeUITable).use(VxeUIGantt).mount('#app')
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
## 運行項目
|
|
54
|
-
|
|
55
|
-
安裝依賴
|
|
56
|
-
|
|
57
|
-
```shell
|
|
58
|
-
npm install
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
啓動本地調試
|
|
62
|
-
|
|
63
|
-
```shell
|
|
64
|
-
npm run serve
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
編譯打包,生成編譯後的目錄:es,lib
|
|
68
|
-
|
|
69
|
-
```shell
|
|
70
|
-
npm run lib
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## 許可證
|
|
74
|
-
|
|
75
|
-
[MIT](LICENSE) © 2025-present, Xu Liangzhan
|
|
1
|
+
# vxe-gantt
|
|
2
|
+
|
|
3
|
+
[简体中文](README.md) | 繁體中文 | [English](README.en.md) | [日本語](README.ja-JP.md)
|
|
4
|
+
|
|
5
|
+
[](https://github.com/x-extends/vxe-gantt/stargazers)
|
|
6
|
+
[](https://gitee.com/x-extends/vxe-gantt/stargazers)
|
|
7
|
+
[](https://gitcode.com/x-extends/vxe-gantt/stargazers)
|
|
8
|
+
[](https://www.npmjs.com/package/vxe-gantt)
|
|
9
|
+
[](https://github.com/x-extends/vxe-gantt/actions/workflows/webpack.yml)
|
|
10
|
+
[](https://npm-stat.com/charts.html?package=vxe-gantt)
|
|
11
|
+
[](https://github.com/x-extends/vxe-gantt/issues)
|
|
12
|
+
[](https://github.com/x-extends/vxe-gantt/issues?q=is%3Aissue+is%3Aclosed)
|
|
13
|
+
[](https://github.com/x-extends/vxe-gantt/pulls)
|
|
14
|
+
[](https://github.com/x-extends/vxe-gantt/pulls?q=is%3Apr+is%3Aclosed)
|
|
15
|
+
[](LICENSE)
|
|
16
|
+
|
|
17
|
+
一個基於 [Vxe UI](https://github.com/x-extends/vxe-pc-ui) 的企業級甘特圖組件
|
|
18
|
+
|
|
19
|
+
## 浏览器支持
|
|
20
|
+
|
|
21
|
+
 |  |  |  | 
|
|
22
|
+
--- | --- | --- | --- | --- |
|
|
23
|
+
80+ ✔ | 80+ ✔ | 90+ ✔ | 75+ ✔ | 10+ ✔ |
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## 安装
|
|
27
|
+
|
|
28
|
+
版本:[vue](https://www.npmjs.com/package/vue) 3.x
|
|
29
|
+
|
|
30
|
+
```shell
|
|
31
|
+
npm install vxe-gantt
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Get on [unpkg](https://unpkg.com/vxe-gantt/) and [cdnjs](https://cdn.jsdelivr.net/npm/vxe-gantt/)
|
|
35
|
+
|
|
36
|
+
### NPM
|
|
37
|
+
|
|
38
|
+
```javascript
|
|
39
|
+
// ...
|
|
40
|
+
import VxeUIBase from 'vxe-pc-ui'
|
|
41
|
+
import 'vxe-pc-ui/lib/style.css'
|
|
42
|
+
|
|
43
|
+
import VxeUITable from 'vxe-table'
|
|
44
|
+
import 'vxe-table/lib/style.css'
|
|
45
|
+
|
|
46
|
+
import VxeUIGantt from 'vxe-gantt'
|
|
47
|
+
import 'vxe-gantt/lib/style.css'
|
|
48
|
+
// ...
|
|
49
|
+
|
|
50
|
+
createApp(App).use(VxeUIBase).use(VxeUITable).use(VxeUIGantt).mount('#app')
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 運行項目
|
|
54
|
+
|
|
55
|
+
安裝依賴
|
|
56
|
+
|
|
57
|
+
```shell
|
|
58
|
+
npm install
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
啓動本地調試
|
|
62
|
+
|
|
63
|
+
```shell
|
|
64
|
+
npm run serve
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
編譯打包,生成編譯後的目錄:es,lib
|
|
68
|
+
|
|
69
|
+
```shell
|
|
70
|
+
npm run lib
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## 許可證
|
|
74
|
+
|
|
75
|
+
[MIT](LICENSE) © 2025-present, Xu Liangzhan
|
|
@@ -20,6 +20,7 @@ export default defineVxeComponent({
|
|
|
20
20
|
const refTaskWrapperElem = ref();
|
|
21
21
|
const refChartBeforeWrapperElem = ref();
|
|
22
22
|
const refChartAfterWrapperElem = ref();
|
|
23
|
+
const refNowLineElem = ref();
|
|
23
24
|
const renderTaskBar = ($xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex, rowChildren, isExpandTree) => {
|
|
24
25
|
const tableReactData = $xeTable.reactData;
|
|
25
26
|
const { resizeHeightFlag, pendingRowFlag } = tableReactData;
|
|
@@ -376,6 +377,7 @@ export default defineVxeComponent({
|
|
|
376
377
|
}, [
|
|
377
378
|
nowLineLeft > 0
|
|
378
379
|
? h('div', {
|
|
380
|
+
ref: refNowLineElem,
|
|
379
381
|
class: 'vxe-gantt-view--chart-now-line',
|
|
380
382
|
style: {
|
|
381
383
|
left: nowLineLeft + 'px'
|
|
@@ -409,6 +411,7 @@ export default defineVxeComponent({
|
|
|
409
411
|
onMounted(() => {
|
|
410
412
|
const { elemStore } = ganttViewInternalData;
|
|
411
413
|
const prefix = 'main-chart-';
|
|
414
|
+
elemStore[`${prefix}now-line`] = refNowLineElem;
|
|
412
415
|
elemStore[`${prefix}task-wrapper`] = refTaskWrapperElem;
|
|
413
416
|
elemStore[`${prefix}before-wrapper`] = refChartBeforeWrapperElem;
|
|
414
417
|
elemStore[`${prefix}after-wrapper`] = refChartAfterWrapperElem;
|
|
@@ -416,6 +419,7 @@ export default defineVxeComponent({
|
|
|
416
419
|
onUnmounted(() => {
|
|
417
420
|
const { elemStore } = ganttViewInternalData;
|
|
418
421
|
const prefix = 'main-chart-';
|
|
422
|
+
elemStore[`${prefix}now-line`] = null;
|
|
419
423
|
elemStore[`${prefix}task-wrapper`] = null;
|
|
420
424
|
elemStore[`${prefix}before-wrapper`] = null;
|
|
421
425
|
elemStore[`${prefix}after-wrapper`] = null;
|
|
@@ -1269,6 +1269,10 @@ export default defineVxeComponent({
|
|
|
1269
1269
|
if (afterSvgElem) {
|
|
1270
1270
|
afterSvgElem.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
|
|
1271
1271
|
}
|
|
1272
|
+
const nowLineElem = getRefElem(elemStore['main-chart-now-line']);
|
|
1273
|
+
if (nowLineElem) {
|
|
1274
|
+
nowLineElem.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
|
|
1275
|
+
}
|
|
1272
1276
|
reactData.scrollYTop = scrollYTop;
|
|
1273
1277
|
reactData.scrollYHeight = scrollYHeight;
|
|
1274
1278
|
reactData.isScrollYBig = isScrollYBig;
|
package/es/ui/index.js
CHANGED
package/es/ui/src/log.js
CHANGED
|
@@ -49,6 +49,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
49
49
|
const refTaskWrapperElem = (0, _vue.ref)();
|
|
50
50
|
const refChartBeforeWrapperElem = (0, _vue.ref)();
|
|
51
51
|
const refChartAfterWrapperElem = (0, _vue.ref)();
|
|
52
|
+
const refNowLineElem = (0, _vue.ref)();
|
|
52
53
|
const renderTaskBar = ($xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex, rowChildren, isExpandTree) => {
|
|
53
54
|
const tableReactData = $xeTable.reactData;
|
|
54
55
|
const {
|
|
@@ -467,6 +468,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
467
468
|
'is--cl-drag': dragLinkFromStore.rowid
|
|
468
469
|
}]
|
|
469
470
|
}, [nowLineLeft > 0 ? (0, _vue.h)('div', {
|
|
471
|
+
ref: refNowLineElem,
|
|
470
472
|
class: 'vxe-gantt-view--chart-now-line',
|
|
471
473
|
style: {
|
|
472
474
|
left: nowLineLeft + 'px'
|
|
@@ -493,6 +495,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
493
495
|
elemStore
|
|
494
496
|
} = ganttViewInternalData;
|
|
495
497
|
const prefix = 'main-chart-';
|
|
498
|
+
elemStore[`${prefix}now-line`] = refNowLineElem;
|
|
496
499
|
elemStore[`${prefix}task-wrapper`] = refTaskWrapperElem;
|
|
497
500
|
elemStore[`${prefix}before-wrapper`] = refChartBeforeWrapperElem;
|
|
498
501
|
elemStore[`${prefix}after-wrapper`] = refChartAfterWrapperElem;
|
|
@@ -502,6 +505,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
502
505
|
elemStore
|
|
503
506
|
} = ganttViewInternalData;
|
|
504
507
|
const prefix = 'main-chart-';
|
|
508
|
+
elemStore[`${prefix}now-line`] = null;
|
|
505
509
|
elemStore[`${prefix}task-wrapper`] = null;
|
|
506
510
|
elemStore[`${prefix}before-wrapper`] = null;
|
|
507
511
|
elemStore[`${prefix}after-wrapper`] = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getIcon,renderEmptyElement}=_core.VxeUI,sourceType="gantt",viewType="chart";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",setup(){let z=(0,_vue.inject)("$xeGantt",{});var e=(0,_vue.inject)("$xeGanttView",{});let{props:K,context:v,reactData:W,internalData:Y}=z,{reactData:_,internalData:u}=e,{computeProgressField:J,computeTitleField:Q,computeTypeField:X,computeTaskBarOpts:Z,computeScaleUnit:ee,computeTaskLinkOpts:c,computeTaskBarMilestoneOpts:te,computeTaskBarSubviewOpts:ae}=z.getComputeMaps(),d=e.getComputeMaps().computeNowLineLeft,p=(0,_vue.ref)(),w=(0,_vue.ref)(),h=(0,_vue.ref)(),g=(0,_vue.ref)(),m=(d,e,t,a,r,s
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util"),_utils=require("../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getIcon,renderEmptyElement}=_core.VxeUI,sourceType="gantt",viewType="chart";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",setup(){let z=(0,_vue.inject)("$xeGantt",{});var e=(0,_vue.inject)("$xeGanttView",{});let{props:K,context:v,reactData:W,internalData:Y}=z,{reactData:_,internalData:u}=e,{computeProgressField:J,computeTitleField:Q,computeTypeField:X,computeTaskBarOpts:Z,computeScaleUnit:ee,computeTaskLinkOpts:c,computeTaskBarMilestoneOpts:te,computeTaskBarSubviewOpts:ae}=z.getComputeMaps(),d=e.getComputeMaps().computeNowLineLeft,p=(0,_vue.ref)(),w=(0,_vue.ref)(),h=(0,_vue.ref)(),g=(0,_vue.ref)(),m=(0,_vue.ref)(),x=(d,e,t,a,r,n,s,$)=>{let{resizeHeightFlag:V,pendingRowFlag:p}=d.reactData,{fullAllDataRowIdData:j,pendingRowMaps:w}=d.internalData;var{computeCellOpts:i,computeRowOpts:l,computeDefaultRowHeight:o}=d.getComputeMaps(),i=i.value,l=l.value,o=o.value,v=d.getComputeMaps().computeTreeOpts,v=v.value,v=v.children||v.childrenField,u=z.context.slots;let h=u.taskBar||u["task-bar"];u=u.taskBarOverview||u["task-bar-overview"];let{treeConfig:G,taskBarMilestoneConfig:L,taskBarSubviewConfig:g}=K;var{activeLink:c,activeBarRowid:q}=W;let _=Q.value,m=J.value,x=X.value;var b=Z.value,k=te.value;let f=ae.value,{showOverview:A,barStyle:T}=f,y=ee.value,E={$gantt:z,row:e,scaleType:y},{showProgress:C,showContent:B,contentMethod:M,barStyle:D,moveable:S,showTooltip:N}=b,O=_xeUtils.default.isFunction(D);var b=(D?O?D(E)||void 0:D:{})||{},P=b.round,H=j[t]||{},H=V?(0,_util.getCellRestHeight)(H,i,l,o):0;let U=(0,_utils.getStringValue)(_xeUtils.default.get(e,_));i=C?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(e,m)))):0,l=(0,_util.getTaskType)(_xeUtils.default.get(e,x)),o={},i={width:`${i||0}%`};O&&({bgColor:b,completedBgColor:F}=b,b&&(o.backgroundColor=b),F)&&(i.backgroundColor=F);let R={$gantt:z,source:sourceType,type:viewType,scaleType:y,row:e,$rowIndex:r,rowIndex:a,_rowIndex:n},I=[];if(z.renderGanttTaskBarContent)I=z.renderGanttTaskBarContent(R,{$gantt:z,$table:d,rowid:t});else{var b=!(!(0,_utils.hasEnableConf)(L,k)||!(0,_util.hasMilestoneTask)(l)),F=!(!(0,_utils.hasEnableConf)(g,f)||!(0,_util.hasSubviewTask)(l));M&&(U=(0,_utils.getStringValue)(M({row:e,title:U,scaleType:y})));let c={};if(N&&(c.onMouseover=e=>{var t=Y.dragBarRow,a=Object.assign({$event:e},R);t||z.triggerTaskBarTooltipEvent(e,a),z.dispatchEvent("task-bar-mouseenter",a,e)},c.onMouseleave=e=>{var t=Y.dragBarRow,a=Object.assign({$event:e},R);t||z.handleTaskBarTooltipLeaveEvent(e,a),z.dispatchEvent("task-bar-mouseleave",a,e)}),F&&G&&s&&s.length)if($)A&&I.push((0,_vue.h)("div",{key:"vcso",class:"vxe-gantt-view--chart-subview-wrapper is--overview"},[(0,_vue.h)("div",{key:t,rowid:t,class:["vxe-gantt-view--chart-subview-row",{"is--progress":C,"is--round":P,"is--move":S}]},[(0,_vue.h)("div",{rowid:t,class:[u?"vxe-gantt-view--chart-subview-custom-bar":"vxe-gantt-view--chart-subview-bar","is--"+l]},[u?(0,_vue.h)("div",{key:"cbc",class:"vxe-gantt-view--chart-subview-custom-bar-content-wrapper"},z.callSlot(u,E)):(0,_vue.h)("div",{class:"vxe-gantt-view--chart-subview-bar-content-wrapper"},[B?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-content"},U):renderEmptyElement(z)])])])]));else{let u=[];_xeUtils.default.eachTree(s,e=>{var a={$gantt:z,row:e,scaleType:y},a=(D?O?D(a):D:{})||{},r=a.round,n=d.getRowid(e);let s=(0,_utils.getStringValue)(_xeUtils.default.get(e,_));var i=C?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(e,m)))):0,l=(0,_util.getTaskType)(_xeUtils.default.get(e,x)),o=!(!(0,_utils.hasEnableConf)(g,f)||!(0,_util.hasSubviewTask)(l));if(!o){var v,o={width:`${i||0}%`};O&&({bgColor:v,completedBgColor:i}=a,i)&&(o.backgroundColor=i);let t=_xeUtils.default.assign({},R,{row:e,rowIndex:d.getRowIndex(e),$rowIndex:d.getVMRowIndex(e),_rowIndex:d.getVTRowIndex(e)});M&&(s=(0,_utils.getStringValue)(M({row:e,title:s,scaleType:y}))),u.push((0,_vue.h)("div",{key:n,rowid:n,class:["vxe-gantt-view--chart-subview-row","is--"+l,{"is--progress":C,"is--round":r,"is--move":S,"row--pending":!!p&&!!w[n]}]},[(0,_vue.h)("div",{rowid:n,class:[h?"vxe-gantt-view--chart-subview-custom-bar":"vxe-gantt-view--chart-subview-bar","is--"+l],style:T?_xeUtils.default.isFunction(T)?T(t):T:void 0,onClick(e){e.stopPropagation(),z.handleTaskBarClickEvent(e,t)},onDblclick(e){e.stopPropagation(),z.handleTaskBarDblclickEvent(e,t)},onMousedown(e){e.stopPropagation(),z.handleTaskBarMousedownEvent&&z.handleTaskBarMousedownEvent(e,t)}},[h?(0,_vue.h)("div",Object.assign({key:"cbc",class:"vxe-gantt-view--chart-subview-custom-bar-content-wrapper"},c),z.callSlot(h,t)):(0,_vue.h)("div",Object.assign({class:"vxe-gantt-view--chart-subview-bar-content-wrapper"},c),[C?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-progress",style:o}):renderEmptyElement(z),B?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-content"},s):renderEmptyElement(z)])])]))}},{children:v}),I.push((0,_vue.h)("div",{key:"vcsc",class:"vxe-gantt-view--chart-subview-wrapper is--inline"},u))}else h?I.push((0,_vue.h)("div",Object.assign({key:"cbc",class:"vxe-gantt-view--chart-custom-bar-content-wrapper"},c),z.callSlot(h,E))):b?({icon:r,iconStatus:a,iconStyle:n}=k,F={$gantt:z,row:e},I.push((0,_vue.h)("div",Object.assign({key:"vcm",class:"vxe-gantt-view--chart-milestone-wrapper"},c),[(0,_vue.h)("div",{class:["vxe-gantt-view--chart-milestone-icon",a?"theme--"+(_xeUtils.default.isFunction(a)?a(F):a):""],style:n?Object.assign({},_xeUtils.default.isFunction(n)?n(F):n):void 0},[(0,_vue.h)("i",{class:(r?_xeUtils.default.isFunction(r)?r(F):r:"")||getIcon().GANTT_VIEW_TASK_MILESTONE})]),B?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-milestone-content"},U):renderEmptyElement(z)]))):I.push((0,_vue.h)("div",Object.assign({key:"vbc",class:"vxe-gantt-view--chart-bar-content-wrapper"},c),[C?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-progress",style:i}):renderEmptyElement(z),B?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-content"},U):renderEmptyElement(z)]))}return(0,_vue.h)("div",{key:t,rowid:t,class:["vxe-gantt-view--chart-row","is--"+l,{"is--progress":C,"row--pending":!!p&&!!w[t],"is--round":P,"is--move":S}],style:{height:H+"px"},onDragstart(e){Y.dragBarRow&&e.preventDefault()},onContextmenu(e){z.handleTaskBarContextmenuEvent(e,R)}},[(0,_vue.h)("div",{class:[h?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar","is--"+l,{"is--active":q===t,"active--link":c&&(t===""+c.from||t===""+c.to)}],style:o,rowid:t,onClick(e){z.handleTaskBarClickEvent(e,E)},onDblclick(e){z.handleTaskBarDblclickEvent(e,E)},onMousedown(e){z.handleTaskBarMousedownEvent&&z.handleTaskBarMousedownEvent(e,E)}},I)])},b=(o,e)=>{let v=o.props.treeConfig,u=o.reactData.treeExpandedFlag,{fullAllDataRowIdData:c,treeExpandedMaps:d}=o.internalData;var t=o.getComputeMaps().computeTreeOpts,t=t.value;let p=t.transform,w=t.children||t.childrenField,h=_.scrollYLoad,g=[];return e.forEach((e,t)=>{var a=o.getRowid(e),r=c[a]||{};let n=t,s=-1,i=(r&&(n=r.index,s=r._index),!1),l=[];v&&(l=e[w],i=!!u&&l&&0<l.length&&!!d[a]),g.push(x(o,e,a,n,t,s,l,i)),v&&i&&!h&&!p&&g.push(...b(o,l))}),g};return(0,_vue.onMounted)(()=>{var e=u.elemStore,t="main-chart-";e[t+"now-line"]=m,e[t+"task-wrapper"]=w,e[t+"before-wrapper"]=h,e[t+"after-wrapper"]=g}),(0,_vue.onUnmounted)(()=>{var e=u.elemStore,t="main-chart-";e[t+"now-line"]=null,e[t+"task-wrapper"]=null,e[t+"before-wrapper"]=null,e[t+"after-wrapper"]=null}),()=>{var e=u.xeTable,t=v.slots,a=W.dragLinkFromStore,r=_.tableData,n=c.value,s=Z.value,i=d.value,{isCurrent:l,isHover:o}=n,s=s.linkCreatable,t=t.taskNowLine||t["task-now-line"];return(0,_vue.h)("div",{ref:p,class:["vxe-gantt-view--chart-wrapper",{"is--cl-drag":a.rowid}]},[0<i?(0,_vue.h)("div",{ref:m,class:"vxe-gantt-view--chart-now-line",style:{left:i+"px"}},t?t({}):[]):renderEmptyElement(z),z.renderGanttTaskChartBefores?(0,_vue.h)("div",{ref:h,class:["vxe-gantt-view--chart-before-wrapper",{"link--current":l,"link--hover":o}]},e&&(0,_utils.isEnableConf)(n)?z.renderGanttTaskChartBefores():[]):renderEmptyElement(z),(0,_vue.h)("div",{ref:w,class:["vxe-gantt-view--chart-task-wrapper",{"link--current":l,"link--create":s}]},e?b(e,r):[]),z.renderGanttTaskChartAfters?(0,_vue.h)("div",{ref:g,class:"vxe-gantt-view--chart-after-wrapper"},e&&(0,_utils.isEnableConf)(n)?z.renderGanttTaskChartAfters():[]):renderEmptyElement(z)])}}});
|
|
@@ -1485,6 +1485,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
1485
1485
|
if (afterSvgElem) {
|
|
1486
1486
|
afterSvgElem.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
|
|
1487
1487
|
}
|
|
1488
|
+
const nowLineElem = (0, _util.getRefElem)(elemStore['main-chart-now-line']);
|
|
1489
|
+
if (nowLineElem) {
|
|
1490
|
+
nowLineElem.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
|
|
1491
|
+
}
|
|
1488
1492
|
reactData.scrollYTop = scrollYTop;
|
|
1489
1493
|
reactData.scrollYHeight = scrollYHeight;
|
|
1490
1494
|
reactData.isScrollYBig = isScrollYBig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_dom=require("../../ui/src/dom"),_core=require("@vxe-ui/core"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body")),_ganttFooter=_interopRequireDefault(require("./gantt-footer"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let globalEvents=_core.VxeUI.globalEvents,sourceType="gantt",minuteMs=6e4,dayMs=60*minuteMs*24;function createInternalData(){return{xeTable:null,visibleColumn:[],startMaps:{},endMaps:{},chartMaps:{},todayDateMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},lastScrollTop:0,lastScrollLeft:0}}function createReactData(){return{scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!0,scrollbarWidth:0,scrollbarHeight:0,lastScrollTime:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:40}}let maxYHeight=5e6;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(t,l){var d=_xeUtils.default.uniqueId();let M=(0,_vue.inject)("$xeGantt",{}),{reactData:T,internalData:h}=M,{computeTaskOpts:v,computeTaskViewOpts:w,computeStartField:p,computeEndField:x,computeTypeField:_,computeScrollbarOpts:S,computeScrollbarXToTop:b,computeScrollbarYToLeft:D,computeScaleUnit:a,computeWeekScale:r,computeMinScale:U,computeTaskNowLineOpts:m}=M.getComputeMaps(),i=(0,_vue.ref)(),W=(0,_vue.ref)(),E=(0,_vue.ref)(),L=(0,_vue.ref)(),k=(0,_vue.ref)(),H=(0,_vue.ref)(),R=(0,_vue.ref)(),z=(0,_vue.ref)(),C=(0,_vue.ref)(),$=(0,_vue.ref)(),Y=(0,_vue.ref)(),u=(0,_vue.ref)(),y=(0,_vue.ref)(),F=(0,_vue.ref)(),I=(0,_vue.reactive)(createReactData()),V=createInternalData(),B={refElem:i,refScrollXHandleElem:L,refScrollYHandleElem:R},j=(0,_vue.computed)(()=>{var{minViewDate:t,maxViewDate:l}=I,e=w.value,a=U.value,e=e.gridding,r=[];if(a&&t&&l){var{type:i,startDay:s}=a,o=-(T.currLeftSpacing+_xeUtils.default.toNumber(e&&e.leftSpacing||0)),d=T.currRightSpacing+_xeUtils.default.toNumber(e&&e.rightSpacing||0);switch(i){case"year":{let e=_xeUtils.default.getWhatYear(t,o,"first");for(var u=_xeUtils.default.getWhatYear(l,d,"first");e<=u;){var n=e;r.push(n),e=_xeUtils.default.getWhatYear(e,1)}break}case"quarter":{let e=_xeUtils.default.getWhatQuarter(t,o,"first");for(var c=_xeUtils.default.getWhatQuarter(l,d,"first");e<=c;){var f=e;r.push(f),e=_xeUtils.default.getWhatQuarter(e,1)}break}case"month":{let e=_xeUtils.default.getWhatMonth(t,o,"first");for(var h=_xeUtils.default.getWhatMonth(l,d,"first");e<=h;){var v=e;r.push(v),e=_xeUtils.default.getWhatMonth(e,1)}break}case"week":{let e=_xeUtils.default.getWhatWeek(t,o,s,s);for(var m=_xeUtils.default.getWhatWeek(l,d,s,s);e<=m;){var g=e;r.push(g),e=_xeUtils.default.getWhatWeek(e,1)}break}case"day":case"date":{let e=_xeUtils.default.getWhatDay(t,o,"first");for(var y=_xeUtils.default.getWhatDay(l,d,"first");e<=y;){var p=e;r.push(p),e=_xeUtils.default.getWhatDay(e,1)}break}case"hour":case"minute":case"second":{var x=+(0,_util.getStandardGapTime)(a.type);let e=t.getTime()+o*x;for(var _=l.getTime()+d*x;e<=_;){var S=new Date(e);r.push(S),e+=x}break}}}return r});var e=(0,_vue.computed)(()=>{var e=M.reactData,{minViewDate:a,maxViewDate:t,viewCellWidth:r}=I,{visibleColumn:i,todayDateMaps:s}=V,o=U.value,d=w.value.showNowLine,u=m.value.mode,e=e.nowTime;let n=0;if(d&&o&&a&&t&&e>=a.getTime()&&e<=t.getTime()){var c=s[o.type];let t=null,l=null;for(let e=0;e<i.length;e++){var f=i[e];if(f.field===c){t=f,n=e*r,l=i[e+1];break}}"progress"===u?t&&l&&(d=t.dateObj.date.getTime(),a=Math.max(0,Math.min(1,(e-d)/(l.dateObj.date.getTime()-d))),n+=a*r):"center"===u?n+=r/2:"end"===u&&(n+=r-1)}return n});let G={computeScaleDateList:j,computeNowLineLeft:e},X={xID:d,props:t,context:l,reactData:I,internalData:V,getRefMaps:()=>B,getComputeMaps:()=>G},g=e=>{var t=v.value.dateFormat;return _xeUtils.default.toStringDate(e,t||null)},N=()=>{var o=M.reactData,d=o.taskScaleList,u=U.value;if(u){var d=d.find(e=>"week"===e.type),u="week"===u.type,n=new Date;let[e,t,l,a,r,i,s]=_xeUtils.default.toDateString(n,"yyyy-M-MM-dd-HH-mm-ss").split("-");var c=n.getDay()+1,f=Math.ceil((n.getMonth()+1)/3),d=""+_xeUtils.default.getYearWeek(n,d?d.startDay:void 0);u&&q(d,t)&&(e=""+(Number(e)+1),l="01"),o.nowTime=n.getTime(),V.todayDateMaps={year:e,quarter:e+"_q"+f,month:e+"_"+l,week:e+"_W"+d,day:`${e}_${l}_${a}_E`+c,date:`${e}_${l}_`+a,hour:`${e}_${l}_${a}_`+r,minute:`${e}_${l}_${a}_${r}_`+i,second:`${e}_${l}_${a}_${r}_${i}_`+s}}},A=()=>{var e=M.reactData.taskScaleList,t=a.value;let h=U.value;var v=r.value,m=j.value;let g=[],l=[];if(h&&t&&m.length){let i={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},s={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}};var y="week"===h.type,p=(t,l,a)=>{if(h.type!==t){var l=l[t],r=""+l.field;let e=s[t][r];e||(e=l,s[t][r]=e,i[t].push(e)),e&&(e.children||(e.children=[]),e.children.push(a))}};for(let f=0;f<m.length;f++){var x=m[f];let[e,t,l,a,r,i,s,o,d,u,n,c]=_xeUtils.default.toDateString(x,"yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss").split("-");var _=x.getDay(),S=_+1,T=Math.ceil((x.getMonth()+1)/3),w=""+_xeUtils.default.getYearWeek(x,v?v.startDay:void 0),b=_xeUtils.default.padStart(w,2,"0"),x=(y&&q(w,l)&&(t=""+(Number(t)+1),l="1",a="0"+l),{date:x,yy:e,yyyy:t,M:l,MM:a,d:r,dd:i,H:s,HH:o,m:d,mm:u,s:n,ss:c,q:T,W:w,WW:b,E:S,e:_}),b={year:{field:t,title:t,dateObj:x},quarter:{field:t+"_q"+T,title:""+T,dateObj:x},month:{field:t+"_"+a,title:a,dateObj:x},week:{field:t+"_W"+w,title:w,dateObj:x},day:{field:`${t}_${a}_${i}_E`+S,title:""+S,dateObj:x},date:{field:`${t}_${a}_`+i,title:i,dateObj:x},hour:{field:`${t}_${a}_${i}_`+o,title:o,dateObj:x},minute:{field:`${t}_${a}_${i}_${o}_`+u,title:u,dateObj:x},second:{field:`${t}_${a}_${i}_${o}_${u}_`+c,title:c,dateObj:x}},_=b[h.type];h.level<19&&p("year",b,_),h.level<17&&p("quarter",b,_),h.level<15&&p("month",b,_),h.level<13&&p("week",b,_),h.level<11&&p("day",b,_),h.level<9&&p("date",b,_),h.level<7&&p("hour",b,_),h.level<5&&p("minute",b,_),h.level<3&&p("second",b,_),g.push(_)}e.forEach(e=>{var t;e.type===h.type?l.push({scaleItem:e,columns:g}):((t=i[e.type]||[])&&t.forEach(e=>{e.childCount=e.children?e.children.length:0,e.children=void 0}),l.push({scaleItem:e,columns:t}))})}return{fullCols:g,groupCols:l}},q=(e,t)=>""+e=="1"&&""+t=="12",Q=(e,t)=>{e=_xeUtils.default.toStringDate(e);let l=e.getFullYear();var a=e.getMonth(),e=_xeUtils.default.getYearWeek(e,t);return q(e,a+1)&&l++,{yyyy:l,W:e}},P=e=>{let i=I.minViewDate;var t=U.value,l=a.value;let d=r.value;if(t)switch(l){case"year":{let o={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy");o[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy"),a=_xeUtils.default.getWhatYear(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy"),i=_xeUtils.default.getWhatYear(t,0,"first"),s=Math.floor((_xeUtils.default.getWhatYear(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/s,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/s,t=(o[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(o[r]||0)-t+a}}}case"quarter":{let o={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-q");o[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-q"),a=_xeUtils.default.getWhatQuarter(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-q"),i=_xeUtils.default.getWhatQuarter(t,0,"first"),s=Math.floor((_xeUtils.default.getWhatQuarter(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/s,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/s,t=(o[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(o[r]||0)-t+a}}}case"month":{let o={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM");o[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM"),a=_xeUtils.default.getWhatMonth(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM"),i=_xeUtils.default.getWhatMonth(t,0,"first"),s=Math.floor((_xeUtils.default.getWhatMonth(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/s,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/s,t=(o[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(o[r]||0)-t+a}}}case"week":{let o={};return e.forEach(({dateObj:e},t)=>{e=e.yyyy+"-"+e.W;o[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=Q(e,d?d.startDay:void 0),l=l.yyyy+"-"+l.W,a=_xeUtils.default.getWhatWeek(e,0,d?d.startDay:void 0,d?d.startDay:void 0),r=Q(t,d?d.startDay:void 0),r=r.yyyy+"-"+r.W,i=_xeUtils.default.getWhatWeek(t,0,d?d.startDay:void 0,d?d.startDay:void 0),s=Math.floor((_xeUtils.default.getWhatWeek(t,1,d?d.startDay:void 0,d?d.startDay:void 0).getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/s,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/s,t=(o[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(o[r]||0)-t+a}}}case"day":case"date":{let o={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd");o[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd"),a=_xeUtils.default.getWhatDay(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd"),i=_xeUtils.default.getWhatDay(t,0,"first"),s=Math.floor((_xeUtils.default.getWhatDay(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/s,a=(t.getTime()-i.getTime())/minuteMs/s,t=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/s,i=(o[l]||0)+e;return{offsetLeftSize:i,offsetWidthSize:(o[r]||0)-i+t+(e||a?0:1)}}}case"hour":{let o={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH");o[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH"),a=_xeUtils.default.getWhatHours(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH"),i=_xeUtils.default.getWhatHours(t,0,"first"),s=Math.floor((_xeUtils.default.getWhatHours(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/s,a=(t.getTime()-i.getTime())/minuteMs/s,t=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/s,i=(o[l]||0)+e;return{offsetLeftSize:i,offsetWidthSize:(o[r]||0)-i+t+(e||a?0:1)}}}case"minute":{let o={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH:mm");o[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH:mm"),a=_xeUtils.default.getWhatMinutes(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH:mm"),i=_xeUtils.default.getWhatMinutes(t,0,"first"),s=Math.floor((_xeUtils.default.getWhatMinutes(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/s,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/s,t=(o[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(o[r]||0)-t+a}}}case"second":{let r=(0,_util.getStandardGapTime)(t.type);return(e,t)=>{e=g(e),t=g(t);let l=0,a=0;return i&&(l=(e.getTime()-i.getTime())/r,a=(t.getTime()-e.getTime())/r),{offsetLeftSize:l,offsetWidthSize:a}}}}return()=>({offsetLeftSize:0,offsetWidthSize:0})},J=()=>{var e=M.props.treeConfig,t=V.scrollXStore,l=V.xeTable;let s=null,o=null;if(l){let a=p.value,r=x.value,i=_.value;var{computeAggregateOpts:d,computeTreeOpts:u}=l.getComputeMaps(),n=l.reactData.isRowGroupStatus,{afterFullData:l,afterTreeFullData:c,afterGroupFullData:f}=l.internalData,d=d.value,u=u.value,h=u.transform,v=u.children||u.childrenField,m=e=>{let t=_xeUtils.default.get(e,a),l=_xeUtils.default.get(e,r);var e=_xeUtils.default.get(e,i),e=(0,_util.hasMilestoneTask)(e);t=t||l,!e&&l||(l=t),t&&(e=g(t),!s||s.getTime()>e.getTime())&&(s=e),l&&(e=g(l),!o||o.getTime()<e.getTime())&&(o=e)};n?(n=d.mapChildrenField)&&_xeUtils.default.eachTree(f,m,{children:n}):e?_xeUtils.default.eachTree(c,m,{children:h?u.mapChildrenField:v}):l.forEach(m)}t.startIndex=0,t.endIndex=Math.max(1,t.visibleSize),I.minViewDate=s,I.maxViewDate=o,V.startMaps={},V.endMaps={},(()=>{var e=M.props.treeConfig,{minViewDate:t,maxViewDate:l}=I,{fullCols:a,groupCols:r}=A();if(t&&l&&a.length){let c=V.xeTable;if(c){let s=p.value,o=x.value,d=_.value;var{computeAggregateOpts:t,computeTreeOpts:l}=c.getComputeMaps(),i=c.reactData.isRowGroupStatus,{afterFullData:f,afterTreeFullData:h,afterGroupFullData:v}=c.internalData,t=t.value,l=l.value,m=l.transform,g=l.children||l.childrenField;let u={},n=P(a);var y=e=>{var t=c.getRowid(e);let l=_xeUtils.default.get(e,s),a=_xeUtils.default.get(e,o);var r=(0,_util.getTaskType)(_xeUtils.default.get(e,d)),i=(0,_util.hasMilestoneTask)(r),r=(0,_util.hasSubviewTask)(r);i&&(l=l||a,a=l),r?u[t]={row:e,rowid:t,oLeftSize:0,oWidthSize:0}:l&&a&&({offsetLeftSize:i,offsetWidthSize:r}=n(l,a),u[t]={row:e,rowid:t,oLeftSize:i,oWidthSize:r})};i?(i=t.mapChildrenField)&&_xeUtils.default.eachTree(v,y,{children:i}):e?_xeUtils.default.eachTree(h,y,{children:m?l.mapChildrenField:g}):f.forEach(y),V.chartMaps=u}}V.visibleColumn=a,I.headerGroups=r,N(),re(),ie()})()},n=()=>{var{scrollXWidth:e,scrollYHeight:t}=I,l=V.elemStore,a=S.value,l=(0,_util.getRefElem)(l["main-body-wrapper"]),r=L.value,i=R.value;l&&(t=t>l.clientHeight,i&&(I.scrollbarWidth=a.width||i.offsetWidth-i.clientWidth||14),I.overflowY=t,i=e>l.clientWidth,r&&(I.scrollbarHeight=a.height||r.offsetHeight-r.clientHeight||14),I.overflowX=i)},K=(l,e)=>{let a=V.chartMaps;var t=l.getComputeMaps().computeTreeOpts,t=t.value,t=t.children||t.childrenField;let r=_.value,i=0,s=0;return _xeUtils.default.eachTree(e,e=>{var t=l.getRowid(e),e=_xeUtils.default.get(e,r);(0,_util.hasSubviewTask)(e)||(e=t?a[t]:null)&&(s=Math.max(s,e.oLeftSize+e.oWidthSize),i=i?Math.min(i,e.oLeftSize):e.oLeftSize)},{children:t}),{minSize:i,maxSize:s}},Z=()=>{let s=h.dragBarRow,o=I.viewCellWidth,{elemStore:e,chartMaps:d}=V,u=V.xeTable;var t=(0,_util.getRefElem)(e["main-chart-task-wrapper"]);if(t&&u){var l=u.getComputeMaps().computeTreeOpts,l=l.value;let i=l.children||l.childrenField;_xeUtils.default.arrayEach(t.children,e=>{var t,l,a,r=e.children[0];r&&(e=e.getAttribute("rowid"),s&&u.getRowid(s)===e||(l=(e=e?d[e]:null)?e.row:null,(0,_dom.hasClass)(r,"is--subview")?(t=r.firstElementChild)&&((0,_dom.hasClass)(t,"is--inline")?_xeUtils.default.arrayEach(t.children,e=>{var t,l,e=e.children[0],a=e.getAttribute("rowid")||"",a=a?d[a]:null;a&&(t=a.row,(0,_dom.hasClass)(e,"is--subview")?(t=t[i],{minSize:t,maxSize:l}=K(u,t),e.style.left=o*t+"px",e.style.width=o*(l-t)+"px"):(e.style.left=(0,_util.getTaskBarLeft)(a,o)+"px",(0,_dom.hasClass)(e,"is--milestone")||(e.style.width=(0,_util.getTaskBarWidth)(a,o)+"px")))}):(t=(t=t.children[0])?t.children[0]:null)&&(l=l?l[i]:[],{minSize:l,maxSize:a}=K(u,l),t.style.left=o*l+"px",t.style.width=o*(a-l)+"px")):(r.style.left=(0,_util.getTaskBarLeft)(e,o)+"px",(0,_dom.hasClass)(r,"is--milestone")||(r.style.width=(0,_util.getTaskBarWidth)(e,o)+"px"))))})}return(0,_vue.nextTick)()},c=()=>{var{scrollbarWidth:o,scrollbarHeight:d,headerGroups:u,tableColumn:n}=I,{elemStore:c,visibleColumn:f}=V,h=V.xeTable,v=i.value;if(v&&M){var m=S.value,g=b.value,y=D.value,p=k.value,x=H.value,_=W.value;let e=o;o=d;let t=0,l=0,a=0,r=(h&&(d=h.internalData,t=d.tBodyHeight,l=d.tHeaderHeight,a=d.tFooterHeight),"visible");(y||m.y&&!1===m.y.visible)&&(e=0,r="hidden");h=(0,_util.getRefElem)(c["main-header-scroll"]),d=(h&&(h.style.height=l+"px",h.style.setProperty("--vxe-ui-gantt-view-cell-height",l/u.length+"px")),(0,_util.getRefElem)(c["main-body-scroll"])),y=(d&&(d.style.height=t+"px"),(0,_util.getRefElem)(c["main-footer-scroll"])),m=(y&&(y.style.height=a+"px"),_&&(_.style.height=o+"px",_.style.visibility="visible"),C.value),h=(m&&(m.style.left=g?e+"px":"",m.style.width=v.clientWidth-e+"px"),p&&(p.style.width=g?e+"px":"",p.style.display=g&&o?"block":""),x&&(x.style.width=g?"":e+"px",x.style.display=!g&&o?"block":""),E.value),u=(h&&(h.style.width=e+"px",h.style.height=t+l+a+"px",h.style.visibility=r),z.value),y=(u&&(u.style.height=l+"px",u.style.display=l?"block":""),$.value),_=(y&&(y.style.height=t+"px",y.style.top=l+"px"),Y.value),m=(_&&(_.style.height=a+"px",_.style.top=l+t+"px",_.style.display=a?"block":""),F.value);let i=40,s=i=m?m.clientWidth||40:i;f.length&&(s=Math.max(0,i*f.length),d)&&0<(p=(v=d.clientWidth)-s)&&(i+=Math.max(0,p/f.length),s=v),I.viewCellWidth=i;x=(0,_util.getRefElem)(c["main-header-table"]),g=(0,_util.getRefElem)(c["main-body-table"]),o=i*n.length;return x&&(x.style.width=s+"px"),g&&(g.style.width=o+"px"),I.scrollXWidth=s,Promise.all([Z(),M.handleUpdateTaskLinkStyle?M.handleUpdateTaskLinkStyle(X):null])}},s=()=>{var e=i.value;return V.rceRunTime=Date.now(),e&&e.clientWidth&&M?(n(),c(),(0,_vue.nextTick)().then(()=>{var e,t=I.scrollXLoad,l=V.scrollXStore;t?({toVisibleIndex:t,visibleSize:e}=te(),l.preloadSize=1,l.offsetSize=2,l.visibleSize=e,l.endIndex=Math.max(l.startIndex+l.visibleSize+2,l.endIndex),l.visibleStartIndex=Math.max(l.startIndex,t),l.visibleEndIndex=Math.min(l.endIndex,t+e),ae().then(()=>{le()})):o()})):(0,_vue.nextTick)()},ee=()=>new Promise(e=>{var{rceTimeout:t,rceRunTime:l}=V,a=V.xeTable;let r=30;a&&(a=a.getComputeMaps().computeResizeOpts,a=a.value,r=a.refreshDelay||r),!t||(clearTimeout(t),l&&l+(r-5)<Date.now())?e(s()):(0,_vue.nextTick)(()=>{e()}),V.rceTimeout=setTimeout(()=>{V.rceTimeout=void 0,s()},r)}),te=()=>{var e,t=I.viewCellWidth,l=V.elemStore,l=(0,_util.getRefElem)(l["main-body-scroll"]);return l?(e=l.clientWidth,l=l.scrollLeft,l=Math.floor(l/t)-1,e=Math.ceil(e/t)+1,{toVisibleIndex:Math.max(0,l),visibleSize:Math.max(1,e)}):{toVisibleIndex:0,visibleSize:6}},le=()=>{var e=I.isScrollXBig,t=V.scrollXStore,{preloadSize:l,startIndex:a,endIndex:r,offsetSize:i}=t,{toVisibleIndex:s,visibleSize:o}=te(),e={startIndex:Math.max(0,e?s-1:s-1-i-l),endIndex:e?s+o:s+o+i+l},{startIndex:i,endIndex:l}=(t.visibleStartIndex=s-1,t.visibleEndIndex=s+o+1,e);!(s<=a||r-o-1<=s)||a===i&&r===l||(t.startIndex=i,t.endIndex=l,ae())},ae=()=>(ie(),o(),(0,_vue.nextTick)()),re=()=>I.scrollXLoad=!0,ie=()=>{var e=I.scrollXLoad,{visibleColumn:t,scrollXStore:l}=V,e=e?t.slice(l.startIndex,l.endIndex):t.slice(0);I.tableColumn=e},o=()=>{let{scrollXLoad:t,scrollXWidth:e,viewCellWidth:l}=I,{elemStore:a,scrollXStore:r}=V;var i=(0,_util.getRefElem)(a["main-body-table"]),s=r.startIndex;let o=0,d=(t&&(o=Math.max(0,s*l)),i&&(i.style.transform=`translate(${o}px, ${I.scrollYTop||0}px)`),e);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(a[`main-${e}-xSpace`]);e&&(e.style.width=t?d+"px":"")});s=u.value,s&&(s.style.width=d+"px"),i=(0,_util.getRefElem)(a["main-chart-before-wrapper"]),s=i?i.firstElementChild:null,s&&(s.style.width=d+"px"),i=(0,_util.getRefElem)(a["main-chart-after-wrapper"]),s=i?i.firstElementChild:null;return s&&(s.style.width=d+"px"),I.scrollXLeft=o,I.scrollXWidth=d,n(),(0,_vue.nextTick)()},se=()=>{le()},oe=(e,t)=>{var l=V.lcsTimeout;I.lazScrollLoading=!0,l&&clearTimeout(l),V.lcsTimeout=setTimeout(()=>{V.lcsRunTime=Date.now(),V.lcsTimeout=void 0,V.intoRunScroll=!1,V.inVirtualScroll=!1,V.inWheelScroll=!1,V.inHeaderScroll=!1,V.inBodyScroll=!1,V.inFooterScroll=!1,I.lazScrollLoading=!1},200)},O=(e,t,l,a)=>{t&&(V.lastScrollLeft=a),e&&(V.lastScrollTop=l),I.lastScrollTime=Date.now(),oe(t,e)},f=(u,n,c,f,h)=>{var v=V.xeTable,{lastScrollLeft:m,lastScrollTop:g}=V,y=L.value,p=R.value;if(y&&p&&v){var{computeScrollXThreshold:v,computeScrollYThreshold:x}=v.getComputeMaps(),_=p.clientHeight,S=y.clientWidth,p=p.scrollHeight,y=y.scrollWidth;let e=!1,t=!1,l=!1,a=!1,r="",i=!1,s=!1,o=!1,d=!1;c&&(v=v.value,(l=h<=0)||(a=y-1<=h+S),m<h?(r="right",y-v<=h+S&&(d=!0)):(r="left",h<=v&&(o=!0))),n&&(m=x.value,(e=f<=0)||(t=p-1<=f+_),g<f?(r="bottom",p-m<=f+_&&(s=!0)):(r="top",f<=m&&(i=!0))),O(n,c,f,h);v={source:sourceType,scrollTop:f,scrollLeft:h,bodyHeight:_,bodyWidth:S,scrollHeight:p,scrollWidth:y,isX:c,isY:n,isTop:e,isBottom:t,isLeft:l,isRight:a,direction:r};(s||i||d||o)&&M.dispatchEvent("scroll-boundary",v,u),M.dispatchEvent("scroll",v,u)}},de=e=>{var t=V.xeTable;t&&(t=t.internalData.elemStore,t=(0,_util.getRefElem)(t["main-body-scroll"]))&&(t.scrollTop=e)};e={handleUpdateStyle:c,handleLazyRecalculate:ee,handleUpdateCurrentRow(e){var t,l,a=V.xeTable,r=i.value;a&&r&&(e?(t=a.props,l=a.getComputeMaps().computeRowOpts,(l.value.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(r.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${a.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--current"))):_xeUtils.default.arrayEach(r.querySelectorAll(".vxe-gantt-view--body-row.row--current"),e=>(0,_dom.removeClass)(e,"row--current")))},handleUpdateHoverRow(e){var t=V.xeTable,l=i.value;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${t.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--hover")):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-gantt-view--body-row.row--hover"),e=>(0,_dom.removeClass)(e,"row--hover")))},triggerHeaderScrollEvent(e){var{elemStore:t,inVirtualScroll:l,inBodyScroll:a,inFooterScroll:r}=V;l||a||r||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),r=L.value,a&&l&&(t=l.scrollLeft,V.inHeaderScroll=!0,(0,_dom.setScrollLeft)(r,t),(0,_dom.setScrollLeft)(a,t),f(e,!1,!0,l.scrollTop,t)))},triggerBodyScrollEvent(e){var t,l,a=I.scrollXLoad,{elemStore:r,inVirtualScroll:i,inHeaderScroll:s,inFooterScroll:o,lastScrollLeft:d,lastScrollTop:u}=V;i||s||o||(i=e.currentTarget,s=(0,_util.getRefElem)(r["main-header-scroll"]),o=L.value,r=R.value,d=(t=i.scrollLeft)!==d,u=(l=i.scrollTop)!==u,V.inBodyScroll=!0,V.scrollRenderType="",u&&((0,_dom.setScrollTop)(r,l),de(l)),d&&(V.inBodyScroll=!0,(0,_dom.setScrollLeft)(o,t),(0,_dom.setScrollLeft)(s,t),a)&&se(),u&&O(u,d,i.scrollTop,t),d&&f(e,u,d,i.scrollTop,t))},triggerVirtualScrollXEvent(e){var t,l=I.scrollXLoad,{elemStore:a,inHeaderScroll:r,inBodyScroll:i}=V;r||i||(r=e.currentTarget,i=(0,_util.getRefElem)(a["main-header-scroll"]),a=(0,_util.getRefElem)(a["main-body-scroll"]),r&&(t=r.scrollLeft,V.inVirtualScroll=!0,(0,_dom.setScrollLeft)(i,t),(0,_dom.setScrollLeft)(a,t),l&&se(),f(e,!1,!0,r.scrollTop,t)))},triggerVirtualScrollYEvent(e){var{elemStore:t,inHeaderScroll:l,inBodyScroll:a}=V;l||a||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),l&&(e=l.scrollTop,V.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,e),de(e),O(!0,!1,e,l.scrollLeft)))},handleUpdateSXSpace(){return o()},handleUpdateSYSpace(){return(()=>{var e=V.elemStore,t=V.xeTable,l=(0,_util.getRefElem)(e["main-body-scroll"]),a=(0,_util.getRefElem)(e["main-body-table"]);let r=0,i=0,s=!1,o=(t&&(t=t.reactData,r=t.scrollYTop,i=t.scrollYHeight,s=t.isScrollYBig),i),d=r,u=0;l&&(u=l.clientHeight),s&&(d=l&&a&&l.scrollTop+u>=maxYHeight?maxYHeight-a.clientHeight:(maxYHeight-u)*(r/(i-u)),o=maxYHeight);t=(0,_util.getRefElem)(e["main-chart-task-wrapper"]),a&&(a.style.transform=`translate(${I.scrollXLeft||0}px, ${d}px)`),t&&(t.style.transform=`translateY(${d}px)`),l=(0,_util.getRefElem)(e["main-body-ySpace"]),l&&(l.style.height=o?o+"px":""),a=y.value,a&&(a.style.height=o?o+"px":""),t=(0,_util.getRefElem)(e["main-chart-before-wrapper"]),l=t?t.firstElementChild:null,l&&(l.style.height=o?o+"px":""),a=(0,_util.getRefElem)(e["main-chart-after-wrapper"]),t=a?a.firstElementChild:null;return t&&(t.style.height=o?o+"px":""),I.scrollYTop=d,I.scrollYHeight=i,I.isScrollYBig=s,n(),(0,_vue.nextTick)().then(()=>{c()})})()},handleUpdateSYStatus(e){I.scrollYLoad=e}};let ue=()=>{ee()},ne=(Object.assign(X,{refreshData(){return J(),s(),(0,_vue.nextTick)().then(()=>{var e=V.xeTable;if(s(),e)return e.recalculate()})},updateViewData(e){var t=V.xeTable;return t&&(t=t.reactData.tableData,I.tableData=t,e&&(T.currLeftSpacing=0,T.currRightSpacing=0,J()),s()),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&(V.xeTable=e),(0,_vue.nextTick)()}},e),()=>(0,_vue.h)("div",{key:"vsx",ref:W,class:"vxe-gantt-view--scroll-x-virtual"},[(0,_vue.h)("div",{ref:k,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:C,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:L,class:"vxe-gantt-view--scroll-x-handle",onScroll:X.triggerVirtualScrollXEvent},[(0,_vue.h)("div",{ref:u,class:"vxe-gantt-view--scroll-x-space"})]),(0,_vue.h)("div",{class:"vxe-gantt-view--scroll-x-handle-appearance"})]),(0,_vue.h)("div",{ref:H,class:"vxe-gantt-view--scroll-x-right-corner"})])),ce=()=>(0,_vue.h)("div",{ref:E,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:z,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:$,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:R,class:"vxe-gantt-view--scroll-y-handle",onScroll:X.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:y,class:"vxe-gantt-view--scroll-y-space"})]),(0,_vue.h)("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),(0,_vue.h)("div",{ref:Y,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),fe=()=>(0,_vue.h)("div",{class:"vxe-gantt-view--viewport-wrapper"},[(0,_vue.h)(_ganttHeader.default),(0,_vue.h)(_ganttBody.default),(0,_vue.h)(_ganttFooter.default)]),he=()=>{var e=D.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[ce(),fe()]:[fe(),ce()])};return(0,_vue.onMounted)(()=>{globalEvents.on(X,"resize",ue)}),(0,_vue.onBeforeUnmount)(()=>{_xeUtils.default.assign(I,createReactData()),_xeUtils.default.assign(V,createInternalData())}),(0,_vue.onUnmounted)(()=>{globalEvents.off(X,"keydown")}),X.renderVN=()=>{var{overflowX:e,overflowY:t,scrollXLoad:l,scrollYLoad:a}=I,r=b.value;return(0,_vue.h)("div",{ref:i,class:["vxe-gantt-view",{"is--scroll-y":t,"is--scroll-x":e,"is--virtual-x":l,"is--virtual-y":a}]},[(0,_vue.h)("div",{class:"vxe-gantt-view--render-wrapper"},r?[ne(),he()]:[he(),ne()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:F,class:"vxe-gantt-view--column-info"})])])},(0,_vue.provide)("$xeGanttView",X),X},render(){return this.renderVN()}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_dom=require("../../ui/src/dom"),_core=require("@vxe-ui/core"),_util=require("./util"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttHeader=_interopRequireDefault(require("./gantt-header")),_ganttBody=_interopRequireDefault(require("./gantt-body")),_ganttFooter=_interopRequireDefault(require("./gantt-footer"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let globalEvents=_core.VxeUI.globalEvents,sourceType="gantt",minuteMs=6e4,dayMs=60*minuteMs*24;function createInternalData(){return{xeTable:null,visibleColumn:[],startMaps:{},endMaps:{},chartMaps:{},todayDateMaps:{},elemStore:{},scrollXStore:{preloadSize:0,offsetSize:0,visibleSize:0,visibleStartIndex:0,visibleEndIndex:0,startIndex:0,endIndex:0},lastScrollTop:0,lastScrollLeft:0}}function createReactData(){return{scrollXLoad:!1,scrollYLoad:!1,overflowY:!0,overflowX:!0,scrollbarWidth:0,scrollbarHeight:0,lastScrollTime:0,lazScrollLoading:!1,scrollVMLoading:!1,scrollYHeight:0,scrollYTop:0,isScrollYBig:!1,scrollXLeft:0,scrollXWidth:0,isScrollXBig:!1,minViewDate:null,maxViewDate:null,tableData:[],tableColumn:[],headerGroups:[],viewCellWidth:40}}let maxYHeight=5e6;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(t,l){var d=_xeUtils.default.uniqueId();let M=(0,_vue.inject)("$xeGantt",{}),{reactData:T,internalData:h}=M,{computeTaskOpts:v,computeTaskViewOpts:w,computeStartField:p,computeEndField:x,computeTypeField:_,computeScrollbarOpts:S,computeScrollbarXToTop:b,computeScrollbarYToLeft:D,computeScaleUnit:a,computeWeekScale:r,computeMinScale:U,computeTaskNowLineOpts:m}=M.getComputeMaps(),i=(0,_vue.ref)(),W=(0,_vue.ref)(),E=(0,_vue.ref)(),L=(0,_vue.ref)(),k=(0,_vue.ref)(),H=(0,_vue.ref)(),R=(0,_vue.ref)(),z=(0,_vue.ref)(),C=(0,_vue.ref)(),$=(0,_vue.ref)(),Y=(0,_vue.ref)(),u=(0,_vue.ref)(),y=(0,_vue.ref)(),F=(0,_vue.ref)(),I=(0,_vue.reactive)(createReactData()),V=createInternalData(),B={refElem:i,refScrollXHandleElem:L,refScrollYHandleElem:R},j=(0,_vue.computed)(()=>{var{minViewDate:t,maxViewDate:l}=I,e=w.value,a=U.value,e=e.gridding,r=[];if(a&&t&&l){var{type:i,startDay:s}=a,o=-(T.currLeftSpacing+_xeUtils.default.toNumber(e&&e.leftSpacing||0)),d=T.currRightSpacing+_xeUtils.default.toNumber(e&&e.rightSpacing||0);switch(i){case"year":{let e=_xeUtils.default.getWhatYear(t,o,"first");for(var u=_xeUtils.default.getWhatYear(l,d,"first");e<=u;){var n=e;r.push(n),e=_xeUtils.default.getWhatYear(e,1)}break}case"quarter":{let e=_xeUtils.default.getWhatQuarter(t,o,"first");for(var c=_xeUtils.default.getWhatQuarter(l,d,"first");e<=c;){var f=e;r.push(f),e=_xeUtils.default.getWhatQuarter(e,1)}break}case"month":{let e=_xeUtils.default.getWhatMonth(t,o,"first");for(var h=_xeUtils.default.getWhatMonth(l,d,"first");e<=h;){var v=e;r.push(v),e=_xeUtils.default.getWhatMonth(e,1)}break}case"week":{let e=_xeUtils.default.getWhatWeek(t,o,s,s);for(var m=_xeUtils.default.getWhatWeek(l,d,s,s);e<=m;){var g=e;r.push(g),e=_xeUtils.default.getWhatWeek(e,1)}break}case"day":case"date":{let e=_xeUtils.default.getWhatDay(t,o,"first");for(var y=_xeUtils.default.getWhatDay(l,d,"first");e<=y;){var p=e;r.push(p),e=_xeUtils.default.getWhatDay(e,1)}break}case"hour":case"minute":case"second":{var x=+(0,_util.getStandardGapTime)(a.type);let e=t.getTime()+o*x;for(var _=l.getTime()+d*x;e<=_;){var S=new Date(e);r.push(S),e+=x}break}}}return r});var e=(0,_vue.computed)(()=>{var e=M.reactData,{minViewDate:a,maxViewDate:t,viewCellWidth:r}=I,{visibleColumn:i,todayDateMaps:s}=V,o=U.value,d=w.value.showNowLine,u=m.value.mode,e=e.nowTime;let n=0;if(d&&o&&a&&t&&e>=a.getTime()&&e<=t.getTime()){var c=s[o.type];let t=null,l=null;for(let e=0;e<i.length;e++){var f=i[e];if(f.field===c){t=f,n=e*r,l=i[e+1];break}}"progress"===u?t&&l&&(d=t.dateObj.date.getTime(),a=Math.max(0,Math.min(1,(e-d)/(l.dateObj.date.getTime()-d))),n+=a*r):"center"===u?n+=r/2:"end"===u&&(n+=r-1)}return n});let G={computeScaleDateList:j,computeNowLineLeft:e},X={xID:d,props:t,context:l,reactData:I,internalData:V,getRefMaps:()=>B,getComputeMaps:()=>G},g=e=>{var t=v.value.dateFormat;return _xeUtils.default.toStringDate(e,t||null)},N=()=>{var o=M.reactData,d=o.taskScaleList,u=U.value;if(u){var d=d.find(e=>"week"===e.type),u="week"===u.type,n=new Date;let[e,t,l,a,r,i,s]=_xeUtils.default.toDateString(n,"yyyy-M-MM-dd-HH-mm-ss").split("-");var c=n.getDay()+1,f=Math.ceil((n.getMonth()+1)/3),d=""+_xeUtils.default.getYearWeek(n,d?d.startDay:void 0);u&&q(d,t)&&(e=""+(Number(e)+1),l="01"),o.nowTime=n.getTime(),V.todayDateMaps={year:e,quarter:e+"_q"+f,month:e+"_"+l,week:e+"_W"+d,day:`${e}_${l}_${a}_E`+c,date:`${e}_${l}_`+a,hour:`${e}_${l}_${a}_`+r,minute:`${e}_${l}_${a}_${r}_`+i,second:`${e}_${l}_${a}_${r}_${i}_`+s}}},A=()=>{var e=M.reactData.taskScaleList,t=a.value;let h=U.value;var v=r.value,m=j.value;let g=[],l=[];if(h&&t&&m.length){let i={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},s={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}};var y="week"===h.type,p=(t,l,a)=>{if(h.type!==t){var l=l[t],r=""+l.field;let e=s[t][r];e||(e=l,s[t][r]=e,i[t].push(e)),e&&(e.children||(e.children=[]),e.children.push(a))}};for(let f=0;f<m.length;f++){var x=m[f];let[e,t,l,a,r,i,s,o,d,u,n,c]=_xeUtils.default.toDateString(x,"yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss").split("-");var _=x.getDay(),S=_+1,T=Math.ceil((x.getMonth()+1)/3),w=""+_xeUtils.default.getYearWeek(x,v?v.startDay:void 0),b=_xeUtils.default.padStart(w,2,"0"),x=(y&&q(w,l)&&(t=""+(Number(t)+1),l="1",a="0"+l),{date:x,yy:e,yyyy:t,M:l,MM:a,d:r,dd:i,H:s,HH:o,m:d,mm:u,s:n,ss:c,q:T,W:w,WW:b,E:S,e:_}),b={year:{field:t,title:t,dateObj:x},quarter:{field:t+"_q"+T,title:""+T,dateObj:x},month:{field:t+"_"+a,title:a,dateObj:x},week:{field:t+"_W"+w,title:w,dateObj:x},day:{field:`${t}_${a}_${i}_E`+S,title:""+S,dateObj:x},date:{field:`${t}_${a}_`+i,title:i,dateObj:x},hour:{field:`${t}_${a}_${i}_`+o,title:o,dateObj:x},minute:{field:`${t}_${a}_${i}_${o}_`+u,title:u,dateObj:x},second:{field:`${t}_${a}_${i}_${o}_${u}_`+c,title:c,dateObj:x}},_=b[h.type];h.level<19&&p("year",b,_),h.level<17&&p("quarter",b,_),h.level<15&&p("month",b,_),h.level<13&&p("week",b,_),h.level<11&&p("day",b,_),h.level<9&&p("date",b,_),h.level<7&&p("hour",b,_),h.level<5&&p("minute",b,_),h.level<3&&p("second",b,_),g.push(_)}e.forEach(e=>{var t;e.type===h.type?l.push({scaleItem:e,columns:g}):((t=i[e.type]||[])&&t.forEach(e=>{e.childCount=e.children?e.children.length:0,e.children=void 0}),l.push({scaleItem:e,columns:t}))})}return{fullCols:g,groupCols:l}},q=(e,t)=>""+e=="1"&&""+t=="12",Q=(e,t)=>{e=_xeUtils.default.toStringDate(e);let l=e.getFullYear();var a=e.getMonth(),e=_xeUtils.default.getYearWeek(e,t);return q(e,a+1)&&l++,{yyyy:l,W:e}},P=e=>{let i=I.minViewDate;var t=U.value,l=a.value;let d=r.value;if(t)switch(l){case"year":{let o={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy");o[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy"),a=_xeUtils.default.getWhatYear(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy"),i=_xeUtils.default.getWhatYear(t,0,"first"),s=Math.floor((_xeUtils.default.getWhatYear(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/s,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/s,t=(o[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(o[r]||0)-t+a}}}case"quarter":{let o={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-q");o[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-q"),a=_xeUtils.default.getWhatQuarter(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-q"),i=_xeUtils.default.getWhatQuarter(t,0,"first"),s=Math.floor((_xeUtils.default.getWhatQuarter(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/s,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/s,t=(o[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(o[r]||0)-t+a}}}case"month":{let o={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM");o[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM"),a=_xeUtils.default.getWhatMonth(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM"),i=_xeUtils.default.getWhatMonth(t,0,"first"),s=Math.floor((_xeUtils.default.getWhatMonth(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/s,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/s,t=(o[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(o[r]||0)-t+a}}}case"week":{let o={};return e.forEach(({dateObj:e},t)=>{e=e.yyyy+"-"+e.W;o[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=Q(e,d?d.startDay:void 0),l=l.yyyy+"-"+l.W,a=_xeUtils.default.getWhatWeek(e,0,d?d.startDay:void 0,d?d.startDay:void 0),r=Q(t,d?d.startDay:void 0),r=r.yyyy+"-"+r.W,i=_xeUtils.default.getWhatWeek(t,0,d?d.startDay:void 0,d?d.startDay:void 0),s=Math.floor((_xeUtils.default.getWhatWeek(t,1,d?d.startDay:void 0,d?d.startDay:void 0).getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/s,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/s,t=(o[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(o[r]||0)-t+a}}}case"day":case"date":{let o={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd");o[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd"),a=_xeUtils.default.getWhatDay(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd"),i=_xeUtils.default.getWhatDay(t,0,"first"),s=Math.floor((_xeUtils.default.getWhatDay(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/s,a=(t.getTime()-i.getTime())/minuteMs/s,t=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/s,i=(o[l]||0)+e;return{offsetLeftSize:i,offsetWidthSize:(o[r]||0)-i+t+(e||a?0:1)}}}case"hour":{let o={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH");o[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH"),a=_xeUtils.default.getWhatHours(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH"),i=_xeUtils.default.getWhatHours(t,0,"first"),s=Math.floor((_xeUtils.default.getWhatHours(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/s,a=(t.getTime()-i.getTime())/minuteMs/s,t=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/s,i=(o[l]||0)+e;return{offsetLeftSize:i,offsetWidthSize:(o[r]||0)-i+t+(e||a?0:1)}}}case"minute":{let o={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH:mm");o[e]=t}),(e,t)=>{var e=g(e),t=g(t),l=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH:mm"),a=_xeUtils.default.getWhatMinutes(e,0,"first"),r=_xeUtils.default.toDateString(t,"yyyy-MM-dd HH:mm"),i=_xeUtils.default.getWhatMinutes(t,0,"first"),s=Math.floor((_xeUtils.default.getWhatMinutes(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/s,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/s,t=(o[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(o[r]||0)-t+a}}}case"second":{let r=(0,_util.getStandardGapTime)(t.type);return(e,t)=>{e=g(e),t=g(t);let l=0,a=0;return i&&(l=(e.getTime()-i.getTime())/r,a=(t.getTime()-e.getTime())/r),{offsetLeftSize:l,offsetWidthSize:a}}}}return()=>({offsetLeftSize:0,offsetWidthSize:0})},J=()=>{var e=M.props.treeConfig,t=V.scrollXStore,l=V.xeTable;let s=null,o=null;if(l){let a=p.value,r=x.value,i=_.value;var{computeAggregateOpts:d,computeTreeOpts:u}=l.getComputeMaps(),n=l.reactData.isRowGroupStatus,{afterFullData:l,afterTreeFullData:c,afterGroupFullData:f}=l.internalData,d=d.value,u=u.value,h=u.transform,v=u.children||u.childrenField,m=e=>{let t=_xeUtils.default.get(e,a),l=_xeUtils.default.get(e,r);var e=_xeUtils.default.get(e,i),e=(0,_util.hasMilestoneTask)(e);t=t||l,!e&&l||(l=t),t&&(e=g(t),!s||s.getTime()>e.getTime())&&(s=e),l&&(e=g(l),!o||o.getTime()<e.getTime())&&(o=e)};n?(n=d.mapChildrenField)&&_xeUtils.default.eachTree(f,m,{children:n}):e?_xeUtils.default.eachTree(c,m,{children:h?u.mapChildrenField:v}):l.forEach(m)}t.startIndex=0,t.endIndex=Math.max(1,t.visibleSize),I.minViewDate=s,I.maxViewDate=o,V.startMaps={},V.endMaps={},(()=>{var e=M.props.treeConfig,{minViewDate:t,maxViewDate:l}=I,{fullCols:a,groupCols:r}=A();if(t&&l&&a.length){let c=V.xeTable;if(c){let s=p.value,o=x.value,d=_.value;var{computeAggregateOpts:t,computeTreeOpts:l}=c.getComputeMaps(),i=c.reactData.isRowGroupStatus,{afterFullData:f,afterTreeFullData:h,afterGroupFullData:v}=c.internalData,t=t.value,l=l.value,m=l.transform,g=l.children||l.childrenField;let u={},n=P(a);var y=e=>{var t=c.getRowid(e);let l=_xeUtils.default.get(e,s),a=_xeUtils.default.get(e,o);var r=(0,_util.getTaskType)(_xeUtils.default.get(e,d)),i=(0,_util.hasMilestoneTask)(r),r=(0,_util.hasSubviewTask)(r);i&&(l=l||a,a=l),r?u[t]={row:e,rowid:t,oLeftSize:0,oWidthSize:0}:l&&a&&({offsetLeftSize:i,offsetWidthSize:r}=n(l,a),u[t]={row:e,rowid:t,oLeftSize:i,oWidthSize:r})};i?(i=t.mapChildrenField)&&_xeUtils.default.eachTree(v,y,{children:i}):e?_xeUtils.default.eachTree(h,y,{children:m?l.mapChildrenField:g}):f.forEach(y),V.chartMaps=u}}V.visibleColumn=a,I.headerGroups=r,N(),re(),ie()})()},n=()=>{var{scrollXWidth:e,scrollYHeight:t}=I,l=V.elemStore,a=S.value,l=(0,_util.getRefElem)(l["main-body-wrapper"]),r=L.value,i=R.value;l&&(t=t>l.clientHeight,i&&(I.scrollbarWidth=a.width||i.offsetWidth-i.clientWidth||14),I.overflowY=t,i=e>l.clientWidth,r&&(I.scrollbarHeight=a.height||r.offsetHeight-r.clientHeight||14),I.overflowX=i)},K=(l,e)=>{let a=V.chartMaps;var t=l.getComputeMaps().computeTreeOpts,t=t.value,t=t.children||t.childrenField;let r=_.value,i=0,s=0;return _xeUtils.default.eachTree(e,e=>{var t=l.getRowid(e),e=_xeUtils.default.get(e,r);(0,_util.hasSubviewTask)(e)||(e=t?a[t]:null)&&(s=Math.max(s,e.oLeftSize+e.oWidthSize),i=i?Math.min(i,e.oLeftSize):e.oLeftSize)},{children:t}),{minSize:i,maxSize:s}},Z=()=>{let s=h.dragBarRow,o=I.viewCellWidth,{elemStore:e,chartMaps:d}=V,u=V.xeTable;var t=(0,_util.getRefElem)(e["main-chart-task-wrapper"]);if(t&&u){var l=u.getComputeMaps().computeTreeOpts,l=l.value;let i=l.children||l.childrenField;_xeUtils.default.arrayEach(t.children,e=>{var t,l,a,r=e.children[0];r&&(e=e.getAttribute("rowid"),s&&u.getRowid(s)===e||(l=(e=e?d[e]:null)?e.row:null,(0,_dom.hasClass)(r,"is--subview")?(t=r.firstElementChild)&&((0,_dom.hasClass)(t,"is--inline")?_xeUtils.default.arrayEach(t.children,e=>{var t,l,e=e.children[0],a=e.getAttribute("rowid")||"",a=a?d[a]:null;a&&(t=a.row,(0,_dom.hasClass)(e,"is--subview")?(t=t[i],{minSize:t,maxSize:l}=K(u,t),e.style.left=o*t+"px",e.style.width=o*(l-t)+"px"):(e.style.left=(0,_util.getTaskBarLeft)(a,o)+"px",(0,_dom.hasClass)(e,"is--milestone")||(e.style.width=(0,_util.getTaskBarWidth)(a,o)+"px")))}):(t=(t=t.children[0])?t.children[0]:null)&&(l=l?l[i]:[],{minSize:l,maxSize:a}=K(u,l),t.style.left=o*l+"px",t.style.width=o*(a-l)+"px")):(r.style.left=(0,_util.getTaskBarLeft)(e,o)+"px",(0,_dom.hasClass)(r,"is--milestone")||(r.style.width=(0,_util.getTaskBarWidth)(e,o)+"px"))))})}return(0,_vue.nextTick)()},c=()=>{var{scrollbarWidth:o,scrollbarHeight:d,headerGroups:u,tableColumn:n}=I,{elemStore:c,visibleColumn:f}=V,h=V.xeTable,v=i.value;if(v&&M){var m=S.value,g=b.value,y=D.value,p=k.value,x=H.value,_=W.value;let e=o;o=d;let t=0,l=0,a=0,r=(h&&(d=h.internalData,t=d.tBodyHeight,l=d.tHeaderHeight,a=d.tFooterHeight),"visible");(y||m.y&&!1===m.y.visible)&&(e=0,r="hidden");h=(0,_util.getRefElem)(c["main-header-scroll"]),d=(h&&(h.style.height=l+"px",h.style.setProperty("--vxe-ui-gantt-view-cell-height",l/u.length+"px")),(0,_util.getRefElem)(c["main-body-scroll"])),y=(d&&(d.style.height=t+"px"),(0,_util.getRefElem)(c["main-footer-scroll"])),m=(y&&(y.style.height=a+"px"),_&&(_.style.height=o+"px",_.style.visibility="visible"),C.value),h=(m&&(m.style.left=g?e+"px":"",m.style.width=v.clientWidth-e+"px"),p&&(p.style.width=g?e+"px":"",p.style.display=g&&o?"block":""),x&&(x.style.width=g?"":e+"px",x.style.display=!g&&o?"block":""),E.value),u=(h&&(h.style.width=e+"px",h.style.height=t+l+a+"px",h.style.visibility=r),z.value),y=(u&&(u.style.height=l+"px",u.style.display=l?"block":""),$.value),_=(y&&(y.style.height=t+"px",y.style.top=l+"px"),Y.value),m=(_&&(_.style.height=a+"px",_.style.top=l+t+"px",_.style.display=a?"block":""),F.value);let i=40,s=i=m?m.clientWidth||40:i;f.length&&(s=Math.max(0,i*f.length),d)&&0<(p=(v=d.clientWidth)-s)&&(i+=Math.max(0,p/f.length),s=v),I.viewCellWidth=i;x=(0,_util.getRefElem)(c["main-header-table"]),g=(0,_util.getRefElem)(c["main-body-table"]),o=i*n.length;return x&&(x.style.width=s+"px"),g&&(g.style.width=o+"px"),I.scrollXWidth=s,Promise.all([Z(),M.handleUpdateTaskLinkStyle?M.handleUpdateTaskLinkStyle(X):null])}},s=()=>{var e=i.value;return V.rceRunTime=Date.now(),e&&e.clientWidth&&M?(n(),c(),(0,_vue.nextTick)().then(()=>{var e,t=I.scrollXLoad,l=V.scrollXStore;t?({toVisibleIndex:t,visibleSize:e}=te(),l.preloadSize=1,l.offsetSize=2,l.visibleSize=e,l.endIndex=Math.max(l.startIndex+l.visibleSize+2,l.endIndex),l.visibleStartIndex=Math.max(l.startIndex,t),l.visibleEndIndex=Math.min(l.endIndex,t+e),ae().then(()=>{le()})):o()})):(0,_vue.nextTick)()},ee=()=>new Promise(e=>{var{rceTimeout:t,rceRunTime:l}=V,a=V.xeTable;let r=30;a&&(a=a.getComputeMaps().computeResizeOpts,a=a.value,r=a.refreshDelay||r),!t||(clearTimeout(t),l&&l+(r-5)<Date.now())?e(s()):(0,_vue.nextTick)(()=>{e()}),V.rceTimeout=setTimeout(()=>{V.rceTimeout=void 0,s()},r)}),te=()=>{var e,t=I.viewCellWidth,l=V.elemStore,l=(0,_util.getRefElem)(l["main-body-scroll"]);return l?(e=l.clientWidth,l=l.scrollLeft,l=Math.floor(l/t)-1,e=Math.ceil(e/t)+1,{toVisibleIndex:Math.max(0,l),visibleSize:Math.max(1,e)}):{toVisibleIndex:0,visibleSize:6}},le=()=>{var e=I.isScrollXBig,t=V.scrollXStore,{preloadSize:l,startIndex:a,endIndex:r,offsetSize:i}=t,{toVisibleIndex:s,visibleSize:o}=te(),e={startIndex:Math.max(0,e?s-1:s-1-i-l),endIndex:e?s+o:s+o+i+l},{startIndex:i,endIndex:l}=(t.visibleStartIndex=s-1,t.visibleEndIndex=s+o+1,e);!(s<=a||r-o-1<=s)||a===i&&r===l||(t.startIndex=i,t.endIndex=l,ae())},ae=()=>(ie(),o(),(0,_vue.nextTick)()),re=()=>I.scrollXLoad=!0,ie=()=>{var e=I.scrollXLoad,{visibleColumn:t,scrollXStore:l}=V,e=e?t.slice(l.startIndex,l.endIndex):t.slice(0);I.tableColumn=e},o=()=>{let{scrollXLoad:t,scrollXWidth:e,viewCellWidth:l}=I,{elemStore:a,scrollXStore:r}=V;var i=(0,_util.getRefElem)(a["main-body-table"]),s=r.startIndex;let o=0,d=(t&&(o=Math.max(0,s*l)),i&&(i.style.transform=`translate(${o}px, ${I.scrollYTop||0}px)`),e);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(a[`main-${e}-xSpace`]);e&&(e.style.width=t?d+"px":"")});s=u.value,s&&(s.style.width=d+"px"),i=(0,_util.getRefElem)(a["main-chart-before-wrapper"]),s=i?i.firstElementChild:null,s&&(s.style.width=d+"px"),i=(0,_util.getRefElem)(a["main-chart-after-wrapper"]),s=i?i.firstElementChild:null;return s&&(s.style.width=d+"px"),I.scrollXLeft=o,I.scrollXWidth=d,n(),(0,_vue.nextTick)()},se=()=>{le()},oe=(e,t)=>{var l=V.lcsTimeout;I.lazScrollLoading=!0,l&&clearTimeout(l),V.lcsTimeout=setTimeout(()=>{V.lcsRunTime=Date.now(),V.lcsTimeout=void 0,V.intoRunScroll=!1,V.inVirtualScroll=!1,V.inWheelScroll=!1,V.inHeaderScroll=!1,V.inBodyScroll=!1,V.inFooterScroll=!1,I.lazScrollLoading=!1},200)},O=(e,t,l,a)=>{t&&(V.lastScrollLeft=a),e&&(V.lastScrollTop=l),I.lastScrollTime=Date.now(),oe(t,e)},f=(u,n,c,f,h)=>{var v=V.xeTable,{lastScrollLeft:m,lastScrollTop:g}=V,y=L.value,p=R.value;if(y&&p&&v){var{computeScrollXThreshold:v,computeScrollYThreshold:x}=v.getComputeMaps(),_=p.clientHeight,S=y.clientWidth,p=p.scrollHeight,y=y.scrollWidth;let e=!1,t=!1,l=!1,a=!1,r="",i=!1,s=!1,o=!1,d=!1;c&&(v=v.value,(l=h<=0)||(a=y-1<=h+S),m<h?(r="right",y-v<=h+S&&(d=!0)):(r="left",h<=v&&(o=!0))),n&&(m=x.value,(e=f<=0)||(t=p-1<=f+_),g<f?(r="bottom",p-m<=f+_&&(s=!0)):(r="top",f<=m&&(i=!0))),O(n,c,f,h);v={source:sourceType,scrollTop:f,scrollLeft:h,bodyHeight:_,bodyWidth:S,scrollHeight:p,scrollWidth:y,isX:c,isY:n,isTop:e,isBottom:t,isLeft:l,isRight:a,direction:r};(s||i||d||o)&&M.dispatchEvent("scroll-boundary",v,u),M.dispatchEvent("scroll",v,u)}},de=e=>{var t=V.xeTable;t&&(t=t.internalData.elemStore,t=(0,_util.getRefElem)(t["main-body-scroll"]))&&(t.scrollTop=e)};e={handleUpdateStyle:c,handleLazyRecalculate:ee,handleUpdateCurrentRow(e){var t,l,a=V.xeTable,r=i.value;a&&r&&(e?(t=a.props,l=a.getComputeMaps().computeRowOpts,(l.value.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(r.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${a.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--current"))):_xeUtils.default.arrayEach(r.querySelectorAll(".vxe-gantt-view--body-row.row--current"),e=>(0,_dom.removeClass)(e,"row--current")))},handleUpdateHoverRow(e){var t=V.xeTable,l=i.value;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll(`.vxe-gantt-view--body-row[rowid="${t.getRowid(e)}"]`),e=>(0,_dom.addClass)(e,"row--hover")):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-gantt-view--body-row.row--hover"),e=>(0,_dom.removeClass)(e,"row--hover")))},triggerHeaderScrollEvent(e){var{elemStore:t,inVirtualScroll:l,inBodyScroll:a,inFooterScroll:r}=V;l||a||r||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),r=L.value,a&&l&&(t=l.scrollLeft,V.inHeaderScroll=!0,(0,_dom.setScrollLeft)(r,t),(0,_dom.setScrollLeft)(a,t),f(e,!1,!0,l.scrollTop,t)))},triggerBodyScrollEvent(e){var t,l,a=I.scrollXLoad,{elemStore:r,inVirtualScroll:i,inHeaderScroll:s,inFooterScroll:o,lastScrollLeft:d,lastScrollTop:u}=V;i||s||o||(i=e.currentTarget,s=(0,_util.getRefElem)(r["main-header-scroll"]),o=L.value,r=R.value,d=(t=i.scrollLeft)!==d,u=(l=i.scrollTop)!==u,V.inBodyScroll=!0,V.scrollRenderType="",u&&((0,_dom.setScrollTop)(r,l),de(l)),d&&(V.inBodyScroll=!0,(0,_dom.setScrollLeft)(o,t),(0,_dom.setScrollLeft)(s,t),a)&&se(),u&&O(u,d,i.scrollTop,t),d&&f(e,u,d,i.scrollTop,t))},triggerVirtualScrollXEvent(e){var t,l=I.scrollXLoad,{elemStore:a,inHeaderScroll:r,inBodyScroll:i}=V;r||i||(r=e.currentTarget,i=(0,_util.getRefElem)(a["main-header-scroll"]),a=(0,_util.getRefElem)(a["main-body-scroll"]),r&&(t=r.scrollLeft,V.inVirtualScroll=!0,(0,_dom.setScrollLeft)(i,t),(0,_dom.setScrollLeft)(a,t),l&&se(),f(e,!1,!0,r.scrollTop,t)))},triggerVirtualScrollYEvent(e){var{elemStore:t,inHeaderScroll:l,inBodyScroll:a}=V;l||a||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),l&&(e=l.scrollTop,V.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,e),de(e),O(!0,!1,e,l.scrollLeft)))},handleUpdateSXSpace(){return o()},handleUpdateSYSpace(){return(()=>{var e=V.elemStore,t=V.xeTable,l=(0,_util.getRefElem)(e["main-body-scroll"]),a=(0,_util.getRefElem)(e["main-body-table"]);let r=0,i=0,s=!1,o=(t&&(t=t.reactData,r=t.scrollYTop,i=t.scrollYHeight,s=t.isScrollYBig),i),d=r,u=0;l&&(u=l.clientHeight),s&&(d=l&&a&&l.scrollTop+u>=maxYHeight?maxYHeight-a.clientHeight:(maxYHeight-u)*(r/(i-u)),o=maxYHeight);t=(0,_util.getRefElem)(e["main-chart-task-wrapper"]),a&&(a.style.transform=`translate(${I.scrollXLeft||0}px, ${d}px)`),t&&(t.style.transform=`translateY(${d}px)`),l=(0,_util.getRefElem)(e["main-body-ySpace"]),l&&(l.style.height=o?o+"px":""),a=y.value,a&&(a.style.height=o?o+"px":""),t=(0,_util.getRefElem)(e["main-chart-before-wrapper"]),l=t?t.firstElementChild:null,l&&(l.style.height=o?o+"px":""),a=(0,_util.getRefElem)(e["main-chart-after-wrapper"]),t=a?a.firstElementChild:null,t&&(t.style.height=o?o+"px":""),l=(0,_util.getRefElem)(e["main-chart-now-line"]);return l&&(l.style.height=o?o+"px":""),I.scrollYTop=d,I.scrollYHeight=i,I.isScrollYBig=s,n(),(0,_vue.nextTick)().then(()=>{c()})})()},handleUpdateSYStatus(e){I.scrollYLoad=e}};let ue=()=>{ee()},ne=(Object.assign(X,{refreshData(){return J(),s(),(0,_vue.nextTick)().then(()=>{var e=V.xeTable;if(s(),e)return e.recalculate()})},updateViewData(e){var t=V.xeTable;return t&&(t=t.reactData.tableData,I.tableData=t,e&&(T.currLeftSpacing=0,T.currRightSpacing=0,J()),s()),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&(V.xeTable=e),(0,_vue.nextTick)()}},e),()=>(0,_vue.h)("div",{key:"vsx",ref:W,class:"vxe-gantt-view--scroll-x-virtual"},[(0,_vue.h)("div",{ref:k,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:C,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:L,class:"vxe-gantt-view--scroll-x-handle",onScroll:X.triggerVirtualScrollXEvent},[(0,_vue.h)("div",{ref:u,class:"vxe-gantt-view--scroll-x-space"})]),(0,_vue.h)("div",{class:"vxe-gantt-view--scroll-x-handle-appearance"})]),(0,_vue.h)("div",{ref:H,class:"vxe-gantt-view--scroll-x-right-corner"})])),ce=()=>(0,_vue.h)("div",{ref:E,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:z,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:$,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:R,class:"vxe-gantt-view--scroll-y-handle",onScroll:X.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:y,class:"vxe-gantt-view--scroll-y-space"})]),(0,_vue.h)("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),(0,_vue.h)("div",{ref:Y,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),fe=()=>(0,_vue.h)("div",{class:"vxe-gantt-view--viewport-wrapper"},[(0,_vue.h)(_ganttHeader.default),(0,_vue.h)(_ganttBody.default),(0,_vue.h)(_ganttFooter.default)]),he=()=>{var e=D.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[ce(),fe()]:[fe(),ce()])};return(0,_vue.onMounted)(()=>{globalEvents.on(X,"resize",ue)}),(0,_vue.onBeforeUnmount)(()=>{_xeUtils.default.assign(I,createReactData()),_xeUtils.default.assign(V,createInternalData())}),(0,_vue.onUnmounted)(()=>{globalEvents.off(X,"keydown")}),X.renderVN=()=>{var{overflowX:e,overflowY:t,scrollXLoad:l,scrollYLoad:a}=I,r=b.value;return(0,_vue.h)("div",{ref:i,class:["vxe-gantt-view",{"is--scroll-y":t,"is--scroll-x":e,"is--virtual-x":l,"is--virtual-y":a}]},[(0,_vue.h)("div",{class:"vxe-gantt-view--render-wrapper"},r?[ne(),he()]:[he(),ne()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:F,class:"vxe-gantt-view--column-info"})])])},(0,_vue.provide)("$xeGanttView",X),X},render(){return this.renderVN()}});
|