vxe-gantt 4.1.18 → 4.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +20 -3
  2. package/es/gantt/src/emits.js +4 -1
  3. package/es/gantt/src/gantt-body.js +2 -2
  4. package/es/gantt/src/gantt-chart.js +75 -53
  5. package/es/gantt/src/gantt-view.js +19 -9
  6. package/es/gantt/src/gantt.js +79 -39
  7. package/es/gantt/src/util.js +0 -3
  8. package/es/gantt/style.css +16 -2
  9. package/es/gantt/style.min.css +1 -1
  10. package/es/style.css +1 -1
  11. package/es/style.min.css +1 -1
  12. package/es/ui/index.js +2 -1
  13. package/es/ui/src/log.js +1 -1
  14. package/es/vxe-gantt/style.css +16 -2
  15. package/es/vxe-gantt/style.min.css +1 -1
  16. package/lib/gantt/src/emits.js +1 -1
  17. package/lib/gantt/src/emits.min.js +1 -1
  18. package/lib/gantt/src/gantt-body.js +4 -2
  19. package/lib/gantt/src/gantt-body.min.js +1 -1
  20. package/lib/gantt/src/gantt-chart.js +72 -44
  21. package/lib/gantt/src/gantt-chart.min.js +1 -1
  22. package/lib/gantt/src/gantt-view.js +19 -9
  23. package/lib/gantt/src/gantt-view.min.js +1 -1
  24. package/lib/gantt/src/gantt.js +89 -38
  25. package/lib/gantt/src/gantt.min.js +1 -1
  26. package/lib/gantt/src/util.js +0 -4
  27. package/lib/gantt/src/util.min.js +1 -1
  28. package/lib/gantt/style/style.css +16 -2
  29. package/lib/gantt/style/style.min.css +1 -1
  30. package/lib/index.umd.js +184 -93
  31. package/lib/index.umd.min.js +1 -1
  32. package/lib/style.css +1 -1
  33. package/lib/style.min.css +1 -1
  34. package/lib/ui/index.js +2 -1
  35. package/lib/ui/index.min.js +1 -1
  36. package/lib/ui/src/log.js +1 -1
  37. package/lib/ui/src/log.min.js +1 -1
  38. package/lib/vxe-gantt/style/style.css +16 -2
  39. package/lib/vxe-gantt/style/style.min.css +1 -1
  40. package/package.json +3 -3
  41. package/packages/gantt/src/emits.ts +4 -1
  42. package/packages/gantt/src/gantt-body.ts +2 -2
  43. package/packages/gantt/src/gantt-chart.ts +78 -53
  44. package/packages/gantt/src/gantt-view.ts +19 -9
  45. package/packages/gantt/src/gantt.ts +84 -40
  46. package/packages/gantt/src/util.ts +0 -4
  47. package/packages/ui/index.ts +1 -0
  48. package/styles/components/gantt-module/gantt-chart.scss +14 -2
  49. package/styles/theme/base.scss +1 -0
@@ -24,6 +24,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
24
24
  const $xeGanttView = (0, _vue.inject)('$xeGanttView', {});
25
25
  const {
26
26
  props: ganttProps,
27
+ reactData: ganttReactData,
27
28
  internalData: ganttInternalData
28
29
  } = $xeGantt;
29
30
  const {
@@ -41,12 +42,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
41
42
  } = $xeGantt.getComputeMaps();
42
43
  const refElem = (0, _vue.ref)();
43
44
  const refTaskWrapperElem = (0, _vue.ref)();
44
- const reflineWrapperElem = (0, _vue.ref)();
45
+ const refChartBeforeWrapperElem = (0, _vue.ref)();
46
+ const refChartAfterWrapperElem = (0, _vue.ref)();
45
47
  const renderTaskBar = ($xeTable, row, rowid, rowIndex, $rowIndex, _rowIndex) => {
46
- const tableProps = $xeTable.props;
47
- const {
48
- treeConfig
49
- } = tableProps;
50
48
  const tableReactData = $xeTable.reactData;
51
49
  const {
52
50
  resizeHeightFlag
@@ -68,6 +66,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
68
66
  const {
69
67
  taskBarMilestoneConfig
70
68
  } = ganttProps;
69
+ const {
70
+ activeLink,
71
+ activeBarRowid
72
+ } = ganttReactData;
71
73
  const titleField = computeTitleField.value;
72
74
  const progressField = computeProgressField.value;
73
75
  const typeField = computeTypeField.value;
@@ -131,21 +133,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
131
133
  rowIndex,
132
134
  _rowIndex
133
135
  };
134
- const ons = {
135
- onClick(evnt) {
136
- $xeGantt.handleTaskBarClickEvent(evnt, barParams);
137
- },
138
- onDblclick(evnt) {
139
- $xeGantt.handleTaskBarDblclickEvent(evnt, barParams);
140
- },
141
- onMousedown(evnt) {
142
- if ($xeGantt.handleTaskBarMousedownEvent) {
143
- $xeGantt.handleTaskBarMousedownEvent(evnt, barParams);
144
- }
145
- }
146
- };
136
+ const ctOns = {};
147
137
  if (showTooltip) {
148
- ons.onMouseover = evnt => {
138
+ ctOns.onMouseover = evnt => {
149
139
  const {
150
140
  dragBarRow
151
141
  } = ganttInternalData;
@@ -157,7 +147,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
157
147
  }
158
148
  $xeGantt.dispatchEvent('task-bar-mouseenter', ttParams, evnt);
159
149
  };
160
- ons.onMouseleave = evnt => {
150
+ ctOns.onMouseleave = evnt => {
161
151
  const {
162
152
  dragBarRow
163
153
  } = ganttInternalData;
@@ -176,13 +166,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
176
166
  isMilestone,
177
167
  title,
178
168
  vbStyle,
179
- vpStyle
169
+ vpStyle,
170
+ rowid,
171
+ ctOns
180
172
  });
181
173
  } else if (taskBarSlot) {
182
- cbVNs.push((0, _vue.h)('div', {
174
+ cbVNs.push((0, _vue.h)('div', Object.assign({
183
175
  key: 'cbc',
184
- class: 'vxe-gantt-view--chart-custom-bar-content'
185
- }, $xeGantt.callSlot(taskBarSlot, barParams)));
176
+ class: 'vxe-gantt-view--chart-custom-bar-content-wrapper'
177
+ }, ctOns), $xeGantt.callSlot(taskBarSlot, barParams)));
186
178
  } else {
187
179
  if (isMilestone) {
188
180
  const {
@@ -194,10 +186,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
194
186
  $gantt: $xeGantt,
195
187
  row
196
188
  };
197
- cbVNs.push((0, _vue.h)('div', {
189
+ cbVNs.push((0, _vue.h)('div', Object.assign({
198
190
  key: 'vcm',
199
191
  class: 'vxe-gantt-view--chart-milestone-wrapper'
200
- }, [(0, _vue.h)('div', {
192
+ }, ctOns), [(0, _vue.h)('div', {
201
193
  class: ['vxe-gantt-view--chart-milestone-icon', iconStatus ? `theme--${_xeUtils.default.isFunction(iconStatus) ? iconStatus(tbmParams) : iconStatus}` : ''],
202
194
  style: iconStyle ? Object.assign({}, _xeUtils.default.isFunction(iconStyle) ? iconStyle(tbmParams) : iconStyle) : undefined
203
195
  }, [(0, _vue.h)('i', {
@@ -206,18 +198,21 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
206
198
  class: 'vxe-gantt-view--chart-milestone-content'
207
199
  }, title) : renderEmptyElement($xeGantt)]));
208
200
  } else {
209
- cbVNs.push(showProgress ? (0, _vue.h)('div', {
201
+ cbVNs.push((0, _vue.h)('div', Object.assign({
202
+ key: 'vbc',
203
+ class: 'vxe-gantt-view--chart-bar-content-wrapper'
204
+ }, ctOns), [showProgress ? (0, _vue.h)('div', {
210
205
  key: 'vcp',
211
206
  class: 'vxe-gantt-view--chart-progress',
212
207
  style: vpStyle
213
208
  }) : renderEmptyElement($xeGantt), showContent ? (0, _vue.h)('div', {
214
209
  key: 'vcc',
215
210
  class: 'vxe-gantt-view--chart-content'
216
- }, title) : renderEmptyElement($xeGantt));
211
+ }, title) : renderEmptyElement($xeGantt)]));
217
212
  }
218
213
  }
219
214
  return (0, _vue.h)('div', {
220
- key: treeConfig ? rowid : $rowIndex,
215
+ key: rowid,
221
216
  rowid,
222
217
  class: ['vxe-gantt-view--chart-row', `is--${(0, _util.gettaskType)(typeValue)}`, {
223
218
  'is--round': round,
@@ -229,11 +224,25 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
229
224
  onContextmenu(evnt) {
230
225
  $xeGantt.handleTaskBarContextmenuEvent(evnt, ctParams);
231
226
  }
232
- }, [(0, _vue.h)('div', Object.assign({
233
- class: [taskBarSlot ? 'vxe-gantt-view--chart-custom-bar' : 'vxe-gantt-view--chart-bar', `is--${(0, _util.gettaskType)(typeValue)}`],
227
+ }, [(0, _vue.h)('div', {
228
+ class: [taskBarSlot ? 'vxe-gantt-view--chart-custom-bar' : 'vxe-gantt-view--chart-bar', `is--${(0, _util.gettaskType)(typeValue)}`, {
229
+ 'is--active': activeBarRowid === rowid,
230
+ 'active--link': activeLink && (rowid === `${activeLink.from}` || rowid === `${activeLink.to}`)
231
+ }],
234
232
  style: vbStyle,
235
- rowid
236
- }, ons), cbVNs)]);
233
+ rowid,
234
+ onClick(evnt) {
235
+ $xeGantt.handleTaskBarClickEvent(evnt, barParams);
236
+ },
237
+ onDblclick(evnt) {
238
+ $xeGantt.handleTaskBarDblclickEvent(evnt, barParams);
239
+ },
240
+ onMousedown(evnt) {
241
+ if ($xeGantt.handleTaskBarMousedownEvent) {
242
+ $xeGantt.handleTaskBarMousedownEvent(evnt, barParams);
243
+ }
244
+ }
245
+ }, cbVNs)]);
237
246
  };
238
247
  const renderTaskRows = ($xeTable, tableData) => {
239
248
  const tableProps = $xeTable.props;
@@ -286,25 +295,42 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
286
295
  };
287
296
  const renderVN = () => {
288
297
  const $xeTable = ganttViewInternalData.xeTable;
298
+ const {
299
+ dragLinkFromStore
300
+ } = ganttReactData;
289
301
  const {
290
302
  tableData
291
303
  } = ganttViewReactData;
292
304
  const taskLinkOpts = computeTaskLinkOpts.value;
305
+ const taskBarOpts = computeTaskBarOpts.value;
293
306
  const {
294
- showArrow
307
+ isCurrent,
308
+ isHover
295
309
  } = taskLinkOpts;
310
+ const {
311
+ linkCreatable
312
+ } = taskBarOpts;
296
313
  return (0, _vue.h)('div', {
297
314
  ref: refElem,
298
- class: 'vxe-gantt-view--chart-wrapper'
299
- }, [$xeGantt.renderGanttTaskLines ? (0, _vue.h)('div', {
300
- ref: reflineWrapperElem,
301
- class: ['vxe-gantt-view--chart-line-wrapper', {
302
- 'show-arrow': showArrow
315
+ class: ['vxe-gantt-view--chart-wrapper', {
316
+ 'is--cl-drag': dragLinkFromStore.rowid
303
317
  }]
304
- }, $xeTable && (0, _utils.isEnableConf)(taskLinkOpts) ? $xeGantt.renderGanttTaskLines() : []) : renderEmptyElement($xeGantt), (0, _vue.h)('div', {
318
+ }, [$xeGantt.renderGanttTaskChartBefores ? (0, _vue.h)('div', {
319
+ ref: refChartBeforeWrapperElem,
320
+ class: ['vxe-gantt-view--chart-before-wrapper', {
321
+ 'link--current': isCurrent,
322
+ 'link--hover': isHover
323
+ }]
324
+ }, $xeTable && (0, _utils.isEnableConf)(taskLinkOpts) ? $xeGantt.renderGanttTaskChartBefores() : []) : renderEmptyElement($xeGantt), (0, _vue.h)('div', {
305
325
  ref: refTaskWrapperElem,
306
- class: 'vxe-gantt-view--chart-task-wrapper'
307
- }, $xeTable ? renderTaskRows($xeTable, tableData) : [])]);
326
+ class: ['vxe-gantt-view--chart-task-wrapper', {
327
+ 'link--current': isCurrent,
328
+ 'link--create': linkCreatable
329
+ }]
330
+ }, $xeTable ? renderTaskRows($xeTable, tableData) : []), $xeGantt.renderGanttTaskChartAfters ? (0, _vue.h)('div', {
331
+ ref: refChartAfterWrapperElem,
332
+ class: 'vxe-gantt-view--chart-after-wrapper'
333
+ }, $xeTable && (0, _utils.isEnableConf)(taskLinkOpts) ? $xeGantt.renderGanttTaskChartAfters() : []) : renderEmptyElement($xeGantt)]);
308
334
  };
309
335
  (0, _vue.onMounted)(() => {
310
336
  const {
@@ -312,7 +338,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
312
338
  } = ganttViewInternalData;
313
339
  const prefix = 'main-chart-';
314
340
  elemStore[`${prefix}task-wrapper`] = refTaskWrapperElem;
315
- elemStore[`${prefix}line-wrapper`] = reflineWrapperElem;
341
+ elemStore[`${prefix}before-wrapper`] = refChartBeforeWrapperElem;
342
+ elemStore[`${prefix}after-wrapper`] = refChartAfterWrapperElem;
316
343
  });
317
344
  (0, _vue.onUnmounted)(() => {
318
345
  const {
@@ -320,7 +347,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
320
347
  } = ganttViewInternalData;
321
348
  const prefix = 'main-chart-';
322
349
  elemStore[`${prefix}task-wrapper`] = null;
323
- elemStore[`${prefix}line-wrapper`] = null;
350
+ elemStore[`${prefix}before-wrapper`] = null;
351
+ elemStore[`${prefix}after-wrapper`] = null;
324
352
  });
325
353
  return renderVN;
326
354
  }
@@ -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 S=(0,_vue.inject)("$xeGantt",{});var e=(0,_vue.inject)("$xeGanttView",{});let{props:O,internalData:U}=S,{reactData:n,internalData:l}=e,{computeProgressField:F,computeTitleField:I,computeTypeField:R,computeTaskBarOpts:$,computeScaleUnit:q,computeTaskLinkOpts:s,computeTaskBarMilestoneOpts:G}=S.getComputeMaps(),o=(0,_vue.ref)(),i=(0,_vue.ref)(),u=(0,_vue.ref)(),m=(e,t,a,r,n,l)=>{var s=e.props.treeConfig,o=e.reactData.resizeHeightFlag,i=e.internalData.fullAllDataRowIdData,{computeCellOpts:e,computeRowOpts:u,computeDefaultRowHeight:v}=e.getComputeMaps(),e=e.value,u=u.value,v=v.value,c=S.context.slots,c=c.taskBar||c["task-bar"],p=O.taskBarMilestoneConfig,d=I.value,h=F.value,g=R.value,_=$.value,m=G.value,w=q.value;let x={$gantt:S,row:t,scaleType:w};var{showProgress:_,showContent:k,contentMethod:T,barStyle:f,moveable:y,showTooltip:E}=_,b=_xeUtils.default.isFunction(f),f=(f?b?f(x):f:{})||{},C=f.round,i=i[a]||{},o=o?(0,_util.getCellRestHeight)(i,e,u,v):0;let M=(0,_utils.getStringValue)(_xeUtils.default.get(t,d));i=_?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(t,h)))):0,e=(0,_util.gettaskType)(_xeUtils.default.get(t,g)),u=!(!p||!(0,_util.hasMilestoneTask)(e)),v={},d={width:`${i||0}%`};b&&({bgColor:h,completedBgColor:g}=f,h&&(v.backgroundColor=h),g)&&(d.backgroundColor=g),T&&(M=(0,_utils.getStringValue)(T({row:t,title:M,scaleType:w})));let D={$gantt:S,source:sourceType,type:viewType,scaleType:w,row:t,$rowIndex:n,rowIndex:r,_rowIndex:l};p={onClick(e){S.handleTaskBarClickEvent(e,x)},onDblclick(e){S.handleTaskBarDblclickEvent(e,x)},onMousedown(e){S.handleTaskBarMousedownEvent&&S.handleTaskBarMousedownEvent(e,x)}};E&&(p.onMouseover=e=>{var t=U.dragBarRow,a=Object.assign({$event:e},D);t||S.triggerTaskBarTooltipEvent(e,a),S.dispatchEvent("task-bar-mouseenter",a,e)},p.onMouseleave=e=>{var t=U.dragBarRow,a=Object.assign({$event:e},D);t||S.handleTaskBarTooltipLeaveEvent(e,a),S.dispatchEvent("task-bar-mouseleave",a,e)});let B=[];return S.renderGanttTaskBarContent?B=S.renderGanttTaskBarContent(D,{isMilestone:u,title:M,vbStyle:v,vpStyle:d}):c?B.push((0,_vue.h)("div",{key:"cbc",class:"vxe-gantt-view--chart-custom-bar-content"},S.callSlot(c,x))):u?({icon:i,iconStatus:b,iconStyle:f}=m,h={$gantt:S,row:t},B.push((0,_vue.h)("div",{key:"vcm",class:"vxe-gantt-view--chart-milestone-wrapper"},[(0,_vue.h)("div",{class:["vxe-gantt-view--chart-milestone-icon",b?"theme--"+(_xeUtils.default.isFunction(b)?b(h):b):""],style:f?Object.assign({},_xeUtils.default.isFunction(f)?f(h):f):void 0},[(0,_vue.h)("i",{class:(i?_xeUtils.default.isFunction(i)?i(h):i:"")||getIcon().GANTT_VIEW_TASK_MILESTONE})]),k?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-milestone-content"},M):renderEmptyElement(S)]))):B.push(_?(0,_vue.h)("div",{key:"vcp",class:"vxe-gantt-view--chart-progress",style:d}):renderEmptyElement(S),k?(0,_vue.h)("div",{key:"vcc",class:"vxe-gantt-view--chart-content"},M):renderEmptyElement(S)),(0,_vue.h)("div",{key:s?a:n,rowid:a,class:["vxe-gantt-view--chart-row","is--"+(0,_util.gettaskType)(e),{"is--round":C,"is--move":y}],style:{height:o+"px"},onContextmenu(e){S.handleTaskBarContextmenuEvent(e,D)}},[(0,_vue.h)("div",Object.assign({class:[c?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar","is--"+(0,_util.gettaskType)(e)],style:v,rowid:a},p),B)])},w=(i,e)=>{let u=i.props.treeConfig,v=i.reactData.treeExpandedFlag,{fullAllDataRowIdData:c,treeExpandedMaps:p}=i.internalData;var t=i.getComputeMaps().computeTreeOpts,t=t.value;let d=t.transform,h=t.children||t.childrenField,g=n.scrollYLoad,_=[];return e.forEach((e,t)=>{var a=i.getRowid(e),r=c[a]||{};let n=t,l=-1,s=(r&&(n=r.index,l=r._index),_.push(m(i,e,a,n,t,l)),!1),o=[];!u||g||d||(o=e[h],s=!!v&&o&&0<o.length&&!!p[a]),s&&_.push(...w(i,o))}),_};return(0,_vue.onMounted)(()=>{var e=l.elemStore,t="main-chart-";e[t+"task-wrapper"]=i,e[t+"line-wrapper"]=u}),(0,_vue.onUnmounted)(()=>{var e=l.elemStore,t="main-chart-";e[t+"task-wrapper"]=null,e[t+"line-wrapper"]=null}),()=>{var e=l.xeTable,t=n.tableData,a=s.value,r=a.showArrow;return(0,_vue.h)("div",{ref:o,class:"vxe-gantt-view--chart-wrapper"},[S.renderGanttTaskLines?(0,_vue.h)("div",{ref:u,class:["vxe-gantt-view--chart-line-wrapper",{"show-arrow":r}]},e&&(0,_utils.isEnableConf)(a)?S.renderGanttTaskLines():[]):renderEmptyElement(S),(0,_vue.h)("div",{ref:i,class:"vxe-gantt-view--chart-task-wrapper"},e?w(e,t):[])])}}});
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 S=(0,_vue.inject)("$xeGantt",{});var e=(0,_vue.inject)("$xeGanttView",{});let{props:U,reactData:F,internalData:R}=S,{reactData:i,internalData:o}=e,{computeProgressField:G,computeTitleField:I,computeTypeField:j,computeTaskBarOpts:$,computeScaleUnit:q,computeTaskLinkOpts:u,computeTaskBarMilestoneOpts:V}=S.getComputeMaps(),v=(0,_vue.ref)(),c=(0,_vue.ref)(),p=(0,_vue.ref)(),d=(0,_vue.ref)(),w=(e,t,a,r,n,l)=>{var s=e.reactData.resizeHeightFlag,i=e.internalData.fullAllDataRowIdData,{computeCellOpts:e,computeRowOpts:o,computeDefaultRowHeight:u}=e.getComputeMaps(),e=e.value,o=o.value,u=u.value,v=S.context.slots,v=v.taskBar||v["task-bar"],c=U.taskBarMilestoneConfig,{activeLink:p,activeBarRowid:d}=F,h=I.value,g=G.value,_=j.value,w=$.value,m=V.value,k=q.value;let x={$gantt:S,row:t,scaleType:k};var{showProgress:w,showContent:f,contentMethod:T,barStyle:b,moveable:y,showTooltip:E}=w,C=_xeUtils.default.isFunction(b),b=(b?C?b(x):b:{})||{},M=b.round,i=i[a]||{},s=s?(0,_util.getCellRestHeight)(i,e,o,u):0;let B=(0,_utils.getStringValue)(_xeUtils.default.get(t,h));i=w?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(t,g)))):0,e=(0,_util.gettaskType)(_xeUtils.default.get(t,_)),o=!(!c||!(0,_util.hasMilestoneTask)(e)),u={},h={width:`${i||0}%`};C&&({bgColor:g,completedBgColor:_}=b,g&&(u.backgroundColor=g),_)&&(h.backgroundColor=_),T&&(B=(0,_utils.getStringValue)(T({row:t,title:B,scaleType:k})));let D={$gantt:S,source:sourceType,type:viewType,scaleType:k,row:t,$rowIndex:n,rowIndex:r,_rowIndex:l};c={};E&&(c.onMouseover=e=>{var t=R.dragBarRow,a=Object.assign({$event:e},D);t||S.triggerTaskBarTooltipEvent(e,a),S.dispatchEvent("task-bar-mouseenter",a,e)},c.onMouseleave=e=>{var t=R.dragBarRow,a=Object.assign({$event:e},D);t||S.handleTaskBarTooltipLeaveEvent(e,a),S.dispatchEvent("task-bar-mouseleave",a,e)});let O=[];return S.renderGanttTaskBarContent?O=S.renderGanttTaskBarContent(D,{isMilestone:o,title:B,vbStyle:u,vpStyle:h,rowid:a,ctOns:c}):v?O.push((0,_vue.h)("div",Object.assign({key:"cbc",class:"vxe-gantt-view--chart-custom-bar-content-wrapper"},c),S.callSlot(v,x))):o?({icon:i,iconStatus:C,iconStyle:b}=m,g={$gantt:S,row:t},O.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",C?"theme--"+(_xeUtils.default.isFunction(C)?C(g):C):""],style:b?Object.assign({},_xeUtils.default.isFunction(b)?b(g):b):void 0},[(0,_vue.h)("i",{class:(i?_xeUtils.default.isFunction(i)?i(g):i:"")||getIcon().GANTT_VIEW_TASK_MILESTONE})]),f?(0,_vue.h)("div",{class:"vxe-gantt-view--chart-milestone-content"},B):renderEmptyElement(S)]))):O.push((0,_vue.h)("div",Object.assign({key:"vbc",class:"vxe-gantt-view--chart-bar-content-wrapper"},c),[w?(0,_vue.h)("div",{key:"vcp",class:"vxe-gantt-view--chart-progress",style:h}):renderEmptyElement(S),f?(0,_vue.h)("div",{key:"vcc",class:"vxe-gantt-view--chart-content"},B):renderEmptyElement(S)])),(0,_vue.h)("div",{key:a,rowid:a,class:["vxe-gantt-view--chart-row","is--"+(0,_util.gettaskType)(e),{"is--round":M,"is--move":y}],style:{height:s+"px"},onContextmenu(e){S.handleTaskBarContextmenuEvent(e,D)}},[(0,_vue.h)("div",{class:[v?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar","is--"+(0,_util.gettaskType)(e),{"is--active":d===a,"active--link":p&&(a===""+p.from||a===""+p.to)}],style:u,rowid:a,onClick(e){S.handleTaskBarClickEvent(e,x)},onDblclick(e){S.handleTaskBarDblclickEvent(e,x)},onMousedown(e){S.handleTaskBarMousedownEvent&&S.handleTaskBarMousedownEvent(e,x)}},O)])},m=(o,e)=>{let u=o.props.treeConfig,v=o.reactData.treeExpandedFlag,{fullAllDataRowIdData:c,treeExpandedMaps:p}=o.internalData;var t=o.getComputeMaps().computeTreeOpts,t=t.value;let d=t.transform,h=t.children||t.childrenField,g=i.scrollYLoad,_=[];return e.forEach((e,t)=>{var a=o.getRowid(e),r=c[a]||{};let n=t,l=-1,s=(r&&(n=r.index,l=r._index),_.push(w(o,e,a,n,t,l)),!1),i=[];!u||g||d||(i=e[h],s=!!v&&i&&0<i.length&&!!p[a]),s&&_.push(...m(o,i))}),_};return(0,_vue.onMounted)(()=>{var e=o.elemStore,t="main-chart-";e[t+"task-wrapper"]=c,e[t+"before-wrapper"]=p,e[t+"after-wrapper"]=d}),(0,_vue.onUnmounted)(()=>{var e=o.elemStore,t="main-chart-";e[t+"task-wrapper"]=null,e[t+"before-wrapper"]=null,e[t+"after-wrapper"]=null}),()=>{var e=o.xeTable,t=F.dragLinkFromStore,a=i.tableData,r=u.value,{isCurrent:n,isHover:l}=r,s=$.value.linkCreatable;return(0,_vue.h)("div",{ref:v,class:["vxe-gantt-view--chart-wrapper",{"is--cl-drag":t.rowid}]},[S.renderGanttTaskChartBefores?(0,_vue.h)("div",{ref:p,class:["vxe-gantt-view--chart-before-wrapper",{"link--current":n,"link--hover":l}]},e&&(0,_utils.isEnableConf)(r)?S.renderGanttTaskChartBefores():[]):renderEmptyElement(S),(0,_vue.h)("div",{ref:c,class:["vxe-gantt-view--chart-task-wrapper",{"link--current":n,"link--create":s}]},e?m(e,a):[]),S.renderGanttTaskChartAfters?(0,_vue.h)("div",{ref:d,class:"vxe-gantt-view--chart-after-wrapper"},e&&(0,_utils.isEnableConf)(r)?S.renderGanttTaskChartAfters():[]):renderEmptyElement(S)])}}});
@@ -1042,7 +1042,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1042
1042
  bodyTableElem.style.width = `${vmTableWidth}px`;
1043
1043
  }
1044
1044
  reactData.scrollXWidth = viewTableWidth;
1045
- return Promise.all([updateTaskChart(), $xeGantt.handleUpdateTaskLink ? $xeGantt.handleUpdateTaskLink($xeGanttView) : null]);
1045
+ return Promise.all([updateTaskChart(), $xeGantt.handleUpdateTaskLinkStyle ? $xeGantt.handleUpdateTaskLinkStyle($xeGanttView) : null]);
1046
1046
  };
1047
1047
  const handleRecalculateStyle = () => {
1048
1048
  const el = refElem.value;
@@ -1238,10 +1238,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1238
1238
  if (scrollXSpaceEl) {
1239
1239
  scrollXSpaceEl.style.width = `${scrollXWidth}px`;
1240
1240
  }
1241
- const lineWrapper = (0, _util.getRefElem)(elemStore['main-chart-line-wrapper']);
1242
- const svgElem = lineWrapper ? lineWrapper.firstElementChild : null;
1243
- if (svgElem) {
1244
- svgElem.style.width = `${scrollXWidth}px`;
1241
+ const beforeWrapper = (0, _util.getRefElem)(elemStore['main-chart-before-wrapper']);
1242
+ const beforeSvgElem = beforeWrapper ? beforeWrapper.firstElementChild : null;
1243
+ if (beforeSvgElem) {
1244
+ beforeSvgElem.style.width = `${scrollXWidth}px`;
1245
+ }
1246
+ const afterWrapper = (0, _util.getRefElem)(elemStore['main-chart-after-wrapper']);
1247
+ const afterSvgElem = afterWrapper ? afterWrapper.firstElementChild : null;
1248
+ if (afterSvgElem) {
1249
+ afterSvgElem.style.width = `${scrollXWidth}px`;
1245
1250
  }
1246
1251
  calcScrollbar();
1247
1252
  return (0, _vue.nextTick)();
@@ -1295,10 +1300,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1295
1300
  if (scrollYSpaceEl) {
1296
1301
  scrollYSpaceEl.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
1297
1302
  }
1298
- const lineWrapper = (0, _util.getRefElem)(elemStore['main-chart-line-wrapper']);
1299
- const svgElem = lineWrapper ? lineWrapper.firstElementChild : null;
1300
- if (svgElem) {
1301
- svgElem.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
1303
+ const beforeWrapper = (0, _util.getRefElem)(elemStore['main-chart-before-wrapper']);
1304
+ const beforeSvgElem = beforeWrapper ? beforeWrapper.firstElementChild : null;
1305
+ if (beforeSvgElem) {
1306
+ beforeSvgElem.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
1307
+ }
1308
+ const afterWrapper = (0, _util.getRefElem)(elemStore['main-chart-after-wrapper']);
1309
+ const afterSvgElem = afterWrapper ? afterWrapper.firstElementChild : null;
1310
+ if (afterSvgElem) {
1311
+ afterSvgElem.style.height = ySpaceHeight ? `${ySpaceHeight}px` : '';
1302
1312
  }
1303
1313
  reactData.scrollYTop = scrollYTop;
1304
1314
  reactData.scrollYHeight = scrollYHeight;
@@ -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}}let maxYHeight=5e6;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(l,u){var e=_xeUtils.default.uniqueId();let M=(0,_vue.inject)("$xeGantt",{}),h=M.internalData,{computeTaskOpts:g,computeTaskViewOpts:V,computeStartField:_,computeEndField:x,computeTypeField:p,computeScrollbarOpts:S,computeScrollbarXToTop:T,computeScrollbarYToLeft:b,computeScaleUnit:a,computeWeekScale:r,computeMinScale:D}=M.getComputeMaps(),i=(0,_vue.ref)(),w=(0,_vue.ref)(),U=(0,_vue.ref)(),W=(0,_vue.ref)(),E=(0,_vue.ref)(),H=(0,_vue.ref)(),k=(0,_vue.ref)(),L=(0,_vue.ref)(),R=(0,_vue.ref)(),z=(0,_vue.ref)(),C=(0,_vue.ref)(),d=(0,_vue.ref)(),n=(0,_vue.ref)(),Y=(0,_vue.ref)(),I=(0,_vue.reactive)({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}),$=createInternalData(),y={refElem:i,refScrollXHandleElem:W,refScrollYHandleElem:k},O=(0,_vue.computed)(()=>{var{minViewDate:t,maxViewDate:l}=I,e=V.value,a=D.value,e=e.gridding,{type:r,startDay:i}=a,o=[];if(t&&l){var s=-_xeUtils.default.toNumber(e&&e.leftSpacing||0),d=_xeUtils.default.toNumber(e&&e.rightSpacing||0);switch(r){case"year":{let e=_xeUtils.default.getWhatYear(t,s,"first");for(var u=_xeUtils.default.getWhatYear(l,d,"first");e<=u;){var n=e;o.push(n),e=_xeUtils.default.getWhatYear(e,1)}break}case"quarter":{let e=_xeUtils.default.getWhatQuarter(t,s,"first");for(var c=_xeUtils.default.getWhatQuarter(l,d,"first");e<=c;){var f=e;o.push(f),e=_xeUtils.default.getWhatQuarter(e,1)}break}case"month":{let e=_xeUtils.default.getWhatMonth(t,s,"first");for(var v=_xeUtils.default.getWhatMonth(l,d,"first");e<=v;){var h=e;o.push(h),e=_xeUtils.default.getWhatMonth(e,1)}break}case"week":{let e=_xeUtils.default.getWhatWeek(t,s,i,i);for(var g=_xeUtils.default.getWhatWeek(l,d,i,i);e<=g;){var m=e;o.push(m),e=_xeUtils.default.getWhatWeek(e,1)}break}case"day":case"date":{let e=_xeUtils.default.getWhatDay(t,s,"first");for(var y=_xeUtils.default.getWhatDay(l,d,"first");e<=y;){var _=e;o.push(_),e=_xeUtils.default.getWhatDay(e,1)}break}case"hour":case"minute":case"second":{var x=+(0,_util.getStandardGapTime)(a.type);let e=t.getTime()+s*x;for(var p=l.getTime()+d*x;e<=p;){var S=new Date(e);o.push(S),e+=x}break}}}return o}),F={computeScaleDateList:O},X={xID:e,props:l,context:u,reactData:I,internalData:$,getRefMaps:()=>y,getComputeMaps:()=>F},m=e=>{var t=g.value.dateFormat;return _xeUtils.default.toStringDate(e,t||null)},j=()=>{var e=M.reactData.taskScaleList,e=e.find(e=>"week"===e.type),t=new Date,[l,a,r,i,o,s]=_xeUtils.default.toDateString(t,"yyyy-M-d-H-m-s").split("-"),d=t.getDay()+1,u=Math.ceil((t.getMonth()+1)/3),t=_xeUtils.default.getYearWeek(t,e?e.startDay:void 0);$.todayDateMaps={year:l,quarter:l+"_q"+u,month:l+"_"+a,week:l+"_W"+t,day:l+`_${a}_${r}_E`+d,date:l+`_${a}_`+r,hour:l+`_${a}_${r}_`+i,minute:l+`_${a}_${r}_${i}_`+o,second:l+`_${a}_${r}_${i}_${o}_`+s}},B=()=>{var e=M.reactData.taskScaleList,t=a.value;let v=D.value;var h=r.value,g=O.value;let m=[],l=[];if(v&&t&&g.length){let i={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},o={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}};var y="week"===v.type,_=(t,l,a)=>{if(v.type!==t){var l=l[t],r=""+l.field;let e=o[t][r];e||(e=l,o[t][r]=e,i[t].push(e)),e&&(e.children||(e.children=[]),e.children.push(a))}};for(let f=0;f<g.length;f++){var x=g[f];let[e,t,l,a,r,i,o,s,d,u,n,c]=_xeUtils.default.toDateString(x,"yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss").split("-");var p=x.getDay(),S=p+1,T=Math.ceil((x.getMonth()+1)/3),b=""+_xeUtils.default.getYearWeek(x,h?h.startDay:void 0),w=_xeUtils.default.padStart(b,2,"0"),x={date:x,yy:e,yyyy:t=y&&G(b,l)?""+(Number(t)+1):t,M:l,MM:a,d:r,dd:i,H:o,HH:s,m:d,mm:u,s:n,ss:c,q:T,W:b,WW:w,E:S,e:p},w={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"+b,title:b,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}_`+s,title:s,dateObj:x},minute:{field:t+`_${a}_${i}_${s}_`+u,title:u,dateObj:x},second:{field:t+`_${a}_${i}_${s}_${u}_`+c,title:c,dateObj:x}},p=w[v.type];v.level<19&&_("year",w,p),v.level<17&&_("quarter",w,p),v.level<15&&_("month",w,p),v.level<13&&_("week",w,p),v.level<11&&_("day",w,p),v.level<9&&_("date",w,p),v.level<7&&_("hour",w,p),v.level<5&&_("minute",w,p),v.level<3&&_("second",w,p),m.push(p)}e.forEach(e=>{var t;e.type===v.type?l.push({scaleItem:e,columns:m}):((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:m,groupCols:l}},G=(e,t)=>""+e=="1"&&""+t=="12",A=(e,t)=>{e=_xeUtils.default.toStringDate(e);let l=e.getFullYear();var a=e.getMonth(),e=_xeUtils.default.getYearWeek(e,t);return G(e,a+1)&&l++,{yyyy:l,W:e}},Q=e=>{let i=I.minViewDate;var t=D.value,l=a.value;let d=r.value;switch(l){case"year":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy");s[e]=t}),(e,t)=>{var e=m(e),t=m(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"),o=Math.floor((_xeUtils.default.getWhatYear(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"quarter":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-q");s[e]=t}),(e,t)=>{var e=m(e),t=m(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"),o=Math.floor((_xeUtils.default.getWhatQuarter(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"month":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM");s[e]=t}),(e,t)=>{var e=m(e),t=m(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"),o=Math.floor((_xeUtils.default.getWhatMonth(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"week":{let s={};return e.forEach(({dateObj:e},t)=>{e=e.yyyy+"-"+e.W;s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=A(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=A(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),o=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/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"day":case"date":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd");s[e]=t}),(e,t)=>{var e=m(e),t=m(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"),o=Math.floor((_xeUtils.default.getWhatDay(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a+1}}}case"hour":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH");s[e]=t}),(e,t)=>{var e=m(e),t=m(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"),o=Math.floor((_xeUtils.default.getWhatHours(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"minute":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH:mm");s[e]=t}),(e,t)=>{var e=m(e),t=m(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"),o=Math.floor((_xeUtils.default.getWhatMinutes(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"second":{let r=(0,_util.getStandardGapTime)(t.type);return(e,t)=>{e=m(e),t=m(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})},N=()=>{var e=M.props.treeConfig,t=$.scrollXStore,l=$.xeTable;let o=null,s=null;if(l){let a=_.value,r=x.value,i=p.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,v=u.transform,h=u.children||u.childrenField,g=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=m(t),!o||o.getTime()>e.getTime())&&(o=e),l&&(e=m(l),!s||s.getTime()<e.getTime())&&(s=e)};n?(n=d.mapChildrenField)&&_xeUtils.default.eachTree(f,g,{children:n}):e?_xeUtils.default.eachTree(c,g,{children:v?u.mapChildrenField:h}):l.forEach(g)}t.startIndex=0,t.endIndex=Math.max(1,t.visibleSize),I.minViewDate=o,I.maxViewDate=s,$.startMaps={},$.endMaps={},(()=>{var e=M.props.treeConfig,{minViewDate:t,maxViewDate:l}=I,{fullCols:a,groupCols:r}=B();if(t&&l&&a.length){let c=$.xeTable;if(c){let o=_.value,s=x.value,d=p.value;var{computeAggregateOpts:t,computeTreeOpts:l}=c.getComputeMaps(),i=c.reactData.isRowGroupStatus,{afterFullData:f,afterTreeFullData:v,afterGroupFullData:h}=c.internalData,t=t.value,l=l.value,g=l.transform,m=l.children||l.childrenField;let u={},n=Q(a);var y=e=>{var t,l,a=c.getRowid(e);let r=_xeUtils.default.get(e,o),i=_xeUtils.default.get(e,s);(0,_util.hasMilestoneTask)(_xeUtils.default.get(e,d))&&(r=r||i,i=r),r&&i&&({offsetLeftSize:t,offsetWidthSize:l}=n(r,i),u[a]={row:e,rowid:a,oLeftSize:t,oWidthSize:l})};i?(i=t.mapChildrenField)&&_xeUtils.default.eachTree(h,y,{children:i}):e?_xeUtils.default.eachTree(v,y,{children:g?l.mapChildrenField:m}):f.forEach(y),$.chartMaps=u}}$.visibleColumn=a,I.headerGroups=r,j(),te(),le()})()},c=()=>{var{scrollXWidth:e,scrollYHeight:t}=I,l=$.elemStore,a=S.value,l=(0,_util.getRefElem)(l["main-body-wrapper"]),r=W.value,i=k.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)},P=()=>{let l=h.dragBarRow,a=I.viewCellWidth,{elemStore:e,chartMaps:r}=$,i=$.xeTable;var t=(0,_util.getRefElem)(e["main-chart-task-wrapper"]);return t&&i&&_xeUtils.default.arrayEach(t.children,e=>{var t=e.children[0];t&&(e=e.getAttribute("rowid"),l&&i.getRowid(l)===e||(e=e?r[e]:null,t.style.left=(0,_util.getTaskBarLeft)(e,a)+"px",(0,_dom.hasClass)(t,"is--milestone"))||(t.style.width=(0,_util.getTaskBarWidth)(e,a)+"px"))}),(0,_vue.nextTick)()},f=()=>{var{scrollbarWidth:s,scrollbarHeight:d,headerGroups:u,tableColumn:n}=I,{elemStore:c,visibleColumn:f}=$,v=$.xeTable,h=i.value;if(h&&M){var g=S.value,m=T.value,y=b.value,_=E.value,x=H.value,p=w.value;let e=s;s=d;let t=0,l=0,a=0,r=(v&&(d=v.internalData,t=d.tBodyHeight,l=d.tHeaderHeight,a=d.tFooterHeight),"visible");(y||g.y&&!1===g.y.visible)&&(e=0,r="hidden");v=(0,_util.getRefElem)(c["main-header-scroll"]),d=(v&&(v.style.height=l+"px",v.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"])),g=(y&&(y.style.height=a+"px"),p&&(p.style.height=s+"px",p.style.visibility="visible"),R.value),v=(g&&(g.style.left=m?e+"px":"",g.style.width=h.clientWidth-e+"px"),_&&(_.style.width=m?e+"px":"",_.style.display=m&&s?"block":""),x&&(x.style.width=m?"":e+"px",x.style.display=!m&&s?"block":""),U.value),u=(v&&(v.style.width=e+"px",v.style.height=t+l+a+"px",v.style.visibility=r),L.value),y=(u&&(u.style.height=l+"px",u.style.display=l?"block":""),z.value),p=(y&&(y.style.height=t+"px",y.style.top=l+"px"),C.value),g=(p&&(p.style.height=a+"px",p.style.top=l+t+"px",p.style.display=a?"block":""),Y.value);let i=40,o=i=g?g.clientWidth||40:i;f.length&&(o=Math.max(0,i*f.length),d)&&0<(_=(h=d.clientWidth)-o)&&(i+=Math.max(0,_/f.length),o=h),I.viewCellWidth=i;x=(0,_util.getRefElem)(c["main-header-table"]),m=(0,_util.getRefElem)(c["main-body-table"]),s=i*n.length;return x&&(x.style.width=o+"px"),m&&(m.style.width=s+"px"),I.scrollXWidth=o,Promise.all([P(),M.handleUpdateTaskLink?M.handleUpdateTaskLink(X):null])}},o=()=>{var e=i.value;return $.rceRunTime=Date.now(),e&&e.clientWidth&&M?(c(),f(),(0,_vue.nextTick)().then(()=>{var e,t=I.scrollXLoad,l=$.scrollXStore;t?({toVisibleIndex:t,visibleSize:e}=K(),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),ee().then(()=>{Z()})):s()})):(0,_vue.nextTick)()},J=()=>new Promise(e=>{var{rceTimeout:t,rceRunTime:l}=$,a=$.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(o()):(0,_vue.nextTick)(()=>{e()}),$.rceTimeout=setTimeout(()=>{$.rceTimeout=void 0,o()},r)}),K=()=>{var e,t=I.viewCellWidth,l=$.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}},Z=()=>{var e=I.isScrollXBig,t=$.scrollXStore,{preloadSize:l,startIndex:a,endIndex:r,offsetSize:i}=t,{toVisibleIndex:o,visibleSize:s}=K(),e={startIndex:Math.max(0,e?o-1:o-1-i-l),endIndex:e?o+s:o+s+i+l},{startIndex:i,endIndex:l}=(t.visibleStartIndex=o-1,t.visibleEndIndex=o+s+1,e);!(o<=a||r-s-1<=o)||a===i&&r===l||(t.startIndex=i,t.endIndex=l,ee())},ee=()=>(le(),s(),(0,_vue.nextTick)()),te=()=>I.scrollXLoad=!0,le=()=>{var e=I.scrollXLoad,{visibleColumn:t,scrollXStore:l}=$,e=e?t.slice(l.startIndex,l.endIndex):t.slice(0);I.tableColumn=e},s=()=>{let{scrollXLoad:t,scrollXWidth:l,viewCellWidth:e}=I,{elemStore:a,scrollXStore:r}=$;var i=(0,_util.getRefElem)(a["main-body-table"]),o=r.startIndex;let s=0;t&&(s=Math.max(0,o*e)),i&&(i.style.transform=`translate(${s}px, ${I.scrollYTop||0}px)`);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(a[`main-${e}-xSpace`]);e&&(e.style.width=t?l+"px":"")});o=d.value,o&&(o.style.width=l+"px"),i=(0,_util.getRefElem)(a["main-chart-line-wrapper"]),o=i?i.firstElementChild:null;return o&&(o.style.width=l+"px"),c(),(0,_vue.nextTick)()},ae=()=>{Z()},re=(e,t)=>{var l=$.lcsTimeout;I.lazScrollLoading=!0,l&&clearTimeout(l),$.lcsTimeout=setTimeout(()=>{$.lcsRunTime=Date.now(),$.lcsTimeout=void 0,$.intoRunScroll=!1,$.inVirtualScroll=!1,$.inWheelScroll=!1,$.inHeaderScroll=!1,$.inBodyScroll=!1,$.inFooterScroll=!1,I.lazScrollLoading=!1},200)},q=(e,t,l,a)=>{t&&($.lastScrollLeft=a),e&&($.lastScrollTop=l),I.lastScrollTime=Date.now(),re(t,e)},v=(u,n,c,f,v)=>{var h=$.xeTable,{lastScrollLeft:g,lastScrollTop:m}=$,y=W.value,_=k.value;if(y&&_&&h){var{computeScrollXThreshold:h,computeScrollYThreshold:x}=h.getComputeMaps(),p=_.clientHeight,S=y.clientWidth,_=_.scrollHeight,y=y.scrollWidth;let e=!1,t=!1,l=!1,a=!1,r="",i=!1,o=!1,s=!1,d=!1;c&&(h=h.value,(l=v<=0)||(a=y-1<=v+S),g<v?(r="right",y-h<=v+S&&(d=!0)):(r="left",v<=h&&(s=!0))),n&&(g=x.value,(e=f<=0)||(t=_-1<=f+p),m<f?(r="bottom",_-g<=f+p&&(o=!0)):(r="top",f<=g&&(i=!0))),q(n,c,f,v);h={source:sourceType,scrollTop:f,scrollLeft:v,bodyHeight:p,bodyWidth:S,scrollHeight:_,scrollWidth:y,isX:c,isY:n,isTop:e,isBottom:t,isLeft:l,isRight:a,direction:r};(o||i||d||s)&&M.dispatchEvent("scroll-boundary",h,u),M.dispatchEvent("scroll",h,u)}},ie=e=>{var t=$.xeTable;t&&(t=t.internalData.elemStore,t=(0,_util.getRefElem)(t["main-body-scroll"]))&&(t.scrollTop=e)};e={handleUpdateStyle:f,handleLazyRecalculate:J,handleUpdateCurrentRow(e){var t,l,a=$.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=$.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}=$;l||a||r||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),r=W.value,a&&l&&(t=l.scrollLeft,$.inHeaderScroll=!0,(0,_dom.setScrollLeft)(r,t),(0,_dom.setScrollLeft)(a,t),v(e,!1,!0,l.scrollTop,t)))},triggerBodyScrollEvent(e){var t,l,a=I.scrollXLoad,{elemStore:r,inVirtualScroll:i,inHeaderScroll:o,inFooterScroll:s,lastScrollLeft:d,lastScrollTop:u}=$;i||o||s||(i=e.currentTarget,o=(0,_util.getRefElem)(r["main-header-scroll"]),s=W.value,r=k.value,d=(t=i.scrollLeft)!==d,u=(l=i.scrollTop)!==u,$.inBodyScroll=!0,$.scrollRenderType="",u&&((0,_dom.setScrollTop)(r,l),ie(l)),d&&($.inBodyScroll=!0,(0,_dom.setScrollLeft)(s,t),(0,_dom.setScrollLeft)(o,t),a)&&ae(),u&&q(u,d,i.scrollTop,t),d&&v(e,u,d,i.scrollTop,t))},triggerVirtualScrollXEvent(e){var t,l=I.scrollXLoad,{elemStore:a,inHeaderScroll:r,inBodyScroll:i}=$;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,$.inVirtualScroll=!0,(0,_dom.setScrollLeft)(i,t),(0,_dom.setScrollLeft)(a,t),l&&ae(),v(e,!1,!0,r.scrollTop,t)))},triggerVirtualScrollYEvent(e){var{elemStore:t,inHeaderScroll:l,inBodyScroll:a}=$;l||a||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),l&&(e=l.scrollTop,$.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,e),ie(e),q(!0,!1,e,l.scrollLeft)))},handleUpdateSXSpace(){return s()},handleUpdateSYSpace(){return(()=>{var e=$.elemStore,t=$.xeTable,l=(0,_util.getRefElem)(e["main-body-scroll"]),a=(0,_util.getRefElem)(e["main-body-table"]);let r=0,i=0,o=!1,s=(t&&(t=t.reactData,r=t.scrollYTop,i=t.scrollYHeight,o=t.isScrollYBig),i),d=r,u=0;l&&(u=l.clientHeight),o&&(d=l&&a&&l.scrollTop+u>=maxYHeight?maxYHeight-a.clientHeight:(maxYHeight-u)*(r/(i-u)),s=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=`translate(${I.scrollXLeft||0}px, ${d}px)`),l=(0,_util.getRefElem)(e["main-body-ySpace"]),l&&(l.style.height=s?s+"px":""),a=n.value,a&&(a.style.height=s?s+"px":""),t=(0,_util.getRefElem)(e["main-chart-line-wrapper"]),l=t?t.firstElementChild:null;return l&&(l.style.height=s?s+"px":""),I.scrollYTop=d,I.scrollYHeight=i,I.isScrollYBig=o,c(),(0,_vue.nextTick)().then(()=>{f()})})()},handleUpdateSYStatus(e){I.scrollYLoad=e}};let oe=()=>{J()},se=(Object.assign(X,{refreshData(){return N(),o(),(0,_vue.nextTick)().then(()=>{var e=$.xeTable;if(o(),e)return e.recalculate()})},updateViewData(){var e=$.xeTable;return e&&(e=e.reactData.tableData,I.tableData=e),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&($.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:E,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:R,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:W,class:"vxe-gantt-view--scroll-x-handle",onScroll:X.triggerVirtualScrollXEvent},[(0,_vue.h)("div",{ref:d,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"})])),de=()=>(0,_vue.h)("div",{ref:U,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:L,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:z,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:k,class:"vxe-gantt-view--scroll-y-handle",onScroll:X.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--scroll-y-space"})]),(0,_vue.h)("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),(0,_vue.h)("div",{ref:C,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),ue=()=>(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)]),ne=()=>{var e=b.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[de(),ue()]:[ue(),de()])};let t=(0,_vue.ref)(0);return(0,_vue.watch)(()=>I.tableData,()=>{t.value++}),(0,_vue.watch)(()=>I.tableData.length,()=>{t.value++}),(0,_vue.watch)(t,()=>{N()}),(0,_vue.onMounted)(()=>{globalEvents.on(X,"resize",oe)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(X,"keydown"),_xeUtils.default.assign($,createInternalData())}),X.renderVN=()=>{var{overflowX:e,overflowY:t,scrollXLoad:l,scrollYLoad:a}=I,r=T.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?[se(),ne()]:[ne(),se()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:Y,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}}let maxYHeight=5e6;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",setup(l,u){var e=_xeUtils.default.uniqueId();let M=(0,_vue.inject)("$xeGantt",{}),v=M.internalData,{computeTaskOpts:g,computeTaskViewOpts:V,computeStartField:_,computeEndField:x,computeTypeField:p,computeScrollbarOpts:S,computeScrollbarXToTop:T,computeScrollbarYToLeft:b,computeScaleUnit:a,computeWeekScale:r,computeMinScale:D}=M.getComputeMaps(),i=(0,_vue.ref)(),w=(0,_vue.ref)(),U=(0,_vue.ref)(),W=(0,_vue.ref)(),E=(0,_vue.ref)(),H=(0,_vue.ref)(),k=(0,_vue.ref)(),L=(0,_vue.ref)(),R=(0,_vue.ref)(),C=(0,_vue.ref)(),z=(0,_vue.ref)(),d=(0,_vue.ref)(),n=(0,_vue.ref)(),Y=(0,_vue.ref)(),I=(0,_vue.reactive)({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}),$=createInternalData(),y={refElem:i,refScrollXHandleElem:W,refScrollYHandleElem:k},O=(0,_vue.computed)(()=>{var{minViewDate:t,maxViewDate:l}=I,e=V.value,a=D.value,e=e.gridding,{type:r,startDay:i}=a,o=[];if(t&&l){var s=-_xeUtils.default.toNumber(e&&e.leftSpacing||0),d=_xeUtils.default.toNumber(e&&e.rightSpacing||0);switch(r){case"year":{let e=_xeUtils.default.getWhatYear(t,s,"first");for(var u=_xeUtils.default.getWhatYear(l,d,"first");e<=u;){var n=e;o.push(n),e=_xeUtils.default.getWhatYear(e,1)}break}case"quarter":{let e=_xeUtils.default.getWhatQuarter(t,s,"first");for(var c=_xeUtils.default.getWhatQuarter(l,d,"first");e<=c;){var f=e;o.push(f),e=_xeUtils.default.getWhatQuarter(e,1)}break}case"month":{let e=_xeUtils.default.getWhatMonth(t,s,"first");for(var h=_xeUtils.default.getWhatMonth(l,d,"first");e<=h;){var v=e;o.push(v),e=_xeUtils.default.getWhatMonth(e,1)}break}case"week":{let e=_xeUtils.default.getWhatWeek(t,s,i,i);for(var g=_xeUtils.default.getWhatWeek(l,d,i,i);e<=g;){var m=e;o.push(m),e=_xeUtils.default.getWhatWeek(e,1)}break}case"day":case"date":{let e=_xeUtils.default.getWhatDay(t,s,"first");for(var y=_xeUtils.default.getWhatDay(l,d,"first");e<=y;){var _=e;o.push(_),e=_xeUtils.default.getWhatDay(e,1)}break}case"hour":case"minute":case"second":{var x=+(0,_util.getStandardGapTime)(a.type);let e=t.getTime()+s*x;for(var p=l.getTime()+d*x;e<=p;){var S=new Date(e);o.push(S),e+=x}break}}}return o}),F={computeScaleDateList:O},X={xID:e,props:l,context:u,reactData:I,internalData:$,getRefMaps:()=>y,getComputeMaps:()=>F},m=e=>{var t=g.value.dateFormat;return _xeUtils.default.toStringDate(e,t||null)},j=()=>{var e=M.reactData.taskScaleList,e=e.find(e=>"week"===e.type),t=new Date,[l,a,r,i,o,s]=_xeUtils.default.toDateString(t,"yyyy-M-d-H-m-s").split("-"),d=t.getDay()+1,u=Math.ceil((t.getMonth()+1)/3),t=_xeUtils.default.getYearWeek(t,e?e.startDay:void 0);$.todayDateMaps={year:l,quarter:l+"_q"+u,month:l+"_"+a,week:l+"_W"+t,day:l+`_${a}_${r}_E`+d,date:l+`_${a}_`+r,hour:l+`_${a}_${r}_`+i,minute:l+`_${a}_${r}_${i}_`+o,second:l+`_${a}_${r}_${i}_${o}_`+s}},B=()=>{var e=M.reactData.taskScaleList,t=a.value;let h=D.value;var v=r.value,g=O.value;let m=[],l=[];if(h&&t&&g.length){let i={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},o={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}};var y="week"===h.type,_=(t,l,a)=>{if(h.type!==t){var l=l[t],r=""+l.field;let e=o[t][r];e||(e=l,o[t][r]=e,i[t].push(e)),e&&(e.children||(e.children=[]),e.children.push(a))}};for(let f=0;f<g.length;f++){var x=g[f];let[e,t,l,a,r,i,o,s,d,u,n,c]=_xeUtils.default.toDateString(x,"yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss").split("-");var p=x.getDay(),S=p+1,T=Math.ceil((x.getMonth()+1)/3),b=""+_xeUtils.default.getYearWeek(x,v?v.startDay:void 0),w=_xeUtils.default.padStart(b,2,"0"),x={date:x,yy:e,yyyy:t=y&&G(b,l)?""+(Number(t)+1):t,M:l,MM:a,d:r,dd:i,H:o,HH:s,m:d,mm:u,s:n,ss:c,q:T,W:b,WW:w,E:S,e:p},w={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"+b,title:b,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}_`+s,title:s,dateObj:x},minute:{field:t+`_${a}_${i}_${s}_`+u,title:u,dateObj:x},second:{field:t+`_${a}_${i}_${s}_${u}_`+c,title:c,dateObj:x}},p=w[h.type];h.level<19&&_("year",w,p),h.level<17&&_("quarter",w,p),h.level<15&&_("month",w,p),h.level<13&&_("week",w,p),h.level<11&&_("day",w,p),h.level<9&&_("date",w,p),h.level<7&&_("hour",w,p),h.level<5&&_("minute",w,p),h.level<3&&_("second",w,p),m.push(p)}e.forEach(e=>{var t;e.type===h.type?l.push({scaleItem:e,columns:m}):((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:m,groupCols:l}},G=(e,t)=>""+e=="1"&&""+t=="12",A=(e,t)=>{e=_xeUtils.default.toStringDate(e);let l=e.getFullYear();var a=e.getMonth(),e=_xeUtils.default.getYearWeek(e,t);return G(e,a+1)&&l++,{yyyy:l,W:e}},Q=e=>{let i=I.minViewDate;var t=D.value,l=a.value;let d=r.value;switch(l){case"year":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy");s[e]=t}),(e,t)=>{var e=m(e),t=m(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"),o=Math.floor((_xeUtils.default.getWhatYear(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"quarter":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-q");s[e]=t}),(e,t)=>{var e=m(e),t=m(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"),o=Math.floor((_xeUtils.default.getWhatQuarter(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"month":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM");s[e]=t}),(e,t)=>{var e=m(e),t=m(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"),o=Math.floor((_xeUtils.default.getWhatMonth(t,1,"first").getTime()-i.getTime())/dayMs),e=(e.getTime()-a.getTime())/dayMs/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"week":{let s={};return e.forEach(({dateObj:e},t)=>{e=e.yyyy+"-"+e.W;s[e]=t}),(e,t)=>{var e=m(e),t=m(t),l=A(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=A(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),o=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/o,a=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"day":case"date":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd");s[e]=t}),(e,t)=>{var e=m(e),t=m(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"),o=Math.floor((_xeUtils.default.getWhatDay(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a+1}}}case"hour":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH");s[e]=t}),(e,t)=>{var e=m(e),t=m(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"),o=Math.floor((_xeUtils.default.getWhatHours(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"minute":{let s={};return e.forEach(({dateObj:e},t)=>{e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH:mm");s[e]=t}),(e,t)=>{var e=m(e),t=m(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"),o=Math.floor((_xeUtils.default.getWhatMinutes(t,1,"first").getTime()-i.getTime())/minuteMs),e=(e.getTime()-a.getTime())/minuteMs/o,a=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(s[l]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+a}}}case"second":{let r=(0,_util.getStandardGapTime)(t.type);return(e,t)=>{e=m(e),t=m(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})},N=()=>{var e=M.props.treeConfig,t=$.scrollXStore,l=$.xeTable;let o=null,s=null;if(l){let a=_.value,r=x.value,i=p.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,g=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=m(t),!o||o.getTime()>e.getTime())&&(o=e),l&&(e=m(l),!s||s.getTime()<e.getTime())&&(s=e)};n?(n=d.mapChildrenField)&&_xeUtils.default.eachTree(f,g,{children:n}):e?_xeUtils.default.eachTree(c,g,{children:h?u.mapChildrenField:v}):l.forEach(g)}t.startIndex=0,t.endIndex=Math.max(1,t.visibleSize),I.minViewDate=o,I.maxViewDate=s,$.startMaps={},$.endMaps={},(()=>{var e=M.props.treeConfig,{minViewDate:t,maxViewDate:l}=I,{fullCols:a,groupCols:r}=B();if(t&&l&&a.length){let c=$.xeTable;if(c){let o=_.value,s=x.value,d=p.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,g=l.transform,m=l.children||l.childrenField;let u={},n=Q(a);var y=e=>{var t,l,a=c.getRowid(e);let r=_xeUtils.default.get(e,o),i=_xeUtils.default.get(e,s);(0,_util.hasMilestoneTask)(_xeUtils.default.get(e,d))&&(r=r||i,i=r),r&&i&&({offsetLeftSize:t,offsetWidthSize:l}=n(r,i),u[a]={row:e,rowid:a,oLeftSize:t,oWidthSize:l})};i?(i=t.mapChildrenField)&&_xeUtils.default.eachTree(v,y,{children:i}):e?_xeUtils.default.eachTree(h,y,{children:g?l.mapChildrenField:m}):f.forEach(y),$.chartMaps=u}}$.visibleColumn=a,I.headerGroups=r,j(),te(),le()})()},c=()=>{var{scrollXWidth:e,scrollYHeight:t}=I,l=$.elemStore,a=S.value,l=(0,_util.getRefElem)(l["main-body-wrapper"]),r=W.value,i=k.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)},P=()=>{let l=v.dragBarRow,a=I.viewCellWidth,{elemStore:e,chartMaps:r}=$,i=$.xeTable;var t=(0,_util.getRefElem)(e["main-chart-task-wrapper"]);return t&&i&&_xeUtils.default.arrayEach(t.children,e=>{var t=e.children[0];t&&(e=e.getAttribute("rowid"),l&&i.getRowid(l)===e||(e=e?r[e]:null,t.style.left=(0,_util.getTaskBarLeft)(e,a)+"px",(0,_dom.hasClass)(t,"is--milestone"))||(t.style.width=(0,_util.getTaskBarWidth)(e,a)+"px"))}),(0,_vue.nextTick)()},f=()=>{var{scrollbarWidth:s,scrollbarHeight:d,headerGroups:u,tableColumn:n}=I,{elemStore:c,visibleColumn:f}=$,h=$.xeTable,v=i.value;if(v&&M){var g=S.value,m=T.value,y=b.value,_=E.value,x=H.value,p=w.value;let e=s;s=d;let t=0,l=0,a=0,r=(h&&(d=h.internalData,t=d.tBodyHeight,l=d.tHeaderHeight,a=d.tFooterHeight),"visible");(y||g.y&&!1===g.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"])),g=(y&&(y.style.height=a+"px"),p&&(p.style.height=s+"px",p.style.visibility="visible"),R.value),h=(g&&(g.style.left=m?e+"px":"",g.style.width=v.clientWidth-e+"px"),_&&(_.style.width=m?e+"px":"",_.style.display=m&&s?"block":""),x&&(x.style.width=m?"":e+"px",x.style.display=!m&&s?"block":""),U.value),u=(h&&(h.style.width=e+"px",h.style.height=t+l+a+"px",h.style.visibility=r),L.value),y=(u&&(u.style.height=l+"px",u.style.display=l?"block":""),C.value),p=(y&&(y.style.height=t+"px",y.style.top=l+"px"),z.value),g=(p&&(p.style.height=a+"px",p.style.top=l+t+"px",p.style.display=a?"block":""),Y.value);let i=40,o=i=g?g.clientWidth||40:i;f.length&&(o=Math.max(0,i*f.length),d)&&0<(_=(v=d.clientWidth)-o)&&(i+=Math.max(0,_/f.length),o=v),I.viewCellWidth=i;x=(0,_util.getRefElem)(c["main-header-table"]),m=(0,_util.getRefElem)(c["main-body-table"]),s=i*n.length;return x&&(x.style.width=o+"px"),m&&(m.style.width=s+"px"),I.scrollXWidth=o,Promise.all([P(),M.handleUpdateTaskLinkStyle?M.handleUpdateTaskLinkStyle(X):null])}},o=()=>{var e=i.value;return $.rceRunTime=Date.now(),e&&e.clientWidth&&M?(c(),f(),(0,_vue.nextTick)().then(()=>{var e,t=I.scrollXLoad,l=$.scrollXStore;t?({toVisibleIndex:t,visibleSize:e}=K(),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),ee().then(()=>{Z()})):s()})):(0,_vue.nextTick)()},J=()=>new Promise(e=>{var{rceTimeout:t,rceRunTime:l}=$,a=$.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(o()):(0,_vue.nextTick)(()=>{e()}),$.rceTimeout=setTimeout(()=>{$.rceTimeout=void 0,o()},r)}),K=()=>{var e,t=I.viewCellWidth,l=$.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}},Z=()=>{var e=I.isScrollXBig,t=$.scrollXStore,{preloadSize:l,startIndex:a,endIndex:r,offsetSize:i}=t,{toVisibleIndex:o,visibleSize:s}=K(),e={startIndex:Math.max(0,e?o-1:o-1-i-l),endIndex:e?o+s:o+s+i+l},{startIndex:i,endIndex:l}=(t.visibleStartIndex=o-1,t.visibleEndIndex=o+s+1,e);!(o<=a||r-s-1<=o)||a===i&&r===l||(t.startIndex=i,t.endIndex=l,ee())},ee=()=>(le(),s(),(0,_vue.nextTick)()),te=()=>I.scrollXLoad=!0,le=()=>{var e=I.scrollXLoad,{visibleColumn:t,scrollXStore:l}=$,e=e?t.slice(l.startIndex,l.endIndex):t.slice(0);I.tableColumn=e},s=()=>{let{scrollXLoad:t,scrollXWidth:l,viewCellWidth:e}=I,{elemStore:a,scrollXStore:r}=$;var i=(0,_util.getRefElem)(a["main-body-table"]),o=r.startIndex;let s=0;t&&(s=Math.max(0,o*e)),i&&(i.style.transform=`translate(${s}px, ${I.scrollYTop||0}px)`);["header","body","footer"].forEach(e=>{e=(0,_util.getRefElem)(a[`main-${e}-xSpace`]);e&&(e.style.width=t?l+"px":"")});o=d.value,o&&(o.style.width=l+"px"),i=(0,_util.getRefElem)(a["main-chart-before-wrapper"]),o=i?i.firstElementChild:null,o&&(o.style.width=l+"px"),i=(0,_util.getRefElem)(a["main-chart-after-wrapper"]),o=i?i.firstElementChild:null;return o&&(o.style.width=l+"px"),c(),(0,_vue.nextTick)()},ae=()=>{Z()},re=(e,t)=>{var l=$.lcsTimeout;I.lazScrollLoading=!0,l&&clearTimeout(l),$.lcsTimeout=setTimeout(()=>{$.lcsRunTime=Date.now(),$.lcsTimeout=void 0,$.intoRunScroll=!1,$.inVirtualScroll=!1,$.inWheelScroll=!1,$.inHeaderScroll=!1,$.inBodyScroll=!1,$.inFooterScroll=!1,I.lazScrollLoading=!1},200)},q=(e,t,l,a)=>{t&&($.lastScrollLeft=a),e&&($.lastScrollTop=l),I.lastScrollTime=Date.now(),re(t,e)},h=(u,n,c,f,h)=>{var v=$.xeTable,{lastScrollLeft:g,lastScrollTop:m}=$,y=W.value,_=k.value;if(y&&_&&v){var{computeScrollXThreshold:v,computeScrollYThreshold:x}=v.getComputeMaps(),p=_.clientHeight,S=y.clientWidth,_=_.scrollHeight,y=y.scrollWidth;let e=!1,t=!1,l=!1,a=!1,r="",i=!1,o=!1,s=!1,d=!1;c&&(v=v.value,(l=h<=0)||(a=y-1<=h+S),g<h?(r="right",y-v<=h+S&&(d=!0)):(r="left",h<=v&&(s=!0))),n&&(g=x.value,(e=f<=0)||(t=_-1<=f+p),m<f?(r="bottom",_-g<=f+p&&(o=!0)):(r="top",f<=g&&(i=!0))),q(n,c,f,h);v={source:sourceType,scrollTop:f,scrollLeft:h,bodyHeight:p,bodyWidth:S,scrollHeight:_,scrollWidth:y,isX:c,isY:n,isTop:e,isBottom:t,isLeft:l,isRight:a,direction:r};(o||i||d||s)&&M.dispatchEvent("scroll-boundary",v,u),M.dispatchEvent("scroll",v,u)}},ie=e=>{var t=$.xeTable;t&&(t=t.internalData.elemStore,t=(0,_util.getRefElem)(t["main-body-scroll"]))&&(t.scrollTop=e)};e={handleUpdateStyle:f,handleLazyRecalculate:J,handleUpdateCurrentRow(e){var t,l,a=$.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=$.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}=$;l||a||r||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),r=W.value,a&&l&&(t=l.scrollLeft,$.inHeaderScroll=!0,(0,_dom.setScrollLeft)(r,t),(0,_dom.setScrollLeft)(a,t),h(e,!1,!0,l.scrollTop,t)))},triggerBodyScrollEvent(e){var t,l,a=I.scrollXLoad,{elemStore:r,inVirtualScroll:i,inHeaderScroll:o,inFooterScroll:s,lastScrollLeft:d,lastScrollTop:u}=$;i||o||s||(i=e.currentTarget,o=(0,_util.getRefElem)(r["main-header-scroll"]),s=W.value,r=k.value,d=(t=i.scrollLeft)!==d,u=(l=i.scrollTop)!==u,$.inBodyScroll=!0,$.scrollRenderType="",u&&((0,_dom.setScrollTop)(r,l),ie(l)),d&&($.inBodyScroll=!0,(0,_dom.setScrollLeft)(s,t),(0,_dom.setScrollLeft)(o,t),a)&&ae(),u&&q(u,d,i.scrollTop,t),d&&h(e,u,d,i.scrollTop,t))},triggerVirtualScrollXEvent(e){var t,l=I.scrollXLoad,{elemStore:a,inHeaderScroll:r,inBodyScroll:i}=$;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,$.inVirtualScroll=!0,(0,_dom.setScrollLeft)(i,t),(0,_dom.setScrollLeft)(a,t),l&&ae(),h(e,!1,!0,r.scrollTop,t)))},triggerVirtualScrollYEvent(e){var{elemStore:t,inHeaderScroll:l,inBodyScroll:a}=$;l||a||(l=e.currentTarget,a=(0,_util.getRefElem)(t["main-body-scroll"]),l&&(e=l.scrollTop,$.inVirtualScroll=!0,(0,_dom.setScrollTop)(a,e),ie(e),q(!0,!1,e,l.scrollLeft)))},handleUpdateSXSpace(){return s()},handleUpdateSYSpace(){return(()=>{var e=$.elemStore,t=$.xeTable,l=(0,_util.getRefElem)(e["main-body-scroll"]),a=(0,_util.getRefElem)(e["main-body-table"]);let r=0,i=0,o=!1,s=(t&&(t=t.reactData,r=t.scrollYTop,i=t.scrollYHeight,o=t.isScrollYBig),i),d=r,u=0;l&&(u=l.clientHeight),o&&(d=l&&a&&l.scrollTop+u>=maxYHeight?maxYHeight-a.clientHeight:(maxYHeight-u)*(r/(i-u)),s=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=`translate(${I.scrollXLeft||0}px, ${d}px)`),l=(0,_util.getRefElem)(e["main-body-ySpace"]),l&&(l.style.height=s?s+"px":""),a=n.value,a&&(a.style.height=s?s+"px":""),t=(0,_util.getRefElem)(e["main-chart-before-wrapper"]),l=t?t.firstElementChild:null,l&&(l.style.height=s?s+"px":""),a=(0,_util.getRefElem)(e["main-chart-after-wrapper"]),t=a?a.firstElementChild:null;return t&&(t.style.height=s?s+"px":""),I.scrollYTop=d,I.scrollYHeight=i,I.isScrollYBig=o,c(),(0,_vue.nextTick)().then(()=>{f()})})()},handleUpdateSYStatus(e){I.scrollYLoad=e}};let oe=()=>{J()},se=(Object.assign(X,{refreshData(){return N(),o(),(0,_vue.nextTick)().then(()=>{var e=$.xeTable;if(o(),e)return e.recalculate()})},updateViewData(){var e=$.xeTable;return e&&(e=e.reactData.tableData,I.tableData=e),(0,_vue.nextTick)()},connectUpdate({$table:e}){return e&&($.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:E,class:"vxe-gantt-view--scroll-x-left-corner"}),(0,_vue.h)("div",{ref:R,class:"vxe-gantt-view--scroll-x-wrapper"},[(0,_vue.h)("div",{ref:W,class:"vxe-gantt-view--scroll-x-handle",onScroll:X.triggerVirtualScrollXEvent},[(0,_vue.h)("div",{ref:d,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"})])),de=()=>(0,_vue.h)("div",{ref:U,class:"vxe-gantt-view--scroll-y-virtual"},[(0,_vue.h)("div",{ref:L,class:"vxe-gantt-view--scroll-y-top-corner"}),(0,_vue.h)("div",{ref:C,class:"vxe-gantt-view--scroll-y-wrapper"},[(0,_vue.h)("div",{ref:k,class:"vxe-gantt-view--scroll-y-handle",onScroll:X.triggerVirtualScrollYEvent},[(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--scroll-y-space"})]),(0,_vue.h)("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),(0,_vue.h)("div",{ref:z,class:"vxe-gantt-view--scroll-y-bottom-corner"})]),ue=()=>(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)]),ne=()=>{var e=b.value;return(0,_vue.h)("div",{class:"vxe-gantt-view--layout-wrapper"},e?[de(),ue()]:[ue(),de()])};let t=(0,_vue.ref)(0);return(0,_vue.watch)(()=>I.tableData,()=>{t.value++}),(0,_vue.watch)(()=>I.tableData.length,()=>{t.value++}),(0,_vue.watch)(t,()=>{N()}),(0,_vue.onMounted)(()=>{globalEvents.on(X,"resize",oe)}),(0,_vue.onUnmounted)(()=>{globalEvents.off(X,"keydown"),_xeUtils.default.assign($,createInternalData())}),X.renderVN=()=>{var{overflowX:e,overflowY:t,scrollXLoad:l,scrollYLoad:a}=I,r=T.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?[se(),ne()]:[ne(),se()]),(0,_vue.h)("div",{class:"vxe-gantt-view--render-vars"},[(0,_vue.h)("div",{ref:Y,class:"vxe-gantt-view--column-info"})])])},(0,_vue.provide)("$xeGanttView",X),X},render(){return this.renderVN()}});
@@ -39,9 +39,52 @@ function createInternalData() {
39
39
  linkFromKeyMaps: {},
40
40
  linkUniqueMaps: {},
41
41
  uFoot: false,
42
- resizeTableWidth: 0
43
- // barTipTimeout: null
44
- // dragBarRow: null
42
+ resizeTableWidth: 0,
43
+ // barTipTimeout: null,
44
+ // dragBarRow: null,
45
+ // dragLineRow: null,
46
+ dragLinkToStore: {
47
+ rowid: null,
48
+ type: 0
49
+ }
50
+ };
51
+ }
52
+ function createReactData() {
53
+ var _a;
54
+ return {
55
+ tableLoading: false,
56
+ proxyInited: false,
57
+ isZMax: false,
58
+ tableLinks: [],
59
+ tableData: [],
60
+ filterData: [],
61
+ formData: {},
62
+ sortData: [],
63
+ footerData: [],
64
+ tZindex: 0,
65
+ tablePage: {
66
+ total: 0,
67
+ pageSize: ((_a = getConfig().pager) === null || _a === void 0 ? void 0 : _a.pageSize) || 10,
68
+ currentPage: 1
69
+ },
70
+ showLeftView: true,
71
+ showRightView: true,
72
+ taskScaleList: [],
73
+ barTipStore: {
74
+ row: null,
75
+ content: '',
76
+ visible: false,
77
+ params: null
78
+ },
79
+ dragLinkFromStore: {
80
+ rowid: null,
81
+ type: 0
82
+ },
83
+ activeBarRowid: null,
84
+ activeLink: null,
85
+ isActiveCeLe: false,
86
+ linkList: [],
87
+ upLinkFlag: 0
45
88
  };
46
89
  }
47
90
  const viewTypeLevelMaps = {
@@ -87,7 +130,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
87
130
  }),
88
131
  emits: _emits.ganttEmits,
89
132
  setup(props, context) {
90
- var _a;
91
133
  const {
92
134
  slots,
93
135
  emit
@@ -102,34 +144,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
102
144
  const {
103
145
  computeSize
104
146
  } = useFns.useSize(props);
105
- const reactData = (0, _vue.reactive)({
106
- tableLoading: false,
107
- proxyInited: false,
108
- isZMax: false,
109
- tableLinks: [],
110
- tableData: [],
111
- filterData: [],
112
- formData: {},
113
- sortData: [],
114
- footerData: [],
115
- tZindex: 0,
116
- tablePage: {
117
- total: 0,
118
- pageSize: ((_a = getConfig().pager) === null || _a === void 0 ? void 0 : _a.pageSize) || 10,
119
- currentPage: 1
120
- },
121
- showLeftView: true,
122
- showRightView: true,
123
- taskScaleList: [],
124
- barTipStore: {
125
- row: null,
126
- content: '',
127
- visible: false,
128
- params: null
129
- },
130
- linkList: [],
131
- upLinkFlag: 0
132
- });
147
+ const reactData = (0, _vue.reactive)(createReactData());
133
148
  const internalData = createInternalData();
134
149
  const refElem = (0, _vue.ref)();
135
150
  const refTable = (0, _vue.ref)();
@@ -246,6 +261,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
246
261
  } = taskViewOpts;
247
262
  return scales;
248
263
  });
264
+ const computeTaskLinkStyle = (0, _vue.computed)(() => {
265
+ const {
266
+ lineType,
267
+ lineWidth,
268
+ lineStatus,
269
+ lineColor
270
+ } = computeTaskLinkOpts.value;
271
+ return `${lineType || ''}_${lineWidth || ''}_${lineStatus || ''}_${lineColor || ''}`;
272
+ });
249
273
  const computeTitleField = (0, _vue.computed)(() => {
250
274
  const taskOpts = computeTaskOpts.value;
251
275
  return taskOpts.titleField || 'title';
@@ -1949,12 +1973,26 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1949
1973
  $xeTable.handleToggleCheckRowEvent(evnt, params);
1950
1974
  }
1951
1975
  }
1976
+ reactData.isActiveCeLe = false;
1977
+ reactData.activeBarRowid = null;
1978
+ reactData.activeLink = null;
1952
1979
  $xeGantt.dispatchEvent('task-cell-click', params, evnt);
1953
1980
  },
1954
1981
  handleTaskCellDblclickEvent(evnt, params) {
1955
1982
  $xeGantt.dispatchEvent('task-cell-dblclick', params, evnt);
1956
1983
  },
1957
1984
  handleTaskBarClickEvent(evnt, params) {
1985
+ const $xeTable = refTable.value;
1986
+ const taskBarOpts = computeTaskBarOpts.value;
1987
+ const {
1988
+ linkCreatable
1989
+ } = taskBarOpts;
1990
+ const {
1991
+ row
1992
+ } = params;
1993
+ reactData.isActiveCeLe = !!linkCreatable;
1994
+ reactData.activeBarRowid = $xeTable ? $xeTable.getRowid(row) : row;
1995
+ reactData.activeLink = null;
1958
1996
  $xeGantt.dispatchEvent('task-bar-click', params, evnt);
1959
1997
  },
1960
1998
  handleTaskBarDblclickEvent(evnt, params) {
@@ -1962,12 +2000,17 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1962
2000
  },
1963
2001
  triggerTaskBarTooltipEvent(evnt, params) {
1964
2002
  const {
1965
- barTipStore
2003
+ barTipStore,
2004
+ activeLink
1966
2005
  } = reactData;
1967
2006
  const {
1968
- dragBarRow
2007
+ dragBarRow,
2008
+ dragLineRow
1969
2009
  } = internalData;
1970
- if (dragBarRow) {
2010
+ if (dragBarRow || dragLineRow) {
2011
+ return;
2012
+ }
2013
+ if (activeLink) {
1971
2014
  return;
1972
2015
  }
1973
2016
  const taskBarTooltipOpts = computeTaskBarTooltipOpts.value;
@@ -2585,6 +2628,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2585
2628
  handleTaskScaleConfig();
2586
2629
  $xeGantt.refreshTaskView();
2587
2630
  });
2631
+ (0, _vue.watch)(computeTaskLinkStyle, () => {
2632
+ if ($xeGantt.handleUpdateTaskLinkData) {
2633
+ $xeGantt.handleUpdateTaskLinkData();
2634
+ }
2635
+ });
2588
2636
  hooks.forEach(options => {
2589
2637
  const {
2590
2638
  setupGantt
@@ -2596,15 +2644,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2596
2644
  }
2597
2645
  }
2598
2646
  });
2599
- if ($xeGantt.handleTaskUpdateLinks) {
2647
+ if ($xeGantt.handleTaskLoadLinks) {
2600
2648
  if (props.links) {
2601
- $xeGantt.handleTaskUpdateLinks(props.links);
2649
+ $xeGantt.handleTaskLoadLinks(props.links);
2602
2650
  }
2603
2651
  }
2604
2652
  handleTaskScaleConfig();
2605
2653
  initPages();
2606
2654
  (0, _vue.onMounted)(() => {
2607
- if (!$xeGantt.handleUpdateTaskLink) {
2655
+ if (!$xeGantt.handleUpdateTaskLinkData) {
2608
2656
  if (props.links) {
2609
2657
  (0, _log.warnLog)('vxe.error.notProp', ['links']);
2610
2658
  }
@@ -2659,6 +2707,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
2659
2707
  initGanttView();
2660
2708
  globalEvents.on($xeGantt, 'keydown', handleGlobalKeydownEvent);
2661
2709
  });
2710
+ (0, _vue.onBeforeUnmount)(() => {
2711
+ _xeUtils.default.assign(reactData, createReactData());
2712
+ });
2662
2713
  (0, _vue.onUnmounted)(() => {
2663
2714
  globalEvents.off($xeGantt, 'keydown');
2664
2715
  _xeUtils.default.assign(internalData, createInternalData());