vxe-gantt 3.1.5 → 3.1.7

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 (57) hide show
  1. package/es/gantt/index.js +3 -0
  2. package/es/gantt/src/gantt-body.js +2 -5
  3. package/es/gantt/src/gantt-chart.js +66 -37
  4. package/es/gantt/src/gantt-view.js +34 -13
  5. package/es/gantt/src/gantt.js +71 -6
  6. package/es/gantt/src/static.js +22 -0
  7. package/es/gantt/src/util.js +9 -0
  8. package/es/gantt/style.css +2 -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 +6 -13
  13. package/es/ui/src/depend.js +14 -0
  14. package/es/ui/src/log.js +1 -1
  15. package/es/vxe-gantt/style.css +2 -2
  16. package/es/vxe-gantt/style.min.css +1 -1
  17. package/lib/gantt/index.js +18 -0
  18. package/lib/gantt/index.min.js +1 -1
  19. package/lib/gantt/src/gantt-body.js +2 -5
  20. package/lib/gantt/src/gantt-body.min.js +1 -1
  21. package/lib/gantt/src/gantt-chart.js +42 -22
  22. package/lib/gantt/src/gantt-chart.min.js +1 -1
  23. package/lib/gantt/src/gantt-view.js +29 -11
  24. package/lib/gantt/src/gantt-view.min.js +1 -1
  25. package/lib/gantt/src/gantt.js +89 -6
  26. package/lib/gantt/src/gantt.min.js +1 -1
  27. package/lib/gantt/src/static.js +28 -0
  28. package/lib/gantt/src/static.min.js +1 -0
  29. package/lib/gantt/src/util.js +12 -0
  30. package/lib/gantt/src/util.min.js +1 -1
  31. package/lib/gantt/style/style.css +2 -2
  32. package/lib/gantt/style/style.min.css +1 -1
  33. package/lib/index.umd.js +235 -68
  34. package/lib/index.umd.min.js +1 -1
  35. package/lib/style.css +1 -1
  36. package/lib/style.min.css +1 -1
  37. package/lib/ui/index.js +6 -13
  38. package/lib/ui/index.min.js +1 -1
  39. package/lib/ui/src/depend.js +19 -0
  40. package/lib/ui/src/depend.min.js +1 -0
  41. package/lib/ui/src/log.js +1 -1
  42. package/lib/ui/src/log.min.js +1 -1
  43. package/lib/vxe-gantt/style/style.css +2 -2
  44. package/lib/vxe-gantt/style/style.min.css +1 -1
  45. package/package.json +3 -7
  46. package/packages/gantt/index.ts +4 -0
  47. package/packages/gantt/src/gantt-body.ts +2 -5
  48. package/packages/gantt/src/gantt-chart.ts +66 -37
  49. package/packages/gantt/src/gantt-view.ts +37 -14
  50. package/packages/gantt/src/gantt.ts +89 -17
  51. package/packages/gantt/src/static.ts +21 -0
  52. package/packages/gantt/src/util.ts +12 -0
  53. package/packages/ui/index.ts +5 -12
  54. package/packages/ui/src/depend.ts +14 -0
  55. package/styles/components/gantt-module/gantt-chart.scss +3 -2
  56. package/styles/components/gantt.scss +0 -1
  57. package/styles/theme/base.scss +2 -0
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _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}}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var r;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(r="Object"===(r={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r<t;r++)a[r]=e[r];return a}var renderEmptyElement=_core.VxeUI.renderEmptyElement,sourceType="gantt",viewType="chart",_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",inject:{$xeGantt:{default:null},$xeGanttView:{default:null}},props:{},data:function(){return{}},computed:Object.assign({},{}),methods:{renderTaskBar:function(e,t,r,a,n,o,i){var l=this.$xeGantt,s=t.treeConfig,u=t.resizeHeightFlag,c=t.fullAllDataRowIdData,d=t.computeCellOpts,p=t.computeRowOpts,t=t.computeDefaultRowHeight,f=l.$scopedSlots,f=f.taskBar||f["task-bar"],m=l.computeTitleField,h=l.computeProgressField,y=l.computeTaskBarOpts,g=l.computeScaleUnit,v={$gantt:l,row:r,scaleType:g},w=y.showProgress,x=y.showContent,_=y.contentMethod,b=y.barStyle,T=y.drag,y=y.showTooltip,k=_xeUtils.default.isFunction(b),b=(b?k?b(v):b:{})||{},E=b.round,c=c[a]||{},u=0<(u?c.resizeHeight:0),c=(0,_util.getCellRestHeight)(c,d,p,t),d=(0,_utils.getStringValue)(_xeUtils.default.get(r,m)),p=w?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(r,h)))):0,t={},m={width:"".concat(p||0,"%")},A=(k&&(h=b.bgColor,p=b.completedBgColor,h&&(t.backgroundColor=h),p)&&(m.backgroundColor=p),_&&(d=(0,_utils.getStringValue)(_({row:r,title:d,scaleType:g}))),{$gantt:l,source:sourceType,type:viewType,scaleType:g,row:r,$rowIndex:o,rowIndex:n,_rowIndex:i}),k={click:function(e){l.handleTaskBarClickEvent(e,v)},dblclick:function(e){l.handleTaskBarDblclickEvent(e,v)},mousedown:function(e){l.handleTaskBarMousedownEvent&&l.handleTaskBarMousedownEvent(e,v)}};return y&&(k.mouseover=function(e){l.triggerTaskBarTooltipEvent(e,Object.assign({$event:e},A))},k.mouseleave=function(e){l.handleTaskBarTooltipLeaveEvent(e,Object.assign({$event:e},A))}),e("div",{key:s?a:o,attrs:{rowid:a},class:["vxe-gantt-view--chart-row",{"is--round":E,"is--drag":T,"col--rs-height":u}],style:{height:"".concat(c,"px")},on:{contextmenu:function(e){l.handleTaskBarContextmenuEvent(e,A)}}},[e("div",{class:f?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar",style:t,attrs:{rowid:a},on:k},f?l.callSlot(f,v,e):[w?e("div",{class:"vxe-gantt-view--chart-progress",style:m}):renderEmptyElement(l),x?e("div",{class:"vxe-gantt-view--chart-content"},d):renderEmptyElement(l)])])},renderRows:function(i,l,e){var s=this,t=s.$xeGanttView.reactData,u=l.treeConfig,c=l.treeExpandedFlag,d=l.fullAllDataRowIdData,p=l.treeExpandedMaps,r=l.computeTreeOpts,f=r.transform,m=r.children||r.childrenField,h=t.scrollYLoad,y=[];return e.forEach(function(e,t){var r=l?l.getRowid(e):"",a=d[r]||{},n=t,o=-1,a=(a&&(n=a.index,o=a._index),y.push(s.renderTaskBar(i,l,e,r,n,t,o)),!1),n=[];!u||h||f||(n=e[m],a=!!c&&n&&0<n.length&&!!p[r]),a&&y.push.apply(y,_toConsumableArray(s.renderRows(i,l,n)))}),y},renderVN:function(e){var t=this.$xeGanttView,r=t.reactData,t=t.internalData.xeTable,r=r.tableData;return e("div",{ref:"refElem",class:"vxe-gantt-view--chart-wrapper"},t?this.renderRows(e,t,r):[])}},mounted:function(){this.$xeGanttView.internalData.elemStore["".concat("main-chart-","wrapper")]=this.$refs.refElem},destroyed:function(){this.$xeGanttView.internalData.elemStore["".concat("main-chart-","wrapper")]=null},render:function(e){return this.renderVN(e)}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _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}}function _toConsumableArray(e){return _arrayWithoutHoles(e)||_iterableToArray(e)||_unsupportedIterableToArray(e)||_nonIterableSpread()}function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var r;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(r="Object"===(r={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:r)||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}function _iterableToArray(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r<t;r++)a[r]=e[r];return a}var renderEmptyElement=_core.VxeUI.renderEmptyElement,sourceType="gantt",viewType="chart",_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewChart",inject:{$xeGantt:{default:null},$xeGanttView:{default:null}},props:{},data:function(){return{}},computed:Object.assign({},{}),methods:{renderTaskBar:function(e,t,r,a,n,o,i){var l=this.$xeGantt,s=t.treeConfig,c=t.resizeHeightFlag,u=t.fullAllDataRowIdData,d=t.computeCellOpts,p=t.computeRowOpts,t=t.computeDefaultRowHeight,m=l.$scopedSlots,m=m.taskBar||m["task-bar"],f=l.computeTitleField,v=l.computeProgressField,h=l.computeTaskBarOpts,y=l.computeScaleUnit,w={$gantt:l,row:r,scaleType:y},g=h.showProgress,x=h.showContent,T=h.contentMethod,k=h.barStyle,_=h.move,h=h.showTooltip,b=_xeUtils.default.isFunction(k),k=(k?b?k(w):k:{})||{},E=k.round,u=u[a]||{},c=c?(0,_util.getCellRestHeight)(u,d,p,t):0,u=(0,_utils.getStringValue)(_xeUtils.default.get(r,f)),d=g?Math.min(100,Math.max(0,_xeUtils.default.toNumber(_xeUtils.default.get(r,v)))):0,p={},t={width:"".concat(d||0,"%")},A=(b&&(f=k.bgColor,v=k.completedBgColor,f&&(p.backgroundColor=f),v)&&(t.backgroundColor=v),T&&(u=(0,_utils.getStringValue)(T({row:r,title:u,scaleType:y}))),{$gantt:l,source:sourceType,type:viewType,scaleType:y,row:r,$rowIndex:o,rowIndex:n,_rowIndex:i}),d={click:function(e){l.handleTaskBarClickEvent(e,w)},dblclick:function(e){l.handleTaskBarDblclickEvent(e,w)},mousedown:function(e){l.handleTaskBarMousedownEvent&&l.handleTaskBarMousedownEvent(e,w)}};return h&&(d.mouseover=function(e){l.triggerTaskBarTooltipEvent(e,Object.assign({$event:e},A))},d.mouseleave=function(e){l.handleTaskBarTooltipLeaveEvent(e,Object.assign({$event:e},A))}),e("div",{key:s?a:o,attrs:{rowid:a},class:["vxe-gantt-view--chart-row",{"is--round":E,"is--move":_}],style:{height:"".concat(c,"px")},on:{contextmenu:function(e){l.handleTaskBarContextmenuEvent(e,A)}}},[e("div",{class:m?"vxe-gantt-view--chart-custom-bar":"vxe-gantt-view--chart-bar",style:p,attrs:{rowid:a},on:d},l.renderGanttTaskBarContent?l.renderGanttTaskBarContent(e,A,{title:u,vbStyle:p,vpStyle:t}):m?[e("div",{key:"cbc",class:"vxe-gantt-view--chart-custom-bar-content"},l.callSlot(m,w,e))]:[g?e("div",{key:"vcp",class:"vxe-gantt-view--chart-progress",style:t}):renderEmptyElement(l),x?e("div",{key:"vcc",class:"vxe-gantt-view--chart-content"},u):renderEmptyElement(l)])])},renderTaskRows:function(i,l,e){var s=this,t=s.$xeGanttView.reactData,c=l.treeConfig,u=l.treeExpandedFlag,d=l.fullAllDataRowIdData,p=l.treeExpandedMaps,r=l.computeTreeOpts,m=r.transform,f=r.children||r.childrenField,v=t.scrollYLoad,h=[];return e.forEach(function(e,t){var r=l.getRowid(e),a=d[r]||{},n=t,o=-1,a=(a&&(n=a.index,o=a._index),h.push(s.renderTaskBar(i,l,e,r,n,t,o)),!1),n=[];!c||v||m||(n=e[f],a=!!u&&n&&0<n.length&&!!p[r]),a&&h.push.apply(h,_toConsumableArray(s.renderTaskRows(i,l,n)))}),h},renderVN:function(e){var t=this.$xeGantt,r=this.$xeGanttView,a=r.internalData.xeTable,r=r.reactData.tableData,n=t.computeTaskLinkOpts,o=n.showArrow;return e("div",{ref:"refElem",class:"vxe-gantt-view--chart-wrapper"},[t.renderGanttTaskLines?e("div",{ref:"reflineWrapperElem",class:["vxe-gantt-view--chart-line-wrapper",{"show-arrow":o}]},a&&(0,_utils.isEnableConf)(n)?t.renderGanttTaskLines(e):[]):renderEmptyElement(t),e("div",{ref:"refTaskWrapperElem",class:"vxe-gantt-view--chart-task-wrapper"},a?this.renderTaskRows(e,a,r):[])])}},mounted:function(){var e=this.$xeGanttView.internalData.elemStore,t="main-chart-";e["".concat(t,"task-wrapper")]=this.$refs.refTaskWrapperElem,e["".concat(t,"line-wrapper")]=this.$refs.reflineWrapperElem},destroyed:function(){var e=this.$xeGanttView.internalData.elemStore,t="main-chart-";e["".concat(t,"task-wrapper")]=null,e["".concat(t,"line-wrapper")]=null},render:function(e){return this.renderVN(e)}});
@@ -659,23 +659,30 @@ function calcScrollbar($xeGanttView) {
659
659
  reactData.overflowX = overflowX;
660
660
  }
661
661
  }
662
- function updateChart($xeGanttView) {
662
+ function updateTaskChart($xeGanttView) {
663
+ var $xeGantt = $xeGanttView.$xeGantt;
663
664
  var reactData = $xeGanttView.reactData;
664
665
  var internalData = $xeGanttView.internalData;
666
+ var ganttInternalData = $xeGantt.internalData;
667
+ var $xeTable = internalData.xeTable;
668
+ var dragBarRow = ganttInternalData.dragBarRow;
665
669
  var viewCellWidth = reactData.viewCellWidth;
666
670
  var elemStore = internalData.elemStore,
667
671
  chartMaps = internalData.chartMaps;
668
- var chartWrapper = (0, _util.getRefElem)(elemStore['main-chart-wrapper']);
669
- if (chartWrapper) {
672
+ var chartWrapper = (0, _util.getRefElem)(elemStore['main-chart-task-wrapper']);
673
+ if (chartWrapper && $xeTable) {
670
674
  _xeUtils.default.arrayEach(chartWrapper.children, function (rowEl) {
671
675
  var barEl = rowEl.children[0];
672
- if (!barEl || (0, _dom.hasClass)(barEl, 'is--drag')) {
676
+ if (!barEl) {
673
677
  return;
674
678
  }
675
679
  var rowid = rowEl.getAttribute('rowid');
676
- var rowRest = rowid ? chartMaps[rowid] : null;
677
- barEl.style.left = "".concat(rowRest ? viewCellWidth * rowRest.oLeftSize : 0, "px");
678
- barEl.style.width = "".concat(rowRest ? viewCellWidth * rowRest.oWidthSize : 0, "px");
680
+ if (dragBarRow && $xeTable.getRowid(dragBarRow) === rowid) {
681
+ return;
682
+ }
683
+ var chartRest = rowid ? chartMaps[rowid] : null;
684
+ barEl.style.left = "".concat((0, _util.getTaskBarLeft)(chartRest, viewCellWidth), "px");
685
+ barEl.style.width = "".concat((0, _util.getTaskBarWidth)(chartRest, viewCellWidth), "px");
679
686
  });
680
687
  }
681
688
  return $xeGanttView.$nextTick();
@@ -695,6 +702,9 @@ function updateStyle($xeGanttView) {
695
702
  if (!el) {
696
703
  return;
697
704
  }
705
+ if (!$xeGantt) {
706
+ return;
707
+ }
698
708
  var scrollbarOpts = $xeGantt.computeScrollbarOpts;
699
709
  var scrollbarXToTop = $xeGantt.computeScrollbarXToTop;
700
710
  var scrollbarYToLeft = $xeGantt.computeScrollbarYToLeft;
@@ -794,18 +804,21 @@ function updateStyle($xeGanttView) {
794
804
  bodyTableElem.style.width = "".concat(vmTableWidth, "px");
795
805
  }
796
806
  reactData.scrollXWidth = viewTableWidth;
797
- return updateChart($xeGanttView);
807
+ return Promise.all([updateTaskChart($xeGanttView), $xeGantt.handleUpdateTaskLink ? $xeGantt.handleUpdateTaskLink($xeGanttView) : null]);
798
808
  }
799
809
  function handleRecalculateStyle($xeGanttView) {
800
810
  var internalData = $xeGanttView.internalData;
811
+ var $xeGantt = $xeGanttView.$xeGantt;
801
812
  var el = $xeGanttView.$refs.refElem;
802
813
  internalData.rceRunTime = Date.now();
803
814
  if (!el || !el.clientWidth) {
804
815
  return $xeGanttView.$nextTick();
805
816
  }
817
+ if (!$xeGantt) {
818
+ return $xeGanttView.$nextTick();
819
+ }
806
820
  calcScrollbar($xeGanttView);
807
821
  updateStyle($xeGanttView);
808
- updateChart($xeGanttView);
809
822
  return computeScrollLoad($xeGanttView);
810
823
  }
811
824
  function _handleLazyRecalculate($xeGanttView) {
@@ -1010,7 +1023,7 @@ function updateScrollYSpace($xeGanttView) {
1010
1023
  if (!(scrollYLoad && overflowY)) {
1011
1024
  scrollYTop = 0;
1012
1025
  }
1013
- var bodyChartWrapperElem = (0, _util.getRefElem)(elemStore['main-chart-wrapper']);
1026
+ var bodyChartWrapperElem = (0, _util.getRefElem)(elemStore['main-chart-task-wrapper']);
1014
1027
  if (bodyTableElem) {
1015
1028
  bodyTableElem.style.transform = "translate(".concat(reactData.scrollXLeft || 0, "px, ").concat(scrollYTop, "px)");
1016
1029
  }
@@ -1025,6 +1038,11 @@ function updateScrollYSpace($xeGanttView) {
1025
1038
  if (scrollYSpaceEl) {
1026
1039
  scrollYSpaceEl.style.height = ySpaceHeight ? "".concat(ySpaceHeight, "px") : '';
1027
1040
  }
1041
+ var lineWrapper = (0, _util.getRefElem)(elemStore['main-chart-line-wrapper']);
1042
+ var svgElem = lineWrapper ? lineWrapper.firstElementChild : null;
1043
+ if (svgElem) {
1044
+ svgElem.style.height = ySpaceHeight ? "".concat(ySpaceHeight, "px") : '';
1045
+ }
1028
1046
  reactData.scrollYTop = scrollYTop;
1029
1047
  reactData.scrollYHeight = scrollYHeight;
1030
1048
  reactData.isScrollYBig = isScrollYBig;
@@ -1210,7 +1228,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1210
1228
  tableData: [],
1211
1229
  tableColumn: [],
1212
1230
  headerGroups: [],
1213
- viewCellWidth: 20
1231
+ viewCellWidth: 40
1214
1232
  };
1215
1233
  var internalData = createInternalData();
1216
1234
  return {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_dom=require("../../ui/src/dom"),_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}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var a;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(a="Object"===(a={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:a)||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,l=Array(t);a<t;a++)l[a]=e[a];return l}function _iterableToArrayLimit(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l,r,i,o,n=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(l=i.call(a)).done)&&(n.push(l.value),n.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw r}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}var 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}}var maxYHeight=5e6;function parseStringDate(e,t){e=e.$xeGantt.computeTaskOpts.dateFormat;return _xeUtils.default.toStringDate(t,e||null)}function updateTodayData(e){var t=e.$xeGantt,e=e.internalData,t=t.reactData.taskScaleList.find(function(e){return"week"===e.type}),a=new Date,l=_slicedToArray(_xeUtils.default.toDateString(a,"yyyy-M-d-H-m-s").split("-"),6),r=l[0],i=l[1],o=l[2],n=l[3],c=l[4],l=l[5],s=a.getDay()+1,d=Math.ceil((a.getMonth()+1)/3),a=_xeUtils.default.getYearWeek(a,t?t.startDay:void 0);e.todayDateMaps={year:r,quarter:"".concat(r,"_q").concat(d),month:"".concat(r,"_").concat(i),week:"".concat(r,"_W").concat(a),day:"".concat(r,"_").concat(i,"_").concat(o,"_E").concat(s),date:"".concat(r,"_").concat(i,"_").concat(o),hour:"".concat(r,"_").concat(i,"_").concat(o,"_").concat(n),minute:"".concat(r,"_").concat(i,"_").concat(o,"_").concat(n,"_").concat(c),second:"".concat(r,"_").concat(i,"_").concat(o,"_").concat(n,"_").concat(c,"_").concat(l)}}function handleColumnHeader(e){var t=e.$xeGantt,a=t.reactData.taskScaleList,i=t.computeMinScale,l=t.computeWeekScale,r=e.computeScaleDateList,o=[],n=[];if(i&&t.computeScaleUnit&&r.length){for(var c={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},s={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}},d=function(e,t,a){var l,r;i.type!==e&&(t=t[e],l="".concat(t.field),(r=s[e][l])||(s[e][l]=r=t,c[e].push(r)),r)&&(r.children||(r.children=[]),r.children.push(a))},u=0;u<r.length;u++){var f=r[u],h=_slicedToArray(_xeUtils.default.toDateString(f,"yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss").split("-"),12),m=h[0],y=h[1],g=h[2],S=h[3],p=h[4],v=h[5],x=h[6],_=h[7],D=h[8],T=h[9],b=h[10],h=h[11],w=f.getDay(),M=w+1,E=Math.ceil((f.getMonth()+1)/3),W="".concat(_xeUtils.default.getYearWeek(f,l?l.startDay:void 0)),f={date:f,yy:m,yyyy:y,M:g,MM:S,d:p,dd:v,H:x,HH:_,m:D,mm:T,s:b,ss:h,q:E,W:W,WW:_xeUtils.default.padStart(W,2,"0"),E:M,e:w},m={year:{field:y,title:y,dateObj:f},quarter:{field:"".concat(y,"_q").concat(E),title:"".concat(E),dateObj:f},month:{field:"".concat(y,"_").concat(S),title:S,dateObj:f},week:{field:"".concat(y,"_W").concat(W),title:"".concat(W),dateObj:f},day:{field:"".concat(y,"_").concat(S,"_").concat(v,"_E").concat(M),title:"".concat(M),dateObj:f},date:{field:"".concat(y,"_").concat(S,"_").concat(v),title:v,dateObj:f},hour:{field:"".concat(y,"_").concat(S,"_").concat(v,"_").concat(_),title:_,dateObj:f},minute:{field:"".concat(y,"_").concat(S,"_").concat(v,"_").concat(_,"_").concat(T),title:T,dateObj:f},second:{field:"".concat(y,"_").concat(S,"_").concat(v,"_").concat(_,"_").concat(T,"_").concat(h),title:h,dateObj:f}},g=m[i.type];i.level<19&&d("year",m,g),i.level<17&&d("quarter",m,g),i.level<15&&d("month",m,g),i.level<13&&d("week",m,g),i.level<11&&d("day",m,g),i.level<9&&d("date",m,g),i.level<7&&d("hour",m,g),i.level<5&&d("minute",m,g),i.level<3&&d("second",m,g),o.push(g)}a.forEach(function(e){var t;e.type===i.type?n.push({scaleItem:e,columns:o}):((t=c[e.type]||[])&&t.forEach(function(e){e.childCount=e.children?e.children.length:0,e.children=void 0}),n.push({scaleItem:e,columns:t}))})}return{fullCols:o,groupCols:n}}function createChartRender(n,e){var t=n.$xeGantt,r=n.reactData.minViewDate,a=t.computeMinScale,c=t.computeWeekScale;switch(t.computeScaleUnit){case"year":var s={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy");s[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy"),l=_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()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+l+1}};case"quarter":var d={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-q");d[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-q"),l=_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()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(d[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(d[r]||0)-t+l+1}};case"month":var u={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM");u[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-MM"),l=_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()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(u[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(u[r]||0)-t+l+1}};case"week":var f={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-W",{firstDay:c?c.startDay:void 0});f[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-W",{firstDay:c?c.startDay:void 0}),l=_xeUtils.default.getWhatWeek(e,0,c?c.startDay:void 0,c?c.startDay:void 0),r=_xeUtils.default.toDateString(t,"yyyy-W",{firstDay:c?c.startDay:void 0}),i=_xeUtils.default.getWhatWeek(t,0,c?c.startDay:void 0,c?c.startDay:void 0),o=Math.floor((_xeUtils.default.getWhatWeek(t,1,c?c.startDay:void 0,c?c.startDay:void 0).getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(f[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(f[r]||0)-t+l+1}};case"day":case"date":var h={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd");h[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd"),l=_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()-l.getTime())/minuteMs/o,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(h[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(h[r]||0)-t+l+1}};case"hour":var m={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH");m[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH"),l=_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()-l.getTime())/minuteMs/o,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(m[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(m[r]||0)-t+l+1}};case"minute":var y={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH:mm");y[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH:mm"),l=_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()-l.getTime())/minuteMs/o,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(y[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(y[r]||0)-t+l+1}};case"second":var i=(0,_util.getStandardGapTime)(a.type);return function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=0,l=0;return r&&(a=(e.getTime()-r.getTime())/i,l=(t.getTime()-e.getTime())/i+1),{offsetLeftSize:a,offsetWidthSize:l}}}return function(){return{offsetLeftSize:0,offsetWidthSize:0}}}function handleParseColumn(e){var r,i,o,t,a,l,n,c,s,d,u,f=e.$xeGantt,h=e.reactData,m=e.internalData,y=f.treeConfig,g=h.minViewDate,S=h.maxViewDate,p=handleColumnHeader(e),v=p.fullCols,p=p.groupCols;g&&S&&(r=m.xeTable)&&(i=f.computeStartField,o=f.computeEndField,g=r.isRowGroupStatus,S=r.afterFullData,f=r.afterTreeFullData,t=r.afterGroupFullData,a=r.computeAggregateOpts,n=(l=r.computeTreeOpts).transform,c=l.children||l.childrenField,s={},d=createChartRender(e,v),u=function(e){var t=r.getRowid(e),a=_xeUtils.default.get(e,i),l=_xeUtils.default.get(e,o);a&&l&&(l=(a=d(a,l)).offsetLeftSize,s[t]={row:e,rowid:t,oLeftSize:l,oWidthSize:a.offsetWidthSize})},g?(g=a.mapChildrenField)&&_xeUtils.default.eachTree(t,u,{children:g}):y?_xeUtils.default.eachTree(f,u,{children:n?l.mapChildrenField:c}):S.forEach(u),m.chartMaps=s),m.visibleColumn=v,h.headerGroups=p,updateTodayData(e),updateScrollXStatus(e),handleTableColumn(e)}function handleUpdateData(a){var l,r,e,t,i,o,n,c,s,d=a.$xeGantt,u=a.reactData,f=a.internalData,h=d.treeConfig,m=f.scrollXStore,y=f.xeTable,g=null,S=null;y&&(l=d.computeStartField,r=d.computeEndField,d=y.isRowGroupStatus,e=y.afterFullData,t=y.afterTreeFullData,i=y.computeAggregateOpts,n=(o=y.computeTreeOpts).transform,c=o.children||o.childrenField,s=function(e){var t=_xeUtils.default.get(e,l),e=_xeUtils.default.get(e,r);t&&e&&(t=parseStringDate(a,t),(!g||g.getTime()>t.getTime())&&(g=t),t=parseStringDate(a,e),!S||S.getTime()<t.getTime())&&(S=t)},d?(d=i.mapChildrenField)&&_xeUtils.default.eachTree(y.afterGroupFullData,s,{children:d}):h?_xeUtils.default.eachTree(t,s,{children:n?o.mapChildrenField:c}):e.forEach(s)),m.startIndex=0,m.endIndex=Math.max(1,m.visibleSize),u.minViewDate=g,u.maxViewDate=S,f.startMaps={},f.endMaps={},handleParseColumn(a)}function calcScrollbar(e){var t=e.$xeGantt,a=e.reactData,l=a.scrollXWidth,r=a.scrollYHeight,i=e.internalData.elemStore,t=t.computeScrollbarOpts,i=(0,_util.getRefElem)(i["main-body-wrapper"]),o=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;i&&(r=r>i.clientHeight,e&&(a.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),a.overflowY=r,e=l>i.clientWidth,o&&(a.scrollbarHeight=t.height||o.offsetHeight-o.clientHeight||14),a.overflowX=e)}function updateChart(e){var t=e.reactData,a=e.internalData,l=t.viewCellWidth,t=a.elemStore,r=a.chartMaps,a=(0,_util.getRefElem)(t["main-chart-wrapper"]);return a&&_xeUtils.default.arrayEach(a.children,function(e){var t=e.children[0];t&&!(0,_dom.hasClass)(t,"is--drag")&&(e=(e=e.getAttribute("rowid"))?r[e]:null,t.style.left="".concat(e?l*e.oLeftSize:0,"px"),t.style.width="".concat(e?l*e.oWidthSize:0,"px"))}),e.$nextTick()}function updateStyle(e){var t,a,l,r,i,o,n,c,s,d=e.$xeGantt,u=e.reactData,f=e.internalData,h=u.scrollbarWidth,m=u.headerGroups,y=u.tableColumn,g=f.elemStore,S=f.visibleColumn,f=f.xeTable,p=e.$refs.refElem;if(p)return r=d.computeScrollbarOpts,n=d.computeScrollbarXToTop,o=e.$refs.refScrollXLeftCornerElem,i=e.$refs.refScrollXRightCornerElem,s=e.$refs.refScrollXVirtualElem,h=h,c=u.scrollbarHeight,l=a=t=0,f&&(t=f.tBodyHeight,a=f.tHeaderHeight,l=f.tFooterHeight),f="visible",(d.computeScrollbarYToLeft||r.y&&!1===r.y.visible)&&(h=0,f="hidden"),(d=(0,_util.getRefElem)(g["main-header-scroll"]))&&(d.style.height="".concat(a,"px"),d.style.setProperty("--vxe-ui-gantt-view-cell-height","".concat(a/m.length,"px"))),(r=(0,_util.getRefElem)(g["main-body-scroll"]))&&(r.style.height="".concat(t,"px")),(d=(0,_util.getRefElem)(g["main-footer-scroll"]))&&(d.style.height="".concat(l,"px")),s&&(s.style.height="".concat(c,"px"),s.style.visibility="visible"),(m=e.$refs.refScrollXWrapperElem)&&(m.style.left=n?"".concat(h,"px"):"",m.style.width="".concat(p.clientWidth-h,"px")),o&&(o.style.width=n?"".concat(h,"px"):"",o.style.display=n&&c?"block":""),i&&(i.style.width=n?"":"".concat(h,"px"),i.style.display=!n&&c?"block":""),(d=e.$refs.refScrollYVirtualElem)&&(d.style.width="".concat(h,"px"),d.style.height="".concat(t+a+l,"px"),d.style.visibility=f),(s=e.$refs.refScrollYTopCornerElem)&&(s.style.height="".concat(a,"px"),s.style.display=a?"block":""),(m=e.$refs.refScrollYWrapperElem)&&(m.style.height="".concat(t,"px"),m.style.top="".concat(a,"px")),(p=e.$refs.refScrollYBottomCornerElem)&&(p.style.height="".concat(l,"px"),p.style.top="".concat(a+t,"px"),p.style.display=l?"block":""),o=40,n=(o=(i=e.$refs.refColInfoElem)?i.clientWidth||40:o)*S.length,r&&0<(h=(c=r.clientWidth)-n)&&(o+=h/S.length,n=c),u.viewCellWidth=o,d=(0,_util.getRefElem)(g["main-header-table"]),f=(0,_util.getRefElem)(g["main-body-table"]),s=o*y.length,d&&(d.style.width="".concat(n,"px")),f&&(f.style.width="".concat(s,"px")),u.scrollXWidth=n,updateChart(e)}function handleRecalculateStyle(e){var t=e.internalData,a=e.$refs.refElem;return t.rceRunTime=Date.now(),a&&a.clientWidth?(calcScrollbar(e),updateStyle(e),updateChart(e),computeScrollLoad(e)):e.$nextTick()}function _handleLazyRecalculate(i){var o=i.internalData;return new Promise(function(e){var t=o.rceTimeout,a=o.rceRunTime,l=o.xeTable,r=30;l&&(r=l.computeResizeOpts.refreshDelay||r),!t||(clearTimeout(t),a&&a+(r-5)<Date.now())?e(handleRecalculateStyle(i)):i.$nextTick(function(){e()}),o.rceTimeout=setTimeout(function(){o.rceTimeout=void 0,handleRecalculateStyle(i)},r)})}function computeScrollLoad(l){var r=l.reactData,i=l.internalData;return l.$nextTick().then(function(){var e,t=r.scrollXLoad,a=i.scrollXStore;t?(e=(t=handleVirtualXVisible(l)).toVisibleIndex,t=t.visibleSize,a.preloadSize=1,a.offsetSize=2,a.visibleSize=t,a.endIndex=Math.max(a.startIndex+a.visibleSize+2,a.endIndex),a.visibleStartIndex=Math.max(a.startIndex,e),a.visibleEndIndex=Math.min(a.endIndex,e+t),updateScrollXData(l).then(function(){loadScrollXData(l)})):updateScrollXSpace(l)})}function handleVirtualXVisible(e){var t,a=e.reactData.viewCellWidth,e=e.internalData.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]);return e?(t=e.clientWidth,e=e.scrollLeft,e=Math.floor(e/a)-1,t=Math.ceil(t/a)+1,{toVisibleIndex:Math.max(0,e),visibleSize:Math.max(1,t)}):{toVisibleIndex:0,visibleSize:6}}function loadScrollXData(e){var t=e.reactData.isScrollXBig,a=e.internalData.scrollXStore,l=a.preloadSize,r=a.startIndex,i=a.endIndex,o=a.offsetSize,n=handleVirtualXVisible(e),c=n.toVisibleIndex,n=n.visibleSize,t={startIndex:Math.max(0,t?c-1:c-1-o-l),endIndex:t?c+n:c+n+o+l},o=(a.visibleStartIndex=c-1,a.visibleEndIndex=c+n+1,t.startIndex),l=t.endIndex;!(c<=r||i-n-1<=c)||r===o&&i===l||(a.startIndex=o,a.endIndex=l,updateScrollXData(e))}function updateScrollXData(e){return handleTableColumn(e),updateScrollXSpace(e),e.$nextTick()}function updateScrollXStatus(e){return e.reactData.scrollXLoad=!0}function handleTableColumn(e){var t=e.reactData,e=e.internalData,a=t.scrollXLoad,l=e.visibleColumn,e=e.scrollXStore,a=a?l.slice(e.startIndex,e.endIndex):l.slice(0);t.tableColumn=a}function updateScrollXSpace(e){var t=e.reactData,a=e.internalData,l=t.scrollXLoad,r=t.scrollXWidth,i=t.viewCellWidth,o=a.elemStore,a=a.scrollXStore,n=(0,_util.getRefElem)(o["main-body-table"]),a=a.startIndex,c=0,a=(l&&(c=Math.max(0,a*i)),n&&(n.style.transform="translate(".concat(c,"px, ").concat(t.scrollYTop||0,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(o["main-".concat(e,"-xSpace")]);e&&(e.style.width=l?"".concat(r,"px"):"")}),e.$refs.refScrollXSpaceElem);return a&&(a.style.width="".concat(r,"px")),calcScrollbar(e),e.$nextTick()}function triggerScrollXEvent(e){loadScrollXData(e)}function updateScrollYSpace(e){var t=e.reactData,a=e.internalData,l=t.scrollYLoad,r=t.overflowY,i=a.elemStore,a=a.xeTable,o=(0,_util.getRefElem)(i["main-body-scroll"]),n=(0,_util.getRefElem)(i["main-body-table"]),c=0,s=0,d=!1,a=(a&&(c=a.scrollYTop,s=a.scrollYHeight,d=a.isScrollYBig),s),u=c,f=0,o=(o&&(f=o.clientHeight),d&&(u=o&&n&&o.scrollTop+f>=maxYHeight?maxYHeight-n.clientHeight:c/(s-f)*(maxYHeight-f),a=maxYHeight),l&&r||(u=0),(0,_util.getRefElem)(i["main-chart-wrapper"])),c=(n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),o&&(o.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),(0,_util.getRefElem)(i["main-body-ySpace"])),f=(c&&(c.style.height=a?"".concat(a,"px"):""),e.$refs.refScrollYSpaceElem);return f&&(f.style.height=a?"".concat(a,"px"):""),t.scrollYTop=u,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,a){var l=e.reactData,r=e.internalData,e=r.lcsTimeout;l.lazScrollLoading=!0,e&&clearTimeout(e),r.lcsTimeout=setTimeout(function(){r.lcsRunTime=Date.now(),r.lcsTimeout=void 0,r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,l.lazScrollLoading=!1},200)}function handleScrollData(e,t,a,l,r){var i=e.reactData,o=e.internalData;a&&(o.lastScrollLeft=r),t&&(o.lastScrollTop=l),i.lastScrollTime=Date.now(),checkLastSyncScroll(e,a,t)}function handleScrollEvent(e,t,a,l,r,i){var o,n,c,s,d,u,f,h,m,y,g,S,p=e.$xeGantt,v=e.internalData,x=v.xeTable,_=e.$refs.refScrollXHandleElem,D=e.$refs.refScrollYHandleElem;_&&D&&x&&(o=D.clientHeight,n=_.clientWidth,D=D.scrollHeight,_=_.scrollWidth,d="",m=h=f=u=s=y=c=S=!1,l&&(g=x.computeScrollXThreshold,(y=i<=0)||(s=_-1<=i+n),v.lastScrollLeft<i?(d="right",_-g<=i+n&&(m=!0)):(d="left",i<=g&&(h=!0))),a&&(g=x.computeScrollYThreshold,(S=r<=0)||(c=D-1<=r+o),v.lastScrollTop<r?(d="bottom",D-g<=r+o&&(f=!0)):(d="top",r<=g&&(u=!0))),handleScrollData(e,a,l,r,i),x={source:sourceType,scrollTop:r,scrollLeft:i,bodyHeight:o,bodyWidth:n,scrollHeight:D,scrollWidth:_,isX:l,isY:a,isTop:S,isBottom:c,isLeft:y,isRight:s,direction:d},(f||u||m||h)&&p.dispatchEvent("scroll-boundary",x,t),p.dispatchEvent("scroll",x,t))}function syncTableScrollTop(e,t){var e=e.internalData.xeTable;e&&(e=e.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]))&&(e.scrollTop=t)}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",inject:{$xeGantt:{default:null}},provide:function(){return{$xeGanttView:this}},props:{},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{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:20},internalData:createInternalData()}},computed:Object.assign(Object.assign({},{}),{computeScaleDateList:function(){var e=this.$xeGantt,t=this.reactData,a=t.minViewDate,l=t.maxViewDate,t=e.computeTaskViewOpts,r=e.computeMinScale,e=t.gridding,i=[];if(a&&l){var o=-_xeUtils.default.toNumber(e&&e.leftSpacing||0),n=_xeUtils.default.toNumber(e&&e.rightSpacing||0);switch(r.type){case"year":for(var c=_xeUtils.default.getWhatYear(a,o,"first"),s=_xeUtils.default.getWhatYear(l,n,"first");c<=s;){var d=c;i.push(d),c=_xeUtils.default.getWhatYear(c,1)}break;case"quarter":for(var u=_xeUtils.default.getWhatQuarter(a,o,"first"),f=_xeUtils.default.getWhatQuarter(l,n,"first");u<=f;){var h=u;i.push(h),u=_xeUtils.default.getWhatQuarter(u,1)}break;case"month":for(var m=_xeUtils.default.getWhatMonth(a,o,"first"),y=_xeUtils.default.getWhatMonth(l,n,"first");m<=y;){var g=m;i.push(g),m=_xeUtils.default.getWhatMonth(m,1)}break;case"week":for(var S=_xeUtils.default.getWhatWeek(a,o,r.startDay,r.startDay),p=_xeUtils.default.getWhatWeek(l,n,r.startDay,r.startDay);S<=p;){var v=S;i.push(v),S=_xeUtils.default.getWhatWeek(S,1)}break;case"day":case"date":for(var x=_xeUtils.default.getWhatDay(a,o,"first"),_=_xeUtils.default.getWhatDay(l,n,"first");x<=_;){var D=x;i.push(D),x=_xeUtils.default.getWhatDay(x,1)}break;case"hour":case"minute":case"second":for(var T=(0,_util.getStandardGapTime)(r.type),b=a.getTime()+o*T,w=l.getTime()+n*T;b<=w;){var M=new Date(b);i.push(M),b+=T}}}return i}}),methods:{refreshData:function(){var t=this,a=t.internalData;return handleUpdateData(t),handleRecalculateStyle(t),t.$nextTick().then(function(){var e=a.xeTable;if(handleRecalculateStyle(t),e)return e.recalculate()})},updateViewData:function(){var e=this.reactData,t=this.internalData.xeTable;return t&&(t=t.tableData,e.tableData=t),this.$nextTick()},connectUpdate:function(e){var e=e.$table,t=this.internalData;return e&&(t.xeTable=e),this.$nextTick()},handleUpdateStyle:function(){return updateStyle(this)},handleLazyRecalculate:function(){return _handleLazyRecalculate(this)},handleUpdateCurrentRow:function(e){var t=this.internalData.xeTable,a=this.$refs.refElem;t&&a&&(e?(t.computeRowOpts.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(a.querySelectorAll('[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")}):_xeUtils.default.arrayEach(a.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,a=this.$refs.refElem;t&&a&&(e?_xeUtils.default.arrayEach(a.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(a.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,a,l,r=this.internalData,i=r.elemStore;r.inVirtualScroll||r.inBodyScroll||r.inFooterScroll||(t=e.currentTarget,i=(0,_util.getRefElem)(i["main-body-scroll"]),a=this.$refs.refScrollXHandleElem,i&&t&&(l=t.scrollLeft,r.inHeaderScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(i,l),handleScrollEvent(this,e,!1,!0,t.scrollTop,l)))},triggerBodyScrollEvent:function(e){var t,a,l,r,i,o=this,n=o.reactData,c=o.internalData,n=n.scrollXLoad,s=c.elemStore,d=c.lastScrollLeft,u=c.lastScrollTop;c.inVirtualScroll||c.inHeaderScroll||c.inFooterScroll||(t=e.currentTarget,s=(0,_util.getRefElem)(s["main-header-scroll"]),a=o.$refs.refScrollXHandleElem,l=o.$refs.refScrollYHandleElem,d=(r=t.scrollLeft)!==d,u=(i=t.scrollTop)!==u,c.inBodyScroll=!0,c.scrollRenderType="",u&&((0,_dom.setScrollTop)(l,i),syncTableScrollTop(o,i)),d&&(c.inBodyScroll=!0,(0,_dom.setScrollLeft)(a,r),(0,_dom.setScrollLeft)(s,r),n)&&triggerScrollXEvent(o),handleScrollEvent(o,e,u,d,t.scrollTop,r))},triggerVirtualScrollXEvent:function(e){var t,a,l,r=this.reactData,i=this.internalData,r=r.scrollXLoad,o=i.elemStore;i.inHeaderScroll||i.inBodyScroll||(t=e.currentTarget,a=(0,_util.getRefElem)(o["main-header-scroll"]),o=(0,_util.getRefElem)(o["main-body-scroll"]),t&&(l=t.scrollLeft,i.inVirtualScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(o,l),r&&triggerScrollXEvent(this),handleScrollEvent(this,e,!1,!0,t.scrollTop,l)))},triggerVirtualScrollYEvent:function(e){var t,a,l=this.internalData,r=l.elemStore;l.inHeaderScroll||l.inBodyScroll||(t=e.currentTarget,r=(0,_util.getRefElem)(r["main-body-scroll"]),t&&(a=t.scrollTop,l.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,a),syncTableScrollTop(this,a),handleScrollEvent(this,e,!0,!1,a,t.scrollLeft)))},handleUpdateSXSpace:function(){return updateScrollXSpace(this)},handleUpdateSYSpace:function(){return updateScrollYSpace(this)},handleUpdateSYStatus:function(e){this.reactData.scrollYLoad=e},handleGlobalResizeEvent:function(){_handleLazyRecalculate(this)},renderScrollX:function(e){return e("div",{key:"vsx",ref:"refScrollXVirtualElem",class:"vxe-gantt-view--scroll-x-virtual"},[e("div",{ref:"refScrollXLeftCornerElem",class:"vxe-gantt-view--scroll-x-left-corner"}),e("div",{ref:"refScrollXWrapperElem",class:"vxe-gantt-view--scroll-x-wrapper"},[e("div",{ref:"refScrollXHandleElem",class:"vxe-gantt-view--scroll-x-handle",on:{scroll:this.triggerVirtualScrollXEvent}},[e("div",{ref:"refScrollXSpaceElem",class:"vxe-gantt-view--scroll-x-space"})]),e("div",{class:"vxe-gantt-view--scroll-x-handle-appearance"})]),e("div",{ref:"refScrollXRightCornerElem",class:"vxe-gantt-view--scroll-x-right-corner"})])},renderScrollY:function(e){return e("div",{ref:"refScrollYVirtualElem",class:"vxe-gantt-view--scroll-y-virtual"},[e("div",{ref:"refScrollYTopCornerElem",class:"vxe-gantt-view--scroll-y-top-corner"}),e("div",{ref:"refScrollYWrapperElem",class:"vxe-gantt-view--scroll-y-wrapper"},[e("div",{ref:"refScrollYHandleElem",class:"vxe-gantt-view--scroll-y-handle",on:{scroll:this.triggerVirtualScrollYEvent}},[e("div",{ref:"refScrollYSpaceElem",class:"vxe-gantt-view--scroll-y-space"})]),e("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),e("div",{ref:"refScrollYBottomCornerElem",class:"vxe-gantt-view--scroll-y-bottom-corner"})])},renderViewport:function(e){return e("div",{class:"vxe-gantt-view--viewport-wrapper"},[e(_ganttHeader.default),e(_ganttBody.default),e(_ganttFooter.default)])},renderBody:function(e){var t=this;return e("div",{class:"vxe-gantt-view--layout-wrapper"},t.$xeGantt.computeScrollbarYToLeft?[t.renderScrollY(e),t.renderViewport(e)]:[t.renderViewport(e),t.renderScrollY(e)])},renderVN:function(e){var t=this,a=t.$xeGantt,l=t.reactData,r=l.overflowX;return e("div",{ref:"refElem",class:["vxe-gantt-view",{"is--scroll-y":l.overflowY,"is--scroll-x":r,"is--virtual-x":l.scrollXLoad,"is--virtual-y":l.scrollYLoad}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},a.computeScrollbarXToTop?[t.renderScrollX(e),t.renderBody(e)]:[t.renderBody(e),t.renderScrollX(e)]),e("div",{class:"vxe-gantt-view--render-vars"},[e("div",{ref:"refColInfoElem",class:"vxe-gantt-view--column-info"})])])}},watch:{"reactData.tableData":function(){handleUpdateData(this)}},mounted:function(){globalEvents.on(this,"resize",this.handleGlobalResizeEvent)},beforeDestroy:function(){var e=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createInternalData())},render:function(e){return this.renderVN(e)}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_dom=require("../../ui/src/dom"),_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}}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){var a;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(a="Object"===(a={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:a)||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,l=Array(t);a<t;a++)l[a]=e[a];return l}function _iterableToArrayLimit(e,t){var a=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=a){var l,r,i,o,n=[],c=!0,s=!1;try{if(i=(a=a.call(e)).next,0===t){if(Object(a)!==a)return;c=!1}else for(;!(c=(l=i.call(a)).done)&&(n.push(l.value),n.length!==t);c=!0);}catch(e){s=!0,r=e}finally{try{if(!c&&null!=a.return&&(o=a.return(),Object(o)!==o))return}finally{if(s)throw r}}return n}}function _arrayWithHoles(e){if(Array.isArray(e))return e}var 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}}var maxYHeight=5e6;function parseStringDate(e,t){e=e.$xeGantt.computeTaskOpts.dateFormat;return _xeUtils.default.toStringDate(t,e||null)}function updateTodayData(e){var t=e.$xeGantt,e=e.internalData,t=t.reactData.taskScaleList.find(function(e){return"week"===e.type}),a=new Date,l=_slicedToArray(_xeUtils.default.toDateString(a,"yyyy-M-d-H-m-s").split("-"),6),r=l[0],i=l[1],o=l[2],n=l[3],c=l[4],l=l[5],s=a.getDay()+1,d=Math.ceil((a.getMonth()+1)/3),a=_xeUtils.default.getYearWeek(a,t?t.startDay:void 0);e.todayDateMaps={year:r,quarter:"".concat(r,"_q").concat(d),month:"".concat(r,"_").concat(i),week:"".concat(r,"_W").concat(a),day:"".concat(r,"_").concat(i,"_").concat(o,"_E").concat(s),date:"".concat(r,"_").concat(i,"_").concat(o),hour:"".concat(r,"_").concat(i,"_").concat(o,"_").concat(n),minute:"".concat(r,"_").concat(i,"_").concat(o,"_").concat(n,"_").concat(c),second:"".concat(r,"_").concat(i,"_").concat(o,"_").concat(n,"_").concat(c,"_").concat(l)}}function handleColumnHeader(e){var t=e.$xeGantt,a=t.reactData.taskScaleList,i=t.computeMinScale,l=t.computeWeekScale,r=e.computeScaleDateList,o=[],n=[];if(i&&t.computeScaleUnit&&r.length){for(var c={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},s={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}},d=function(e,t,a){var l,r;i.type!==e&&(t=t[e],l="".concat(t.field),(r=s[e][l])||(s[e][l]=r=t,c[e].push(r)),r)&&(r.children||(r.children=[]),r.children.push(a))},u=0;u<r.length;u++){var f=r[u],h=_slicedToArray(_xeUtils.default.toDateString(f,"yy-yyyy-M-MM-d-dd-H-HH-m-mm-s-ss").split("-"),12),m=h[0],y=h[1],g=h[2],p=h[3],S=h[4],x=h[5],v=h[6],_=h[7],D=h[8],T=h[9],b=h[10],h=h[11],w=f.getDay(),M=w+1,E=Math.ceil((f.getMonth()+1)/3),U="".concat(_xeUtils.default.getYearWeek(f,l?l.startDay:void 0)),f={date:f,yy:m,yyyy:y,M:g,MM:p,d:S,dd:x,H:v,HH:_,m:D,mm:T,s:b,ss:h,q:E,W:U,WW:_xeUtils.default.padStart(U,2,"0"),E:M,e:w},m={year:{field:y,title:y,dateObj:f},quarter:{field:"".concat(y,"_q").concat(E),title:"".concat(E),dateObj:f},month:{field:"".concat(y,"_").concat(p),title:p,dateObj:f},week:{field:"".concat(y,"_W").concat(U),title:"".concat(U),dateObj:f},day:{field:"".concat(y,"_").concat(p,"_").concat(x,"_E").concat(M),title:"".concat(M),dateObj:f},date:{field:"".concat(y,"_").concat(p,"_").concat(x),title:x,dateObj:f},hour:{field:"".concat(y,"_").concat(p,"_").concat(x,"_").concat(_),title:_,dateObj:f},minute:{field:"".concat(y,"_").concat(p,"_").concat(x,"_").concat(_,"_").concat(T),title:T,dateObj:f},second:{field:"".concat(y,"_").concat(p,"_").concat(x,"_").concat(_,"_").concat(T,"_").concat(h),title:h,dateObj:f}},g=m[i.type];i.level<19&&d("year",m,g),i.level<17&&d("quarter",m,g),i.level<15&&d("month",m,g),i.level<13&&d("week",m,g),i.level<11&&d("day",m,g),i.level<9&&d("date",m,g),i.level<7&&d("hour",m,g),i.level<5&&d("minute",m,g),i.level<3&&d("second",m,g),o.push(g)}a.forEach(function(e){var t;e.type===i.type?n.push({scaleItem:e,columns:o}):((t=c[e.type]||[])&&t.forEach(function(e){e.childCount=e.children?e.children.length:0,e.children=void 0}),n.push({scaleItem:e,columns:t}))})}return{fullCols:o,groupCols:n}}function createChartRender(n,e){var t=n.$xeGantt,r=n.reactData.minViewDate,a=t.computeMinScale,c=t.computeWeekScale;switch(t.computeScaleUnit){case"year":var s={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy");s[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy"),l=_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()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(s[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(s[r]||0)-t+l+1}};case"quarter":var d={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-q");d[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-q"),l=_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()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(d[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(d[r]||0)-t+l+1}};case"month":var u={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM");u[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-MM"),l=_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()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(u[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(u[r]||0)-t+l+1}};case"week":var f={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-W",{firstDay:c?c.startDay:void 0});f[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-W",{firstDay:c?c.startDay:void 0}),l=_xeUtils.default.getWhatWeek(e,0,c?c.startDay:void 0,c?c.startDay:void 0),r=_xeUtils.default.toDateString(t,"yyyy-W",{firstDay:c?c.startDay:void 0}),i=_xeUtils.default.getWhatWeek(t,0,c?c.startDay:void 0,c?c.startDay:void 0),o=Math.floor((_xeUtils.default.getWhatWeek(t,1,c?c.startDay:void 0,c?c.startDay:void 0).getTime()-i.getTime())/dayMs),e=(e.getTime()-l.getTime())/dayMs/o,l=Math.max(0,(t.getTime()-i.getTime())/dayMs+1)/o,t=(f[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(f[r]||0)-t+l+1}};case"day":case"date":var h={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd");h[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd"),l=_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()-l.getTime())/minuteMs/o,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(h[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(h[r]||0)-t+l+1}};case"hour":var m={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH");m[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH"),l=_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()-l.getTime())/minuteMs/o,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(m[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(m[r]||0)-t+l+1}};case"minute":var y={};return e.forEach(function(e,t){e=e.dateObj,e=_xeUtils.default.toDateString(e.date,"yyyy-MM-dd HH:mm");y[e]=t}),function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=_xeUtils.default.toDateString(e,"yyyy-MM-dd HH:mm"),l=_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()-l.getTime())/minuteMs/o,l=Math.max(0,(t.getTime()-i.getTime())/minuteMs+1)/o,t=(y[a]||0)+e;return{offsetLeftSize:t,offsetWidthSize:(y[r]||0)-t+l+1}};case"second":var i=(0,_util.getStandardGapTime)(a.type);return function(e,t){var e=parseStringDate(n,e),t=parseStringDate(n,t),a=0,l=0;return r&&(a=(e.getTime()-r.getTime())/i,l=(t.getTime()-e.getTime())/i+1),{offsetLeftSize:a,offsetWidthSize:l}}}return function(){return{offsetLeftSize:0,offsetWidthSize:0}}}function handleParseColumn(e){var r,i,o,t,a,l,n,c,s,d,u,f=e.$xeGantt,h=e.reactData,m=e.internalData,y=f.treeConfig,g=h.minViewDate,p=h.maxViewDate,S=handleColumnHeader(e),x=S.fullCols,S=S.groupCols;g&&p&&(r=m.xeTable)&&(i=f.computeStartField,o=f.computeEndField,g=r.isRowGroupStatus,p=r.afterFullData,f=r.afterTreeFullData,t=r.afterGroupFullData,a=r.computeAggregateOpts,n=(l=r.computeTreeOpts).transform,c=l.children||l.childrenField,s={},d=createChartRender(e,x),u=function(e){var t=r.getRowid(e),a=_xeUtils.default.get(e,i),l=_xeUtils.default.get(e,o);a&&l&&(l=(a=d(a,l)).offsetLeftSize,s[t]={row:e,rowid:t,oLeftSize:l,oWidthSize:a.offsetWidthSize})},g?(g=a.mapChildrenField)&&_xeUtils.default.eachTree(t,u,{children:g}):y?_xeUtils.default.eachTree(f,u,{children:n?l.mapChildrenField:c}):p.forEach(u),m.chartMaps=s),m.visibleColumn=x,h.headerGroups=S,updateTodayData(e),updateScrollXStatus(e),handleTableColumn(e)}function handleUpdateData(a){var l,r,e,t,i,o,n,c,s,d=a.$xeGantt,u=a.reactData,f=a.internalData,h=d.treeConfig,m=f.scrollXStore,y=f.xeTable,g=null,p=null;y&&(l=d.computeStartField,r=d.computeEndField,d=y.isRowGroupStatus,e=y.afterFullData,t=y.afterTreeFullData,i=y.computeAggregateOpts,n=(o=y.computeTreeOpts).transform,c=o.children||o.childrenField,s=function(e){var t=_xeUtils.default.get(e,l),e=_xeUtils.default.get(e,r);t&&e&&(t=parseStringDate(a,t),(!g||g.getTime()>t.getTime())&&(g=t),t=parseStringDate(a,e),!p||p.getTime()<t.getTime())&&(p=t)},d?(d=i.mapChildrenField)&&_xeUtils.default.eachTree(y.afterGroupFullData,s,{children:d}):h?_xeUtils.default.eachTree(t,s,{children:n?o.mapChildrenField:c}):e.forEach(s)),m.startIndex=0,m.endIndex=Math.max(1,m.visibleSize),u.minViewDate=g,u.maxViewDate=p,f.startMaps={},f.endMaps={},handleParseColumn(a)}function calcScrollbar(e){var t=e.$xeGantt,a=e.reactData,l=a.scrollXWidth,r=a.scrollYHeight,i=e.internalData.elemStore,t=t.computeScrollbarOpts,i=(0,_util.getRefElem)(i["main-body-wrapper"]),o=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;i&&(r=r>i.clientHeight,e&&(a.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),a.overflowY=r,e=l>i.clientWidth,o&&(a.scrollbarHeight=t.height||o.offsetHeight-o.clientHeight||14),a.overflowX=e)}function updateTaskChart(e){var t=e.$xeGantt,a=e.internalData,t=t.internalData,l=a.xeTable,r=t.dragBarRow,i=e.reactData.viewCellWidth,o=a.chartMaps,t=(0,_util.getRefElem)(a.elemStore["main-chart-task-wrapper"]);return t&&l&&_xeUtils.default.arrayEach(t.children,function(e){var t=e.children[0];t&&(e=e.getAttribute("rowid"),r&&l.getRowid(r)===e||(e=e?o[e]:null,t.style.left="".concat((0,_util.getTaskBarLeft)(e,i),"px"),t.style.width="".concat((0,_util.getTaskBarWidth)(e,i),"px")))}),e.$nextTick()}function updateStyle(e){var t,a,l,r,i,o,n,c,s=e.$xeGantt,d=e.reactData,u=e.internalData,f=d.scrollbarWidth,h=d.scrollbarHeight,m=d.headerGroups,y=d.tableColumn,g=u.elemStore,p=u.visibleColumn,u=u.xeTable,S=e.$refs.refElem;if(S&&s)return r=s.computeScrollbarOpts,o=s.computeScrollbarXToTop,i=e.$refs.refScrollXLeftCornerElem,n=e.$refs.refScrollXRightCornerElem,c=e.$refs.refScrollXVirtualElem,f=f,h=h,l=a=t=0,u&&(t=u.tBodyHeight,a=u.tHeaderHeight,l=u.tFooterHeight),u="visible",(s.computeScrollbarYToLeft||r.y&&!1===r.y.visible)&&(f=0,u="hidden"),(r=(0,_util.getRefElem)(g["main-header-scroll"]))&&(r.style.height="".concat(a,"px"),r.style.setProperty("--vxe-ui-gantt-view-cell-height","".concat(a/m.length,"px"))),(r=(0,_util.getRefElem)(g["main-body-scroll"]))&&(r.style.height="".concat(t,"px")),(m=(0,_util.getRefElem)(g["main-footer-scroll"]))&&(m.style.height="".concat(l,"px")),c&&(c.style.height="".concat(h,"px"),c.style.visibility="visible"),(m=e.$refs.refScrollXWrapperElem)&&(m.style.left=o?"".concat(f,"px"):"",m.style.width="".concat(S.clientWidth-f,"px")),i&&(i.style.width=o?"".concat(f,"px"):"",i.style.display=o&&h?"block":""),n&&(n.style.width=o?"":"".concat(f,"px"),n.style.display=!o&&h?"block":""),(c=e.$refs.refScrollYVirtualElem)&&(c.style.width="".concat(f,"px"),c.style.height="".concat(t+a+l,"px"),c.style.visibility=u),(m=e.$refs.refScrollYTopCornerElem)&&(m.style.height="".concat(a,"px"),m.style.display=a?"block":""),(S=e.$refs.refScrollYWrapperElem)&&(S.style.height="".concat(t,"px"),S.style.top="".concat(a,"px")),(i=e.$refs.refScrollYBottomCornerElem)&&(i.style.height="".concat(l,"px"),i.style.top="".concat(a+t,"px"),i.style.display=l?"block":""),n=40,h=(n=(o=e.$refs.refColInfoElem)?o.clientWidth||40:n)*p.length,r&&0<(c=(f=r.clientWidth)-h)&&(n+=c/p.length,h=f),d.viewCellWidth=n,u=(0,_util.getRefElem)(g["main-header-table"]),m=(0,_util.getRefElem)(g["main-body-table"]),S=n*y.length,u&&(u.style.width="".concat(h,"px")),m&&(m.style.width="".concat(S,"px")),d.scrollXWidth=h,Promise.all([updateTaskChart(e),s.handleUpdateTaskLink?s.handleUpdateTaskLink(e):null])}function handleRecalculateStyle(e){var t=e.internalData,a=e.$xeGantt,l=e.$refs.refElem;return t.rceRunTime=Date.now(),l&&l.clientWidth&&a?(calcScrollbar(e),updateStyle(e),computeScrollLoad(e)):e.$nextTick()}function _handleLazyRecalculate(i){var o=i.internalData;return new Promise(function(e){var t=o.rceTimeout,a=o.rceRunTime,l=o.xeTable,r=30;l&&(r=l.computeResizeOpts.refreshDelay||r),!t||(clearTimeout(t),a&&a+(r-5)<Date.now())?e(handleRecalculateStyle(i)):i.$nextTick(function(){e()}),o.rceTimeout=setTimeout(function(){o.rceTimeout=void 0,handleRecalculateStyle(i)},r)})}function computeScrollLoad(l){var r=l.reactData,i=l.internalData;return l.$nextTick().then(function(){var e,t=r.scrollXLoad,a=i.scrollXStore;t?(e=(t=handleVirtualXVisible(l)).toVisibleIndex,t=t.visibleSize,a.preloadSize=1,a.offsetSize=2,a.visibleSize=t,a.endIndex=Math.max(a.startIndex+a.visibleSize+2,a.endIndex),a.visibleStartIndex=Math.max(a.startIndex,e),a.visibleEndIndex=Math.min(a.endIndex,e+t),updateScrollXData(l).then(function(){loadScrollXData(l)})):updateScrollXSpace(l)})}function handleVirtualXVisible(e){var t,a=e.reactData.viewCellWidth,e=e.internalData.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]);return e?(t=e.clientWidth,e=e.scrollLeft,e=Math.floor(e/a)-1,t=Math.ceil(t/a)+1,{toVisibleIndex:Math.max(0,e),visibleSize:Math.max(1,t)}):{toVisibleIndex:0,visibleSize:6}}function loadScrollXData(e){var t=e.reactData.isScrollXBig,a=e.internalData.scrollXStore,l=a.preloadSize,r=a.startIndex,i=a.endIndex,o=a.offsetSize,n=handleVirtualXVisible(e),c=n.toVisibleIndex,n=n.visibleSize,t={startIndex:Math.max(0,t?c-1:c-1-o-l),endIndex:t?c+n:c+n+o+l},o=(a.visibleStartIndex=c-1,a.visibleEndIndex=c+n+1,t.startIndex),l=t.endIndex;!(c<=r||i-n-1<=c)||r===o&&i===l||(a.startIndex=o,a.endIndex=l,updateScrollXData(e))}function updateScrollXData(e){return handleTableColumn(e),updateScrollXSpace(e),e.$nextTick()}function updateScrollXStatus(e){return e.reactData.scrollXLoad=!0}function handleTableColumn(e){var t=e.reactData,e=e.internalData,a=t.scrollXLoad,l=e.visibleColumn,e=e.scrollXStore,a=a?l.slice(e.startIndex,e.endIndex):l.slice(0);t.tableColumn=a}function updateScrollXSpace(e){var t=e.reactData,a=e.internalData,l=t.scrollXLoad,r=t.scrollXWidth,i=t.viewCellWidth,o=a.elemStore,a=a.scrollXStore,n=(0,_util.getRefElem)(o["main-body-table"]),a=a.startIndex,c=0,a=(l&&(c=Math.max(0,a*i)),n&&(n.style.transform="translate(".concat(c,"px, ").concat(t.scrollYTop||0,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(o["main-".concat(e,"-xSpace")]);e&&(e.style.width=l?"".concat(r,"px"):"")}),e.$refs.refScrollXSpaceElem);return a&&(a.style.width="".concat(r,"px")),calcScrollbar(e),e.$nextTick()}function triggerScrollXEvent(e){loadScrollXData(e)}function updateScrollYSpace(e){var t=e.reactData,a=e.internalData,l=t.scrollYLoad,r=t.overflowY,i=a.elemStore,a=a.xeTable,o=(0,_util.getRefElem)(i["main-body-scroll"]),n=(0,_util.getRefElem)(i["main-body-table"]),c=0,s=0,d=!1,a=(a&&(c=a.scrollYTop,s=a.scrollYHeight,d=a.isScrollYBig),s),u=c,f=0,o=(o&&(f=o.clientHeight),d&&(u=o&&n&&o.scrollTop+f>=maxYHeight?maxYHeight-n.clientHeight:c/(s-f)*(maxYHeight-f),a=maxYHeight),l&&r||(u=0),(0,_util.getRefElem)(i["main-chart-task-wrapper"])),c=(n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),o&&(o.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),(0,_util.getRefElem)(i["main-body-ySpace"])),f=(c&&(c.style.height=a?"".concat(a,"px"):""),e.$refs.refScrollYSpaceElem),l=(f&&(f.style.height=a?"".concat(a,"px"):""),(0,_util.getRefElem)(i["main-chart-line-wrapper"])),r=l?l.firstElementChild:null;return r&&(r.style.height=a?"".concat(a,"px"):""),t.scrollYTop=u,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,a){var l=e.reactData,r=e.internalData,e=r.lcsTimeout;l.lazScrollLoading=!0,e&&clearTimeout(e),r.lcsTimeout=setTimeout(function(){r.lcsRunTime=Date.now(),r.lcsTimeout=void 0,r.intoRunScroll=!1,r.inVirtualScroll=!1,r.inWheelScroll=!1,r.inHeaderScroll=!1,r.inBodyScroll=!1,r.inFooterScroll=!1,l.lazScrollLoading=!1},200)}function handleScrollData(e,t,a,l,r){var i=e.reactData,o=e.internalData;a&&(o.lastScrollLeft=r),t&&(o.lastScrollTop=l),i.lastScrollTime=Date.now(),checkLastSyncScroll(e,a,t)}function handleScrollEvent(e,t,a,l,r,i){var o,n,c,s,d,u,f,h,m,y,g,p,S=e.$xeGantt,x=e.internalData,v=x.xeTable,_=e.$refs.refScrollXHandleElem,D=e.$refs.refScrollYHandleElem;_&&D&&v&&(o=D.clientHeight,n=_.clientWidth,D=D.scrollHeight,_=_.scrollWidth,d="",m=h=f=u=s=y=c=p=!1,l&&(g=v.computeScrollXThreshold,(y=i<=0)||(s=_-1<=i+n),x.lastScrollLeft<i?(d="right",_-g<=i+n&&(m=!0)):(d="left",i<=g&&(h=!0))),a&&(g=v.computeScrollYThreshold,(p=r<=0)||(c=D-1<=r+o),x.lastScrollTop<r?(d="bottom",D-g<=r+o&&(f=!0)):(d="top",r<=g&&(u=!0))),handleScrollData(e,a,l,r,i),v={source:sourceType,scrollTop:r,scrollLeft:i,bodyHeight:o,bodyWidth:n,scrollHeight:D,scrollWidth:_,isX:l,isY:a,isTop:p,isBottom:c,isLeft:y,isRight:s,direction:d},(f||u||m||h)&&S.dispatchEvent("scroll-boundary",v,t),S.dispatchEvent("scroll",v,t))}function syncTableScrollTop(e,t){var e=e.internalData.xeTable;e&&(e=e.elemStore,e=(0,_util.getRefElem)(e["main-body-scroll"]))&&(e.scrollTop=t)}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttView",inject:{$xeGantt:{default:null}},provide:function(){return{$xeGanttView:this}},props:{},data:function(){return{xID:_xeUtils.default.uniqueId(),reactData:{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},internalData:createInternalData()}},computed:Object.assign(Object.assign({},{}),{computeScaleDateList:function(){var e=this.$xeGantt,t=this.reactData,a=t.minViewDate,l=t.maxViewDate,t=e.computeTaskViewOpts,r=e.computeMinScale,e=t.gridding,i=[];if(a&&l){var o=-_xeUtils.default.toNumber(e&&e.leftSpacing||0),n=_xeUtils.default.toNumber(e&&e.rightSpacing||0);switch(r.type){case"year":for(var c=_xeUtils.default.getWhatYear(a,o,"first"),s=_xeUtils.default.getWhatYear(l,n,"first");c<=s;){var d=c;i.push(d),c=_xeUtils.default.getWhatYear(c,1)}break;case"quarter":for(var u=_xeUtils.default.getWhatQuarter(a,o,"first"),f=_xeUtils.default.getWhatQuarter(l,n,"first");u<=f;){var h=u;i.push(h),u=_xeUtils.default.getWhatQuarter(u,1)}break;case"month":for(var m=_xeUtils.default.getWhatMonth(a,o,"first"),y=_xeUtils.default.getWhatMonth(l,n,"first");m<=y;){var g=m;i.push(g),m=_xeUtils.default.getWhatMonth(m,1)}break;case"week":for(var p=_xeUtils.default.getWhatWeek(a,o,r.startDay,r.startDay),S=_xeUtils.default.getWhatWeek(l,n,r.startDay,r.startDay);p<=S;){var x=p;i.push(x),p=_xeUtils.default.getWhatWeek(p,1)}break;case"day":case"date":for(var v=_xeUtils.default.getWhatDay(a,o,"first"),_=_xeUtils.default.getWhatDay(l,n,"first");v<=_;){var D=v;i.push(D),v=_xeUtils.default.getWhatDay(v,1)}break;case"hour":case"minute":case"second":for(var T=(0,_util.getStandardGapTime)(r.type),b=a.getTime()+o*T,w=l.getTime()+n*T;b<=w;){var M=new Date(b);i.push(M),b+=T}}}return i}}),methods:{refreshData:function(){var t=this,a=t.internalData;return handleUpdateData(t),handleRecalculateStyle(t),t.$nextTick().then(function(){var e=a.xeTable;if(handleRecalculateStyle(t),e)return e.recalculate()})},updateViewData:function(){var e=this.reactData,t=this.internalData.xeTable;return t&&(t=t.tableData,e.tableData=t),this.$nextTick()},connectUpdate:function(e){var e=e.$table,t=this.internalData;return e&&(t.xeTable=e),this.$nextTick()},handleUpdateStyle:function(){return updateStyle(this)},handleLazyRecalculate:function(){return _handleLazyRecalculate(this)},handleUpdateCurrentRow:function(e){var t=this.internalData.xeTable,a=this.$refs.refElem;t&&a&&(e?(t.computeRowOpts.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(a.querySelectorAll('[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")}):_xeUtils.default.arrayEach(a.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,a=this.$refs.refElem;t&&a&&(e?_xeUtils.default.arrayEach(a.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(a.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,a,l,r=this.internalData,i=r.elemStore;r.inVirtualScroll||r.inBodyScroll||r.inFooterScroll||(t=e.currentTarget,i=(0,_util.getRefElem)(i["main-body-scroll"]),a=this.$refs.refScrollXHandleElem,i&&t&&(l=t.scrollLeft,r.inHeaderScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(i,l),handleScrollEvent(this,e,!1,!0,t.scrollTop,l)))},triggerBodyScrollEvent:function(e){var t,a,l,r,i,o=this,n=o.reactData,c=o.internalData,n=n.scrollXLoad,s=c.elemStore,d=c.lastScrollLeft,u=c.lastScrollTop;c.inVirtualScroll||c.inHeaderScroll||c.inFooterScroll||(t=e.currentTarget,s=(0,_util.getRefElem)(s["main-header-scroll"]),a=o.$refs.refScrollXHandleElem,l=o.$refs.refScrollYHandleElem,d=(r=t.scrollLeft)!==d,u=(i=t.scrollTop)!==u,c.inBodyScroll=!0,c.scrollRenderType="",u&&((0,_dom.setScrollTop)(l,i),syncTableScrollTop(o,i)),d&&(c.inBodyScroll=!0,(0,_dom.setScrollLeft)(a,r),(0,_dom.setScrollLeft)(s,r),n)&&triggerScrollXEvent(o),handleScrollEvent(o,e,u,d,t.scrollTop,r))},triggerVirtualScrollXEvent:function(e){var t,a,l,r=this.reactData,i=this.internalData,r=r.scrollXLoad,o=i.elemStore;i.inHeaderScroll||i.inBodyScroll||(t=e.currentTarget,a=(0,_util.getRefElem)(o["main-header-scroll"]),o=(0,_util.getRefElem)(o["main-body-scroll"]),t&&(l=t.scrollLeft,i.inVirtualScroll=!0,(0,_dom.setScrollLeft)(a,l),(0,_dom.setScrollLeft)(o,l),r&&triggerScrollXEvent(this),handleScrollEvent(this,e,!1,!0,t.scrollTop,l)))},triggerVirtualScrollYEvent:function(e){var t,a,l=this.internalData,r=l.elemStore;l.inHeaderScroll||l.inBodyScroll||(t=e.currentTarget,r=(0,_util.getRefElem)(r["main-body-scroll"]),t&&(a=t.scrollTop,l.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,a),syncTableScrollTop(this,a),handleScrollEvent(this,e,!0,!1,a,t.scrollLeft)))},handleUpdateSXSpace:function(){return updateScrollXSpace(this)},handleUpdateSYSpace:function(){return updateScrollYSpace(this)},handleUpdateSYStatus:function(e){this.reactData.scrollYLoad=e},handleGlobalResizeEvent:function(){_handleLazyRecalculate(this)},renderScrollX:function(e){return e("div",{key:"vsx",ref:"refScrollXVirtualElem",class:"vxe-gantt-view--scroll-x-virtual"},[e("div",{ref:"refScrollXLeftCornerElem",class:"vxe-gantt-view--scroll-x-left-corner"}),e("div",{ref:"refScrollXWrapperElem",class:"vxe-gantt-view--scroll-x-wrapper"},[e("div",{ref:"refScrollXHandleElem",class:"vxe-gantt-view--scroll-x-handle",on:{scroll:this.triggerVirtualScrollXEvent}},[e("div",{ref:"refScrollXSpaceElem",class:"vxe-gantt-view--scroll-x-space"})]),e("div",{class:"vxe-gantt-view--scroll-x-handle-appearance"})]),e("div",{ref:"refScrollXRightCornerElem",class:"vxe-gantt-view--scroll-x-right-corner"})])},renderScrollY:function(e){return e("div",{ref:"refScrollYVirtualElem",class:"vxe-gantt-view--scroll-y-virtual"},[e("div",{ref:"refScrollYTopCornerElem",class:"vxe-gantt-view--scroll-y-top-corner"}),e("div",{ref:"refScrollYWrapperElem",class:"vxe-gantt-view--scroll-y-wrapper"},[e("div",{ref:"refScrollYHandleElem",class:"vxe-gantt-view--scroll-y-handle",on:{scroll:this.triggerVirtualScrollYEvent}},[e("div",{ref:"refScrollYSpaceElem",class:"vxe-gantt-view--scroll-y-space"})]),e("div",{class:"vxe-gantt-view--scroll-y-handle-appearance"})]),e("div",{ref:"refScrollYBottomCornerElem",class:"vxe-gantt-view--scroll-y-bottom-corner"})])},renderViewport:function(e){return e("div",{class:"vxe-gantt-view--viewport-wrapper"},[e(_ganttHeader.default),e(_ganttBody.default),e(_ganttFooter.default)])},renderBody:function(e){var t=this;return e("div",{class:"vxe-gantt-view--layout-wrapper"},t.$xeGantt.computeScrollbarYToLeft?[t.renderScrollY(e),t.renderViewport(e)]:[t.renderViewport(e),t.renderScrollY(e)])},renderVN:function(e){var t=this,a=t.$xeGantt,l=t.reactData,r=l.overflowX;return e("div",{ref:"refElem",class:["vxe-gantt-view",{"is--scroll-y":l.overflowY,"is--scroll-x":r,"is--virtual-x":l.scrollXLoad,"is--virtual-y":l.scrollYLoad}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},a.computeScrollbarXToTop?[t.renderScrollX(e),t.renderBody(e)]:[t.renderBody(e),t.renderScrollX(e)]),e("div",{class:"vxe-gantt-view--render-vars"},[e("div",{ref:"refColInfoElem",class:"vxe-gantt-view--column-info"})])])}},watch:{"reactData.tableData":function(){handleUpdateData(this)}},mounted:function(){globalEvents.on(this,"resize",this.handleGlobalResizeEvent)},beforeDestroy:function(){var e=this.internalData;globalEvents.off(this,"keydown"),_xeUtils.default.assign(e,createInternalData())},render:function(e){return this.renderVN(e)}});
@@ -11,6 +11,7 @@ var _xeUtils = _interopRequireDefault(require("xe-utils"));
11
11
  var _utils = require("../../ui/src/utils");
12
12
  var _dom = require("../../ui/src/dom");
13
13
  var _vn = require("../../ui/src/vn");
14
+ var _util = require("./util");
14
15
  var _log = require("../../ui/src/log");
15
16
  var _ganttView = _interopRequireDefault(require("./gantt-view"));
16
17
  var _vxeTable = require("vxe-table");
@@ -89,8 +90,44 @@ _xeUtils.default.each(_vxeTable.VxeTable.methods, function (fn, name) {
89
90
  return $xeTable && $xeTable[name].apply($xeTable, arguments);
90
91
  };
91
92
  });
93
+ function handleTaskAddLink(item, linkConfs, fromConfMaps, fromKeyMaps, uniqueMaps) {
94
+ if (item) {
95
+ var type = item.type,
96
+ from = item.from,
97
+ to = item.to,
98
+ lineStatus = item.lineStatus,
99
+ lineColor = item.lineColor,
100
+ lineTyle = item.lineTyle,
101
+ lineWidth = item.lineWidth,
102
+ showArrow = item.showArrow;
103
+ var tlKey = (0, _util.getTaskLinkKey)(from, to);
104
+ if (from && to && !uniqueMaps[tlKey]) {
105
+ var confs = fromConfMaps[from];
106
+ if (!confs) {
107
+ confs = fromConfMaps[from] = [];
108
+ }
109
+ var confObj = {
110
+ type: type,
111
+ from: from,
112
+ to: to,
113
+ lineStatus: lineStatus,
114
+ lineColor: lineColor,
115
+ lineTyle: lineTyle,
116
+ lineWidth: lineWidth,
117
+ showArrow: showArrow
118
+ };
119
+ confs.push(confObj);
120
+ linkConfs.push(confObj);
121
+ fromKeyMaps[from] = confObj;
122
+ uniqueMaps[tlKey] = confObj;
123
+ }
124
+ }
125
+ }
92
126
  function createInternalData() {
93
127
  return {
128
+ linkFromConfMaps: {},
129
+ linkFromKeyMaps: {},
130
+ linkUniqueMaps: {},
94
131
  uFoot: false,
95
132
  resizeTableWidth: 0
96
133
  // barTipTimeout: null
@@ -107,15 +144,17 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
107
144
  toolbarConfig: Object,
108
145
  formConfig: Object,
109
146
  zoomConfig: Object,
147
+ links: Array,
110
148
  layouts: Array,
111
149
  taskConfig: Object,
112
150
  taskViewScaleConfig: Object,
113
151
  taskViewConfig: Object,
152
+ taskLinkConfig: Object,
114
153
  taskBarConfig: Object,
115
154
  taskBarTooltipConfig: Object,
116
155
  taskSplitConfig: Object,
117
156
  taskBarResizeConfig: Object,
118
- taskBarDragConfig: Object,
157
+ taskBarMoveConfig: Object,
119
158
  size: {
120
159
  type: String,
121
160
  default: function _default() {
@@ -138,6 +177,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
138
177
  tableLoading: false,
139
178
  proxyInited: false,
140
179
  isZMax: false,
180
+ tableLinks: [],
141
181
  tableData: [],
142
182
  filterData: [],
143
183
  formData: {},
@@ -157,7 +197,9 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
157
197
  content: '',
158
198
  visible: false,
159
199
  params: null
160
- }
200
+ },
201
+ linkList: [],
202
+ upLinkFlag: 0
161
203
  };
162
204
  var internalData = createInternalData();
163
205
  return {
@@ -222,10 +264,10 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
222
264
  var props = $xeGantt;
223
265
  return Object.assign({}, getConfig().gantt.taskBarConfig, props.taskBarConfig);
224
266
  },
225
- computeTaskBarDragOpts: function computeTaskBarDragOpts() {
267
+ computeTaskBarMoveOpts: function computeTaskBarMoveOpts() {
226
268
  var $xeGantt = this;
227
269
  var props = $xeGantt;
228
- return Object.assign({}, getConfig().gantt.taskBarDragConfig, props.taskBarDragConfig);
270
+ return Object.assign({}, getConfig().gantt.taskBarMoveConfig, props.taskBarMoveConfig);
229
271
  },
230
272
  computeTaskBarResizeOpts: function computeTaskBarResizeOpts() {
231
273
  var $xeGantt = this;
@@ -242,6 +284,11 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
242
284
  var props = $xeGantt;
243
285
  return Object.assign({}, getConfig().gantt.taskBarTooltipConfig, props.taskBarTooltipConfig);
244
286
  },
287
+ computeTaskLinkOpts: function computeTaskLinkOpts() {
288
+ var $xeGantt = this;
289
+ var props = $xeGantt;
290
+ return Object.assign({}, getConfig().gantt.taskLinkConfig, props.taskLinkConfig);
291
+ },
245
292
  computeScaleUnit: function computeScaleUnit() {
246
293
  var $xeGantt = this;
247
294
  var minScale = $xeGantt.computeMinScale;
@@ -1772,8 +1819,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1772
1819
  return $xeGantt.$nextTick();
1773
1820
  },
1774
1821
  /**
1775
- * 关闭 bar tooltip
1776
- */
1822
+ * 关闭 bar tooltip
1823
+ */
1777
1824
  closeTaskBarTooltip: function closeTaskBarTooltip() {
1778
1825
  var $xeGantt = this;
1779
1826
  var reactData = $xeGantt.reactData;
@@ -1992,6 +2039,31 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1992
2039
  $xeGantt.closeTaskBarTooltip();
1993
2040
  }
1994
2041
  },
2042
+ handleTableLinks: function handleTableLinks() {
2043
+ var $xeGantt = this;
2044
+ var reactData = $xeGantt.reactData;
2045
+ var linkList = reactData.linkList;
2046
+ reactData.tableLinks = linkList.slice(0);
2047
+ },
2048
+ handleTaskAddLink: handleTaskAddLink,
2049
+ handleTaskUpdateLinks: function handleTaskUpdateLinks(links) {
2050
+ var $xeGantt = this;
2051
+ var reactData = $xeGantt.reactData;
2052
+ var internalData = $xeGantt.internalData;
2053
+ var linkConfs = [];
2054
+ var fromConfMaps = {};
2055
+ var fromKeyMaps = {};
2056
+ var uniqueMaps = {};
2057
+ _xeUtils.default.each(links || [], function (item) {
2058
+ handleTaskAddLink(item, linkConfs, fromConfMaps, fromKeyMaps, uniqueMaps);
2059
+ });
2060
+ reactData.linkList = linkConfs;
2061
+ internalData.linkFromConfMaps = fromConfMaps;
2062
+ internalData.linkFromKeyMaps = fromKeyMaps;
2063
+ internalData.linkUniqueMaps = uniqueMaps;
2064
+ $xeGantt.handleTableLinks();
2065
+ return $xeGantt.$nextTick();
2066
+ },
1995
2067
  handleTaskHeaderContextmenuEvent: function handleTaskHeaderContextmenuEvent(evnt, params) {
1996
2068
  var $xeGantt = this;
1997
2069
  var $xeTable = $xeGantt.$refs.refTable;
@@ -2544,6 +2616,14 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2544
2616
  if (props.expandConfig) {
2545
2617
  (0, _log.warnLog)('vxe.error.notProp', ['expand-config']);
2546
2618
  }
2619
+ if (!$xeGantt.handleUpdateTaskLink) {
2620
+ if (props.taskLinkConfig) {
2621
+ (0, _log.warnLog)('vxe.error.notProp', ['task-link-config']);
2622
+ }
2623
+ if (props.links) {
2624
+ (0, _log.errLog)('vxe.error.notProp', ['links']);
2625
+ }
2626
+ }
2547
2627
  $xeGantt.$nextTick(function () {
2548
2628
  if (props.formConfig) {
2549
2629
  if (!VxeUIFormComponent) {
@@ -2561,6 +2641,9 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
2561
2641
  }
2562
2642
  }
2563
2643
  });
2644
+ if (props.links) {
2645
+ $xeGantt.handleTaskUpdateLinks(props.links);
2646
+ }
2564
2647
  $xeGantt.handleTaskScaleConfig();
2565
2648
  $xeGantt.initPages();
2566
2649
  },