vxe-gantt 3.0.23 → 3.0.25

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.
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _comp = require("../../ui/src/comp");
8
8
  var _util = require("./util");
9
+ var _utils = require("../../ui/src/utils");
10
+ var _xeUtils = _interopRequireDefault(require("xe-utils"));
9
11
  var _ganttChart = _interopRequireDefault(require("./gantt-chart"));
10
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
13
  function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
@@ -50,10 +52,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
50
52
  var headerGroups = reactData.headerGroups;
51
53
  var todayDateMaps = internalData.todayDateMaps;
52
54
  var taskViewOpts = $xeGantt.computeTaskViewOpts;
53
- var showNowLine = taskViewOpts.showNowLine;
55
+ var showNowLine = taskViewOpts.showNowLine,
56
+ viewStyle = taskViewOpts.viewStyle;
54
57
  var _ref = headerGroups[headerGroups.length - 1] || {},
55
58
  scaleItem = _ref.scaleItem;
56
- var field = column.field;
59
+ var field = column.field,
60
+ dateObj = column.dateObj;
61
+ var _ref2 = viewStyle || {},
62
+ cellClassName = _ref2.cellClassName,
63
+ cellStyle = _ref2.cellStyle;
57
64
  var todayValue = showNowLine && scaleItem ? todayDateMaps[scaleItem.type] : null;
58
65
  var rowRest = fullAllDataRowIdData[rowid] || {};
59
66
  var resizeHeight = resizeHeightFlag ? rowRest.resizeHeight : 0;
@@ -101,6 +108,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
101
108
  var ctParams = {
102
109
  source: sourceType,
103
110
  type: viewType,
111
+ dateObj: dateObj,
104
112
  row: row,
105
113
  column: column,
106
114
  $rowIndex: $rowIndex,
@@ -112,8 +120,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
112
120
  class: ['vxe-gantt-view--body-column', {
113
121
  'is--now': showNowLine && todayValue === field,
114
122
  'col--rs-height': isRsHeight
115
- }],
116
- style: {
123
+ }, (0, _utils.getClass)(cellClassName, ctParams)],
124
+ style: cellStyle ? Object.assign({}, _xeUtils.default.isFunction(cellStyle) ? cellStyle(ctParams) : cellStyle, {
125
+ height: "".concat(cellHeight, "px")
126
+ }) : {
117
127
  height: "".concat(cellHeight, "px")
118
128
  },
119
129
  on: {
@@ -138,6 +148,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
138
148
  renderRows: function renderRows(h, $xeTable, tableData) {
139
149
  var _vm = this;
140
150
  var $xeGanttView = _vm.$xeGanttView;
151
+ var $xeGantt = _vm.$xeGantt;
141
152
  var reactData = $xeGanttView.reactData;
142
153
  var tableProps = $xeTable;
143
154
  var treeConfig = tableProps.treeConfig,
@@ -159,6 +170,11 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
159
170
  var treeOpts = $xeTable.computeTreeOpts;
160
171
  var transform = treeOpts.transform;
161
172
  var childrenField = treeOpts.children || treeOpts.childrenField;
173
+ var taskViewOpts = $xeGantt.computeTaskViewOpts;
174
+ var viewStyle = taskViewOpts.viewStyle;
175
+ var _ref3 = viewStyle || {},
176
+ rowClassName = _ref3.rowClassName,
177
+ rowStyle = _ref3.rowStyle;
162
178
  var tableColumn = reactData.tableColumn,
163
179
  scrollYLoad = reactData.scrollYLoad;
164
180
  var trVNs = [];
@@ -195,6 +211,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
195
211
  trOns.dragend = $xeTable.handleRowDragDragendEvent;
196
212
  trOns.dragover = $xeTable.handleRowDragDragoverEvent;
197
213
  }
214
+ var rowParams = {
215
+ source: sourceType,
216
+ type: viewType,
217
+ row: row,
218
+ rowIndex: rowIndex,
219
+ $rowIndex: $rowIndex,
220
+ _rowIndex: _rowIndex
221
+ };
198
222
  trVNs.push(h('tr', {
199
223
  key: treeConfig ? rowid : $rowIndex,
200
224
  class: ['vxe-gantt-view--body-row', {
@@ -203,7 +227,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
203
227
  'row--radio': radioOpts.highlight && $xeTable.eqRow(selectRadioRow, row),
204
228
  'row--checked': checkboxOpts.highlight && $xeTable.isCheckedByCheckboxRow(row),
205
229
  'row--pending': !!pendingRowFlag && !!pendingRowMaps[rowid]
206
- }],
230
+ }, (0, _utils.getClass)(rowClassName, rowParams)],
231
+ style: rowStyle ? _xeUtils.default.isFunction(rowStyle) ? rowStyle(rowParams) : rowStyle : undefined,
207
232
  attrs: {
208
233
  rowid: rowid
209
234
  },
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _comp=require("../../ui/src/comp"),_util=require("./util"),_ganttChart=_interopRequireDefault(require("./gantt-chart"));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,n=Array(t);r<t;r++)n[r]=e[r];return n}var sourceType="gantt",viewType="body",_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewBody",inject:{$xeGantt:{default:null},$xeGanttView:{default:null}},computed:Object.assign({},{}),methods:{renderColumn:function(e,t,r,n,o,a,l,i,c){var d,u=this.$xeGanttView,s=this.$xeGantt,p=u.reactData,w=t.resizeHeightFlag,y=t.fullAllDataRowIdData,f=t.visibleColumn,h=t.computeCellOpts,m=t.computeRowOpts,v=t.computeResizableOpts.isAllRowDrag,p=p.headerGroups,u=u.internalData.todayDateMaps,g=s.computeTaskViewOpts.showNowLine,p=(p[p.length-1]||{}).scaleItem,x=i.field,u=g&&p?u[p.type]:null,p=y[n]||{},y=0<(w?p.resizeHeight:0),w=(0,_util.getCellRestHeight)(p,h,m,t.computeDefaultRowHeight),p=[],b=(v&&m.resizable&&(d={$table:t,$grid:null,$gantt:s,seq:-1,rowid:n,row:r,rowIndex:o,$rowIndex:a,_rowIndex:l,column:f[0],columnIndex:0,$columnIndex:0,_columnIndex:0,fixed:"",source:sourceType,type:viewType,isHidden:!1,isEdit:!1,level:-1,visibleData:[],data:[],items:[]},p.push(e("div",{class:"vxe-gantt-view-cell--row-resizable",on:{mousedown:function(e){return t.handleRowResizeMousedownEvent(e,d)},dblclick:function(e){return t.handleRowResizeDblclickEvent(e,d)}}}))),{source:sourceType,type:viewType,row:r,column:i,$rowIndex:a,rowIndex:o,_rowIndex:l});return e("td",{key:c,class:["vxe-gantt-view--body-column",{"is--now":g&&u===x,"col--rs-height":y}],style:{height:"".concat(w,"px")},on:{click:function(e){s.handleTaskCellClickEvent(e,{row:r,column:i})},dblclick:function(e){s.handleTaskCellDblclickEvent(e,{row:r,column:i})},contextmenu:function(e){s.handleTaskBodyContextmenuEvent(e,b)}}},p)},renderRows:function(i,c,e){var d=this,t=d.$xeGanttView.reactData,u=c.treeConfig,s=c.stripe,p=c.highlightHoverRow,w=c.editConfig,y=c.treeExpandedFlag,f=c.selectRadioRow,h=c.pendingRowFlag,m=c.isRowGroupStatus,v=c.fullAllDataRowIdData,g=c.treeExpandedMaps,x=c.pendingRowMaps,b=c.computeRadioOpts,R=c.computeCheckboxOpts,_=c.computeRowOpts,r=c.computeTreeOpts,D=r.transform,T=r.children||r.childrenField,C=t.tableColumn,I=t.scrollYLoad,k=[];return e.forEach(function(r,n){var o=c.getRowid(r),e=v[o]||{},t={},a=n,l=-1,e=(e&&(a=e.index,l=e._index),!1),e=(w&&(e=c.isInsertByRow(r)),(_.isHover||p)&&(t.mouseenter=function(e){c.triggerHoverEvent(e,{row:r,rowIndex:a})},t.mouseleave=function(){c.clearHoverRow()}),!_.drag||m||u&&!D||(t.dragstart=c.handleRowDragDragstartEvent,t.dragend=c.handleRowDragDragendEvent,t.dragover=c.handleRowDragDragoverEvent),k.push(i("tr",{key:u?o:n,class:["vxe-gantt-view--body-row",{"row--stripe":s&&(l+1)%2==0,"is--new":e,"row--radio":b.highlight&&c.eqRow(f,r),"row--checked":R.highlight&&c.isCheckedByCheckboxRow(r),"row--pending":!!h&&!!x[o]}],attrs:{rowid:o},on:t},C.map(function(e,t){return d.renderColumn(i,c,r,o,a,n,l,e,t)}))),!1),t=[];!u||I||D||(t=r[T],e=!!y&&t&&0<t.length&&!!g[o]),e&&k.push.apply(k,_toConsumableArray(d.renderRows(i,c,t)))}),k},renderVN:function(r){var t=this.$xeGantt,e=this.$xeGanttView,n=e.reactData,o=e.internalData.xeTable,a=n.tableData,l=n.tableColumn,i=n.viewCellWidth;return r("div",{ref:"refElem",class:"vxe-gantt-view--body-wrapper"},[r("div",{ref:"refBodyScroll",class:"vxe-gantt-view--body-inner-wrapper",on:{scroll:e.triggerBodyScrollEvent,contextmenu:function(e){t.handleTaskBodyContextmenuEvent(e,{source:sourceType,type:viewType,rowIndex:-1,$rowIndex:-1,_rowIndex:-1})}}},[r("div",{ref:"refBodyXSpace",class:"vxe-body--x-space"}),r("div",{ref:"refBodyYSpace",class:"vxe-body--y-space"}),r("table",{ref:"refBodyTable",class:"vxe-gantt-view--body-table"},[r("colgroup",{},l.map(function(e,t){return r("col",{key:t,style:{width:"".concat(i,"px")}})})),r("tbody",{},o?this.renderRows(r,o,a):[])]),r(_ganttChart.default)])])}},mounted:function(){var e=this,t=e.$xeGanttView.internalData.elemStore,r="main-body-";t["".concat(r,"wrapper")]=e.$refs.refElem,t["".concat(r,"scroll")]=e.$refs.refBodyScroll,t["".concat(r,"table")]=e.$refs.refBodyTable,t["".concat(r,"xSpace")]=e.$refs.refBodyXSpace,t["".concat(r,"ySpace")]=e.$refs.refBodyYSpace},destroyed:function(){var e=this.$xeGanttView.internalData.elemStore,t="main-body-";e["".concat(t,"wrapper")]=null,e["".concat(t,"scroll")]=null,e["".concat(t,"table")]=null,e["".concat(t,"xSpace")]=null,e["".concat(t,"ySpace")]=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"),_util=require("./util"),_utils=require("../../ui/src/utils"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ganttChart=_interopRequireDefault(require("./gantt-chart"));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,n=Array(t);r<t;r++)n[r]=e[r];return n}var sourceType="gantt",viewType="body",_default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewBody",inject:{$xeGantt:{default:null},$xeGanttView:{default:null}},computed:Object.assign({},{}),methods:{renderColumn:function(e,t,r,n,o,a,l,i,s){var c,u=this.$xeGanttView,d=this.$xeGantt,p=u.reactData,w=t.resizeHeightFlag,y=t.fullAllDataRowIdData,f=t.visibleColumn,h=t.computeCellOpts,m=t.computeRowOpts,v=t.computeResizableOpts.isAllRowDrag,p=p.headerGroups,u=u.internalData.todayDateMaps,g=d.computeTaskViewOpts,x=g.showNowLine,p=(p[p.length-1]||{}).scaleItem,b=i.field,_=i.dateObj,g=g.viewStyle||{},R=g.cellClassName,g=g.cellStyle,u=x&&p?u[p.type]:null,p=y[n]||{},y=0<(w?p.resizeHeight:0),w=(0,_util.getCellRestHeight)(p,h,m,t.computeDefaultRowHeight),p=[],T=(v&&m.resizable&&(c={$table:t,$grid:null,$gantt:d,seq:-1,rowid:n,row:r,rowIndex:o,$rowIndex:a,_rowIndex:l,column:f[0],columnIndex:0,$columnIndex:0,_columnIndex:0,fixed:"",source:sourceType,type:viewType,isHidden:!1,isEdit:!1,level:-1,visibleData:[],data:[],items:[]},p.push(e("div",{class:"vxe-gantt-view-cell--row-resizable",on:{mousedown:function(e){return t.handleRowResizeMousedownEvent(e,c)},dblclick:function(e){return t.handleRowResizeDblclickEvent(e,c)}}}))),{source:sourceType,type:viewType,dateObj:_,row:r,column:i,$rowIndex:a,rowIndex:o,_rowIndex:l});return e("td",{key:s,class:["vxe-gantt-view--body-column",{"is--now":x&&u===b,"col--rs-height":y},(0,_utils.getClass)(R,T)],style:g?Object.assign({},_xeUtils.default.isFunction(g)?g(T):g,{height:"".concat(w,"px")}):{height:"".concat(w,"px")},on:{click:function(e){d.handleTaskCellClickEvent(e,{row:r,column:i})},dblclick:function(e){d.handleTaskCellDblclickEvent(e,{row:r,column:i})},contextmenu:function(e){d.handleTaskBodyContextmenuEvent(e,T)}}},p)},renderRows:function(s,c,e){var u=this,t=u.$xeGanttView.reactData,d=c.treeConfig,p=c.stripe,w=c.highlightHoverRow,y=c.editConfig,f=c.treeExpandedFlag,h=c.selectRadioRow,m=c.pendingRowFlag,v=c.isRowGroupStatus,g=c.fullAllDataRowIdData,x=c.treeExpandedMaps,b=c.pendingRowMaps,_=c.computeRadioOpts,R=c.computeCheckboxOpts,T=c.computeRowOpts,r=c.computeTreeOpts,C=r.transform,D=r.children||r.childrenField,r=u.$xeGantt.computeTaskViewOpts.viewStyle||{},I=r.rowClassName,S=r.rowStyle,$=t.tableColumn,k=t.scrollYLoad,A=[];return e.forEach(function(r,n){var o=c.getRowid(r),e=g[o]||{},t={},a=n,l=-1,e=(e&&(a=e.index,l=e._index),!1),i=(y&&(e=c.isInsertByRow(r)),(T.isHover||w)&&(t.mouseenter=function(e){c.triggerHoverEvent(e,{row:r,rowIndex:a})},t.mouseleave=function(){c.clearHoverRow()}),!T.drag||v||d&&!C||(t.dragstart=c.handleRowDragDragstartEvent,t.dragend=c.handleRowDragDragendEvent,t.dragover=c.handleRowDragDragoverEvent),{source:sourceType,type:viewType,row:r,rowIndex:a,$rowIndex:n,_rowIndex:l}),e=(A.push(s("tr",{key:d?o:n,class:["vxe-gantt-view--body-row",{"row--stripe":p&&(l+1)%2==0,"is--new":e,"row--radio":_.highlight&&c.eqRow(h,r),"row--checked":R.highlight&&c.isCheckedByCheckboxRow(r),"row--pending":!!m&&!!b[o]},(0,_utils.getClass)(I,i)],style:S?_xeUtils.default.isFunction(S)?S(i):S:void 0,attrs:{rowid:o},on:t},$.map(function(e,t){return u.renderColumn(s,c,r,o,a,n,l,e,t)}))),!1),i=[];!d||k||C||(i=r[D],e=!!f&&i&&0<i.length&&!!x[o]),e&&A.push.apply(A,_toConsumableArray(u.renderRows(s,c,i)))}),A},renderVN:function(r){var t=this.$xeGantt,e=this.$xeGanttView,n=e.reactData,o=e.internalData.xeTable,a=n.tableData,l=n.tableColumn,i=n.viewCellWidth;return r("div",{ref:"refElem",class:"vxe-gantt-view--body-wrapper"},[r("div",{ref:"refBodyScroll",class:"vxe-gantt-view--body-inner-wrapper",on:{scroll:e.triggerBodyScrollEvent,contextmenu:function(e){t.handleTaskBodyContextmenuEvent(e,{source:sourceType,type:viewType,rowIndex:-1,$rowIndex:-1,_rowIndex:-1})}}},[r("div",{ref:"refBodyXSpace",class:"vxe-body--x-space"}),r("div",{ref:"refBodyYSpace",class:"vxe-body--y-space"}),r("table",{ref:"refBodyTable",class:"vxe-gantt-view--body-table"},[r("colgroup",{},l.map(function(e,t){return r("col",{key:t,style:{width:"".concat(i,"px")}})})),r("tbody",{},o?this.renderRows(r,o,a):[])]),r(_ganttChart.default)])])}},mounted:function(){var e=this,t=e.$xeGanttView.internalData.elemStore,r="main-body-";t["".concat(r,"wrapper")]=e.$refs.refElem,t["".concat(r,"scroll")]=e.$refs.refBodyScroll,t["".concat(r,"table")]=e.$refs.refBodyTable,t["".concat(r,"xSpace")]=e.$refs.refBodyXSpace,t["".concat(r,"ySpace")]=e.$refs.refBodyYSpace},destroyed:function(){var e=this.$xeGanttView.internalData.elemStore,t="main-body-";e["".concat(t,"wrapper")]=null,e["".concat(t,"scroll")]=null,e["".concat(t,"table")]=null,e["".concat(t,"xSpace")]=null,e["".concat(t,"ySpace")]=null},render:function(e){return this.renderVN(e)}});
@@ -20,6 +20,7 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
20
20
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
21
21
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
22
22
  var globalEvents = _core.VxeUI.globalEvents;
23
+ var sourceType = 'gantt';
23
24
  function createInternalData() {
24
25
  return {
25
26
  xeTable: null,
@@ -825,10 +826,103 @@ function checkLastSyncScroll($xeGanttView, isRollX, isRollY) {
825
826
  reactData.lazScrollLoading = false;
826
827
  }, 200);
827
828
  }
828
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
829
- function handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, scrollTop, scrollLeft) {
829
+ function handleScrollData($xeGanttView, isRollY, isRollX, scrollTop, scrollLeft) {
830
+ var reactData = $xeGanttView.reactData;
831
+ var internalData = $xeGanttView.internalData;
832
+ if (isRollX) {
833
+ internalData.lastScrollLeft = scrollLeft;
834
+ }
835
+ if (isRollY) {
836
+ internalData.lastScrollTop = scrollTop;
837
+ }
838
+ reactData.lastScrollTime = Date.now();
830
839
  checkLastSyncScroll($xeGanttView, isRollX, isRollY);
831
840
  }
841
+ function handleScrollEvent($xeGanttView, evnt, isRollY, isRollX, scrollTop, scrollLeft) {
842
+ var $xeGantt = $xeGanttView.$xeGantt;
843
+ var internalData = $xeGanttView.internalData;
844
+ var $xeTable = internalData.xeTable;
845
+ var lastScrollLeft = internalData.lastScrollLeft,
846
+ lastScrollTop = internalData.lastScrollTop;
847
+ var xHandleEl = $xeGanttView.$refs.refScrollXHandleElem;
848
+ var yHandleEl = $xeGanttView.$refs.refScrollYHandleElem;
849
+ if (!xHandleEl || !yHandleEl) {
850
+ return;
851
+ }
852
+ if (!$xeTable) {
853
+ return;
854
+ }
855
+ var bodyHeight = yHandleEl.clientHeight;
856
+ var bodyWidth = xHandleEl.clientWidth;
857
+ var scrollHeight = yHandleEl.scrollHeight;
858
+ var scrollWidth = xHandleEl.scrollWidth;
859
+ var isTop = false;
860
+ var isBottom = false;
861
+ var isLeft = false;
862
+ var isRight = false;
863
+ var direction = '';
864
+ var isTopBoundary = false;
865
+ var isBottomBoundary = false;
866
+ var isLeftBoundary = false;
867
+ var isRightBoundary = false;
868
+ if (isRollX) {
869
+ var xThreshold = $xeTable.computeScrollXThreshold;
870
+ isLeft = scrollLeft <= 0;
871
+ if (!isLeft) {
872
+ isRight = scrollLeft + bodyWidth >= scrollWidth - 1;
873
+ }
874
+ if (scrollLeft > lastScrollLeft) {
875
+ direction = 'right';
876
+ if (scrollLeft + bodyWidth >= scrollWidth - xThreshold) {
877
+ isRightBoundary = true;
878
+ }
879
+ } else {
880
+ direction = 'left';
881
+ if (scrollLeft <= xThreshold) {
882
+ isLeftBoundary = true;
883
+ }
884
+ }
885
+ }
886
+ if (isRollY) {
887
+ var yThreshold = $xeTable.computeScrollYThreshold;
888
+ isTop = scrollTop <= 0;
889
+ if (!isTop) {
890
+ isBottom = scrollTop + bodyHeight >= scrollHeight - 1;
891
+ }
892
+ if (scrollTop > lastScrollTop) {
893
+ direction = 'bottom';
894
+ if (scrollTop + bodyHeight >= scrollHeight - yThreshold) {
895
+ isBottomBoundary = true;
896
+ }
897
+ } else {
898
+ direction = 'top';
899
+ if (scrollTop <= yThreshold) {
900
+ isTopBoundary = true;
901
+ }
902
+ }
903
+ }
904
+ handleScrollData($xeGanttView, isRollY, isRollX, scrollTop, scrollLeft);
905
+ var evntParams = {
906
+ source: sourceType,
907
+ scrollTop: scrollTop,
908
+ scrollLeft: scrollLeft,
909
+ bodyHeight: bodyHeight,
910
+ bodyWidth: bodyWidth,
911
+ scrollHeight: scrollHeight,
912
+ scrollWidth: scrollWidth,
913
+ isX: isRollX,
914
+ isY: isRollY,
915
+ isTop: isTop,
916
+ isBottom: isBottom,
917
+ isLeft: isLeft,
918
+ isRight: isRight,
919
+ direction: direction
920
+ };
921
+ if (isBottomBoundary || isTopBoundary || isRightBoundary || isLeftBoundary) {
922
+ $xeGantt.dispatchEvent('scroll-boundary', evntParams, evnt);
923
+ }
924
+ $xeGantt.dispatchEvent('scroll', evntParams, evnt);
925
+ }
832
926
  /**
833
927
  * 同步表格滚动
834
928
  */
@@ -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 l;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(l="Object"===(l={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:l)||"Set"===l?Array.from(e):"Arguments"===l||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var l=0,a=Array(t);l<t;l++)a[l]=e[l];return a}function _iterableToArrayLimit(e,t){var l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a,r,o,n,c=[],i=!0,s=!1;try{if(o=(l=l.call(e)).next,0===t){if(Object(l)!==l)return;i=!1}else for(;!(i=(a=o.call(l)).done)&&(c.push(a.value),c.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{if(!i&&null!=l.return&&(n=l.return(),Object(n)!==n))return}finally{if(s)throw r}}return c}}function _arrayWithHoles(e){if(Array.isArray(e))return e}var globalEvents=_core.VxeUI.globalEvents;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}),l=new Date,a=_slicedToArray(_xeUtils.default.toDateString(l,"yyyy-M-d-H-m-s").split("-"),6),r=a[0],o=a[1],n=a[2],c=a[3],i=a[4],a=a[5],s=l.getDay()+1,d=Math.ceil((l.getMonth()+1)/3),l=_xeUtils.default.getYearWeek(l,t?t.startDay:void 0);e.todayDateMaps={year:r,quarter:"".concat(r,"_q").concat(d),month:"".concat(r,"_").concat(o),week:"".concat(r,"_W").concat(l),day:"".concat(r,"_").concat(o,"_").concat(n,"_E").concat(s),date:"".concat(r,"_").concat(o,"_").concat(n),hour:"".concat(r,"_").concat(o,"_").concat(n,"_").concat(c),minute:"".concat(r,"_").concat(o,"_").concat(n,"_").concat(c,"_").concat(i),second:"".concat(r,"_").concat(o,"_").concat(n,"_").concat(c,"_").concat(i,"_").concat(a)}}function handleParseColumn(o){var e=o.$xeGantt,t=o.reactData,l=o.internalData,a=e.reactData,k=e.treeConfig,a=a.taskScaleList,n=t.minViewDate,r=t.maxViewDate,c=_xeUtils.default.last(a),i=[],s=[];if(c&&n&&r){var d=c.type,u=a.find(function(e){return"week"===e.type}),f=864e5;switch(c.type){case"hour":f=36e5;break;case"minute":f=6e4;break;case"second":f=1e3}for(var M=n.getTime(),r=r.getTime()-n.getTime(),U=Math.max(5,Math.floor(r/f)+1),h={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},p={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}},m=function(e,t,l){var a,r;d!==e&&(t=t[e],a="".concat(t.field),(r=p[e][a])||(p[e][a]=r=t,h[e].push(r)),r)&&(r.children||(r.children=[]),r.children.push(l))},S=0;S<U;S++){var v=new Date(M+S*f),y=_slicedToArray(_xeUtils.default.toDateString(v,"yyyy-M-d-H-m-s").split("-"),6),g=y[0],x=y[1],_=y[2],b=y[3],D=y[4],y=y[5],w=v.getDay(),T=w+1,E=Math.ceil((v.getMonth()+1)/3),v=_xeUtils.default.getYearWeek(v,u?u.startDay:void 0),w={yy:g,M:x,d:_,H:b,m:D,s:y,q:E,W:v,E:T,e:w},E={year:{field:g,title:g,dateObj:w},quarter:{field:"".concat(g,"_q").concat(E),title:"".concat(E),dateObj:w},month:{field:"".concat(g,"_").concat(x),title:x,dateObj:w},week:{field:"".concat(g,"_W").concat(v),title:"".concat(v),dateObj:w},day:{field:"".concat(g,"_").concat(x,"_").concat(_,"_E").concat(T),title:"".concat(T),dateObj:w},date:{field:"".concat(g,"_").concat(x,"_").concat(_),title:_,dateObj:w},hour:{field:"".concat(g,"_").concat(x,"_").concat(_,"_").concat(b),title:b,dateObj:w},minute:{field:"".concat(g,"_").concat(x,"_").concat(_,"_").concat(b,"_").concat(D),title:D,dateObj:w},second:{field:"".concat(g,"_").concat(x,"_").concat(_,"_").concat(b,"_").concat(D,"_").concat(y),title:y,dateObj:w}},v=E[d];c.level<19&&m("year",E,v),c.level<17&&m("quarter",E,v),c.level<14&&m("month",E,v),c.level<13&&m("week",E,v),c.level<11&&m("day",E,v),c.level<12&&m("date",E,v),c.level<7&&m("hour",E,v),c.level<5&&m("minute",E,v),i.push(v)}a.forEach(function(e){var t;e.type===d?s.push({scaleItem:e,columns:i}):((t=h[e.type]||[])&&t.forEach(function(e){e.childCount=e.children?e.children.length:0,e.children=void 0}),s.push({scaleItem:e,columns:t}))});var X,L,R,Y,I,C,H,V,$=l.xeTable;$&&(X=e.computeStartField,L=e.computeEndField,r=$.isRowGroupStatus,a=$.afterFullData,e=$.afterTreeFullData,R=$.computeAggregateOpts,I=(Y=$.computeTreeOpts).transform,C=Y.children||Y.childrenField,H={},V=function(e){var t,l=$.getRowid(e),a=_xeUtils.default.get(e,X),r=_xeUtils.default.get(e,L);a&&r&&(a=parseStringDate(o,a),r=parseStringDate(o,r),t=Math.floor((a.getTime()-n.getTime())/f),r=Math.floor((r.getTime()-a.getTime())/f)+1,H[l]={row:e,rowid:l,oLeftSize:t,oWidthSize:r})},r?(r=R.mapChildrenField)&&_xeUtils.default.eachTree($.afterGroupFullData,V,{children:r}):k?_xeUtils.default.eachTree(e,V,{children:I?Y.mapChildrenField:C}):a.forEach(V),l.chartMaps=H)}l.visibleColumn=i,t.headerGroups=s,updateTodayData(o),updateScrollXStatus(o),handleTableColumn(o)}function handleUpdateData(l){var a,r,e,t,o,n,c,i,s,d=l.$xeGantt,u=l.reactData,f=l.internalData,h=d.treeConfig,p=f.scrollXStore,m=f.xeTable,S=null,v=null;m&&(a=d.computeStartField,r=d.computeEndField,d=m.isRowGroupStatus,e=m.afterFullData,t=m.afterTreeFullData,o=m.computeAggregateOpts,c=(n=m.computeTreeOpts).transform,i=n.children||n.childrenField,s=function(e){var t=_xeUtils.default.get(e,a),e=_xeUtils.default.get(e,r);t&&e&&(t=parseStringDate(l,t),(!S||S.getTime()>t.getTime())&&(S=t),t=parseStringDate(l,e),!v||v.getTime()<t.getTime())&&(v=t)},d?(d=o.mapChildrenField)&&_xeUtils.default.eachTree(m.afterGroupFullData,s,{children:d}):h?_xeUtils.default.eachTree(t,s,{children:c?n.mapChildrenField:i}):e.forEach(s)),p.startIndex=0,p.endIndex=Math.max(1,p.visibleSize),u.minViewDate=S,u.maxViewDate=v,f.startMaps={},f.endMaps={},handleParseColumn(l)}function calcScrollbar(e){var t=e.$xeGantt,l=e.reactData,a=l.scrollXWidth,r=l.scrollYHeight,o=e.internalData.elemStore,t=t.computeScrollbarOpts,o=(0,_util.getRefElem)(o["main-body-wrapper"]),n=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;o&&(r=r>o.clientHeight,e&&(l.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),l.overflowY=r,e=a>o.clientWidth,n&&(l.scrollbarHeight=t.height||n.offsetHeight-n.clientHeight||14),l.overflowX=e)}function updateChart(e){var t=e.reactData,l=e.internalData,a=t.viewCellWidth,t=l.elemStore,r=l.chartMaps,l=(0,_util.getRefElem)(t["main-chart-wrapper"]);return l&&_xeUtils.default.arrayEach(l.children,function(e){var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?r[e]:null,t.style.left="".concat(e?a*e.oLeftSize:0,"px"),t.style.width="".concat(e?a*e.oWidthSize:0,"px"))}),e.$nextTick()}function updateStyle(e){var t,l,a,r,o,n,c,i,s,d=e.$xeGantt,u=e.reactData,f=e.internalData,h=u.scrollbarWidth,p=u.headerGroups,m=u.tableColumn,S=f.elemStore,v=f.visibleColumn,f=f.xeTable,y=e.$refs.refElem;if(y)return r=d.computeScrollbarOpts,c=d.computeScrollbarXToTop,n=e.$refs.refScrollXLeftCornerElem,o=e.$refs.refScrollXRightCornerElem,s=e.$refs.refScrollXVirtualElem,h=h,i=u.scrollbarHeight,a=l=t=0,f&&(t=f.tBodyHeight,l=f.tHeaderHeight,a=f.tFooterHeight),f="visible",(d.computeScrollbarYToLeft||r.y&&!1===r.y.visible)&&(h=0,f="hidden"),(d=(0,_util.getRefElem)(S["main-header-scroll"]))&&(d.style.height="".concat(l,"px"),d.style.setProperty("--vxe-ui-gantt-view-cell-height","".concat(l/p.length,"px"))),(r=(0,_util.getRefElem)(S["main-body-scroll"]))&&(r.style.height="".concat(t,"px")),(d=(0,_util.getRefElem)(S["main-footer-scroll"]))&&(d.style.height="".concat(a,"px")),s&&(s.style.height="".concat(i,"px"),s.style.visibility="visible"),(p=e.$refs.refScrollXWrapperElem)&&(p.style.left=c?"".concat(h,"px"):"",p.style.width="".concat(y.clientWidth-h,"px")),n&&(n.style.width=c?"".concat(h,"px"):"",n.style.display=c&&i?"block":""),o&&(o.style.width=c?"":"".concat(h,"px"),o.style.display=!c&&i?"block":""),(d=e.$refs.refScrollYVirtualElem)&&(d.style.width="".concat(h,"px"),d.style.height="".concat(t+l+a,"px"),d.style.visibility=f),(s=e.$refs.refScrollYTopCornerElem)&&(s.style.height="".concat(l,"px"),s.style.display=l?"block":""),(p=e.$refs.refScrollYWrapperElem)&&(p.style.height="".concat(t,"px"),p.style.top="".concat(l,"px")),(y=e.$refs.refScrollYBottomCornerElem)&&(y.style.height="".concat(a,"px"),y.style.top="".concat(l+t,"px"),y.style.display=a?"block":""),n=40,c=(n=(o=e.$refs.refColInfoElem)?o.clientWidth||40:n)*v.length,r&&0<(h=(i=r.clientWidth)-c)&&(n+=h/v.length,c=i),u.viewCellWidth=n,d=(0,_util.getRefElem)(S["main-header-table"]),f=(0,_util.getRefElem)(S["main-body-table"]),s=n*m.length,d&&(d.style.width="".concat(c,"px")),f&&(f.style.width="".concat(s,"px")),u.scrollXWidth=c,updateChart(e)}function handleRecalculateStyle(e){var t=e.internalData,l=e.$refs.refElem;return t.rceRunTime=Date.now(),l&&l.clientWidth?(calcScrollbar(e),updateStyle(e),updateChart(e),computeScrollLoad(e)):e.$nextTick()}function _handleLazyRecalculate(o){var n=o.internalData;return new Promise(function(e){var t=n.rceTimeout,l=n.rceRunTime,a=n.xeTable,r=50;a&&(r=a.computeResizeOpts.refreshDelay||50),!t||(clearTimeout(t),l&&l+(r-5)<Date.now())?e(handleRecalculateStyle(o)):o.$nextTick(function(){e()}),n.rceTimeout=setTimeout(function(){n.rceTimeout=void 0,handleRecalculateStyle(o)},r)})}function computeScrollLoad(a){var r=a.reactData,o=a.internalData;return a.$nextTick().then(function(){var e,t=r.scrollXLoad,l=o.scrollXStore;t?(e=(t=handleVirtualXVisible(a)).toVisibleIndex,t=t.visibleSize,l.preloadSize=1,l.offsetSize=2,l.visibleSize=t,l.endIndex=Math.max(l.startIndex+l.visibleSize+2,l.endIndex),l.visibleStartIndex=Math.max(l.startIndex,e),l.visibleEndIndex=Math.min(l.endIndex,e+t),updateScrollXData(a).then(function(){loadScrollXData(a)})):updateScrollXSpace(a)})}function handleVirtualXVisible(e){var t,l=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/l)-1,t=Math.ceil(t/l)+1,{toVisibleIndex:Math.max(0,e),visibleSize:Math.max(1,t)}):{toVisibleIndex:0,visibleSize:6}}function loadScrollXData(e){var t=e.reactData.isScrollXBig,l=e.internalData.scrollXStore,a=l.preloadSize,r=l.startIndex,o=l.endIndex,n=l.offsetSize,c=handleVirtualXVisible(e),i=c.toVisibleIndex,c=c.visibleSize,t={startIndex:Math.max(0,t?i-1:i-1-n-a),endIndex:t?i+c:i+c+n+a},n=(l.visibleStartIndex=i-1,l.visibleEndIndex=i+c+1,t.startIndex),a=t.endIndex;!(i<=r||o-c-1<=i)||r===n&&o===a||(l.startIndex=n,l.endIndex=a,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,l=t.scrollXLoad,a=e.visibleColumn,e=e.scrollXStore,l=l?a.slice(e.startIndex,e.endIndex):a.slice(0);t.tableColumn=l}function updateScrollXSpace(e){var t=e.reactData,l=e.internalData,a=t.scrollXLoad,r=t.scrollXWidth,o=t.viewCellWidth,n=l.elemStore,l=l.scrollXStore,c=(0,_util.getRefElem)(n["main-body-table"]),l=l.startIndex,i=0,l=(a&&(i=Math.max(0,l*o)),c&&(c.style.transform="translate(".concat(i,"px, ").concat(t.scrollYTop||0,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(n["main-".concat(e,"-xSpace")]);e&&(e.style.width=a?"".concat(r,"px"):"")}),e.$refs.refScrollXSpaceElem);return l&&(l.style.width="".concat(r,"px")),calcScrollbar(e),e.$nextTick()}function triggerScrollXEvent(e){loadScrollXData(e)}function updateScrollYSpace(e){var t=e.reactData,l=e.internalData,a=t.scrollYLoad,r=t.overflowY,o=l.elemStore,l=l.xeTable,n=(0,_util.getRefElem)(o["main-body-scroll"]),c=(0,_util.getRefElem)(o["main-body-table"]),i=0,s=0,d=!1,l=(l&&(i=l.scrollYTop,s=l.scrollYHeight,d=l.isScrollYBig),s),u=i,f=0,n=(n&&(f=n.clientHeight),d&&(u=n&&c&&n.scrollTop+f>=maxYHeight?maxYHeight-c.clientHeight:i/(s-f)*(maxYHeight-f),l=maxYHeight),a&&r||(u=0),(0,_util.getRefElem)(o["main-chart-wrapper"])),i=(c&&(c.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),(0,_util.getRefElem)(o["main-body-ySpace"])),f=(i&&(i.style.height=l?"".concat(l,"px"):""),e.$refs.refScrollYSpaceElem);return f&&(f.style.height=l?"".concat(l,"px"):""),t.scrollYTop=u,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,l){var a=e.reactData,r=e.internalData,e=r.lcsTimeout;a.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,a.lazScrollLoading=!1},200)}function handleScrollEvent(e,t,l,a,r,o){checkLastSyncScroll(e,a,l)}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({},{}),methods:{refreshData:function(){return handleUpdateData(this),_handleLazyRecalculate(this)},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,l=this.$refs.refElem;t&&l&&(e?(t.computeRowOpts.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(l.querySelectorAll('[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")}):_xeUtils.default.arrayEach(l.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,l=this.$refs.refElem;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,l,a,r=this.internalData,o=r.elemStore;r.inVirtualScroll||r.inBodyScroll||r.inFooterScroll||(t=e.currentTarget,o=(0,_util.getRefElem)(o["main-body-scroll"]),l=this.$refs.refScrollXHandleElem,o&&t&&(a=t.scrollLeft,r.inHeaderScroll=!0,(0,_dom.setScrollLeft)(l,a),(0,_dom.setScrollLeft)(o,a),handleScrollEvent(this,e,!1,!0,t.scrollTop,a)))},triggerBodyScrollEvent:function(e){var t,l,a,r,o,n=this,c=n.reactData,i=n.internalData,c=c.scrollXLoad,s=i.elemStore,d=i.lastScrollLeft,u=i.lastScrollTop;i.inVirtualScroll||i.inHeaderScroll||i.inFooterScroll||(t=e.currentTarget,s=(0,_util.getRefElem)(s["main-header-scroll"]),l=n.$refs.refScrollXHandleElem,a=n.$refs.refScrollYHandleElem,d=(r=t.scrollLeft)!==d,u=(o=t.scrollTop)!==u,i.inBodyScroll=!0,i.scrollRenderType="",u&&((0,_dom.setScrollTop)(a,o),syncTableScrollTop(n,o)),d&&(i.inBodyScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(s,r),c)&&triggerScrollXEvent(n),handleScrollEvent(n,e,u,d,t.scrollTop,r))},triggerVirtualScrollXEvent:function(e){var t,l,a,r=this.reactData,o=this.internalData,r=r.scrollXLoad,n=o.elemStore;o.inHeaderScroll||o.inBodyScroll||(t=e.currentTarget,l=(0,_util.getRefElem)(n["main-header-scroll"]),n=(0,_util.getRefElem)(n["main-body-scroll"]),t&&(a=t.scrollLeft,o.inVirtualScroll=!0,(0,_dom.setScrollLeft)(l,a),(0,_dom.setScrollLeft)(n,a),r&&triggerScrollXEvent(this),handleScrollEvent(this,e,!1,!0,t.scrollTop,a)))},triggerVirtualScrollYEvent:function(e){var t,l,a=this.internalData,r=a.elemStore;a.inHeaderScroll||a.inBodyScroll||(t=e.currentTarget,r=(0,_util.getRefElem)(r["main-body-scroll"]),t&&(l=t.scrollTop,a.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,l),syncTableScrollTop(this,l),handleScrollEvent(this,e,!0,!1,l,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,l=t.$xeGantt,a=t.reactData,r=a.overflowX;return e("div",{ref:"refElem",class:["vxe-gantt-view",{"is--scroll-y":a.overflowY,"is--scroll-x":r,"is--virtual-x":a.scrollXLoad,"is--virtual-y":a.scrollYLoad}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},l.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 l;if(e)return"string"==typeof e?_arrayLikeToArray(e,t):"Map"===(l="Object"===(l={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:l)||"Set"===l?Array.from(e):"Arguments"===l||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(l)?_arrayLikeToArray(e,t):void 0}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var l=0,a=Array(t);l<t;l++)a[l]=e[l];return a}function _iterableToArrayLimit(e,t){var l=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=l){var a,r,o,n,c=[],i=!0,s=!1;try{if(o=(l=l.call(e)).next,0===t){if(Object(l)!==l)return;i=!1}else for(;!(i=(a=o.call(l)).done)&&(c.push(a.value),c.length!==t);i=!0);}catch(e){s=!0,r=e}finally{try{if(!i&&null!=l.return&&(n=l.return(),Object(n)!==n))return}finally{if(s)throw r}}return c}}function _arrayWithHoles(e){if(Array.isArray(e))return e}var globalEvents=_core.VxeUI.globalEvents,sourceType="gantt";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}),l=new Date,a=_slicedToArray(_xeUtils.default.toDateString(l,"yyyy-M-d-H-m-s").split("-"),6),r=a[0],o=a[1],n=a[2],c=a[3],i=a[4],a=a[5],s=l.getDay()+1,d=Math.ceil((l.getMonth()+1)/3),l=_xeUtils.default.getYearWeek(l,t?t.startDay:void 0);e.todayDateMaps={year:r,quarter:"".concat(r,"_q").concat(d),month:"".concat(r,"_").concat(o),week:"".concat(r,"_W").concat(l),day:"".concat(r,"_").concat(o,"_").concat(n,"_E").concat(s),date:"".concat(r,"_").concat(o,"_").concat(n),hour:"".concat(r,"_").concat(o,"_").concat(n,"_").concat(c),minute:"".concat(r,"_").concat(o,"_").concat(n,"_").concat(c,"_").concat(i),second:"".concat(r,"_").concat(o,"_").concat(n,"_").concat(c,"_").concat(i,"_").concat(a)}}function handleParseColumn(o){var e=o.$xeGantt,t=o.reactData,l=o.internalData,a=e.reactData,W=e.treeConfig,a=a.taskScaleList,n=t.minViewDate,r=t.maxViewDate,c=_xeUtils.default.last(a),i=[],s=[];if(c&&n&&r){var d=c.type,u=a.find(function(e){return"week"===e.type}),f=864e5;switch(c.type){case"hour":f=36e5;break;case"minute":f=6e4;break;case"second":f=1e3}for(var k=n.getTime(),r=r.getTime()-n.getTime(),M=Math.max(5,Math.floor(r/f)+1),h={year:[],quarter:[],month:[],week:[],day:[],date:[],hour:[],minute:[],second:[]},p={year:{},quarter:{},month:{},week:{},day:{},date:{},hour:{},minute:{},second:{}},m=function(e,t,l){var a,r;d!==e&&(t=t[e],a="".concat(t.field),(r=p[e][a])||(p[e][a]=r=t,h[e].push(r)),r)&&(r.children||(r.children=[]),r.children.push(l))},S=0;S<M;S++){var v=new Date(k+S*f),y=_slicedToArray(_xeUtils.default.toDateString(v,"yyyy-M-d-H-m-s").split("-"),6),g=y[0],x=y[1],b=y[2],_=y[3],T=y[4],y=y[5],D=v.getDay(),w=D+1,E=Math.ceil((v.getMonth()+1)/3),v=_xeUtils.default.getYearWeek(v,u?u.startDay:void 0),D={yy:g,M:x,d:b,H:_,m:T,s:y,q:E,W:v,E:w,e:D},E={year:{field:g,title:g,dateObj:D},quarter:{field:"".concat(g,"_q").concat(E),title:"".concat(E),dateObj:D},month:{field:"".concat(g,"_").concat(x),title:x,dateObj:D},week:{field:"".concat(g,"_W").concat(v),title:"".concat(v),dateObj:D},day:{field:"".concat(g,"_").concat(x,"_").concat(b,"_E").concat(w),title:"".concat(w),dateObj:D},date:{field:"".concat(g,"_").concat(x,"_").concat(b),title:b,dateObj:D},hour:{field:"".concat(g,"_").concat(x,"_").concat(b,"_").concat(_),title:_,dateObj:D},minute:{field:"".concat(g,"_").concat(x,"_").concat(b,"_").concat(_,"_").concat(T),title:T,dateObj:D},second:{field:"".concat(g,"_").concat(x,"_").concat(b,"_").concat(_,"_").concat(T,"_").concat(y),title:y,dateObj:D}},v=E[d];c.level<19&&m("year",E,v),c.level<17&&m("quarter",E,v),c.level<14&&m("month",E,v),c.level<13&&m("week",E,v),c.level<11&&m("day",E,v),c.level<12&&m("date",E,v),c.level<7&&m("hour",E,v),c.level<5&&m("minute",E,v),i.push(v)}a.forEach(function(e){var t;e.type===d?s.push({scaleItem:e,columns:i}):((t=h[e.type]||[])&&t.forEach(function(e){e.childCount=e.children?e.children.length:0,e.children=void 0}),s.push({scaleItem:e,columns:t}))});var X,L,R,Y,H,I,C,$,V=l.xeTable;V&&(X=e.computeStartField,L=e.computeEndField,r=V.isRowGroupStatus,a=V.afterFullData,e=V.afterTreeFullData,R=V.computeAggregateOpts,H=(Y=V.computeTreeOpts).transform,I=Y.children||Y.childrenField,C={},$=function(e){var t,l=V.getRowid(e),a=_xeUtils.default.get(e,X),r=_xeUtils.default.get(e,L);a&&r&&(a=parseStringDate(o,a),r=parseStringDate(o,r),t=Math.floor((a.getTime()-n.getTime())/f),r=Math.floor((r.getTime()-a.getTime())/f)+1,C[l]={row:e,rowid:l,oLeftSize:t,oWidthSize:r})},r?(r=R.mapChildrenField)&&_xeUtils.default.eachTree(V.afterGroupFullData,$,{children:r}):W?_xeUtils.default.eachTree(e,$,{children:H?Y.mapChildrenField:I}):a.forEach($),l.chartMaps=C)}l.visibleColumn=i,t.headerGroups=s,updateTodayData(o),updateScrollXStatus(o),handleTableColumn(o)}function handleUpdateData(l){var a,r,e,t,o,n,c,i,s,d=l.$xeGantt,u=l.reactData,f=l.internalData,h=d.treeConfig,p=f.scrollXStore,m=f.xeTable,S=null,v=null;m&&(a=d.computeStartField,r=d.computeEndField,d=m.isRowGroupStatus,e=m.afterFullData,t=m.afterTreeFullData,o=m.computeAggregateOpts,c=(n=m.computeTreeOpts).transform,i=n.children||n.childrenField,s=function(e){var t=_xeUtils.default.get(e,a),e=_xeUtils.default.get(e,r);t&&e&&(t=parseStringDate(l,t),(!S||S.getTime()>t.getTime())&&(S=t),t=parseStringDate(l,e),!v||v.getTime()<t.getTime())&&(v=t)},d?(d=o.mapChildrenField)&&_xeUtils.default.eachTree(m.afterGroupFullData,s,{children:d}):h?_xeUtils.default.eachTree(t,s,{children:c?n.mapChildrenField:i}):e.forEach(s)),p.startIndex=0,p.endIndex=Math.max(1,p.visibleSize),u.minViewDate=S,u.maxViewDate=v,f.startMaps={},f.endMaps={},handleParseColumn(l)}function calcScrollbar(e){var t=e.$xeGantt,l=e.reactData,a=l.scrollXWidth,r=l.scrollYHeight,o=e.internalData.elemStore,t=t.computeScrollbarOpts,o=(0,_util.getRefElem)(o["main-body-wrapper"]),n=e.$refs.refScrollXHandleElem,e=e.$refs.refScrollYHandleElem;o&&(r=r>o.clientHeight,e&&(l.scrollbarWidth=t.width||e.offsetWidth-e.clientWidth||14),l.overflowY=r,e=a>o.clientWidth,n&&(l.scrollbarHeight=t.height||n.offsetHeight-n.clientHeight||14),l.overflowX=e)}function updateChart(e){var t=e.reactData,l=e.internalData,a=t.viewCellWidth,t=l.elemStore,r=l.chartMaps,l=(0,_util.getRefElem)(t["main-chart-wrapper"]);return l&&_xeUtils.default.arrayEach(l.children,function(e){var t=e.children[0];t&&(e=(e=e.getAttribute("rowid"))?r[e]:null,t.style.left="".concat(e?a*e.oLeftSize:0,"px"),t.style.width="".concat(e?a*e.oWidthSize:0,"px"))}),e.$nextTick()}function updateStyle(e){var t,l,a,r,o,n,c,i,s,d=e.$xeGantt,u=e.reactData,f=e.internalData,h=u.scrollbarWidth,p=u.headerGroups,m=u.tableColumn,S=f.elemStore,v=f.visibleColumn,f=f.xeTable,y=e.$refs.refElem;if(y)return r=d.computeScrollbarOpts,c=d.computeScrollbarXToTop,n=e.$refs.refScrollXLeftCornerElem,o=e.$refs.refScrollXRightCornerElem,s=e.$refs.refScrollXVirtualElem,h=h,i=u.scrollbarHeight,a=l=t=0,f&&(t=f.tBodyHeight,l=f.tHeaderHeight,a=f.tFooterHeight),f="visible",(d.computeScrollbarYToLeft||r.y&&!1===r.y.visible)&&(h=0,f="hidden"),(d=(0,_util.getRefElem)(S["main-header-scroll"]))&&(d.style.height="".concat(l,"px"),d.style.setProperty("--vxe-ui-gantt-view-cell-height","".concat(l/p.length,"px"))),(r=(0,_util.getRefElem)(S["main-body-scroll"]))&&(r.style.height="".concat(t,"px")),(d=(0,_util.getRefElem)(S["main-footer-scroll"]))&&(d.style.height="".concat(a,"px")),s&&(s.style.height="".concat(i,"px"),s.style.visibility="visible"),(p=e.$refs.refScrollXWrapperElem)&&(p.style.left=c?"".concat(h,"px"):"",p.style.width="".concat(y.clientWidth-h,"px")),n&&(n.style.width=c?"".concat(h,"px"):"",n.style.display=c&&i?"block":""),o&&(o.style.width=c?"":"".concat(h,"px"),o.style.display=!c&&i?"block":""),(d=e.$refs.refScrollYVirtualElem)&&(d.style.width="".concat(h,"px"),d.style.height="".concat(t+l+a,"px"),d.style.visibility=f),(s=e.$refs.refScrollYTopCornerElem)&&(s.style.height="".concat(l,"px"),s.style.display=l?"block":""),(p=e.$refs.refScrollYWrapperElem)&&(p.style.height="".concat(t,"px"),p.style.top="".concat(l,"px")),(y=e.$refs.refScrollYBottomCornerElem)&&(y.style.height="".concat(a,"px"),y.style.top="".concat(l+t,"px"),y.style.display=a?"block":""),n=40,c=(n=(o=e.$refs.refColInfoElem)?o.clientWidth||40:n)*v.length,r&&0<(h=(i=r.clientWidth)-c)&&(n+=h/v.length,c=i),u.viewCellWidth=n,d=(0,_util.getRefElem)(S["main-header-table"]),f=(0,_util.getRefElem)(S["main-body-table"]),s=n*m.length,d&&(d.style.width="".concat(c,"px")),f&&(f.style.width="".concat(s,"px")),u.scrollXWidth=c,updateChart(e)}function handleRecalculateStyle(e){var t=e.internalData,l=e.$refs.refElem;return t.rceRunTime=Date.now(),l&&l.clientWidth?(calcScrollbar(e),updateStyle(e),updateChart(e),computeScrollLoad(e)):e.$nextTick()}function _handleLazyRecalculate(o){var n=o.internalData;return new Promise(function(e){var t=n.rceTimeout,l=n.rceRunTime,a=n.xeTable,r=50;a&&(r=a.computeResizeOpts.refreshDelay||50),!t||(clearTimeout(t),l&&l+(r-5)<Date.now())?e(handleRecalculateStyle(o)):o.$nextTick(function(){e()}),n.rceTimeout=setTimeout(function(){n.rceTimeout=void 0,handleRecalculateStyle(o)},r)})}function computeScrollLoad(a){var r=a.reactData,o=a.internalData;return a.$nextTick().then(function(){var e,t=r.scrollXLoad,l=o.scrollXStore;t?(e=(t=handleVirtualXVisible(a)).toVisibleIndex,t=t.visibleSize,l.preloadSize=1,l.offsetSize=2,l.visibleSize=t,l.endIndex=Math.max(l.startIndex+l.visibleSize+2,l.endIndex),l.visibleStartIndex=Math.max(l.startIndex,e),l.visibleEndIndex=Math.min(l.endIndex,e+t),updateScrollXData(a).then(function(){loadScrollXData(a)})):updateScrollXSpace(a)})}function handleVirtualXVisible(e){var t,l=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/l)-1,t=Math.ceil(t/l)+1,{toVisibleIndex:Math.max(0,e),visibleSize:Math.max(1,t)}):{toVisibleIndex:0,visibleSize:6}}function loadScrollXData(e){var t=e.reactData.isScrollXBig,l=e.internalData.scrollXStore,a=l.preloadSize,r=l.startIndex,o=l.endIndex,n=l.offsetSize,c=handleVirtualXVisible(e),i=c.toVisibleIndex,c=c.visibleSize,t={startIndex:Math.max(0,t?i-1:i-1-n-a),endIndex:t?i+c:i+c+n+a},n=(l.visibleStartIndex=i-1,l.visibleEndIndex=i+c+1,t.startIndex),a=t.endIndex;!(i<=r||o-c-1<=i)||r===n&&o===a||(l.startIndex=n,l.endIndex=a,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,l=t.scrollXLoad,a=e.visibleColumn,e=e.scrollXStore,l=l?a.slice(e.startIndex,e.endIndex):a.slice(0);t.tableColumn=l}function updateScrollXSpace(e){var t=e.reactData,l=e.internalData,a=t.scrollXLoad,r=t.scrollXWidth,o=t.viewCellWidth,n=l.elemStore,l=l.scrollXStore,c=(0,_util.getRefElem)(n["main-body-table"]),l=l.startIndex,i=0,l=(a&&(i=Math.max(0,l*o)),c&&(c.style.transform="translate(".concat(i,"px, ").concat(t.scrollYTop||0,"px)")),["header","body","footer"].forEach(function(e){e=(0,_util.getRefElem)(n["main-".concat(e,"-xSpace")]);e&&(e.style.width=a?"".concat(r,"px"):"")}),e.$refs.refScrollXSpaceElem);return l&&(l.style.width="".concat(r,"px")),calcScrollbar(e),e.$nextTick()}function triggerScrollXEvent(e){loadScrollXData(e)}function updateScrollYSpace(e){var t=e.reactData,l=e.internalData,a=t.scrollYLoad,r=t.overflowY,o=l.elemStore,l=l.xeTable,n=(0,_util.getRefElem)(o["main-body-scroll"]),c=(0,_util.getRefElem)(o["main-body-table"]),i=0,s=0,d=!1,l=(l&&(i=l.scrollYTop,s=l.scrollYHeight,d=l.isScrollYBig),s),u=i,f=0,n=(n&&(f=n.clientHeight),d&&(u=n&&c&&n.scrollTop+f>=maxYHeight?maxYHeight-c.clientHeight:i/(s-f)*(maxYHeight-f),l=maxYHeight),a&&r||(u=0),(0,_util.getRefElem)(o["main-chart-wrapper"])),i=(c&&(c.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),n&&(n.style.transform="translate(".concat(t.scrollXLeft||0,"px, ").concat(u,"px)")),(0,_util.getRefElem)(o["main-body-ySpace"])),f=(i&&(i.style.height=l?"".concat(l,"px"):""),e.$refs.refScrollYSpaceElem);return f&&(f.style.height=l?"".concat(l,"px"):""),t.scrollYTop=u,t.scrollYHeight=s,t.isScrollYBig=d,calcScrollbar(e),e.$nextTick().then(function(){updateStyle(e)})}function checkLastSyncScroll(e,t,l){var a=e.reactData,r=e.internalData,e=r.lcsTimeout;a.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,a.lazScrollLoading=!1},200)}function handleScrollData(e,t,l,a,r){var o=e.reactData,n=e.internalData;l&&(n.lastScrollLeft=r),t&&(n.lastScrollTop=a),o.lastScrollTime=Date.now(),checkLastSyncScroll(e,l,t)}function handleScrollEvent(e,t,l,a,r,o){var n,c,i,s,d,u,f,h,p,m,S,v,y=e.$xeGantt,g=e.internalData,x=g.xeTable,b=e.$refs.refScrollXHandleElem,_=e.$refs.refScrollYHandleElem;b&&_&&x&&(n=_.clientHeight,c=b.clientWidth,_=_.scrollHeight,b=b.scrollWidth,d="",p=h=f=u=s=m=i=v=!1,a&&(S=x.computeScrollXThreshold,(m=o<=0)||(s=b-1<=o+c),g.lastScrollLeft<o?(d="right",b-S<=o+c&&(p=!0)):(d="left",o<=S&&(h=!0))),l&&(S=x.computeScrollYThreshold,(v=r<=0)||(i=_-1<=r+n),g.lastScrollTop<r?(d="bottom",_-S<=r+n&&(f=!0)):(d="top",r<=S&&(u=!0))),handleScrollData(e,l,a,r,o),x={source:sourceType,scrollTop:r,scrollLeft:o,bodyHeight:n,bodyWidth:c,scrollHeight:_,scrollWidth:b,isX:a,isY:l,isTop:v,isBottom:i,isLeft:m,isRight:s,direction:d},(f||u||p||h)&&y.dispatchEvent("scroll-boundary",x,t),y.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({},{}),methods:{refreshData:function(){return handleUpdateData(this),_handleLazyRecalculate(this)},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,l=this.$refs.refElem;t&&l&&(e?(t.computeRowOpts.isCurrent||t.highlightCurrentRow)&&_xeUtils.default.arrayEach(l.querySelectorAll('[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--current")}):_xeUtils.default.arrayEach(l.querySelectorAll(".row--current"),function(e){return(0,_dom.removeClass)(e,"row--current")}))},handleUpdateHoverRow:function(e){var t=this.internalData.xeTable,l=this.$refs.refElem;t&&l&&(e?_xeUtils.default.arrayEach(l.querySelectorAll('.vxe-body--row[rowid="'.concat(t.getRowid(e),'"]')),function(e){return(0,_dom.addClass)(e,"row--hover")}):_xeUtils.default.arrayEach(l.querySelectorAll(".vxe-body--row.row--hover"),function(e){return(0,_dom.removeClass)(e,"row--hover")}))},triggerHeaderScrollEvent:function(e){var t,l,a,r=this.internalData,o=r.elemStore;r.inVirtualScroll||r.inBodyScroll||r.inFooterScroll||(t=e.currentTarget,o=(0,_util.getRefElem)(o["main-body-scroll"]),l=this.$refs.refScrollXHandleElem,o&&t&&(a=t.scrollLeft,r.inHeaderScroll=!0,(0,_dom.setScrollLeft)(l,a),(0,_dom.setScrollLeft)(o,a),handleScrollEvent(this,e,!1,!0,t.scrollTop,a)))},triggerBodyScrollEvent:function(e){var t,l,a,r,o,n=this,c=n.reactData,i=n.internalData,c=c.scrollXLoad,s=i.elemStore,d=i.lastScrollLeft,u=i.lastScrollTop;i.inVirtualScroll||i.inHeaderScroll||i.inFooterScroll||(t=e.currentTarget,s=(0,_util.getRefElem)(s["main-header-scroll"]),l=n.$refs.refScrollXHandleElem,a=n.$refs.refScrollYHandleElem,d=(r=t.scrollLeft)!==d,u=(o=t.scrollTop)!==u,i.inBodyScroll=!0,i.scrollRenderType="",u&&((0,_dom.setScrollTop)(a,o),syncTableScrollTop(n,o)),d&&(i.inBodyScroll=!0,(0,_dom.setScrollLeft)(l,r),(0,_dom.setScrollLeft)(s,r),c)&&triggerScrollXEvent(n),handleScrollEvent(n,e,u,d,t.scrollTop,r))},triggerVirtualScrollXEvent:function(e){var t,l,a,r=this.reactData,o=this.internalData,r=r.scrollXLoad,n=o.elemStore;o.inHeaderScroll||o.inBodyScroll||(t=e.currentTarget,l=(0,_util.getRefElem)(n["main-header-scroll"]),n=(0,_util.getRefElem)(n["main-body-scroll"]),t&&(a=t.scrollLeft,o.inVirtualScroll=!0,(0,_dom.setScrollLeft)(l,a),(0,_dom.setScrollLeft)(n,a),r&&triggerScrollXEvent(this),handleScrollEvent(this,e,!1,!0,t.scrollTop,a)))},triggerVirtualScrollYEvent:function(e){var t,l,a=this.internalData,r=a.elemStore;a.inHeaderScroll||a.inBodyScroll||(t=e.currentTarget,r=(0,_util.getRefElem)(r["main-body-scroll"]),t&&(l=t.scrollTop,a.inVirtualScroll=!0,(0,_dom.setScrollTop)(r,l),syncTableScrollTop(this,l),handleScrollEvent(this,e,!0,!1,l,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,l=t.$xeGantt,a=t.reactData,r=a.overflowX;return e("div",{ref:"refElem",class:["vxe-gantt-view",{"is--scroll-y":a.overflowY,"is--scroll-x":r,"is--virtual-x":a.scrollXLoad,"is--virtual-y":a.scrollYLoad}]},[e("div",{class:"vxe-gantt-view--render-wrapper"},l.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)}});